Назад

[Эвент] Попрыгун

Автор: nomn: Дата: 05.05.2010

[COLOR="Indigo"]Писал когда-то для себя, так же может
послужить примером, для написания подобных эвентов.

Суть эвента: "Бла-бла, начался эвент, через НПСа попадаете
в Нифф. Задача: за отведенные N минут поймать "попрыгуна".
Наешл попрыгуна, клацнул на него, Анонс "Вася каснулся попрыгуна",
ну а тот в свою очередь прыгнул в другое место на локации."


Побеждает тот, кто последний его тронет, за отведенное время.

Для увеличения точек прыжка попрыгуна, просто добавьте их в массив,
думаю там все понятно.
[COLOR="Red"]
Внимание!![/COLOR]
Всех, кто скопирует его себе, но не поставит "Спасибку"
постигнет жестокая кара, ввиде ботов, лагов и крашей сервера ^^
шутка.

Сам скрипт:


//===== eAthena Script =======================================
// Auto Event
//===== Автор ================================================
// nomn
//===== Текущая версия =======================================
// 1.1
//===== Совместимость ========================================
// All eAthena version
//===== Описание =============================================
// Авто эвент "Попрыгун".
//===== Изменения ============================================
// v1.0 - Первый релиз.
//
// v1.1 - Координаты записываются в массив. Уменьшен объем
скрипта. Небольшая оптимезация. [nomn]
//============================================================
//
//===== От меня ============================================
// Специально для пользователей www.Rus-eA.ru
//============================================================

- script jumper_ -1,{

OnClock2301:

announce "[Event] 'Попрыгун' начнётся через 1 минуту!",bc_all;
sleep 10000;
announce "Менее чем через 1 минуту, в Niflheim'e появится Попрыгун!",bc_all,0xFF4200;
sleep 5000;
announce "У вас есть 5 минут, чтобы поймать Прыгуна!",bc_all,0xFF4200;
sleep 5000;
announce "Кто последний прикаснётся к нему - тот и победил!",bc_all,0xFF4200;
sleep 10000;
announce "Через 30 секунд начнётся эвент 'Попрыгун'!",bc_all,0xFF4200;
sleep 20000;
announce "Через 10 секунд начнётся эвент 'Попрыгун'!",bc_all,0xFF4200;
sleep 5000;
announce "_-=5=-_!",bc_all,0xFF4200;
sleep 1000;
announce "_-=5=-_!",bc_all,0xFF4200;
sleep 1000;
announce "_-=5=-_!",bc_all,0xFF4200;
sleep 1000;
announce "_-=5=-_!",bc_all,0xFF4200;
sleep 1000;
announce "_-=5=-_!",bc_all,0xFF4200;
sleep 1000;
announce "Все в Niflheim, ловите 'Прыгуна'!",bc_all,0xFF4200;

set $jume, 1;
callfunc "random_jump";
donpcevent "Попрыгун::OnTimmerSo";
end;


OnClock2302:
announce "До конца эвента осталось 4 минуты!",0xFF4200;
end;

OnClock2303:
announce "До конца эвента осталось 3 минуты!",0xFF4200;
end;

OnClock2304:
announce "До конца эвента осталось 2 минуты!",0xFF4200;
end;

OnClock2305:
announce "До конца эвента осталось 1 минута!!!",0xFF4200;
end;


OnClock2306:
announce "Эвент 'Попрыгун' окончен!",0xFF4200;
set $jume, 2;
stopnpctimer;
sleep 3000;
if ($jwin$ == 0) { announce "Увы, но в эвенте никто не учавствовал!",bc_all,0xFF4200; end; }
announce "Позравляем нашего победителя - "+$jwin$+"!",bc_all,0xFF4200;
moveNPC "Прыг",121,163;
sleep 3000;
announce "Чтобы забрать свой приз - поговорите с НПСом в центре Пронтеры!",bc_all,0xFF4200;
end;
}


