[share] Макросик для сторинга вещей(для команды @storage)
Модератор: 4epT
Правила форума
В форуме макросы "Макросы" разрешено только задавать вопросы по уже существующим макросам и просить помощь по недоработанным своим. При этом таким считается тот макрос который готов не менее чем на 2/3.
Если вы хотите попросить участников сообщества написать вам макрос, это можно сделать в разделе "сервис".
В форуме макросы "Макросы" разрешено только задавать вопросы по уже существующим макросам и просить помощь по недоработанным своим. При этом таким считается тот макрос который готов не менее чем на 2/3.
Если вы хотите попросить участников сообщества написать вам макрос, это можно сделать в разделе "сервис".
Re: [share] Макросик для сторинга вещей(для команды @storage)
Чтобы не создавать новую тему спрошу тут, тем более похожее.
Вот макрос:
automacro refill {
shop "jellopy" < 1
call store
run-once 1
}
macro store {
pause 350
do closeshop
pause 1
do talk @npc (146 89)
pause 5
do talk resp 1
pause 2
do storage get @storage (jellopy) 2500
pause 5
do cart add @inventory (jellopy)
pause 5
do storage get @storage (jellopy) 2500
pause 5
do cart add @inventory (jellopy)
pause 5
do storage get @storage (jellopy) 1000
pause 5
do cart add @inventory (jellopy)
pause 15
do openshop
pause 10
release all
}
тоесть мне надо чтобы магазин закрылся когда продал всё желлопи, взял со склада и снова открылся, но у меня он закрывается даже когда магазин полный, берёт в инвертарь до 90% перевеса и пишет что больше взять не может ну это и понятно потому что в телегу то не ложит, так вот как сделать чтобы он начал брать когда их все продаст?
Вот макрос:
automacro refill {
shop "jellopy" < 1
call store
run-once 1
}
macro store {
pause 350
do closeshop
pause 1
do talk @npc (146 89)
pause 5
do talk resp 1
pause 2
do storage get @storage (jellopy) 2500
pause 5
do cart add @inventory (jellopy)
pause 5
do storage get @storage (jellopy) 2500
pause 5
do cart add @inventory (jellopy)
pause 5
do storage get @storage (jellopy) 1000
pause 5
do cart add @inventory (jellopy)
pause 15
do openshop
pause 10
release all
}
тоесть мне надо чтобы магазин закрылся когда продал всё желлопи, взял со склада и снова открылся, но у меня он закрывается даже когда магазин полный, берёт в инвертарь до 90% перевеса и пишет что больше взять не может ну это и понятно потому что в телегу то не ложит, так вот как сделать чтобы он начал брать когда их все продаст?
Re: [share] Макросик для сторинга вещей(для команды @storage)
не проще ли
storage gettocart <storage_item> [<amount>]
сразу всадить 8к желопей и все?
storage gettocart <storage_item> [<amount>]
сразу всадить 8к желопей и все?
Re: [share] Макросик для сторинга вещей(для команды @storage)
не работает... да и дело в другом, почему он не ждёт когда они продадуться, а ещё раз пытается взять...
Re: [share] Макросик для сторинга вещей(для команды @storage)
потомучто когда открываеться магаз кора считает что из телеги вытащены вещи которые продаються...

Re: [share] Макросик для сторинга вещей(для команды @storage)
у меня же написано
shop "jellopy" < 1
это я как понимаю он проверяет не телегу, а состаяние магазина
shop "jellopy" < 1
это я как понимаю он проверяет не телегу, а состаяние магазина
Re: [share] Макросик для сторинга вещей(для команды @storage)
да шо ты гонiш, пишешь в макросеmurderers писал(а):не работает... да и дело в другом, почему он не ждёт когда они продадуться, а ещё раз пытается взять...
do storage gettocart Jellopy 8000
и прекрасно он те втухает в телегу 8к желопей, если в телеге есть стока веса.
ну или автомакрос на такой текст в консолi напиши
Shop closed.
Re: [share] Макросик для сторинга вещей(для команды @storage)
кто может сказать как сделать проверку что магазин открыт? из-за этого проблемы...
-
- Энтузиаст
- Сообщения: 103
- Зарегистрирован: Вт июн 19, 2007 8:58 pm
- Откуда: Москва
- Контактная информация:
Re: [share] Макросик для сторинга вещей(для команды @storage)
а так же кто может сказать как сделать проверку открыта ли кафра?
макросом.
макросом.
-
- Разработчик
- Сообщения: 819
- Зарегистрирован: Пн окт 27, 2008 9:49 pm
Re: [share] Макросик для сторинга вещей(для команды @storage)
Network::Receive::ServerType0:
Условие:
Код: Выделить всё
sub storage_closed {
message T("Storage closed.\n"), "storage";
delete $ai_v{temp}{storage_opened};
delete $storage{opened};
Plugins::callHook('packet_storage_close');
# Storage log
writeStorageLog(0);
}
Код: Выделить всё
eval $storage{opened}
-
- Энтузиаст
- Сообщения: 103
- Зарегистрирован: Вт июн 19, 2007 8:58 pm
- Откуда: Москва
- Контактная информация:
Re: [share] Макросик для сторинга вещей(для команды @storage)
ЭмEternalHarvest писал(а):Network::Receive::ServerType0:Условие:Код: Выделить всё
sub storage_closed { message T("Storage closed.n"), "storage"; delete $ai_v{temp}{storage_opened}; delete $storage{opened}; Plugins::callHook('packet_storage_close'); # Storage log writeStorageLog(0); }
Код: Выделить всё
eval $storage{opened}

и как задействовать это "eval $storage{opened}"?? Мне нада как то подключится к "ServerType0.pm" или эта штука уже автоматом сработает?
Сори, я не на столько во всём этом шарю) я простой любитель, прочитавший только это: http://www.openkore.com/index.php/Macro_plugin
я не программист)
Добавлено спустя 1 час 41 секунду:
А с помощью "hook packet_storage_open"
это не реализуется?
Re: [share] Макросик для сторинга вещей(для команды @storage)
Автомакрос, по-моему, будет выглядеть примерно так:
Код: Выделить всё
automacro kafraA {
location prontera
eval $storage{opened}
timeout 7
call kafra
}
macro kafra {
log Склад открыт. И что теперь?
}
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore
-
- Энтузиаст
- Сообщения: 103
- Зарегистрирован: Вт июн 19, 2007 8:58 pm
- Откуда: Москва
- Контактная информация:
Re: [share] Макросик для сторинга вещей(для команды @storage)
Пасибо за подсказку manticora:!
Благодаря тебе и методом научного тыка пришёл к этому результату:
а кто мне расскажет почему строчка такова вида не работает?
А то что выше... срабатывает?
не нашёл описания как в макросах можно определить истину и лож.
Благодаря тебе и методом научного тыка пришёл к этому результату:
Код: Выделить всё
macro t {
if (@storamount ($storage{opened}) = 0 ) goto odin
log закрыта кафрочка наша.
stop
:odin
log кафра открыта! РАБОТАЕТ!
stop
}
Код: Выделить всё
if ($storage{opened} = 0 ) goto odin
не нашёл описания как в макросах можно определить истину и лож.
Re: [share] Макросик для сторинга вещей(для команды @storage)
Ложь пишется с мягким знаком.
Чтобы OpenKore воспринимала подобный текст в макросе как текст на Perl'е, следует использовать @eval внутри macro {...} и eval внутри automacro {...}.
Таким образом, правильно будет записать примерно так:
Сейчас разберёмся. Что такое @storamount? Смотрим вики на рагбот.ру:
Потому что этот текст - макрос, а конструкция вида $storage{opened} относится к Perl'у. Все эти фишки типа знака доллара $ для обозначения скалярной переменной, фигурных скобок { и } для обозначения хэша - непонятны для макроплагина! И уж тем более макроплагин не может их связать с теми переменными, которые используются в самой OpenKore.а кто мне расскажет почему строчка такова вида не работает?
if ($storage{opened} = 0 ) goto odin
Чтобы OpenKore воспринимала подобный текст в макросе как текст на Perl'е, следует использовать @eval внутри macro {...} и eval внутри automacro {...}.
Таким образом, правильно будет записать примерно так:
Код: Выделить всё
if (@eval($storage{opened})) goto SkladOtkryt
log Склад закрыт
goto endif
:SkladOtkryt
log Склад открыт
:endif
А это срабатывает, почему?if (@storamount ($storage{opened}) = 0 ) goto odin
Сейчас разберёмся. Что такое @storamount? Смотрим вики на рагбот.ру:
Ага, получается, что @storamount ($storage{opened}) возвращает количество предмета "$storage{opened}" на складе. Предметов с таким странным названием не нашлось, то есть их количество равно 0. Ноль равен нулю, условие выполняется, идём по goto на метку odin и получаем сообщение, что кафра открыта.@storamount (<item>)
Возвращает количество <item> на складе.
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore
-
- Энтузиаст
- Сообщения: 103
- Зарегистрирован: Вт июн 19, 2007 8:58 pm
- Откуда: Москва
- Контактная информация:
Re: [share] Макросик для сторинга вещей(для команды @storage)
manticora писал(а):
Код: Выделить всё
if (@eval($storage{opened})) goto SkladOtkryt log Склад закрыт goto endif :SkladOtkryt log Склад открыт :endif
на запись:
Код: Выделить всё
if (@eval($storage{opened})) goto SkladOtkryt
[macro] proba error: error in 0: syntax error in if statement
Добавлено спустя 42 минуты 58 секунд:
Вот рабочий пример! Теперь всё правильно? Знатоки.. проверьте))
Код: Выделить всё
macro proba {
if (@eval(exists $::storage{opened}?1:0)) goto SkladOtkryt
log Склад закрыт
goto endif
:SkladOtkryt
log Склад открыт
:endif
}