Metin2 Hungarian Forum

Metin2 => Szerver készítés => Privát szerverek => Segítség => A témát indította: Xeron Dátum 2017-12-01, 15:54:02

Cím: Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 15:54:02
Sziasztok!

Kis segítséget kérnék nem tudom mi lehet a hiba :D

InstanceBase.cpp
if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
DWORD szItem = pItem->GetIndex();
long szMsm = pItem->GetValue(3);

if (szMsm == VALUE_MSM_1 || szMsm == VALUE_MSM_2 ||
szMsm == VALUE_MSM_3 || szMsm == VALUE_MSM_4 ||
szMsm == VALUE_MSM_5 || szMsm == VALUE_MSM_6 ||
szMsm == VALUE_MSM_7 || szMsm == VALUE_MSM_8 ||
szMsm == VALUE_MSM_9 || szMsm == VALUE_MSM_10)

if (szItem == VALUE_VNUM_1 || szItem == VALUE_VNUM_2 ||
szItem == VALUE_VNUM_3 || szItem == VALUE_VNUM_4 ||
szItem == VALUE_VNUM_5 || szItem == VALUE_VNUM_6 ||
szItem == VALUE_VNUM_7 || szItem == VALUE_VNUM_8 ||
szItem == VALUE_VNUM_9 || szItem == VALUE_VNUM_10)
{

switch (VNUM);

case 41003:
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL);
break;

case 41304:
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL2);
break;
}
}


InstanceBase.h:

enum ECostumeEffectMsm
{
VALUE_MSM_1 = 40032, // = vnum [ (M) -> 41003, (F) -> 41004]
VALUE_MSM_2 = 40033, // = vnum [ (M) -> 41005, (F) -> 41006]
VALUE_MSM_3 = 40034, // = vnum [ (M) -> 41007, (F) -> 41008]
VALUE_MSM_4 = 40035, // = vnum [ (M) -> 41009, (F) -> 41010]
VALUE_MSM_5 = 40036, // = vnum [ (M) -> 41011, (F) -> 41012]
VALUE_MSM_6 = 40037, // = vnum [ (M) -> 41013, (F) -> 41014]
VALUE_MSM_7 = 40038, // = vnum [ (M) -> 41015, (F) -> 41016]
VALUE_MSM_8 = 40039, // = vnum [ (M) -> 41017, (F) -> 41018]
VALUE_MSM_9 = 40040, // = vnum [ (M) -> 41019, (F) -> 41020]
VALUE_MSM_10 = 40041, // = vnum [ (M) -> 41021, (F) -> 41022]
};

enum ECostumeEffectVnum
{
VALUE_VNUM_1 = 41003,
VALUE_VNUM_2 = 41304,
VALUE_VNUM_3 = 41005,
VALUE_VNUM_4 = 41006,
VALUE_VNUM_5 = 41307,
VALUE_VNUM_6 = 41308,
VALUE_VNUM_7 = 41309,
VALUE_VNUM_8 = 41310,
VALUE_VNUM_9 = 41311,
VALUE_VNUM_10 = 41312,
};


És ettől nem fordul le:

1>..\..\source\UserInterface\InstanceBase.cpp(2906): warning C4060: switch statement contains no 'case' or 'default' labels
1>..\..\source\UserInterface\InstanceBase.cpp(2908): error C2360: initialization of 'szMsm' is skipped by 'case' label
1>          ..\..\source\UserInterface\InstanceBase.cpp(2891) : see declaration of 'szMsm'
1>..\..\source\UserInterface\InstanceBase.cpp(2908): error C2360: initialization of 'szItem' is skipped by 'case' label
1>          ..\..\source\UserInterface\InstanceBase.cpp(2890) : see declaration of 'szItem'
1>..\..\source\UserInterface\InstanceBase.cpp(2912): error C2360: initialization of 'szMsm' is skipped by 'case' label
1>          ..\..\source\UserInterface\InstanceBase.cpp(2891) : see declaration of 'szMsm'
1>..\..\source\UserInterface\InstanceBase.cpp(2912): error C2360: initialization of 'szItem' is skipped by 'case' label
1>          ..\..\source\UserInterface\InstanceBase.cpp(2890) : see declaration of 'szItem'


Ha valaki tudna nekem ebben segíteni hogy itt mit írhattam el azt előre is megköszönném!
Cím: Re:Kosztüm effect
Írta: udvatt108 Dátum 2017-12-01, 16:12:48
Rosszúl van nyitva a switch...

Üzenet összefésülés: 2017-12-01, 16:14:40

InstanceBase.cpp:
if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
DWORD szItem = pItem->GetIndex();
long szMsm = pItem->GetValue(3);

if (szMsm == VALUE_MSM_1 || szMsm == VALUE_MSM_2 ||
szMsm == VALUE_MSM_3 || szMsm == VALUE_MSM_4 ||
szMsm == VALUE_MSM_5 || szMsm == VALUE_MSM_6 ||
szMsm == VALUE_MSM_7 || szMsm == VALUE_MSM_8 ||
szMsm == VALUE_MSM_9 || szMsm == VALUE_MSM_10)

if (szItem == VALUE_VNUM_1 || szItem == VALUE_VNUM_2 ||
szItem == VALUE_VNUM_3 || szItem == VALUE_VNUM_4 ||
szItem == VALUE_VNUM_5 || szItem == VALUE_VNUM_6 ||
szItem == VALUE_VNUM_7 || szItem == VALUE_VNUM_8 ||
szItem == VALUE_VNUM_9 || szItem == VALUE_VNUM_10)
{

switch (VNUM){

case 41003:
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL);
break;

case 41304:
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL2);
break;
}
}
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 16:18:11
Köszi :D Megy a + :D
Cím: Re:Kosztüm effect
Írta: udvatt108 Dátum 2017-12-01, 16:18:58
Szívesen
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 16:20:00
Valamiért most is hibát ír!
Cím: Re:Kosztüm effect
Írta: udvatt108 Dátum 2017-12-01, 16:20:49
Mert az egyik if state nincs bezárva xd
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 16:21:54
Na ez kínai xD
Cím: Re:Kosztüm effect
Írta: 5310pati Dátum 2017-12-01, 16:22:46
Am minek a 2. if ha ott a switch? ???
Cím: Re:Kosztüm effect
Írta: udvatt108 Dátum 2017-12-01, 16:24:21

if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
DWORD szItem = pItem->GetIndex();
long szMsm = pItem->GetValue(3);

if ((szMsm == VALUE_MSM_1 || szMsm == VALUE_MSM_2 ||
szMsm == VALUE_MSM_3 || szMsm == VALUE_MSM_4 ||
szMsm == VALUE_MSM_5 || szMsm == VALUE_MSM_6 ||
szMsm == VALUE_MSM_7 || szMsm == VALUE_MSM_8 ||
szMsm == VALUE_MSM_9 || szMsm == VALUE_MSM_10) and (szItem == VALUE_VNUM_1 || szItem == VALUE_VNUM_2 ||
szItem == VALUE_VNUM_3 || szItem == VALUE_VNUM_4 ||
szItem == VALUE_VNUM_5 || szItem == VALUE_VNUM_6 ||
szItem == VALUE_VNUM_7 || szItem == VALUE_VNUM_8 ||
szItem == VALUE_VNUM_9 || szItem == VALUE_VNUM_10))
{

switch (VNUM){

case 41003:
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL);
break;

case 41304:
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL2);
break;
}
}


Üzenet összefésülés: 2017-12-01, 16:24:55

Én sem értem a két if-t, de próbáld most.
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 16:27:08
Idézetet írta: udvatt108 Dátum 2017-12-01, 16:24:21

if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
DWORD szItem = pItem->GetIndex();
long szMsm = pItem->GetValue(3);

