[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 Kurze frage, warum werden die Maximalen Crews erstellt wen ich nur eine erstelle?


    Ansonst funktioniert alles wunderbar.

  • Moin,

    wie ändere ich beim Textdraw das Preview Model nach dem Erstellen?


    Also der Skin wird aus der Datenbank geladen, dann soll er da im Textdraw zu sehen sein


  • Moin,

    wie ändere ich beim Textdraw das Preview Model nach dem Erstellen?


    Also der Skin wird aus der Datenbank geladen, dann soll er da im Textdraw zu sehen sein


    skin mit der enum veriable aus der db laden dann zb..

    Code
    PlayerInfo what ever[playerid][pSkin] = cache_get_field_content_int(0, "skin oder model what ever");
    Code
    PlayerTextDrawSetPreviewModel(playerid,loginTD[playerid][0],PlayerInfo what ever[playerid][pSkin]);

    und dann das Textdraw anzeigen WICHTIG! nicht vorher erst nach dem der Skin geladen wurde und PlayerTextDrawSetPreviewModel gesetzt wurde


    LG

  • </MRX>
    Habe mir deinen Code nicht genau angeschaut aber verstehe auch das Problem aktuell nicht. Weisst du prinzipiell nicht, wie das Model geändert wird oder hast du es probiert und es funktioniert nicht richtig? Wenn zweiteres, was genau funktioniert nicht?


    https://sampwiki.blast.hk/wiki/PlayerTextDrawSetPreviewModel

    es wird angezeigt aber die PlayerTextDrawSetPreviewModel wird nicht geändert ich lasse aus der datenbank mir ein skin setzen aber das PlayerTextDrawSetPreviewModel ändert denn skin nicht auf dem server

  • es wird angezeigt aber die PlayerTextDrawSetPreviewModel wird nicht geändert ich lasse aus der datenbank mir ein skin setzen aber das PlayerTextDrawSetPreviewModel ändert denn skin nicht auf dem server


    ohne jetzt alles davor gelesen zu haben, Aber lässt du nach dem änderten des Modells das textdraw ausblenden und dann wieder erneut anzeigen ? Als Update Funktion. Wurde im Beitrag vorher aber auch gesagt.

    Lg

    RFT

  • Sorry für die Späte Antwort, kurz nachdem ich es sowieso bemerkte, las ich @Grosim seinen Beitrag und finde auch dass er Recht hat.


    Zeig mal bitte den Quellcode, wo du den Skin "temporär" setzt bzw. den Code, wo die Funktion mit dem Skin Wechseln ist.


    Code
    Anderen Skin Anzeigen nach dem Anzeigen:
    PlayerTextDrawSetPreviewModel(playerid, loginTD[playerid][0], PlayerInfo[playerid][pSkin]); 

    wo setzt du pSkin & da reicht eigentlich eine PVar, je nachdem, wo du den Skin-Textdraw updaten lässt sowie den Skin selber.. zeig das mal bitte

  • Man verändert erst die werte dann lässt man es die playerid anzeigen da braucht man vorher nicht schon anziegen lassen

    Völlig richtig, aber bei seinem Text ist davon auszugehen das er es vorher schon anzeigt.
    Kann viele Gründe haben. Wenn du zbs ne Skinwahl mit Pfeilen erstellst muss dies dann ja auch geupdated werden.


    LG

    RFT

  • 6jqQiH5.png


    Moin das ganze läd trotz einstellung bisschen komischen:


    Code
    static Float:STREAMDISTANCE = 350.0;
    static Float:DRAWDISTANCE   = 1000.0;
    
    KRANKENHAUS_LS[0] = CreateDynamicObject(18981, 1173.3597, -1364.8321, 12.0396, 0.0000, 90.0000, 0.0000, VW_KRANKENHAUS, MAPS_KRANKENHAUS, .streamdistance = STREAMDISTANCE, .drawdistance = DRAWDISTANCE); //Concrete1mx25mx25m
    SetDynamicObjectMaterial(KRANKENHAUS_LS[0], 0, 10765, "airportgnd_sfse", "desgreengrass", 0xFFFFFFFF);
  • Völlig richtig, aber bei seinem Text ist davon auszugehen das er es vorher schon anzeigt.
    Kann viele Gründe haben. Wenn du zbs ne Skinwahl mit Pfeilen erstellst muss dies dann ja auch geupdated werden.


    LG

    Ich ging aber von ein Login/Register Fenster aus, daher meine veriante :)

  • Code
    warning 202: number of arguments does not match definition
    
    #define MAX_TRASH_CANS                 89
    new TrashCans_InteractionField[MAX_TRASH_CANS] = {-1,...};
    if(IsPlayerInDynamicArea(TrashCans_InteractionField[CurrentTrashcanArea[playerid]]))
    
    IsPlayerInDynamicArea(playerid, areaid, recheck = 0) //Von Github
    • Offizieller Beitrag

    Du hast in Zeile 5 einfach nur die playerid als ersten Parameter vergessen.


    Falls du jedoch etwas anderes Abfragen willst, hier nochmal ne Kurzfassung:

    Bestimme Area abfragen:

    Es gibt IsPlayerInDynamicArea mit zwei parametern playerid & areaid, damit kannst du abfragen ob der Spieler in einer bestimmten Area ist.

    Wenn du allerdings abfragen willst, ob der Spieler in irgendeiner Area ist, kannst du IsPlayerInAnyDynamicArea verwenden, dort brauchst du nur die playerid.


    Hier nochmal zum Nachschlagen:

    https://github.com/samp-incogn…lugin/wiki/Natives-(Areas)

  • Moin das ganze läd trotz einstellung bisschen komischen:

    Was bedeutet das?


    Jetzt mal im Ernst hast du es nach 5 Jahren immer noch nicht gelernt solche Fehler richtig zu beschreiben?


    Hier mal eine Liste, was es bedeuten könnte:

    • Lädt gar nicht.
    • Lädt langsam.
    • Objekte haben die falsche Textur.
    • Objekte haben gar keine Textur.
    • Objekte haben keine Kollision.
    • Objekte flackern.
    • Objekte sind an der falschen Position.
    • Erscheint viel zu früh.
    • Erscheint viel zu spät.

    Diese Liste ist quasi endlos, was es alles für Möglichkeiten gibt, was du mit "läd komisch" meinen könntest.


    Werde doch mal konkret und am Besten immer F5 drücken wenn man schon so ein Bild macht, weil da die wesentlichen Infos gleich mitgeliefert werden.

    ast2ufdyxkb1.png


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

    • Offizieller Beitrag

    Moin, habe leider das Problem das ich meine Datenbank im Script erstellen möchte und somit einen recht langen String brauche.

    Um dieses String hier zu erstellen wird sehr viel vom Stack benötigt, hier nochmal die Infos dazu:


    Jemand eine Ahnung, wie man sowas Stack/heap effizienter lösen könnte, ohne den Code sehr zu verunstalten?

    PS: Ja, ich kenne #pragma dynamic, dies würde wohl auch funktionieren, jedoch bin ich hier auf der Suche nach anderen Codeansätzen zur Umsetzung.


    // EDIT


    Grade gemerkt das ich auch noch nen kleinen Copy & Paste Fehler drin hatte, konnte so nun und dank der Hilfe von Kaliber den Code start reduzieren und auch den Stack somit nicht mehr allzudoll zu belasten

  • PS: Ja, ich kenne #pragma dynamic, dies würde wohl auch funktionieren, jedoch bin ich hier auf der Suche nach anderen Codeansätzen zur Umsetzung.

    Also grundsätzlich ist das nicht einmal schlimm, es vergrößert halt nur deine .amx und es muss mehr Speicher eingeräumt werden.


    Aber bei deinem Beispiel kann man query2 weglassen. Kannst den Code 1:1 so lassen und nur query nutzen und das funktioniert.


    Da würdest schon einmal die Hälfte einsparen bei der Speicher-Reservierung ^^

    ast2ufdyxkb1.png


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


  • Habe das Problem schon längst behoben alles inordnung. Habe erwas vergessen einzubauen :D