Автор: rura: Дата: 04.28.2011
Привет, хочу сделать империум арену, не получается.
Хочу чтобы: игрок заходит на арену берет имп, ему каждые пару секунд дает голды. После захвата импа этот игрок не может бить уже имп или же он мисает по импу, а другие игроки могут забирать этот имп даже его согильдейцы. Этому игроку который взял имп дает голды только на карте с импом.
У меня вышел такой скриптик, но он не работает(писал гайда для меня):
// by [Gayda]
- script KoE -1,{
OnInit:
announce "Война за честь", 0;
set .koe_start, 1;
enablenpc "Война";
disablenpc "Уйти";
set $koegid, 0;
donpcevent "::OnRevKoE";
maprespawnguildid "guild_vs1", $koegid, 1;
monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead";
end;
OnEmpDead:
announce "Арена захвачена игроком [" + strcharinfo(0) + "] guild.", 0;
donpcevent "::OnRevKoE";
maprespawnguildid "guild_vs1", $koegid, 1;
sleep 500;
if ( .koe_start )
monster "guild_vs1",49,49,"EMPERIUM",1288,1,"KoE::OnEmpDead";
OnTimer20000:
if(attachrid(getcharid(3,$@name$))==1)
getitem 969,1;
stopnpctimer;
initnpctimer;
end;
}
guild_vs1 mapflag gvg off
guild_vs1 mapflag pvp on
guild_vs1 mapflag nobranch
guild_vs1 mapflag nomemo
guild_vs1 mapflag nopenalty
guild_vs1 mapflag noreturn
guild_vs1 mapflag nosave SavePoint
guild_vs1 mapflag noteleport
guild_vs1 mapflag pvp_noparty
guild_vs1 mapflag nowarp
guild_vs1 mapflag nowarpto
// Добавляем guild_vs1 в (ea\db\castle_db.txt)
// Добавляем guild_vs1 mapflag pvp_noguild в (ea/conf/mapflag/pvp_noguild.txt
Автор: rura: Дата: 04.29.2011
Взял оттуда голды дает только три вещи немогу сделать:
1)надо чтобы тот игрок который захватил имп немог после этого бить имп
2)чтобы скилы мисали по импу
3) и если ты уйдеш с мапы тебе переставало давать голды.
Автор: dimjke: Дата: 04.29.2011
1 и 2 по идеи решается добавлением в castle_db ещё одной карты с импом, даже не затрагивая сорсы, что касается 3 то это doc/script_commands.txt смотри ф-цию getmapxy
Автор: rura: Дата: 05.02.2011
Опять я со своей имп ареной. не хотел создавать новой темы.
мне щас надо чтобы с 17:00 до 19:00 давало голды, а в остольное давало тресуре боксы и почемуто не получилось: сначало дает с 17:00 до 19:00 25 тресур боксов потом 1 голд и все...
вот скрипт:
OnMyMobDead:
set $@name$, strcharinfo(0);
if(gettime(3)>19 || gettime(3)<17 ){
announce "Имп арена захвачена игроком [" + strcharinfo(0) + "] теперь каждые 30 секунд он получает 25 Treasure Box's.", 0;
if ( .koe_start )
monster "guild_vs2",50,49,$@name$,1288,1,"EmpBreak::OnMyMobDead";
OnTimer30000:
if(attachrid(getcharid(3,$@name$))==1)
getitem 7444,25;
stopnpctimer;
initnpctimer;
end;
} else {
announce "Имп арена захвачена игроком [" + strcharinfo(0) + "] теперь каждые 15 секунд он получает голд.", 0;
if ( .koe_start )
monster "guild_vs2",50,49,$@name$,1288,1,"EmpBreak::OnMyMobDead";
OnTimer15000:
if(attachrid(getcharid(3,$@name$))==1)
getitem 969,1;
stopnpctimer;
initnpctimer;
end;
}
Автор: Renegade: Дата: 05.02.2011
вместо второго онтаймера поставь слип500
Автор: rura: Дата: 05.02.2011
оно должно если одно время читать одно, а если другое время читать другое... такчто должно быть два тимера.
уже так написал, тоже не работает:
OnMyMobDead:
set $@name$, strcharinfo(0);
if ( .koe_start )
monster "guild_vs2",50,49,$@name$,1288,1,"EmpBreak::OnMyMobDead";
if(gettime(3)>17 || gettime(3)<15 ){ announce "Имп арена захвачена игроком [" + strcharinfo(0) + "] теперь каждые 15 секунд он получает 10 Treasure Box's.", 0; } else {
announce "Имп арена захвачена игроком [" + strcharinfo(0) + "] теперь каждые 15 секунд он получает голд.", 0; }
OnTimer15000:
if(attachrid(getcharid(3,$@name$))==1)
if(gettime(3)>17 || gettime(3)<15 ){
getitem 7444,10;
stopnpctimer;
initnpctimer;
end; } else {
getitem 969,1;
stopnpctimer;
initnpctimer;
end; }
Автор: Kill Spirit: Дата: 05.02.2011
[COLOR="Red"]
stopnpctimer;[/COLOR]
initnpctimer;
end;