Ha használtad már Pawnoban a GetPlayerHealth függvényt, valószinûleg tapasztaltad, hogy csak egy playerid paramétert kér, de aztán figyelmeztet, hogy nem adtál meg mindent. Ez azért van, mert a Pawno a legelsõ include-ból, tehát az \"a_npc.inc\" fájlból tölti be a funkciót, ami jó is lenne, ha NPC-ket csinálnál. Viszont amikor leforditod a szkriptet, akkor már a szkripthez szükséges \"a_samp.inc\"-et tölti be, amiben viszont két paramétert kér.Szóval, hogy is lehet ezt megjavitani?Régebben azt a megoldást gondoltam, hogy átnevezed az \"a_npc.inc\" fájlt úgy, hogy ABC-sorrendben az \"a_samp.inc\" fájl van elõl. Ez jó is, ha nem használsz NPC-ket. (Tehát akik nem használnak NPC-ket, használják ezt. Egyszerûbb. Csak ne felejtsék el, hogy emiatt nem megy az NPC-jük, ha esetleg késõbb használják.) Viszont, ha használsz, akkor megoldhatod azzal, hogy ugyanolyanra átirod azt a GetPlayerHealth-ot is, mint az eredeti.
Tehát megnyitod az \"a_npc.inc\" fájlt, megkeresed ezt a sort:
native GetPlayerHealth(playerid);
Majd átirod erre:
native GetPlayerHealth(playerid, &Float:health);
Ez lényegében megoldotta már a problémát, viszont ezzel elõjön még egy probléma: az NPC-knél is igy fogja kérni, de nem ez fog mûködni.
Ezért a fájl végére ird be ezt:
stock fix_GetPlayerHealth(playerid, &Float:health)
{
health=GetPlayerHealth(playerid);
}
#if defined _ALS_GetPlayerHealth
#undef GetPlayerHealth
#else
#define _ALS_GetPlayerHealth
#endif
#define GetPlayerHealth fix_GetPlayerHealth
Ez készit egy funkciót \"fix_GetPlayerHealth\" néven, amiben két paraméter van, majd törli az eredeti funkciót, és berakja ezt helyette.
Ezután az összes NPC-s szkriptedben át kell irni a GetPlayerHealth(playerid)-t GetPlayerHealth(playerid, health)-ra (és természetesen a playerid helyére nem biztos, hogy konkrétan a \"playerid\" változó került, és a \"health\" változót pedig elõtte létre kell hozni a szkriptekben)
Remélem valakinek hasznos volt ez az információ, én itt nem találtam leirást róla, javitások lehet, hogy már tartalmazzák ezt, de legalább aki eddig nem tudta miért is csinálja/csinálta ezt, most megtudta (remélem).