Szerző Téma: Hová kéne a KillTimer?  (Megtekintve 537 alkalommal)

Hová kéne a KillTimer?
« Dátum: 2016. május 15. - 12:31:49 »
0 Show voters
Tudom-tudom, nem azért vagytok, hogy helyettem gondolkozzatok, de a Timerekkel még nem vagyok 100% tisztában, ezért kéne egy kis segítség...a dolog egyszerű. Amikor a játékos meghal, elindítok egy 4,5 mp-s timert, ami ha lecseng, berakja a kórházba a játékost, megadja neki a változókat, stb. Erre ugye azért volt szükség, mert halál után egyből visszarakta a halál helyszínére. Mindegy, nem is ez a lényeg.
A dolog lényege az lenne, hogyha meghal, ötre rakja a Korhazban változóját, ami öt másodpercenként -1-el csökken, és ez addig tart, amíg ez a változója nagyobb, mint 0. Ha 0, akkor ki tud jönni a kórházajtón. Ez mind szép és jó, egészen szépen működik, azonban ha a játékos meghal, amíg kórházban van (Vagyis a változója nagyobb, mint 0) akkor valamiért egy idő után -1 lesz a változó...gondolom valahol kétszer számlálja, vagy nem tudom, gondoltam rá, hogy KillTimert kéne berakni, meg is csináltam, de csak rosszabb lett mint gondoltam. Mi lehet a probléma?
 
public OnPlayerDeath(playerid, killerid, reason)
{
SetTimerEx( \"korhazbaraktimer\", 4500, false, \"i\", playerid);
    Rendorszolg[playerid] = false;
    JatekosInfo[playerid][meghivas_aktiv] = false;
    JatekosInfo[playerid][visz] = false;
JatekosInfo[playerid][Animban] = 0;
JatekosInfo[playerid][Korhazban] = 5;
return 1;
}
public korhazbaraktimer (playerid);
public  korhazbaraktimer (playerid)
{
        SetPlayerPos(playerid,-204.2514,-1779.7922,675.7687);
        SetPlayerInterior(playerid, 3);
SetPlayerFacingAngle(playerid,0.0);
SetCameraBehindPlayer(playerid);
SendFormattedMessage(playerid,COLOR_LIGHTBLUE,\"(( Súlyosan megsérültél, ezért kórházba kerültél. ))\");
SetTimerEx(\"korhazido\", 5000, false, \"i\", playerid);
}
public korhazido (playerid);
public korhazido (playerid)
{
JatekosInfo[playerid][Korhazban] -= 1;
if(JatekosInfo[playerid][Korhazban] > 0)
{
SetTimerEx( \"korhazido\", 5000, false, \"i\", playerid);
}
}

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Hová kéne a KillTimer?
« Válasz #1 Dátum: 2016. május 15. - 15:38:31 »
+1 Show voters
Készítettem neked egy szkriptet ami halál után 5 perc múlva visszateleportál arra a pozra, ahol meghaltál. Nem teszteltem!
 
#include <a_samp>
new bool:meghalt[MAX_PLAYERS];
new Float:pPos[MAX_PLAYERS][4];
new Float:pos[MAX_PLAYERS][4];
forward KiemhetAKorhazbol(playerid);
public OnPlayerSpawn(playerid) {
if(meghalt[playerid] == true) {
meghalt[playerid] = false;
        SetPlayerPos(playerid,-204.2514,-1779.7922,675.7687);
        SetPlayerInterior(playerid, 3);
SetPlayerFacingAngle(playerid,0.0);
SetCameraBehindPlayer(playerid);
SetTimerEx(\"KiemhetAKorhazbol\", 60000*5, false, \"i\", playerid); // 5 Perc
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason) {
GetPlayerPos(playerid, pos[playerid][0], pos[playerid][1], pos[playerid][2]);
GetPlayerFacingAngle(playerid, pos[playerid][3]);
pPos[playerid][0] = pos[playerid][0];
pPos[playerid][1] = pos[playerid][1];
pPos[playerid][2] = pos[playerid][2];
pPos[playerid][3] = pos[playerid][3];
    meghalt[playerid] = true;
return 1;
}
public KiemhetAKorhazbol(playerid) {
GetPlayerPos(playerid, pPos[playerid][0], pPos[playerid][1], pPos[playerid][2]);
GetPlayerFacingAngle(playerid, pPos[playerid][3]);
SendClientMessage(playerid, -1, \"Az orvos szabadlábra helyezett de üzeni, hogy vigyázz magadra!\");
return 1;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal