Jump to content
  • 0

pomoc ShowPlayerDialog responses


rkz

Dotaz

čaute,mám problém ktorý neviem ako vyriešiť,aj keď problém bude asi s returnami pretože im moc nerozumiem a neviem kedy ich dávať a ako fungujú :d Každopádne,dialog mi vyskočí ale keď kliknem na respondy (Panna,Orol) nič sa nestane. Kód je tu

Spoiler

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new bet;
new randomnumber = random(2)+1;
if(dialogid == DIALOG_MINCA)
     {
        if(response == 1)
        { //panna

            if (randomnumber==1)
            {
                SendClientMessage(playerid,MSGSUCC_COLOR,"Padla panna!");
                SetPVarInt(playerid,"Money",GetPVarInt(playerid,"Money")+bet*2);
                GivePlayerMoney(playerid,bet*2);
            }
            else
            {
                SendClientMessage(playerid,MSGFAIL_COLOR,"Padol orol!");
                SetPVarInt(playerid,"Money",GetPVarInt(playerid,"Money")-bet);
                GivePlayerMoney(playerid,-bet);
            }
        }
        else
        { // Orol

            if (randomnumber==2)
            {
                SendClientMessage(playerid,MSGSUCC_COLOR,"Padol orol!");
                SetPVarInt(playerid,"Money",GetPVarInt(playerid,"Money")+bet*2);
                GivePlayerMoney(playerid,bet*2);
            }
            else
            {
                SendClientMessage(playerid,MSGFAIL_COLOR,"Padla panna!");
                SetPVarInt(playerid,"Money",GetPVarInt(playerid,"Money")-bet);
                GivePlayerMoney(playerid,-bet);
            }
        }
        return 1;
    }
return 0;
}
CMD:minca(playerid, params[]){
    new bet;
    if (sscanf(params, "i",bet))
    {
        SendClientMessage(playerid,MSGCMDS_COLOR, "Použitie: \"/minca <suma stávky>\"");
    }
    else
    {
        ShowPlayerDialog(playerid,DIALOG_MINCA,DIALOG_STYLE_MSGBOX,"Minca", "Panna alebo orol?","Panna","Orol");
    }
    return 1;
}
 

Quote

 

//edit - ide to aj keď nemám žiadne peniaze,vypíše to čo padlo ale nezoberie alebo nepridá peniaze + ide hodiť mincou aj keď nemá peniaze

 

Edited by rkz
Link to comment
Share on other sites

1 odpověd na tuto otázku

Recommended Posts

  • 0

Do příkazu si musíš přidat podmínky, aby mu to nešlo pokud nemá peníze a aby nevsadil víc, než u sebe má. (použij na to ten svůj PVar "Money") např:

if(GetPVarInt(playerid,"Money") <= 0) return Zpráva o tom, že má málo peněz.
else if(GetPVarInt(playerid,"Money") < bet) Zpráva o tom, že nemůžeš vsadit víc než kolik u sebe má.

Následně si musíš částku kterou vsadil uložit do proměnné nebo PVaru, aby si s ní mohl dál pracovat v OnDialogResponse. např:

SetPVarInt(playerid, "Vsazeno", bet);

a v příslušném dialogu použiješ místo: new bet; 
toto: new bet = GetPVarInt(playerid, "Vsazeno");

Lepší řešení by bylo ukázat mu po napsání příkazu /minca dialog typu ipnut, kam by zadal částku a vybral si Pannu  / Orla, a v OnDialogResponse mít všechny podmínky + nemusíš ukládat vsazenou částku, protože by si ji měl uloženou v "inputtext" u příslušného dialogu.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...