- Регистрация
- 26 Мар 2004
- Сообщения
- 2.106
- Благодарности
- 1.052
- Баллы
- 315
В туторе VAM указано что класс C_ITEMREACT не используется, но это ведь не значит что он не работает? Функция Npc_StartItemReactModules(), как я понял должна работать с ним в тандеме, однако нигде не могу найти хоть каких-нибудь зацепок. Может кто-нибудь все же работал с этим классом?
Код:
CLASS C_ITEMREACT
{
VAR INT npc;
VAR INT trade_item;
VAR INT trade_amount;
VAR INT requested_cat;
VAR INT requested_item;
VAR INT requested_amount;
VAR FUNC reaction;
};
requested_item - это то что проверится у героя в наличие. для тестов я указывал руду.
в requested_amount будет записано кол-во requested_item
reaction это функция которая запустится. если функция вернётся 1 то будет проиграна анимация. если 0 то не будет.
***
инстанции можно "индивидуальные" создавать. а можно сделать какую универсальную инстанцию про что нибудь.
простенький пример для "продажи" доспехов
Daedalus:
instance Trade_ARMOR_PSI(C_ITEMREACT)
{
trade_amount = 1;
requested_item = ItMiNugget; // у героя
//requested_amount = 1; // факт кол-во у героя. будет перезаписано
reaction = Trade_ARMOR_PSI_Check;
};
func int Trade_ARMOR_PSI_Check()
{
Npc_RemoveInvItems (hero, Trade_ARMOR.requested_item, item.value);
CreateInvItem (hero, Trade_ARMOR_PSI.trade_item);
AI_EquipArmor(hero,item);
return 1;
};
вызываю в диалоге
Daedalus:
Trade_ARMOR_PSI.trade_item = TPL_ARMOR_M;
Trade_ARMOR_PSI.npc = Hlp_GetInstanceID(self);
Npc_StartItemReactModules(self,hero,ItMiNugget);
***
у меня иногда НПС и герой синхроно проигрывают анимацию. иногда нет. практического полезного применения придумать не смог.
Последнее редактирование: