Показать сообщение отдельно
Старый 03.10.2007, 19:44   #1846
HikeR

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2MaGoth:
Попробуй использовать проверку активного оружия перед торговлей, если оружие активно, т.е. взято Гг в руки, то снимай его функцией спрятать оружие, запуская одновременно торговлю. ;)
сделал проще:
Cпойлер(щелкните, чтобы прочесть):
func void Stt_311_Fisk_Trade_Info()
{
* * *AI_Output (other, self, "Stt_311_Fisk_Trade_15_00"); * * *//Покажи мне, что у тебя есть.
* * *AI_UnequipWeapons(other);
};

перед торговлей ВСЁ оружие снимается. проверять на активное и экипированное оружие имеет смысл для того, чтобы по окончании торговли оно автоматом вешалось обратно.
назревает вопрос: как поймать момент окончания торговли?
тогда был бы такой алгоритм:
Cпойлер(щелкните, чтобы прочесть):
// перед торговлей
- получить id экипированного оружия.
- снять всё оружие
- удалить одну единицу оружия из инвентаря (чтоб не продать в куче)
// после торговли
- добавить в инвертарь одну единицу оружия (ранее удаленного)
- повесить его на ГГ

всё это я сделать могу. не могу отследить окончание торговли.
Ответить с цитированием