Назад

[Инстанс] Квадрат дьявола

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




Старый добрый Devil Square инстанс версия

Добавлены некоторые комментарии в скрипте от меня. Переведено полностью.

(?) - это значит я не уверен в точности перевода, либо я не понял о чем это :lol:
// -- Instance Devil Square Script ( Tyirial Script Concept )
// -- Rescripted by Dang Tai Phong, hope you guys like it :d ... version : 1.0
// -- For more information or new idea, please contact me via yahoo : cainickthoima@yahoo.com
// Перевод Sanasol (rus-ea.ru)

prontera,100,100,5 script Страж Квадрата Дьявола 852,{

// -- Name
set .@ds_name$,"Квадрат дьявола"; //Название инстанса

if( Baselevel < 100 ) {
mes "[ Страж Квадрата Дьявола ]";
mes "Зайти могут только игроки с уровнем ^ff0000100 ~ 150^000000 могут войти в пожземелье.";
close;
}

mes "[ Страж Квадрата Дьявола ]";
mes "Добро пожаловать к вратам входа в ^FF0000" + .@ds_name$ + "^000000";
next;
switch( select("Зарегистрироваться на " + .@ds_name$ + ":Войти в подземелье:Выйти") ) {
case 1:
set .@party_id, getcharid(1);
// -----------------------------
if( .@party_id == 0 )
{
mes "[ Страж Квадрата Дьявола ]";
mes "Нужно быть в группе.";
close;
}

if( getpartyleader(.@party_id,2) != getcharid(0) ) // Проверка на лидера пати
{
mes "[ Страж Квадрата Дьявола ]";
mes "Только лидер группы может регистрировать вас на " + .@ds_name$ + ".";
close;
}

if( DSquare_Timer >= gettimetick(2) ) //Проверка на задержку
{
mes "[ Страж Квадрата Дьявола ]";
mes "Вы не можете снова войти на " + .@ds_name$ + ". Пожалуйста подождите ^0000FF" + callfunc("Time2Str",DSquare_Timer) + "^000000";
close;
}

if( Zeny < 100000 ) // Цена входа
{
mes "[ Страж Квадрата Дьявола ]";
mes "...У вас недостаточно зени.";
close;
}

set .@ds_instance, instance_create(.@ds_name$, .@party_id);
if( .@ds_instance == -1 )
{
mes "[ Страж Квадрата Дьявола ]";
mes "Вы уже зарегистрированы со своей группой.";
close;
}
else if( .@ds_instance < 0 )
{
mes "[ Страж Квадрата Дьявола ]";
mes "Ошибка создания инстанс точки: " + .@ds_instance;
mes "Сообщите администратору.";
close;
}

if( instance_attachmap("2@ds", .@ds_instance,1) == "" )
{
instance_destroy(.@ds_instance);
mes "[ Страж Квадрата Дьявола ]";
mes "Ошибка создания инстанс точки. Нету свободных мест.";
close;
}

instance_attach(.@ds_instance);
instance_set_timeout 3600,300,.@ds_instance; // 1 час на проходжение(?)
set 'dsparty_id, getcharid(1);
set 'dsnext_open, gettimetick(2) + 7200; // Задержка после прохождения(?)
deletearray 'dsMembers[0],127;
instance_init(.@ds_instance);

// Часть вкл/выкл НПЦ
donpcevent instance_npcname("#HiddenNpc", instance_id())+"::OnEnable";
donpcevent instance_npcname("#dswarp-11", instance_id())+"::OnInstanceInit";
donpcevent instance_npcname("#dswarp-12", instance_id())+"::OnInstanceInit";

set DSquare_Timer, 'dsnext_open;
set 'dsMembers[0], getcharid(0); // Stores First Char ID
set 'dsNext_i, 1;
set Zeny, Zeny - 100000;
close;

case 2:
if( has_instance("2@ds") == "" ) {
mes "[ Страж Квадрата Дьявола ]";
mes "Инстанс " + .@ds_name$ + " не найден.";
mes "Вы не зарегистрированы в подземелье.";
close;
}

set .@ds_instance, instance_id(1); // Store IDs
instance_attach(.@ds_instance);

for( set .@i, 0; .@i < 'dsNext_i; set .@i, .@i + 1 )
{
if( getcharid(0) == 'dsMembers[.@i] )
break;
}

if( .@i == 'dsNext_i )
{
if( DSquare_Timer >= gettimetick(2) )
{ // Игрок в пати но он недавно проходил и у него не истекло время задержки после прохождения.
mes "[ Страж Квадрата Дьявола ]";
mes "Вы не можете снова войти на " + .@ds_name$ + ". Пожалуйста подождите ^0000FF" + callfunc("Time2Str",DSquare_Timer) + "^000000";
close;
}
else if( 'dsNext_i == 127 )
{ // Слишком много человек на инстансе из его пати
mes "[ Страж Квадрата Дьявола ]";
mes "Нельзя зайти на " + .@ds_name$ + " Слишком много игроков из вашей группы.";
close;
}
else
{ // Добавление в список игрока(?)
set DSquare_Timer, 'next_open;
set 'dsMembers['dsNext_i], getcharid(0);
set 'dsNext_i, 'dsNext_i + 1;
}
}
warp "2@ds",183,182;
end;

case 3:
close;
}
}

function script Time2Str {
set .@Time_Left, getarg(0) - gettimetick(2);

set .@Days, .@Time_Left / 86400;
set .@Time_Left, .@Time_Left - (.@Days * 86400);
set .@Hours, .@Time_Left / 3600;
set .@Time_Left, .@Time_Left - (.@Hours * 3600);
set .@Minutes, .@Time_Left / 60;
set .@Time_Left, .@Time_Left - (.@Minutes * 60);

set .@Time$, "";
if( .@Days > 1 )
set .@Time$, .@Time$ + .@Days + " дней, ";
else if( .@Days > 0 )
set .@Time$, .@Time$ + .@Days + " день, ";

if( .@Hours > 1 )
set .@Time$, .@Time$ + .@Hours + " часов, ";
else if( .@Hours > 0 )
set .@Time$, .@Time$ + .@Hours + " час, ";

if( .@Minutes > 1 )
set .@Time$, .@Time$ + .@Minutes + " минут, ";
else if( .@Minutes > 0 )
set .@Time$, .@Time$ + .@Minutes + " минут, ";

if( .@Time_Left > 1 || .@Time_Left == 0 )
set .@Time$, .@Time$ + .@Time_Left + " секунд.";
else if( .@Time_Left == 1 )
set .@Time$, .@Time$ + .@Time_Left + " секунда.";

return .@Time$;
}

2@ds,44,155,0 script #HiddenNpc -1,{
end;

OnDisable:
killmonster "2@ds",instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead";
end;

OnEnable:
areamonster "2@ds",183,182,246,244,"[КД] ALICEL",1735,25,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead";
areamonster "2@ds",183,182,246,244,"[КД] ALIOT",1736,15,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead";
areamonster "2@ds",183,182,246,244,"[КД] ARCHDAM",1668,15,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead";
areamonster "2@ds",183,182,246,244,"[КД] CONSTANT",1745,20,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead";
areamonster "2@ds",183,182,246,244,"[КД] DARK PRIEST",1198,4,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead";
areamonster "2@ds",183,182,246,244,"[КД] ARCHANGELING",1388,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead";
end;

OnDevilDead:
set .@mobnumber,80;
set .@mob_cnumber,mobcount("2@ds",instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead");
set .@mob_dead_number,.@mobnumber - .@mob_cnumber;
if( .@mob_dead_number == 55 )
instance_announce 0, "Квадрат дьявола : 25 монстров до 2-ого уровня..",bc_map,"0xffff00";
if( .@mob_dead_number == 75 )
instance_announce 0, "Квадрат дьявола : 5 монстров до 2-ого уровня..",bc_map,"0xffff00";
if( .@mob_dead_number == 80 )
{
instance_announce 0, "Квадрат дьявола : Войдите на 2-ой уровень!!!",bc_map,"0xffff00";
goto OnDevilRound_2;
}
end;

OnDevilRound_2:
areamonster "2@ds",183,182,246,244,"[КД] DROSERA",1781,20,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_2";
areamonster "2@ds",183,182,246,244,"[КД] NECROMANCER",1870,30,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_2";
areamonster "2@ds",183,182,246,244,"[КД] RETRIBUTION",1702,5,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_2";
areamonster "2@ds",183,182,246,244,"[КД] OBSERVATION",1700,5,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_2";
areamonster "2@ds",183,182,246,244,"[КД] LADY SOLACE",1703,5,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_2";
areamonster "2@ds",183,182,246,244,"[КД] SHELTER",1701,5,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_2";
end;

OnDevilDead_2:
set .@mobnumber,70;
set .@mob_cnumber,mobcount("2@ds",instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_2");
set .@mob_dead_number,.@mobnumber - .@mob_cnumber;
if( .@mob_dead_number == 45 )
instance_announce 0, "Квадрат дьявола : 25 монстров до 3-ого уровня..",bc_map,"0xffff00";
if( .@mob_dead_number == 65 )
instance_announce 0, "Квадрат дьявола : 5 монстров до 3-ого уровня..",bc_map,"0xffff00";
if( .@mob_dead_number == 70 )
{
instance_announce 0, "Квадрат дьявола : Войдите на 3-ий уровень!!!",bc_map,"0xffff00";
goto OnDevilRound_3;
}
end;

OnDevilRound_3:
areamonster "2@ds",183,182,246,244,"[КД] DIMIK",1673,10,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_3";
areamonster "2@ds",183,182,246,244,"[КД] DIMIK",1672,10,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_3";
areamonster "2@ds",183,182,246,244,"[КД] DIMIK",1671,10,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_3";
areamonster "2@ds",183,182,246,244,"[КД] DIMIK",1670,10,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_3";
areamonster "2@ds",183,182,246,244,"[КД] HIGH PRIEST MAGARETA",1637,6,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_3";
areamonster "2@ds",183,182,246,244,"[КД] MORROC SHADOW",1921,3,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_3";
areamonster "2@ds",183,182,246,244,"[КД] MORROC SHADOW",1918,3,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_3";
areamonster "2@ds",183,182,246,244,"[КД] MORROC SHADOW",1920,3,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_3";
areamonster "2@ds",183,182,246,244,"[КД] MORROC SHADOW",1919,3,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_3";
end;

OnDevilDead_3:
set .@mobnumber,58;
set .@mob_cnumber,mobcount("2@ds",instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_3");
set .@mob_dead_number,.@mobnumber - .@mob_cnumber;
if( .@mob_dead_number == 33 )
instance_announce 0, "Квадрат дьявола : 25 монстров до 4-ого уровня..",bc_map,"0xffff00";
if( .@mob_dead_number == 53 )
instance_announce 0, "Квадрат дьявола : 5 монстров до 4-ого уровня..",bc_map,"0xffff00";
if( .@mob_dead_number == 58 )
{
instance_announce 0, "Квадрат дьявола : Войдите на 4-ой уровень!!!!!!",bc_map,"0xffff00";
donpcevent instance_npcname("#dswarp-12", instance_id())+"::OnEnable";
goto OnDevilRound_4;
}
end;

OnDevilRound_4:
areamonster "2@ds",149,148,149,148,"[КД] Entweihen Crothen",1957,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_4";
areamonster "2@ds",135,135,165,165,"[КД] Thorny Skeleton",1958,11,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_4";
end;

OnDevilDead_4:
set .@mobnumber,12;
set .@mob_cnumber,mobcount("2@ds",instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_4");
set .@mob_dead_number,.@mobnumber - .@mob_cnumber;
if( .@mob_dead_number == 12 )
{
instance_announce 0, "Квадрат дьявола : Поздравляем - 10 Treasure Box теперь ваши",bc_map,"0xffff00";
donpcevent instance_npcname("#dswarp-12", instance_id())+"::OnInstanceInit";
donpcevent instance_npcname("#dswarp-11", instance_id())+"::OnEnable";
goto OnDevilRound_5; // Спаун боксов
}
end;

OnDevilRound_5:
monster "2@ds",231,250,"Treasure Box",1324,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5";
monster "2@ds",234,247,"Treasure Box",1328,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5";
monster "2@ds",237,244,"Treasure Box",1332,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5";
monster "2@ds",240,241,"Treasure Box",1336,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5";
monster "2@ds",243,238,"Treasure Box",1340,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5";
monster "2@ds",246,235,"Treasure Box",1344,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5";
monster "2@ds",249,232,"Treasure Box",1348,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5";
monster "2@ds",252,229,"Treasure Box",1352,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5";
monster "2@ds",249,241,"Treasure Box",1356,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5";
monster "2@ds",240,249,"Treasure Box",1360,1,instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5";
end;

OnDevilDead_5:
set .@mobnumber,10;
set .@mob_cnumber,mobcount("2@ds",instance_npcname("#HiddenNpc", instance_id())+"::OnDevilDead_5");
set .@mob_dead_number,.@mobnumber - .@mob_cnumber;
instance_announce 0, "Квадрат дьявола :"+ strcharinfo(0) +" открыл сундук дьявола",bc_map,"0xffff00";
if( .@mob_dead_number == 10 )
donpcevent instance_npcname("#HiddenNpc", instance_id())+"::OnDestroyInstance";
end;

OnDestroyInstance:
initnpctimer;
end;

OnTimer500:
instance_announce 0, "Квадрат дьявола закроется через несколько секунд..", bc_map, 0xCCFF00;
end;

OnTimer19000:
instance_warpall "prontera", 100,100;
end;

OnTimer22500:
stopnpctimer;
instance_destroy(instance_id());
end;

}

// -- Warp
2@ds,168,168,0 script #dswarp-11 45,0,0,{

OnInstanceInit:
disablenpc instance_npcname("#dswarp-11", instance_id());
end;

OnEnable:
enablenpc instance_npcname("#dswarp-11", instance_id());
end;

OnTouch:
warp "2@ds",189,189;
end;
}

2@ds,184,184,0 script #dswarp-12 45,0,0,{

OnInstanceInit:
disablenpc instance_npcname("#dswarp-12", instance_id());
end;

OnEnable:
enablenpc instance_npcname("#dswarp-12", instance_id());
end;

OnTouch:
mes "[ Страж Квадрата Дьявола ]";
mes "Вы готовы?..?";
if( select("Да, вперед!!!", "Нет") != 1 ) close;
close2;
warp "2@ds",163,163;
end;
}

// -- Mapflags
2@ds mapflag nowarp
2@ds mapflag nowarpto
2@ds mapflag noteleport
2@ds mapflag nosave SavePoint
2@ds mapflag nomemo
2@ds mapflag nobranch
2@ds mapflag nopenalty


Карта -

Автор: MoonSpirit: Дата: 12.11.2010

Цитата Кеник;27264:
Никогда не понимал почему "Квадрат дьявола" ? Devil Square - "Площадь дьявола" же... Да и звучит по логичнее х) А то прям как Квадрат Малевича =_=


Квадрат Малевича:megalol::megalol::megalol:

Автор: Кеник: Дата: 12.13.2010

Цитата MoonSpirit;27446:
Квадрат Малевича:megalol::megalol::megalol:


Нуачо? Черный квадрат Малевича, произведение искусства епть!;)

Автор: Wikler: Дата: 05.14.2011

есть ли у кавота ета мапа? скиньте пожалуйсто.

Автор: kadze: Дата: 05.14.2011

ordeal_2-1 у всех должна быть...это она и есть