Nem lehet a skillekre plussz pontot tenni.

Indította udvatt108, 2017-10-10, 22:07:17

Hali.

Valaki esetleg tudja, hogy miért történik az a jelenség, hogy ha kiválasztom a képességem, mondjuk harcosnál a testit, akkor nem tudom a skilleket fejleszteni, de a pontokat levonja?

Köszi.
Egy programozási nyelv akkor alacsony szintű, ha arra kényszeríti az embert, hogy az érdektelen dolgokra is odafigyeljen.

valaminemfrissülakliensbenéskaraktercserésreloggaltudodcsakkompenzálni

2017-10-10, 22:12:26 #2 Utolsó szerkesztés: 2017-10-10, 22:31:59 Szerző: udvatt108
relogolok, sőt ujrainditom a szerver de ugyan ugy levontan jelzi a skill pontokat és a skilleken nincs egy pont sem.

Üzenet összefésülés: 2017-10-10, 22:17:14

Annyi még hogy a /setsk  parancs sem fejleszti
Egy programozási nyelv akkor alacsony szintű, ha arra kényszeríti az embert, hogy az érdektelen dolgokra is odafigyeljen.

éssemmimástnemmódosítottálseholszalezvalamiproalapnadeakkormégismelyikszerveralapésmelyikkliensnamegmelyikindító?

Char_skill.cpp

Learningskill() függvény részében kellene a problémát keresni, ha forrással dolgozol.

Mainline - game, db, qu (Samurai modifikációt használtam fel buildelésnél)
Samurai kliens.

Megjegyzem: A /all parancs sem müködik. - Ha számít. Nem csinál semmit, semmi reakció, semmi syserr egyik jelenségre sem.

Ui.: Forrásokkal dolgozok. (Windowsoson futó szerverrel.)
Egy programozási nyelv akkor alacsony szintű, ha arra kényszeríti az embert, hogy az érdektelen dolgokra is odafigyeljen.

Idézetet írta: udvatt108 Dátum 2017-10-10, 22:48:57
Megjegyzem: A /all parancs sem müködik. - Ha számít. Nem csinál semmit, semmi reakció, semmi syserr egyik jelenségre sem.
tesztszerverforrásnaknenézdafogátnememlékszemarrahogyszamurájvalahakiraktavolnaaz1.3utánidolgokatbárnekemisjónagyslamasztikátkénehogykavarjonezakiskitérődeperpillanatlényegtelenezadolog:D


japisti95iszerénységeleírtamáravarázsszavakathümm

2017-10-10, 23:09:49 #7 Utolsó szerkesztés: 2017-10-10, 23:58:58 Szerző: udvatt108
Idézetet írta: Pisti95 Dátum 2017-10-10, 22:45:28
Char_skill.cpp

Learningskill() függvény részében kellene a problémát keresni, ha forrással dolgozol.

Nincs Learningskill része a Char_skill.cpp fájlban.

Üzenet összefésülés: 2017-10-10, 23:24:05

Ötlet?

void CHARACTER::SkillLevelPacket()
{
if (!GetDesc())
return;

TPacketGCSkillLevel pack;

pack.bHeader = HEADER_GC_SKILL_LEVEL;
thecore_memcpy(&pack.skills, m_pSkillLevels, sizeof(TPlayerSkill) * SKILL_MAX_NUM);
GetDesc()->Packet(&pack, sizeof(TPacketGCSkillLevel));
}

void CHARACTER::SetSkillLevel(DWORD dwVnum, BYTE bLev)
{
if (NULL == m_pSkillLevels)
return;

if (dwVnum >= SKILL_MAX_NUM)
{
sys_err("vnum overflow (vnum %u)", dwVnum);
return;
}

m_pSkillLevels[dwVnum].bLevel = MIN(40, bLev);

if (bLev >= 40)
m_pSkillLevels[dwVnum].bMasterType = SKILL_PERFECT_MASTER;
else if (bLev >= 30)
m_pSkillLevels[dwVnum].bMasterType = SKILL_GRAND_MASTER;
else if (bLev >= 20)
m_pSkillLevels[dwVnum].bMasterType = SKILL_MASTER;
else
m_pSkillLevels[dwVnum].bMasterType = SKILL_NORMAL;
}

bool CHARACTER::IsLearnableSkill(DWORD dwSkillVnum) const
{
const CSkillProto * pkSkill = CSkillManager::instance().Get(dwSkillVnum);

if (!pkSkill)
return false;

if (GetSkillLevel(dwSkillVnum) >= SKILL_MAX_LEVEL)
return false;

if (pkSkill->dwType == 0)
{
if (GetSkillLevel(dwSkillVnum) >= pkSkill->bMaxLevel)
return false;

return true;
}

if (pkSkill->dwType == 5)
{
if (dwSkillVnum == SKILL_HORSE_WILDATTACK_RANGE && GetJob() != JOB_ASSASSIN)
return false;

return true;
}

if (GetSkillGroup() == 0)
return false;

if (pkSkill->dwType - 1 == GetJob())
return true;

if (6 == pkSkill->dwType)
{
if (SKILL_7_A_ANTI_TANHWAN <= dwSkillVnum && dwSkillVnum <= SKILL_7_D_ANTI_YONGBI)
{
for (int i=0 ; i < 4 ; i++)
{
if (unsigned(SKILL_7_A_ANTI_TANHWAN + i) != dwSkillVnum)
{
if (0 != GetSkillLevel(SKILL_7_A_ANTI_TANHWAN + i))
{
return false;
}
}
}

return true;
}

if (SKILL_8_A_ANTI_GIGONGCHAM <= dwSkillVnum && dwSkillVnum <= SKILL_8_D_ANTI_BYEURAK)
{
for (int i=0 ; i < 4 ; i++)
{
if (unsigned(SKILL_8_A_ANTI_GIGONGCHAM + i) != dwSkillVnum)
{
if (0 != GetSkillLevel(SKILL_8_A_ANTI_GIGONGCHAM + i))
return false;
}
}

return true;
}
}

return false;
}


Üzenet összefésülés: 2017-10-10, 23:24:05



Cliens oldal:

HEADER_GC_SKILL_LEVEL = 72,
HEADER_GC_SKILL_LEVEL_NEW = 76,



typedef struct packet_skill_level
{
    BYTE        bHeader;
    BYTE        abSkillLevels[SKILL_MAX_NUM];
} TPacketGCSkillLevel;


typedef struct packet_skill_level_new
{
BYTE bHeader;
TPlayerSkill skills[SKILL_MAX_NUM];
} TPacketGCSkillLevelNew;

typedef struct packet_points
{
    BYTE        header;
    long        points[POINT_MAX_NUM];
} TPacketGCPoints;

typedef struct packet_point_change
{
    int         header;

DWORD dwVID;
BYTE Type;

long        amount; // 바뀐 값
    long        value;  // 현재 값
} TPacketGCPointChange;


Szerver oldal:


HEADER_GC_SKILL_LEVEL_OLD = 72,
HEADER_GC_SKILL_LEVEL = 76,





typedef struct packet_points
{
BYTE header;
long points[POINT_MAX_NUM];
} TPacketGCPoints;

typedef struct packet_skill_level
{
BYTE bHeader;
TPlayerSkill skills[SKILL_MAX_NUM];
} TPacketGCSkillLevel;

typedef struct packet_point_change
{
int header;
DWORD dwVID;
BYTE type;
long amount;
long value;
} TPacketGCPointChange;
Egy programozási nyelv akkor alacsony szintű, ha arra kényszeríti az embert, hogy az érdektelen dolgokra is odafigyeljen.

char_skill.cpp

bool CHARACTER::IsLearnableSkill(DWORD dwSkillVnum) const

bool CHARACTER::LearnGrandMasterSkill(DWORD dwSkillVnum)

bool CHARACTER::LearnSkillByBook(DWORD dwSkillVnum, BYTE bProb)

