Собственно вот(блок автозакупки):
Код: Выделить всё
while (1) {
last if (!$config{"buyAuto_$i"} || !$config{"buyAuto_$i"."_npc"});
Поэтому у меня и были проблемы с автозакупкой...
__
(pJ: проверить!)
Модератор: 4epT
Код: Выделить всё
while (1) {
last if (!$config{"buyAuto_$i"} || !$config{"buyAuto_$i"."_npc"});
Сейчас еще раз проверил:(pJ: проверить!)
как это сделать, совместив сkLabMouse писал(а):Click
Просто Игнорировать пустые блоки.
Код: Выделить всё
while (1) {
last if (!$config{"buyAuto_$i"} || !$config{"buyAuto_$i"."_npc"});
Код: Выделить всё
+ my $randomized = 0;
if ($kw eq 'npc') {$ret = getnpcID($arg)}
elsif ($kw eq 'cart') {($ret) = getItemIDs($arg, $::cart{'inventory'})}
elsif ($kw eq 'Cart') {$ret = join ',', getItemIDs($arg, $::cart{'inventory'})}
elsif ($kw eq 'inventory') {($ret) = getInventoryIDs($arg)}
elsif ($kw eq 'Inventory') {$ret = join ',', getInventoryIDs($arg)}
elsif ($kw eq 'store') {($ret) = getItemIDs($arg, \@::storeList)}
elsif ($kw eq 'storage') {($ret) = getStorageIDs($arg)}
elsif ($kw eq 'Storage') {$ret = join ',', getStorageIDs($arg)}
elsif ($kw eq 'player') {$ret = getPlayerID($arg)}
elsif ($kw eq 'vender') {$ret = getVenderID($arg)}
- elsif ($kw eq 'random') {$ret = getRandom($arg)}
+ elsif ($kw eq 'random') {$ret = getRandom($arg); $randomized = 1}
- elsif ($kw eq 'rand') {$ret = getRandomRange($arg)}
+ elsif ($kw eq 'rand') {$ret = getRandomRange($arg); $randomized = 1}
elsif ($kw eq 'invamount') {$ret = getInventoryAmount($arg)}
elsif ($kw eq 'cartamount') {$ret = getCartAmount($arg)}
elsif ($kw eq 'shopamount') {$ret = getShopAmount($arg)}
elsif ($kw eq 'storamount') {$ret = getStorageAmount($arg)}
elsif ($kw eq 'config') {$ret = getConfig($arg)}
elsif ($kw eq 'arg') {$ret = getWord($arg)}
elsif ($kw eq 'eval') {$ret = eval($arg)}
return unless defined $ret;
return $cmd if $ret eq '_%_';
$targ = q4rx $targ;
+ unless ($randomized) {
$cmd =~ s/\@$kw\s*\(\s*$targ\s*\)/$ret/g
+ } else {
+ $cmd =~ s/\@$kw\s*\(\s*$targ\s*\)/$ret/
+ }
Сейчас заменяются все одинаковые вхождения @конструкций одним махом.Click писал(а):а если мы у плеера два раза будет спрашивать чтонить в одной стоке, то он тоже будет выдавать одинаково?
Не для всех, у всего кроме @rand и @random оно и должно выдавать одинаково (пока парсится одна строчка макроса, окружение и конфиг не меняется).Click писал(а):ну? общем?уть,?сли?прашиваем одно и тоже?есколько?аз в одной строке?то?ам выдаст?динаковый?езультат?значит?огда надо?делать?бщее решение?ля?сех?
Код: Выделить всё
- } elsif (!defined $char->{guild}) {
+ } elsif (!%guild) {
error T("You are not in a guild.n");
Код: Выделить всё
!defined $guild{ID}
!$guild{ID}
!defined $char->{guildID}
Код: Выделить всё
+ unless ($randomized) {
$cmd =~ s/\@$kw\s*\(\s*$targ\s*\)/$ret/g
+ } else {
+ $cmd =~ s/\@$kw\s*\(\s*$targ\s*\)/$ret/
+ }
g - заменить всёClick писал(а):/$ret/g что значит g на конце и почему её нету во второй строке?Код: Выделить всё
+ unless ($randomized) { $cmd =~ s/\@$kw\s*\(\s*$targ\s*\)/$ret/g + } else { + $cmd =~ s/\@$kw\s*\(\s*$targ\s*\)/$ret/ + }