Fegyver kosztüm hiba

Indította gife974, 2017-06-16, 21:56:01

2017-06-16, 21:56:01 Utolsó szerkesztés: 2017-06-17, 20:53:27 Szerző: gife974
Sziasztok! Sikerült berakni a fegyver kosztümöt, viszont akadt egy kis problémám. Mégpedig, hogy nem veszi fel a
kosztüm fegyvert a karakter. Minden sikeresen lefordult, kliens sysser, szerver syslog/sysser üres.

Ez alapján raktam be:
[spoiler]http://metin2hungary.net/index.php?topic=194077.0[/spoiler]

Itt az item_proto
19000 fegyO ITEM_COSTUME COSTUME_WEAPON_SWORD 2 ANTI_ASSASSIN | ANTI_MUDANG | ANTI_DROP | ANTI_SELL | ANTI_STACK NONE NONE NONE 0 0 0 0 100 REAL_TIME 2592000 LIMIT_NONE 0 APPLY_ATT_SPEED 5 APPLY_ATT_GRADE_BONUS 100 APPLY_NONE 0 0 0 0 0 0 0 5 0 0

A segítségeket előre is köszönöm!

A SZERVERBEN NINCS OFFLINESHOP, ÉS PÁNTRENDSZER. Bár nem tudom, hogy ez számít-e.

Most vettem észre 2 bugot.








Üzenet összefésülés: 2017-06-17, 20:53:27

.

Makró nélkül kell berakni, mint a témában is írják.

Tehát az ilyeneket:

ifdef
---
endif

helyett a pirossal kijelölt sor maradjon csak.

Ha esetleg nemnagyon értenéd miről beszélek:

char_item.cpp

#ifdef COSTUME_WEAPON
,WEAR_COSTUME_WEAPON
#endif


helyett

,WEAR_COSTUME_WEAPON

2017-06-18, 00:37:35 #2 Utolsó szerkesztés: 2017-06-18, 11:09:23 Szerző: gife974
Köszi a segítséget, most már tudni fogom, hogy mi az a makró. :D Reggel megpróbálom, aztán írok.

Üzenet összefésülés: 2017-06-18, 11:09:23

Na, a helyzet a következő: Ha nem írom oda az IFDEF, ENDIFET, akkor nem fordul le. Ha ottvan, akkor igen.

2017-06-18, 11:18:34 #3 Utolsó szerkesztés: 2017-06-18, 11:20:50 Szerző: TrueLev
Valahol rosszul vetted ki, de írnia kell a fordításnál hogy hol.
(Pl ha van else ág, akkor azt is ki kell venni,)

Ifdef
-- (ebben az esetben is csak ez kell)
else
---
endif

Itt van a hiba:
char_item.cpp:6341: error: 'WEAR_COSTUME_WEAPON' was not declared in this scope
char_item.cpp: In member function 'bool CHARACTER::CanEquipNow(CItem*, const TIt                  emPos&, const TItemPos&)':
char_item.cpp:7483: error: 'COSTUME_WEAPON_SWORD' was not declared in this scope
char_item.cpp:7499: error: 'WEAR_COSTUME_WEAPON' was not declared in this scope
char_item.cpp:7502: error: 'COSTUME_WEAPON_SWORD' was not declared in this scope
char_item.cpp:7480: warning: unused variable 'itemType'
char_item.cpp:7481: warning: unused variable 'itemSubType'
char_item.cpp: In member function 'bool CHARACTER::CanUnequipNow(CItem*, const T                  ItemPos&, const TItemPos&)':
char_item.cpp:7621: error: 'WEAR_COSTUME_WEAPON' was not declared in this scope
gmake: *** [OBJDIR/char_item.o] Error 1
gmake: *** Waiting for unfinished jobs....
cmd_general.cpp: In function 'void do_costume(CHARACTER*, const char*, int, int)                  ':
cmd_general.cpp:2106: error: 'WEAR_COSTUME_WEAPON' was not declared in this scop                  e
gmake: *** [OBJDIR/cmd_general.o] Error 1
root@host:/usr/src/mainline/Srcs/Server/game/src #


És itt írja a hibákat/t
case POINT_COSTUME_ATTR_BONUS:
{
static BYTE abSlot[] = {
WEAR_COSTUME_BODY,
WEAR_COSTUME_HAIR,
WEAR_COSTUME_WEAPON
};

Természetesen itt írja: WEAR_COSTUME_WEAPON

char_item.cpp 6341, 7483, 7499, 7502, 7621
cmd_general.cpp 2106
Ezekben a sorokba valami szar van.
-Kivetted a makrókat rendesen?
-A leírás szerint csináltál mindent?
-Biztos hogy teljesen működőképes a leírás?

2017-06-18, 12:13:00 #6 Utolsó szerkesztés: 2017-06-18, 12:21:11 Szerző: gife974
Samurai kitett témája alapján csináltam. Tegnap beraktam makrókkal, le is fordult, csak nem tudtam felvenni a fegyvert. Most nincsenek makrók, és nem is fordul le. Step, ezekbe a sorokba vannak a most berakott fegyver kosztüm rendszer.

A kiemelt sorokba van a hiba, amit ír a fordításnál.

6341:
static BYTE abSlot[] = {
WEAR_COSTUME_BODY,
WEAR_COSTUME_HAIR,
ERRE A SORRA ÍR HIBÁT > WEAR_COSTUME_WEAPON[/color]
};

7483:
ERRE A SORRA ÍR HIBÁT >if (item->GetType() == ITEM_COSTUME && item->GetSubType() >= COSTUME_WEAPON_SWORD)
{
LPITEM weapon = GetWear(WEAR_WEAPON);
if (!weapon)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You must equip weapon first"));
return false;
}
if (weapon->GetSubType() + COSTUME_WEAPON_SWORD != item->GetSubType())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You must equip costume weapon with same type of weapon"));
return false;
}
}


7499:
if (item->GetType() == ITEM_WEAPON)
{
ERRE A SORRA ÍR HIBÁT > LPITEM weapon = GetWear(WEAR_COSTUME_WEAPON);
if (weapon)
{
if (weapon->GetSubType() - COSTUME_WEAPON_SWORD != item->GetSubType())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You must equip weapon with same type of costume"));
return false;
}
}
}

A többi hiba is mind a betett rendszerre hibádzik.

CSATOLTAM A FÁJLOKAT EGY RARBA.

2017-06-18, 12:56:43 #7 Utolsó szerkesztés: 2017-06-18, 13:35:11 Szerző: TrueLev
Amúgy ha jól emlékszek, akkor én is makróval raktam be először, de attól még felvette, csak ugye a skillek bebuggoltak, kivettem a makrókat, de a karik skilljei csak akkor javultak meg miután visszatettem egy mysql mentést, szerintem a player táblát (legalábbis skill oszlopot) nagyon összekutyulta.

Amúgy mivel ezek a hibák a WEAR_COSTUME_WEAPON-ra mutatnak így a common-ba nézd meg hogy ott is kivetted-e a makrókat, ha igen és szerinted jól, akkor másold be nekem.
A service.h-ba meg vedd ki a #define COSTUME_WEAPON mert ugye többet nem használjuk a makrót.

2017-06-18, 13:09:10 #8 Utolsó szerkesztés: 2017-06-18, 14:10:07 Szerző: gife974
Nem szeretném elkiabálni, de lehetséges, hogy most lefordítja. A common-t kihagytam.. A témát nem zárom, biztos, hogy lesz még probléma :D

Üzenet összefésülés: 2017-06-18, 14:10:07

Lefordult minden, viszont a fegyvert most sem lehet felvenni..  :-\