Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*==============================================================================
- Защита от
- Dialog Hider
- by DeimoS
- ==============================================================================*/
- static ac_dhider__player_dialog_ids[MAX_PLAYERS] = {-1, ...};
- // Перехват ShowPlayerDialog для записи показанного игроку ID диалога
- stock ac_dhider__ShowPlayerDialog(playerid, dialogid, type, header[], text[], button1[], button2[])
- {
- ac_dhider__player_dialog_ids[playerid] = dialogid;
- return ShowPlayerDialog(playerid, dialogid, type, header, text, button1, button2);
- }
- #if defined _ALS_ShowPlayerDialog
- #undef ShowPlayerDialog
- #else
- #define _ALS_ShowPlayerDialog
- #endif
- #define ShowPlayerDialog ac_dhider__ShowPlayerDialog
- // Перехват OnDialogResponse для проверки того, был ли показан игроку диалог, данные о котором он прислал серверу
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(ac_dhider__player_dialog_ids[playerid] != dialogid)
- return CallLocalFunction("OnPlayerUseDialogHider", "ii", playerid, dialogid);
- ac_dhider__player_dialog_ids[playerid] = -1;
- #if defined ac_dhider__OnDialogResponse
- ac_dhider__OnDialogResponse(playerid, dialogid, response, listitem, inputtext);
- #endif
- return 1;
- }
- #if defined _ALS_OnDialogResponse
- #undef OnDialogResponse
- #else
- #define _ALS_OnDialogResponse
- #endif
- #define OnDialogResponse ac_dhider__OnDialogResponse
- #if defined ac_dhider__OnDialogResponse
- forward ac_dhider__OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
- #endif
- // Перехват OnPlayerDisconnect для того, чтоб обновить данные в массиве для следующего игрока
- public OnPlayerDisconnect(playerid, reason)
- {
- ac_dhider__player_dialog_ids[playerid] = -1;
- #if defined ac_dhider__OnPlayerDisconnect
- ac_dhider__OnPlayerDisconnect(playerid, reason);
- #endif
- return 1;
- }
- #if defined _ALS_OnPlayerDisconnect
- #undef OnPlayerDisconnect
- #else
- #define _ALS_OnPlayerDisconnect
- #endif
- #define OnPlayerDisconnect ac_dhider__OnPlayerDisconnect
- #if defined ac_dhider__OnPlayerDisconnect
- forward ac_dhider__OnPlayerDisconnect(playerid, reason);
- #endif
- forward OnPlayerUseDialogHider(playerid, dialogid);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement