Перейти к содержанию

Помогите разобраться с Enablenpc, Disablenpc


Рекомендуемые сообщения

Вопрос такой, У меня есть данж, Есть Скрипт для входа и выхода,

Скажите как настроить Disable Npc Что бы при входе в данж нпц выхода пропадал

А когда убивают в Конце ( определённого моба, сработал Enable)

Вот Сам Скрипт

[/b]
prontera,164,159,4 script Подземелье Метро 615,{
if(countitem(7919) > 1){mes "О вижу карта есть, Удачи тебе в Метро воин!";
next;
warp "subway",50,8;
close;
}
mes "^ff0000[Страж Ассасин]^000000";
mes "Привет Воин, Я могу пустить тебя в Метро";
mes "Но сначало нужно доказать что ты воин!";
next;
mes "^ff0000[Страж Ассасин]^000000";
mes "Вот Список Того что мне нужно";
mes "^ff0000 Золото x 10 ^000000";
mes "^ff0000 Гладкая Бумага x 20 ^000000";
mes "^ff0000 Чернила Кальмара x 50 ^000000";
mes "^ff0000 Горящее Сердце x 10 ^000000";
mes "^ff0000 Рваная Книга Заклинаний x 20 ^000000";
next;
mes "^ff0000[Страж Ассасин]^000000";
mes "У тебя есть эти предметы?";
switch(select("Вот держи!","Неа, Сейчас принесу!")){
Case 1:
if(countitem(969) < 10 || (7111) < 20 || (1024) < 50 || (7097) < 10 || (7117) < 20) {
next;
mes "^ff0000[Страж Ассасин]^000000";
mes "У вас нет необходимых предметов";
close;
}
delitem 969,10;
delitem 7111,20;
delitem 1024,50;
delitem 7097,10;
delitem 7117,20;
getitem 7919,1;
close;

Case 2:
mes "^ff0000[Страж Ассасин]^000000";
mes "Что-бы я мог создать Билет нужно принести мне необходимые ингридиенты";
close;
}
}
////////////////////////////////////////////////////////////////////Subway Warps///////////////////////////////////////////
subway,76,95,0 warp sub#5 1,1,tunnel01,10,12,0
tunnel01,10,383,0 warp sub#7 1,1,tunnel02,10,11,0
tunnel02,10,380,0 warp sub#7 1,1,tunnel03,10,11,0
tunnel03,192,380,0 warp sub#7 1,1,depo,172,270,0
depo,221,91,0 warp sub#7 1,1,subway02,51,7,0
////////////////////////////////////////////////////////////////////Finish NPC//////////////////////////////////////////////////

subway02,28,92,4 script Проходчик 448,{
mes "^ff0000[Древний Седжоин]^000000";
mes "Ох ты смог пройти, Забери меня с собой я 10 лет прячусь в надежде уйти";
next;
mes "Я могу дать тебе взмен Брилианты что нашёл тут!";
next;
switch(select("Пойдём!","Нафиг мне твои алмазы...")){

Case 1:
mes "Спасибо Спасибо!!!!";
next;
getitem 731,30;
getitem 732,30;
getitem 969,10;
warp "SavePoint",0,0;
close;

Case 2:
mes "Ты жестокий человек!! Сердца у тебя нет!";
next;
warp "SavePoint",0,0;
close;
}
}

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

Как я понял, в подземелье игроки попадают заходя в варп? Тогда надо варп входа сделать не через warp, а через npc со спрайтом варпа и при входе отключать нпц нужного. Затем при спавне нужного моба ему присвоить метку, которая будет срабатывать при его убийстве и, соответственно, при вызове этой метки включать нужного НПЦ.

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

Нет Нет, Если ты нпц смотрел то увидишь что Нпц обычный, требует карту если она есть варпает, вот я думаю после варпа вбить просто

disablenpc :проходчик

А как сделать что бы именно после убийства например айди моба 1010 срабатывала

Enablenpc: Проходчик?

Просто я раньше такое вбивал при Ивент старт и ивент стоп А как проверку на моба сделать и активировать незнаю, Вот в этом и нужна помощь

Вот так заходить в данж

prontera,164,159,4 script Подземелье Метро 615,{

if(countitem(7919) > 1){mes "О вижу карта есть, Удачи тебе в Метро воин!";

next;

warp "subway",50,8;

close;

Изменено пользователем Fizik
Ссылка на комментарий
Поделиться на другие сайты

Ну перед собственно варпом делать disablenpc.

А монстры где спавнятся? Варианта два:

1) Спавнить монстра при входе в скрипте командой monster. Там при спавне и метка задается в этой командой

2) Спавнить, как обычного моба с респавном и так далее, тогда добавлять OnNPCDieEvent (или чего там подобного) и при убийстве проверять локацию, ID моба и если все совпадает - включать выход.

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

Ну перед собственно варпом делать disablenpc.

А монстры где спавнятся? Варианта два:

1) Спавнить монстра при входе в скрипте командой monster. Там при спавне и метка задается в этой командой

2) Спавнить, как обычного моба с респавном и так далее, тогда добавлять OnNPCDieEvent (или чего там подобного) и при убийстве проверять локацию, ID моба и если все совпадает - включать выход.

У меня монстры призываются обычным образом, через npc/mobs/subwamobs.txt

Вот так будет правильно?


prontera,164,159,4 script Подземелье Метро 615,{
if(countitem(7919) > 1){mes "О вижу карта есть, Удачи тебе в Метро воин!";
next;
warp "subway",50,8;
disablenpc "Проходчик";
monster "subway02",0,0,"Огромный Демон Метро",3218,1,strnpcinfo(0)+"::OnBossDeath";

OnBossDeath:
enablenpc "Проходчик";
announce "Поздравляем игрока "+strcharinfo(0)+"!Он убил Древнего Мутанта Метро и получает в награду 500000 Zeny!",bc_all;
set Zeny,Zeny + 500000;
close;
}
mes "^ff0000[Страж Ассасин]^000000";
mes "Привет Воин, Я могу пустить тебя в Метро";
mes "Но сначало нужно доказать что ты воин!";
next;
mes "^ff0000[Страж Ассасин]^000000";
mes "Вот Список Того что мне нужно";
mes "^ff0000 Золото x 10 ^000000";
mes "^ff0000 Гладкая Бумага x 20 ^000000";
mes "^ff0000 Чернила Кальмара x 50 ^000000";
mes "^ff0000 Горящее Сердце x 10 ^000000";
mes "^ff0000 Рваная Книга Заклинаний x 20 ^000000";
next;
mes "^ff0000[Страж Ассасин]^000000";
mes "У тебя есть эти предметы?";
switch(select("Вот держи!","Неа, Сейчас принесу!")){
Case 1:
if(countitem(969) < 10 || (7111) < 20 || (1024) < 50 || (7097) < 10 || (7117) < 20) {
next;
mes "^ff0000[Страж Ассасин]^000000";
mes "У вас нет необходимых предметов";
close;
}
delitem 969,10;
delitem 7111,20;
delitem 1024,50;
delitem 7097,10;
delitem 7117,20;
getitem 7919,1;
close;

Case 2:
mes "^ff0000[Страж Ассасин]^000000";
mes "Что-бы я мог создать Билет нужно принести мне необходимые ингридиенты";
close;
}
}
////////////////////////////////////////////////////////////////////Subway Warps///////////////////////////////////////////
subway,76,95,0 warp sub#5 1,1,tunnel01,10,12,0
tunnel01,10,383,0 warp sub#7 1,1,tunnel02,10,11,0
tunnel02,10,380,0 warp sub#7 1,1,tunnel03,10,11,0
tunnel03,192,380,0 warp sub#7 1,1,depo,172,270,0
depo,221,91,0 warp sub#7 1,1,subway02,51,7,0
////////////////////////////////////////////////////////////////////Finish NPC//////////////////////////////////////////////////
subway02,28,92,4 script Проходчик 448,{
mes "^ff0000[Древний Седжоин]^000000";
mes "Ох ты смог пройти, Забери меня с собой я 10 лет прячусь в надежде уйти";
next;
mes "Я могу дать тебе взмен Брилианты что нашёл тут!";
next;
switch(select("Пойдём!","Нафиг мне твои алмазы...")){

Case 1:
mes "Спасибо Спасибо!!!!";
next;
getitem 731,30;
getitem 732,30;
getitem 969,10;
warp "SavePoint",0,0;
close;

Case 2:
mes "Ты жестокий человек!! Сердца у тебя нет!";
next;
warp "SavePoint",0,0;
close;
}
}

Я просто заспавнить босса решил прям в этом скрипте

Если что то не правильно замутил, Поправьте пожалуйста)

Вот так?

Изменено пользователем Fizik
Ссылка на комментарий
Поделиться на другие сайты

Неправильно. Метка OnBossDeath и весь её код должны быть внутри нпц, раз вы при вызове моба используете strnpcinfo(0) (имя текущего нпц), то и метку внутри него разместите. В целом верно.

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

prontera,164,159,4 script Подземелье Метро 615,{

if(countitem(7919) > 1){mes "О вижу карта есть, Удачи тебе в Метро воин!";

next;

warp "subway",50,8;

disablenpc "Проходчик";

monster "subway02",0,0,"Огромный Демон Метро",3218,1,strnpcinfo(0)+"::OnBossDeath";

OnBossDeath:

enablenpc "Проходчик";

announce "Поздравляем игрока "+strcharinfo(0)+"!Он убил Древнего Мутанта Метро и получает в награду 500000 Zeny!",bc_all;

set Zeny,Zeny + 500000;

close;

}

mes "^ff0000[Страж Ассасин]^000000";

mes "Привет Воин, Я могу пустить тебя в Метро";

mes "Но сначало нужно доказать что ты воин!";

next;

mes "^ff0000[Страж Ассасин]^000000";

mes "Вот Список Того что мне нужно";

mes "^ff0000 Золото x 10 ^000000";

mes "^ff0000 Гладкая Бумага x 20 ^000000";

mes "^ff0000 Чернила Кальмара x 50 ^000000";

mes "^ff0000 Горящее Сердце x 10 ^000000";

mes "^ff0000 Рваная Книга Заклинаний x 20 ^000000";

next;

mes "^ff0000[Страж Ассасин]^000000";

mes "У тебя есть эти предметы?";

switch(select("Вот держи!","Неа, Сейчас принесу!")){

Case 1:

if(countitem(969) < 10 || (7111) < 20 || (1024) < 50 || (7097) < 10 || (7117) < 20) {

next;

mes "^ff0000[Страж Ассасин]^000000";

mes "У вас нет необходимых предметов";

close;

}

delitem 969,10;

delitem 7111,20;

delitem 1024,50;

delitem 7097,10;

delitem 7117,20;

getitem 7919,1;

close;

Case 2:

mes "^ff0000[Страж Ассасин]^000000";

mes "Что-бы я мог создать Билет нужно принести мне необходимые ингридиенты";

close;

}

}

////////////////////////////////////////////////////////////////////Subway Warps///////////////////////////////////////////

subway,76,95,0 warp sub#5 1,1,tunnel01,10,12,0

tunnel01,10,383,0 warp sub#7 1,1,tunnel02,10,11,0

tunnel02,10,380,0 warp sub#7 1,1,tunnel03,10,11,0

tunnel03,192,380,0 warp sub#7 1,1,depo,172,270,0

depo,221,91,0 warp sub#7 1,1,subway02,51,7,0

////////////////////////////////////////////////////////////////////Finish NPC//////////////////////////////////////////////////

subway02,28,92,4 script Проходчик 448,{

mes "^ff0000[Древний Седжоин]^000000";

mes "Ох ты смог пройти, Забери меня с собой я 10 лет прячусь в надежде уйти";

next;

mes "Я могу дать тебе взмен Брилианты что нашёл тут!";

next;

switch(select("Пойдём!","Нафиг мне твои алмазы...")){

Case 1:

mes "Спасибо Спасибо!!!!";

next;

getitem 731,30;

getitem 732,30;

getitem 969,10;

warp "SavePoint",0,0;

close;

Case 2:

mes "Ты жестокий человек!! Сердца у тебя нет!";

next;

warp "SavePoint",0,0;

close;

}

}

Вот так?

И ещё один вопрос, Скил аколита телепорт когда на 2 раскачан нельзя его на 1 сбросить ( как это поправить?) Потому-что можно было когда использовал 2013 клиент а с 2012 не сбрасывается на 1

Изменено пользователем Fizik
Ссылка на комментарий
Поделиться на другие сайты

data/lua files/skillinfoz/skillinfolist.lua


[SKID.AL_TELEPORT] = {
"AL_TELEPORT";
SkillName = "Teleportation",
MaxLv = 2,
SpAmount = { 10, 9 },
bSeperateLv = false,
AttackRange = { 1, 1 },
_NeedSkillList = {
{ SKID.AL_RUWACH,1 }
}
},

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Опять неправильно :D

Метку надо вне if'а поставить. В вашем случае она вообще сработает сразу после варпа игрока в подземелье.

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

data/lua files/skillinfoz/skillinfolist.lua


[SKID.AL_TELEPORT] = {
"AL_TELEPORT";
SkillName = "Teleportation",
MaxLv = 2,
SpAmount = { 10, 9 },
bSeperateLv = false,
AttackRange = { 1, 1 },
_NeedSkillList = {
{ SKID.AL_RUWACH,1 }
}
},

А для эмулятора Ра? Ну тоесть у меня там просто и луа есть и луа 514

Просто то что ты дал не помогло я залез в луа 514

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

Надо поставить bSeparateLv = true

Это не от эмулятора зависит а от клиента. Новые используют lua514, постарше - lua files

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика