Автор: Skllip: Дата: 01.06.2010
Когда ставил выложенные здесь скрипты на свой сервер было много багов, вот разобрался и решил выложить вам:D
prontera,172,203,4 script Stop The Clock::Ev_StopClock 924,{
if (getgmlevel() == 99) goto L_GM;
if ($@kc > 0 && @kcid != $@kcid) goto L_eventstarted;
mes "[Stop The Clock]";
mes "Здравствуй ^FF0000"+strcharinfo(0)+"^000000, чем могу помочь?";
menu "^FF0000[Stop The Clock]^000000 информация",L_info,"Выход",-;
close;
L_info:
next;
mes "[Stop The Clock]";
mes "^FF0000Stop the clock^000000 это игра, где нужно кликать на нпц";
next;
mes "[Stop The Clock]";
mes "Человек, который часы ближе к 1000 остановит, победит!";
mes "^FF0000[Note] Чтобы иметь шанс к победе нужно оставить часы от 950 до 1000^000000";
next;
mes "[Stop The Clock]";
mes "Приз: ^FF0000["+getitemname($itemid)+"]^000000";
close;
L_eventstarted:
set @kcid,$@kcid;
setd ".timing_" + .number, $@kc;
setd ".player_" + .number + "$", strcharinfo(0);
set .number, .number+1;
if ($@kc == 1000) {
announce "ДжекПот! "+strcharinfo(0)+" остановил часы на "+$@kc+".",0,0x00EEFF;
} else {
announce ""+strcharinfo(0)+" остановил часы на "+$@kc+".",0,0x00EEFF;
}
end;
L_GM:
mes "[Stop The Clock]";
mes "Дарова Администратор, что хотели?";
mes "Приз: ^FF0000["+getitemname($itemid)+"]^000000";
menu "Изменить приз",L_configure,"Начать эвент",-,"Остановить эвент",L_stop;
if (.start == 1) goto L_started;
next;
mes "[Stop The Clock]";
mes "Эвент стартовал";
close2;
L_startevent:
set .start, 1;
announce "[Stop The Clock] Старт через 1 минуту!",0,0xE38217;
initnpctimer;
end;
OnTimer30000:
if (.start == 0) goto L_suddenstop;
announce "[Stop The Clock] Старт через 30 секунд!",0,0xE38217;
end;
OnTimer50000:
if (.start == 0) goto L_suddenstop;
announce "[Stop The Clock] Старт через 10 секунд!",0,0xE38217;
end;
OnTimer55000:
if (.start == 0) goto L_suddenstop;
announce "[Stop The Clock] Старт через 5 секунд!",0,0xE38217;
OnTimer60000:
if (.start == 0) goto L_suddenstop;
announce "[Stop The Clock] Начался! Клик, клик!",0,0xE38217;
stopnpctimer;
set .number, 1;
set .count, 1000;
set .winner, 0;
set $@kc,0;
set $@kci,0;
set $@kcid,rand(100000,999999);
while ($@kc < 1100) {
set $@kc,$@kc+1;
set $@kci,$@kci+1;
if ($@kci == 100 || ($@kci == 10 && $@kc > 600) || ($@kci == 1 && $@kc >= 950 && $@kc < 1050)) {
if (.start == 0) goto L_suddenstop;
announce $@kc,0;
set $@kci,0;
specialeffect 18;
}
sleep 10;
}
set $@kc,0;
set .start, 0;
set .players, .number+1;
OnFinish:
sleep 1;
if (.count == 949) goto OnFinish3;
if (getd(".timing_" + .number) == .count) goto L_winner1;
set .number, .number-1;
if (.number != 0) goto OnFinish;
set .number, 1;
if (.winner == 1) goto OnFinish3;
set .count, .count-1;
OnFinish2:
sleep 1;
if (.count == 949) goto OnFinish3;
if (getd(".timing_" + .number) == .count) goto L_winner2;
set .number, .number+1;
if (.number != .players) goto OnFinish2;
set .number, .number-1;
if (.winner == 1) goto OnFinish3;
set .count, .count-1;
goto OnFinish;
L_winner1:
if (getd(".timing_" + .number) == 1000) {
announce ""+getd(".player_" + .number + "$")+" wins! (Prize x2 for stopping exactly on 1000)",0;
charcommand "#item " + $itemid + " 2 " + getd(".player_" + .number + "$");
} else {
announce ""+getd(".player_" + .number + "$")+" wins!",0;
charcommand "#item " + $itemid + " 1 " + getd(".player_" + .number + "$");
}
set .number, .number-1;
set .winner, 1;
goto OnFinish;
L_winner2:
if (getd(".timing_" + .number) == 1000) {
announce ""+getd(".player_" + .number + "$")+" wins! (Prize x2 for stopping exactly on 1000)",0;
charcommand "#item " + $itemid + " 2 " + getd(".player_" + .number + "$");
} else {
announce ""+getd(".player_" + .number + "$")+" wins!",0;
charcommand "#item " + $itemid + " 1 " + getd(".player_" + .number + "$");
}
set .number, .number+1;
set .winner, 1;
goto OnFinish2;
OnFinish3:
sleep 1;
set .number, .players-1;
while (.number != 0) {
set getd(".timing_" + .number), 0;
set .number, .number-1;
}
end;
L_started:
next;
mes "[Stop The Clock]";
mes "Эвент уже стартовал!";
close;
L_configure:
next;
mes "[Stop The Clock]";
mes "Пожалуйста введите id приза.";
input $itemid;
next;
mes "[Stop The Clock]";
mes "Уверены что хотите ^FF0000"+getitemname($itemid)+"^000000 изменить приз эвента?";
menu "Да",-,"Нет",L_no;
next;
mes "[Stop The Clock]";
mes "Приз изменен на ^FF0000["+getitemname($itemid)+"]^000000.";
next;
goto L_GM;
L_no:
goto L_configure;
L_stop:
next;
if (.start == 1) {
mes "[Stop The Clock]";
mes "Эвент стартовал, уверены что хотите остановить эвент?";
menu "Да",-,"Нет",-;
if (@menu == 1) {
next;
set .start, 0;
mes "[Stop The Clock]";
mes "Эвент остановлен";
next;
goto L_GM;
} else {
next;
goto L_GM;
}
} else {
mes "[Stop The Clock]";
mes "Эвент уже начался!";
close;
}
L_suddenstop:
announce "[Stop The Clock] Эвент остановлен администрацией",0,0xE38217;
end;
OnClock1800:
if (gettime(4) == 1 || gettime(4) == 3 || gettime(4) == 5 || gettime(4) == 7) end;
goto L_startevent;
}