Probleme mit OnPlayerDeath und strcmp

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
  • Hallo


    Ich habe ein Problem mit meinem Hitmansystem. Wenn ich den Code im Gamemod benutze bekomme ich beim Killen eines Spielers, sofern er Auftrag ist, kein Geld. Ich habe dann das ganze extern getestet und die Werte gesetzt - dort ging es. Für mich gibt es 2 Möglichkeiten, die das nicht Auslösen verursachen können. Das wären falsche Werte oder der Abbruch des Callbacks.


    Ich poste einfach mal meinen Code:


    OnPlayerDeath
    for(new hitmanid=0;hitmanid<MAX_AUFTRAEGE;hitmanid++)
    {
    if(!strcmp(HitmanSystem[hitmanid][Opfer], PlayerName[playerid]) && !strcmp(HitmanSystem[hitmanid][Taeter], PlayerName[killerid]))
    {
    new string[100];
    GivePlayerMoney(killerid,HitmanSystem[hitmanid][Geld]);
    format(string,sizeof(string),"Du hast erfolgreich dein Auftragsopfer %s getötet und erhälst %d Dollar",PlayerName[playerid],HitmanSystem[hitmanid][Geld]);
    SendClientMessage(killerid,COLOR_GREEN,string);
    format(HitmanSystem[hitmanid][Opfer],30,"%s","Keiner");
    format(HitmanSystem[hitmanid][Taeter],30,"%s","Keiner");
    HitmanSystem[hitmanid][Geld] = 0;
    HitmanSystem[hitmanid][SlotWert] = 0;
    HitmanSystem[hitmanid][Status] = 0;
    SendFraktionMessage(9, COLOR_GREEN,"Ein Auftrag wurde ausgeführt");
    return 1;
    }
    }


    Hier das Menü, wo die Werte gespeichert werden:


    if(dialogid == HitmanMenu)
    {
    if(!response) return 1;
    if(response)
    {
    if(HitmanSystem[listitem][SlotWert] == 0) return SendClientMessage(playerid,COLOR_GREY,"Dieser Slot ist mit keinem Auftrag belegt");
    if(HitmanSystem[listitem][Status] == 1) return SendClientMessage(playerid,COLOR_GREY,"Dieses Auftrag wird bereits von jemanden ausgeführt");
    for(new hitmanid=0; hitmanid<MAX_AUFTRAEGE; hitmanid++)
    {
    if(strmatch(HitmanSystem[hitmanid][Taeter],PlayerName[playerid])) return SendClientMessage(playerid,COLOR_GREY,"Du führst bereits einen Auftrag aus");
    }
    format(HitmanSystem[listitem][Taeter],30,"%s",PlayerName[playerid]);
    HitmanSystem[listitem][Status] = 1;
    SendClientMessage(playerid,COLOR_GREEN,"Auftrag angenommen.Du kannst die Informationen mit /opfer ansehen");
    return 1;
    }
    }


    Ich wäre euch sehr dankbar, wenn jemand einen Fehler sieht.
    MfG dUDA