Hitman Kill

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
  • Hey,
    Auf meinem Server funktioniert der Hitman Kill nicht, man bekommt kein Geld und keine Nachricht.
    Dabei hätte ich so gerne doch die Fraktion Hitman :P


    Es handelt sich um ein GF Edit ohne /givehit und so ne kacke


    Der Auftragskill:


    if(PlayerInfo[playerid][pHeadValue] > 0)
    {
    if(IsPlayerConnected(killerid))
    {
    if(PlayerInfo[killerid][pMember] == 8 || PlayerInfo[killerid][pLeader] == 8)
    {
    ConsumingMoney[killerid] = 1;
    new killer[MAX_PLAYER_NAME];
    GetPlayerName(killerid, killer, sizeof(killer));
    GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]/2);
    new fkasse = PlayerInfo[playerid][pHeadValue]/2;
    FraktionsKasse[7] += fkasse;
    format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und bekommt: $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]/2);
    SendFamilyMessage(8, COLOR_YELLOW, string);
    PlayerInfo[playerid][pHeadValue] = 0;
    }
    }
    }


    Ich hab schon sehr viel Probiert und auch von anderen GF Edits die "Contractkills" getestet aber irgendwie funktioniert nichts :/
    Bei /aufträge stehen die Personen mit Contract aber da!
    Function SearchingHit(playerid)
    {
    new string[256], name[MAX_PLAYER_NAME];
    SendClientMessage(playerid, COLOR_WHITE, "|__________________ Hitman Agency News __________________|");
    SendClientMessage(playerid, COLOR_DBLUE, "*** Hitman Agency: Aktuelle Contractlist: ***");
    for(new i=0; i<SLOTS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pHeadValue] > 0)
    {
    GetPlayerName(i, name, sizeof(name));
    format(string, sizeof(string), "Person: %s ID: %d", name, i);
    SendClientMessage(playerid, COLOR_DBLUE, string);
    }
    }
    }
    SendClientMessage(playerid, COLOR_WHITE, "|_______________________________________________________|");
    return 0;
    }


    Und hier noch der /contract Befehl:
    if(strcmp(cmd, "/contract", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /contract [playerid] [Betrag]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /contract [playerid] [Betrag]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 10000 || moneys > 200000) { SendClientMessage(playerid, COLOR_GREY, " Die Vertragssumme muß mindestens $10000-, aber nicht mehr als $200000 betragen!"); return 1; }
    if(PlayerInfo[playerid][pLevel] < 2)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du mußt mindestens Level 2 haben um einen Vertrag zu erstellen.");
    return 1;
    }
    if(IsPlayerInFrac(playerid, 8))
    {
    SendClientMessage(playerid, COLOR_GRAD1, " * Du bist Hitman du darfst kein Contract geben.");
    return 1;
    }
    if (IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(PlayerInfo[giveplayerid][pMember] == 8 && PlayerInfo[playerid][pLeader] == 8)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst keine Verträge mit deiner eigenen Agentur abschließen!");
    return 1;
    }
    else if(PlayerInfo[giveplayerid][pLeader] == 8 && PlayerInfo[playerid][pMember] == 8)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst keine Verträge mit deiner eigenen Agentur abschließen!");
    return 1;
    }
    else if(PlayerInfo[giveplayerid][pMember] == 8||PlayerInfo[giveplayerid][pLeader] == 8 || IsPlayerInFrac(giveplayerid,4) || IsPlayerInFrac(giveplayerid,9) || IsPlayerInFrac(giveplayerid,11) || IsPlayerInFrac(giveplayerid,24))
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst diesen Spieler nicht unter /contract nehmen !");
    return 1;
    }
    else if(IsPlayerNPC(giveplayerid))
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Dieser Spieler ist ein Bot !");
    return 1;
    }
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber unter Vertrag nehmen!"); return 1; }
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    playermoney = GetPlayerMoney(playerid);
    if (moneys > 0 && playermoney >= moneys)
    {
    GivePlayerMoney(playerid, (0 - moneys));
    PlayerInfo[giveplayerid][pHeadValue]+=moneys;
    format(string, sizeof(string), "Jemand möchte das ein Hitman die Zielperson: %s tötet.", giveplayer);
    SendFamilyMessage(8, COLOR_YELLOW, string);
    format(string, sizeof(string), "* Du hast einem Hitman den Auftrag zur Beseitigung von %s für $%d erteilt.",giveplayer, moneys);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Falsche Angaben!");
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d ist kein Aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }
    return 1;
    }
    Hat jemand ne Idee wie ich es zum laufen bekomme? :(


    Würde auch wenns klappt ca. 3 EUR Nitradoguthaben geben^^


    mfg


    //Edit: Hab vergessen zu schreiben das der Contract nach dem Kill auch nicht entfernt wird.. habs mit Print mal versucht irgendwie wird nichts davon ausgeführt?! :S Ich verzweifel noch wegen den Hitmans..

  • Eben nach einem Restart ging das mit dem Contractkill bei mir noch!!!!
    Nach den ersten 10 Kills oder so auf dem Server hats wieder angefangen, es ging nicht mehr und es kam wieder dieser fehler:


    [01:04:15] [debug] Run time error 4: "Array index out of bounds"
    [01:04:15] [debug] Accessing element at negative index -14
    [01:04:15] [debug] AMX backtrace:
    [01:04:15] [debug] #0 0039846c in ?? () from WCRbest.amx
    [01:04:15] [debug] #1 0003c9f4 in public OnPlayerDeath () from Script.amx


    http://pastebin.com/wLJ2xT4g


    //edit: Ja die Hitman Fraktion ist ID 8 & Bei Selbstmord kommt im Serverlog auch immer ein Fehler:
    //Edit: //push bitte brauche unbedingt hilfe, das problem ist immernoch + Pastebin erneuert