if ((szMsm == VALUE_MSM_1 || szMsm == VALUE_MSM_2 ||
szMsm == VALUE_MSM_3 || szMsm == VALUE_MSM_4 ||
szMsm == VALUE_MSM_5 || szMsm == VALUE_MSM_6 ||
szMsm == VALUE_MSM_7 || szMsm == VALUE_MSM_8 ||
szMsm == VALUE_MSM_9 || szMsm == VALUE_MSM_10) and (szItem == VALUE_VNUM_1 || szItem == VALUE_VNUM_2 ||
szItem == VALUE_VNUM_3 || szItem == VALUE_VNUM_4 ||
szItem == VALUE_VNUM_5 || szItem == VALUE_VNUM_6 ||
szItem == VALUE_VNUM_7 || szItem == VALUE_VNUM_8 ||
szItem == VALUE_VNUM_9 || szItem == VALUE_VNUM_10)
{

switch (VNUM){

case 41003:
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL);
break;

case 41304:
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL2);
break;
}
}


Üzenet összefésülés: 2017-12-01, 16:24:55

Én sem értem a két if-t, de próbáld most.

Eszem meg ál ugyan ugy hibát ír
Cím: Re:Kosztüm effect
Írta: udvatt108 Dátum 2017-12-01, 16:27:50
kihagytam egy zarojelet xd frissitettem a kodot bocsi
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 16:30:34
1>..\..\source\UserInterface\InstanceBase.cpp(2898): error C2146: syntax error : missing ')' before identifier 'and'
1>..\..\source\UserInterface\InstanceBase.cpp(2902): error C2059: syntax error : ')'
1>..\..\source\UserInterface\InstanceBase.cpp(2905): error C2143: syntax error : missing '}' before 'switch'
1>..\..\source\UserInterface\InstanceBase.cpp(2905): error C2143: syntax error : missing ';' before 'switch'
1>..\..\source\UserInterface\InstanceBase.cpp(2898): error C3861: 'and': identifier not found
1>..\..\source\UserInterface\InstanceBase.cpp(2905): error C2065: 'VNUM' : undeclared identifier
1>..\..\source\UserInterface\InstanceBase.cpp(2905): error C2050: switch expression not integral


Ott az and-nél van a hiba valamiért azt nem akarja elfogadni így :D
Cím: Re:Kosztüm effect
Írta: udvatt108 Dátum 2017-12-01, 16:32:41
Nem hogy a fajlod toltened fel..

if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
DWORD szItem = pItem->GetIndex();
long szMsm = pItem->GetValue(3);

if ((szMsm == VALUE_MSM_1 || szMsm == VALUE_MSM_2 ||
szMsm == VALUE_MSM_3 || szMsm == VALUE_MSM_4 ||
szMsm == VALUE_MSM_5 || szMsm == VALUE_MSM_6 ||
szMsm == VALUE_MSM_7 || szMsm == VALUE_MSM_8 ||
szMsm == VALUE_MSM_9 || szMsm == VALUE_MSM_10) && (szItem == VALUE_VNUM_1 || szItem == VALUE_VNUM_2 ||
szItem == VALUE_VNUM_3 || szItem == VALUE_VNUM_4 ||
szItem == VALUE_VNUM_5 || szItem == VALUE_VNUM_6 ||
szItem == VALUE_VNUM_7 || szItem == VALUE_VNUM_8 ||
szItem == VALUE_VNUM_9 || szItem == VALUE_VNUM_10))
{

switch (VNUM){

case 41003:
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL);
break;

case 41304:
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL2);
break;
}
}
}
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 16:36:01
Várj felteszem nézd meg :D

Cím: Re:Kosztüm effect
Írta: udvatt108 Dátum 2017-12-01, 16:37:38
Amit elobb adtam kodot azzal is csinald meg, azzal jonak kell lennie. Csak tabrol vk azt szar error firkanli.
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 16:41:30
a VNUM a baj neki valamiért !

