[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Moin, kurze Frage die mir man doch bestimmt beantworten kann..

    Ich hab nen Dialog erstellt, Input und möchte dann das was eingegeben wurde in die MySQL Datenbank abspeichern.

    Code
              SetPVarString(playerid, "Name", inputtext);
              PlayerInfo[playerid][pRPName] = GetPVarString(playerid, "Name", inputtext, sizeof(inputtext));
              SendClientMessage(playerid, -1, "");
              SaveUserStats(playerid);

    Klappt nicht. Dachte mir natürlich das es vielleicht an dem Warning liegt den ich hatte.. "warning 224: indeterminate array size in "sizeof" expression (symbol "")"

    Aber anders habe ich bisher keine Lösung gefunden, dachte es liegt auch vielleicht daran weil ich ein falsches format angegeben habe.

    Code
    mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', tutorial = '%d', kills = '%d', deaths = '%d', rpname = '%s', admin = '%d' WHERE id = '%d'",

    MySQL gibt übrigens keine Errors ab, woran kanns also liegen?

    • Offizieller Beitrag

    PlayerInfo[playerid][pRPName] = GetPVarString(playerid, "Name", inputtext, sizeof(inputtext));

    Zum Formatieren von Strings kannst du einfach format verwenden: format(PlayerInfo[playerid][pRPName] , sizeof(inputtext), "%s", GetPVarString(playerid, "Name", inputtext, sizeof(inputtext));

    , rpname = '%s'

    Weiterhin bietet es sich immer an Sachen zu escapen, dazu einfach %e verwenden


  • Moin kurze frage,

    Wen ich Die Fahrzeuge Parke und danach respawne wird das Fahrzeug so geparkt wie es erstellt wurde kann man das nicht irgendwie flexibler machen das es so respawnt wie es geparkt wurde?

    Einmal editiert, zuletzt von seegras () aus folgendem Grund: PAWN Highlighter aktiviert

  • Wen ich Die Fahrzeuge Parke und danach respawne wird das Fahrzeug so geparkt wie es erstellt wurde kann man das nicht irgendwie flexibler machen das es so respawnt wie es geparkt wurde?

    Ja, da gibt es 2 Möglichkeiten:


    1. Quick & Dirty, beim /park zerstört du das Auto und erstellst es neu und setzt halt alle in das Fahrzeug. Dann ist der Erstellungsort natürlich gleich dem Parkort ;)
    2. Es gibt einen Callback: https://wiki.sa-mp.com/wiki/OnVehicleSpawn Dort einfach prüfen, ob das Fahrzeug geparkt wurde und an die gewünschten Koordinaten setzen :)

    ast2ufdyxkb1.png


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

  • Man könnte es aber auch sobald es zerstört wird "neu" erstellen. Ich denke wenn man /park während der Fahrt nutzt, könnte man sonst Speed verlieren oder einen Ruckler haben.

    Bin mir mit letzterem aber nicht sicher.

    MfG. Adrian

  • Das Wäre meine Möglichkeit:


    Code
    FVehicleSpawner(fV);



    wen ich das fahrzeug neu parke spawnt es vollgetankt alles drum und drann..

  • Probiere gerade was neues, jemand Ahnung, warum das so nicht klappt?


    Code
    modules/server/graffiti.pwn(45) : error 028: invalid subscript (not an array or too many subscripts): "s_Pos"
    modules/server/graffiti.pwn(45) : warning 215: expression has no effect
    modules/server/graffiti.pwn(45) : error 001: expected token: ";", but found "]"
    modules/server/graffiti.pwn(45) : error 029: invalid expression, assumed zero
    modules/server/graffiti.pwn(45) : fatal error 107: too many error messages on one line
  • direkt mit solchen Arrays in einem Mehrdimensionalen Array zu arbeiten ist in Pawn nicht unbedingt so einfach, wie man sich das vielleicht vorstellt.


    Du kannst es aber so lösen

    Code
    CreatePickup(1318, 1, Shop_Info[i][s_Pos], Shop_Info[i][s_Pos + e_Shop:1], Shop_Info[i][s_Pos + e_Shop:2], 0);

    s_Pos dient in diesem Fall einfach dazu die Position herauszufinden in dem sich die Variable wirklich befindet.


    Im Grunde passiert hier nichts anders als würdest du statt einem "Array" in einem Array eine Auflistung von Variablen wie X, Y, Z verwenden.


    e_Shop dient hier als Tag - ähnlich wie bspw. TextDraw oder 3DText - nur um warnings zu vermeiden.

    Der Compiler haut dir Warnings um die Ohren, wenn er merkt, dass du versucht Äpfel und Birnen zu addieren, also erzählen wir ihm hier, dass es sich nicht um Birnen sondern tatsächlich um Äpfel handelt,

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Hey Leute,


    ich wollte ein System erstellen wo man seine Fische verkaufen kann aber der Preis ich stündlich ändert z.B. 16$ um 20 Uhr und um 21 Uhr 28$ der Preis sollte mind 15$ und Max 50$ sein..

  • Zum Formatieren von Strings kannst du einfach format verwenden: format(PlayerInfo[playerid][pRPName] , sizeof(inputtext), "%s", GetPVarString(playerid, "Name", inputtext, sizeof(inputtext));

    Weiterhin bietet es sich immer an Sachen zu escapen, dazu einfach %e verwenden

    Wenn es doch so klappen würde, aber schon gut zu wissen.

    warning 224: indeterminate array size in "sizeof" expression (symbol "")

    warning 224: indeterminate array size in "sizeof" expression (symbol "")

    error 001: expected token: ",", but found ";"

  • Beitrag von Quantico ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: dumb ().
  • So kannst du GetPVarString nicht verwenden.

    Es gibt nicht den Wert der PVar zurück, sondern speichert diesen in der angegebenen Variable.


  • So kannst du GetPVarString nicht verwenden.

    Es gibt nicht den Wert der PVar zurück, sondern speichert diesen in der angegebenen Variable.


    Auch gut zu wissen. Leider klappt es nicht und ich habe immer noch ein Warning. (MySQL logs steht übrigens auch überhaupt nix)

    warning 224: indeterminate array size in "sizeof" expression (symbol "")

  • Hey Leute,


    ich wollte ein System erstellen wo man seine Fische verkaufen kann aber der Preis ich stündlich ändert z.B. 16$ um 20 Uhr und um 21 Uhr 28$ der Preis sollte mind 15$ und Max 50$ sein..

    Du nimmst eine globale Variable.


    C
    new fischPreis;
    
    
    //Unter OnGameModeInit
    fischPreis = 15+random(36); //<< und das rufst du dann immer neu auf, wenn sich da was ändern soll.

    ast2ufdyxkb1.png


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

  • Du nimmst eine globale Variable.


    C
    new fischPreis;
    
    
    //Unter OnGameModeInit
    fischPreis = 15+random(36); //<< und das rufst du dann immer neu auf, wenn sich da was ändern soll.

    so hab ichs schon probiert so ändert er sich aber nicht stündlich sondern ist bei jedem Verkauf einfach Random

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