%s im Dialog einsetzten

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
  • Warum dass denn nicht ?
    Wenn ein Spieler einen Dialog aufgerufen hat und einen der beiden Buttons drückt, wird das mit dem Callback OnDialogResponse beantwortet.
    Dieser verfügt über folgende Parameter:


    (playerid, dialogid, response, listitem, inputtext[])


    Unter Anderen ist auch die playerid desjenigen mitgeliefert, der den dialog beantwortet hat.
    Dann kannste die einfach verwenden under per GetPlayerName in eine Variable einlesen.


    Wenn du schon für den Dialog den Spielernamen brauchst geht das ebenfalls per GetPlayerName, da du für den Native ShowPlayerDialog ja sowieso die playerid brauchst.
    Dann einfach folgendes.

    new name[20];
    GetPlayerName(playerid,name,sizeof(name));
    new string[256];
    format(string,sizeof(string),"Spieler %s du hast diesen Dialog aufgerufen",name);
    ShowPlayerDialog(playerid,dialogid,DIALOG_STYLE_MSGBOX,"Testdialog",string,"Button 0","Button 1");

  • Du musst den String vorher formatieren (format), dort kannst du auch den Spielernamen einsetzen (GetPlayerName), im Dialog musst du dann den Variablennamen des String verwenden.


    // Edit: [ eingefügt

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Nein.
    Du kannst natürlich auch direkt eine Zahl hinschreiben, bei einem Text würde ich immer 256 oder höher nehmen und bei dem string wo du deinen Namen hernimmst würde ich nur 32 nehmen weil das die Größe eines Spieler Namens ist.

  • da muss ich ma eben noch ne Information hinterherschieben.
    Die maximale Länge eines Names beträgt 20 Zeichen (chars)


    http://wiki.sa-mp.com/wiki/Limits


    Man kann auch alternativ einen String MAX_PLAYER_NAME Zellen zuweisen da MAX_PLAYER_NAME in der a_samp.inc so definiert ist.


    #define MAX_PLAYER_NAME (24)
    Würde bedeuten , dass es dann für z.B. new name[24] steht, was dasselbe wie new name[MAX_PLAYER_Name] ist.

  • Die Größe (= Länge) von Spielernamen beträgt 20 (nicht 32), ich würde jedoch die Definition direkt aus der a_samp.inc nutzen, MAX_PLAYER_NAME.


    Bei Texten die du im Chat ausgibst sind 128 die perfekte Größe, da SAMP nicht mehr unterstützt, bei Dialogen, Texdraws und Co. gelten wieder andere Werte, siehe hier.


    Um die Variablentypen und deren Aufgaben zu verstehen, kannst du auch in meine Signatur schauen, evtl. macht dir mein Tutorial das Ganze etwas klarer.


    // Edit: Whoops, da war jemand schneller :O

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.


  • Nur [MAX_PLAYER_NAME] beschreibt einfach die maximal Länge des Namens, richtig?
    Gibt es sowas auch für andere Strings (zum Beispiel [MAX_MESSAGE] o.ä?!)


    MfG,
    Matt

  • Sowas in der Art. Das hier steht in der a_samp.inc


    // Limits and internal constants
    #define MAX_PLAYER_NAME (24)
    #define MAX_PLAYERS (500)
    #define MAX_VEHICLES (2000)
    #define INVALID_PLAYER_ID (0xFFFF)
    #define INVALID_VEHICLE_ID (0xFFFF)
    #define NO_TEAM (255)
    #define MAX_OBJECTS (400)
    #define INVALID_OBJECT_ID (0xFFFF)
    #define MAX_GANG_ZONES (1024)
    #define MAX_TEXT_DRAWS (2048)
    #define MAX_MENUS (128)
    #define MAX_3DTEXT_GLOBAL (1024)
    #define MAX_3DTEXT_PLAYER (1024)
    #define MAX_PICKUPS (2048)
    #define INVALID_MENU (0xFF)
    #define INVALID_TEXT_DRAW (0xFFFF)
    #define INVALID_GANG_ZONE (-1)
    #define INVALID_3DTEXT_ID (0xFFFF)


    // Player GUI Dialog
    #define DIALOG_STYLE_MSGBOX 0
    #define DIALOG_STYLE_INPUT 1
    #define DIALOG_STYLE_LIST 2


    // States
    #define PLAYER_STATE_NONE (0)
    #define PLAYER_STATE_ONFOOT (1)
    #define PLAYER_STATE_DRIVER (2)
    #define PLAYER_STATE_PASSENGER (3)
    #define PLAYER_STATE_EXIT_VEHICLE (4) // (used internally)
    #define PLAYER_STATE_ENTER_VEHICLE_DRIVER (5) // (used internally)
    #define PLAYER_STATE_ENTER_VEHICLE_PASSENGER (6) // (used internally)
    #define PLAYER_STATE_WASTED (7)
    #define PLAYER_STATE_SPAWNED (8)
    #define PLAYER_STATE_SPECTATING (9)


    // Marker modes used by ShowPlayerMarkers()
    #define PLAYER_MARKERS_MODE_OFF (0)
    #define PLAYER_MARKERS_MODE_GLOBAL (1)
    #define PLAYER_MARKERS_MODE_STREAMED (2)


    // Weapons
    #define WEAPON_BRASSKNUCKLE (1)
    #define WEAPON_GOLFCLUB (2)
    #define WEAPON_NITESTICK (3)
    #define WEAPON_KNIFE (4)
    #define WEAPON_BAT (5)
    #define WEAPON_SHOVEL (6)
    #define WEAPON_POOLSTICK (7)
    #define WEAPON_KATANA (8)
    #define WEAPON_CHAINSAW (9)
    #define WEAPON_DILDO (10)
    #define WEAPON_DILDO2 (11)
    #define WEAPON_VIBRATOR (12)
    #define WEAPON_VIBRATOR2 (13)
    #define WEAPON_FLOWER (14)
    #define WEAPON_CANE (15)
    #define WEAPON_GRENADE (16)
    #define WEAPON_TEARGAS (17)
    #define WEAPON_MOLTOV (18)
    #define WEAPON_COLT45 (22)
    #define WEAPON_SILENCED (23)
    #define WEAPON_DEAGLE (24)
    #define WEAPON_SHOTGUN (25)
    #define WEAPON_SAWEDOFF (26)
    #define WEAPON_SHOTGSPA (27)
    #define WEAPON_UZI (28)
    #define WEAPON_MP5 (29)
    #define WEAPON_AK47 (30)
    #define WEAPON_M4 (31)
    #define WEAPON_TEC9 (32)
    #define WEAPON_RIFLE (33)
    #define WEAPON_SNIPER (34)
    #define WEAPON_ROCKETLAUNCHER (35)
    #define WEAPON_HEATSEEKER (36)
    #define WEAPON_FLAMETHROWER (37)
    #define WEAPON_MINIGUN (38)
    #define WEAPON_SATCHEL (39)
    #define WEAPON_BOMB (40)
    #define WEAPON_SPRAYCAN (41)
    #define WEAPON_FIREEXTINGUISHER (42)
    #define WEAPON_CAMERA (43)
    #define WEAPON_PARACHUTE (46)
    #define WEAPON_VEHICLE (49)
    #define WEAPON_DROWN (53)
    #define WEAPON_COLLISION (54)


    // Keys
    #define KEY_ACTION (1)
    #define KEY_CROUCH (2)
    #define KEY_FIRE (4)
    #define KEY_SPRINT (8)
    #define KEY_SECONDARY_ATTACK (16)
    #define KEY_JUMP (32)
    #define KEY_LOOK_RIGHT (64)
    #define KEY_HANDBRAKE (128)
    #define KEY_LOOK_LEFT (256)
    #define KEY_SUBMISSION (512)
    #define KEY_LOOK_BEHIND (512)
    #define KEY_WALK (1024)
    #define KEY_ANALOG_UP (2048)
    #define KEY_ANALOG_DOWN (4096)
    #define KEY_ANALOG_LEFT (8192)
    #define KEY_ANALOG_RIGHT (16384)


    #define KEY_UP (-128)
    #define KEY_DOWN (128)
    #define KEY_LEFT (-128)
    #define KEY_RIGHT (128)


    Kannst ja mal alle includes /Pawno/Includes durschaun. Überall wo nen #define steht kannst entweder den Wert oder den für den Wert representativen Ausdruck verwenden.
    Kannst dir natürlich auch selber #define (s) erstellen.
    #define string 256
    new string[string];