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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, спешите принять участие в поэтическом конкурсе "Весенние поэты 2024"!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.230
Благодарности
6.211
Баллы
1.565
Feuermagier написал(а):
Сорри, проблема осталась
Хм... ну посмотри может где-то остались несоедененные вершины в самом здании и также посмотри во всех ли арках стоят порталы, еще возможен вариант, что есть между порталом и выходом из здания(в этих нескольких сантиметрах) есть еще невидимая плоскость. А кстати ты как соеденяешь портал со зданием - одной плоскостью? или 2 плоскости соедененные вершинами(получается какбы бокс нулевой толщины) соеденяешь со зданием?
 
Последнее редактирование:

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
932
Благодарности
130
Баллы
225
Две плоскости соединенные вершинами, а самое интересное что проемы стандартные, квадратные. Дыр в здании быть не может- здание цельный обьект. вот. Ну спасибо Мегавольт, поковыряюсь еще сам.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.230
Благодарности
6.211
Баллы
1.565
Feuermagier написал(а):
Две плоскости соединенные вершинами, а самое интересное что проемы стандартные, квадратные. Дыр в здании быть не может- здание цельный обьект. вот. Ну спасибо Мегавольт, поковыряюсь еще сам.
Во.... перечитал еще раз твою проблему. Понял.... У тебя это здание в спейсере есть как МОБ(ВОБ) что не есть гуд. Если хочешь здания с порталами - то сделай полный 3дс в максе(вместе со зданиями) соедени и тогда уже в спейсере расставляй порталы.
 
Последнее редактирование:

Odin

Участник форума
Регистрация
13 Июн 2009
Сообщения
7
Благодарности
0
Баллы
145
Пожалуйста, подскажите, как можно создать, или перенести в Addon patch v1.1 из UNnamed mod кольцо странника (регенерация манны и здоровья 1п/сек.). Все мои попытки разобраться в скриптах и GothicSourcer V3.14 безуспешны, но сдаваться не буду.
 

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
Odin Вот кольцо из адона "возращение"... переделывай как хочешь... и вставляй... будут проблемы тогда спрашивай здесь ;)
//глобальная переменая
var int manaringequip;
//кольцо
instance ITRI_REGENERATEMANA(C_Item)
{
name = NAME_Ring;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_RING;
value = 5000;
visual = "ItRi_Prot_Mage_02.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = equip_itri_regeneratemana;
on_unequip = unequip_itri_regeneratemana;
wear = WEAR_EFFECT;
effect ="SPELLFX_ITEMGLIMMER";
description ="Кольцо восстановления духа";
text[1] = "На кольце выгравированы древние руны...";
text[2] = "При использовании, лишает возможности передвижения...";
text[5] = NAME_Value;
count[5] = value;
inv_zbias = INVCAM_ENTF_RING_STANDARD;
inv_rotz = INVCAM_Z_RING_STANDARD;
inv_rotx = INVCAM_X_RING_STANDARD;
};


func void equip_itri_regeneratemana()
{
MANARINGEQUIP = TRUE;
if(HEALRINGEQUIP == FALSE)
{
ZSCOUNTMANA = 0;
REGENERATEFREEZE = TRUE;
AI_StartState(self,ZS_MagicFreeze,0,"");
};
};

func void unequip_itri_regeneratemana()
{
if(HEALRINGEQUIP == FALSE)
{
ZSCOUNTMANA = 0;
REGENERATEFREEZE = FALSE;
PROCESSREGENERATE = FALSE;
PROCESSREGENERATEMANAEND = FALSE;
Npc_StopAni(self,"T_MAGRUN_2_HEASHOOT");
Npc_ClearAIQueue(self);
AI_Standup(self);
};
MANARINGEQUIP = FALSE;
};
//////////////////////////////////////////////////////////////////////////////////////////////////////
//файл ZS_MagicFreeze.d
//////////////////////////////////////////////////////////////////////////////////////////////////////

func void B_RestartFreeze()
{
if((Npc_GetLastHitSpellID(self) == SPL_IceCube) || (Npc_GetLastHitSpellID(self) == SPL_IceWave))
{
Npc_SetStateTime(self,0);
};
};

