• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

    Не ленитесь, голосуйте в этой теме за тех форумчан, которые по вашему мнению больше всех проявили себя в этом году
    По желанию, аргументировать свой выбор можете в теме обсуждения голосования.

Не стесняюсь спросить....

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
Ну у меня был вариант касаемо спела превращения - oCSpell::CastSpecificSpell. Посмотри активное заклинание у этих нпс.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
А что, какие у этого двойника параметры? Покажи edit focus
Если это триггер виноват, может функция написана криво и лезет туда, куда не надо?
А мог ли добавится дубликат после использования превращения? там же вроде используется функция virtual void __thiscall oCNpc::SetAsPlayer(void)

Кстати ты оставил весь скрипт spell_transform?
По моему проверка на игрока не срабатывает в момент превращения
Daedalus:
    if(Npc_IsPlayer(self) && (PLAYERISTRANSFER == TRUE) && (PLAYERISTRANSFERDONE == FALSE))
    {
        b_transferback(self);
    };
Лучше уж
Daedalus:
if(C_NpcIsHero(self) && (PLAYERISTRANSFER == TRUE) && (PLAYERISTRANSFERDONE == FALSE))
    {
        b_transferback(self);
       };
 
Последнее редактирование:

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.663
Благодарности
2.490
Баллы
380
Gratt, активное есть, но это не превращение. Боевая руна.
 

Wallerstein

Участник форума
Регистрация
26 Апр 2009
Сообщения
965
Благодарности
24
Баллы
195
Стесняюсь спросить.. напомните пжл, была тема такая, где форумчане в помощь модостроителям придумывали квесты для возможно будущих модов. Можете найти, где искать ее? Не удалили ее еще?
 

Wallerstein

Участник форума
Регистрация
26 Апр 2009
Сообщения
965
Благодарности
24
Баллы
195

Спасибо, но помоему это не совсем то. Та тема была именно о квестах, не об идеях, а о квестах, и о сюжете. Помнится, создавалась она в ответ на Лебедева, который никак не мог для своего мода сюжет придумать.
Ну может эта и есть та тема, которую вы прислали, я честно не помню. В той вроде великое множество всяких квестов было.
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.770
Благодарности
557
Баллы
275
Wallerstein, можно проштудировать тему Небесного воина, но вообще, сомневаюсь, что присылалось что-то толковое, т.к. нормальные квесты, либо для себя пишут, либо для нормальных модов, но никак не для Лебедева :D
 

Wallerstein

Участник форума
Регистрация
26 Апр 2009
Сообщения
965
Благодарности
24
Баллы
195
Не для Лебедева, а вопреки (!). То есть тогда Лебедеву пытались доказать, что квесты не сложно придумывать, для этого необходимо включить фантазию и набраться терпения, сесть и писать.И на фоне этого родилась тема с квестами, где любой форумчанин мог что-нибудь придумать и разместить. И поэтому квесты в той теме нормальные, я это помню.
 

Mantrid

Участник форума
Регистрация
31 Янв 2009
Сообщения
207
Благодарности
138
Баллы
200
Стесняюсь спросить.. напомните пжл, была тема такая, где форумчане в помощь модостроителям придумывали квесты для возможно будущих модов.
Немного не то, но я помню, что похожая тема (конкурсная) была на форуме Magic-team:
Конкурс "КВЕСТОписатель" - Форум команды Magic Team (кидать ссылки на этот сайт вроде не запрещено)
 

Raswen

Гражданин Хориниса
Регистрация
18 Фев 2014
Сообщения
1.352
Благодарности
784
Баллы
260

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.577
Благодарности
4.171
Баллы
915
N1kX, пожалуйста в деталях объясни разницу между функциями Npc_IsPlayer() и C_NpcIsHero(). Если мне не изменяет память, то первая функция может неправильно определять превращённого в зверя игрока.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
Dimus, IsPlayer запрашивает у движка, управляет ли игрок персонажем.
IsHero определяет, является ли инстанция нпс равной pc_hero.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
Npc_IsPlayer() и C_NpcIsHero()
Дополню. Когда ГГ превратился в монстра с помощью свитка трансформации, функция Npc_IsPlayer возвращает 1 при проверке ссылки C_Npc на ГГ. Функция C_NpcIsHero в этом случае возвращает 0.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Ну точнее некуда, как написал Gratt.
Npc_IsPlayer вы
C_NpcIsHero всегда указывает на конкретного персонажа, то есть на PC_HERO, но я не использую её, вместо этого везде для главного героя делаю вот так
if (self.id == 0)
Проще некуда.
Слета характеристик после превращения и с 1000 попытки не поймал
Но злоупотреблять не стоит. Это касается в основном предметов, которые могут быть экипированными на именно на герое. Например НПС не даются бонусы от оружия, если они есть.

Тогда стоит посмотреть глубже в движке, почему иногда Npc_IsPlayer может выдать 0, после превращения. Может криво возвращается управление? Было замечено, что даже Npc_SetToFistMode(self); перенеслось на главного героя сломав все оверлеи.

В Г1 есть заклинание control, интересно, там тоже есть баг, когда ГГ берет в управление другого НПС и возвращается обратно?
 
Последнее редактирование:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
В Г1 есть заклинание control, интересно, там тоже есть баг, когда ГГ берет в управление другого НПС и возвращается обратно?
Я с багами не сталкивался. Если ты имеешь в виду баги, описанные выше.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
N1kX, хз что там с превращением, там при возвращении облика делается сброс состояний персонажа. Если что-то вызывает проблемы, то это оно.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Ну я давно курил у немцев и там пишут, что иногда функция возвращает 0 после сейф/лоад или смены мира в чужом облике. (в форме животного)
Это кстати тоже для размышления. Может ли в этот момент создаваться двойник PC_HERO?

Хм, а что заклинание превращения тяжело закодировано только под определенные гильдии?

oCSpell::CastSpecificSpell {
transform if id 47..58 (info = guild)
}
oCAIHuman::CheckActiveSpells {
transform back on KEY_ENTER if IsSpellActive(47..58)
}
oCTriggerChangeLevel::TriggerTarget {
transform back if IsSpellActive(47..58)
}
 
Последнее редактирование:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
или смены мира в чужом облике. (в форме животного)
А такое разве возможно? В Г1, вроде бы, стоит защита. ГГ сначала превращается "в себя", и только потом у него появляется возможность перейти в другую локацию. Это, если входить в область триггера смены уровня естественным путём.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
N1kX, а в облике разве пускает в триггер и даёт сохраняться? При переходе между мирами для player задаётся условие, что тот не должен писаться в сейв. Вряд ли это делается и для сохраненной формы. Поэтому да, скорее всего это может задублировать hero.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Я проверил нет не дает. В форме сейф выключен (Не поможет даже quicksave).
После перехода границу триггера смены уровня, гг отбрасывает немного назад и движок сам возвращает в изначальную форму.

Хотя выше я дополнил и сам увидел, что движок это делает
oCTriggerChangeLevel::TriggerTarget {
transform back if IsSpellActive(47..58)
}
 
Последнее редактирование:
Сверху Снизу