[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
  • static oder new?

    static, dadurch werden nicht permanent 2048 Cells (8192 Bytes = 8 KiloByte) pro Aufruf angefordert, sondern reserviert.


    Das spart eine Menge Zeit ^^


    Wobei du eigentlich versuchen solltest alles zu packen.


    Du musst doch nicht unbedingt format verwenden? ^^


    Verstehe nicht so genau...wieso du darauf zurückgreifen musst :D


    Denn wenn du z.B. einen Namen adden willst geht das auch so:



    new packed_name[MAX_PLAYER_NAME char];
    strpack(packed_name, GetName(playerid));
    //DialogString = !""; //Wichtig das dient als reset (aber da wir darunter schon was setzen, brauchen wir das nicht)
    DialogString = !"Willkommen ";
    strcat(DiaogString, packed_name);
    strcat(DialogString, !" :)\nSchön, dass sie zu uns gefunden haben!");



    Ist zwar ein bisschen umständlicher...aber du büßt nur minimale Performanz ein..und sparst dir 6 KiloByte von 8 ^^

    ast2ufdyxkb1.png


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

    Einmal editiert, zuletzt von Kaliber ()

  • zwei Fragen:


    1. Heißt das, dass man immer static statt new nehmen soll?



    2. Wie kann Ich eine Abfrage machen, indem überprüft wird, ob im Inputtext (Dialog) Zeichen und Zahlen enthalten sind? Bitte beides differenziert schreiben, da Ich zwei verschiedene Systeme habe.

  • Ich möchte mir ein Würfel-System einbauen, jedoch habe Ich folgendes Problem:
    Wenn Ich new zahl = random(6) mache, dann gibt es ja die Zahlen:
    0, 1, 2, 3, 4, 5
    Allerdings möchte Ich, dass es dabei die Zahlen 1, 2, 3, 4, 5, 6 gibt.
    Wie kann Ich das machen?
    Und wie kann Ich per Zufallsprinzip entscheiden lassen, wer gewonnen hat von den Spielern?

  • Das gibt dir Zahlen von 1-6:


    new zahl = random(6)+1;


    Was meinst du mit zufällig entscheiden lassen, wer von den Spielern gewonnen hat?!

    ast2ufdyxkb1.png


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

  • Das gibt dir Zahlen von 1-6:


    new zahl = random(6)+1;


    Was meinst du mit zufällig entscheiden lassen, wer von den Spielern gewonnen hat?!

    Genau das meine Ich.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Was denkt ihr, wäre besser?


    1) Fraktionssystem, bei dem man die Fraktionsdaten im Script speichert, sprich Fraktionsname, SpawnKoordinaten, PickupKoordinaten ...


    oder


    2) Fraktionssystem, bei dem man die Fraktionsdaten in einer Datenbank abspeichert und man kann die auch beliebig bearbeiten


    Welches wäre besser, sowohl scripttechnisch als auch von der Leistung her (halt welches ressourcensparender ist und andere Faktoren halt)

  • Wo ist der Fehler? Es wird nicht gehashed...

    Code
    SHA256_PassHash(inputtext, SERVER_HASHCODE, sI[playerid][pPasswort], 65);
    format(sI[playerid][pPasswort], 65, inputtext);
    printf("Hash: %s", sI[playerid][pPasswort]);
    printf("Unhashed: %s", inputtext);
    • Offizieller Beitrag

    Wo ist der Fehler? Es wird nicht gehashed...

    Code
    SHA256_PassHash(inputtext, SERVER_HASHCODE, sI[playerid][pPasswort], 65);
    format(sI[playerid][pPasswort], 65, inputtext);
    printf("Hash: %s", sI[playerid][pPasswort]);
    printf("Unhashed: %s", inputtext);

    Du hast einen kleinen Denkfehler, in der ersten Zeile Hashed du das PW in sI[playerid][pPasswort] aber in der darauf folgenden formatierst du es wieder zu inputtext.
    Also einfach die zweite Zeile (format...) löschen, dann geht alles.

  • Beitrag von Marschl ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Kann mir jemand sagen, warum es nicht funktioniert? Erhalte Tag Mistach als Fehler.

    //Kamerafahrten (random)
    new Float:Kamerafahrten[][14] =
    {
    {1303.415405, -1573.033813, 22.103107, 1043.172485, -1574.192749, 20.686824, 10000, 1298.427124, -1573.032592, 21.760406, 1038.172607, -1574.191528, 20.653751, 10000},
    {1013.807250, -1856.360961, 16.291315, 415.861755, -1826.641479, 14.461429, 100000, 1008.810546, -1856.452636, 16.134309, 420.533935, -1828.394653, 14.149652, 100000}
    };



    //Kamerafahrten
    new Kamerafahrt = random(sizeof(Kamerafahrten));
    InterpolateCameraPos(playerid,Kamerafahrten[Kamerafahrt][0],Kamerafahrten[Kamerafahrt][1],Kamerafahrten[Kamerafahrt][2],Kamerafahrten[Kamerafahrt][3],Kamerafahrten[Kamerafahrt][4],Kamerafahrten[Kamerafahrt][5],Kamerafahrten[Kamerafahrt][6]);
    InterpolateCameraLookAt(playerid,Kamerafahrten[Kamerafahrt][0],Kamerafahrten[Kamerafahrt][1],Kamerafahrten[Kamerafahrt][2],Kamerafahrten[Kamerafahrt][3],Kamerafahrten[Kamerafahrt][4],Kamerafahrten[Kamerafahrt][5],Kamerafahrten[Kamerafahrt][6]);


    @Kaliber