Назад

Ограничение

Автор: gmden: Дата: 04.02.2011

Подскажите где кто знает в чём у меня косяк. Таймер работает на 7мин.
А вот ограничение по времени на 3 часа нет.

- script time -1,{
OnInit:
set $time,5400;
}
prontera,162,194,5 script Бранч комната 2222,{
if (gettimetick(2)-check<$time){
mes "На эту локацию разрешено заходить только раз в 3 часа.";
close;
} else {
mes "Хочеш зайти?";
mes "Но это тебе будет стоить:";
mes "100 рамаданов";
mes "5тцг";
mes "50слитков золота";
switch(select("Да:Нет")) {
next;

case 1:
mes "У вас будет 7 мин. нахождения в комнате.";
mes "Тут из мобов падает";
mes "ББ 10%";
mes "ТЦГ 2%";
mes "Яги 50%";
mes "Рамадан 30%";
next;
if(countitem(7227)<5) goto nowings;
if(countitem(685)<100) goto nowings;
if(countitem(969)<50) goto nowings;
delitem 7227,5;
delitem 685,100;
delitem 969,50;
dispbottom "У вас есть 7 мин";
addtimer 450000, strnpcinfo(3)+"::On5secs";
warp "Coliseum",0,0;
close;

case 2:
close;
}
nowings:
mes "У вас нет этих вещей!";
close;
On5secs:
dispbottom "7 минут прошло. Варп в пронту.";
warp "prontera",155,186;
end;
}

}

Автор: gmden: Дата: 04.04.2011

Хм Почему то не работает. Постоянно говорит что 3 часа ещё не прошло! Или мож таймер работает тока в онлайн. (Пробовал войти не пашит, выходил, и через часов 10 опять заходил, все равно говорит 3 часа ещё не прошло! )

prontera,162,194,5 script Бранч комната 2222,{
mes "К нам можно заходить только раз в 3 часа";
mes "Но это тебе будет стоить:";
mes "200 рамаданов";
mes "10тцг";
mes "50слитков золота";
switch(select("Да:Нет")) {
next;

case 1:
if(#zpoint == 1) goto L_po;
mes "У вас будет 5 мин. нахождения в комнате.";
mes "Тут из мобов падает";
mes "ББ 10%";
mes "ТЦГ 2%";
mes "Яги 50%";
mes "Рамадан 30%";
next;
if(countitem(7227)<10) goto nowings;
if(countitem(685)<200) goto nowings;
if(countitem(969)<50) goto nowings;
delitem 7227,5;
delitem 685,100;
delitem 969,50;
dispbottom "У вас есть 5 мин";
set #zpoint,1;
addtimer 10800000, strnpcinfo(3)+"::On6secs";
addtimer 300000, strnpcinfo(3)+"::On5secs";
warp "Coliseum",101,104;
close;

L_po:
mes "3 часа ещё не прошло!";
close;

case 2:
close;
}
nowings:
mes "У вас нет этих вещей!";
close;

On5secs:
dispbottom "5 минут прошло. Варп в пронту.";
warp "prontera",155,186;
end;

On6secs:
dispbottom "Теперь вы можете войти.";
set #zpoint,0;
end;
}
}

Автор: Jarek: Дата: 04.04.2011

Такая проверка рассчитана на то, что персонаж не выйдет из игры, пока идет таймер.
Вместо использования таймеров, записывайте в переменную gettimetick(2). А вместо проверки if(gettimetick(2)-#zpoint<10800000){get out...}

Автор: gmden: Дата: 04.04.2011

Цитата Jarek;37935:
Такая проверка рассчитана на то, что персонаж не выйдет из игры, пока идет таймер.
Вместо использования таймеров, записывайте в переменную gettimetick(2). А вместо проверки if(gettimetick(2)-#zpoint<10800000){get out...}


Ммм а поподробней с переменными можно. Или гайдик не подкинете. Просто с такой переменной я ещё не сталкивался.

Вот так склепал но чёт не пашет
prontera,193,169,5 script Бранч комната 80,{
if(gettimetick(2)-#zpoint<10800000){get out...}
mes "На эту локацию разрешено заходить только раз в 3 часа.";
mes "Хочеш зайти?";
mes "Но это тебе будет стоить:";
mes "100 рамаданов";
mes "5тцг";
mes "50слитков золота";
switch(select("Да:Нет")) {
next;

case 1:
mes "У вас будет 5 мин. нахождения в комнате.";
mes "Тут из мобов падает";
mes "ББ 10%";
mes "ТЦГ 2%";
mes "Яги 50%";
mes "Рамадан 30%";
next;
if(countitem(7227)<10) goto nowings;
if(countitem(685)<200) goto nowings;
if(countitem(969)<50) goto nowings;
delitem 7227,5;
delitem 685,100;
delitem 969,50;
dispbottom "У вас есть 5 мин";
addtimer 300000, strnpcinfo(3)+"::On5secs";
warp "prontera",193,169;
close;

case 2:
close;
}
nowings:
mes "У вас нет этих вещей!";
close;

On5secs:
dispbottom "5 минут прошло. Варп в пронту.";
set #zpoint, gettimetick(2);
warp "prontera",155,186;
end;
}
}