Проблем с функцией eval

Всё, что касается макро-плагина.

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

Правила форума
В форуме макросы "Макросы" разрешено только задавать вопросы по уже существующим макросам и просить помощь по недоработанным своим. При этом таким считается тот макрос который готов не менее чем на 2/3.
Если вы хотите попросить участников сообщества написать вам макрос, это можно сделать в разделе "сервис".
Аватара пользователя
Jozo
Энтузиаст
Сообщения: 109
Зарегистрирован: Вс окт 26, 2008 6:20 pm
Сервер RO:: CoolRo
Контактная информация:

Re: Проблем с функцией eval

Сообщение Jozo »

Строчку нашел ша попробую
Аватара пользователя
Cooot
Грамотный
Сообщения: 306
Зарегистрирован: Пт апр 25, 2008 8:02 am

Re: Проблем с функцией eval

Сообщение Cooot »

Небольшой вопрос по теме макроплагина решил задать тут, т.к. очень близок по теме.
Можно ли заставить такую строчку правильно работать, не прибегая к таким уловкам, как предварительное помещение результата оператора @random в переменную, а использовать его вместе с @eval в одной строке:

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

$x = @eval (5 + @random ("1", "2"))
Такая строчка не работает у меня, как и иные операторы, помещенные в @eval.
Изображение
vit
Бывалый
Сообщения: 624
Зарегистрирован: Вс мар 25, 2007 9:18 pm
Сервер RO:: localhost
Откуда: Санкт-Петербург

Re: Проблем с функцией eval

Сообщение vit »

Cooot
Ну можно написать

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

$x = @rand(5,7)
и не извращаться :) .
Аватара пользователя
Cooot
Грамотный
Сообщения: 306
Зарегистрирован: Пт апр 25, 2008 8:02 am

Re: Проблем с функцией eval

Сообщение Cooot »

Вопрос был просто более общий, чем данный случай. Как вообще использовать @rand, @randow, @invamount и другие операторы внутри @eval или это невозможно?
Изображение
vit
Бывалый
Сообщения: 624
Зарегистрирован: Вс мар 25, 2007 9:18 pm
Сервер RO:: localhost
Откуда: Санкт-Петербург

Re: Проблем с функцией eval

Сообщение vit »

Cooot писал(а):Как вообще использовать @rand, @randow, @invamount и другие операторы внутри @eval или это невозможно?
На данный момент вроде бы нет. Прийдется использовать одну(или больше, в зависимости от уровня вложенности) дополнительную строчку(если об этом знать, то это не доставит неудобств):

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

$y = @random ("1", "2")
$x = @eval (5 + $y)
Если кто-нибудь исправит(а то вот исправили, а оказалось, что другое запороли, и обратно откатились) этот баг, то будет очень хорошо.
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Re: Проблем с функцией eval

Сообщение Click »

почитайте, а то я чтот не понимаю, вроде сделали ж чтоб много скобкаф работало
viewtopic.php?f=32&t=5263
vit
Бывалый
Сообщения: 624
Зарегистрирован: Вс мар 25, 2007 9:18 pm
Сервер RO:: localhost
Откуда: Санкт-Петербург

Re: Проблем с функцией eval

Сообщение vit »

Во всяком случае в той сборке, которая сейчас в файлах много скобок не пашет.
Сначала ты закоммитил фикс(SVN 6336) в котором заработали несколько скобок, но потом там arachnophobia нашел баг.
Потом некий l00zEr выложил свое решение, которое ты закоммитил(SVN 6340). Но у него в его сообщении не было ни одного примера с вложенными скобками(там речь шла только о работоспособности несколько подряд идущих эвалов). Так что похоже его решение не вполне рабочее...
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Re: Проблем с функцией eval

Сообщение Click »

ну если найдуться гении, которые сделают так чтоб всё работало, и то, и то, и то, будет клёво
Аватара пользователя
Jozo
Энтузиаст
Сообщения: 109
Зарегистрирован: Вс окт 26, 2008 6:20 pm
Сервер RO:: CoolRo
Контактная информация:

Re: Проблем с функцией eval

Сообщение Jozo »

Простая математика.(по моей проблеме)
macro job_thiefM {
$mushN = @invamount (Orange Net Mushroom)
$mushN2 = @eval ($mushN * 3)
$mush = @eval ($mushN2 + @invamount (Orange Gooey Mushroom))
if ($mush > 24) goto start
if ($mush < 25) goto end
:start
log ============================
log = $mush очков. В самый раз.
log ============================
do conf attackAuto 1
do conf thiefQ 2
do move 180 16
pause 5
release moc_ruins
:end
}
macro job_thiefM {
$mushN = @invamount (Orange Net Mushroom)
$mushN2 = @eval ($mushN * 3)
$mush = @eval ($mushN2)+ @eval ($mushN)
if ($mush > 24) goto start
if ($mush < 25) goto end
:start
log ============================
log = $mush очков. В самый раз.
log ============================
do conf attackAuto 1
do conf thiefQ 2
do move 180 16
pause 5
release moc_ruins
:end
}
Ответить