xConf.pl - меняем на ходу mon_control/pickupitems/items

Дополнения к OpenKore, расширяющиее её функциональность, называются плагинами.

Модератор: 4epT

Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

хм, а с каких это пор для коры piCKy и Picky стало одним и темже?? Насколькоя помню нюбов приходилось пинать за то что не так моба написали.. или я с чем-то путаю? Что-то я запутался %)

Добавлено спустя 49 минут 59 секунд:

Помогите кто шарит..

Кароче всё таки хочу впендюрить проверку если ли такой монстр в файле monsters.txt. $arg1 - это имя моба (которое мы вводим). kM говорит, что нужно чудить с defined, ничего более умного как:

Код: Выделить всё

if (defined @monsters[$arg1]) {
message("srabotalo\n");
return;
}
я не придумал, но это не работает.. чё не так?

возможно просто не там ищу (не @monsters)??

так вроде запускается, но всё равно какая-то лажа

Код: Выделить всё

if (!defined ($monstersID[$arg1])) {
message("srabotalo $monstersID[$arg1] $arg1\n");
return;
}
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Аватара пользователя
DeniZka
Разработчик
Сообщения: 410
Зарегистрирован: Ср ноя 15, 2006 6:36 pm
Сервер RO:: rRO AsgardRO
Откуда: Mos-Cow Citadel
Контактная информация:

Сообщение DeniZka »

Я Perl ваще не знаю =) поэтому пишу как понимаю.
@Var - это массив
$Var[$arg1] - это ($arg1-ый + 1) элемент массива
defined - это вроде как проверка, существует ли он ваще

Поэтому в первом твоем варианте ошибко:

Код: Выделить всё

if (defined $monsters[$arg1]) { 
 message("srabotalo\n"); 
 return; 
}
Если проверяешь весь массив то это вроде так должно быть:

Код: Выделить всё

if (defined @monsters) { 
 message("srabotalo\n"); 
 return; 
}
Али это структура? Тогда:

Код: Выделить всё

if (defined $monsters{$arg1}) { 
 message("srabotalo\n"); 
 return; 
}
Изображение
1t 1$ t00 900d d4y 2 d1e

?(???)?(???)?( ?Д?)?
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

нашёл, думаю, принципиальную ошибку!

наш плагинчег реагирует оказывается на всё слова вводимые в консоль, и если это слово mconf (iconf или pconf), то плагинчег начинает работать. Это неправельно ибо он реагирует на всё введёно в консоль, т.е. еслы мы введём: blablabla, то кора нам больше не скажет что мы ввели бред:
Unknown command 'blablabla'. Please read the documentation for a list of commands.
она, вместо этого, просто помолчит..

а всё потому, что наши команды mconf, iconf и pconf не зарегистрированы! Скажу, что "sub onCommandPost" у нас лишняя..

пока переделку выкладывать не буду, но знайте я над ним работаю :twisted:

ЗЫ: по прежнему нефига не получается проверить содердится ли действительно наш "введёный моб" в мобах!! Кто подскажет - тому пиражок :Rose:
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Lims
Нууууп
Сообщения: 723
Зарегистрирован: Чт ноя 09, 2006 7:55 pm

Сообщение Lims »

4epT
потом выложешь переработку?) *мне лень его править. вроде как работает да и ладно*
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

4epT писал(а):по прежнему нефига не получается проверить содердится ли действительно наш "введёный моб" в мобах!
Ну прочитать наш файл по строчкам и сверить имена мобов с тем что вводится, при этом игнорировать комменты, пробелы и новые строки.
Например как-то таг

Код: Выделить всё