(https://i.gyazo.com/716672ef95dbd8acb1d0ead87780690e.png)
Cím: Re:Kosztüm effect
Írta: 5310pati Dátum 2017-12-01, 16:41:59
A switchben lévő VNUM nincs definiálva, persze h nem fordul le a kód.
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 16:46:57
tehát akkor így meg tudom csinálni hogy minden kosztihoz más effectet rendeljen?
Cím: Re:Kosztüm effect
Írta: udvatt108 Dátum 2017-12-01, 16:47:25
Igy igaz, látod ha add az egész fájlt s rálátni az egesz kódra mi ki nem derul.
Cím: Re:Kosztüm effect
Írta: 5310pati Dátum 2017-12-01, 16:48:13
Gondoltam annyi azért menni fog magától hogy a VNUM-ot átírja a sajátjára :-\ ;D
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 16:49:15
Köszi mindkettőtöknek :D
Cím: Re:Kosztüm effect
Írta: udvatt108 Dátum 2017-12-01, 16:55:11
A te costume vnumjaidat a switchben egy caseba felsorakoztatod. Csatiztam egy példát.

Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 16:57:49
Meglesem!

Üzenet összefésülés: 2017-12-01, 17:02:50

InstanceBase.h:

enum ECostumeEffectMsm
{
VALUE_MSM_1 = 40032, // = vnum [ (M) -> 41003, (F) -> 41004]
VALUE_MSM_2 = 40033, // = vnum [ (M) -> 41005, (F) -> 41006]
VALUE_MSM_3 = 40034, // = vnum [ (M) -> 41007, (F) -> 41008]
VALUE_MSM_4 = 40035, // = vnum [ (M) -> 41009, (F) -> 41010]
VALUE_MSM_5 = 40036, // = vnum [ (M) -> 41011, (F) -> 41012]
VALUE_MSM_6 = 40037, // = vnum [ (M) -> 41013, (F) -> 41014]
VALUE_MSM_7 = 40038, // = vnum [ (M) -> 41015, (F) -> 41016]
VALUE_MSM_8 = 40039, // = vnum [ (M) -> 41017, (F) -> 41018]
VALUE_MSM_9 = 40040, // = vnum [ (M) -> 41019, (F) -> 41020]
VALUE_MSM_10 = 40041, // = vnum [ (M) -> 41021, (F) -> 41022]
};


Szerintem erre akkor már nincs is szügség!


Vagy kell ez oda?
Cím: Re:Kosztüm effect
Írta: 5310pati Dátum 2017-12-01, 17:05:22
Nem, nincs.
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 17:05:49
Köszönöm

Üzenet összefésülés: 2017-12-01, 17:10:18

Még egy utolsó kérdés!

__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL);
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL2);


Ha saját effectet és többet szeretnék forrásban hozzárendelni mint ahogy az epiknek is meg van oldva.
azt én hogy tudnám megcsinálni?
Erről sajnos témát még nem igazán olvastam.
Cím: Re:Kosztüm effect
Írta: udvatt108 Dátum 2017-12-01, 17:20:32
Értelem szerüen ha sajátot akarsz az komolyabb, nem egy hdz posztos dolog, de nagyvonalakba deklarlni az efectet, berakni az effect fájlokat. Valamint használhatsz meglévő effektet rá.

Mint ezek:

EFFECT_BODYARMOR_SPECIAL
EFFECT_BODYARMOR_SPECIAL2


Less utána milyen effektek vannak gyarilag.

Vagy keress rá az Effect_bodyarmor  szóra a fortásodban, biztos dob ki effekt azonosítókat.
Cím: Re:Kosztüm effect
Írta: 5310pati Dátum 2017-12-01, 17:27:02
EFFECT_REFINED_NUM = 50,
Megnézed mi az utolsó érték, nálam pl 21-es pánt
EFFECT_ACCE_SPECIAL,
onnantól meg simán tudsz kóddal hozzárendelni, nem kell forrást piszkálni.
chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+22, "Bip01", "locale/hu/effect/effekt.mse")
...
chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+49, "Bip01", "locale/hu/effect/effekt.mse")
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 17:31:38
Ugyan úgy a kosztümhöz is?
Cím: Re:Kosztüm effect
Írta: 5310pati Dátum 2017-12-01, 17:35:56
Őm... most h mondod mégse, mivel így lett megírva a fv :D
Ahhoz úgy kéne mint a sima vérthez, általánosan.
Cím: Re:Kosztüm effect
Írta: Xeron Dátum 2017-12-01, 18:18:00
Sikerült köszönöm mégegyszer :D
EhPortal 1.39 © 2025, WebDev