Dialogmenü in SA-MP 0.3 erstellen

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
  • das erste mal das ich das hinbekommen habe. danke für das sehr gute tutorial =)

  • switch(listitem) {
    case 0: GivePlayerWeapon(playerid,22,100);
    case 1: GivePlayerWeapon(playerid,24,75);
    case 2: GivePlayerWeapon(playerid,32,300);
    case 3: GivePlayerWeapon(playerid,35,10);
    case 4: GivePlayerWeapon(playerid,34,30);
    case 5: GivePlayerWeapon(playerid,25,60);
    case 6: GivePlayerWeapon(playerid,16,20);
    }


    Um einiges kürzer & übersichtlicher.

  • Bleibt im Grunde gleich nur das du einen anderen Dialog Typ festlegen musst dazu eine Spezielle ID erstellen die kein anderer Dialog besitzt,
    damit du in der zuständigen Callback abfragen kannst welche ID im mom. geöffnet ist & welches ,,Listitem´´ ausgewählt wurde basierend auf einem Index.
    Input Text kann dabei auch verwendet werden , das gibt den jeweiligen Text aus der im Listen Objekt enthalten ist

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Wie mache ich es das ich


    if (strcmp("/waffen", cmdtext, true) == 0)
    {
    ShowPlayerDialog(playerid, Waffenmenu, DIALOG_STYLE_LIST, "Waffen", "Pistole\nDesert Eagle\nM4\nRaketenwerfer\nScharfschützengewehr\nGewehr\nGranate", "Auswählen", "Abbrechen");
    return 1;
    }


    Das nur an einen bestimmten ort kann :D ?

    Diesen Account benutzen 2 Verschiedene.

  • @0.3

    if (strcmp("/waffen", cmdtext, true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,radius,xyz))
    {
    ShowPlayerDialog(playerid, Waffenmenu, DIALOG_STYLE_LIST, "Waffen", "Pistole\nDesert Eagle\nM4\nRaketenwerfer\nScharfschützengewehr \nGewehr\nGranate", "Auswählen", "Abbrechen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht beim ...");
    }
    return 1;
    }

    @0.2

    if (strcmp("/waffen", cmdtext, true) == 0)
    {
    if(PlayerToPoint(radius,playerid,coords))
    {
    ShowPlayerDialog(playerid, Waffenmenu, DIALOG_STYLE_LIST, "Waffen", "Pistole\nDesert Eagle\nM4\nRaketenwerfer\nScharfschützengewehr \nGewehr\nGranate", "Auswählen", "Abbrechen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht beim ...");
    }
    return 1;
    }

  • Ich habs genauso gemacht wie im Tut, funktioniert soweit nur das die zeilenumbrüche nicht gemacht werden, was mache ich da wohl falsch ?


    ShowPlayerDialog(playerid, portmenu, DIALOG_STYLE_LIST, "Teleport", "Admin Base/nPräsident Base/nLSPD Base/nSFPD Base/nFBI Base/nArmy Base/nSwat Base/nMedic Base/nOrdnungsamt Base/nTaxi Base/nReporter Base/nKirche Base/nHitman Base/nTerror Base/n HellsAngels Base /nATeam Base/nGrooveStreet Base/nBallas Base/nAztecas Base/nVagos Base/nRifa Base/nYakuza Base/nDaNang Base/nLCN Base", "Auswählen", "Abbrechen");

  • Wie kann ich es scripten, dass man für eine Waffe Geld bezahlen muss?
    Bin noch neu im Scipting bereich^^^


    PS: für die ganz netten^^:
    Wie kann man es dann machen, dass man wenn man eins auswählt, HP bekommt? Also im Falle eines Essensmenüs? Ihr müsst euch nicht die ganze Arbeit machen, dass ich am Ende nur noch Copy'n'Paste machen muss, ich will schon dazu lernen^^

    Einmal editiert, zuletzt von FireFreak ()

  • Also müsste ich es dann so einbauen, oder?:



    if(dialogid == Waffenmenu) // Name des Menüs, das wir als ID 0 definiert haben
    {
    if(response)
    {
    if(listitem == 0) // Pistole
    {
    GivePlayerWeapon(playerid,22,100);
    GivePlayerMoney(playerid, -1500);
    }



    bzw bei dem Essen einfach GivePlayerMoney(playerid, -1500) durch SetPlayerHealth(playerid, 30) ersetzen?
    Und noch eine Frage, wenn ich SetPlayerHealth auf 30 setze, bekommt der Spieler dann 30HP+ oder hat er dann insgesamt 30HP?
    Danke im vorraus^^


    Sollte man dann insgesamt 30HP haben, wie kann man es scripten, dass man +30bekommt?

  • Das mit der Waffe is richtig.
    Und das mit dem Essen wie du es nimmst ^^
    Also du kannst das mit dem GivePlayerMoney(playerid, -1500); drinne lassen dann wird eben der Betrag auch beim Essen kaufen abgezogen.
    Und das hier

    Spoiler anzeigen
    new Float:health;

    Spoiler anzeigen
    GetPlayerHealth(playerid,health);
    SetPlayerHealth(playerid,health+100.0);

    ist für das Essen.
    Also du würdest 100HP dazu bekommen, hättest dann sozusagen 200HP wenn du von 100 ausgehst.


    MfG
    Ed_Hardy

  • das hier ist mein bisheriges Script:


    Aber wie kann ich es machen, dass man das entsprechende Item nur kaufen kann, wenn man genug Geld hat?

  • Ich weis jetzt nicht genau wie man das bei Dialog einfügen muss.
    Dialog ist mir auch neu.


    if(GetPlayerMoney(playerid) >=1000)
    {
    if(listitem ==8) //Fallschirm
    {
    GivePlayerWeapon(playerid,49,0);
    GivePlayerMoney(playerid,-100);
    }
    else
    {
    SendClientMessage(playerid, FARBE , " Du hast nicht genug Geld " );


    Hoffe das stimmt so
    Pass aber auf das immer gleichviele Klammern von beiden Sorten vorhanden sind.


    -Suggalike


    Powered by Windows 7


    Die HDD stimmt nich , hab 3 Festplatten drin.