Selbstmord?! :O

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
  • Abend,



    Terroristen können Selbstmord machen da steht inGame nach jeden Selbstmord zwar "Du kannst erst wieder in 30Min ...blabla" jedoch kann man nach jede 2 Sekunden??


    Wo liegt hier der Fehler??



    if(strcmp(cmd, "/selbstmord", true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20 || PlayerInfo[playerid][pRank] == 2)
    {
    if(SelfStatus == 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du kannst dich nur alle 30 Minuten selber Hochjagen.");
    }
    else
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z );
    SetTimer("SAbkling", 1800, 0);
    GameTextForPlayer(playerid, "~r~ B.o.o.o.o.m", 5000, 3);
    SendClientMessage(playerid, COLOR_LIGHTRED, ".:Selbstmord ist keine Lösung:.");
    WantedPoints[playerid] += 2;
    SetPlayerCriminal(playerid,255, "Selbstmord");
    GivePlayerMoney(playerid,5000);
    SelfStatus = 1;
    if (IsPlayerInAnyVehicle(playerid))
    {
    GetPlayerVehicleID(playerid);
    SetVehicleHealth(playerid,0);
    CreateExplosion(x,y,z,6,2);
    CreateExplosion(x,y,z,7,2);
    }
    else
    {
    SetPlayerHealth(playerid,10);
    CreateExplosion(x,y,z,6,2);
    CreateExplosion(x,y,z,7,2);
    }
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsACop(i))
    {
    SendClientMessage(i,COLOR_RED,"BOMBENALARM: Selbstmord Anschlag!");
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "*Du bist kein Terrorist.");
    }
    return 1;
    }

  • Und denke am besten auch darüber nach, die Variable SelfStatus als Array zu erstellen (SelfStatus[MAX_PLAYERS]).
    Ansonsten gibt es nämlich eine globale Abklingzeit für alle Spieler zusammen, was ja denke ich nicht wirklich ist, was du willst.
    Dann dementsprechend den Timer auch bearbeiten (SetTimerEx("SAbkling", 180000, false, "i", playerid)) und natürlich im Timer-public selbst die SelfStatus[playerid] wieder auf 0 setzen.


    Mit freundl. Grüßen
    Padarom

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger