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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

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

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.891
Благодарности
5.339
Баллы
910

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.290
Благодарности
4.603
Баллы
625
Мод яктиль, где сделано отличное отравление без всяких расширителей.
Ты знаешь мой ответ. Решить подобную задачу особого труда не составит, хоть наложить разные эффекты кучу всяких нпс. Но один факт того, что это будут богомерзкие костыли говорит сам за себя.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.340
Благодарности
3.187
Баллы
525
При растянутом во времени уроне существует ещё одна проблема. Если жертва будет убита этим повреждением, опыт ГГ может быть и не начислен. Нужно учитывать это обстоятельство в скриптах.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.130
Благодарности
3.224
Баллы
485
Есть ли принципиальная разница между этими проверками?
Daedalus:
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(hero))
Daedalus:
if(Npc_IsPlayer(self))
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.290
Благодарности
4.603
Баллы
625
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(hero))
Это не гарантирует, что self является игроком. Например в обращенном состоянии ID инстанции hero может быть wolf. При проверке любого волка ID будет эквивалентен обращенному игроку. Это я еще молчу про баг с дублированием hero.

if(Npc_IsPlayer(self))
Эта функция проверяет, является экземпляр self идентичным к hero (oCNpc::player). Ни один другой NPC кроме игрока не вернет true.
 

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340
Мод яктиль, где сделано отличное отравление без всяких расширителей.


WoOliN можешь декомпильнуть его и посмотреть как реализован яд
сам мод
World of Gothic - Downloads - Jaktyl

Хмм... и как же оно работает без функции обработки получения урона самим гг. Речь только о скриптовой ванильной реализации. Или яд работает только в одну сторону?
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.891
Благодарности
5.339
Баллы
910
Warn: 0 C: VIS: (oCVisualFX :: CheckDeletion()): Visual died before spell was casted. Name: .... <oVisFx.cpp,#3352>
Вызывает заклинание свет. Я так понимаю, что время жизни слишком низкое и частицы всегда генерятся?
Pfx
Daedalus:
INSTANCE MFX_LIGHT_INIT (C_PARTICLEFX)
{
     ppsvalue = 200.000000000;
     ppsscalekeys_s = "1.0";
     ppsislooping = 1;
     ppsfps = 0.020000000;
     shptype_s = "POINT";
     shpfor_s = "object";
     shpoffsetvec_s = "0 15 0";
     shpdistribtype_s = "RAND";
     shpdistribwalkspeed = 0.000300000;
     shpisvolume = 1;
     shpdim_s = "15";
     shpscalekeys_s = "1 0.3 1.2 0.8.0.1 1";
     shpscaleislooping = 1;
     shpscaleissmooth = 1;
     shpscalefps = 5.000000000;
     dirmode_s = "RAND";
     dirfor_s = "object";
     velavg = 0.001000000;
     lsppartavg = 150.000000000;
     visname_s = "MFX_LIGHT_SINGLERAY.TGA";
     visorientation_s = "VELO";
     vistexisquadpoly = 1;
     vistexcolorstart_s = "255 255 255";
     vistexcolorend_s = "0 0 0";
     vissizestart_s = "3 20";
     vissizeendscale = 3.000000000;
     visalphafunc_s = "ADD";
     visalphaend = 255.000000000;
};

INSTANCE MFX_LIGHT_ORIGIN (C_PARTICLEFX)
{
     ppsvalue = 250.000000000;
     //60 scalekeys:
     ppsscalekeys_s = "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1";
     ppsfps = 0.2;
     shptype_s = "POINT";
     shpfor_s = "object";
     shpdistribtype_s = "RAND";
     shpdistribwalkspeed = 0.000300000;
     shpisvolume = 1;
     shpdim_s = "15";
     shpscalekeys_s = "1 0.3 1.2 0.8.0.1 1";
     shpscaleislooping = 1;
     shpscaleissmooth = 1;
     shpscalefps = 5.000000000;
     dirmode_s = "RAND";
     dirfor_s = "object";
     velavg = 0.001000000;
     lsppartavg = 300.000000000;
     lsppartvar = 100.000000000;
     visname_s = "MFX_LIGHT_SINGLERAY.TGA";
     visorientation_s = "VELO";
     vistexisquadpoly = 1;
     vistexcolorstart_s = "255 255 255";
     vistexcolorend_s = "0 0 0";
     vissizestart_s = "3 30";
     vissizeendscale = 5.000000000;
     visalphafunc_s = "ADD";
     visalphaend = 255.000000000;
     useemittersfor = 1;
};
vfx
Daedalus:
// [EDENFELD] Инстанция spellFX_Light_ACTIVE должна быть передана в основной экземпляр spellFX_Light как Child с собственной траекторией
// чтобы зависнуть, и могло получить визуал только при кастинге
// только так можно проверить, активен ли какой-либо свет. Раньше в spellFX_Light_ACTIVE
// инстанция запускается с помощью переменной emCreateFXID. Но эффекты, создаваемые таким образом, больше не имеют отношения к заклинанию свет.

INSTANCE spellFX_Light(CFx_Base_Proto)
{
        visname_S             = "MFX_Light_INIT";
        visAlpha            = 1;
        emtrjmode_s         = "FIXED";
        emTrjOriginNode     = "ZS_RIGHTHAND";
        emFXCreate_S         = "spellFX_Light_ACTIVE";
        emFXCreatedOwnTrj     = 1;
};

INSTANCE spellFX_Light_KEY_CAST (C_ParticleFXEmitKey)
{
    pfx_ppsIsLoopingChg = 1;
};

INSTANCE spellFX_Light_ACTIVE    (CFx_Base_Proto)
{
        visname_S             = "";
        visAlpha            = 1;
        emtrjmode_s         = "FOLLOW TARGET";
         emtrjeasevel         = 0.;
         emTrjOriginNode     = "BIP01 Head";
        emtrjloopmode_s     = "HALT";
        emtrjeasefunc_s     = "LINEAR";
        emtrjdynupdatedelay = 0.4;
        emTrjTargetRange    = 1.2;
        emTrjTargetElev     = 89;
        lightPresetname     = "JUSTWHITE";
};

INSTANCE spellFX_Light_ACTIVE_KEY_OPEN (C_ParticleFXEmitKey)
{
    lightRange         = 0.01;
};

INSTANCE spellFX_Light_ACTIVE_KEY_INIT(C_ParticleFXEmitKey)
{
    lightRange         = 0.01;
};

INSTANCE spellFX_Light_ACTIVE_KEY_CAST     (C_ParticleFXEmitKey)
{
    visName_S        = "MFX_Light_ORIGIN";
    lightRange        = 1000;
    sfxid            = "MFX_Light_CAST";
    sfxisambient    = 1;
    emtrjeasevel     = 1400.;
};
 

WoOliN

Участник форума
Регистрация
13 Окт 2012
Сообщения
347
Благодарности
196
Баллы
210
Знатоки, нужна помощь.
Описание
Через использование предмета (зелья) применяю к ГГ флаг прозрачности модели hero.flags = NPC_FLAG_GHOST;
и хочу, чтобы сразу после использования этого зелья модель ГГ таки стала прозрачной.
Флаг присваивается, но визуально модель ГГ не обновляется. Только комбинация клавиш b22b (для отключения Марвина) позволяет обновить модельку, но комбинация сбрасывает ещё кучу всего, да и юзать её после выпитого зелья не вариант.
Вопрос
Есть ли какой-то скриптовый аналог для мгновенного обновления визуальных изменений в модели? Или скриптовый аналог комбинации b22b?
Желательно без использования видео-вставок или кат-сцен.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.130
Благодарности
3.224
Баллы
485
Есть ли какой-то скриптовый аналог для мгновенного обновления визуальных изменений в модели?
Примени к hero Mdl_SetVisualBody с теми же параметрами, как в изначальной инстанции PC_Hero. И/или Mdl_SetVisual(self,"HUMANS.MDS").
 

WoOliN

Участник форума
Регистрация
13 Окт 2012
Сообщения
347
Благодарности
196
Баллы
210
Примени к hero Mdl_SetVisualBody с теми же параметрами, как в изначальной инстанции PC_Hero. И/или Mdl_SetVisual(self,"HUMANS.MDS").
К сожалению, не помогло.
Снятие/одевание доспехов тоже не помогает.
Может дело в том, что в инстанции ГГ нет изначального параметра флага? Попробую здесь поковыряться. Не прокатило.

Пока только комбинация b22b или загрузка сохранения корректно меняют визуальное отображение.
Есть ещё какие-то варианты обновить модельку после использования подобного зелья?
 
Последнее редактирование:

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
435
Благодарности
261
Баллы
230
Как вариант:
Daedalus:
hero.flags = hero.flags | NPC_FLAG_GHOST;
AI_Teleport(hero, "PC_HERO");
Может ещё какие-то способы есть.
 

WoOliN

Участник форума
Регистрация
13 Окт 2012
Сообщения
347
Благодарности
196
Баллы
210
Как вариант:
Daedalus:
hero.flags = hero.flags | NPC_FLAG_GHOST;
AI_Teleport(hero, "PC_HERO");
Может ещё какие-то способы есть.
А вот способ с телепортацией сработал, большое спасибо)
 

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340
Готоманы, кто нить в курсе каким образом ГГ можно запретить двигаться? Лучше конечно через Union. Чет весь мозг сломал уже.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.290
Благодарности
4.603
Баллы
625
А у кого есть геймпад от xbox'а с возможностью беспроводного подключения к ПК?
 

Venzern

Участник форума
Регистрация
24 Фев 2008
Сообщения
691
Благодарности
210
Баллы
220
Gratt, кстати у меня лежит дома (в другой квартире) геймпад от 360-ой шайтан-коробки с ресивером для беспроводного подключения к компу. Если будет актуально позже (через недельку или две, я просто валяюсь сейчас безвылазно дома с одной нехорошей болезнью), то отпишу сюда или в ЛС.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.290
Благодарности
4.603
Баллы
625
Блин, до этого времени 360тые мне не смогли помочь :( Но спасибо
 

DarkKel

Участник форума
Регистрация
30 Янв 2015
Сообщения
45
Благодарности
13
Баллы
160
Вопрос - как правильно менять звуки в г1?

Файлы заменил, но какие-то звуки работают, какие-то нет.. Причем если на место не рабочих поставить рабочий (заменить название файла) - он будет так же успешно проигрываться... В чем может быть причина такого?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.290
Благодарности
4.603
Баллы
625
Звуки должны быть монофоническими. Это касается и wav, и ogg (SP & Union).
 
Сверху Снизу