Pilot Job Waren kaufen,Umtauschen, Verkaufen

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 Breadfishler,


    Ich hätte da eine Frage undzwar bin ich dabei ein Pilot job zu erstellen ein Befehl davon sieht zurzeit so aus


    ocmd:getwaren(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0,1894.9570,-2631.3894,13.5469,1.6058);
    new Waren;
    if(sscanf(params, "u", Waren))return SendClientMessage(playerid,GELB,"Tippe /getwaren [Anzahl an Waren]");
    new string [128];
    format(string,sizeof(string), "Du hast dir %d Waren für %d$ gekauft!");
    SendClientMessage(playerid,GREEN,string);
    SetPlayerCheckpoint(playerid,-1243.9681,-95.5739,14.1484,48.6373,5.5);
    SendClientMessage(playerid,GELB,"Fliege nun zum SF Airport um deine Waren für hochwertigere Waren umzutauschen um mehr Profit zu erlangen!");
    return 1;
    }



    nun möchte ich das er aber z.B nur 10 von 250 Waren kauft wie lege ich z.B den Preis pro Ware an?


  • ocmd:getwaren(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,10.0,1894.9570,-2631.3894,13.5469,1.6058))return SendClientMessage(playerid,RED,"Du bist nicht in der Nähe vom Punkt.");
    new Waren;
    if(sscanf(params, "u", Waren))return SendClientMessage(playerid,GELB,"Tippe /getwaren [Anzahl an Waren]");
    new string [128];
    new preis = waren*500;
    format(string,sizeof(string), "Du hast dir %d Waren für %d$ gekauft!",Waren,preis);
    SendClientMessage(playerid,GREEN,string);
    SetPlayerCheckpoint(playerid,-1243.9681,-95.5739,14.1484,48.6373,5.5);
    SendClientMessage(playerid,GELB,"Fliege nun zum SF Airport um deine Waren für hochwertigere Waren umzutauschen um mehr Profit zu erlangen!");
    return 1;
    }


    There you go :)

    Mit freundlichen Grüßen,


    Keslo

  • @Keslo also kostet der Preis pro Ware 500$?

    Jup, kannst die 500 ja beliebig ändern :)



    //edit:"Wie bestimme ich eine Kapazität z.B das er Max. 300 Kaufen kann?"



    Das machst du so:



    Da du bestimmt mehrmals die Waren brauchst und sie per Spieler festgelegt werden soll:


    ganz oben:
    new PilotWaren[MAX_PLAYERS];


    onplayerconnect:


    PilotWarenn[playerid] = 0;



    ocmd:getwaren(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,10.0,1894.9570,-2631.3894,13.5469,1.6058))return SendClientMessage(playerid,RED,"Du bist nicht in der Nähe vom Punkt.");
    new Waren;
    if(sscanf(params, "u", Waren))return SendClientMessage(playerid,GELB,"Tippe /getwaren [Anzahl an Waren]");
    new string [128];
    if(Waren < 0 || Waren > 300) { SendClientMessage(playerid, RED, "* Die Waren dürfen nicht unter 0 und über 300 sein."); return 1; }

    if(Waren && PilotWaren[playerid] > 300)
    {
    SendClientMessage(playerid,RED,"Die Maximale Kapazität beträgt 300.");
    }
    else
    {
    new preis = waren*500;
    format(string,sizeof(string), "Du hast dir %d Waren für %d$ gekauft!",Waren,preis);
    SendClientMessage(playerid,GREEN,string);
    SetPlayerCheckpoint(playerid,-1243.9681,-95.5739,14.1484,48.6373,5.5);
    SendClientMessage(playerid,GELB,"Fliege nun zum SF Airport um deine Waren für hochwertigere Waren umzutauschen um mehr Profit zu erlangen!");
    return 1;
    }
    }


    probiers mal so aus

    Mit freundlichen Grüßen,


    Keslo

    Einmal editiert, zuletzt von Keslo ()


  • Keslo Danke hat geklappt,


    Nur habe ich leider jetzt immernoch ein Problem undzwar sieht der Befehl mittlerweile so aus:
    ocmd:getwaren(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,10.0,1894.9570,-2631.3894,13.5469))return SendClientMessage(playerid,ROT,"Du bist nicht in der Nähe vom Punkt.");
    new Waren;
    if(sscanf(params, "d", Waren))return SendClientMessage(playerid,GELB,"Tippe /getwaren [Anzahl an Waren]");
    new string [128];
    if(Waren < 0 || Waren > 300) { SendClientMessage(playerid, ROT, "* Die Waren dürfen nicht unter 0 und über 300 sein."); return 1; }
    if(Waren && PilotWaren[playerid] < 300)
    {
    new preis = Waren*50;
    PilotWaren[playerid] += Waren;
    format(string,sizeof(string), "Du hast dir %d Waren für %d$ gekauft!",Waren,preis);
    SendClientMessage(playerid,GREEN,string);
    SetPlayerCheckpoint(playerid,-1243.9681,-95.5739,14.1484,5.5);
    SendClientMessage(playerid,GELB,"Fliege nun zum SF Airport um deine Waren für hochwertigere Waren umzutauschen um mehr Profit zu erlangen!");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Die Maximale Kapazität beträgt 300.");
    }
    return 1;
    }



    Er soll nicht über 300 Waren kaufen können aber wenn er jetzt z.B 10 Waren kauft und dann nocheinmal 291 hat er ja 301 wie könnte ich das Beheben?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Huhu,


    habs getestet, funktioniert auch =)
    Hab dir noch eingefügt, dass er das Geld verliert ;)



    ocmd:getwaren(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,10.0,1894.9570,-2631.3894,13.5469))return SendClientMessage(playerid,ROT,"Du bist nicht in der Nähe vom Punkt.");
    new Waren;
    if(sscanf(params, "d", Waren))return SendClientMessage(playerid,GELB,"Tippe /getwaren [Anzahl an Waren]");
    new string [128];
    if(Waren < 0 || Waren > 300) { SendClientMessage(playerid, ROT, "* Die Waren dürfen nicht unter 0 und über 300 sein."); return 1; }
    if(Waren + PilotWaren[playerid] < 301)
    {
    new preis = Waren*50;
    PilotWaren[playerid] += Waren;
    GivePlayerCash(playerid,-preis);
    format(string,sizeof(string), "Du hast dir %d Waren für %d$ gekauft!",Waren,preis);
    SendClientMessage(playerid,GREEN,string);
    SetPlayerCheckpoint(playerid,-1243.9681,-95.5739,14.1484,5.5);
    SendClientMessage(playerid,GELB,"Fliege nun zum SF Airport um deine Waren für hochwertigere Waren umzutauschen um mehr Profit zu erlangen!");
    }
    else if(Waren + PilotWaren[playerid] > 300)
    {
    SendClientMessage(playerid,ROT,"Die Maximale Kapazität beträgt 300.");
    }
    return 1;
    }

    Mit freundlichen Grüßen,


    Keslo