Ох уж эти диалоги
#1

Привет форумчане,есть такой cleo скрипт DIALOG HIDER с помощью него можно скрывать и открывать диалоги,но и флудить последним Id'ом диалога,тобишь багоюзить им
написал защиту НО,она не работает,приходится после каждой функции ставить
PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogids[playerid] == dialogid)
    {
  
// диалоги
    
}
    return 
true;
    } 
PHP код:
stock MyDialog(playeriddialogidstylecaption[], info[], button1[], button2[])
{
        
dialogids[playerid] = dialogid;
    
ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2);
    return 
1;

естественно присутствует переменная
PHP код:
new dialogids[MAX_PLAYERS]; 
теперь подробнее о проблеме,пробовал обнулять переменную в конце паблика - при 2 диалоге обнуляется переменная и не срабатывает,работает только так
PHP код:
    case 10:
        {
            if(
response)
            {
                if(
account[playerid][pMuteTime] > 0) return SendClientMessage(playeridTEAM_CYAN_COLOR"У Вас бан чата!");
                if(!
strlen(inputtext))return ShowPlayerDialog(playerid,10,DIALOG_STYLE_INPUT"Жалоба администрации""Вы собираетесь отправить администрации сообщение с жалобой\nОтпровляйте по форме [ID/ник нарушитиля] [Текст жалобы]""Отправить""Назад");
                
format(stringsizeof(string), "%s[%d]:{EEEE00} %s",account[playerid][pName], playerid, (inputtext));
                
SendClientMessage(playerid,0xFFA500AAstring);
                
SendClientMessage(playeridCOLOR_GREEN"Ожидайте! админстрация ответит вам в течении минуты.");
                
format(stringsizeof(string), "%s[%d]:{EEEE00} %s",account[playerid][pName], playerid, (inputtext));
                
SendAdminMessage(0xFFA500AA,string);
                                
dialogids[playerid] = 0;
                return 
true;
            } 
Reply
#2

PHP код:
stock MyDialog(playeriddialogidstylecaption[], info[], button1[], button2[]) 

dialogids[playerid] = 1
ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2); 
return 
1

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) 

if(
dialogids[playerid] != 1) return true;
dialogids[playerid]=0;
//диалоги
return true

Reply
#3

Quote:
Originally Posted by DEMON91052
Посмотреть сообщение
PHP код:
stock MyDialog(playeriddialogidstylecaption[], info[], button1[], button2[]) 

dialogids[playerid] = 1
ShowPlayerDialog(playeriddialogidstylecaptioninfobutton1button2); 
return 
1

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) 

if(
dialogids[playerid] != 1) return true;
dialogids[playerid]=0;
//диалоги
return true

а как же подмена диалога?)
Reply
#4

все разобрался,большое спасибо демону,пошел по его способу добавил проверки на ид диалога - все работает как часы.
Reply
#5

Подмену диалога уже давно пофиксили разрабы сампа.
Reply
#6

Quote:
Originally Posted by DEMON91052
Посмотреть сообщение
Подмену диалога уже давно пофиксили разрабы сампа.
на 0.3х еще работало,спасибо теперь багоюз с диалогами зафикшен
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)