Назад

Эвент

Автор: -OnIZuCa-: Дата: 12.12.2009

Привет, я долго пытался сам создать один эвент, но нечего не выло.
Ув скриптеры, помогите его написать.


Вот его суть.
НПС за определенное количество итемов регистрирует группу (пати) игроков и варпает их в определенное место и вызывает там МВП.
Дается определенное время? чтоб убить данного мвп.
Если кто-то из пати умирает? есть возможность вернутся на мапу.
По окнчанию времени, все онуляется и все оттуда удаляются =)


Буду признателен если поможите.

Автор: -OnIZuCa-: Дата: 12.13.2009

Буду очень благодарен!"!!!! Если скажите где ваша кнопка сразу поблагодарю.

Автор: San: Дата: 12.13.2009

вот держы, не проверял, но в мап серве пишет что ошыбок нету

-	script	announce	-1,{
OnClock1030:
OnClock1530:
OnClock2030:

announce "Через минуту начнется регестрация на МВП Эвент!",0;
killmonsterall "guild_vs3";
sleep 60000;
announce "Регестрация на МВП Эвент началась!",0;
set $@partyname,0;
announce "Лидеры подойдите к нпц МВП в пронте, чтобы зарегестрировать свою пати!",0;
announce "У вас есть 30 секунд чтобы зарегестрировать свою пати!",0;
initnpctimer;
enablenpc "МВП";
end;

OnTimer30000:
if($@partyname == 0){
announce "На евент никто не зарегестрировался!",0;
disablenpc "МВП";
stopnpctimer;
end;
}else{
stopnpctimer;
announce "У вас есть 10 минут чтобы убить МВП!",0;
set .@mvp,rand(0,getarraysize(.bc_monster)-1);
monster guild_vs3,0,0,"MVP",.bc_monster[.@mvp],1,"announce::OnThisMvPKilled";
initnpctimer;
end;
}
OnTimer600000:
announce "Пати не сумела справится с МВП!",0;
killmonsterall "guild_vs3";
disablenpc "МВП";
set $@partyname,0;
stopnpctimer;
mapwarp "guild_vs3","prontera",155,180;
end;

OnThisMvPKilled:
announce "Пати справилась с МВП!",0;
disablenpc "МВП";
set $@partyname,0;
stopnpctimer;
mapwarp "guild_vs3","prontera",155,180;
end;

OnInit:
disablenpc "МВП";
setarray .bc_monster[0],"1917","1885","1874","1871","1832","1802","1785","1779","1768","1751","1734","1719","1708","1688","1685","1658","1651","1650","1649","1648","1647","1646","1630","1623","1583","1511","1502","1492","1418","1399","1389","1373","1312","1272","1252","1251","1190","1159","1157","1150","1147","1115","1112","1087","1086","1059","1046","1038";
end;
}

prontera,147,165,5 script МВП 856,{
if($@partyname == 0){
mes "Вы хотите зарегистрировать пати для убийства МВП?";
menu "Да",-,"Нет",no;

if (!getcharid(1)){
mes "Извини, но ты должен быть";
mes "в пати для регистрации.";
close;
}
if (getpartyleader(getcharid(1), 2) != getcharid(0)){
mes "Извини, но ты должен быть";
mes "лидером пати для регистрации.";
close;
}
if(countitem(7227) < 1){
mes "для регестрации нужна 1 тцг карта.";
close;
}
delitem 7227,1;
set $@partyname,"+getcharid(1)+";
warpparty "guild_vs3",50,50,getcharid(1);
end;
}

if($@partyname == "+getcharid(1)+"){
mes "Вы хотите вернутся к своей пати?";
menu "Да",-,"Нет",no;
warp "guild_vs3",50,50;
end;
}else{
mes "На арене сейчас "+$@partyname+"?";
close;
}

no:
mes "Пока";
close;
}

если будут ошыбки, пишы исправлю.;)

Автор: -OnIZuCa-: Дата: 12.13.2009

Спасибо!!!!
Надеюсь вам сказал спасибо через кнопку))
Если, что напишу!!!!!!!!!!!!!!!!!!!!!!!!
СПАСИБО ОГРОМНОЕ!!!!!!!!!!!!!!

Автор: San: Дата: 12.13.2009

кнопка в правом нижнем углу, самая последняя))

Автор: -OnIZuCa-: Дата: 12.15.2009

Слушай, подскажи, как сделать так.

Представь, диалог с нпц .

mes "[Помощники Санты]";
mes "Как ты уже прочел, вам отведено на эту миссию ровно 1 час и время ПОШЛО! ";
next;
mes "[Помощники Санты]";
mes "Сейчас я телепортирую вас.";
mes "Все остальные подробности узнаете у нпс.";
next;
warpparty "xmas",198,206,getcharid(1);
disablenpc "Помощники Санты";
end;

Я хочу, что бы, когда я нажал next в пронте появился нпц, который бы отсчитывал время до конца эвента. (если на него нажать то он бы показал сколько осталось времени.)
И когда время истекло, он бы сообщил это на весь мир, и эвент бы начался заного.


Ps: надеюсь все точно объяснил.

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

[COLOR="Indigo"]после next добавь


donpcevent "npcnane::lablename";


где npcname - имя нпса
lablename - лейбл в котором твоя функция отчета.

Саму ф-цию писать за тебя не буду[/COLOR]

