Hitman Problem

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
  • Also erstmal Hi Leute,
    Ich hab heut morgen nen Hitman System gebaut soweit klappt es auch man kann Hitman setzen bla bla bla hier der Command erstmmal:


    dcmd_hitman(playerid,params[])
    {
    new levelsetter[MAX_PLAYER_NAME];
    new ThePlayer[MAX_PLAYER_NAME],pID;
    new string[128];
    new string1[128];
    if(sscanf(params, "ui",pID,hitmangeld))
    {
    return ClientLanguageText(playerid,hellrot,"[ERROR] Benutze: /hitman [ID] [Geld]","[ERROR] Use: /hitman [ID] [Money]");
    }
    if(GetPlayerMoney(playerid) < hitmangeld) return ClientLanguageText(playerid,hellrot,"[ERROR] Du hast nicht den gewünschten Betrag den du an den Spieler vergeben möchtest","You do not have the desired amount you want the award to the player");
    if (pID == INVALID_PLAYER_ID)
    {
    return ClientLanguageText(playerid,hellrot,"[ERROR] Spieler ist nicht online!","[ERROR] Player is not online");
    }
    if(hitmangeld < 1 || hitmangeld > 500000)
    {
    ClientLanguageText(playerid,hellrot,"Du kannst nicht weniger als 1$ und nicht mehr als 100000$ als Kopfgeld setzen.","You can not give less than 1$ and not more than $100,000 as hitman.");
    }
    else
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerLanguage[i] == 0)
    {
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    GetPlayerName(playerid,levelsetter,sizeof(levelsetter));
    hitmangesamt[pID] += hitmangeld;
    format(string,sizeof(string),"[HITMAN] %s setzt %i$ auf %s [Gesamt: %i$]",levelsetter,hitmangeld,ThePlayer,hitmangesamt[pID]);
    SendClientMessageToAll(gelb,string);
    GivePlayerCash(playerid,-hitmangeld);
    hathitman[pID] = 1;
    return 1;
    }
    if(PlayerLanguage[i] == 1)
    {
    hitmangesamt[pID] += hitmangeld;
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    GetPlayerName(playerid,levelsetter,sizeof(levelsetter));
    format(string1,sizeof(string1),"[HITMAN] %s set $%i on %s [Total: $%i]",levelsetter,hitmangeld,ThePlayer,hitmangesamt[pID]);
    SendClientMessageToAll(gelb,string1);
    GivePlayerCash(playerid,-hitmangeld);
    hathitman[pID] = 1;
    return 1;
    }
    }
    }
    return 1;
    }


    Die Definierungen:

    //hitman
    new hitmangeld;
    new hathitman[MAX_PLAYERS];
    new hitmangesamt[MAX_PLAYERS];


    So alles klappt soweit wie ich es oben geschrieben habe nun bei OnPlayerDeath. Also man tötet den Spieler aber der getötet bekommt auch das Hitmangeld genauso wie der Spieler der ihn tötet. Dannach kommt diese Message die fehlerhaft am Ende ist aber ich nicht den Fehler darin finde.


    [HITMAN] W4RFiGhTeR [ID:3] hat Wael gekillt. [Belohnung: is$]


    kommt dann......
    Pic:



    Hier der Hitman ausschnitt aus OnPlayerDeath:

    if(hathitman[playerid] == 1)
    {
    new string[128],string1[128],pName[MAX_PLAYER_NAME],playername[MAX_PLAYER_NAME];
    GetPlayerName(killerid,pName,MAX_PLAYER_NAME);
    GetPlayerName(killerid,pName,sizeof pName);
    GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
    GetPlayerName(playerid,playername,sizeof playername);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerLanguage[i] == 0)
    {
    format(string,sizeof(string),"[HITMAN] %s [ID:%d] hat %s gekillt. [Belohnung: %i$]",pName,killerid,playername,hitmangesamt[playerid]);
    SendClientMessageToAll(gelb,string);
    GivePlayerCash(killerid,hitmangesamt[playerid]);
    hitmangesamt[playerid] = 0;
    hathitman[playerid] = 0;
    return 1;
    }
    if(PlayerLanguage[i] == 1)
    {
    format(string1,sizeof string1,"[HITMAN] %s [ID:%d] has killed %s. He become $%i Hitman",pName,killerid,playername,hitmangesamt[playerid]);
    SendClientMessageToAll(gelb,string1);
    GivePlayerCash(killerid,hitmangesamt[playerid]);
    hitmangesamt[playerid] = 0;
    hathitman[playerid] = 0;
    return 1;
    }
    }
    }


    Ich hoffe jemand kann den Fehler finden ich wäre aufjedenfall sehr dankbar.. ;)



    MFG pinguin



    //Edit Hab Fehler gefunden hatte die selbe Abfrage 2 mal in OnPlayerDeath drin deswegen ging es nicht
    Closed^^

    Einmal editiert, zuletzt von RezZ ()