[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. wie kann ich das vermeiden ?
    d.h. der text soll über der box sein ...



    Sollte dir helfen:
    forum.sa-mp.de/gta-multiplayer-mods/san-andreas-multiplayer/scripting-base/179692-textdraw-unter-der-box/

    Mit freundlichen Grüßen
    [color=#696969][i][b]Maxi
    [tabmenu]
    [tab='Signatur!']

    [tab='Mein Computer System']

    • Gehäuse Delux SH891 Midi-Tower (ATX) schwarz
    • Netzteil 650 Watt Corsair VS650
    • Festplatte 1000GB SATA III 7200upm
    • Mainboard AM3 Gigabyte GA-970A-UD3P (Chipsatz:AMD 970/SB950/ATX)
    • NVIDIA Geforce GTX 770 Gainward Phantom
    • 8192MB DDR3 Single Channel 1600MHz
    • Prozessor AM3+ (FX-Serie) AMD FX-8350 8x 4.0 GHz


    [tab='Meine Handys']

    • HTC ONE M8
    • Samsung S3 mini
    • Vll bald HTC ONE M7


    [tab='Mein Steam Account = 1']

  • Hey , jetzt kommt wahrscheinlich ne sehr dumme frage, jedoch weis ich es gerade nicht mehr :/
    Wie liest man aus einem dialog ein wort aus wenn man es abgeschickt hat?

    Mit freundlichen Grüßen
    [color=#696969][i][b]Maxi
    [tabmenu]
    [tab='Signatur!']

    [tab='Mein Computer System']

    • Gehäuse Delux SH891 Midi-Tower (ATX) schwarz
    • Netzteil 650 Watt Corsair VS650
    • Festplatte 1000GB SATA III 7200upm
    • Mainboard AM3 Gigabyte GA-970A-UD3P (Chipsatz:AMD 970/SB950/ATX)
    • NVIDIA Geforce GTX 770 Gainward Phantom
    • 8192MB DDR3 Single Channel 1600MHz
    • Prozessor AM3+ (FX-Serie) AMD FX-8350 8x 4.0 GHz


    [tab='Meine Handys']

    • HTC ONE M8
    • Samsung S3 mini
    • Vll bald HTC ONE M7


    [tab='Mein Steam Account = 1']

  • schon mal was von inputtext gehört?

    FAIL,
    habe jetzt stunden i-welche "scheiße" versucht wegen ner kleinen Denkblockade , und es ist so einfach...
    Naja

    Mit freundlichen Grüßen
    [color=#696969][i][b]Maxi
    [tabmenu]
    [tab='Signatur!']

    [tab='Mein Computer System']

    • Gehäuse Delux SH891 Midi-Tower (ATX) schwarz
    • Netzteil 650 Watt Corsair VS650
    • Festplatte 1000GB SATA III 7200upm
    • Mainboard AM3 Gigabyte GA-970A-UD3P (Chipsatz:AMD 970/SB950/ATX)
    • NVIDIA Geforce GTX 770 Gainward Phantom
    • 8192MB DDR3 Single Channel 1600MHz
    • Prozessor AM3+ (FX-Serie) AMD FX-8350 8x 4.0 GHz


    [tab='Meine Handys']

    • HTC ONE M8
    • Samsung S3 mini
    • Vll bald HTC ONE M7


    [tab='Mein Steam Account = 1']

  • Hey,
    habe einen Fehler in diesem Code:
    new ATM[][EATM]; // So definiert ( EATM ist ein "enum" )
    for(new i = 1; i<sizeof(ATM); i++) //Fehlerzeile


    Fehler: indeterminate array size in "sizeof" expression


    Möchte halt, dass er nur die Automaten durchgeht, die auch existieren..
    Wenn ich jetzt z.B. anstatt "sizeof(ATM)" - "MAX_ATM" hinpacken würde, würde der ja auch unnötige Automaten durchgehen.
    Man könnte ja auch abfragen, ob die ATM-ID <= 0 ist, jedoch möchte ich es lieber so haben, wenn es geht..


    Wo liegt der Fehler?

    • Offizieller Beitrag

    Bin mir nicht ganz sicher, hatte diesen Fehler noch nie, aber schau dir die DICK geschrieben Zeichen an

    new ATM[][EATM];

    Versuch mal einen Wert von z.B 5 rein zuschreiben.


    Es gibt auch andere Wege nur die ATMs durchzufragen die auch vorhanden sind.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Bin mir nicht ganz sicher, hatte diesen Fehler noch nie, aber schau dir die DICK geschrieben Zeichen an

    Versuch mal einen Wert von z.B 5 rein zuschreiben.


    Stimmt, habe den Wert nicht definiert..
    Kann man es nicht auch ohne den Wert?


    PS:

    Es gibt auch andere Wege nur die ATMs durchzufragen die auch vorhanden sind.


    Kenne ein Paar, jedoch will ich gerne mal wissen, welche du meinst ;)
    Wäre nett, wenn du welche postest, jedoch nicht unbedingt nötig!

    • Offizieller Beitrag

    Ich habe in meinem Enum immer eine Variable bool:Used,
    beim erstellen eines Objektes wird dieser auf true gesetzt, beim zerstören wieder auf false.
    Damit kannst du dann eine Schleife durchgehe mit nur den benutzten Objeckten (..[][Used] == true).
    Oder bei einem Befehl wo du die ID vom z.B. dem ATM eingeben musst, kannst du abfragen ob
    es überhaupt existiert.

  • Ich habe in meinem Enum immer eine Variable bool:Used,
    beim erstellen eines Objektes wird dieser auf true gesetzt, beim zerstören wieder auf false.
    Damit kannst du dann eine Schleife durchgehe mit nur den benutzten Objeckten (..[][Used] == true).
    Oder bei einem Befehl wo du die ID vom z.B. dem ATM eingeben musst, kannst du abfragen ob
    es überhaupt existiert.


    Achso..
    Genau die Variante benutze ich auch ;)
    Ich frage ab, ob die ID des Automaten > 0 sein muss..
    Wenn man einen Automaten erstellt, hat er direkt die ID 1..
    Ist also genau das Gleiche..
    Trdm danke dir!

  • Naja wenn du die ATM's 1,2,3,4,5 erstellst (ID), und den ATM 4 löschst hast du nur noch 1,2,3,5 - 4 existiert nicht, ist aber größer als 0, also wird die ID auch durchgelaufen ^^
    Also mach es wie Cireyses:
    ErikSon:


    Ich vermute, dass er die ID von 4 dann auf 0 setzt, mit ID meint er einen Wert vom Enum nicht die vom Array. - Vermute ich.


    Richtig..
    Wenn ich es so machen würde, wie @Paradoxon:, würde das Ganze ja gar keinen Sinn ergeben ;)

  • Jo Danke geht nun mit der Box. :D
    ---


    Hab das ein Befehl erstellt, und mehrmals umgeschrieben und kann nicht verstehen warum immer beim färben ingame eine Farbe immer schwarz wird und bleibt ..




    CMD:vipvcolor(playerid, params[])
    {
    if(GetPVarInt(playerid,"VIP Level")<1) return SendClientMessage(playerid,-1,"Du musst ein "COL_PURPLE"V.I.P. Member {FFFFFF}Level "COL_PURPLE"1 {FFFFFF}sein, um diese Funktion nutzen zu können.");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage( playerid, -1, ""COL_RED"Fehler:{FFFFFF} Du befindest dich in keinem Fahrzeug.");


    new color[2];
    if(sscanf(params,"dD",color[0],color[1]))
    {
    return SendClientMessage(playerid, -1, ""COL_LIGHTBLUE"Verwendung: {FFFFFF}/vipvcolor <Farbe 1> <Farbe 2>");
    }
    new
    string[128];
    format(string, sizeof(string), "Fahrzeug umgefärbt. (( ID %d und %d ))",color[0],color[1]);
    SendClientMessage(playerid, -1, string);
    ChangeVehicleColor(GetPlayerVehicleID(playerid),color[0],color[1]);
    return 1;
    }


    d.h. wenn ich 2 Farben angebe, wird eine geändert , jedoch bleibt die andere immer schwarz