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

Количество убитых мобов


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

Наткнулся на форуме вот на такой скриптик и возникло несколько вопросов.


- script OnKillMonster -1,{
OnNPCKillEvent: // Лейбл на убийство монстров
if(killedrid == 2600){ // Если ID убитого равно ID монстра которого нужно убить
set mobkill, mobkill+1; //записываем на чара + 1 убийство
if(mobkill >= 500){ //Если монстров убито >= 500
getitem 7227,1; // даем вещь
set mobkill,0; //Удаляем переменную
end;
}
dispbottom "Вы убили " + mobkill + " из 500 монстров !";
}
end; // если ID убитого монстра не тот который нужен то
}

Как я понял, если заменить


if(killedrid == 2600){

на


if(strcharinfo(3) == "prt_fild08"){

скрипт засчитывает всех мобов на локации (prt_fild08) и вот какой вопрос возник. Как сделать, чтоб на разных локациях шел свой подсчет мобов ?

Так же не пойму, как сделать, чтоб подсчитывало несколько определенных мобов ?

Пробовал сделать вот так:

if(killedrid == 1002 || 1004 ){

Засчитывает в обще всех мобов.

З.Ы. Как я понял надо сделать вот так, но проверить сейчас не могу

if(killedrid == 1002 || killedrid == 1004 ){

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

Ну, собственно все верно сам же и расписал.


if(strcharinfo(3) == "prt_fild08"){

Это проверка на локацию, на которой игрок убил моба


if(killedrid == 1002 || killedrid == 1004 ){

А это проверка, чтобы подсчитывать только убийства конкретных мобов. Но эта проверка подходит для единого счетчика для разных мобов. Если нужен отдельный счетчик для отдельных мобов, то тут switch в помощь или еще одно ветвление делай (else if).

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

Не могли вы примерчик через свич накинуть ?

И ещё такой вопросик, будет ли работать такой вот код ? (Нахожусь не дома, проверить сам просто не могу)

и если да, можно ли его как то упростить?


if(mobkill == 10){
getitem 7227,1;
}
dispbottom "Вы убили " + mobkill + " из 10 монстров !";
}

if(mobkill == 20){
getitem 7227,2;
set mobkill,0;
end;
}
dispbottom "Вы убили " + mobkill + " из 20 монстров !";
}

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


- script OnKillMonster -1,{
OnNPCKillEvent: // Лейбл на убийство монстров
switch(killedrid) {
case 2600: // ID убитого монстра равно 2600
set mobkill, mobkill + 1;
if(mobkill >= 500){ //Если монстров с ID 2600 убито >= 500
getitem 7227,1; // даем вещь
set mobkill,0; //Удаляем переменную
}
break; // Завершаем switch
case 2100: // ID убитого моба равно 2100 (от балды цифра если что)
set mobkill2, mobkill2 + 1;
if(mobkill2 >= 500){ //Если монстров с ID 2100 убито >= 500
getitem 7227,1; // даем вещь
set mobkill2,0; //Удаляем переменную
}
break; // Завергаем switch
default: // Все остальные ID, не указанные выше
break; // Просто завершаем свитч, действий никаких не нужно;
}
end;
}

Ну, примерно так..

И ещё такой вопросик, будет ли работать такой вот код ? (Нахожусь не дома, проверить сам просто не могу)

и если да, можно ли его как то упростить?


if(mobkill == 10){
getitem 7227,1;
}
dispbottom "Вы убили " + mobkill + " из 10 монстров !";
}

if(mobkill == 20){
getitem 7227,2;
set mobkill,0;
end;
}
dispbottom "Вы убили " + mobkill + " из 20 монстров !";
}

Я тоже не дома и проверить негде сейчас. Да и лень проверять (: Так, навскидку проглядел:

Это лишь кусок кода. Нет счетчика убийств монстров. Точнее в этом куске он (счетчик) не изменяется никак. 2 непонятно что закрывающие фигурные скобки. Сам алгоритм в принципе верный, но без более осмысленного куска кода не понять.

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


if(mobkill == 10){
getitem 7227,1;
dispbottom "Вы убили " + mobkill + " из 10 монстров !";
end;
} else if(mobkill == 20){
getitem 7227,2;
set mobkill,0;
dispbottom "Вы убили " + mobkill + " из 20 монстров !";
}
end;

Можно вообще так сделать:


switch(mobkill) {
case 10:
getitem 7227, 1;
break;
case 20:
getitem 7227, 2;
break;
default: end;
}
dispbottom "Вы убили "+mobkill+" монстров!";
end;

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

Всё, всем спасибо всё работает :)


if(mobkill == 10){
getitem 7227,1;
dispbottom "Вы убили " + mobkill + " из 10 монстров !";
end;
} else if(mobkill == 20){
getitem 7227,2;
set mobkill,0;
dispbottom "Вы убили " + mobkill + " из 20 монстров !";
}
end;

И если брать вот это вариант, то вроде как set mobkill,0; надо писать после dispbottom "Вы убили " + mobkill + " из 20 монстров !"; ?

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

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