func void B_StopMagicFreeze()
{
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(hero))
{
Perception_Set_Normal();
};
Npc_PercEnable(self,PERC_ASSESSMAGIC,B_AssessMagic);
Npc_ClearAIQueue(self);
AI_Standup(self);
if(self.guild < GIL_SEPERATOR_HUM)
{
B_AssessDamage();
}
else
{
Npc_SetTempAttitude(self,ATT_HOSTILE);
};
};

func int ZS_MagicFreeze()
{
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(hero))
{
if(DAMAGEFREEZE == TRUE)
{
Npc_PercEnable(self,PERC_ASSESSMAGIC,B_RestartFreeze);
Npc_StopAni(self,"S_FIRE_VICTIM");
if(!C_BodyStateContains(self,BS_UNCONSCIOUS))
{
AI_PlayAniBS(self,"T_STAND_2_FREEZE_VICTIM",BS_UNCONSCIOUS);
};
self.aivar[AIV_FreezeStateTime] = 0;
};
}
else
{
Npc_PercEnable(self,PERC_ASSESSMAGIC,B_RestartFreeze);
Npc_StopAni(self,"S_FIRE_VICTIM");
if(self.guild >GIL_SEPERATOR_HUM)
{
if(!C_BodyStateContains(self,BS_STUMBLE))
{
AI_PlayAniBS(self,"T_STAND_2_FREEZE_VICTIM",BS_STUMBLE);
};
}
else if(self.guild != GIL_DMT)
{
if(!C_BodyStateContains(self,BS_UNCONSCIOUS))
{
AI_PlayAniBS(self,"T_STAND_2_FREEZE_VICTIM",BS_UNCONSCIOUS);
};
}
else if(!C_BodyStateContains(self,BS_STUMBLE))
{
AI_PlayAniBS(self,"T_STAND_2_FREEZE_VICTIM",BS_STUMBLE);
};
self.aivar[AIV_FreezeStateTime] = 0;
};
return TRUE;
};

