Killtimer PRob

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
  • Ich habe ei nScript in dem man im Sekunden TAkt zu etwas geportet wird und ganz am schluss nach ca. 41 Sekunden wird der TImer gekillt aber immer nur eine ID wird danach nichtmehrgeportet


    public anschnallen3(playerid)
    {
    new
    Float:x,
    Float:y,
    Float:z;


    GetObjectPos(kabine2,x,y,z);
    SetPlayerPos(playerid,x,y+2,z);
    SetTimer("anschnallen4",41000,0);
    return 1;
    }


    public anschnallen4(playerid)
    {
    KillTimer(anschnallent2);
    KillTimer(anschnallent);
    return 1;
    }


    if (strcmp("/anschnallen", cmdtext, true, 10) == 0)
    {
    if (mimi == 0 && PlayerToPoint(3.0, playerid,2479.9416503906, -1669.4536132813, 14.607028961182)){
    anschnallent = SetTimerEx("anschnallen",150,1,"i",playerid);
    SendClientMessage(playerid,COLOR_RED,"Du sitzt in Kabine1");
    }
    if (mimi == 0 && PlayerToPoint(3.0, playerid,2490.7023925781, -1662.8376464844, 14.498414993286)){
    anschnallent2 = SetTimerEx("anschnallen3",150,1,"i",playerid);
    SendClientMessage(playerid,COLOR_RED,"Du sitzt in Kabine2");


    }
    if (mimi == 1){
    SendClientMessage(playerid,COLOR_RED,"Du kannst dich nicht anschnallen während Der Freefall Tower noch fällt");
    }

    return 1;
    }

    Einmal editiert, zuletzt von Tirus ()

  • public anschnallen4(playerid)
    {
    KillTimer(anschnallent2);
    KillTimer(anschnallent);
    return 1;
    }


    Hiereine Forschleife machen, da sonst wie der Kollege schon meinte nur der Timer von playerid entfreezt wird. oder gar ein public universiell für alle stellen.

  • habe die FOr shcleife so ist das richtig ?


    public anschnallen4(playerid)
    {
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if (IsPlayerConnected(i))
    {
    KillTimer(anschnallent2);
    KillTimer(anschnallent);
    }
    }
    return 1;
    }


    if (mimi == 2 && PlayerToPoint(3.0, playerid,2479.9416503906, -1669.4536132813, 14.607028961182)){
    anschnallent = SetTimerEx("anschnallen",50,1,"i",playerid);
    SendClientMessage(playerid,COLOR_RED,"Du sitzt in Kabine1");
    }
    if (mimi == 2 && PlayerToPoint(3.0, playerid,2490.7023925781, -1662.8376464844, 14.498414993286)){
    anschnallent2 = SetTimerEx("anschnallen3",50,1,"i",playerid);
    SendClientMessage(playerid,COLOR_RED,"Du sitzt in Kabine2");

    3 Mal editiert, zuletzt von Tirus ()

  • Der TImer lässt sic hauch nur 1mal Starten O.o


    wenn man einmal gefahren ist und der Timer gekillt wird was nicht klappt wenn 2 den Timer benutzt haben dann wird nur für einen gekillt naja dieser bei dem es geklappt hat der kann sich dann nciht nochmal in KAbine 1 anschnallen wenn er schonmal sich bei KAbine 1 Angeschnallt hat dann kommt nur noch der Text di sitzt in Kabine 1.//EDIT: Okay wenn ma neine weile abwartet geht es dan nweider


    public OnPlayerCommandText(playerid, cmdtext[])
    {


    if (strcmp("/freefall", cmdtext, true, 10) == 0)
    {
    SetPlayerPos(playerid, 2465.2377929688, -1659.3934326172, 13.310156822205);
    return 1;
    }

    if (strcmp("/go", cmdtext, true, 10) == 0)
    {
    if (mimi == 1)
    {
    GameTextForPlayer(playerid,"Der Freefall Tower läuft momentan schon",1000,3);
    }
    if (!PlayerToPoint(40,playerid,2479.9416503906, -1669.4536132813, 14.607028961182))
    {
    GameTextForPlayer(playerid,"Du musst in der Grove Street stehen um den Tower zu starten !",1000,3);
    }
    if (mimi == 0 && PlayerToPoint(40,playerid,2479.9416503906, -1669.4536132813, 14.607028961182))
    {

    GameTextForAll("Tower startet in 15 sekunden !",4000,3);
    SendClientMessageToAll(COLOR_RED,"Wenn du auf einer Kabine bist tippe /anschnallen dass du nicht rausfliegst");
    SetTimer("countdown",15000,0);
    mimi = 2;
    }

    return 1;
    }

    if (strcmp("/anschnallen", cmdtext, true, 10) == 0)
    {
    if (mimi == 2 && PlayerToPoint(3.0, playerid,2479.9416503906, -1669.4536132813, 14.607028961182)){
    anschnallent = SetTimerEx("anschnallen",50,1,"i",playerid);
    SendClientMessage(playerid,COLOR_RED,"Du sitzt in Kabine1");
    }
    if (mimi == 2 && PlayerToPoint(3.0, playerid,2490.7023925781, -1662.8376464844, 14.498414993286)){
    anschnallent2 = SetTimerEx("anschnallen3",50,1,"i",playerid);
    SendClientMessage(playerid,COLOR_RED,"Du sitzt in Kabine2");


    }
    if (mimi == 1){
    SendClientMessage(playerid,COLOR_RED,"Du kannst dich nicht anschnallen während Der Freefall Tower noch fällt");
    }
    if (mimi == 0){
    SendClientMessage(playerid,COLOR_RED,"Du kannst dich erst anschnallen wenn der Tower gestartet wurde");
    }

    return 1;
    }

    return 0;
    }


    public anschnallen(playerid)
    {
    new
    Float:x,
    Float:y,
    Float:z;


    GetObjectPos(kabine1,x,y,z);
    SetPlayerPos(playerid,x-2,y,z);
    SetTimer("anschnallen2",51000,0);
    return 1;
    }


    public anschnallen2(playerid)
    {
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if (IsPlayerConnected(i))
    {
    KillTimer(anschnallent2);
    KillTimer(anschnallent);
    }
    }
    return 1;
    }


    public anschnallen3(playerid)
    {
    new
    Float:x,
    Float:y,
    Float:z;


    GetObjectPos(kabine2,x,y,z);
    SetPlayerPos(playerid,x,y+2,z);
    SetTimer("anschnallen4",51000,0);
    return 1;
    }


    public anschnallen4(playerid)
    {
    for(new i = 0; i < GetMaxPlayers(); i++) {
    if (IsPlayerConnected(i)) {
    KillTimer(anschnallent2);
    KillTimer(anschnallent);
    }
    }
    return 1;
    }

    2 Mal editiert, zuletzt von Tirus ()