Дмитрий19995
Умник
Итак создаём массив!
Теперь нам надо заморозить игрока!
Время заморозки установили на 30 и вывели ему диалоговое окно номер 777.
Теперь рассмотрим колбек обработки окошек.
Для начала избавимся от возможного багоюза.
Теперь игрок не сможет освободиться, вызвав какое-нибудь другое окно. Если игрок заморожен, то любая его попытка вызвать какое-либо окно вызовет наш замораживающий диалог.
Теперь напишем обработчик для собственно нашей таблички.
В том же паблике, в котором мы поставили защиту от багоюза мы делаем следующее.
Что бы игрок не нажал в табличке, какой бы он клавишей не пытался закрыть ее - диалог среагирует следующим образом: если время заморозки отлично от нуля - он снова выведет табличку.
Осталось написать механизм, который будет убавлять время заморозки. С этой задачей справится самый обычный таймер. Уроки по таймеру я видел в этом разделе, поэтому процесс их создания я описывать не буду.
В код таймера необходимо поместить следующий код. Таймер должен работать с интервалом в 1 секунду (ну или минуту, если скриптер захочет сделать поминутную заморозку)
Автор By dimka)
PHP:
new FreezeTime[MAX_PLAYERS];
PHP:
public OnPlayerConnect(playerid)
{
FreezeTime[playerid] = 0;
return 1;
}
PHP:
FreezeTime[playerid] = 30;
ShowPlayerDialog(playerid, 777 , DIALOG_STYLE_MSGBOX,"{FF0000}Тут нельзя драться"Это зелёная зона! ","Ок","Закрыть");
Время заморозки установили на 30 и вывели ему диалоговое окно номер 777.
Теперь рассмотрим колбек обработки окошек.
Для начала избавимся от возможного багоюза.
PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(FreezeTime[playerid] != 0)
{
ShowPlayerDialog(playerid, 777 , DIALOG_STYLE_MSGBOX,"{FF0000}Тут нельзя драться"Это зелёная зона ","Ок","Закрыть!");
return 1;
}
Теперь напишем обработчик для собственно нашей таблички.
В том же паблике, в котором мы поставили защиту от багоюза мы делаем следующее.
PHP:
if(dialogid == 777)
{
if(FreezeTime[playerid] != 0)
ShowPlayerDialog(playerid, 777 , DIALOG_STYLE_MSGBOX,"{FF0000}Тут нельзя драться" , "Это зелёная зона! ","Ок","Закрыть!");
return 1;
}
Осталось написать механизм, который будет убавлять время заморозки. С этой задачей справится самый обычный таймер. Уроки по таймеру я видел в этом разделе, поэтому процесс их создания я описывать не буду.
В код таймера необходимо поместить следующий код. Таймер должен работать с интервалом в 1 секунду (ну или минуту, если скриптер захочет сделать поминутную заморозку)
PHP:
If(FreezeTime[playerid] > 0)
FreezeTime[playerid]--;
else if (FreezeTime[playerid] < 0)
FreezeTime[playerid] = 0;
Автор By dimka)
