Metin2 Hungarian Forum

Metin2 => Szerver készítés => Privát szerverek => Segítség => A témát indította: Rock Dátum 2018-04-04, 22:02:19

Cím: pc_mount bug
Írta: Rock Dátum 2018-04-04, 22:02:19
Sziasztok!

Nem szeretném pontosan leírni, hogy hogyan, de kilehet "buggoltatni" a pc.mount funkciót úgy, hogy átváltozva szállnak fel a mountra.
(Lényeg annyi, hogy login közben nem vagy átváltozva, és utólag változol át, viszont emiatt a "késés" miatt mountra tudsz addig szállni.)

Fél napig próbálkoztam beállítani, hogy átváltozva ne lehessen mountra szállni, azonban nem jött össze.

Valakinek van erre egy konkrét ötlete?
Cím: Re:pc_mount bug
Írta: Distraught Dátum 2018-04-04, 22:22:56
Szóval amikor beloginol hamarabb felszáll a mountra, minthogy átváltozna?
Cím: Re:pc_mount bug
Írta: [VIP]Rin the Exorcist Dátum 2018-04-04, 22:25:33
Szerintem hasonló a jelenség mint a harmatok esetében. Vegas írt rá egy gusztustalan fixet, azt némi bővítéssel erre is lehetne alkalmazni (de én inkább teljes kód újraírást javasolnék a fixnek).
Cím: Re:pc_mount bug
Írta: Rock Dátum 2018-04-04, 22:37:40
Idézetet írta: Distraught Dátum 2018-04-04, 22:22:56
Szóval amikor beloginol hamarabb felszáll a mountra, minthogy átváltozna?

Igen, késleltéssel megtudom oldani, de nem szeretnék ilyen buherált megoldásokat.
Addig már eljutottam, hogy ha átvan változva leszedje az "affect"-et, de viszont ha nincs átváltozva nem engedi felszállni, szóval még nem az igazi.
Cím: Re:pc_mount bug
Írta: Distraught Dátum 2018-04-04, 22:43:20
átváltozás függvényt return-öld az elején, ha mounton van, vagy pedig unmountold
Cím: Re:pc_mount bug
Írta: Rock Dátum 2018-04-04, 22:45:46
Idézetet írta: Distraught Dátum 2018-04-04, 22:43:20
átváltozás függvényt return-öld az elején, ha mounton van, vagy pedig unmountold

Próbáltam, azonban mivel előbb száll fel a mountra a karakter, mint hogy polyzna, emiatt nem ért lényegében semmit.
Próbálkoztam azzal, hogy a polyitem-hez írok valamit, de elakadtam benne. Az elmélet meglenne, de nem tudtam össze szedni/megírni rendesen a kódot.
Cím: Re:pc_mount bug
Írta: Distraught Dátum 2018-04-04, 22:58:19
próbáld meg, hogy a char_affect.cpp-ben a AddAffect függvény elejére hozzáírod ezt:
if(dwType==AFFECT_POLYMORPH && GetMountVnum()) return false;
Cím: Re:pc_mount bug
Írta: [VIP]Rin the Exorcist Dátum 2018-04-04, 23:13:32
Vagy ha ez nem jó, akkor mondjuk az átváltozás unmountoljon is, ezzel tutira jó lesz.
Cím: Re:pc_mount bug
Írta: Distraught Dátum 2018-04-04, 23:18:30
akkor pedig picit hosszabb lesz:

if(dwType==AFFECT_POLYMORPH && GetMountVnum())
{
RemoveAffect(AFFECT_MOUNT);
RemoveAffect(AFFECT_MOUNT_BONUS);
if(IsHorseRiding()) StopRiding();
}
Cím: Re:pc_mount bug
Írta: Rock Dátum 2018-04-04, 23:34:37
Idézetet írta: Distraught Dátum 2018-04-04, 23:18:30
akkor pedig picit hosszabb lesz:

if(dwType==AFFECT_POLYMORPH && GetMountVnum())
{
RemoveAffect(AFFECT_MOUNT);
RemoveAffect(AFFECT_MOUNT_BONUS);
if(IsHorseRiding()) StopRiding();
}


Hozzáadtam a CHARACTER::AddAffect részhez, azonban semmi hatása nem volt sajnos..
Cím: Re:pc_mount bug
Írta: Distraught Dátum 2018-04-04, 23:43:55
próbáld meg a polymorph.cpp-ben a PolymorphCharacter függvényhez hozzáadni
Cím: Re:pc_mount bug
Írta: Rock Dátum 2018-04-04, 23:48:06
Idézetet írta: Distraught Dátum 2018-04-04, 23:43:55
próbáld meg a polymorph.cpp-ben a PolymorphCharacter függvényhez hozzáadni

Az a baj, hogy ebben nincs deklarálva a legtöbb "függvény".
Idéz
polymorph.cpp: In member function 'bool CPolymorphUtils::PolymorphCharacter(CHARACTER*, CItem*, const CMob*)':
polymorph.cpp:43: error: 'dwType' was not declared in this scope
polymorph.cpp:43: error: 'GetMountVnum' was not declared in this scope
polymorph.cpp:45: error: 'RemoveAffect' was not declared in this scope
polymorph.cpp:47: error: 'IsHorseRiding' was not declared in this scope
polymorph.cpp:47: error: 'StopRiding' was not declared in this scope
Cím: Re:pc_mount bug
Írta: Distraught Dátum 2018-04-04, 23:51:01
vagy várj, menj vissza az addeffectbe és ezt írd bele:
if(dwType==AFFECT_POLYMORPH && GetMountVnum())
{
   quest::CQuestManager::instance().Unmount(GetPlayerID());
   MountVnum(0);
}

meg includeold az elején a questmanager-t
Cím: Re:pc_mount bug
Írta: Rock Dátum 2018-04-05, 00:08:22
Idézetet írta: Distraught Dátum 2018-04-04, 23:51:01
vagy várj, menj vissza az addeffectbe és ezt írd bele:
if(dwType==AFFECT_POLYMORPH && GetMountVnum())
{
   quest::CQuestManager::instance().Unmount(GetPlayerID());
   MountVnum(0);
}

meg includeold az elején a questmanager-t

Sajnos ez sem jó.
Dobtam egy PM-et arról, hogyan csinálják.
Cím: Re:pc_mount bug
Írta: femaremon Dátum 2018-04-06, 08:45:47
Próbâltad mâr kikapcsolni a terrain systemet? O.o
EhPortal 1.39 © 2025, WebDev