function script random_jump {

set $jumxy, rand(1,21);
if ($jumxy == 1) { setarray .@KooPdiHaTbI[0],216,23; }
else if ($jumxy == 2) { setarray .@KooPdiHaTbI[0],166,210; }
else if ($jumxy == 3) { setarray .@KooPdiHaTbI[0],193,250; }
else if ($jumxy == 4) { setarray .@KooPdiHaTbI[0],212,281; }
else if ($jumxy == 5) { setarray .@KooPdiHaTbI[0],152,265; }
else if ($jumxy == 6) { setarray .@KooPdiHaTbI[0],87,211; }
else if ($jumxy == 7) { setarray .@KooPdiHaTbI[0],119,76; }
else if ($jumxy == 8) { setarray .@KooPdiHaTbI[0],172,38; }
else if ($jumxy == 9) { setarray .@KooPdiHaTbI[0],294,27; }
else if ($jumxy == 10) { setarray .@KooPdiHaTbI[0],326,73; }
else if ($jumxy == 11) { setarray .@KooPdiHaTbI[0],232,246; }
else if ($jumxy == 12) { setarray .@KooPdiHaTbI[0],336,179; }
else if ($jumxy == 13) { setarray .@KooPdiHaTbI[0],270,151; }
else if ($jumxy == 14) { setarray .@KooPdiHaTbI[0],247,201; }
else if ($jumxy == 15) { setarray .@KooPdiHaTbI[0],154,154; }
else if ($jumxy == 16) { setarray .@KooPdiHaTbI[0],101,154; }
else if ($jumxy == 17) { setarray .@KooPdiHaTbI[0],37,144; }
else if ($jumxy == 18) { setarray .@KooPdiHaTbI[0],246,103; }
else if ($jumxy == 19) { setarray .@KooPdiHaTbI[0],214,162; }
else if ($jumxy == 20) { setarray .@KooPdiHaTbI[0],158,226; }
else if ($jumxy == 21) { setarray .@KooPdiHaTbI[0],206,165; }


moveNPC "Попрыгун",.@KooPdiHaTbI[0],.@KooPdiHaTbI[1];

end;

}

niflheim,336,179,4 script Попрыгун 452,{

if ($jume != 1) { mes "[^A512E3Попрыгун^000000]"; mes "Нет, сейчас я не хочу играть xD"; close; }
set $jwin$, strcharinfo(0);

set @anran, rand(1,3);
if (@anran == 1) { announce "'"+$jwin$+"' каснулся Прыгуна!",bc_all,0x4EEE94;
} else if (@anran == 2) { announce "'"+$jwin$+"' тронул Прыгуна!",bc_all,0x4EEE94;
} else { announce "'"+$jwin$+"' обнаружил Прыгуна!",bc_all,0x4EEE94; }
callfunc "random_jump";
end;

}


prontera,121,166,4 script Прыг 452,{
if ($jume != 2) { close; }
if (strcharinfo(0) != $jwin$) {
mes "Прости, но ты не ^0012FA"+$jwin$+"^000000";
close; }

getitem 19052, 1;
set $jume, 0;
moveNPC "Прыг",121,166;
close;
}
[/COLOR]

Автор: nomn: Дата: 05.05.2010

в чате я написал уже после публикации. он просто пропадает. бег тоже можно сделать, но не рационально, т.к. 1 и тот же человек может бегать за НПСом + это муторно, нужно кучу-куч координат записать :)

Автор: Sanasol: Дата: 05.05.2010

Ну да. я просто не видел как оно двигается при использовании movenpc. :)

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

поринг-поринг прыг парарам ^________^

Автор: Nikita54421: Дата: 05.07.2011

А я вот хочу поменять город Нифельхеими на Пронту только не как не могу понять какая строчка за это отвечает?
И объясните пожалуйста что значит эта строка

announce "Позравляем нашего победителя - "+$jwin$+"!",bc_all,0xFF4200;
moveNPC "Прыг",121,163;
sleep 3000;

Автор: Gremlin: Дата: 05.07.2011

переносит НПЦ на соответствующие координаты:huh:

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

Цитата Nikita54421;40680:
А я вот хочу поменять город Нифельхеими на Пронту только не как не могу понять какая строчка за это отвечает?

niflheim,336,179,4 script Попрыгун 452,{