Назад

[Автоэвент] Осада

Автор: DiS[IP]: Дата: 05.24.2010

[FONT=Lucida Console]Представляю вашему вниманию свой простенький,но не плохой автоэвентик.^_^
Описание:
[/FONT][FONT=Lucida Console]Каждый час на рандомный город нападают мобы:Главарь Осады(МВП) появляется он в количестве от 2 до 4,в зависимости от того сколько прописано в массиве и Осадники(простые мобы) их количество также зависит от числа прописанного в массиве.За убийство Главаря Осады мы получаем 3 TCG,за убийство простых мобов мы ничего не получаем.Перед появлением мобов идет аннонс:"Город ["Название"] находится под осадой злых монстров!Жители города нуждаются в вашей помощи!" и включается таймер на 10 минут,если никто за 10 минут не уничтожил главарей осады,то все мобы в городе исчезают и идет аннонс о том,что город никто не спас.Если за 10 минут всех Главарей убили то идет аннонс о том,что город спасен и остальные мобы(осадники) также исчезают.При убийстве одного главаря идет аннонс о том,что игрок убил главаря осады и в награду получает 3 TCG.[/FONT][FONT=Lucida Console][COLOR=Red]
P.S:Не крысим,ставим спасибку ;)[/COLOR][/FONT][FONT=Lucida Console]
Информация к скрипту:

// -----------------------------------------------------------------------------------------------------------------------------
// Информация к скрипту:
// -----------------------------------------------------------------------------------------------------------------------------
// 1)Массив .@disipmob[0] - заполняется айди монстрами,которые будут появляться на осаде
// 2)Массив $@countdisipmob[0] - заполняется кол-вом монстров,которые будут появляться.
// Пример:.@disipmob[0],1389,1731;$@countdisipmob[0],2,10;Это значит что мобов с айди 1389 появится 2-ое,а мобов с 1731 10 штук.
// -----------------------------------------------------------------------------------------------------------------------------
Сам скрипт:
// ==============================================================
// = - [Автоэвент] 'Осада'
// ==============================================================
// = - Скрипт написал DiS[IP]
// ==============================================================
// = - Описание:Осада городов
// ==============================================================
// = - Версия:1.3
// ==============================================================
// 1.0 - Начальная версия.
// 1.1 - Увеличил количество городов.
// 1.2 - Кол-во мобов и их ID теперь заносятся в массив.
// 1.3 - Полная оптимизация.
// ==============================================================
// = - Если вы хотите разместить где-либо этот скрипт,то не
// = - забывайте указывать копирайты,уважайте чужой труд,а тот,
// = - кто сотрет копирайты - пидарас ))
// ==============================================================

