[SAMMELTHREAD] Kleine Scripting Fragen

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • @Y3tti Das wär jetzt die kürzeste Methode die mir einfällt. Du würdest dir bei dieser Methode zumindest beim löschen der Objekte leichter tun da das dann nur 4 Zeilen oderso sind. Beim erstellen der Objekte musst du irgend eine Variable angeben sonst findest du die Objekte beim löschen dann nicht wieder.


    Gibt´s keinen Objekt Converter der gleichzeitig ne Variable davor schreiben kann?

  • Habe es ja mit einer Veriable.
    Die im Script ja Definiert ist, nur nicht mit der Anzahl wie viele Objecte es sind.
    Sprich, so. "new Objecte;" und nicht "new Objecte[512];"


    Ich wüsste jetzt nicht das es so ein Converter geben würde.


    Mit freundlichen Grüßen,

  • Mach es so:



    new start,ende;
    start = CreateObject(...); //Dein erstes Objekt
    CreateObject(...); //Hier zwischen alle anderen Objekte
    ende = CreateObject(...); //Dein letztes Objekt



    Dann kannst du da so dadurch Loopen:


    C
    for(new i=start; i<=ende; i++)
    {
        DestroyObject(i); //Zum Beispiel.. würde alle diese Objekte zerstören
    }

    ast2ufdyxkb1.png


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

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