Metin2 Hungarian Forum

Metin2 => Szerver készítés => Privát szerverek => Segítség => A témát indította: djmester Dátum 2019-04-24, 15:45:25

Cím: Horse Új bónusz
Írta: djmester Dátum 2019-04-24, 15:45:25
Hali!
Egy kis c++ segítséget kérnék.

Lovakhoz akarok adni bónuszt, mint ahogy eddig ad armort(20) meg statokat ha még nem nagyobb a tiednél.
Hozzá adtam egy új értéket a horse_ride.h ba mint

int iArmor;
int IHPmount;


Létrehoztam a gettert is.

int GetHorseHPMount() { return c_aHorseStat[GetHorseLevel()].IHPmount; }

És ki eggészítettem a horse_rider.cpp ben a statokat + 1 sorral.

Próbáltam a char.cpp be be írni oda ahol elveszi a ló stattokat(ha nagyobb a ló stat amit ad mint a saját.) Szal ez egy idő után már nem csinál semmit.

Egyszerűen nem találom, hova kéne írjam
PointChange(POINT_MAX_HP, GetPoint(POINT_MAX_HP) - GetHorseHPMount());
az elvonást meg a hozzá adást.


Ha char ba írom ahova mondtam akkor érdekes volt mert ha felültem levont 2000 hp-t.
Ha felültem nem történt semmi.
Szóval tudom, hogy hiányos a történet viszont nem tudom hol kellene még ki egészítenem , hogy le fel szálláskor hozzá adjon és elvegyen jelen esetben 2000 hp-t. Később bővíteném több bonuszra is ez alapján persze ha sikerül kijavítani.

Remélem érhetően vezetem le kérdésem :D
Köszönöm a helpet előre is.


Cím: Re:Horse Új bónusz
Írta: OneCharakter Dátum 2019-04-24, 20:27:36
Szia ! Ha jól értelmezem akkor azt szeretnéd amikor fel/le száll a lóra akkor adjon hozzá és vegyen el pl 2000 TP-t. alapjáraton ahhoz ennyinek elégnek kellene lennie (char.cpp) :
if (GetMountVnum())
{
if (GetHorseST() > GetPoint(POINT_ST))
PointChange(POINT_ST, GetHorseST() - GetPoint(POINT_ST));

if (GetHorseDX() > GetPoint(POINT_DX))
PointChange(POINT_DX, GetHorseDX() - GetPoint(POINT_DX));

if (GetHorseHT() > GetPoint(POINT_HT))
PointChange(POINT_HT, GetHorseHT() - GetPoint(POINT_HT));

if (GetHorseIQ() > GetPoint(POINT_IQ))
PointChange(POINT_IQ, GetHorseIQ() - GetPoint(POINT_IQ));

PointChange(POINT_MAX_HP, 2000);
}
Cím: Re:Horse Új bónusz
Írta: djmester Dátum 2019-04-24, 20:59:55
Ki próbálom még ma.
amint gépnél  leszek.

PointChange(POINT_MAX_HP, GetHorseHPMount());

Ugye igazából nem titkok de a lóhoz hasonlóan használom a mountokat növeltem a ló szintet. minden szinten más mount.
Így jön hogy bonuszolni akarom.  akkor így lesz elég ha jól értem.Viszont több mob is lesz több bonusszal mondjuk.
Több oszlop stb. Erre akarok valami rendszert kitalálni ,hogy a ló statok végén a saját oszlopaim mondjuk
Lenne index | érték mint a tárgynál így valahogy meg lehet oldani .
Valami rendszert szeretnék erre kitalálni. Ha ennyi elég lesz akkor valahogy csak ki tudom találni.

Köszi
Cím: Re:Horse Új bónusz
Írta: OneCharakter Dátum 2019-04-24, 21:25:54
Ha szintekhez akarod kötni a bónokat akkor valahogy így csinálnám:
if (GetMountVnum())
{
if (GetHorseST() > GetPoint(POINT_ST))
PointChange(POINT_ST, GetHorseST() - GetPoint(POINT_ST));

if (GetHorseDX() > GetPoint(POINT_DX))
PointChange(POINT_DX, GetHorseDX() - GetPoint(POINT_DX));

if (GetHorseHT() > GetPoint(POINT_HT))
PointChange(POINT_HT, GetHorseHT() - GetPoint(POINT_HT));

if (GetHorseIQ() > GetPoint(POINT_IQ))
PointChange(POINT_IQ, GetHorseIQ() - GetPoint(POINT_IQ));

switch (GetHorseLevel())
{
case 1:
PointChange(POINT_MAX_HP, 1000);
case 2:
PointChange(POINT_MAX_HP, 2000);
case 3:
PointChange(POINT_MAX_HP, 2500);
case 11:
PointChange(POINT_MAX_HP, 3000);
case 21:
PointChange(POINT_MAX_HP, 3500);
}


}
(Nincs tesztelve)
Cím: Re:Horse Új bónusz
Írta: djmester Dátum 2019-04-24, 21:48:16
Tökéletes megoldás. Egyszerűen én túlkomplikáltam :D Köszönöm!
ment a + és zárom.
EhPortal 1.39 © 2025, WebDev