leveszi a pontot:  bool CHARACTER::SkillLevelDown(DWORD dwVnum)

felemeli a pontot:  void CHARACTER::SkillLevelUp(DWORD dwVnum, BYTE bMethod)


2017-10-11, 12:22:15 #9 Utolsó szerkesztés: 2017-10-11, 14:07:33 Szerző: udvatt108
Rendben átnézem, próbálkozom és jelentek, hogy mire jutottam. Addig is köszi az irány mutatást Pisti!

Üzenet összefésülés: 2017-10-11, 14:07:32

A skillt a szerver konzol alapján fejleszti, de ezt a kliens nem érzékeli, és hiába van relog a skillt nem is aktiválja, meg nem tanultként kezeli.
Egy programozási nyelv akkor alacsony szintű, ha arra kényszeríti az embert, hogy az érdektelen dolgokra is odafigyeljen.

Akkor a szerverből törölted a skill_power.txt-t.

share/locale/hungary/

2017-10-11, 21:03:22 #11 Utolsó szerkesztés: 2017-10-11, 21:06:33 Szerző: udvatt108
Nem, megvan benne.
Csatoltam a fájlt.
Egy programozási nyelv akkor alacsony szintű, ha arra kényszeríti az embert, hogy az érdektelen dolgokra is odafigyeljen.

Volt már erre gond, nem itt kell keresni a hibát, ha jól emlékszem, Windows szervert másképp kell lefordítani!
Már nem tudom pontosan... Volt régen róla szó valamelyik témában, nem forrásban van a hiba.

Bármilyen szörnyűnek is tűnik az élet, mindig van valami, amiben sikeres lehetsz.

2017-10-12, 08:43:22 #13 Utolsó szerkesztés: 2017-10-12, 08:53:09 Szerző: fabtam11
jaénmegvokannyiragyökérhogynemíromhogyezavacakakilencpontkettesvédéitszeressegec^2


naatrükkakövetkezőpróbáldmegfreebsdkilencpontkettőnisháthajóleszvagyilyesmi

Idézetet írta: Savage Dátum 2017-10-12, 08:38:44
Volt már erre gond, nem itt kell keresni a hibát, ha jól emlékszem, Windows szervert másképp kell lefordítani!
Már nem tudom pontosan... Volt régen róla szó valamelyik témában, nem forrásban van a hiba.


Esetleg, tudod linkelni, ha eszedbe jut? :)
Egy programozási nyelv akkor alacsony szintű, ha arra kényszeríti az embert, hogy az érdektelen dolgokra is odafigyeljen.

Esküszöm kivagyok már ettől az egybeírásodtól xdd

Amúgy, nem kell ide FreeBSD elég, ha a Release konfigurációt átállítod talán Debugra(?), Distribute-ra(?).
Találgatok csak, de mintha ez lett volna a gond!

(Vegyél fel skypen és segítek: [email protected])

Bármilyen szörnyűnek is tűnik az élet, mindig van valami, amiben sikeres lehetsz.

Már rossz nézni ezt a sok szenvedést...
Nekem ugyanilyen problémám volt és közöltem is vele, hogy a windows a ludas. (megoldást eddig még én se találtam rá, bár nem mintha már nagyon keresném is... :D)
Ha meg átállítja debugra, errorok tömkelege fogja fogadni.

Javítani kell a hibákat debug módra vonatkozóan ugyanis abban biztos, hogy nem lesz gond.

Túl sok a hiba ahhoz h megérje... + nem is izgat már a téma mert abbahagytam a dolgot és +2 hogy am is bsd-n futna a szerver ha futna, ott meg semmi gond nincs vele, szal értelmetlen lenne vesződni vele.

Idézetet írta: 5310pati Dátum 2017-10-12, 20:18:54
Túl sok a hiba ahhoz h megérje... + nem is izgat már a téma mert abbahagytam a dolgot és +2 hogy am is bsd-n futna a szerver ha futna, ott meg semmi gond nincs vele, szal értelmetlen lenne vesződni vele.