Kopfgeld System

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 wollte bei meinem Selfmade nun das Hitman System zusammenstellen, habe aber einen kompletten Denkfehler im System glaube ich.
    Zumindest wollte ich euch mal fragen ob das System so funktionieren sollte, leider keinen zum testen da.


    For schleife durch alle Spieler, sollte die Variable "Kopfgeld" größer als 0 sein werden die Spieler aufgelistet untereinander.
    Sollte das gehen?


    ocmd:kopfgelder(playerid,params[])
    {
    if(!IsSpielerInFraktion(playerid,11))return SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Hitman.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht eingeloggt.");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Kopfgeld") >= 0)
    {
    new string[128];
    format(string,256,"%s: %i$ Kopfgeld",SpielerName(i),GetPVarInt(i,"Kopfgeld"));
    SendClientMessage(playerid,COLOR_GRAU,string);
    }
    }
    }
    return 1;
    }

  • ich hatte es so gemacht, weil ich dachte du willst es am ende in einem dialog ausgeben.
    Aber als du es editiert hast habe ich es ebenfalls verändert :)


    Achso alles klar, ich danke dir für deine Hilfe.


    //Edit: Habe das ganze System fertig, kann man mal drüberschauen ob es klappen könnte?


    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(GetPVarInt(playerid, "Kopfgeld") >= 0)
    {
    new str1[128],str2[128];
    GivePlayerMoney(killerid, GetPVarInt(playerid, "Kopfgeld"));
    format(str1, sizeof(str1), "[Kopfgeld] Auftrag erfolgreich ausgeführt (+$%d)!", GetPVarInt(playerid, "Kopfgeld"));
    format(str2, sizeof(str2), "[Kopfgeld] %s wurde begraben, Auftrag erledigt. %s hat's erledigt.", SpielerName(playerid), SpielerName(killerid));
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsSpielerInFraktion(playerid,11))
    {
    format(str1, sizeof(str1), "Hitman %s hat den Aufrag auf %s erfolgreich ausgeführt.", SpielerName(killerid), SpielerName(playerid));
    SendClientMessage(i,COLOR_GELB,str1);
    }
    }
    }
    SendClientMessage(killerid, COLOR_GELB, str2);
    SetPVarInt(playerid, "Kopfgeld", 0);
    }
    return 1;
    }


    ocmd:kopfgelder(playerid,params[])
    {
    if(!IsSpielerInFraktion(playerid,11))return SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Hitman.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht eingeloggt.");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Kopfgeld") >= 0)
    {
    new string[128];
    format(string,256,"%s: %i$ Kopfgeld",SpielerName(i),GetPVarInt(i,"Kopfgeld"));
    SendClientMessage(playerid,COLOR_GRAU,string);
    }
    }
    }
    return 1;
    }


    ocmd:kopfgeld(playerid, params[])
    {
    new Kopfgeld, pID;
    if(sscanf(params, "ud", pID, Kopfgeld))return SendClientMessage(playerid, COLOR_GRAU, "Benutze: /kopfgeld [ID/Teilname] [$]");
    if(GetPlayerMoney(playerid) <= Kopfgeld)return SendClientMessage(playerid,COLOR_GRAU,"Soviel Geld hast du nicht zur Verfügung.");
    new str1[128];
    SetPVarInt(pID, "Kopfgeld", GetPVarInt(pID, "Kopfgeld") +Kopfgeld);
    GivePlayerMoney(playerid, -Kopfgeld);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsSpielerInFraktion(playerid,11))
    {
    format(str1, sizeof(str1), "[Kopfgeld] Es wurde $%d auf %s ausgesetzt, Gesamt: $%d!", Kopfgeld, SpielerName(pID), GetPVarInt(pID, "Kopfgeld"));
    SendClientMessage(i,COLOR_GELB,str1);
    }
    }
    }
    return 1;
    }