[Frage] Menü´s, Dialoge und Fenster

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
  • Ich hab mal paar Fragen an euch und hoffe ihr könnt mir helfen ..


    undzwar würde ich gern wissen wie ich dashier hinbekomme:


    und das wenn ich in dem menü ein bestimmtes anklicke soll das das kommen:


    Und wie mache ich sowas:


    Hoffe ihr könnt mir helfen ne Anleitung geben sonnstewas ^^


    mfg bad_company


    //EDIT: die Rechtschreibfehler fix entfernt ^^

  • Erstmal SuFu benutzen... und sonst den Tutorial Bereich durchsuchen hättest du das gemacht würdest du es finden! Denn es gibt mehrere Tutorial wo Dialoge erklärt werden, einfach mal suchen..


    Die drei Arten die du da siehst.. DIALOG_STYLE_INPUT, DIALOG_STYLE_LIST und DIALOG_STYLE_MSGBOX oder so..

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Ja habe SuFu benutzt mach ich eigendlich immer aber hab nach menu, menü, dialog und dialog menu aber nich das gefunden was ich s´gesucht hatte nur diese anderen menüs


    //EDIT: ich schau einach mal direkt im TuT bereich ..
    //EDIT²:danke alles gefunden


    Aber Hab noch ne Frage wen ich statt "Ok","Abbrechen" machen will: "Ok","zurück wie komm ich dan in dan in das menü zurück ??"

    Einmal editiert, zuletzt von bad_company ()

  • So bad_company ich hoffe du bist zufrieden damit, hab mir extra Mühe gemacht so schön wie möglich zu Scripten für dich ^^


    #include <a_samp>


    #define Ammunationdialog (56748) //Die ID vom Dialog
    #define Ammunationdialogtext ("Nahkampfwaffen\nSchusswaffen\nSonstiges")
    #define COLOR_GREY (0xFFFFFFAA)


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/ammunation", cmdtext, true, 10) == 0)
    {
    SetPVarInt(playerid, "AmmuDialogNummer", 0);
    SetPVarInt(playerid, "AmmuWaffenChosen", 0);
    return ShowPlayerDialog(playerid, Ammunationdialog, DIALOG_STYLE_LIST, "AmmuNation", Ammunationdialogtext, "Weiter", "Abbrechen");
    }
    return 0;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Ammunationdialog)
    {
    new string[512], cache[64];
    switch(GetPVarInt(playerid, "AmmuDialogNummer"))
    {
    case 0:
    {
    if(!response)
    {
    DeletePVar(playerid, "AmmuDialogNummer");
    DeletePVar(playerid, "AmmuWaffenChosen");
    return SendClientMessage(playerid, COLOR_GREY, "Danke für deinen Besuch...");
    }
    SetPVarInt(playerid, "AmmuDialogNummer", GetPVarInt(playerid, "AmmuDialogNummer")+listitem+1);
    switch(listitem)
    {
    case 0: ShowPlayerDialog(playerid, Ammunationdialog, DIALOG_STYLE_LIST, "AmmuNation", "Messer\nBaseballschläger", "Auswählen", "Zurück");
    case 1: ShowPlayerDialog(playerid, Ammunationdialog, DIALOG_STYLE_LIST, "AmmuNation", "MP5\nAK47", "Auswählen", "Zurück");
    case 2: ShowPlayerDialog(playerid, Ammunationdialog, DIALOG_STYLE_MSGBOX, "AmmuNation", "Es fällt mir nix Sonstiges ein ^^", "Ok xD", "Schade...");
    }
    }
    case 1,2: //Nahkampfwaffen
    {
    if(!response)
    {
    SetPVarInt(playerid, "AmmuDialogNummer", 0);
    return ShowPlayerDialog(playerid, Ammunationdialog, DIALOG_STYLE_LIST, "AmmuNation", Ammunationdialogtext, "Weiter", "Abbrechen");
    }
    if(GetPVarInt(playerid, "AmmuDialogNummer") == 1) {
    switch(listitem)
    {
    case 0: SetPVarInt(playerid, "AmmuWaffenChosen", 4); //Messer
    case 1: SetPVarInt(playerid, "AmmuWaffenChosen", 5); //Baseball
    }}
    else if(GetPVarInt(playerid, "AmmuDialogNummer") == 2) {
    switch(listitem)
    {
    case 0: SetPVarInt(playerid, "AmmuWaffenChosen", 29); //MP5
    case 1: SetPVarInt(playerid, "AmmuWaffenChosen", 30); //AK-47
    }}
    SetPVarInt(playerid, "AmmuDialogNummer", 4);
    GetWeaponName(GetPVarInt(playerid, "AmmuWaffenChosen"), cache, sizeof(cache));
    format(string, sizeof(string), "Wieviel Magazin von der %s möchtest du nehmen?", cache);
    return ShowPlayerDialog(playerid, Ammunationdialog, DIALOG_STYLE_INPUT, "AmmuNation", string, "Nehmen", "Zurück");
    }
    case 3:
    {
    SetPVarInt(playerid, "AmmuDialogNummer", 0);
    return ShowPlayerDialog(playerid, Ammunationdialog, DIALOG_STYLE_LIST, "AmmuNation", Ammunationdialogtext, "Weiter", "Abbrechen");
    }
    case 4:
    {
    if(!response)
    {
    SetPVarInt(playerid, "AmmuDialogNummer", 0);
    return ShowPlayerDialog(playerid, Ammunationdialog, DIALOG_STYLE_LIST, "AmmuNation", Ammunationdialogtext, "Weiter", "Abbrechen");
    }
    new ammo = strval(inputtext), slot = 0, wdata[2], wname[MAX_PLAYER_NAME];
    if(ammo < 0 || ammo > 99999) format(string, sizeof(string), "Ungültige Magazins Zahl!\nWieviel Magazin von der %s möchtest du nehmen?", cache);
    else
    {
    SetPVarInt(playerid, "AmmuDialogNummer", 3);
    GivePlayerWeapon(playerid, GetPVarInt(playerid, "AmmuWaffenChosen"), ammo);
    GetWeaponName(GetPVarInt(playerid, "AmmuWaffenChosen"), cache, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast dir eine %s mit %d Magazin genommen!\nDu besitzt derzeit an folgendem Waffenarsenal:\n", cache, ammo);
    for(; slot != 13; slot++)
    {
    GetPlayerWeaponData(playerid, slot, wdata[0], wdata[1]);
    GetWeaponName(wdata[0], wname, sizeof(wname));
    format(cache, sizeof(cache), "\t-> %s (%d Magazin)\n", wname, wdata[1]);
    strcat(string, cache);
    }
    return ShowPlayerDialog(playerid, Ammunationdialog, DIALOG_STYLE_MSGBOX, "AmmuNation", string, " ", "Weiter");
    }
    }
    }
    }
    return 1;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Templer macht es mal wieder genau auch wenn ich das mit den Slots net checke ^^
    Aber: wen ich statt "Ok","Abbrechen" machen will: "Ok","Zurück" wie komm ich dan in dan in das menü zurück ??

  • Schau dir wegen dem die Sachen mit


    if(!response)


    an, bedeutet halt soviel wie, wenn Spieler den 2. Knopf drückt.

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • ----------------------OPEN


    Wieder offen den ich habe ein problem habe es nun als ATM sys geschrieben aber nach den ich einen Wert den ich abheben will eingebe wird immer 0 ausgegeben:

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Waffenmenu) // Name des Menüs
    {
    if(response)
    {
    if(listitem == 0) //kontosand
    {
    format(strink, sizeof strink, "%d", pInfo[playerid][bankgeld]);
    ShowPlayerDialog(playerid,kontostand,DIALOG_STYLE_MSGBOX,"Dein Kontostand:", strink ,"Ok","Zurück");// Konstostand
    }
    if(listitem == 1) //abheben
    {
    ShowPlayerDialog(playerid,abheben,DIALOG_STYLE_INPUT,"ABHEBEN:","Wie viel möchtest du abheben?","Ok","Zurück");
    }
    }
    }
    else if(dialogid == kontostand||fertig)
    {
    if(!response)
    {
    return ShowPlayerDialog(playerid, Waffenmenu, DIALOG_STYLE_LIST, "ATM:", "Kontostand\nAbheben", "Auswählen", "Abbrechen");
    }
    }
    else if(dialogid == fehlerbox)
    {
    if(!response)
    {
    return ShowPlayerDialog(playerid,abheben,DIALOG_STYLE_INPUT,"ABHEBEN:","Wie viel möchtest du abheben?","Ok","Zurück");
    }
    }
    else if(dialogid == abheben)
    {
    if(!response)
    {
    return ShowPlayerDialog(playerid,fehlerbox,DIALOG_STYLE_MSGBOX,"Fehler:", "Ungültiger Betrag!" ,"Abbrechen","Wiederholen");
    }
    new amount = strval(inputtext);
    if(amount <= 0 || amount > pInfo[playerid][bankgeld])ShowPlayerDialog(playerid,fehlerbox,DIALOG_STYLE_MSGBOX,"Fehler:", "Ungültiger Betrag!" ,"Abbrechen","Wiederholen");
    else
    {
    GivePlayerMoney(playerid,amount);
    pInfo[playerid][bankgeld] -= amount;
    format(strink,sizeof(strink),"Du hast| $%d |von deinem Bankkonto abgehoben.",amount);
    return ShowPlayerDialog(playerid,fertig,DIALOG_STYLE_MSGBOX,"ATM:", strink,"Fertig","ATM");
    }
    }
    return 1;
    }


    //EDIT: Script ohne Erfolg verbessert..
    //EDIT²: Verbessert und Funktioniert hatte Teilweise was mit dem Register/Log Sys. zu tun also das wäre das mal wieder:
    ----------------------CLOSED