Metin2 Hungarian Forum

Metin2 => Szerver készítés => Privát szerverek => Segítség => A témát indította: TheSLESH Dátum 2018-09-11, 10:47:24

Cím: pet.is_mine() bővítés
Írta: TheSLESH Dátum 2018-09-11, 10:47:24
Sziasztok, valaki tudna segíteni abban, mert sajnos nem tudom úgy kibővíteni, hogy ha valakinek a petje, akkoris lefusson a függvény, ne pedig csak akkor, ha saját.
mch-t próbáltam átírni true-ra, de sajnos nem.
int pet_is_mine(lua_State* L)
{
CQuestManager& q = CQuestManager::instance();
LPCHARACTER mch = q.GetCurrentCharacterPtr();
LPCHARACTER tch = q.GetCurrentNPCCharacterPtr();
CPetSystem* petSystem = mch->GetPetSystem();
CPetActor* petActor = petSystem->GetByVID(tch->GetVID());

lua_pushboolean(L, tch && tch->IsPet() && petActor && petActor->GetOwner() == mch);
return 1;
}
Cím: Re:pet.is_mine() bővítés
Írta: UnKn0Wn Dátum 2018-09-11, 14:20:04
Először tisztázni kellene pontosan mit is szeretnél.
Pl a csoportodban, céhben, barátlistán, vagy egyéb más dolog által megkülönböztetett embernek is lefusson, de csak neki(k), tehát egy idegennek ne. Vagy idegeneknek is?
utóbbi esetben nem kell hozzányúlni a forráshoz, szimplán így kell:

when petid1 or petid2 or  petid3 or  petid4 [...] petidn.click begin
if pet.is_mine() then
  syschat("Ez a te peted")
else
  syschat("Ez nem a te peted")
end
end


Cím: Re:pet.is_mine() bővítés
Írta: TheSLESH Dátum 2018-09-11, 16:42:42
Pet klónok miatt, illetve az etetés miatt. Ha van egy tárgy, ami csinál valamit a pettel, akkor azt ne lehessen olyan petre ráhúzni, ami valakié, csak olyanra, ami a pályán regenből jön, ezt próbáltam megoldani, de sikertelenül.

Üzenet összefésülés: 2018-09-11, 16:44:01

Megoldás lenne azis, hogy más ID-k ről lemásolom a petek modeljeit, de egyszerübbnek gondolom csak ezt kibővíteni, és máris nem kell 50 új sort beírnom mindenhova..
Cím: Re:pet.is_mine() bővítés
Írta: UnKn0Wn Dátum 2018-09-11, 16:51:21
Tehát te egy pet_is_not_mine-t akarsz?
Lehet tagadni questben amúgy, nem csak az else-el mint feljebb írtam, hanem így is:

when petid.click or petid2.click [...] with pet.is_mine() == false begin
vagy
if pet.is_mine() == false then
if not pet.is_mine() then
(utolsóban nem vagyok biztos ;D )
Cím: Re:pet.is_mine() bővítés
Írta: TheSLESH Dátum 2018-09-11, 21:04:20
De nem érted még mindig, tudom hogy lehet tagadni, de ez csak az én petemet nézi. Ugy tökéletes is, de tegyük fel ott állsz te, eg karakterrel, melletted én. Tagadással csináltam, de akkoris ha én ráhuzom a pet kaját vagy a klónozót, a petedre, akkor nem ellenorzi, a sajatomnal pedig igen, illetve mondtam hogy a leidézett peteknél szeretném a klonozót hasznalni szoval arra pedig ellenoriznem kell. Valami olyan megoldás kellene nekem, hogy ha a petnek van owner, akkor false, else true.
Cím: Re:pet.is_mine() bővítés
Írta: 5310pati Dátum 2018-09-11, 21:14:19
Ez a rész senkinek nem tűnik fel?
Idéz... && petActor->GetOwner() == mch)
Cím: Re:pet.is_mine() bővítés
Írta: TheSLESH Dátum 2018-09-12, 07:54:12
Ezt próbáltam átírni True-ra, mármint lehet én gondolomhülyén, de "Ha van tulaja" "GetOwner() == True" vagy nem?
Cím: Re:pet.is_mine() bővítés
Írta: [VIP]P3NG3R Dátum 2018-09-12, 14:36:09
Látom te se nagyon érted mi micsoda forráson belül.
int pet_is_pet(lua_State* L)
{
LPCHARACTER tch = CQuestManager::instance().GetCurrentNPCCharacterPtr();
lua_pushboolean(L, tch && tch->IsPet());
return 1;
}
Cím: Re:pet.is_mine() bővítés
Írta: 5310pati Dátum 2018-09-12, 20:00:29
Idézetet írta: TheSLESH Dátum 2018-09-12, 07:54:12
Ezt próbáltam átírni True-ra, mármint lehet én gondolomhülyén, de "Ha van tulaja" "GetOwner() == True" vagy nem?
LPCHARACTER-t akarsz hasonlítani 1 boollal? :o ???
Am arra gondoltam amit végül p3ng3r leírt, h töröld ezt a részt, hisz ha petet akarod nézni mit számít ki a tulaja...? és ha azt kitörlöd azt kapod mint p3ng3rnél, csak ő még kicsit kipucolta a felesleges dolgokat
EhPortal 1.39 © 2025, WebDev