Wie mache ich einen /accept ticket Befehl

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
  • Guten Tag,
    Ich würde gerne bei /fine (Cops and Robbers Server) eine /accept ticket funktion einbauen, denn derzeit ist es so wenn jemand 1/2 Wanteds hat und ein Cop /fine macht wird demjenige schon 5k abgezogen und die Wanteds werden gelöscht ohne das derjenige eine Möglichkeit hat das Ticket nicht zu bezahlen. Deswegen würde ich gerne eine /accept Ticket funktion einbauen, damit man erst wenn man /accept ticket eingibt die Wanteds weg sind und man 5 zahlen muss.
    Hier der Ausschnitt vom /fine.


    if(strcmp(cmd, "/fine", true) == 0)
    {
    if(gTeam[playerid] == TEAM_COPS)
    {
    new id;
    tmp = strtok(cmdtext, idx);
    if(strlen(tmp))
    {
    id = strval(tmp);
    if(IsPlayerConnected(id))
    {
    if(Jailed[id] == false)
    {
    if(GetPlayerWantedLevel(id) >= 1 && GetPlayerWantedLevel(id) <= 3)
    {
    if(GetDistanceBetweenPlayers(playerid,id) < 15)
    {
    if(playerspawned[playerid] == true)
    {
    GetPlayerName(id,sName, MAX_PLAYER_NAME);
    GetPlayerName(playerid,fName, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du gabst ein Ticket an Verbrecher %s [%i]",sName,id);
    SendClientMessage(playerid, 0xE4BC1BFF,string);
    format(string, sizeof(string), "Officer %s [%i] gab dir eine Geldstrafe von $5000. Du musst dieses Ticket bezahlen.",fName,playerid);
    SendClientMessage(id, 0xE4BC1BFF,string);
    format(string, sizeof(string), "Verbrecher %s [%i] bekam ein Ticket von %s [%i].",sName,id,fName,playerid);
    SendClientMessageToAll(0x80FF00FF,string);
    SetPlayerWantedLevel(id, 0);
    GivePlayerMoney(id, -5000);
    GivePlayerMoney(playerid, 5000);
    SetPlayerScore(playerid, GetPlayerScore(playerid)+1);
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Du bist Tot, du kannst keinen Verbrecher verhaften.");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Dieser Spieler ist nicht in deiner Nähe!");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Diesem Spieler kannst du kein Ticket geben!");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Dieser Spieler ist im Gefängniss, du kannst ihm kein Ticket geben.");
    }
    }
    else
    {
    SendClientMessage(playerid, RED, "Spieler wurde nicht gefunden.");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Benutze: /fine [id]");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Nur Cops können diesen Befehl benutzen!");
    }
    return 1;
    }

  • Bei /fine


    SetPVarInt(id,"ticket",1);


    und


    ocmd_acceptticket(playerid);
    {
    if(GetPVarInt(playerid,"ticket")==1)
    {
    GivePlayerMoney(playerid,-5000);
    SetPVarInt(playerid,"ticket",0);
    SendClientMessage(playerid,GELB,"Du hast das Ticket bezahlt."
    }
    return SendClientMessage(playerid,GRAU,"Keiner hat dir ein Ticket ausgestellt!");
    }



    Müsste funktionieren :D
    Korriegiert mich, falls nicht.


  • Wenn er denn überhaupt ocmd nutzt :D
    Dein Ocmd sieht dann so aus
    ocmd:acceptticket(playerid,params[])
    {
    if(GetPVarInt(playerid,"ticket"))
    {
    GivePlayerMoney(playerid,-5000);
    SetPVarInt(playerid,"ticket",0);
    SendClientMessage(playerid,GELB,"Du hast das Ticket bezahlt."
    }
    return SendClientMessage(playerid,GRAU,"Keiner hat dir ein Ticket ausgestellt!");
    }


    strcmp so:
    if(strcmp(cmd, "/fine", true) == 0)
    {
    if(GetPVarInt(playerid,"ticket"))
    {
    GivePlayerMoney(playerid,-5000);
    SetPVarInt(playerid,"ticket",0);
    SendClientMessage(playerid,GELB,"Du hast das Ticket bezahlt."
    }
    return SendClientMessage(playerid,GRAU,"Keiner hat dir ein Ticket ausgestellt!");
    }

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Kann mir mal bitte jemand das so machen wie ich das genau einfügen muss weil ich blick hier grad nicht mehr durch ^^

    2 Mal editiert, zuletzt von GaTe7 () aus folgendem Grund: Satz gab irgendwie keinen Sinn

  • Probiers mal so:
    Kanns nicht testen, da ich deine Abfragen nicht definiert hab...



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmd, "/fine", true) == 0)
    {
    if(gTeam[playerid] == TEAM_COPS)
    {
    new id;
    tmp = strtok(cmdtext, idx);
    if(strlen(tmp))
    {
    id = strval(tmp);
    if(IsPlayerConnected(id))
    {
    if(Jailed[id] == false)
    {
    if(GetPlayerWantedLevel(id) >= 1 && GetPlayerWantedLevel(id) <= 3)
    {
    if(GetDistanceBetweenPlayers(playerid,id) < 15)
    {
    if(playerspawned[playerid] == true)
    {
    GetPlayerName(id,sName, MAX_PLAYER_NAME);
    GetPlayerName(playerid,fName, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du gabst ein Ticket an Verbrecher %s [%i]",sName,id);
    SendClientMessage(playerid, 0xE4BC1BFF,string);
    format(string, sizeof(string), "Officer %s [%i] gab dir eine Geldstrafe von $5000. Du musst dieses Ticket bezahlen.",fName,playerid);
    SendClientMessage(id, 0xE4BC1BFF,string);
    SetPVarInt(id,"ticket",1);
    format(string, sizeof(string), "Verbrecher %s [%i] bekam ein Ticket von %s [%i].",sName,id,fName,playerid);
    SendClientMessageToAll(0x80FF00FF,string);
    SetPlayerWantedLevel(id, 0);
    GivePlayerMoney(id, -5000);
    GivePlayerMoney(playerid, 5000);
    SetPlayerScore(playerid, GetPlayerScore(playerid)+1);
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Du bist Tot, du kannst keinen Verbrecher verhaften.");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Dieser Spieler ist nicht in deiner Nähe!");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Diesem Spieler kannst du kein Ticket geben!");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Dieser Spieler ist im Gefängniss, du kannst ihm kein Ticket geben.");
    }
    }
    else
    {
    SendClientMessage(playerid, RED, "Spieler wurde nicht gefunden.");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Benutze: /fine [id]");
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000AA, "Nur Cops können diesen Befehl benutzen!");
    }
    return 1;
    }
    if(strcmp(cmd, "/acceptticket", true) == 0)
    {
    if(GetPVarInt(playerid,"ticket"))
    {
    GivePlayerMoney(playerid,-5000);
    SetPVarInt(playerid,"ticket",0);
    SendClientMessage(playerid,GELB,"Du hast das Ticket bezahlt."
    }
    return SendClientMessage(playerid,GRAU,"Keiner hat dir ein Ticket ausgestellt!");
    }

    Einmal editiert, zuletzt von n0skillg3t ()