DIALOG_STYLE_INPUT

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
  • Guten Tag. Ich habe ein Pickup erstellt. wenn man nun in diesen Pickup läuft soll ein menu starten, wo man sich verschiedene waffen kaufen kann. das bekomme ich auch soweit noch hin, aber dann möchte ich wenn er da eine waffe aus wählt, das er da die munition bestimmt. also minimal 0 maximal 300 oder so. also ich habe jetzt:


    new lsammu2;


    #define DIALOG_LSAMMU 7


    OnGameModeInit()
    {
    lsammu2 = CreatePickup(1274,1,296.4865,-83.9735,1001.5156,-1);//ls ammu $
    return 1;
    }


    OnPlayerPickUpPickup(..)
    {
    if(pickupid == lsammu2)
    {
    ShowPlayerDialog(playerid,DIALOG_LSAMMU,DIALOG_STYLE_LIST,"Waffen","Deagle 400$\nMp5 500$","Okay","Abbrechen");
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 7)
    {
    if(response)
    {
    if(listitem == 1)
    {
    //hier soll nun DIALOG_STYLE_INPUT kommen, wo er die munition wählt. und er pro schuß eine bestimmte menge an geld zahlt + das geld der waffe.
    }
    if(listitem == 2)
    {
    //und hier das selbe, was ich aber selber hinkriege wenns mir einmal gezeigt wurde.
    }
    }
    return 1;
    }


    das geld für jeden schuß ist egal, das kann ich dann selber editieren.
    wäre echt nett wenn ihr mir das machen könnt.


    mfg

    Einmal editiert, zuletzt von Simon ()

  • new Waffe[MAX_PLAYERS];


    Das bei listitem == 1 reinschreiben

    ShowPlayerDialog(playerid,8,DIALOG_STYLE_INPUT,"Munition","Preis der Munition","Okay","Abbrechen");
    Waffe[playerid] = 5; //WaffenID hier rein


    Als neuer Dialog (8) das hinzufügen


    if(dialogid == 8)
    {
    if (strval(inputtext) < 1 || strval(inputtext) > 300)
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Mindestens 1 oder maximal 999 Munition");
    ShowPlayerDialog(playerid,8,DIALOG_STYLE_INPUT,"Munition","Preis der Munition","Okay","Abbrechen");
    return 1;
    }
    new ammocharge;
    new Waffenpreis;
    if(Waffe[playerid] == 5) // WaffenID hier rein
    {
    ammocharge = Preis der Munition * strval(inputtext); //Hier Preis der Munition
    Waffenpreis = 2500; // Preis der Waffe
    }
    new payout = Waffenpreis + ammocharge;
    GivePlayerMoney(playerid, -payout);
    GivePlayerWeapon(playerid, Waffe[playerid],strval(inputtext));
    Waffe[playerid] = 0;
    }


    Darauf hättest aber auch selber kommen können

  • habe nun das hier:


    new Waffe[MAX_PLAYERS];


    #define DIALOG_LSAMMU 7
    #define DIALOG_LSAMMILISTITEM1 8


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext, "/kaufen", true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid,1.0,296.4865,-83.9735,1001.5156))
    {
    ShowPlayerDialog(playerid,DIALOG_LSAMMU,DIALOG_STYLE_LIST,"Waffen","Deagle 400$\nMp5 500$","Okay","Abbrechen");
    }
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 7)
    {
    if(response)
    {
    if(listitem == 1)
    {
    ShowPlayerDialog(playerid,8,DIALOG_STYLE_INPUT,"Munition","Preis der Munition","Okay","Abbrechen");
    Waffe[playerid] = 24; //WaffenID hier rein
    }
    if(listitem == 2)
    {
    SendClientMessage(playerid,GREEN,"in arbeit");
    }
    }
    }
    if(dialogid == 8)
    {
    if (strval(inputtext) < 1 || strval(inputtext) > 300)
    {
    SendClientMessage(playerid, ROT, "Mindestens 1 oder maximal 999 Munition");
    ShowPlayerDialog(playerid,8,DIALOG_STYLE_INPUT,"Munition","Preis der Munition","Okay","Abbrechen");
    return 1;
    }
    new ammocharge;
    new Waffenpreis;
    if(Waffe[playerid] == 24) // WaffenID hier rein
    {
    ammocharge = 1 * strval(inputtext); //Hier Preis der Munition
    Waffenpreis = 400; // Preis der Waffe
    }
    new payout = Waffenpreis + ammocharge;
    GivePlayerMoney(playerid, -payout);
    GivePlayerWeapon(playerid, Waffe[playerid],strval(inputtext));
    Waffe[playerid] = 24;
    }
    return 1;
    }


    der 1. dialog kommt wo ich auswähle deagle(listitem 1) oder mp5 (listitem 2). wenn ich nun deagle auswähle kommt nichts ^^
    keine errors keine warnings.

  • daran habe ich nicht gedacht ^^ ahhh 0 verdammt danke ^^ wäre mir bestimmt irgentwann auch eingefallen ^^
    danke ich probiere es dann mal
    so ein dummer fehler -.-


    //edit:
    klappt alles danke =)


    //edit:
    kann man da noch einbauen, das ein GameTextForPlayer angezeigt wird, der das abgezogene geld beinhaltet. wenn er sich diese waffe kauft soll dann ein GameText entstehen wo dann steht wieviel geld das nun gekostn hat:


    GameTextForPlayer(playerid,"~r~[abgezogene Geld]",2000,1);

    2 Mal editiert, zuletzt von Simon ()

  • was ist scripten? ^^
    ne bin noch ziemlich am anfang und lerne das gerade noch alles.
    das habe ich nun alles gemacht, verstanden hab ich es auch ^^ nicht so wie andere die einfach nur kopieren und einfügen.
    aber ich bekomme nun errors, die ich auch verstehe aber net lösen kann, da ich net weiß wie man das hier definiert.
    vielleicht könntest du mir hier noch ein letztes mal helfen dann könnte ich den rest selbst:


    if(dialogid == 8)
    {
    if(response)
    {
    if (strval(inputtext) < 0 || strval(inputtext) > 500)
    {
    SendClientMessage(playerid, ROT, "Mindestens 0 oder maximal 500 Munition");
    ShowPlayerDialog(playerid,8,DIALOG_STYLE_INPUT,"Munition","Wieviel Schuß möchtest du haben?","Okay","Abbrechen");
    return 1;
    }
    new ammocharge;
    new Waffenpreis;
    if(Waffe[playerid] == 24) // WaffenID hier rein
    {
    ammocharge = 4 * strval(inputtext); //Hier Preis der Munition
    Waffenpreis = 400; // Preis der Waffe
    }
    new payout = Waffenpreis + ammocharge;
    if(GetPlayerMoney(playerid) > payout)
    {
    GivePlayerMoney(playerid, -payout);
    GivePlayerWeapon(playerid, Waffe[playerid],strval(inputtext));
    Waffe[playerid] = 24;
    format(string,sizeof(string),"~r~-%d$",payout);
    GameTextForPlayer(playerid,string,2000,1);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du kannst dir diese Waffe nicht leisten!");
    }
    }


    C:\Users\Simon Siggelkow\Desktop\Pawno\gamemodes\Dm.pwn(1726) : error 017: undefined symbol "string"
    C:\Users\Simon Siggelkow\Desktop\Pawno\gamemodes\Dm.pwn(1726) : error 017: undefined symbol "string"
    C:\Users\Simon Siggelkow\Desktop\Pawno\gamemodes\Dm.pwn(1726) : error 029: invalid expression, assumed zero
    C:\Users\Simon Siggelkow\Desktop\Pawno\gamemodes\Dm.pwn(1726) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.