OnDialogResponse回调函数
From SA-MP Wiki
当一个玩家按下由 ShowPlayerDialog 产生的对话框上的任何按钮的时候,这个回调将会被调用。
(playerid, dialogid, response, listitem, inputtext[])
playerid | 点击对话框按钮的 玩家ID 。 |
dialogid | 由 ShowPlayerDialog 指定的 对话框ID 。 |
response | 1 为第一个按钮, 0 为第二个按钮。 |
listitem | 玩家选择的 列表项ID 。 |
inputtext[] | 玩家在输入对话框里输入的文本 。 |
返回 | 如果检查 对话框ID 以后发现不是你的脚本弹出的对话框,请返回 0 让其他脚本处理。 |
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(!IsPlayerAdmin(playerid)) return 0; // 这段脚本只允许管理员使用 if(dialogid == 1) { if(!response) return SendClientMessage(playerid, 0xFFFFFFFF, "你取消了!"); new message[128]; format(message, sizeof(message), "你回答了: %s", inputtext); SendClientMessage(playerid, 0xFFFFFFFF, message); return 1; } return 0; }
范例用法
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) // 检查 对话框ID { case 1: { if(!response) { SendClientMessage(playerid, 0xFF0000FF, "你取消了。"); return 1; // 我们已处理了此对话框 } switch(listitem) // 使用switch远快于使用if-elseif-else结构 { case 0: // listitem 的值始于 0 ,而非 1 { // 玩家点击第一个列表项的时候将发生什么? } case 1: { // 然后第二个选项做什么? } case 2: { // 在这儿继续 ;) } // 在此添加你的对话框1的更多 列表项 (listitems) 处理 } } // 在此添加你更多的对话框 } return 0; // 如果你返回 '''1''' 将不会再调用其他 附加脚本(Fliterscripts) 的这个函数。 }
有关联的函数回调
以下回调函数可能会对你有所帮助,他们可能跟这个函数有直接关系或间接关系。
- ShowPlayerDialog: 给玩家显示一个对话框。
Categories: 添加于0.3 | 脚本回调