[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
  • @SaschaLois Ich danke, aber leider gibt es dort noch Probleme mit dem Texturen.
    Er soll vor den Texturen auch die Veriable. Was dann Fehlerhaft ist und ich diese dann auch weider Entfernen muss. :P


    Wäre möglich das du diese vielleicht rausfischen kann, also das dort nichts Vorgesetzt wäre? Dann wäre es Perfekt!


    Mit freundlichen Grüßen,

  • So sieht es derzeit aus. :)
    Alle Zeilen fangen bei mir so an. :P


    SAPDInt = CreateDynamicObject(19448,1622.052,1596.649,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000);
    SetDynamicObjectMaterial(SAPDInt, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000);


    Er müsste ja nur die "SetDynamicObjectMaterial" Filtern, das dort keine Veriable vor gesetzt wird.


    Mit freundlichen Grüßen,

  • Schönen guten Abend lieber Breadfishler :D


    Ich habe da ein kleines Problem mit meinem /mv befehl der zwar zurzeit nur für admins ist (Testphase)


    aufjedenfall kriege ich diese errors:
    C:\Users\User\Desktop\ddd\gamemodes\GSM1.pwn(508) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\ddd\gamemodes\GSM1.pwn(508) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\ddd\gamemodes\GSM1.pwn(508) : error 029: invalid expression, assumed zero
    C:\Users\User\Desktop\ddd\gamemodes\GSM1.pwn(508) : fatal error 107: too many error messages on one line


    Code:


    und hier die forward sachen
    forward 100lspd();
    public 100lspd();
    {
    MoveObject(100lspd,1543.28027, -1629.51318, 14.04756);
    }



    ganz oben im script habe ich auch new lspd100

  • @Jeffry zwar Danke für die Antwort aber ich habe nun das Script von Neu angefangen da keiner Geantwortet hat und ich dachte das keiner eine Lösung hat :DD egal bin fast wieder dort das einzige was zurzeit in meinem Script fehlt (jetziger stand) natürlich kommt noch mehr
    fehlen tut:
    SpielerLaden
    SpielerSpeichern
    SpielerReset
    Login&Register System :)

  • Habe da eine Frage, die ich mir nie beantworten konnte, und höchstwahrscheinlich auch nur von fortgeschrittenen Scriptern beantwortet werden kann:


    Ist es sinnvoll, im Script irgendwo ganz oben zB einen String zu erstellen (bspw. new DialogString[2048];), wodurch ich dann einen großteil aller Dialoge mit formatiere?
    Oder sollte man ambesten damit es nicht zu Fehlern kommt jeden String für zB Dialoge in Funktionen neu erstellen?


    In meinem releasten Happy-Ages Script ist das nämlich ebenso.


    Oben steht irgendwo "new DialogString[(..)];"
    Und in sogut wie allen Funktionen, sprich beim Login, Registrieren, bei anderen Systemen etc. wird dieser String benutzt.
    Wenn jetzt zB 5 Spieler sich einloggen, kann es da zu Fehlern kommen, wird der Server dadurch mehr belastet wenn man einen globalen statt zB einen "localen (nur für die eine Funktion gedacht) benutzt?


    Was wäre die beste Möglichkeit?

  • Du solltest das nicht global nutzen!


    Da kann es zu Fehlern kommen...zwar meint man immer, Pawn ist in der VM Single-Threaded was auch so ist, allerdings können Callbacks sogut wie zeitgleich für Spieler ausgeführt werden.
    Besser wäre zu versuchen, Strings zu packen oder einen großen statischen Speicherbereich im Callback zu allozieren.



    //Ganz oben im OnDialogResponse
    static DialogString[2048 char]; //Mit char wäre es am schönsten ^^ geht aber auch ohne xD

    ast2ufdyxkb1.png


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

  • Dementsprechend kann ich es aber nicht formatieren, wie du im anderen Thread bereits sagtest, oder?
    Brauche ja die beste Möglichkeit zum formatieren.

  • Und den verwende ich dann jetzt, richtig?

    Einfach als ganz normalen String...



    format(DialogString,sizeof(DialogString),"Haaaaaaaaaaaaaaalo\nHaaaaalo %s", GetName(playerid));
    ShowPlayerDialog(playerid,0,0,"Caption", DialogString, "ok", "");

    ast2ufdyxkb1.png


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

  • 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.

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

    Nein...da du ja nicht immer Speicherplatz reservieren willst...
    Sondern nur dann, wenn es entweder um große Strings geht..die du oft nutzt...


    oder kleine Strings die du sehr oft nutzt...


    2. Nützliche Codeschnipsel

    ast2ufdyxkb1.png


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