contract (Hitman-System) Hilfe benötigt

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 würde von euch hilfe bei meinem
    Hitman System benötigen.


    ich möchte das wenn ein Spieler einen contract hat
    und ein Hitman ihn tötet das der Spieler
    den Contract also (PVar,"Contracted",1) wieder auf 0 gesetzt bekommt,
    und der hitman dann 10k bekommt wenn er einen Spieler der Contracted ist tötet.


    Mein Befehl für Contract:

    ocmd:contract(playerid,params[])
    {
    if(GetPlayerMoney(playerid < 9999))return SendClientMessage(playerid,ROT,"Du hast nicht genügend Geld bei dir!");
    new pID,string[128];
    if(sscanf(params,"i",pID))return SendClientMessage(playerid,GRAU,"/contract ID");
    GivePlayerMoney(playerid,-10000);
    SetPVarInt(pID,"Contracted",1);
    if(GetPVarInt(playerid,"Fraktionsid")==2)
    {
    format(string,sizeof(string),"Ein neuer Auftrag ist verfügbar! Ziel: ID:%d",pID);
    SendClientMessage(playerid,GELB,string);
    }
    return 1;
    }



    stock:
    stock isPlayerContracted(playerid)
    {
    if(GetPVarInt(playerid,"Contracted")==1)return 1;
    return 0;
    }


    MfG

  • Hey,


    erstmal:


    if(GetPVarInt(playerid,"Fraktionsid")==2)
    {
    format(string,sizeof(string),"Ein neuer Auftrag ist verfügbar! Ziel: ID:%d",pID);
    SendClientMessage(playerid,GELB,string);
    }


    Diese Nachricht wird nur an den Spieler, der den Contract in Auftrag gibt, sofern er Fraktionsid 2 hat, gesendet.
    Wenn du willst, dass die Nachricht alle Hitmen bekommen, musst du die Spieler mit einer Schleife durchgehen.


    Zu deinem Problem:


    OnPlayerDeath benutzen..
    Wenn der Spieler einen Contract hat, killerid das Geld geben, die Variable auf 0 setzen.
    Kannst das System allerdings noch um /contract ID Summe ergänzen.. :)


    Grüße,
    tonyalva

  • hmmm ok...



    Zitat


    Diese Nachricht wird nur an den Spieler, der den Contract in Auftrag gibt, sofern er Fraktionsid 2 hat, gesendet.
    Wenn du willst, dass die Nachricht alle Hitmen bekommen, musst du die Spieler mit einer Schleife durchgehen.

    das versteh ich net ganz :/


    den 2. teil aber schon danke :>


  • for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPVarInt(i,"Fraktionsid")==2)
    {
    format(string,sizeof(string),"Ein neuer Auftrag ist verfügbar! Ziel: ID:%d",pID);
    SendClientMessage(i,GELB,string);
    }
    }


    So wäre es richtig...


    Und dann bei onPlayerDeath:


    if(isPlayerContracted(playerid) )
    {
    SetPVarInt(playerid,"Contracted",0);
    SetPlayerMoney(killerid,10000);
    }