[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
  • Sollte mit einer combination von einer if und for schleife funktionieren..
    Bin müde ich versuch mal was


    for(new i = 0; i < MAX_VEHICLES; i++)
    SetVehicleHealth(i,100);


    Bei einem einzelnen
    nur SetVehicleHealth(id,100);


    Hoff das ist so richtig


  • //Zum ersten teil
    klar wird die amx um einen ganz ganz ganz kleinen teil größer.
    Aber er hat geschrieben, dass sie von 2kb auf 137kb hochschiest (irwie sowas), und das, denke ich kann man schon vervielfachen nennen oder ?
    //zum zweiten
    in der amx steht ja nur die anweisung dieses array zu instanzieren, endgültig instanziert, also der reale speicherplatz dafür, wird aber erst geschaffen, wenn die .amx benutzt wird (samp-server)


  • //Zum ersten teil
    klar wird die amx um einen ganz ganz ganz kleinen teil größer.
    Aber er hat geschrieben, dass sie von 2kb auf 137kb hochschiest (irwie sowas), und das, denke ich kann man schon vervielfachen nennen oder ?
    //zum zweiten
    in der amx steht ja nur die anweisung dieses array zu instanzieren, endgültig instanziert, also der reale speicherplatz dafür, wird aber erst geschaffen, wenn die .amx benutzt wird (samp-server)


    Das mit der ersten aussage das war ein kleine klugscheißer provokationen :D nicht ernst nehmen, ich wusste schon was du meinst.


    Aber zum eigentlichen Thema du hast schon recht das der Speicher auch zugesichert wird , wenn die amx ausgeführt wird (samp-server).
    Jedoch um nochmal auf das kompilen zurück zu kommen und der Tabelle , wie sich die array zusammen setzt meiner meinung nach so wie ich es auch mal aufgefasst habe.
    Sollte man sich das array vorstellen wie eine Tabelle das kann man auch ausgeben lassen , wenn man den asm output angeben lässt.


    Jetzt als bestes beispiel was ich mein kannst dir zum beispiel ein einfachen texteditor nehmen.
    Und gibst dort mal 2000 zeichen ein da wird das textfile auch schon etwas groß und das ist das was ich meine.
    Das ein array die vereinfachte form im ist zum beispiel von variabeln.
    also

    Code
    new var1
    new var2
    new var3


    wird so gesehen angeben in der .amx oder als asm code
    0
    0
    0


    Code
    new array[3];


    hingegen so dargestellt wird als tabelle 1 Zeile und 3 Spalten

    Code
    0 0 0


    Also ich gebe ehrlich zu ich hab nicht genau ahnung wie sich das ganze genau bei dem preprozessor auseinenader.

  • Also ich gebe ehrlich zu ich hab nicht genau ahnung wie sich das ganze genau bei dem preprozessor auseinenader.


    Der Präprozessor, hat so gut wie nichts mit Arrays und Speicherverteilung zu tun.
    Es ist halt die erste Instanz die Arbeitet sogar noch vor dem Compiler, darum ja auch "Prä".

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

    Margarete Stokowski

  • Ok, danke.
    Wüsste noch wer, wie man ein random von vorne startet?
    Also wenn ich es jetzt so z.B mache:
    new zufall = random(16);

    und die zahl z.B 9 ist, soll erstmal abgefragt werden ob eine varibale false ist, wenn Sie true ist, soll der zufall nochmal passieren. Nur ich kann ja nicht 10x die abfrage unter einander machen. weil wenn von 16 nur die zahl 7 false ist, ist die Wahrscheinlichkeit ja nicht gerade hoch, das die 7 kommt.am besten von anfang an nur zufalls zahlen sein, die false sind
    new zufall = random(16);
    if(Info[zufall][Test] == false){
    //dann soll was passieren
    }



    Ich hoffe ich habe mein Problem "gut" ausgedrückt :D
    Mfg
    Sebastian

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ist zwar unschön, aber du kannst es mit goto machen. Alternativ, wenns nur ne kleine Funktion ist, einfach die Funktion nochmal ausführen. Goto-Snippet:

    start:
    new zufall = random(16);
    if(Info[zufall][Test] == false){
    //dann soll was passieren
    }
    else goto start;

  • danke dir.
    Naja, was heißt kleine funktion. Ist halt für einen Nebenjob. Ich erstelle mit hilfe eines array halt jedesmal einen zufalls Checkpoint, wenn ich diesen betrete wird dieser auf true gesetzt, und dieser wird mir dann nicht mehr angezeigt. sprich also jeder Checkpoint ist nur 1x da


    //Edit:
    Wird OnPlayerPickupPickUp auch aufgerufen, wenn man in einem Auto sitzt?
    Und wenn nicht, wie kann ich dies dann umgehen außer mit OnPlayerUpdate?


    Einmal editiert, zuletzt von Sebastian. ()

  • Hey, ich suche ein Befehl, womit Admin Voll Speed haben..


    z.B. /aspeed, dann wird Speed angeschaltet, und sobald man w drückt, gibt man richtig gas, wei bei s0beit..^^


    Und wenn man nochmal /aspeed macht, schaltet sich es wieder aus..


    Ich hoffe da hat jemand ein Script..

  • Hay hab ein Problem (sitze seit ca 2h+ dran >.<) ich hab eine neue Skinauswahl mit Textdraws gemacht
    bei meinem alten ging es mit 'leertaste' jetzt hab ich aber '<<' und '>>'
    jetzt hab ich den code von der 'leertaste' unter der vom Textdraw '>>' gemacht..
    Aber wie mach ich jetzt '<<' ? weil ich bekomme da immer die falschen Skins, hab schon alles versucht, aber verwirr mich nur noch mehr x.x

    //ausschnitt fürs Skinsetzen bei '>>'
    if(SkinAuswahlSlot[playerid] == 1) { SetPlayerSkin(playerid, 21); SkinAuswahlSlot[playerid] = 2; PlayerSkin[playerid] = 21; }
    else if(SkinAuswahlSlot[playerid] == 2) { SetPlayerSkin(playerid, 23); SkinAuswahlSlot[playerid] = 3; PlayerSkin[playerid] = 23; }
    else if(SkinAuswahlSlot[playerid] == 3) { SetPlayerSkin(playerid, 18); SkinAuswahlSlot[playerid] = 4; PlayerSkin[playerid] = 18; }
    else if(SkinAuswahlSlot[playerid] == 4) { SetPlayerSkin(playerid, 22); SkinAuswahlSlot[playerid] = 5; PlayerSkin[playerid] = 22; }
    else if(SkinAuswahlSlot[playerid] == 5) { SetPlayerSkin(playerid, 60); SkinAuswahlSlot[playerid] = 6; PlayerSkin[playerid] = 60; }
    else if(SkinAuswahlSlot[playerid] == 6) { SetPlayerSkin(playerid, 167); SkinAuswahlSlot[playerid] = 7; PlayerSkin[playerid] = 167; }
    else if(SkinAuswahlSlot[playerid] == 7) { SetPlayerSkin(playerid, 97); SkinAuswahlSlot[playerid] = 8; PlayerSkin[playerid] = 97; }
    else if(SkinAuswahlSlot[playerid] == 8) { SetPlayerSkin(playerid, 59); SkinAuswahlSlot[playerid] = 1; PlayerSkin[playerid] = 59; }

  • Kann ich in einem Dialog auch einen Timer benutzen, also das der Spieler warten muss bis der Timer abgelaufen ist um auf die 2 Buttons klicken zu können?

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Hättest du ein Beispiel für mich, ich habe ein Regelwerk was man sich Durchlesen muss, anschließend muss man es Akzeptieren. Das sollte 1-2 Minuten dauern.


    Danke schon mal.

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Wie macht man beim Servernamen solche Sonderzeichen dazu •••••• Wenn ich die Sonderzeichen direkt in die server.cfg rein mache, zeigt mir der Client nur ?????? an......Bitte um Hilfe...ich sehe so viele Server mit diesem Zeichen aber keiner kann mir sagen wie das funzt

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