Страница 3 из 7

Добавлено: Ср янв 09, 2008 12:52 am
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;
}

Добавлено: Ср янв 09, 2008 7:01 am
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; 
}

Добавлено: Ср янв 09, 2008 11:25 pm
4epT
нашёл, думаю, принципиальную ошибку!

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

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

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

ЗЫ: по прежнему нефига не получается проверить содердится ли действительно наш "введёный моб" в мобах!! Кто подскажет - тому пиражок :Rose:

Добавлено: Ср янв 09, 2008 11:54 pm
Lims
4epT
потом выложешь переработку?) *мне лень его править. вроде как работает да и ладно*

Добавлено: Чт янв 10, 2008 12:19 am
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";
}

Добавлено: Чт янв 10, 2008 1:13 am
piroJOKE
>__> народ, вы токо это, того, не угробьте хороший плагин всякими благими начинаниями, плз...

Добавлено: Чт янв 10, 2008 2:35 am
4epT
Kissa2k, что-то янедогоняю, это ты пытаешься как бы счиать файл monsters.txt и сравнить есть ли в нём наш $arg1??

piroJOKE, всё будет чики пуки, не сцы :twisted:

Добавлено: Чт янв 10, 2008 2:37 am
piroJOKE
4epT
Сатри мне. :x

ЗЫ: Я имею в виду, пофиксить баги, но не вводит "новые модные", но никому ненужные фичи.

Добавлено: Чт янв 10, 2008 3:59 am
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 скажет нам является ли значение определенным , а не то есть ли данный ключ в хэше.

Добавлено: Чт янв 10, 2008 1:45 pm
4epT
хочу сделать проверку, чтоб нюб вводит "mconf zizipuka 1", а кора и говорит, типо нет такого моба (в файле tables\monsters.txt)

а @monsters это, как я понимаю, глобальная переменная, т.е. хэш который содержит ID и имена мобов с файла tables\monsters.txt. Может тут я и ошибаюсь (возможно это и не @monsters).

Добавлено: Чт янв 10, 2008 2:03 pm
piroJOKE
4epT
Идеологически это не совсем верно.

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

Таким образом, твой неявный "контроль" может принести пользу нубам, и вред "опытным" товарищам.

Добавлено: Чт янв 10, 2008 2:55 pm
kLabMouse
piroJOKE
Тогда давайте Так:
Если в списке встреченых мобов такового моба (который вносится в файл, и или небыл в файле в том числе и конфигурационном), вылезет окошко которое спросит:
"Вы действительно хотите занести моба ххххх в файл ууууу" Да, Нет

Добавлено: Чт янв 10, 2008 3:15 pm
piroJOKE
kLabMouse
:(

Еще хуже. Бот с макросом вероятно вообще остановиццо.

Добавлено: Чт янв 10, 2008 4:23 pm
kLabMouse
piroJOKE
там есть фигнюлина, диалог с таймаутом.
ТЕ если поставить 10-15 сек, он не остановится. только потормозит немного.

Добавлено: Чт янв 10, 2008 4:36 pm
Kissa2k
Странно, но я до сих пор не могу понять в чем дело и о чем вообще речь! Нахрена нужна эта проверка, может нам понадобится изменять настроки для уже настроенного монстра в mon_control.txt При чем тут эта ересь?