Metin2 Hungarian Forum

Metin2 => Szerver készítés => Privát szerverek => Segítség => A témát indította: kati8411 Dátum 2017-04-30, 17:28:18

Cím: xy szint felett csak adott mapindexen kapjon expt
Írta: kati8411 Dátum 2017-04-30, 17:28:18
Sziasztok!
Hogyan lehetne azt kivitelezni, hogy pl150-es játékos az eddigi pályákon ne kapjon exp-t ha mobot öl, hanem csak a megadott map indexen lévő pályákon?
Gondolom forrásban lehet rá valamit írni nem?
Választ előre is köszönöm!
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: 5310pati Dátum 2017-04-30, 17:35:54
LPCHARACTER CHARACTER::DistributeExp()
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: kati8411 Dátum 2017-04-30, 17:36:40
Idézetet írta: 5310pati Dátum 2017-04-30, 17:35:54
LPCHARACTER CHARACTER::DistributeExp()

esetleg tudnád részletezni, hogy mit is csináljak ezzel?
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: 5310pati Dátum 2017-04-30, 18:06:11
Nem pont abban a fv-ben kell módosítani, de a fv 1. sora kérdezi le a mob EXP-jét így gondoltam jó kiindulási pont.
Ha kicsit tovább görgetsz látod, hogy továbbadja az EXP-t:
di->Distribute(this, iExp);
Majd ez szintén továbbadja, és eljutsz oda ahol piszkálnod kell ízlésed szerint:
GiveExp(ch, pAttacker, iExp);
Maga az EXP adás:
to->PointChange(POINT_EXP, iExp, true);
from->CreateFly(FLY_EXP, to);

Ez elé benyomsz 1 if-et és meg is vagy.
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: kati8411 Dátum 2017-05-01, 10:14:25
most akkor ha így rakom be akkor 150-esen nem kap dungeonban se exp-t illetve a 121 es indexnél kisebb mappons e igaz?

if (GetLevel() > 149 && GetMapIndex() > 10000 && GetMapIndex() < 121)
return false;



iExp = AdjustExpByLevel(to, iExp);

to->PointChange(POINT_EXP, iExp, true);
from->CreateFly(FLY_EXP, to);
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: 5310pati Dátum 2017-05-01, 14:12:23
Ez egy szép kis ellentmondás és sose fog lefutni az if ág :D
GetMapIndex() > 10000
GetMapIndex() < 121
Tudsz mondani olyan számot ami nagyobb mint 10000 ÉS kisebb mint 121? ??? :o
Mert én nem :D
+ nem ártana azt is megadni, hogy kitől kérdezze le szintjét/mapindexét.
[spoiler]if (to->GetLevel() > 149 && (to->GetMapIndex() > 10000 || to->GetMapIndex() < 121))[/spoiler]
Valamint én csak azt a 2 sort vágnám be az if negáltjába, mivel utána még ott van a szerelmi pontok növekedése is, és az se fog lefutni, bár ezt te döntöd el.
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: kati8411 Dátum 2017-05-01, 18:51:13
tehát így:

if (to->GetLevel() > 119 && (to->GetMapIndex() > 10000 || to->GetMapIndex() < 121))
return false;
else
to->PointChange(POINT_EXP, iExp, true);
from->CreateFly(FLY_EXP, to);
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: 5310pati Dátum 2017-05-01, 19:06:55
Attól függ, hogy le akarod-e tiltani a szerelmi pont növekedést is az EXP-vel együtt.
Ha igen, akkor kell egy return(false nélkül mert nem BOOL hanem VOID a fv), ha nem akkor nem.
Minden esetre én így oldanám meg, ha tiltani akarod írsz egy else ágat return-nel.
if (to->GetLevel() < 150 && (to->GetMapIndex() < 10000 && to->GetMapIndex() > 121)) {
to->PointChange(POINT_EXP, iExp, true);
from->CreateFly(FLY_EXP, to);
}
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: kati8411 Dátum 2017-05-01, 19:17:29
tehát ha 150-es vagyok és a 122-es indexen darálok kapom ez exp-t így ugye?
(nagyon köszönöm, hogy közben magyarázod is így kezdem kapisgálni a dolgot)
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: 5310pati Dátum 2017-05-01, 19:20:17
:'( :-\ :-X
Nem kapsz EXP-t abban az esetben (to->GetLevel() < 150).
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: kati8411 Dátum 2017-05-01, 19:22:52
akkor nagyon félre értek valamit
nekem ugyebár az kéne, hogy 150-esen ha bemegyek egy 121-es map indexű mapra ne fejlődjek de a 122-esen igen
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: 5310pati Dátum 2017-05-01, 19:24:16
Ha 150-esen bemész a 121-es mapra nem kapsz EXP-t, de a 122-esen sem.
149-esen a 121-esen nem kapsz, de a 122-esen igen.
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: kati8411 Dátum 2017-05-01, 19:27:23
akkor úgy nem lehet megoldani ahogy én szeretném? :/
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: Red Dátum 2017-05-01, 19:31:41
Már kajak nem értem, hogy miért kell mindent így túl bonyolítani.
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: 5310pati Dátum 2017-05-01, 19:34:49
Kicsit belezavarodtam :-X ::) ;D
if ((to->GetLevel() >= 150 && to->GetMapIndex() < 10000 && to->GetMapIndex() > 121) || (to->GetLevel() < 150)) {
to->PointChange(POINT_EXP, iExp, true);
from->CreateFly(FLY_EXP, to);
}

Lefelejtettem a másik felét az if-nek azért volt furcsa :D
Így ha 150-nél nagyobb ÉS 121 v 10000 map között van akkor kap EXP-t, vagy ha simán kisebb mint 150.
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: kati8411 Dátum 2017-05-01, 19:36:07
Idézetet írta: Red Dátum 2017-05-01, 19:31:41
Már kajak nem értem, hogy miért kell mindent így túl bonyolítani.
A problémám az, hogy eddigi szinteket tervezetten gyorsabban megszerezhetőre készítettem, de arra nem gondoltam, hogyha emelek a szintet és azokat a mobokat öli amivel eddig fejlődött akkor ugyan úgy gyorsan tud fejlődni mint eddig és ezért szeretném így megcsinálni! Ha esetleg más megoldást tudtok erre akkor szívesen hallgatom :) Ui.: 5310pati ne haragudj, hogy picit értetlen vagyok de már bele kavarodtam picit azokba amit írtál
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: Red Dátum 2017-05-01, 19:41:37
Normálisan be kell állítani a moboknak a szintet és a exp.  Egy veled egy szintű mob maximum 10-15 szintet tud rajtad dobni de, ezt forrásban lehet állítani. Pl  150-es pályára raksz 140-es szintű mobokat azok max 150-155ig fognak téged szintelni.
Cím: Re:xy szint felett csak adott mapindexen kapjon expt
Írta: kati8411 Dátum 2017-05-01, 19:45:16
Be van állítva, de így biztosabb !
Köszönöm a segítséget pati!
EhPortal 1.39 © 2025, WebDev