Wie bekomm ich sowas hin?

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,


    ich möchte gerne einen Deathmatch-Server scripten, das habe ich auch auch getan aber
    ich komme nicht mehr bei der Ammunation weiter. Ich kann dieses Menü nicht scripten,
    weil ich weiß nicht wie das geht und wollte euch fragen ob einer das für mich machen
    oder mir das erklären kann.


    Hier mal ein Screenshot wie ich angefangen habe:
    http://s10.directupload.net/images/101010/qotk32qu.png


    Und so soll es aussehen aber nur das man das im Ammunation benutzen kann und man
    kann Waffen auswählen anstatt Tuningteile:
    http://s10.directupload.net/images/101010/8rayy3tt.png


    PS: Wenn ich diesen Beitrag falsch gepostet habe werde ich das löschen und richtig posten.




    Edit:


    Weiß das keiner oder hat keiner Zeit.
    Wenn es ein Tutorial gibt kann einer den Link schicken?

  • Warum kukst du dich hier einfach nicht um im Bereich Tutorial


    Tipp: Benutzt doch einfach GUI

  • Es gibt zwar viele Tuturials....



    #define amumenu 1 //#define Menüname Menü ID





    public OnPlayerCommandText(playerid, cmdtext[])


    if (strcmp("/menu", cmdtext, true) == 0)
    if(IsPlayerInRangeOfPoint(playerid, 4.0,2315.7998,-6.9638,26.7422)){ //Koordinatenabfrage
    ShowPlayerDialog(playerid,amumenu, DIALOG_STYLE_LIST, "Amunation", "Deagle\nMP5\nusw...", "Kaufen", "Abbrechen");} // Das Menü einblenden ..
    else{
    SendClientMessage(playerid,YELLOW,"Du bist nicht an der Amunation!"); //Narchicht wenn man nicht an den obrigen Koordinaten ist..
    return 1;}




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


    if(dialogid == amumenu){
    if(response){
    if(listitem == 0){ //Deagle
    GivePlayerWeapon(playerid,24,100);
    GivePlayerMoney(playerid,-500);
    SendClientMessage(playerid,YELLOW,"Du hast dir eine Deagle gekauft!");}


    if(listitem == 1) { //MP5
    GivePlayerWeapon(playerid,29,500);
    GivePlayerMoney(playerid,-500);
    SendClientMessage(playerid,YELLOW,"Du hast dir eine MP5 gekauft!"); }
    if(listitem == 2){ //usw.


    //Weitere Waffen z.B.
    }
    }}





    mfg
    Myn




    PS. Habs nicht getestet, aber sollte gehen...bin jetzt grad nicht 100% bei der Sache :P


  • if (strcmp("/menu", cmdtext, true) == 0)
    {


    if(IsPlayerInRangeOfPoint(playerid, 4.0,2315.7998,-6.9638,26.7422)) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht im Waffenalden");
    {
    ShowPlayerDialog(playerid,amumenu, DIALOG_STYLE_LIST, "Amunation", "Deagle\nMP5\nusw...", "Kaufen", "Abbrechen"); // Das Menü einblenden ..
    }
    return 1;
    }







    PS: Beachte bitte das sich deine Dialoge nicht zusamen schneiden sprich das sie nicht die selbe ID Zahl haben wie z.B


    #define LOGIN 1
    #define amumenu 1

  • TeamSpirit deins funkt aber ich kann den Befehl /menu überall benutzen nicht wo ich es haben möchte.



    Edit:
    Ich habe es so gemacht:
    if (strcmp("/buygun", cmdtext, true) == 0)
    if(IsPlayerInRangeOfPoint(playerid, 4.0,314.0227,-133.8871,999.6016)){
    ShowPlayerDialog(playerid,ammumenu, DIALOG_STYLE_LIST, "[LS]Ammunation", "Deagle Preis: 500$\nMP5 Preis: 500$\nM4 Preis: 1000$\nAK47 Preis: 1000$","Kaufen","Abbrechen");}
    else{
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht in der Ammunation!");
    return 1;
    }



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {


    if(dialogid == ammumenu){
    if(response){

    if(listitem == 0){ //Deagle
    GivePlayerWeapon(playerid,24,999);
    GivePlayerMoney(playerid,-500);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir eine Deagle gekauft!");}


    if(listitem == 1){ //MP5
    GivePlayerWeapon(playerid,29,500);
    GivePlayerMoney(playerid,-500);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir eine MP5 gekauft!");}

    if(listitem == 2){ //M4
    GivePlayerWeapon(playerid,31,999);
    GivePlayerMoney(playerid,-1000);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir eine M4 gekauft!");}

    if(listitem == 3){ //Ak47
    GivePlayerWeapon(playerid,30,999);
    GivePlayerMoney(playerid,-1000);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir eine Ak47 gekauft!");}


    }}
    return 1;
    }


    Und wenn ich immer am Icon der Ammunation /buygun mache kommt da immer: "SERVER: Unknown command!"


    Kann mir wer weiterhelfen?


    Edit2: /push

  • Als erstes das brauchst du nicht mehr!

    if (strcmp("/buygun", cmdtext, true) == 0)
    if(IsPlayerInRangeOfPoint(playerid, 4.0,314.0227,-133.8871,999.6016)){
    ShowPlayerDialog(playerid,ammumenu, DIALOG_STYLE_LIST, "[LS]Ammunation", "Deagle Preis: 500$\nMP5 Preis: 500$\nM4 Preis: 1000$\nAK47 Preis: 1000$","Kaufen","Abbrechen");}
    else{
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht in der Ammunation!");
    return 1;
    }


    So nun zum eigentlichen
    ganz oben ins script
    new Ammu; //Name kannst du beliebig ändern


    unter public OnGamemModeInit()

    Ammu = CreatePickup( 1314, 23, 314.0227,-133.8871,999.6016); //hier die coords rein wo das pickup sein soll!
    //der name (Ammu) muss immer der gleiche wie oben sein
    // 1314 = die Model id wie das Pickup aussieht, dieses kannst du ändern (im wiki oder per google einfach die Model id´s suchen)
    //23 = bedeutet das das pickup etwas bewirkt aber nicht aufnehmbar is/verschwindet (nicht ändern)


    unter public OnPlayerPickUpPickup(playerid, pickupid)

    if(pickupid == Ammu) //gleiche wie oben
    {
    ShowPlayerDialog(playerid,ammumenu, DIALOG_STYLE_LIST, "[LS]Ammunation", "Deagle Preis: 500$\nMP5 Preis: 500$\nM4 Preis: 1000$\nAK47 Preis: 1000$","Kaufen","Abbrechen");
    }


    mfg Kain101

  • Du kannst auch einfach die Postion vom Spieler verändern wenn er den GUI schliest!
    Hier 2 Stichworte
    SetPlayerPos(playerid,Float: x,Float: y,Float: z);
    response


    Hoffe ich konnte helfen.
    Lg
    Hardcore



    P.s
    Mal ne Frage...
    wieso nennst du dich Scriptmaster,wenn du nichtmal das leichteste wie ein GUI pder ein Menü hinbekommst?
    Also da passt irgendwas nicht!


  • P.s
    Mal ne Frage...
    wieso nennst du dich Scriptmaster,wenn du nichtmal das leichteste wie ein GUI pder ein Menü hinbekommst?
    Also da passt irgendwas nicht!

    Ich habe keinen Namen gefunden und habe den einfach genommen ^^
    Danke für die hilfe ich versuch mal Glück.

    Edit: Wo soll ich das hinmachen, weil ich habe noch nie mit GUI´s gearbeitet ^^
    Edit2: Kann wer helfen -.- bitte

  • Machs doch so:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){


    if(dialogid == ammumenu){
    if(response){

    if(listitem == 0){ //Deagle
    GivePlayerWeapon(playerid,24,999);
    GivePlayerMoney(playerid,-500);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir eine Deagle gekauft!");}
    SetPlayerPos( // Und so weiter..


    if(listitem == 1){ //MP5
    GivePlayerWeapon(playerid,29,500);
    GivePlayerMoney(playerid,-500);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir eine MP5 gekauft!");}
    SetPlayerPos( // Und so weiter

    if(listitem == 2){ //M4
    GivePlayerWeapon(playerid,31,999);
    GivePlayerMoney(playerid,-1000);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir eine M4 gekauft!");}
    SetPlayerPos( // Und so weiter

    if(listitem == 3){ //Ak47
    GivePlayerWeapon(playerid,30,999);
    GivePlayerMoney(playerid,-1000);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir eine Ak47 gekauft!");}
    SetPlayerPos( // Und so weiter


    }}
    return 1; }