func int ZS_MagicFreeze_Loop()
{
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(hero))
{
if(DAMAGEFREEZE == TRUE)
{
if(Npc_GetStateTime(self) != self.aivar[AIV_FreezeStateTime])
{
self.aivar[AIV_FreezeStateTime] = Npc_GetStateTime(self);
if(self.attribute[ATR_HITPOINTS] >(self.attribute[ATR_HITPOINTS] - SPL_FREEZE_DAMAGE))
{
B_MagicHurtNpc(other,self,SPL_FREEZE_DAMAGE);
};
};
};
if(REGENERATEFREEZE == TRUE)
{
if(HEALRINGEQUIP == TRUE)
{
ZSCOUNTHEAL = ZSCOUNTHEAL + 1;
};
if(MANARINGEQUIP == TRUE)
{
ZSCOUNTMANA = ZSCOUNTMANA + 1;
};
if(ZSCOUNTMANA >10)
{
ZSCOUNTMANA = 0;
if((hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX]) && (MANARINGEQUIP == TRUE))
{
PROCESSREGENERATEMANAEND = FALSE;
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 1;
if((hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX]) && (hero.guild == GIL_NOV))
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 1;
};
if((hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX]) && ((hero.guild == GIL_KDF) || (hero.guild == GIL_KDW)))
{
MANALEVEL = (hero.level * 100) / 1000;
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + MANALEVEL;
};
Wld_PlayEffect("spellFX_LIGHTSTAR_BLUE",hero,hero,0,0,0,FALSE);
if((PROCESSREGENERATE == FALSE) && (DAMAGEFREEZE == FALSE))
{
AI_PlayAni(self,"T_MAGRUN_2_HEASHOOT");
PROCESSREGENERATE = TRUE;
};
};
if(hero.attribute[ATR_MANA] >hero.attribute[ATR_MANA_MAX])
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA_MAX];
};
if((hero.attribute[ATR_MANA] == hero.attribute[ATR_MANA_MAX]) && (MANARINGEQUIP == TRUE))
{
PROCESSREGENERATEMANAEND = TRUE;
};
};
if(ZSCOUNTHEAL >10)
{
ZSCOUNTHEAL = 0;
if((hero.attribute[ATR_HITPOINTS] < hero.attribute[ATR_HITPOINTS_MAX]) && (HEALRINGEQUIP == TRUE))
{
PROCESSREGENERATEHPEND = FALSE;
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + 5;
if((hero.attribute[ATR_HITPOINTS] < hero.attribute[ATR_HITPOINTS_MAX]) && (hero.guild == GIL_PAL))
{
HEALLEVEL = ((hero.level * 100) / 1000) * 2;
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + HEALLEVEL;
};
Wld_PlayEffect("spellFX_LIGHTSTAR_RED",hero,hero,0,0,0,FALSE);
if((PROCESSREGENERATE == FALSE) && (DAMAGEFREEZE == FALSE))
{
AI_PlayAni(self,"T_MAGRUN_2_HEASHOOT");
PROCESSREGENERATE = TRUE;
};
};
if(hero.attribute[ATR_HITPOINTS] >hero.attribute[ATR_HITPOINTS_MAX])
{
hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS_MAX];
};
if((hero.attribute[ATR_HITPOINTS] == hero.attribute[ATR_HITPOINTS_MAX]) && (HEALRINGEQUIP == TRUE))
{
PROCESSREGENERATEHPEND = TRUE;
};
};
if((PROCESSREGENERATEMANAEND == TRUE) || (PROCESSREGENERATEHPEND == TRUE))
{
if((PROCESSREGENERATEMANAEND == TRUE) && (PROCESSREGENERATEHPEND == TRUE))
{
MANARINGEQUIP = FALSE;
HEALRINGEQUIP = FALSE;
PROCESSREGENERATE = FALSE;
PROCESSREGENERATEMANAEND = FALSE;
PROCESSREGENERATEHPEND = FALSE;
REGENERATEFREEZE = FALSE;
Npc_RemoveInvItems(hero,itri_regeneratemana,1);
Npc_RemoveInvItems(hero,itri_regeneratehp,1);
CreateInvItems(hero,itri_regeneratemana,1);
CreateInvItems(hero,itri_regeneratehp,1);
Npc_StopAni(self,"T_MAGRUN_2_HEASHOOT");
Npc_ClearAIQueue(self);
AI_Standup(self);
}
else if((PROCESSREGENERATEMANAEND == TRUE) && (PROCESSREGENERATEHPEND == FALSE))
{
if(HEALRINGEQUIP == FALSE)
{
MANARINGEQUIP = FALSE;
PROCESSREGENERATE = FALSE;
PROCESSREGENERATEMANAEND = FALSE;
REGENERATEFREEZE = FALSE;
Npc_RemoveInvItems(hero,itri_regeneratemana,1);
CreateInvItems(hero,itri_regeneratemana,1);
Npc_StopAni(self,"T_MAGRUN_2_HEASHOOT");
Npc_ClearAIQueue(self);
AI_Standup(self);
};
}
else if((PROCESSREGENERATEMANAEND == FALSE) && (PROCESSREGENERATEHPEND == TRUE))
{
if(MANARINGEQUIP == FALSE)
{
HEALRINGEQUIP = FALSE;
PROCESSREGENERATE = FALSE;
PROCESSREGENERATEHPEND = FALSE;
REGENERATEFREEZE = FALSE;
Npc_RemoveInvItems(hero,itri_regeneratehp,1);
CreateInvItems(hero,itri_regeneratehp,1);
Npc_StopAni(self,"T_MAGRUN_2_HEASHOOT");
Npc_ClearAIQueue(self);
AI_Standup(self);
};
};
};
};
if((MANARINGEQUIP == FALSE) && (HEALRINGEQUIP == FALSE) && (REGENERATEFREEZE == FALSE))
{
if(DAMAGEFREEZE == TRUE)
{
if(Npc_GetStateTime(self) >SPL_TIME_FREEZE)
{
DAMAGEFREEZE = FALSE;
B_StopMagicFreeze();
return LOOP_END;
}
else
{
return LOOP_CONTINUE;
};
}
else
{
return LOOP_END;
};
};
return LOOP_CONTINUE;
}
else
{
if(Npc_GetStateTime(self) >SPL_TIME_FREEZE)
{
B_StopMagicFreeze();
return LOOP_END;
};
if(Npc_GetStateTime(self) != self.aivar[AIV_FreezeStateTime])
{
self.aivar[AIV_FreezeStateTime] = Npc_GetStateTime(self);
if(self.attribute[ATR_HITPOINTS] >(self.attribute[ATR_HITPOINTS] - SPL_FREEZE_DAMAGE))
{
if((self.guild == GIL_FIREGOLEM) || (self.aivar[AIV_MM_REAL_ID] == ID_FIREWARAN) || (self.aivar[AIV_MM_REAL_ID] == ID_DRAGON_FIRE))
{
B_MagicHurtNpc(other,self,SPL_FREEZE_DAMAGE * 2);
return LOOP_CONTINUE;
};
if((self.guild == GIL_ICEGOLEM) || (self.aivar[AIV_MM_REAL_ID] == ID_DRAGON_ICE))
{
B_MagicHurtNpc(other,self,SPL_FREEZE_DAMAGE / 2);
return LOOP_CONTINUE;
};
B_MagicHurtNpc(other,self,SPL_FREEZE_DAMAGE);
};
};
return LOOP_CONTINUE;
};
return LOOP_END;
};

