[Bug] Hitman Contract

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
  • Es gibt ein bug,
    unzwar wenn einer Contract draufsetzt...
    z.B.
    ID:0 tut auf ID:1 50000$ contract


    ID:2 = Hitman, killt ID:1 und bekommt 50000$
    Allerdings wir nun 50000$ von ID:1 abgezogen
    und ID:0 hat nix dafür bezahlt...


    Wie kann ich machen, das ID:0 das geld abgezogen wird, sobald er contract setzt?
    und ID: 1 soll NICHTS abgezogen werden


    PRACKTISCH
    ID: 2 = HITMAN
    ID: 0 = /contract 1 50000$
    ID: 1 = Stirbt und verliert 50000$,
    obwohl das einglich ID:0 zahlen soll, denn er bezahlt/befiehlt den auftrag




    //EDIT:
    könnt mich gerne fragen, ob ich was reintun soll...
    also den /contract befehl oder so...?

    2 Mal editiert, zuletzt von Ill ()

  • lol, warum sollten wir dich fragen?
    Das ist selbstverständlich das du den Codeschnipsel mit rein postest.
    Ansonsten können wir dir nicht helfen.

  • Ja, das schon klar...


    Aber welchen?


    Ihn hier?


    if(strcmp(cmd, "/contract", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /contract [playerid/PartOfName] [amount]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /contract [playerid/PartOfName] [amount]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 5000 || moneys > 100000) { SendClientMessage(playerid, COLOR_GREY, " Nicht weniger als $5000 oder mehr als $100000!"); return 1; }
    if(PlayerInfo[playerid][pLevel] < 1)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du musst lvl 1Sein.");
    return 1;
    }
    if (IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(PlayerInfo[giveplayerid][pMember] == 8 && PlayerInfo[playerid][pMember] == 8)
    {
    SendClientMessage(playerid, COLOR_GREY, " Cannot place Contracts on your own Agency!");
    return 1;
    }
    else if(PlayerInfo[giveplayerid][pLeader] == 8 && PlayerInfo[playerid][pMember] == 8)
    {
    SendClientMessage(playerid, COLOR_GREY, " Cannot place Contracts on your own Agency!");
    return 1;
    }
    else if(PlayerInfo[giveplayerid][pMember] == 8||PlayerInfo[giveplayerid][pLeader] == 8)
    {
    SendClientMessage(playerid, COLOR_GREY, " Can't contract a Hitman !");
    return 1;
    }
    if(gTeam[giveplayerid] == 2 && moneys != 20000)
    {
    SendClientMessage(playerid, COLOR_GREY, " Bei Cops mindestens 20000$ Aufträge!");
    return 1;
    }
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "You cannot Contract yourself!"); return 1; }
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    playermoney = GetPlayerPCash(playerid);
    if (moneys > 0 && playermoney >= moneys)
    {
    GivePlayerMoney(playerid, (0 - moneys));
    PlayerInfo[giveplayerid][pHeadValue]+=moneys;
    format(string, sizeof(string), "%s hat ein Kopfgeld auf %s ausgesetzt, Lohn $%d.",sendername, giveplayer, moneys);
    SendFamilyMessage(8, COLOR_YELLOW, string);
    format(string, sizeof(string), "* Du hast ein kopfgeld auf %s ausgesetzt, Lohn $%d.",giveplayer, moneys);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Invalid transaction amount.");
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d is not an active player.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }
    return 1;
    }


    oder das hier?


    if(PlayerInfo[playerid][pHeadValue] > 0)
    {
    if(IsPlayerConnected(killerid))
    {
    if(gTeam[killerid] == 10 || PlayerInfo[killerid][pLeader] == 8)
    {
    if(GoChase[killerid] == playerid)
    {
    //ConsumingMoney[killerid] = 1;
    new killer[MAX_PLAYER_NAME];
    GetPlayerName(killerid, killer, sizeof(killer));
    GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]);
    format(string,128,"<< Hitman %s hat den Vertrag mit %s vervollständigt und %d$ gesammelt. >>",killer,name,PlayerInfo[playerid][pHeadValue]);
    SendFamilyMessage(8, COLOR_YELLOW, string);
    PlayerInfo[playerid][pHeadValue] = 0;
    GotHit[playerid] = 0;
    GetChased[playerid] = 999;
    GoChase[killerid] = 999;
    }
    }
    }
    }