>> Killtimer geht nicht <<

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo ich habe ein kleines Problem
    Und zwar habe ich wenn der Spieler stirbt einen Timer erstellt.
    Wenn der Timer abgelaufen ist Spawnt der Spieler im Himmel, das klappt auch Prima,
    doch das soll in der Regel nur passieren wenn der Spieler nicht wiederbelebt wird.
    Wenn er wiederbelebt wird soll der Timer ja eigentlich beendet sein. Als abgebrochen werden,
    das habe ich mit KIllTimer gemacht. Nun ist mein Problem aber, wenn ich ihn revive den Spieler mit /revive oder /arevive, dann muss ich machmal trotzdem noch in den Himmel. Der Timer wurde dann wohl nicht richtig gekillt oder zweimal erstellt dachte ich mir,
    denn vorher habe ich noch einen grösseren Bug gehabt, man spawnte ganz oft im Himmel, aber das habe ich behoeben. ich habe einfach den Timer nochmal im Himmel, also wenn er im Himmel spawnt gekillt, das klappt auch,. aber warum das andere nicht ???


    Hier mal die Codes


    Und die Befehle


    ocmd:arevive(playerid,params[])
    {
    new pid;
    if(sscanf(params,"u",pid)) return SendClientMessage(playerid,grau,"Benutze: /arevive [ID]");
    if(!IsPlayerConnected(pid))return SendClientMessage(playerid,weiss,"Ungültiger Spieler");
    if(pid==playerid)return SendClientMessage(playerid,weiss,"Du kannst dich nicht selber wiederbeleben");
    if(tod[pid]==1)
    if(GetPVarInt(playerid,"Adminlevel") >= 8)
    {
    TogglePlayerControllable(pid,1);
    SetPlayerHealth(pid,100);
    tod[pid]=0;
    KillTimer(timer1);
    new string [128];
    format(string, sizeof(string),"AdmCmd: %s wurde von %s wiederbelebt.",SpielerName(pid),SpielerName(playerid));
    SendClientMessageToAll(0x2a77a1AA,string);
    SetPlayerColor(pid,weiss);
    SetPVarInt(pid,"Godmode",0);//an
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(pid,X,Y,Z);
    new eric[128];
    format(eric,sizeof(eric),"*%s wurde von %s wiederbelebt (AdmCmd).",SpielerName(pid),SpielerName(playerid));
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i,25,X,Y,Z))
    {
    SendClientMessage(i,grau,eric);
    }
    }
    }
    else
    {
    SendClientMessage(playerid,orange,"Fehler: Du bist kein Admin 8/9/10");
    }
    return 1;
    }


    ocmd:revive(playerid,params[])
    {
    new pid;
    if(sscanf(params,"u",pid))return SendClientMessage(playerid,grau,"Benutze: /revive [ID]");
    if(pid==playerid)return SendClientMessage(playerid,weiss,"Du kannst dich nicht selber wiederbeleben");//die if abfrage da fragen wir ab ob pid deine id ist wenn ja kommt die message
    if(tod[pid]==1)
    if(IsPlayerInFrak(playerid,2))
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,x[pid],y[pid],z[pid]))
    {
    ApplyAnimation(playerid,"BOMBER","BOM_Plant",4.1,0,1,1,1,1);
    SetTimerEx("wiederbelebung",10000,false,"u",pid);
    SetTimerEx("makeanim",1000,false,"u",playerid);
    KillTimer(timer1);
    SendClientMessage(playerid,grau,"Du beginnst mit der Reanimation");
    new string [128];
    format(string, sizeof(string),"Du wirst von %s wiederbelebt",MeinName(playerid));
    SendClientMessage(pid,weiss,string);
    SetPlayerColor(playerid,weiss);
    GivePlayerMoney(playerid,120);
    GivePlayerMoney(pid,-120);
    SetPVarInt(pid,"Godmode",0);//an
    }
    }
    else
    {
    SendClientMessage(playerid,weiss,"Du bist kein Arzt");
    }
    return 1;
    }


    OnPlayerDeath
    Hier ist eig nichts besonderes


    public OnPlayerDeath(playerid, killerid, reason)
    {
    new killer[MAX_PLAYER_NAME], string[128];
    HasKey[playerid] = 0;
    Dienst[playerid] = 0;
    SetPlayerColor(playerid,weiss);
    gestorben[playerid] = 1;
    new Float:xx,Float:yy,Float:zz;
    GetPlayerPos(playerid,xx,yy,zz);
    x[playerid] = xx;
    y[playerid] = yy;
    z[playerid] = zz;
    inte[playerid] = GetPlayerInterior(playerid);
    SetPlayerPos(playerid,x[playerid],y[playerid],z[playerid]);
    GetPlayerName(killerid,killer,sizeof(killer));
    format(string,sizeof(string),"Der Mörder hieß: %s",killer);
    new Float:Xt,Float:Yt,Float:Zt;
    GetPlayerPos(playerid,Xt,Yt,Zt);
    CreatePickup(1254,1,Xt,Yt,Zt,-1);
    SendClientMessage(playerid,-1,string);
    SetPlayerInterior(playerid,inte[playerid]);
    PlayerPlaySound(playerid,1169,0,0,0);
    if(Maske[playerid] == 1)
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, playerid, 0);
    SetPlayerAttachedObject(playerid,1, 19036, 2, 0.107, 0.035, 0.0, 90, 90, 0);//Objekt erscheint
    }
    if(GetPlayerScore(killerid)>=3)
    {
    if(Dienst[playerid]==1)
    {
    if(IsPlayerInFrak(playerid,1)||IsPlayerInFrak(playerid,5)||IsPlayerInFrak(playerid,3)||IsPlayerInFrak(playerid,2)||IsPlayerInFrak(playerid,16))
    {
    if(Dienst[killerid]==0)
    {
    if(Maske[playerid]==0)
    {
    new rnd=random(2);
    if(rnd==0)
    if(SpielerInfo[killerid][Wanteds]<69)
    {
    new wps=30;
    new grund[64]="Beamtenmord";
    SpielerInfo[killerid][Wanteds]+=wps;
    if(SpielerInfo[killerid][Wanteds]>69){SpielerInfo[killerid][Wanteds]=69;}
    format(string,sizeof(string),"Wantedpunkte: %i Gesamt: %i Reporter: %s Grund: %s",wps,SpielerInfo[killerid][Wanteds],SpielerName(playerid),grund);
    SendClientMessage(killerid,rot,string);
    format(string,sizeof(string),"<<Gesuchter: %s Wantedpunkte: %i Gesamt: %i Reporter: %s Grund: %s>>",SpielerName(killerid),wps,SpielerInfo[killerid][Wanteds],SpielerName(playerid),grund);
    for (new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInFrak(i,1)&&!IsPlayerInFrak(i,5)&&!IsPlayerInFrak(i,16))continue;
    SendClientMessage(i,rot,string);
    }
    PlayCrimeReportForPlayer(killerid,playerid,22);
    }
    }
    }
    }
    }
    }
    return 1;
    }


    OnPlayerSpawn
    if(tod[playerid] == 1)
    {
    new Float:xx = x[playerid];
    new Float:yy = y[playerid];
    new Float:zz = z[playerid];
    SetPlayerPos(playerid,xx,yy,zz);
    SetPlayerInterior(playerid,inte[playerid]);
    GameTextForPlayer(playerid,"~r~Du bist verwundet.",2000,6);
    SendClientMessage(playerid,rot,"Du bist nun schwer Verletzt");
    timer1 = SetTimerEx("leben",480000,false,"u",playerid);
    SetPlayerHealth(playerid,11);
    SetPlayerColor(playerid,weiss);
    ApplyAnimation(playerid,"CRACK","crckdeth2",4.0,1,0,0,0,0);
    Dienst[playerid] = 0;
    SetPVarInt(playerid,"Godmode",1);//an
    }


    timer 1 ist der Timer


    Und noch mal der Public von den Timer
    forward leben(playerid);
    public leben(playerid)
    {
    TogglePlayerControllable(playerid,1);
    SetPlayerHealth(playerid,20);
    SetPlayerPos(playerid,1066.4554,-1279.8220,2005.9932);
    SetPlayerFacingAngle(playerid,230.5919);
    SetPlayerInterior(playerid,1);
    SetPlayerVirtualWorld(playerid,34);
    SetPlayerWeather(playerid,11);
    tod[playerid]=0;
    SendClientMessage(playerid,gelb,"Laufe ins Licht...");
    SetPVarInt(playerid,"Godmode",0);//aus
    SetPlayerHealth(playerid,100);
    SetPlayerArmour(playerid,0);
    SetPVarInt(playerid,"Godmode",0);//an
    KillTimer(timer1);
    return 1;
    }


    Woran liegst