Owliy Опубликовано 22 апреля, 2015 Жалоба Поделиться Опубликовано 22 апреля, 2015 (изменено) Наткнулся на форуме вот на такой скриптик и возникло несколько вопросов.- script OnKillMonster -1,{OnNPCKillEvent: // Лейбл на убийство монстровif(killedrid == 2600){ // Если ID убитого равно ID монстра которого нужно убитьset mobkill, mobkill+1; //записываем на чара + 1 убийствоif(mobkill >= 500){ //Если монстров убито >= 500getitem 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 ){ Изменено 22 апреля, 2015 пользователем Owliy Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 22 апреля, 2015 Жалоба Поделиться Опубликовано 22 апреля, 2015 Ну, собственно все верно сам же и расписал.if(strcharinfo(3) == "prt_fild08"){Это проверка на локацию, на которой игрок убил мобаif(killedrid == 1002 || killedrid == 1004 ){А это проверка, чтобы подсчитывать только убийства конкретных мобов. Но эта проверка подходит для единого счетчика для разных мобов. Если нужен отдельный счетчик для отдельных мобов, то тут switch в помощь или еще одно ветвление делай (else if). 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Owliy Опубликовано 22 апреля, 2015 Автор Жалоба Поделиться Опубликовано 22 апреля, 2015 (изменено) Не могли вы примерчик через свич накинуть ?И ещё такой вопросик, будет ли работать такой вот код ? (Нахожусь не дома, проверить сам просто не могу)и если да, можно ли его как то упростить?if(mobkill == 10){getitem 7227,1;}dispbottom "Вы убили " + mobkill + " из 10 монстров !";}if(mobkill == 20){getitem 7227,2;set mobkill,0;end;}dispbottom "Вы убили " + mobkill + " из 20 монстров !";} Изменено 22 апреля, 2015 пользователем Owliy Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 22 апреля, 2015 Жалоба Поделиться Опубликовано 22 апреля, 2015 - 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; // Завершаем switchcase 2100: // ID убитого моба равно 2100 (от балды цифра если что) set mobkill2, mobkill2 + 1; if(mobkill2 >= 500){ //Если монстров с ID 2100 убито >= 500 getitem 7227,1; // даем вещь set mobkill2,0; //Удаляем переменную } break; // Завергаем switchdefault: // Все остальные 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 непонятно что закрывающие фигурные скобки. Сам алгоритм в принципе верный, но без более осмысленного куска кода не понять. Ссылка на комментарий Поделиться на другие сайты Поделиться
Kubix! Опубликовано 22 апреля, 2015 Жалоба Поделиться Опубликовано 22 апреля, 2015 (изменено) 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; Изменено 22 апреля, 2015 пользователем Kubix 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Owliy Опубликовано 22 апреля, 2015 Автор Жалоба Поделиться Опубликовано 22 апреля, 2015 (изменено) Всё, всем спасибо всё работает 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 монстров !"; ? Изменено 22 апреля, 2015 пользователем Owliy Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 22 апреля, 2015 Жалоба Поделиться Опубликовано 22 апреля, 2015 Да Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения