Уважаемые гости и новички, приветствуем Вас на нашем форуме
Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».
Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Ничего не мешает вынести проверки людей в отдельную функцию. Не понимаю зачем множить, множества и еще при этом прописывать отдельный аивер. Лучшее это враг хорошему :)
p.s.
Я вчера зачем то переименовал диски на компе. И не понять на кой черт снял букву с загрузочного тома. Как следствие...
MEG@VOLT, у меня часто было такое из-за того что я допускал ошибки при использование Str_Format. Игра крашилась при запуске и я грешил на разные функции :)
если ты её указал в скриптах и игра стартанула, значит она уже зарегана(?) как внешняя функция. напиши что как ты её вызываешь.
RPD, найти внутри функции zs_dead подходящее место.
Сделай проверку на то погиб ли твой НПС. Далее сделай проверку где находится сейчас нпс и в зависимости от его местонахождения вставляй нового нпс на то или иное место.
func void ZS_Dead ()
{
...
var c_npc npc; npc =...
тогда проще иметь какое то простое оружие в инвентаре. иначе придётся искать по слоту
func void B_DrawWeapon(var c_npc npc)
{
if (Npc_HasReadiedMeleeWeapon(npc)) { return; }; // НПС и так уже достал оружие --> выход
if (Npc_HasEquippedMeleeWeapon(npc) != 1)
{
// у...
AI_DrawWeapon по хорошему надо завернуть.
func void B_DrawWeapon(var c_npc npc)
{
if (Npc_HasReadiedMeleeWeapon(npc)) { return; }; // НПС и так уже достал оружие --> выход
if (Npc_HasEquippedMeleeWeapon(npc) != 1)
{
// у НПС нет экипированного оружия --> Одеваем...
func int B_SelectSpell (var C_NPC slf, var C_NPC oth)
{
...
if (C_IsNpc(slf,Gil_666_Nikita)) // это новый НПС
{
if(slf.aivar[AIV_SelectSpell] >= 3) // сделал три каста
{
return false; // отказ от магии. будет пытаться достать оружие...
RPD, пиши код инстанции НПС. так тяжело угадывать чего ему не хватает для счастья.
тут надо получать ссылку на НПС или написать свою функцию. вот например код неоф. обновл. D36. ещё бы для счастья добавить проверку на Hlp_IsValidNpc :-)
func int C_IsNpc(var C_Npc slf,var int npcInstance)
{...
p.s.s.
можно и такую конструкцию использовать что бы сократить код и исключить опечатки беря необходимые данные напрямую из инстанции руны/свитка.
func int B_ReadyRune(var C_NPC slf, var int rune)
{
if (!Npc_GetInvItem(slf, rune))
{
CreateInvItem(slf, rune);
};
//...
тебе лучше этого НПС прописать в B_SelectSpell
func int B_SelectSpell (var C_NPC slf, var C_NPC oth)
{
...
if (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(Gil_666_Nikita)) // это новый НПС
{
if (Npc_HasItems (slf, ItRu_Firerain) == 0)
{...
ради арфы весь бордель затевался;-)
если тебе не нравится арфа ты можешь её заменить на что угодно самостоятельно. для этого создай файл с расширением ".d" в папке авторан и вставь в него следующий код
func void Rtn_Start_436()
{
TA_Sleep(5,0,8,0,"NW_CITY_SONJA_BED")...
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.