Quote:
Originally Posted by stabker
В одном из модов на форуме я заметил код который меня заинтересовал. Кто знает, для чего он? Спасибо!
После инклудов:
pawn Код:
forward ShowPlayerSafeDialog(playerid, dialogid, style, caption[], info[], button_1[], button_2[]); public ShowPlayerSafeDialog(playerid, dialogid, style, caption[], info[], button_1[], button_2[]) { new i = -1; while(caption[++i]) if(caption[i] == 0x25) caption[i] -= 0x2; i = -1; while(info[++i]) if(info[i] == 0x25) info[i] -= 0x2; i = -1; while(button_1[++i]) if(button_1[i] == 0x25) button_1[i] -= 0x2; i = -1; while(button_2[++i]) if(button_2[i] == 0x25) button_2[i] -= 0x2; return ShowPlayerDialog(playerid, dialogid, style, caption, info, button_1, button_2); }
|
Функция обрабатывает все входящие данные и заменяет в них знак процента (0x25). Зачем? - й*х знает, понятия не имею зачем это нужно и как по мнению автора может навредить знак процента в диалоге отображаемому игроку. P.S.
http://s60.radikal.ru/i168/1208/b9/6198ef681ea4.png
Quote:
Originally Posted by stabker
в коллбэке OnDialogResponse:
pawn Код:
new b = -1; while(inputtext[++b]) { switch(inputtext[b]) { case 0x12..0xFF: continue; default: return 0; } }
|
тут стоит действительно нужный, но странно реализованный фильтр символов, которые, попадая вместе с inputtext в format, роняют сервер.
И еще, не думаю то как это реализовано можно называть "своим стилем в программировании", это либо упоротость, либо стремление специально обфусцировать свой код до непонятного состояния с целью как-то выделиться и показать себя крутым красноглазиком.