Jump to content

[ TUT ] Posilani veci pres dialog


Recommended Posts

Psat tady v tutu jak se zaklada dialog nebo jak se definuje promena nebudu to uz tady je aspon 100×ale, primo najedu na to, jak udelat aby se vec, kterou vybereme v dialogu otevrel novy dialog a aby se pak napsalo id a poslalo se to nebo to co nadefinujeme.

Tak jdem na to:

Prvni si nadefinujeme prikaz a do nej vlozime

ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Set","Ridicsky prukaz\nObcansky prukaz","Dat","Zrusit");

Tim sme zalozili dialog se 2 polozkama.

do publicu OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

si dame:

if(dialogid == 1)
{
if(response == 1)
{
if(listitem == 0) //prvni polozka dialogu
{
prukaz[playerid] = 1; // promena pro prvni polozku dialogu pro druhy dialog
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Prukazy","ID","Dat","Zrusit"); //vytvoreni druheho dialogu pro zadani ID hrace
}
if(listitem == 1) // druha polozka dialogu
{
prukaz[playerid] = 2; // promena pro druhou polozku dialogu pro druhy dialog
ShowPlayerDialog(playerid,5,DIALOG_STYLE_INPUT,"Prukazy","ID","Dat","Zrusit");
}

 

Tim sme nastavili, ze kdyz se vybere prvni polozka nastavi to promennou jedna a u druhe polozky nastavi promennou na 2.

 

a druhy dialog bude vypadat takto:

 

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

if(dialogid == 2) // id dialogu
{
if(response == 1) // zmacknuto prvni tlacitko
{
if(prukaz[playerid] == 1) //pokud se promenna rovna 1
{
new id = strval(inputtext); // zformatovani inputtext
if(!IsNumeric(inputtext)) return SendClientMessage(playerid,COLOR_cervena,"[ Server info ] Musis zadat cislo."); // zjisti pokud nezadal cislo, stock na tuto funkci tu uz je
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_cervena,"[ Server info ] Nepripojene ID."); // zjisti pokud hrac neni pripojenej
if(ridicak[playerid] == 1) return SendClientMessage(playerid,COLOR_cervena,"[ Server info ] Uz ma Ridicsky prukaz."), prukaz[playerid] == 0; // zjisti pokud uz ma ridicsky prukaz a pokud ano nastavi hodnotu prukaz zpet na 0 (za ridicak si dejte svoji promennou)
if(id == playerid) // zjisti pokud to posila sobe
{
SendClientMessage(playerid,COLOR_zluta,"[ Server info ] Pridal ste si Ridicsky prukaz.");
ridicak[playerid] = 1;
prukaz[playerid]  = 0;
}
else // a pokud to posila jinemu
{
new CZstring[150];
format(CZstring, 150, "[ Server info ] Dostal ste od Administratora %d Ridicsky prukaz", PlayerName(playerid));
SendClientMessage(id,COLOR_zluta,CZstring);
ridicak[id]       = 1;
prukaz[playerid]  = 0;
}
}

if(prukaz[playerid] == 2) // totez jako prvni priklad ale, pro druhou polozku
{
new id = strval(inputtext);
if(!IsNumeric(inputtext)) return cislo(playerid);
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_cervena,"[ Server info ] Nepripojene ID.");
if(obcanka[playerid] == 1) return SendClientMessage(playerid,COLOR_cervena,"[ Server info ] Uz ma Obcansky prukaz."), prukaz[playerid] == 0;

if(id == playerid)
{
SendClientMessage(playerid,COLOR_zluta,"[ Server info ] Pridal ste si Obcansky prukaz.");
obcanka[playerid] = 1;
prukaz[playerid]  = 0;
}
else
{
new CZstring[150];
format(CZstring, 150, "[ Server info ] Dostal ste od Administratora %d Obcansky prukaz", PlayerName(playerid));
SendClientMessage(id,COLOR_zluta,CZstring);
obcanka[id]       = 1;
prukaz[playerid]  = 0;
}
}

 

 

Tento navod je z my hlavy, ale chtel bych podekovat uzivateli Roox za pomoc na zformatovani inputtext.

 

Pokud to tu uz je a prehlid sem to, tak to smazte at to nezabira misto.

Link to comment
Share on other sites

Pawnim asi trictvrte roku a hazet erory by to nemelo jedinej figl v tom je ze, kdyz si vyberes nejakou polozku v dialogu tak ti to nastavi promennou a tu promenou pak vyuzijes v druhym dialogu pro dani urcite veci co sis urcil.

A kdyz to bude hazet erory tak pomuzu.

Link to comment
Share on other sites

jj...to pouzivani promenejch v jinejch dialozich je dobra vec...da se takhle udelat fakt uplne vsechno...ale podle me lepsi vec je udelat to nejdriv pres OnPlayerClickPlayer...jakmile by admin kliknul na hrace v TABu tak by uz jenom vybral akci...uz tady nekde je takhle udelanej i celej admin system...ale i tak jak je to tady to je good....na to ze ses tu novej tak dobry ;) chvalim..jen tak dal....

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...