Savebox Hilfestellung 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
  • Hey ich habe ein /buydrugs befehl kreiert dieser funktioniert ordnungsgemäß, jedoch möchte ich nun das man die Drogen in einer Savebox versteckt. Jegliche versuche von mir sind bisher gescheitert mein /put befehl sieht derzeit so aus:


    Es kommt ständig egal wie ich es eingebe bspw. /put drugs 10 obwohl ich 100 in meiner PlayerInfo[playerid][pDrugs] habe.

    Code
    Soviel Gramm hast du nicht derzeit trägst du %ig Drogen bei dir
  • Der Fehler sollte hier sein:

    Code
    menge = PlayerInfo[playerid][pDrugs];
    if(menge >=0 || menge<=PlayerInfo[playerid][pDrugs])return SCM(playerid,COLOR_DARKRED, string);

    Denn du fragst das so ab:

    Code
    if(PlayerInfo[playerid][pDrugs] >=0 || PlayerInfo[playerid][pDrugs]<=PlayerInfo[playerid][pDrugs])return SCM(playerid,COLOR_DARKRED, string);

    Du musst aber das was du eingibst dort eingeben.

  • Code
    new menge;
    if(sscanf(params, "i",menge))return SendClientMessage(playerid, -1, "/put menge");
    PlayerInfo[playerid][pDrugs] = menge;
    
    zb
    • Offizieller Beitrag

    also wäre das an sich mit dem u doch gar nicht verkehrt oder?

    Das "u" kannst du benutzen um Spieler herauszufinden. So kann man beispielsweise die playerid, den Namen oder nur Teile vom Namen (sofern eindeutig) eingeben und "u" würde dir die playerid liefern.

    Was du bräuchtest, wäre eine Zeichenkette, also einen String. Dafür kannst du den Parameter "s" verwenden, dies speicherst du mittels der sccanf Funktion in eine Variable und kannst diese Variable dann mittels String-Compare auf "drugs", "mats", etc. testen.

  • Whice ah endlich danke :D es hat funktioniert mein Befehl sieht derzeit so aus,


    Jedoch habe ich nun immer noch das Problem das ich bspw. wenn ich 100g dabei habe, ich 50g reintuhe danach nochmal 50 reintun möchte kommt Soviel Gramm hast du nicht also muss ich 49 eingeben wie kann ich das nun beheben?


    /edit

    ich gehe davon aus einfach das "=" bei der 2 mengenabfrage rauszunehmen


    /edit 2

    Bekomme in meiner Konsole:

    sscabf warning; String without a lenght are deprecated, please add a destination size.


    woran kann das liegen?

    Einmal editiert, zuletzt von RaPTiiC ()

  • Du befüllst die Variable item mit keinem Wert. Die musst du erst per sscanf befüllen lassen dann kannst du prüfen ob da "drugs" oder "mats" eingegeben wurde. Aktuelle Zeile 7 bringt nichts. Die Warnung besagt das du dem s im sscanf eine länge mitgeben musst z.B. if(sscanf(params, "s[64]i", item, menge))