OnDialogResponse
Ez az eljárás akkor hívódik meg, ha egy játékos megnyom valamilyen billentyût egy beszélgetõablakban (dialogban/dialógusban,a lista elemek is bele tartoznak.) melyet az
ShowPlayerDialog függvényel jelenítünk meg neki.
Paraméterek: (playerid, dialogid, response, listitem, inputtext[])
playerid - Annak a játékosnak az azonosítója, aki válaszolt a párbeszédpanelnek.
dialogid - A párbeszédpanel azonosítója,amit az
ShowPlayerDialog függvénnyel rendelünk hozzá.
response -
1 ha az elsõ,
0 ha a második gombot nyomta meg a játékos.
listitem - A kiválasztott listaelem azonosítója.(A legelsõ listaelem azonosítója a 0,a másodiké 1 stb..)
inputtext[] - A szöveg amit a játékos begépelt a szövegdobozba vagy a kiválasztott listaelem szövege.
Visszatérés Returning 0 in this callback will pass the dialog to another script in case no matching code were found in your gamemode\'s callback.Ezt nem tudom értelmezni,valaki jobb angolos írja le plz.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(!IsPlayerAdmin(playerid)) return 0; // Ezt csak RCON admin használhatja.
if(dialogid == 1)
{
if(!response) return SendClientMessage(playerid, 0xFFFFFFFF, \"A második gombot nyomtad meg!\");
new message[128];
format(message, sizeof(message), \"Válaszod: %s\", inputtext);
SendClientMessage(playerid, 0xFFFFFFFF, message);
return 1;
}
return 0;
}
Példa a használatra:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid) //Keresés a dialogok között
{
case 1:
{
if(!response)
{
SendClientMessage(playerid, 0xFF0000FF, \"A második gombot nyomtad meg.\");
return 1; // Feldolgozzuk
}
switch(listitem) // Ez sokkal hatékonyabb mint az else-if szerkezet
{
case 0: // A választási lehetõségek azonosítója 0-val kezdõdik,nem 1-gyel.
{
// Mi fog történni ha az elsõ listaelemet nyomja meg?
}
case 1:
{
// És ha a másodikat?
}
case 2:
{
// Ha a 3.-at,és így tovább...
}
// Folytathatod a sorozatot itt.
}
}
// Add hozzá a többi dialogodat itt.
}
return 0; // Ha 1-el térsz vissza az eljárás nem fog folytatódni a többi a többi scriptben.(filterscriptek,stb..)
}
Kapcsolódó függvények:
ShowPlayerDialog: Megjelenít egy párbeszédablakot a játékosnak.
Eredeti téma:
http://wiki.sa-mp.com/wiki/OnDialogResponse