foreach (<F>){
   next if (/^#/);
   s/[\r\n]//g;
   s/\s+$//g;
   $line = $_;
   $monster = $line =~ /^(\w+)/i;
   if ($monster eq $arg1) message "Monster already in mon_control.txt\n";
}
Последний раз редактировалось Kissa2k Чт янв 10, 2008 4:41 pm, всего редактировалось 1 раз.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

>__> народ, вы токо это, того, не угробьте хороший плагин всякими благими начинаниями, плз...
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

Kissa2k, что-то янедогоняю, это ты пытаешься как бы счиать файл monsters.txt и сравнить есть ли в нём наш $arg1??

piroJOKE, всё будет чики пуки, не сцы :twisted:
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

4epT
Сатри мне. :x

ЗЫ: Я имею в виду, пофиксить баги, но не вводит "новые модные", но никому ненужные фичи.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

4epT писал(а):хм, а с каких это пор для коры piCKy и Picky стало одним и темже?? Насколькоя помню нюбов приходилось пинать за то что не так моба написали.. или я с чем-то путаю? Что-то я запутался %)

Добавлено спустя 49 минут 59 секунд:

Помогите кто шарит..

Кароче всё таки хочу впендюрить проверку если ли такой монстр в файле monsters.txt. $arg1 - это имя моба (которое мы вводим). kM говорит, что нужно чудить с defined, ничего более умного как:

Код: Выделить всё

if (defined @monsters[$arg1]) {
message("srabotalo\n");
return;
}
я не придумал, но это не работает.. чё не так?

возможно просто не там ищу (не @monsters)??

так вроде запускается, но всё равно какая-то лажа

Код: Выделить всё

if (!defined ($monstersID[$arg1])) {
message("srabotalo $monstersID[$arg1] $arg1\n");
return;
}
Во первых зачем нужна проверка можете объяснить?
Во вторых, что за @monsters то?
Если хочется глянуть как формируется $mon_control то можно посмотреть как Кора парсит этот файл, нэ?
У нас есть $mon_control, она формируется при загрузке файла mon_control т.е. идем в FileParsers.pm и находим sub parseMonControl {
и смотрим как она формируется:

$r_hash это ссылка на $mon_control

И еще что вы хотите точно сделать?
Увидели что в этом файле есть уже такое, дальше что ?

и еще, делать вот так:
open(F, "<control/mon_control.txt");
имхо не хорошо.
есть же getMonControlFilename спец для определения имени файла?


П.С.

Проверка того есть ли такой моб в списке:

if (exist($mon_control{lc($name)}) { .... }

$mon_control это хэш, а defined скажет нам является ли значение определенным , а не то есть ли данный ключ в хэше.
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

хочу сделать проверку, чтоб нюб вводит "mconf zizipuka 1", а кора и говорит, типо нет такого моба (в файле tables\monsters.txt)

а @monsters это, как я понимаю, глобальная переменная, т.е. хэш который содержит ID и имена мобов с файла tables\monsters.txt. Может тут я и ошибаюсь (возможно это и не @monsters).
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

4epT
Идеологически это не совсем верно.

Предположим "не нуп" очистил monsters.txt, что допустимо.
А конфиги/макросы у него остались старые.
Окей, monsters.txt сам заполнится во время работы, причем стандартными скорее всего именами мобов.
Но, если у него в макросах где-то встретится mconf, то 99% вероятности, что он не отработает. Потому что будет вызван ДО встречи с мобом и до занесения его в "каталог монстров".

Таким образом, твой неявный "контроль" может принести пользу нубам, и вред "опытным" товарищам.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

piroJOKE
Тогда давайте Так:
Если в списке встреченых мобов такового моба (который вносится в файл, и или небыл в файле в том числе и конфигурационном), вылезет окошко которое спросит:
"Вы действительно хотите занести моба ххххх в файл ууууу" Да, Нет
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

kLabMouse
:(

Еще хуже. Бот с макросом вероятно вообще остановиццо.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

piroJOKE
там есть фигнюлина, диалог с таймаутом.
ТЕ если поставить 10-15 сек, он не остановится. только потормозит немного.
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

Странно, но я до сих пор не могу понять в чем дело и о чем вообще речь! Нахрена нужна эта проверка, может нам понадобится изменять настроки для уже настроенного монстра в mon_control.txt При чем тут эта ересь?
Ответить