Jump to content

Digest October-December

We talk about what was done and updated in the past month. We help keep abreast of events.

December November October

Servers monitoring and the Addons Editor

We present you two legends. All dreams come true.

Servers monitoring The Addons Editor

A statistics bot for Telegram

Convenient analytics right on your phone.

Read more

Game tooltips

Tooltips provide a way for 3rd party fansites and extensions to display detailed information on mouseover.

Read more

The Addons Updater

Let us to introduce the addons updating software and to share the details

Read more Download

avatar.InventorySplitItem


jedbez

Recommended Posts

Нужна консультация по avatar.InventorySplitItem

Даю код

local ishod=avatar.GetInventoryItemSlot(Item)

avatar.InventorySplitItem(ishod,k,Kolvo)

LogInfo(avatar.GetInventoryItemId(k))

k - это номер ячейки определенной как пустая

Kolvo - соответственно установлено количество отделяемых предметов

Почему он мне говорит nil хотя я глазами то вижу что оно переместилось и занято?

Link to comment
Share on other sites

так дождись ответа сервера EVENT_INVENTORY_CHANGED и делай LogInfo(avatar.GetInventoryItemId(k))

Link to comment
Share on other sites

А можно глупый вопрос? Каким образом дождаться события внутри функции, если у него нет никаких аргументов на выходе?

Подскажите пожалуйста код

common.RegisterEventHandler(LogInfo(avatar.GetInventoryItemId(k)),"EVENT_INVENTORY_CHANGED") ?

Link to comment
Share on other sites

Каким образом дождаться события внутри функции
Никаким.
Link to comment
Share on other sites

Значит всетаки про русски, через...... ага понял, щас попробую, кажется дошло.

Link to comment
Share on other sites

Внутри функции? Ну, тогда для извращенцев:

  • Заводим глобальный флажок: flg=false;
  • При поступлении события взводим его в обработчике: flg = true;
  • В функции устраиваем бесконечный цикл: while (!flg);
  • Если флаг взведен - работает то, что после цикла. Ваш код.
  • В Вашем коде после нужных действий обратно снимаем флаг: flg = false;

 

Ну, на самом деле обработку данных с сервера выносят в отдельные функции, вызывающиеся при определенном событии (принятии ответа сервера, в нашем случае).

Link to comment
Share on other sites

Если пытаться дождаться чего-то в цикле while do, то игра формально зависнет до тех пор пока цикл не прервется.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use