[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
  • HI. Wie stell ich das denn am elegantesten an..

    Also ich Frage /vinfo Autos im Besitz ab, natürlich mehr als 1. Jetzt möchte ich nicht für 5 Slots 5x alles in meinen Script kopieren.

    Irgendwie müsste man doch was schreiben können dass für jedes der 5 Autos "pVehicle1ID" zu "pVehicle2ID" und so weiter macht. Wie geht das?


    Hier meine Abfrage für das erste Auto


  • Solltest im enum ein Array nutzen:


    ast2ufdyxkb1.png


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

  • Danke Kaliber :)


    Ah okay. Ich hab gerade versucht es in meinen Script einzubauen, damit hab ich mich etwas übernommen weil ich unsicher bin wie ich es an jeder Stelle umschreiben muss.

    zB wird ja beides also pVehicle1ID und pVehicle2ID in 2 Felder der Datenbank gespeichert. in meinem enum habe ich die beiden jetzt rausgeschmissen und durch das mit i ersetzt. Sollte oder kann ich überhaupt beides nutzen, je nach Bedarf anders an verschiedenen Stellen? oder ist das dann doppelt definiert mit dem enum.

    Ich vermute an der stelle des vinfo cmds funktioniert es, jetzt gibts nur sehr viele "i is undefined symbol" errors^^


    Oder hätte ich es einfach wenn spezifisch auf erstes Vehicle zugegriffen wird so schreiben sollen: pVehicleID[1] und pVehicleID[2] nachdem ich es enum [MAXVEHICLE_SLOTS] gesetzt habe?


    Beispiel in Datenbank speichern: (Wie bau ich es hier ein oder geht pVehicleID[1] ?)



    EDIT:


    Habe es jetzt mal mit pVehicle[1] etc probiert, dann sagt der compiler


    error 028: invalid subscript (not an array or too many subscripts): "pVehicleID"


    betreffende Stelle (vermutlich dann alle folgenden :c )


    Code
    ocmd:test2(playerid)
    {
        new string[256];
        format(string, sizeof(string), "[veh INFO]:  owned vehicle id %i " , pInfo[playerid][pVehicleID[1]]);
        SendClientMessage(playerid, COLOR_SYSTEM, string);
        return 1;
    }

    Einmal editiert, zuletzt von jdm_guy ()

  • malzeit,ich habe mal wieder nen alte script von mir wieder gefunden aber habe folgegenes warnnings und kann nicht starten

    es läuft auf die sachen.


    C
    //========================================
    //Includes
    #include                        <crashdetect> //crashdetect Version -> 1.8.1
    #include                         <a_samp>  //a_samp Version -> 0.3.7
    #include                         <a_mysql> //MySQL Version -> R33 läuft aber über Linux auf R34 static.so
    #include                         <streamer>//Streamer Version -> 2.8
    #include                        <sscanf2>//Sscanf Version -> 2.8.2
    #include                         <md5>//MD5 Version -> Unbekannt
    #include                        <zcmd>//ZCMD Version -> Unbekannt
    #pragma tabsize 0

    ich auch noch die sachen so drinne

    Code
    C:\Users\Kevin\Desktop\SAMP server 2019\gamemodes\GLR.pwn(4626) : warning 213: tag mismatch
    C:\Users\Kevin\Desktop\SAMP server 2019\gamemodes\GLR.pwn(44101) : warning 213: tag mismatch
    C:\Users\Kevin\Desktop\SAMP server 2019\gamemodes\GLR.pwn(44101) : warning 213: tag mismatch
    C:\Users\Kevin\Desktop\SAMP server 2019\gamemodes\GLR.pwn(44145) : warning 213: tag mismatch
    C:\Users\Kevin\Desktop\SAMP server 2019\gamemodes\GLR.pwn(44145) : warning 213: tag mismatch
    Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase




  • Sollte oder kann ich überhaupt beides nutzen, je nach Bedarf anders an verschiedenen Stellen? oder ist das dann doppelt definiert mit dem enum.

    Im enum schreibst du nur pVehicleID[MAX_VEHICLE_SLOTS], alles Andere für die Vehicles haus du raus.


    Um es zu speichern:


    pInfo[playerid][pVehicleID][0], pInfo[playerid][pVehicleID][1], pInfo[playerid][pVehicleID][2], pInfo[playerid][pVehicleID][3], pInfo[playerid][pVehicleID][4]


    So kannst du jeweils auf die 5 Indizes zugreifen :)


    Und in deinem ocmd test Command hast du:


    pInfo[playerid][pVehicleID[1]], wenn dann müsste es: pInfo[playerid][pVehicleID][0] sein. (Das fängt bei 0 an, nicht bei 1.)

    Zumal war halt der Array Index an der falschen Stelle.


    Aber du müsstest halt noch prüfen, ob das Fahrzeug nicht 0 ist, ergo:


    GetVehicleName, kannste z.B. hier her bekommen: https://forum.sa-mp.com/showthread.php?t=566775


    Oder du hast natürlich schon so eine Funktion.



    Falls er btw ein neues Auto kaufen mag, musst du einen leeren index finden:


    ast2ufdyxkb1.png


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

  • Nochmal vielen Dank :D :thumbup:


    Also ich hab es jetzt schonmal soweit hinbekommen dass der script wie zuvor funktioniert. Beim Autos kaufen und speichern hab ich es erstmal ohne array belassen, da es nur ein paar zeilen doppelt (bei 2 slots) sind. Das werde ich dann aber noch später mal dort einfügen was mich aber zu der Frage führt, was ist ressourcen schonender? ein array oder einfach doppelte Zeilen (in dem Fall 2x50)


    Mit meinem /vinfo cmd hab ich allerdings irgendwas falsch gemacht. Bei eingabe bekomme ich 2x den text angezeigt, allerdings funktioniert es auch wiedderum nicht, sprich es werden keine infos vom Auto angezeigt. (alles null und kein name). Ich vermute mal ich hab das return verkackt :|


  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • was ist ressourcen schonender? ein array oder einfach doppelte Zeilen (in dem Fall 2x50)

    ...das spielt hier keine Rolle.

    Der Übersicht wegen, solltest du ein Array und eine Schleife verwenden.


    Das mit der vehicle-Info kannst du verkürzen und zwar so:


    ast2ufdyxkb1.png


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

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