| Eisverkäufer - Befehl - Hilfe |

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
  • Liebe Community,
    Ich benötige mal wieder... eure Hilfe. Ich weiß leider nicht bzw. ich habe null Ahnung wie ich ein Befehl für den Eisverkäufer machen kann.
    Der Befehl wäre:


    /gebeeis [ID] [Preis] (Verkäufer)


    /eisannehmen ja / nein (Käufer)



    Ich hoffe ihr könnt helfen... :/



    MfG
    James.

  • Schau mal ob du mit meinem Quellcode was anfangen kannst.


    //OnPlayerConnect
    SetPVarInt(playerid,"send.id", INVALID_PLAYER_ID);


    ocmd:gebeeis(playerid,params[])
    {
    new id,preis;
    if(sscanf(params,"ui",id,preis))return SendClientMessage(playerid, -1, "/gebeeis [id] [preis]");
    if(!IsPlayerConnected(id))return 1;
    format(string,sizeof string,"%s bietet dir ein Eis für %i$ an.", sendername, preis),
    SendClientMessage(id,-1,string),SendClientMessage(playerid,-1,"anfrage gesendet"),
    SetPVarInt(id,"send.id",playerid),SetPVarInt(id,"send.id.preis",preis);
    return 1;
    }


    ocmd:eisannehmen(playerid)
    {
    if(GetPVarInt(playerid,"send.id") != INVALID_PLAYER_ID)
    {
    GivePlayerMoney(playerid,-GetPVarInt(playerid,"send.id.preis")),
    SetPlayerHealth(playerid, 100.0), SetPVarInt(id,"send.id",INVALID_PLAYER_ID);
    }
    return 1;
    }


    mfg :thumbup:

  • Ich hoffe ihr könnt helfen... :/


    Hier mal ganz grob:


    enum e_Eis {
    e_Preis,
    e_ID
    };
    new eis_verkauf[MAX_PLAYERS][e_Eis];


    #define Eis_Reset(%0) eis_verkauf[%0][e_ID]=-1


    //Unter OnPlayerConnect
    eis_verkauf[playerid][e_ID] = -1;


    //gebeeis
    new pID,preis;
    if(sscanf(params,"ud",pID,preis)) return Verwendung /gebeeis [ID][Preis];
    if(!IsPlayerConnected(pID)) return SCM(playerid,-1,"Spieler nicht connected!");
    if(!InRange(playerid,pID,15.0)) return SCM(playerid,-1,"Dieser Spieler ist nicht in deiner Nähe!");
    eis_verkauf[pID][e_Preis] = preis;
    eis_verkauf[pID][e_ID] = playerid;


    //eisannehmen
    if(eis_verkauf[playerid][e_ID] == -1) return SCM(playerid,-1,"Dir hat niemand ein Eis angeboten!");
    if(GetPlayerMoney(playerid) < eis_verkauf[playerid][e_Preis]) return SCM(playerid,-1,"Nicht genug Geld!");
    if(!InRange(playerid,eis_verkauf[playerid][e_ID],15.0)) //Impliziert !IsPlayerConnected
    {
    SCM(playerid,-1,"Der Verkäufer ist nicht in deiner Nähe!");
    return Eis_Reset(playerid);
    }
    GivePlayerMoney(playerid, -eis_verkauf[playerid][e_Preis]);
    //Gib ihm hier ein Eis
    //Nachricht senden...
    Eis_Reset(playerid);
    return 1;


    //Edit: Hier noch die InRange Funktion
    stock InRange(playerid,pID,Float:x) {
    new Float:p[3];
    GetPlayerPos(pID,p[0],p[1],p[2]);
    return IsPlayerInRangeOfPoint(playerid,x,p[0],p[1],p[2]);
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S