Waffenmenu mit GUI

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
  • Hallo Liebe Breadfisher, heute werde ich euch zeigen wie man einen Waffen befehl mit GUI Scriptet, also wen man zB /waffen eingibt öffnet sich ein Menu wo man von waffen wählen kann
    wir fangen mal an
    also erstes Definieren wir Waffenmenu
    #define Waffenmenu 0
    dan das menu mit den waffen, unter public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    fügen wir das
    if(dialogid == Waffenmenu) // Name des Menüs, das wir als ID 0 definiert haben
    {
    if(response)
    {
    if(listitem == 0) // Pistole
    {
    GivePlayerWeapon(playerid,22,100); //22 ist die WaffenID, 100 ist die Munition
    GivePlayerMoney(playerid, -150);
    }
    if(listitem == 1) // Desert Eagle
    {
    GivePlayerWeapon(playerid,24,30);
    GivePlayerMoney(playerid, -180);


    }
    if(listitem == 2) // MP5
    {
    GivePlayerWeapon(playerid,29,50);
    GivePlayerMoney(playerid, -250);
    }
    if(listitem == 3) // Ak47
    {
    GivePlayerWeapon(playerid,30,50);
    GivePlayerMoney(playerid, -300);
    }



    }
    } ein
    wen ihr waffen hinzufügt müsst ihr es zB so machen
    if(listitem == 4) //hier ganz wichtig, die müssen wir jezt zu 4 ändern weil wir ja dan 4 waffen haben
    {
    GivePlayerWeapon(playerid,waffenid,munition); //22 ist die WaffenID, 100 ist die Munition, bei nahkampfwaffen immer 0 schreiben als Munition
    GivePlayerMoney(playerid, -preis);// das - bedeutet das das geld abgezogen werden soll
    }
    nun zum Befehl
    if(strcmp("/waffen", cmdtext, true) == 0)
    {
    if (IsPlayerInRangeOfPoint(playerid, 3, 1846.7045,-1871.8756,13.5781))//eure koordinaten
    {
    ShowPlayerDialog(playerid, Waffenmenu, DIALOG_STYLE_LIST, "Waffen", "Pistole\nDesert Eagle\nMP5\nAk47", "Auswählen", "Abbrechen");
    // "Waffen" ist der Titel, danach kommen die Waffen, \n heisst "enter", Auswählen und Abbrechen sind die jeweiligen Buttons
    }
    else
    SendClientMessage(playerid, COLOR_RED, "Dein Text zB du bist nicht am waffen kauf punkt");
    }
    das wars schon, hoffe das hilft euch

    3 Mal editiert, zuletzt von [GGR]SoNiC ()

  • Nett für n00bs ;)
    Verbesserungsvorschlag: Waffen in einem Array "dynamisch" speichern und per schleife ausgeben, nur kaufbar, wenn das geld auch veorhanden ist :P

  • genau das gleiche tut hat doch schon wer anders geschrieben
    nur bisschen geändert
    wen ich mich nicht ganz täusche

    ich habs aber selbst gemacht, weil das das einzigste ist was ich so zimlich kann...
    xDD

  • Mach noch eine blockade rein wenn man nicht genaug Geld hat..


    if(GetPlayerMoney(playerid)>=150)
    {
    GivePlayerWeapon(playerid,22,100);
    GivePlayerMoney(playerid, -150);
    GameTextForPlayer(playerid, "~w~-150 ~g~$", 1000, 1);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "* Du hast nicht genug Geld !");
    }

  • danke für den fehler, ja ich hab halt mehrere menus im script und hab anscheint den falschen raus kopiert ;)

  • nice tutorial wollte fragen kann man das so machen das wenn man sagen wir in nem dm joint also /dm1 das dann in der dm zone das menu kommt wop man sich seine waffen aus zuchen kannst?


    also das menü sollte dann automatisch kommen

    Einmal editiert, zuletzt von Rene1990 ()

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == bsnmenu)
    {
    if(response)
    {
    if(listitem == 0) // Cheeseburger
    {
    SetPlayerHealth(playerid, 100)
    GivePlayerMoney(playerid, -3);
    }
    if(listitem == 1) // Große Pommes
    {
    SetPlayerHealth(playerid, 100)
    GivePlayerMoney(playerid, -7);
    }
    if(listitem == 2) // Cola
    {
    SetPlayerHealth(playerid, 100)
    GivePlayerMoney(playerid, -10);
    }
    if(listitem == 3) // Kidzmenu
    {
    SetPlayerHealth(playerid, 100)
    GivePlayerMoney(playerid, -30);
    }
    }
    return 1;
    }


    if(strcmp("/drive", cmdtext, true) == 0)
    {
    if (IsPlayerInRangeOfPoint(playerid, 3, 1846.7045,-1871.8756,13.5781))//eure koordinaten
    {
    ShowPlayerDialog(playerid, Waffenmenu, DIALOG_STYLE_LIST, "Drive-In", "Cheeseburger [$3]\nGrosse Pommes [$7]\nCola [$10]\nKidzMenu [$30]", "Auswählen", "Abbrechen");
    }
    else
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht am Drive-In!");
    }
    return 1;
    }


    Was is daran falsch?

  • if(strcmp("/drive", cmdtext, true) == 0)
    {
    if (IsPlayerInRangeOfPoint(playerid, 3, 1846.7045,-1871.8756,13.5781))//eure koordinaten
    {
    ShowPlayerDialog(playerid, bsnmenu, DIALOG_STYLE_LIST, "Drive-In", "Cheeseburger [$3]\nGrosse Pommes [$7]\nCola [$10]\nKidzMenu [$30]", "Auswählen", "Abbrechen");//es stand noch waffenmenu da,
    }
    else
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht am Drive-In!");
    }
    return 1;
    }


    wen du ein drivein oder so machen willst, da hat Markus mal was tolles gemacht , das thread heisst Menu + Untermenu oder so, einfachma bei tuts gucken!