TargetID (pid) "Mitnehmen" in Dialog

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
  • Hey,


    ich wollte mal fragen wie ich in einem Command wie z.B meinem Mute command die "pid " (also dem spieler mit dem eteas passiert sozusagen "mitnehmen" kann,


    damit ich bei OnDialogResponse immer noch mit dem gleichem spieler also der pid argieren kann. Hab das schonmal in meinem script dringehabt und es funktionierte auch habe


    es aber entfernt.

  • Da gibt es mehrere Möglichkeiten.


    • Du verwendest eine globale Variable wie z.B. new muteTargets[MAX_PLAYERS]; und dann weist du in deinem Command die so zu: muteTargets[playerid] = pID; und kannst dann immer darauf zugreifen. Problem hierbei ist natürlich, dass du permanent Speicher reservierst und dabei wahrscheinlich nur ganz kurz die Variable brauchst, kommt halt darauf an, wenn du damit ganz oft was machen willst und viele Zugriffe hast, dann ist diese Variante zu empfehlen, da sie schneller ist, als Variante zwei.
    • Denn hier nutzt du einfach ein PVar. Machst also einfach im Befehl SetPVarInt(playerid,"muteTarget",pID); und kannst dann im Dialog folgendes verwenden: new pID = GetPVarInt(playerid,"muteTarget");. Und das schöne dabei ist, sobald du fertig mit der Verwendung bist, kannst du den Speicher wieder freigeben, mit DeletePVar(playerid,"muteTarget");. Allerdings dauern hier die Zugriffe minimal länger, da unter anderem der String erst aufgelöst werden muss.

    Hoffe ich konnte dir helfen :)

    ast2ufdyxkb1.png


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

  • Da gibt es mehrere Möglichkeiten.


    • Du verwendest eine globale Variable wie z.B. new muteTargets[MAX_PLAYERS]; und dann weist du in deinem Command die so zu: muteTargets[playerid] = pID; und kannst dann immer darauf zugreifen. Problem hierbei ist natürlich, dass du permanent Speicher reservierst und dabei wahrscheinlich nur ganz kurz die Variable brauchst, kommt halt darauf an, wenn du damit ganz oft was machen willst und viele Zugriffe hast, dann ist diese Variante zu empfehlen, da sie schneller ist, als Variante zwei.
    • Denn hier nutzt du einfach ein PVar. Machst also einfach im Befehl SetPVarInt(playerid,"muteTarget",pID); und kannst dann im Dialog folgendes verwenden: new pID = GetPVarInt(playerid,"muteTarget");. Und das schöne dabei ist, sobald du fertig mit der Verwendung bist, kannst du den Speicher wieder freigeben, mit DeletePVar(playerid,"muteTarget");. Allerdings dauern hier die Zugriffe minimal länger, da unter anderem der String erst aufgelöst werden muss.

    Hoffe ich konnte dir helfen :)

    Danke :) Ich probiere es jetzt mal aus



    // Danke , funktioniert

    Einmal editiert, zuletzt von Coldnew ()