func void ZS_MagicFreeze_End()
{
};
 
Последнее редактирование модератором:

DUSTinghoFFman

Участник форума
Регистрация
24 Май 2008
Сообщения
904
Благодарности
4
Баллы
185
2@Odin

Предлагаю другой вариант:

Самый простой:

Код:
instance ITRI_REGENERATE(C_Item)
{
name = NAME_Ring;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_RING;
value = 5000;
visual = "ItRi_Prot_Mage_02.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = equip_itri_regenerate;
on_unequip = unequip_itri_regenerate;
wear = WEAR_EFFECT;
effect ="SPELLFX_ITEMGLIMMER";
description ="Кольцо регенерации";
text[1] = "Восстановление маны и жизни 1 в сек.";
text[5] = NAME_Value;
count[5] = value;
inv_zbias = INVCAM_ENTF_RING_STANDARD;
inv_rotz = INVCAM_Z_RING_STANDARD;
inv_rotx = INVCAM_X_RING_STANDARD;
};

func void equip_itri_regenerate()
{
self.attribute[ATR_REGENERATEHP] = 1;
self.attribute[ATR_REGENERATEMANA] = 1;
};

func void unequip_itri_regenerate()
{
self.attribute[ATR_REGENERATEHP] = 0;
     self.attribute[ATR_REGENERATEMANA] = 0;
};

Или сложный, если не получится с предыдущим...

пишем где-нибудь переменную:

Код:
var int manaringequip;

Код:
instance ITRI_REGENERATE(C_Item)
{
name = NAME_Ring;
mainflag = ITEM_KAT_MAGIC;
flags = ITEM_RING;
value = 5000;
visual = "ItRi_Prot_Mage_02.3ds";
visual_skin = 0;
material = MAT_METAL;
on_equip = equip_itri_regenerate;
on_unequip = unequip_itri_regenerate;
wear = WEAR_EFFECT;
effect ="SPELLFX_ITEMGLIMMER";
description ="Кольцо регенерации";
text[1] = "Восстановление маны и жизни 1 в сек.";
text[5] = NAME_Value;
count[5] = value;
inv_zbias = INVCAM_ENTF_RING_STANDARD;
inv_rotz = INVCAM_Z_RING_STANDARD;
inv_rotx = INVCAM_X_RING_STANDARD;
};

func void equip_itri_regenerate()
{
Wld_InsertNpc(Helperbug,Npc_GetNearestWP(hero));
RINGEQUIP = TRUE;
};

func void unequip_itri_regenerate()
{
   RINGEQUIP = FALSE;
};

Инстанция мясного жука:

Код:
func void b_setvisuals_helperbug()
{
Mdl_SetVisual(self,"Meatbug.mds");
Mdl_SetVisualBody(self,"Mbg_Body",DEFAULT,DEFAULT,"",DEFAULT,DEFAULT,-1);
Mdl_SetModelScale(self,0.01,0.01,0.01);
};

instance Helperbug(MST_DEFAULT_HELPERBUG)
{
b_setvisuals_helperbug();
start_aistate = zs_mm_rtn_regen;
};

Восприятие жука:

Код:
func void perception_set_helper_rtn()
{
self.senses = 0;
self.senses_range = 0;
self.aivar[AIV_MM_FollowTime] = 0;
self.aivar[AIV_MM_FollowInWater] = FALSE;
Npc_SetPercTime(self,1);
Npc_PercEnable(self,PERC_ASSESSENEMY,B_MM_AssessEnemy);
Npc_PercEnable(self,PERC_ASSESSBODY,B_MM_AssessBody);
Npc_PercEnable(self,PERC_ASSESSMAGIC,B_AssessMagic);
};

AI состояние жука:

Код:
func void zs_mm_rtn_regen()
{
perception_set_helper_rtn();
self.aivar[AIV_EnemyOverride] = TRUE;
};

func int zs_mm_rtn_regen_loop()
{
  if((Npc_GetStateTime(self) == 1) && (RINGEQUIP == TRUE))
{
Npc_SetStateTime(self,0);
if(hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX])
{
hero.attribute[ATR_MANA] += 5;
};
           if(hero.attribute[ATR_HITPOINTS] < hero.attribute[ATR_HITPOINTS_MAX])
{
                 hero.attribute[ATR_HITPOINTS] += 5;
};
AI_Teleport(self,Npc_GetNearestWP(hero));
return LOOP_CONTINUE;
};
  if(RINGEQUIP == FALSE)
{
return LOOP_END;
};
return LOOP_CONTINUE;
};

func void zs_mm_rtn_regen_end()
{
self.flags = NPC_FLAG_GHOST;
Npc_ChangeAttribute(self,ATR_HITPOINTS,-self.attribute[ATR_HITPOINTS_MAX]);
};
сразу предупреждаю - если ГГ телепортируется, регенерация исчезнет...
надо искать способ решить проблему... сам сейчас ищу
 
Последнее редактирование модератором:

Odin

Участник форума
Регистрация
13 Июн 2009
Сообщения
7
Благодарности
0
Баллы
145
Предлагаю другой вариант:

Что я делаю не так как надо? Декомпилировал файл Gothic, дописал в IT_Ringe параметры кольца регенерации, компилировал, новыми файлами Gothic dat. и ou bin заменил оригинальные... в итоге кольцо кодом в Marvin не создается и другие измененные параметры не работают :( Что я упустил ? или просто не сумел понять принцып работы в GothicSourcer V3.14 ???
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.230
Благодарности
6.211
Баллы
1.565
Ну если в GS файлы создались, то проблема скорее всего в том как запускаешь игру и куда закинул новые файлы. Допустим что запускаешь ты игру из готикстартера, то возможно выбираешь какой-то мод. еще вариант елси ты запихиваешь(точнее пытаешься) в мод, то нужно не оригинальные файлы заменять, а именно те которые у тебя в моде, т.е. в (modname).mod
 

Odin

Участник форума
Регистрация
13 Июн 2009
Сообщения
7
Благодарности
0
Баллы
145
MEG@VOLT
Ну если в GS файлы создались, то

Вся соль в том что я устанавлевал Addon + patch v1.1 в режиме ЕХЕ, а не МОD. Файлы оригинальных скриптов должны были измениться или дополнится файлами модификации и патча. Но при поочередной декомпиляции всех Gothic dat ( их в файлах игры 3),ни в одной я не обнаружил новых скриптов, где бы находилось описание нового оружия, брони и т.д. А сама игра запускается ярлыком. Через готикстартер - только при установке в режиме MOD. Теперь даже не знаю в чем причина?
 

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
Odin
Если в устанавливал режиме EXE? то новые файлы надо искать в *.VDF ;)
 

Odin

Участник форума
Регистрация
13 Июн 2009
Сообщения
7
Благодарности
0
Баллы
145
Geor'G
Если в устанавливал режиме EXE? то

