Timer Problem

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Timer Problem

    Abend,

    ich habe zwei Probleme, zum ersten:

    Ich habe einen Timer, der nicht gestoppt wird.

    Code:
    [pwn] BotSpeakTimer[playerid] = SetTimerEx("BotGivesInstructions", 3000, true, "i", playerid);
    KillTimer(BotSpeakTimer[playerid]);[/pwn]

    Mein public:
    Display Spoiler
    [pwn]forward BotGivesInstructions(playerid);
    public BotGivesInstructions(playerid)
    {
    if(BotSpeakTimerRepeated[playerid] == 0)SendClientMessage(playerid, ORANGE, "(Handy)Vince: Ah, wie ich sehe ist deine Maschiene aus Los Santos angekommen."), TogglePlayerControllable(playerid, false), BotSpeakTimerRepeated[playerid] = 1;
    else if(BotSpeakTimerRepeated[playerid] == 1)SendClientMessage(playerid, ORANGE, "(Handy)Vince: Ich hoffe du hast meinen Koffer mitgebracht, der ist mir wichtig."), BotSpeakTimerRepeated[playerid] = 2;
    else if(BotSpeakTimerRepeated[playerid] == 2)SendClientMessage(playerid, ORANGE, "(Handy)Vince: Ich habe dir ein Auto bringen lassen, gehe zum Parkplatz."), BotSpeakTimerRepeated[playerid] = 3;
    else if(BotSpeakTimerRepeated[playerid] == 3)
    {
    KillTimer(BotSpeakTimer[playerid]);
    SetPlayerCheckpoint(playerid, 297.0922,-1611.5138,9.3450, 1);
    if(!TutorialCar[playerid])TutorialCar[playerid] = AddStaticVehicle(549, 294.1142,-1611.3387,9.0422,85.2324,-1,-1);
    for(new plID = 0; plID < MAX_PLAYERS; plID++)
    {
    if(plID == playerid) SetVehicleParamsForPlayer(TutorialCar[playerid], plID, 0, 1);
    else SetVehicleParamsForPlayer(TutorialCar[playerid], plID, 1, 1);
    }
    GetVehicleParamsEx(TutorialCar[playerid], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(TutorialCar[playerid], engine, lights, alarm, doors, bonnet, 1, objective);
    BotSpeakTimerRepeated[playerid] = 4;
    TogglePlayerControllable(playerid, true);
    }
    else if(BotSpeakTimerRepeated[playerid] == 5)SendClientMessage(playerid, ORANGE, "(Autofunk)Vince: Du hast das Auto gefunden, gut!"), BotSpeakTimerRepeated[playerid] = 6;
    else if(BotSpeakTimerRepeated[playerid] == 6)SendClientMessage(playerid, ORANGE, "(Autofunk)Vince: Fahr nun zur Bank, ich hab dir ein bisschen Geld überwiesen!"), BotSpeakTimerRepeated[playerid] = 7, TogglePlayerControllable(playerid, true), SetPlayerCheckpoint(playerid, 1320.1563,-249.3523,5.1534, 4), KillTimer(BotSpeakTimer[playerid]);
    SendClientMessage(playerid, GOLD, "%i- - _", BotSpeakTimerRepeated[playerid]);
    return 1;
    }[/pwn]


    Ingame wird per "SendClientMessage(playerid, GOLD, "%i- - _", BotSpeakTimerRepeated[playerid]);"

    nachdem es auf "BotSpeakTimerRepeated[playerid] = 4;" gestellt wurde, kommt immer "4- - _"

    weiß jemand was falsch ist?

    MfG
  • Na sicher ^^, aber er müsste den Timer trotzdem stoppen, schließlich lasse ich den stoppen.

    und hätte ich direkt bei dem public als nähchstes else if(BotSpeak[...] == 4), dann würde der nächste Text trotzdem aufgerufen werden.

    (Hier ist das mit BotSpeakTimerRepeated 4
    [pwn] new vID = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(vID == TutorialCar[playerid])
    {
    if(BotSpeakTimerRepeated[playerid] == 4)
    {
    TogglePlayerControllable(playerid, false);
    BotSpeakTimer[playerid] = SetTimerEx("BotGivesInstructions", 3000, true, "i", playerid);// Dieser Timer löst das dauerhafte timerlaufen NICHT aus.
    }
    }
    }[/pwn]