Gunshop Biz /buygun Problem Selfmade

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
  • Hallo!


    Das hier ist mein erster Beitrag und ich hoffe ich habe ihn auch in den richtigen Bereich gepostet...


    Ich scripte ca. seit einem halben Jahr an einem Selfmade Script und nach langen Versuchen habe ich es leider nicht geschafft den folgendenen Fehler zu beseitigen...


    Hier mein Script:



    ocmd:buy(playerid, params[])
    {
    for(new bizid=1;bizid<MAX_BIZ;bizid++)
    {
    if(IsPlayerInRangeOfPoint(playerid,15,BizInfo[bizid][interiorx],BizInfo[bizid][interiory],BizInfo[bizid][interiorz]))
    {
    new waffe[7], munition;
    if(sscanf(params,"ii",waffe,munition))return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /buy [Waffenid][Munition]");
    SendClientMessage(playerid,COLOR_GREY,"Verfügbaren Waffen (Preise pro 100 Schuss):");
    SendClientMessage(playerid,COLOR_WHITE,"__________________________________________________________________");
    SendClientMessage(playerid,COLOR_GREY,"Glock (9 mm) - [300 $] || SD-Pistole - [700 $] || Desert Eagle - [1200 $]");
    SendClientMessage(playerid,COLOR_GREY,"Schrotflinte - [1000 $] || MP5 - [1200 $] || AK 47 - [2200 $]");
    SendClientMessage(playerid,COLOR_GREY,"M4A1 - [2200 $] || Gewehr - [2200 $]");
    SendClientMessage(playerid,COLOR_WHITE,"___________________________________________________________________");
    if(strcmp(waffe,"glock",true) == 0)
    {
    if(munition<1)return SendClientMessage(playerid,COLOR_GREY,"Du musst mindestens einen Schuss Munition kaufen.");
    if(GetPlayerMoney(playerid) < munition*2+100)return SendClientMessage(playerid, ROT, "Du hast nicht genug Geld!");
    new string[128];
    GivePlayerWeapon(playerid,22,munition);
    format(string,sizeof(string),"Du hast dir eine Glock (9mm) mit %d Schuss für %d $ gekauft!",munition,munition*2+100);
    GivePlayerMoney(playerid,-100);
    GivePlayerMoney(playerid, -munition*2);
    BizInfo[bizid][bkasse] += munition*2+100;
    BizInfo[bizid][pProds] -= 1;
    SendClientMessage(playerid,COLOR_GREY,string);
    SaveBiz(bizid);
    SpielerSpeichern(playerid);
    }
    }
    }
    }


    Ich bekomme zwar keine Error jedoch möchte ich, dass man z.B. /buy M4 200 eingibt und dann die Waffe + Muni bekommt.


    Bei mir bekomme ich aber immer nur die Meldung: Benutzung: /buy [Waffenid][Munition]


    Bitte um Hilfe... Danke


    Lg Schmonk


    PS: Hatte ein paar kopier Probleme... das mit den Klammern unten sieht bei mir nicht so aus

  • hier mal in PWN


    ocmd:buy(playerid, params[])
    {
    for(new bizid=1;bizid<MAX_BIZ;bizid++)
    {
    if(IsPlayerInRangeOfPoint(playerid,15,BizInfo[bizid][interiorx],BizInfo[bizid][interiory],BizInfo[bizid][interiorz]))
    {
    new waffe[7], munition;
    if(sscanf(params,"ii",waffe,munition))return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /buy [Waffenid][Munition]");
    SendClientMessage(playerid,COLOR_GREY,"Verfügbaren Waffen (Preise pro 100 Schuss):");
    SendClientMessage(playerid,COLOR_WHITE,"__________________________________________________________________");
    SendClientMessage(playerid,COLOR_GREY,"Glock (9 mm) - [300 $] || SD-Pistole - [700 $] || Desert Eagle - [1200 $]");
    SendClientMessage(playerid,COLOR_GREY,"Schrotflinte - [1000 $] || MP5 - [1200 $] || AK 47 - [2200 $]");
    SendClientMessage(playerid,COLOR_GREY,"M4A1 - [2200 $] || Gewehr - [2200 $]");
    SendClientMessage(playerid,COLOR_WHITE,"___________________________________________________________________");
    if(strcmp(waffe,"glock",true) == 0)
    {
    if(munition<1)return SendClientMessage(playerid,COLOR_GREY,"Du musst mindestens einen Schuss Munition kaufen.");
    if(GetPlayerMoney(playerid) < munition*2+100)return SendClientMessage(playerid, ROT, "Du hast nicht genug Geld!");
    new string[128];
    GivePlayerWeapon(playerid,22,munition);
    format(string,sizeof(string),"Du hast dir eine Glock (9mm) mit %d Schuss für %d $ gekauft!",munition,munition*2+100);
    GivePlayerMoney(playerid,-100);
    GivePlayerMoney(playerid, -munition*2);
    BizInfo[bizid][bkasse] += munition*2+100;
    BizInfo[bizid][pProds] -= 1;
    SendClientMessage(playerid,COLOR_GREY,string);
    SaveBiz(bizid);
    SpielerSpeichern(playerid);
    }
    }
    }
    }

  • funktioniert leider nicht...


    ich bekomm immer noch den Teil:


    SendClientMessage(playerid,COLOR_GREY,"Verfügbaren Waffen (Preise pro 100 Schuss):");
    SendClientMessage(playerid,COLOR_WHITE,"__________________________________________________________________");
    SendClientMessage(playerid,COLOR_GREY,"Glock (9 mm) - [300 $] || SD-Pistole - [700 $] || Desert Eagle - [1200 $]");
    SendClientMessage(playerid,COLOR_GREY,"Schrotflinte - [1000 $] || MP5 - [1200 $] || AK 47 - [2200 $]");
    SendClientMessage(playerid,COLOR_GREY,"M4A1 - [2200 $] || Gewehr - [2200 $]");
    SendClientMessage(playerid,COLOR_WHITE,"___________________________________________________________________");

  • Mein Code oder dem über mir ?
    Bei meinem Müsste er bei /buygun:

    SendClientMessage(playerid,COLOR_GREY,"Benutzung: /buy [Waffenid][Munition]");
    SendClientMessage(playerid,COLOR_GREY,"Verfügbaren Waffen (Preise pro 100 Schuss):");
    SendClientMessage(playerid,COLOR_WHITE,"__________________________________________________________________");
    SendClientMessage(playerid,COLOR_GREY,"Glock (9 mm) - [300 $] || SD-Pistole - [700 $] || Desert Eagle - [1200 $]");
    SendClientMessage(playerid,COLOR_GREY,"Schrotflinte - [1000 $] || MP5 - [1200 $] || AK 47 - [2200 $]");
    SendClientMessage(playerid,COLOR_GREY,"M4A1 - [2200 $] || Gewehr - [2200 $]");
    SendClientMessage(playerid,COLOR_WHITE,"___________________________________________________________________");
    anzeigen..

  • bei z.B. /buy glock 100 bekomme ich immer nur den Teil:


    SendClientMessage(playerid,COLOR_GREY,"Benutzung: /buy [Waffenid][Munition]");
    SendClientMessage(playerid,COLOR_GREY,"Verfügbaren Waffen (Preise pro 100 Schuss):");
    SendClientMessage(playerid,COLOR_WHITE,"__________________________________________________________________");
    SendClientMessage(playerid,COLOR_GREY,"Glock (9 mm) - [300 $] || SD-Pistole - [700 $] || Desert Eagle - [1200 $]");
    SendClientMessage(playerid,COLOR_GREY,"Schrotflinte - [1000 $] || MP5 - [1200 $] || AK 47 - [2200 $]");
    SendClientMessage(playerid,COLOR_GREY,"M4A1 - [2200 $] || Gewehr - [2200 $]");
    SendClientMessage(playerid,COLOR_WHITE,"___________________________________________________________________");



    ich möchte aber dass er bei /buy glock 100 dem spieler die waffe mit der muni gibt...



    hoffe du weißt was ich meine^^

  • ocmd:buy(playerid, params[])
    {
    for(new bizid=1;bizid<MAX_BIZ;bizid++)
    {
    if(IsPlayerInRangeOfPoint(playerid,15,BizInfo[bizid][interiorx],BizInfo[bizid][interiory],BizInfo[bizid][interiorz]))
    {
    new waffe[7], munition;
    if(sscanf(params,"s[7]i",waffe,munition))
    {
    SendClientMessage(playerid,COLOR_GREY,"Benutzung: /buy [Waffenid][Munition]");
    SendClientMessage(playerid,COLOR_GREY,"Verfügbaren Waffen (Preise pro 100 Schuss):");
    SendClientMessage(playerid,COLOR_WHITE,"__________________________________________________________________");
    SendClientMessage(playerid,COLOR_GREY,"Glock (9 mm) - [300 $] || SD-Pistole - [700 $] || Desert Eagle - [1200 $]");
    SendClientMessage(playerid,COLOR_GREY,"Schrotflinte - [1000 $] || MP5 - [1200 $] || AK 47 - [2200 $]");
    SendClientMessage(playerid,COLOR_GREY,"M4A1 - [2200 $] || Gewehr - [2200 $]");
    SendClientMessage(playerid,COLOR_WHITE,"___________________________________________________________________");
    return 1;
    }
    if(strcmp(waffe,"glock",true) == 0)
    {
    if(munition<1)return SendClientMessage(playerid,COLOR_GREY,"Du musst mindestens einen Schuss Munition kaufen.");
    if(GetPlayerMoney(playerid) < munition*2+100)return SendClientMessage(playerid, ROT, "Du hast nicht genug Geld!");
    new string[128];
    GivePlayerWeapon(playerid,22,munition);
    format(string,sizeof(string),"Du hast dir eine Glock (9mm) mit %d Schuss für %d $ gekauft!",munition,munition*2+100);
    GivePlayerMoney(playerid,-100);
    GivePlayerMoney(playerid, -munition*2);
    BizInfo[bizid][bkasse] += munition*2+100;
    BizInfo[bizid][pProds] -= 1;
    SendClientMessage(playerid,COLOR_GREY,string);
    SaveBiz(bizid);
    SpielerSpeichern(playerid);
    return 1;
    }
    }
    }
    return 1;
    }
    Bei sscanf musst du bei strings, "s" benutzen nicht "i"
    Bei der Pluginversion musst du auch die größe angeben also 's[7]'
    bei der normalen (stock version) musst du nur 's' benutzen