Назад

Помогите с ивентом

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

-    script    inits    -1,{
OnInit:
disablenpc "PvP Tournament";
disablenpc "Приз";
disablenpc "1x1";
}
- script anouncers -1,{
OnClock1000:
OnClock1818:
announce "Открыта регестрация на евент 'PvP Tournament'! У вас будет 3 минуты чтобы зарегестрироватся",0;
sleep 10000;
announce "В пронте появился нпц для регестрации",0;
enablenpc "PvP Tournament";
disablenpc "Приз";
sleep 50000;
announce "На регестрацию в евенте 'PvP Tournament'! У вас осталось 2 минуты",0;
sleep 60000;
announce "На регестрацию в евенте 'PvP Tournament'! У вас осталась 1 минута",0;
sleep 30000;
announce "На регестрацию в евенте 'PvP Tournament'! У вас осталось 30 секунд. Торопитесь!!!",0;
sleep 20000;
announce "На регестрацию в евенте 'PvP Tournament'! У вас осталось 10 секунд",0;
sleep 5000;
announce "На регестрацию в евенте 'PvP Tournament'! У вас осталось 5 секунд. Быстрей...",0;
sleep 1000;
announce "- 4 -",0;
sleep 1000;
announce "- 3 -",0;
sleep 1000;
announce "- 2 -",0;
sleep 1000;
announce "- 1 -",0;
sleep 1000;
announce "PvP Tournament начался!",0;
disablenpc "PvP Tournament";
initnpctimer;
end;

OnTimer5000:
if(getmapusers("quiz_02")== 1){
announce "На ивент не собралось нужного количества игроков.",0;
mapwarp "quiz_02","prontera",155,180;
}else{
enablenpc "1x1";
stopnpctimer;
}
}

quiz_02,305,251,0 script 1x1 734,{
sc_start SC_BLESSING,600000,10;
sc_start SC_INCREASEAGI,600000,10;
percentheal 100,100;
set warp, rand(0,1);
if(warp ==0){
warp "guild_vs1",50,50;
if(getmapusers("guild_vs2")> 1){
set warp,1;
}
}
if(warp== 1){
warp "guild_vs2",50,50;
if(getmapusers("guild_vs2") > 1){
warp "guild_vs1",50,50;
}
}
end;
}

[COLOR=Red]- script proverki -1,{
if(getmapusers("guild_vs2") < 2 && getmapusers("guild_vs1") < 2){
mapwarp "guild_vs2","guild_vs1",50,50;
}
set g,getmapusers("guild_vs1");
set gg,getmapusers("guild_vs2");
set ggg,getmapusers("quiz_02");
set all,g+gg+ggg;
if(all == 1){
mapwarp "guild_vs1","quiz_02",305,251;
mapwarp "guild_vs2","quiz_02",305,251;
mapannounce "quiz_02","Подойдите к нпц Приз, для получения своего приза",0;
disablenpc "1x1";
enablenpc "Приз";
}
end;
}[/COLOR]

prontera,147,147,3 script PvP Tournament 736,{
mes "Вы хотите попасть на Эвент ?";
next;
switch(select("Да","Нет")) {
case 1:
if (checkriding()) { // Проверка на Пеко-Пеко.
mes "Пожалуйста, снемите Пеко Пеко.";
close;
}
if(getmapusers("quiz_02") > 4){
mes "Для участия в евенте уже есть 4 игрокa";
close;
}
if(BaseLevel < 90){
mes "На турнир могут попасть игроки выше 90 лвла";
close;
}
mes "Удачи.";
sc_end SC_ALL;
sc_start SC_BLESSING,600000,10;
sc_start SC_INCREASEAGI,600000,10;
percentheal 100,100;
warp "quiz_02",305,251;
break;

case 2:
mes "Хорошо, приходите, когда захотите.";
close;
break;
end;
}
}
quiz_02,305,251,4 script Приз 734,{
getitem 7227,1;
close;
mapwarp "quiz_02","prontera",155,180;
end;
}


Оно не хочет выполнять проверки, те что я выдилил красным.
Нужно чтобы когда остается по 1 игроку на карте, то оно варпало их на 1 карту (guild_vs1[COLOR=Black]), и когда вобще на всех картах остается 1 игрок, типа победитель, то оно варпало его в [/COLOR]quiz_02.
Подскажыте как так сделать:helpsmilie:

Автор: Мяфк: Дата: 09.25.2009

Сан здесь реализовано по другому, вот

sc_start SC_BLESSING,600000,10;
sc_start SC_INCREASEAGI,600000,10;
percentheal 100,100;
set warp, rand(0,1);
if(warp ==0){
warp "guild_vs1",50,50;
if(getmapusers("guild_vs2")> 1){
set warp,1;
}
}
if(warp== 1){
warp "guild_vs2",50,50;
if(getmapusers("guild_vs2") > 1){
warp "guild_vs1",50,50;
}
}
end;
}

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

