Szia!!
én így oldottam meg
forward NoKorhaz(playerid);//Ezt tedd pl: a NoKorhaz callback elé (én a mod elejére szoktam rakni)
stock IsKorhazban(playerid)// ezt akárhova írhatod (én a mod végére szoktam rakni)
{
if(pInfo[playerid][pKorhaz] > 0) // ez azt csinálja,hogy lekérdezi hogy a pKorhaz nagyobbe 0-nál
return 1;
else
return 0;
}
enum pAdat// Ez tárolja el hogy kórházban van (relog miatt jól jön!!)
{
pKorhaz,//ezt tedd oda ahol tárolja a játékos adatait!!!!
};
// Ez a random spawnoláshoz kell én így szeretem és nem egyhejre dobja őket
new Float:KorhazSpawn[1][3] =
{
{1571.9646,-1809.2296,13.3828}
};//Ha több koordinitát adsz meg akkor írd át ezt KorhazSpawn[1](ugye egy koordináta van megadva!)és ha pl 3- van
// akkor így kell kinézni KorhazSpawn[3](TIPP!! ha nem tudod )
public OnPlayerDeath(playerid, killerid, reason)// ugye ha meghal akkor mit csináljon
{
pInfo[playerid][pKorhaz] = 1;// ez az mentésnél a pKorhazat 1-re állítja
return 1;
}
// ugye ha meghal akkor respawnol!
public OnPlayerSpawn(playerid)
{
// ez azt csinálja ha a pKorhaz érték nagyobb mint 0 akkor berakja a kórházban spawnolja
if(IsKorhazban(playerid))// ez a stock amit láttál, hogy lekérdezi nagyobbe 0-nál, ha nagyobb akkor ide spawnolja
{
Msg(playerid,ZOLD\"Mivel meghaltál így a koróházban ébredtél!\");// meghalt és lespawnolt így küldtünk neki egy üzenetet
new rand = random(sizeof(KorhazSpawn));// a rand szónak a hosszóságát beállítjuk a kórházspawn értékre (koordinitákra)
SetPlayerInterior(playerid,12): //ezt te állítsd be én random számot írtam
SetPlayerVirtualWorld(playerid,12); //ezt te állítsd be én random számot írtam
SetPlayerPos(playerid, KorhazSpawn[rand][0], KorhazSpawn[rand][1],KorhazSpawn[rand][2]);//ez ugye random kiválasztja a KorhazSpawn változóbol egy koordinátát
SetTimerEx(\"NoKorhaz\", 6000, 0, \"i\", playerid);// Milyen CallBackot hívjon meg | Mennyi idő múlva hívja meg | Ismétlődés (0 = nem ismétlődik | 1 =ismétlődés) \"i\"(passz ) | playerid ugye a játékosnak
// ez a timer hogy mikor engedje ki playert a kórházból
// 6000 az 6 másodperc
// 1000 mili sec 1 másodperc
// ezt neked kell beállítani hogy mennyi időre tegye be
}
// ha nem nagyobb, ugye 0 akkor arra a koordinátára spawnolja ahol kilépett
// EZ CSAK AKKOR KELL HA MENTI A POZÍCIÓT HA KILÉP DE EZT TE TUDOD HOGY HOGY VAN MEGCSINÁLVA!!
// EZ CSAK AKKOR KELL HA MENTI A POZÍCIÓT HA KILÉP DE EZT TE TUDOD HOGY HOGY VAN MEGCSINÁLVA!!
/*else
{
if(Regisztralva[playerid] == 1)
{
SetPlayerPos(playerid, pInfo[ playerid ][ spawnx ] , pInfo[ playerid ][ spawny ] , pInfo[ playerid ][ spawnz ]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
Nevekki(playerid);
}
}*/
return 1;
}
public NoKorhaz(playerid)// ez amit megfog hívni a timer
{
pInfo[playerid][pKorhaz] = 0;// it a kórház értéket vissza állítjuk 0-ra mert felépült
SetPlayerPos(playerid, 1479.7136,-1739.9442,13.5469);//ez azt csinálja ha felépül hova spawnolja
SetPlayerInterior(playerid, 0);//interiort beállítjuk 0-a
SetPlayerVirtualWorld(playerid, 0)// VirtualWorld-ot szintén 0-a állítjuk
Msg(playerid,-1,\"Felépültél!\");// és végül küldönk neki egy üzenetet hogy felépült
return 1;
}
Remélem érthető volt és tudtam segíteni