Функция ShowPlayerDialog через public
#4

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, роняют сервер.

И еще, не думаю то как это реализовано можно называть "своим стилем в программировании", это либо упоротость, либо стремление специально обфусцировать свой код до непонятного состояния с целью как-то выделиться и показать себя крутым красноглазиком.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)