там же миры так же конвертировались под вторую. в портер работает как-то криво.
instance Gil_Values(C_GILVALUES)
{
...
swim_time[GIL_HUMAN] = TIME_INFINITE;
dive_time[GIL_HUMAN] = 30;
water_depth_knee[GIL_HUMAN] = 65;
water_depth_chest[GIL_HUMAN] = 140;
step_height[GIL_HUMAN] = 60;
jumplow_height[GIL_HUMAN] = 105;
jumpmid_height[GIL_HUMAN] = 205;
jumpup_height[GIL_HUMAN] = 200;
slide_angle[GIL_HUMAN] = 50;
disable_autoroll[GIL_HUMAN] = 0;
surface_align[GIL_HUMAN] = 0;
turn_speed[GIL_HUMAN] = 240;
climb_heading_angle[GIL_HUMAN] = 50;
climb_horiz_angle[GIL_HUMAN] = 50;
climb_ground_angle[GIL_HUMAN] = 50;
falldown_height[GIL_HUMAN] = 500;
falldown_damage[GIL_HUMAN] = 20;
fight_range_base[GIL_HUMAN] = 60;
fight_range_fist[GIL_HUMAN] = 50;
fight_range_g[GIL_HUMAN] = 100;
};
Я конечно моды не делаю, но часто сталкивался по ремонту всякой техники, когда сначала говорят вот столкну с проблемой ... n-ное количество постов, потом всем спасибо проблему решил и исчезает. А я сижу с такой же проблемой, а как её решить осталось загадкой. Зря только ветку форума читал, или это такая страшная тайна, а остальные кто наступит на те же грабли пусть сами разбираются.Нашел и исправил проблему. Миры были не причем.
INSTANCE DIA_Talas_EXIT(C_INFO)
{
npc = BDT_7536_Talas;
nr = 999;
condition = DIA_Talas_EXIT_Condition;
information = DIA_Talas_EXIT_Info;
permanent = TRUE;
description = Dialog_Ende;
};
FUNC int DIA_Talas_EXIT_Condition()
{
return TRUE;
};
FUNC void DIA_Talas_EXIT_Info()
{
AI_StopProcessInfos (self);
};
INSTANCE DIA_Talas_suppliesmam (C_INFO)
{
npc = BDT_7536_Talas;
nr = 1;
condition = DIA_Talas_suppliesmam_Condition;
information = DIA_Talas_suppliesmam_Info;
permanent = FALSE;
description = "У меня есть все, что тебе нужно.";
};
FUNC int DIA_Talas_suppliesmam_Condition()
{
if((Npc_KnowsInfo(other,DIA_Talas_supplies)) && (Npc_HasItems(other,ItFo_Bacon) >= 6) && (Npc_HasItems(other,ItFo_Bread) >= 5) && (Npc_HasItems(other,ItMw_1H_Mace_L_04) >= 1) && (Npc_HasItems(other,ItMw_2H_Axe_L_01) >= 2) && (Npc_HasItems(other,ItMi_Hammer) >= 2) && (Npc_HasItems(other,ItMi_Saw) >= 2) && (Npc_HasItems(other,ItLsTorch) >= 7))
{
return TRUE;
};
};
FUNC void DIA_Talas_suppliesmam_Info()
{
AI_Output (other, self ,"DIA_Talas_suppliesmam_15_00"); //У меня есть все, что тебе нужно.
B_GiveInvItems_New(other,self,ItMw_1H_Mace_L_04,1,34);
B_GiveInvItems_New(other,self,ItMw_2H_Axe_L_01,2,36);
B_GiveInvItems_New(other,self,ItMi_Hammer,2,38);
B_GiveInvItems_New(other,self,ItMi_Saw,2,40);
B_GiveInvItems_New(other,self,ItLsTorch,7,42);
B_GiveInvItems_New(other,self,ItFo_Bacon,6,44);
B_GiveInvItems_New(other,self,ItFo_Bread,5,46);
AI_Output (self, other ,"DIA_Talas_suppliesmam_03_01"); //Очень хорошо.
AI_Output (self, other ,"DIA_Talas_suppliesmam_03_02"); //Я передам это Брендику вместе с остальными вещами.
AI_Output (self, other ,"DIA_Talas_suppliesmam_03_03"); //С твоей стороны - это все.
Npc_RemoveInvItems(self,ItMw_1H_Mace_L_04,1);
Npc_RemoveInvItems(self,ItMw_2H_Axe_L_01,2);
Npc_RemoveInvItems(self,ItMi_Hammer,2);
Npc_RemoveInvItems(self,ItMi_Saw,2);
Npc_RemoveInvItems(self,ItLsTorch,7);
Npc_RemoveInvItems(self,ItFo_Bacon,6);
Npc_RemoveInvItems(self,ItFo_Bread,5);
B_LogEntry(TOPIC_Artomine,"Я передал Таласу недостающие предметы.");
};
С этим проблем нет.Пропадает при каком-либо действии или отсутствует вовсе? Напоминаю, что добавление новых диалогов требует начала новой игры.
Опция окончания диалога исчезает стабильно или только иногда? Что будет, если игрок выбросит из инвентаря часть нужного барахла? Опция появится?Пропадает, когда игрок собрал требуемые предметы.
instance SPELLFX_THUNDERBOLT(CFX_BASE_PROTO)
{
visname_s = "MFX_Thunderebolt_INIT";
emtrjmode_s = "FIXED";
emtrjoriginnode = "ZS_RIGHTHAND";
emtrjtargetnode = "BIP01 FIRE";
emtrjloopmode_s = "NONE";
emtrjeasefunc_s = "LINEAR";
emactioncollstat_s = "COLLIDE CREATE";
emactioncolldyn_s = "COLLIDE CREATEONCE";
emfxcollstat_s = "spellFX_Thunderbolt_COLLIDE";
emfxcolldyn_s = "spellFX_Thunderbolt_SENDPERCEPTION";
emtrjtargetrange = 20;
emtrjtargetelev = 0;
emtrjdynupdatedelay = 20000;
};
instance SPELLFX_THUNDERBOLT_KEY_INIT(C_PARTICLEFXEMITKEY)
{
visname_s = "MFX_Thunderbolt_INIT";
scaleduration = 0.5;
};
instance SPELLFX_THUNDERBOLT_KEY_CAST(C_PARTICLEFXEMITKEY)
{
visname_s = "MFX_Thunderbolt_CAST";
emtrjmode_s = "TARGET";
emtrjeasevel = 1400;
sfxid = "MFX_Thunderbolt_Cast";
emcheckcollision = 1;
};
instance SPELLFX_THUNDERBOLT_KEY_COLLIDE(C_PARTICLEFXEMITKEY)
{
pfx_flygravity_s = "0 0.0002 0";
emtrjeasevel = 1e-006;
emcheckcollision = 0;
};
instance SPELLFX_THUNDERBOLT_COLLIDE(CFX_BASE_PROTO)
{
visname_s = "MFX_Thunderbolt_Collide";
visalpha = 1;
emtrjmode_s = "FIXED";
sfxid = "Torch_Enlight";
};
instance SPELLFX_THUNDERBOLT_SENDPERCEPTION(CFX_BASE_PROTO)
{
visname_s = "MFX_Thunderbolt_Collide";
visalpha = 1;
emtrjmode_s = "FIXED";
sfxid = "Torch_Enlight";
sendassessmagic = 1;
};
instance SPELLFX_CONCUSSIONBOLT(CFX_BASE_PROTO)
{
visname_s = "MFX_ConcussionBolt_INIT";
emtrjmode_s = "FIXED";
emtrjoriginnode = "ZS_RIGHTHAND";
emtrjtargetnode = "BIP01 FIRE";
emtrjloopmode_s = "NONE";
emtrjeasefunc_s = "LINEAR";
emactioncollstat_s = "COLLIDE CREATE";
emactioncolldyn_s = "COLLIDE CREATEONCE";
emfxcollstat_s = "spellFX_ConcussionBolt_COLLIDE";
emfxcolldyn_s = "spellFX_ConcussionBolt_SENDPERCEPTION";
emtrjtargetrange = 20;
emtrjtargetelev = 0;
emtrjdynupdatedelay = 20000;
};
instance SPELLFX_CONCUSSIONBOLT_KEY_INIT(C_PARTICLEFXEMITKEY)
{
visname_s = "MFX_ConcussionBolt_INIT";
scaleduration = 0.5;
};
instance SPELLFX_CONCUSSIONBOLT_KEY_CAST(C_PARTICLEFXEMITKEY)
{
visname_s = "MFX_ConcussionBolt_CAST";
emtrjmode_s = "TARGET";
emtrjeasevel = 1400;
sfxid = "MFX_Thunderbolt_Cast";
emcheckcollision = 1;
};
instance SPELLFX_CONCUSSIONBOLT_KEY_COLLIDE(C_PARTICLEFXEMITKEY)
{
pfx_flygravity_s = "0 0.0002 0";
emtrjeasevel = 1e-006;
emcheckcollision = 0;
};
instance SPELLFX_CONCUSSIONBOLT_COLLIDE(CFX_BASE_PROTO)
{
visname_s = "MFX_ConcussionBolt_Collide";
visalpha = 1;
emtrjmode_s = "FIXED";
sfxid = "Torch_Enlight";
};
instance SPELLFX_CONCUSSIONBOLT_SENDPERCEPTION(CFX_BASE_PROTO)
{
visname_s = "MFX_ConcussionBolt_Collide";
visalpha = 1;
emtrjmode_s = "FIXED";
sfxid = "Torch_Enlight";
sendassessmagic = 1;
};
ID у созданных НПС разный? Как меняешь рутину?Подскажите пожалуйста, а по какой причине может не работать команда Npc_ExchangeRoutine?
Ерунда какая-то. Создал двух нпс, у одного работает, а у другого нет, причем маршрут один и тот же.