Flitemaster

Abracadabra (Auto Event)

5 сообщений в этой теме

Вообщем есть эвент абры, вроде работает , но иногда выбивает ошибку, помогите..

 

Цитата

 

[Warning]: script:getelementofarray: index out of range (-1)
[Debug]: Data: variable name='.aid' index=0
[Debug]: Source (NPC): Abracadabra at prontera (136,204)

 

 

вот сам скрипт

prontera,136,204,5    script    Abracadabra    924,{
if(getgmlevel()<20){
if ( .event == 2 || .event == 0 ) end;
for(set .@i,0;.@i<getarraysize(.aid);set .@i, .@i+1){
if(getcharid(3)==.aid[.@i]){
end;
}
}
if ( .event == 1 ) {
set .aid[ getarraysize(.aid) ], getcharid(3);
mapannounce "prontera", strcharinfo(0) +" joined the game", 8;
warp "event",101,109;
end;
}
}

OnClock2025:
//OnMinute55:
if ( .event == 1 || .event == 2){end;}
announce "Event 'Abracadabra' Begins! NPC to the left of the fountain.", 8;
announce "You have 120 seconds to register",0;
set .event, 1;
deletearray .aid;
sleep 120000;
set .event, 2;
if ( getarraysize(.aid) < 2 ){
announce "Abracadabra Event canceled, because it did not have enough people", 8;
mapwarp "event","prontera",156,181;
deletearray .aid[.@i], 1;
set .event,0;
end;
}
announce "Registration is complete. The event started.", 8;
while ( getarraysize(.aid) > 1 ) {
if (!isloggedin(.aid[.@i])){
deletearray .aid[.@i], 1;
set .@i, .@i -1;
}
sleep 1000;
mapannounce "prontera", "next player "+ rid2name(.aid[.@i]), 8;
attachrid .aid[.@i];
switch ( rand(25,32) ) {
case 25:
specialeffect2 25;
if ( hp - 100000 < 0 ) {
unitkill getcharid(3);
deletearray .aid[.@i], 1;
set .@i, .@i -1;
}
else
set hp, hp - 100000;
case 26:
specialeffect2 26;
if ( hp - 100000 < 0 ) {
unitkill getcharid(3);
deletearray .aid[.@i], 1;
set .@i, .@i -1;
}
else
set hp, hp - 100000;
break;
case 27:
specialeffect2 27;
if ( hp - 100000 < 0 ) {
unitkill getcharid(3);
deletearray .aid[.@i], 1;
set .@i, .@i -1;
}
else
set hp, hp - 100000;
break;
case 28:
specialeffect2 28;
if ( hp - 100000 < 0 ) {
unitkill getcharid(3);
deletearray .aid[.@i], 1;
set .@i, .@i -1;
}
else
set hp, hp - 100000;
break;
case 29:
specialeffect2 29;
if ( hp - 100000 < 0 ) {
unitkill getcharid(3);
deletearray .aid[.@i], 1;
set .@i, .@i -1;
}
else
set hp, hp - 100000;
break;
case 30:
specialeffect2 30;
sc_start SC_INCMATKRATE, 30000, -50;
break;
case 31:
specialeffect2 31;
if ( hp - 100000 < 0 ) {
unitkill getcharid(3);
deletearray .aid[.@i], 1;
set .@i, .@i -1;
}
else
set hp, hp - 100000;
// .... all positive buff
break;
case 32:
specialeffect2 32;
if ( hp - 10000000 < 0 ) {
unitkill getcharid(3);
deletearray .aid[.@i], 1;
set .@i, .@i -1;
}
else
set hp, hp - 10000000;
break;
}
set .@i, .@i +1 ;
if ( .@i == getarraysize(.aid) ) {
set .@i, 0;
set .@round, .@round +1 ;
mapannounce "prontera", "Round ยน "+ .@round, 8;
}
}
if ( .aid == 0 )
announce "No winners", 8;
else {
announce "Event won "+ rid2name(.aid) , 8;
attachrid .aid;
getitem 25112, 1;
atcommand "@raisemap";
mapwarp "event","prontera",156,181;
}
set .event, 0;
end;
}

event    mapflag    nowarp
event    mapflag    nowarpto
event    mapflag    noteleport
event    mapflag    noreturn
event    mapflag    nosave
event    mapflag    nomemo
event    mapflag    nobranch
event    mapflag    noloot
event    mapflag    noskill
event    mapflag    nopenalty
event    mapflag    nogo

 

Изменено пользователем Flitemaster
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Замени .aid на .rid

и 924 измени на  4_M_FROZEN1

Изменено пользователем Jeagerjaques
3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

не катит.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Flitemaster сказал:

не катит.

Не может быть такого, поставил себе на Hercules, и до сих пор сервер не дал ниодной ошибки. Правда я его удалю он мне никогда не нравился. Скрипт имею ввиду.

2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у меня не геркулес, и у меня по прежнему выбивало ошибку, но я переписал его и теперь всё норм.

кому нужен вот мой новый вариант. Только замените локацию Event и приз на свой.

Вот тут скрипт!

 

Изменено пользователем Flitemaster
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас