Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

RunUO2 и скрипты на крафт

тут можно задать вопрос по скриптингу
Post Reply
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

RunUO2 и скрипты на крафт

Post by MuDaCk »

На рануо2 ктото сталкивался со скриптами на крафт? Как отследить что предмет скрафчен, если ни в журнал, ни в системный журнал ничего не выводится? Image
точнее в журнал выводится только сообщение о перегрузке

Code: Select all

[23:49:14:234] System: You are overloaded.  Carrying stones / Max stones  : 429 / 246
стелс 3.1.3 версия 02.10.2010 8:52:46 утра :lol:
My name is Игорёшка Image
Пишу скрипты за едуImage
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Если знаешь какую вещь крафтил, то можно по кол-ву таких предметов в бекпаке до и после крафта. Как условный вариант - по весу в бекпаке, но это менее точный способ.
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Post by MuDaCk »

Можно и такими способами, но тогда мне легче просто выставить задержку в пару секунд, пока крафтанется итем...
My name is Игорёшка Image
Пишу скрипты за едуImage
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Ну если хочешь, что бы был полный конроль без простоя, то используй ивенты. В твоём распоряжении есть evAddItemToContainer и evAddMultipleItemsInCont. Ставишь на них обработчики и они тебе сообщат когда предмет скрафтился. Правда в этом случае скрипт довольно сильно усложнится, т.к. необходимо учитывать возможность фэйла при крафте.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

не так просто. если айтем стекируется и такой айтем есть в паке - то сработает ивент Item_Info или как там его - будет полностью та же инфа по айтему, только в кол-ве будет старое кол-во + 1.

а если айтемы не стекируются - то да, те ивенты, что Феникс дописал, либо все тот же ItemInfo
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Post by MuDaCk »

Всем БОЛЬШОЕ СПАСИБО. Были высказаны интересные варианты и теперь, благодаря вашим идеям, у меня будет больше вариантов написания будущих скриптов. :idea:
My name is Игорёшка Image
Пишу скрипты за едуImage
Antisiy
Posts: 9
Joined: 19.10.2010 21:53

Post by Antisiy »

Рануо не знаю, но на сфере ожидание иногда делаю через проверку материалов, физл или сацес - потеря начинает новый цикл.
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Отслеживать изменение кол-ва материала тоже очень хорошая идея. Т.к. практически все материалы стекуются в одну кучу, то в этом случае подойдёт обработчик evItemInfo. Он сообщает о каком предмете поменялась инфа, если это материал - значит событие крафта завершилось. Это хорошо отработает если при файле крафта часть материала портится.
Ещё теоретички можно использовать ивент evIncomingGump. Т.к. динамически текст гампа врядли изменяется, то сервер сначала даёт команду закрыть гамп, а потом передаёт клиенту новый гамп. Правда как этот случай отработается при порче инструмента - ХЗ.
Savage
Neophyte
Neophyte
Posts: 18
Joined: 27.09.2010 5:57
Contact:

Post by Savage »

MuDaCK wrote:Можно и такими способами, но тогда мне легче просто выставить задержку в пару секунд, пока крафтанется итем...
Где играешь?
Post Reply