Be szeretném mutatni szerzeményem :)
Ezt a Filterscriptet azoknak ajánlom akik nem tudják megoldani hogyha eghy játékos meghal a kórház elõtt spawnoljon...én így oldottam meg:
#include <a_samp>
#define FILTERSCRIPT
public OnFilterscriptInit(){
print(\"---------------------------------------------------\");
print(\"Respawn in hospital/Újraéledés a kórházban by CRaft\");
print(\"---------------------------------------------------\");
return 1;
}
public OnPlayerDeath(playerid){
SetTimer(\"death\", 4000);
return 1;
}
public death(playerid){
SetPlayerPos(playerid,1178.8407,-1324.4160,14.1400);
return 1;
}
Ennél sokkal praktikusabb, ha készítesz egy változót:
new bool:meghalt[MAX_PLAYERS];
Amikor meghal a játékos ezt a változót \'true\'(igaz) értékre állítod:
meghalt[playerid] = true;
Amikor spawnol leellenõrzöd, hogy most elsõ spawn, vagy halál utáni. Egyértelmû, hogyha elsõ spawn akkor a változónk értéke \'false\'
Tehát:
public OnPlayerSpawn(playerid)
{
if(meghalt[playerid] == true)
{
// ha meghalt
} else {
//ha nem halt meg..
}
}
Így még várni sem kell..
Ez pedig NEM mûködik. Miért?
1. SetTimerEx szükséges, mert így hol adod meg hogy melyik játékost teleportálja? Ha meg mégis \'mûködõképes\' akkor próbáljátok ki ketten.. nem fog menni..
2. \'forward\' lemaradt
3. SetTimernek is kimaradt egy funkciója. Helyesen:
SetTimer(\"death\",4000,false);
\'false\' tehát nem ismétlõdik.. Aki azt mondta kipróbálta nem kell hazudni.. A 3. pont kihagyása(még a második kihagyása esetén is) esetén a compiler sírni fog, hogy mûködésképtelen.. TÖBB helyen