Автор: -OnIZuCa-: Дата: 12.16.2009

Привет еще раз.
Я хочу сказать вот, что.
Я хотел написать такой скрипт в котором была бы вот такая штука.
Если игроки попадают на определенную карту и ( игроков больше 1) появляется анонс, и говорит ( не важно что) дальше появляются монстры и когда их убиваешь всю пати находящуюся на этой мапе телепортирует ( допустим в пронту).
Я ЗНАЮ, ЧТО ЭТО ЛЕГКО СДЕЛАТЬ, ТОЛЬКО ЧТО ТО НЕ ПОЛУЧАЕТСЯ У МЕНЯ ((
Если не трудно помогите.

Автор: [OneLife]: Дата: 12.16.2009

Дак игроки должны быть в пати на этой мапе?

Автор: San: Дата: 12.16.2009

if (getmapusers("карта")>1){
announce "не важно что:))",0;
monster "карта",149,148,"имя монстра",айди монстра,kоличество,"название нпц в которого ты будеш добавлять етот кусок::Onmobdead";
}
Onmobdead:
mapwarp "с какой карты","prontera",0,0;
end;

Автор: -OnIZuCa-: Дата: 12.16.2009

Получаться, что я могу добавить этот код, в любое нпц и хоть как если на моей карте будет, 2-3 человека будет анонс*?

Автор: [OneLife]: Дата: 12.16.2009

Ну я подозреваю это будет вот так выглядеть:


-%TAB%script%TAB%[название]%TAB%-1,{
if (getmapusers("карта")>1){
announce "не важно что:))",0;
monster "карта",149,148,"имя монстра",айди монстра,kоличество,"название нпц в которого ты будеш добавлять етот кусок::Onmobdead";
}
Onmobdead:
mapwarp "с какой карты","prontera",0,0;
end;
}

Автор: San: Дата: 12.16.2009

Цитата -OnIZuCa-;16537:
Получаться, что я могу добавить этот код, в любое нпц и хоть как если на моей карте будет, 2-3 человека будет анонс*?


если ето авто евент то можеш поставить таймер initnpctimer; после анонса старта евента, и потом пишеш Ontumer5000: и свтавляеш мой кусок;
ето будет проверкой, если на евенте больше 1 человека, значит евент начинается, потом можно будет дописать, что если менше 1 человека, то евент не начинается , ето будет так
if (getmapusers("карта")>1){
announce "не важно что:))",0;
monster "карта",149,148,"имя монстра",айди монстра,kоличество,"название нпц в которого ты будеш добавлять етот кусок::Onmobdead";
}else{
announce "на евенте нету игроков,0;
}
Onmobdead:
mapwarp "с какой карты","prontera",0,0;
end;

Автор: -OnIZuCa-: Дата: 12.16.2009

Вот, но что то не катит(

-	script	проверка	-1,{
if (getmapusers("quiz_02")>0){
mapannounce "quiz_02","[Злой эльф]---- Вот вы и попались.",0,0x00FF00;
monster "quiz_02",149,148,"Армия эльфа",1246,10,"проверка::Onmobdead";
}
Onmobdead:
mapwarp "quiz_02","prontera",0,0;
end;
}

Автор: [OneLife]: Дата: 12.16.2009

Что логи пишут?

Попробуй так:


- script proverka -1,{
OnInit:
if (getmapusers("quiz_02")>1){
mapannounce "quiz_02","[Злой эльф]---- Вот вы и попались.",0,0x00FF00;
monster "quiz_02",149,148,"Армия эльфа",1246,10,"proverka::Onmobdead";
}
Onmobdead:
mapwarp "quiz_02","prontera",0,0;
end;
}

Автор: -OnIZuCa-: Дата: 12.17.2009

Дамс..... Чет не получается, я и так и так и нечего((
Логи, в том то и дело ничего((

Автор: San: Дата: 12.17.2009

кинь сюда свой скрипт, я скажу куда добавить

Автор: -OnIZuCa-: Дата: 12.18.2009

Извините, что не писал. Деньги на инети кончились =(
Вот отрывок из скрипта. Пока не было интернета, сам разобрался.
Но теперь проблема в другом, я не знаю, как с делать так, что бы он больше 1 раза не повторял.
Ps^ Думаю, вы сами поймете, про что я.
Если поможете, буду очень признателен.


quiz_02,363,348,3	script	proverka	-1,3,3,{
OnTouch:
if ( getmapusers("quiz_02") > 0 )
{
mapannounce "quiz_02"," [Злой эльф]--- Ах-ха-ха-ха! Вот вы и попались!",0,0x00FF00;
sleep 4000;
mapannounce "quiz_02"," [Злой эльф]--- Зря, вы решили меня поймать.",0,0x00FF00;
sleep 4000;
mapannounce "quiz_02"," [Злой эльф]--- За это, вы поплатитесь жизнью!",0,0x00FF00;
sleep 4000;
mapannounce "quiz_02"," [Злой эльф]--- Моя армия. Вперед! Уничтожте их!",0,0x00FF00;
disablenpc "Злой эльф";
monster "quiz_02",363,348,"Армия эльфа",1246,10;
}
}

Автор: -OnIZuCa-: Дата: 12.18.2009

И подскажите пожалуйста как создать итем которое увеличивает реген хп и сп на время.

Автор: -OnIZuCa-: Дата: 12.18.2009

Ау... ктонить поможет*