Нихрена не въехал xD
Полчаса втыкал ...

Такс перечитал первый пост. Вроде въехал.


Надо проверку при убийстве в любом случае OnPCKillEvent
.... Скрипт вообще какойто непонятный если честно ))

.... Смотри проверка при убийстве на каждую карту т.е. гуилд вс2 и 3 и куиз 2.
Проверяет на колво игроков на карте. Если == 1 на карте где игрок то варп на карту общую.
Если >1 то битва продолжается... .. И такие проверки на всех 3х аренах или 2х сколько там.

- script proverki -1,{
if(getmapusers("guild_vs2") < 2 && getmapusers("guild_vs1") < 2){
mapwarp "guild_vs2","guild_vs1",50,50;
}
set g,getmapusers("guild_vs1");
set gg,getmapusers("guild_vs2");
set ggg,getmapusers("quiz_02");
set all,g+gg+ggg;
if(all == 1){
mapwarp "guild_vs1","quiz_02",305,251;
mapwarp "guild_vs2","quiz_02",305,251;
mapannounce "quiz_02","Подойдите к нпц Приз, для получения своего приза",0;
disablenpc "1x1";
enablenpc "Приз";

А етот кусок вообще левый и его по другому нужно реализовывать.





Не понял только
Нужно чтобы когда остается по 1 игроку на карте, то оно варпало их на 1 карту (guild_vs1), и когда вобще на всех картах остается 1 игрок, типа победитель



Зачем после того как на всех по 1 игроку проверять на всех ли картах пусто?


Блин такая путаница сам сбился xD




quiz_02,305,251,0 script 1x1 734,{
sc_start SC_BLESSING,600000,10;
sc_start SC_INCREASEAGI,600000,10;
percentheal 100,100;
set warp, rand(0,1);
if(warp ==0){
warp "guild_vs1",50,50;
if(getmapusers("guild_vs2")> 1){
set warp,1;
}
}
if(warp== 1){
warp "guild_vs2",50,50;
if(getmapusers("guild_vs2") > 1){
warp "guild_vs1",50,50;
}
}
end;
}

и вот етот кусок не понял....Понял что варпает туда где пусто.......... Объясните полностью суть етого евента\скрипта.....

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

ето мой первый скрипт...
Ето евент типа пвп турнира, типасначала запускается оперделенное количество игроков, потом они случайно делятся делятся по 2, и дуелятся, потом победители опять делятся по 2, и так пока не останется 1 игрока - победителя, ну и ему потом приз. Я хотел для начала написать на 4 игрока, потом если что добавить(если бы получилось на 4).

Автор: Apachie: Дата: 09.29.2009

Цитата Sanasol;13199:
Нихрена не въехал xD
Полчаса втыкал ...

Такс перечитал первый пост. Вроде въехал.
............................

и вот етот кусок не понял....Понял что варпает туда где пусто.......... Объясните полностью суть етого евента\скрипта.....

чего тут непонятного
- script proverki -1,{
if(getmapusers("guild_vs2") < 2 && getmapusers("guild_vs1") < 2){
mapwarp "guild_vs2","guild_vs1",50,50;
}
set g,getmapusers("guild_vs1");
set gg,getmapusers("guild_vs2");
set ggg,getmapusers("quiz_02");
set all,g+gg+ggg; --суммирует общее количество игроков на 3 мапах
if(all == 1){ --и если сумма равна 1 то он варпает этого одного игрока
mapwarp "guild_vs1","quiz_02",305,251;
mapwarp "guild_vs2","quiz_02",305,251;
mapannounce "quiz_02","Подойдите к нпц Приз, для получения своего приза",0;
disablenpc "1x1";
enablenpc "Приз";

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

Apachie

При каких условиях будет включаться етот нпц
- script proverki -1,{
Брееед =)) Ето про что нпц пока его кто нить не нажмет он не сделает то что ему нужно. А его не нажмут ибо он Не видимый......

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

хз чё там выше написано - не читал. вот тебе проверка кол-ва юнитов на карте, от неё и пляши:



- script nomn_help -1,{

// задаём таймер
initnpctimer;
end;


// через каждый промежуток времени

OnTimer10000:
if ( getmapusers("НАЗВАНИЕ_ЛОКАЦИИ") == 1 )
{
stopnpctimer; // стопим таймер
mapwarp "ОТКУДА","КУДА",x,y; // варпаем оставшегося юзера
end;

} else {

initnpctimer; // заного задаём таймер
end;
}
}