Автор: Hatzel: Дата: 03.07.2009
© IvanZombie
Всё дословно:
Привет всем, небольшой развлекательный эвент который может запустить любой игрок!
Описание: Нпц Бойня - говорит с игроком и в итоге варпует его на карту и шлёт на весь мир сообщения,
по которым как, пчёлы на гав.. ,мёд сбегаются игроки и входят в игру. Изначально "создатель бойни" вносит
сумму для входа, так называемый прайз, после 1 минуты регистрации, начинается пвп, победитель получает деньги(приз)
по формуле: сумма установленная для входа*колличество игроков-10% от всего приза. Эти 10% уходят на благотворительные средства сервера, если кому хочется сделать 100% приз.
Внизу находим:
set prozent,(summ*.players)/10; // 10 процентов от суммы эвент забирает себе
set zeny,zeny+(.summ*.players-@prozent);
set zeny,zeny+.summ*.players;
// PVP Бойня by Ivan Zombie ~ ICQ: 47-51-581 ~
prontera,153,217,1 script Бойня 786,{
if(.event==1){
if(.register==1){
mes "[Uncle]";
mes "Простите, бойня уже идёт..";
close;
}
mes "[Uncle]";
mes "Привет! Это эвент пвп бойня!";
mes "Участники могут быть любого уровня!";
next;
mes "Сумма взноса для приза равна "+.summ+"! Участников "+.players+"!";
mes "Хотите присоединится?";
switch(select("Да","Нет")){
case 1:
if(zeny<.summ) goto money;
set .players,.players+1;
set zeny,zeny-.summ;
warp "quiz_02",251,378; close;
case 2:
mes "[Uncle]";
mes "Ок, приходи как передумаешь.";
close;
}
}
set .players,1;
mes "[Uncle]";
mes "Привет! Это эвент пвп бойня!";
mes "Начать эвент может каждый игрок 99 уровня!";
next;
mes "[Uncle]";
mes "Все кто придёт зарегистрироваться будут вносить сумму, которую вы укажете";
next;
mes "[Uncle]";
mes "В итоге приз получит только 1 победитель.";
mes "Что ты желаеш?";
switch(select("Создать игру","Выход")) {
case 1:
if(baselevel < 99) {
mes "[Uncle]";
mes "Простите, но для участия необходимо что бы у вас был 99 базовый уровень..";
close;
}
mes "[Uncle]";
mes "Хорошо, ты выбрал создать игру.";
mes "Помни, мы забираем 10% от приза!";
mes "Сколько взнос за вход?";
next;
menu "200.000zeny",Zeny1,"500.000zeny",Zeny2,"1.000.000zeny",Zeny3;
Zeny1:
set .summ,200000;
goto check;
Zeny2:
set .summ,500000;
goto check;
Zeny3:
set .summ,1000000;
goto check;
check:
if(zeny<.summ) {
mes "[Uncle]";
mes "Простите у вас меньше "+.summ+" zeny!";
close;}
else {
mes "[Uncle]";
set zeny,zeny-.summ;
mes "Хорошо, ваша сумма была установлена как цена за вход!";
mes "Сейчас начнём звать участников";
mes "Вы готовы запустить пвп бойню?";
next;
switch(select("Да","Нет")){
case 1:
mes "[Поехали]";
pvpoff "quiz_02";
warp "quiz_02",251,378;
set .event,1;
initnpctimer;
announce "Начинается PVP бойня! Зачинщик "+strcharinfo(0)+"!",0,0x00ff00;
OnTimer5000:
announce "Начало PVP бойни через 1 минуту!",0,0x00ff00;
end;
OnTimer55000:
announce "Начало PVP бойни через ~5~",0,0x00ff00;
end;
OnTimer56000:
announce "Начало PVP бойни через ~4~",0,0x00ff00;
end;
OnTimer57000:
announce "Начало PVP бойни через ~3~",0,0x00ff00;
end;
OnTimer58000:
announce "Начало PVP бойни через ~2~",0,0x00ff00;
end;
OnTimer59000:
announce "Начало PVP бойни через ~1~",0,0x00ff00;
end;
OnTimer60000:
pvpon "quiz_02";
stopnpctimer;
set .register,1;
announce "PVP бойня началась! Регистрация закрыта!",0,0x00ff00;
end;
case 2:
mes "[Uncle]";
mes "Передумали?! А я уже всё подготовил..";
close;
}
}
case 2:
mes "[Uncle]";
mes "Передумали?!..";
close;
}
OnPCKillEvent:
getmapxy(@mapname$,@mapx,@mapy,0,strcharinfo(0));
if(@mapname$=="quiz_02"){
attachrid(killedrid);
warp "prontera",155,182;
if(getmapusers("quiz_02")<2){
attachrid(killerrid);
announce "Победитель в PVP Бойне - "+strcharinfo(0)+"!",0,0x00ff00;
set @prozent,(summ*.players)/10; // 10 процентов от суммы эвент забирает себе
set zeny,zeny+(.summ*.players-@prozent);
set .event,0;
set .register,0;
mapwarp "quiz_02","prontera",155,182;}}
}
Автор: Fayl: Дата: 01.16.2011
Возникла проблема с этим эвентом.
Ситуация следующая:
На арене два игрока, бойня началась.
Первый убивает второго.
Оба летят в пронту.
НПЦ лечит победителя - всё отлично, хп на максимуме, сп тоже, скилы и бафы работают.
НПЦ лечит проигравшего - полоска хп на нуле. Касты на него не ложатся. Атаковать монстров он не может. При перезаходе ситуация та же.
Лечится только через phpmyadmin. Заходим и вручную редактируем таблицу с персонажем, устанавливая макимальное количество хп.
UPD: Замтил ещё одно, этого персонажа не видят агрессивные мобы, а так же МВП.
Автор: DiS[IP]: Дата: 01.16.2011
[FONT=Lucida Console]Сделай авторес при смерти.[/FONT]
Автор: Fayl: Дата: 01.16.2011
Цитата Dis[IP];30436:
[FONT=Lucida Console]Сделай авторес при смерти.[/FONT]
if(getmapusers("poring_c01")<2){
Автор: Jarek: Дата: 01.16.2011
По идее лечится вставкой sleep между варпом в пронту и хилом.
Автор: Fayl: Дата: 01.16.2011
Верно! Спасибо большое!
OnPCKillEvent:
getmapxy(@mapname$,@mapx,@mapy,0,strcharinfo(0));
if(@mapname$=="poring_c01"){
attachrid(killedrid);
percentheal 100,100;
sleep2 1;
warp "prontera",155,182;