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!
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;
}
}
Köszi :D Megy a + :D
Szívesen
Valamiért most is hibát ír!
Mert az egyik if state nincs bezárva xd
Na ez kínai xD
Am minek a 2. if ha ott a switch? ???
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.
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
kihagytam egy zarojelet xd frissitettem a kodot bocsi
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
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;
}
}
}
Várj felteszem nézd meg :D
Amit elobb adtam kodot azzal is csinald meg, azzal jonak kell lennie. Csak tabrol vk azt szar error firkanli.
a VNUM a baj neki valamiért !
(https://i.gyazo.com/716672ef95dbd8acb1d0ead87780690e.png)
A switchben lévő VNUM nincs definiálva, persze h nem fordul le a kód.
tehát akkor így meg tudom csinálni hogy minden kosztihoz más effectet rendeljen?
Igy igaz, látod ha add az egész fájlt s rálátni az egesz kódra mi ki nem derul.
Gondoltam annyi azért menni fog magától hogy a VNUM-ot átírja a sajátjára :-\ ;D
Köszi mindkettőtöknek :D
A te costume vnumjaidat a switchben egy caseba felsorakoztatod. Csatiztam egy példát.
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?
Nem, nincs.
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.
É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.
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")
Ugyan úgy a kosztümhöz is?
Ő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.
Sikerült köszönöm mégegyszer :D