Horse Új bónusz

Indította djmester, 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.



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);
}

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

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)

Tökéletes megoldás. Egyszerűen én túlkomplikáltam :D Köszönöm!
ment a + és zárom.