// Автозапуск эвента //
- script disip_start -1,{
end;
// Запуск эвента каждый час //
OnMinute00:
// Рандомный выбор города,в котором будет проходить эвент //
set .@disosada,rand(16);
if(.@disosada == 0) donpcevent "prontera::OnDisIP";
if(.@disosada == 1) donpcevent "morocc::OnDisIP";
if(.@disosada == 2) donpcevent "geffen::OnDisIP";
if(.@disosada == 3) donpcevent "payon::OnDisIP";
if(.@disosada == 4) donpcevent "louyang::OnDisIP";
if(.@disosada == 5) donpcevent "izlude::OnDisIP";
if(.@disosada == 6) donpcevent "hugel::OnDisIP";
if(.@disosada == 7) donpcevent "rachel::OnDisIP";
if(.@disosada == 8) donpcevent "alberta:OnDisIP";
if(.@disosada == 9) donpcevent "aldebaran::OnDisIP";
if(.@disosada == 10) donpcevent "lighthalzen::OnDisIP";
if(.@disosada == 11) donpcevent "umbala::OnDisIP";
if(.@disosada == 12) donpcevent "comodo::OnDisIP";
if(.@disosada == 13) donpcevent "yuno::OnDisIP";
if(.@disosada == 14) donpcevent "ayothaya::OnDisIP";
if(.@disosada == 15) donpcevent "einbech::OnDisIP";
if(.@disosada == 16) donpcevent "eibroch::OnDisIP";
end;
}
// Осада //
- script disip_autoevent::disip_autoevent -1,{
end;
OnDisIP:
if (strnpcinfo(1) == "disip_autoevent") end;
// Список городов и их настройки //
if(strnpcinfo(0) == "prontera"){ setarray .@disipmob[0],1785,1052,1062,1282; setarray $@countdisipmob[0],2,10,20,20; }
if(strnpcinfo(0) == "morocc"){ setarray .@disipmob[0],1785,1918,1159,1038; setarray $@countdisipmob[0],2,5,3,1; }
if(strnpcinfo(0) == "geffen"){ setarray .@disipmob[0],1785,1731,1059,1184; setarray $@countdisipmob[0],2,3,3,30; }
if(strnpcinfo(0) == "payon"){ setarray .@disipmob[0],1785,1290,1059,1180; setarray $@countdisipmob[0],3,20,3,30; }
if(strnpcinfo(0) == "louyang"){ setarray .@disipmob[0],1785,1191,1306,1516; setarray $@countdisipmob[0],2,20,30,30; }
if(strnpcinfo(0) == "izlude"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "alberta"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "aldebaran"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "hugel"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "rachel"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "ayothaya"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "einbech"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "einbroch"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "comodo"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "umbala"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "yuno"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
if(strnpcinfo(0) == "lighthalzen"){ setarray .@disipmob[0],1785,1068,1144,1070; setarray $@countdisipmob[0],4,20,30,20; }
// Появление мобов,включения таймера и т.п //
set $@ocity$,strnpcinfo(0);
announce "Город ["+strnpcinfo(0)+"] находится под осадой злых монстров!Жители города нуждаются в вашей помощи!",bc_all,0xDDC433;
initnpctimer; // Включаем таймер для отсчета 10 минут
monster strnpcinfo(0),0,0,"Главарь Осады",.@disipmob[0],$@countdisipmob[0],"disip_autoevent::OnDisBossDeath";
for(set .@i,1; .@i end;
// Если никто не спас город в течении 10 минут //
OnTimer600000: // 10 минут
stopnpctimer;
killmonsterall strnpcinfo(0);
announce "Город [ "+ strnpcinfo(0) +" ] был разорён осадой злых монстров!",bc_all,0xDDC433;
end;
// Если игрок убивает главаря осады //
OnDisBossDeath:
announce strcharinfo(0)+" убил главаря осады!За это он получает 3 TCG!.",bc_all,0xDDC433;
getitem 7227,3;
set .@defer,$@countdisipmob[0]-1;
setarray $@countdisipmob[0],.@defer;
// Если город был освобожден от осады //
if (.@defer == 0){ stopnpctimer $@ocity$; killmonsterall $@ocity$; sleep 3000; announce "Город ["+$@ocity$+"] был успешно освобожден от атак злых монстров!",bc_all,0xDDC433; }
end;
}
// Дубликаты //
prontera,0,0,0 duplicate(disip_autoevent) prontera -1
morocc,0,0,0 duplicate(disip_autoevent) morocc -1
geffen,0,0,0 duplicate(disip_autoevent) geffen -1
payon,0,0,0 duplicate(disip_autoevent) payon -1
louyang,0,0,0 duplicate(disip_autoevent) louyang -1
izlude,0,0,0 duplicate(disip_autoevent) izlude -1
alberta,0,0,0 duplicate(disip_autoevent) alberta -1
comodo,0,0,0 duplicate(disip_autoevent) comodo -1
yuno,0,0,0 duplicate(disip_autoevent) yuno -1
rachel,0,0,0 duplicate(disip_autoevent) rachel -1
aldebaran,0,0,0 duplicate(disip_autoevent) aldebaran -1
ayothaya,0,0,0 duplicate(disip_autoevent) ayothaya -1
umbala,0,0,0 duplicate(disip_autoevent) umbala -1
lighthalzen,0,0,0 duplicate(disip_autoevent) lighthalzen -1
hugel,0,0,0 duplicate(disip_autoevent) hugel -1
einbech,0,0,0 duplicate(disip_autoevent) einbech -1
einbroch,0,0,0 duplicate(disip_autoevent) einbroch -1

// -----------------------------------------------------------------------------------------------------------------------------
// Информация к скрипту:
// -----------------------------------------------------------------------------------------------------------------------------
// 1)Массив .@disipmob[0] - заполняется айди монстрами,которые будут появляться на осаде
// 2)Массив $@countdisipmob[0] - заполняется кол-вом монстров,которые будут появляться.
// Пример:.@disipmob[0],1389,1731;$@countdisipmob[0],2,10;Это значит что мобов с айди 1389 появится 2-ое,а мобов с 1731 10 штук.
// -----------------------------------------------------------------------------------------------------------------------------
[/FONT]

Автор: Renegade: Дата: 05.25.2010

аналогично :)