Первый раз открыл файлы через VDF, а второй раз ни один файл не открывает :( Думал, работа с скриптами намного проще, видно только не для меня :( Если бы нашелся знающий человек, объединил все самое лучшее из мелких модов в общий мод, или еще лучше - включил в патч v1.2 к Аддон "Возвращение"... это вышла бы самая замечательная игра. Но почему то забыли внести в Аддон с UNnamed mod :
- кольцо странника
- руну"массовый сон"- рецепт изготовления огненных стрел и т.д.
с первой готики некоторые руны и свитки...
По-доброму завидую талантливым модостроителям. Когда играю, сколько идей в голове что бы улучшить, изменить то или другое, что-то создать свое... но видно этот хлеб мне не по зубам
 
Последнее редактирование модератором:

DUSTinghoFFman

Участник форума
Регистрация
24 Май 2008
Сообщения
904
Благодарности
4
Баллы
185
Odin написал(а):
...но видно этот хлеб мне не по зубам

Зря вы так. Я скрипты три месяца изучал, прежде чем начал работать с минимальными изменениями. А с опытом стало легче работать, узнал новые фишки, смог создавать скрипты на порядок сложнее. Нужно только изучить хотя бы минимум теории, и как можно больше практики. Без нее никуда.

P.S. Рецепт изготовления огненных стрел есть в неофициальном патче, можно подробнее про руны и свитки из Г1? В личку, ибо оффтоп.
 
Последнее редактирование модератором:

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
932
Благодарности
130
Баллы
225
Народ а не подскажете где лежат меши монстров и брони, ковырялся долго, не смог найти ::)
 

GeorG

Участник форума
Регистрация
27 Авг 2008
Сообщения
3.447
Благодарности
11
Баллы
295
Feuermagier написал(а):
Народ а не подскажете где лежат меши монстров и брони, ковырялся долго, не смог найти ::)

ASC файлы брони в файле «Gothic II\_work\data\Anims\ HumanS.mds», а про монстриков не знаю, не занимался не когда ими… ::)

Добавил:

Гм… ну там же в папке Anims есть *.mds монстров, такие как Orc.mds, Waran.mds, Lurker.mds… в общем всё там ищи… ;)
 
Последнее редактирование модератором:

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
932
Благодарности
130
Баллы
225
Народ. помогите пожалуйста, я в панике: собрал меш локации, а когда компилирую его со снятой галочкой эдитмоде, чтоб в зен его сохранить, он компилируется как индур уровень (темно везде) хотя я нажимаю оутдур перед компиляцией. С галочкой эдитмоде все нормально работает, везде где надо расставил порталы и гхостоклюдеры
ЗЫ когда летаю по локации часями она как надо (оутдур), но не видно той части в которй темно :eek: ???
 

TemplaR

Участник форума
Регистрация
16 Ноя 2008
Сообщения
322
Благодарности
0
Баллы
175
А ты свет компильнул? ::)
 

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
932
Благодарности
130
Баллы
225
Ну конечно компильнул, не такой же я ламмер :)
 

TemplaR

Участник форума
Регистрация
16 Ноя 2008
Сообщения
322
Благодарности
0
Баллы
175
Не суть. После того как зен сохранишь, выйди из спейспера ,и открой тот зен. Всё норм должно быть, это баг спейса может быть.
 

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
932
Благодарности
130
Баллы
225
Народ, кто знает в чем может быть косяк - подскажите
 

[)r0n

Участник форума
Регистрация
2 Май 2009
Сообщения
43
Благодарности
0
Баллы
150
Проверь нормали у меша локации.
Выдели мешь своей локации в 3ds max. Потом, правая кнопка мышы ->Object Properties. Там поставь галочку Backface Cull.
Если какие-то полигоны на меше пропадут, значит у них инвертирована нормаль.
Чтобы инвертировать нормаль в обратку, в режиме редактирования полигонов ищи список Surface properties и там есть кнопка flip.
Выделяешь инвертированные полигоны и жмешь flip.

Если не поможет, или проблема не в этом, тогда Х.З.
 
Последнее редактирование модератором:
Сверху Снизу