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

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

    Ссылка на конкурсную тему - тык
    Ссылка на тему с работами участников- тык

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

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.201
Благодарности
6.172
Баллы
1.565
Да, надо бы, подскажи сразу по доспеху и морде.
Папка доспехов:
_work\data\Textures\NPCs\Armor
Папка морд:
_work\data\Textures\NPCs\Head
Надо же тип отдельный доспех создавать с этой текстурой?
Угу, но можешь конечно и к уже имеющейся прилепить, сохранить как новую и в скриптах создай еще одну инстанцию доспеха.
Если да, то как это сделать?
 

Desizend

Участник форума
Регистрация
29 Май 2023
Сообщения
13
Благодарности
7
Баллы
20
Угу, но можешь конечно и к уже имеющейся прилепить, сохранить как новую и в скриптах создай еще одну инстанцию доспеха
Гайд замдренный какой-то, у меня же цель попроще. Я так понял, я могу закинуть текстуру в папку, затем зайти в соурс и там скопировать скрипт модели брони и вставив его в самом низу, просто поменять название текстуры?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.201
Благодарности
6.172
Баллы
1.565
Гайд замдренный какой-то, у меня же цель попроще. Я так понял, я могу закинуть текстуру в папку, затем зайти в соурс и там скопировать скрипт модели брони и вставив его в самом низу, просто поменять название текстуры?
Ну попробуй, в принципе должно получиться.
Это как раз то, что я и говорил:
можешь конечно и к уже имеющейся прилепить, сохранить как новую и в скриптах создай еще одну инстанцию доспеха.
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.929
Благодарности
929
Баллы
275
а можно как то у еды отключить мульти слот?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.201
Благодарности
6.172
Баллы
1.565
а можно как то у еды отключить мульти слот?
ты шо?

1685434968986.png
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.929
Благодарности
929
Баллы
275
Daedalus:
////////////////////////////////////////////////////////////////////////////////
//
//    ITEM FLAGS
//

// categories (mainflag)
const int ITEM_KAT_NONE        = 1 <<  0;  // Sonstiges
const int ITEM_KAT_NF        = 1 <<  1;  // Nahkampfwaffen
const int ITEM_KAT_FF        = 1 <<  2;  // Fernkampfwaffen
const int ITEM_KAT_MUN        = 1 <<  3;  // Munition (MULTI)
const int ITEM_KAT_ARMOR    = 1 <<  4;  // Ruestungen
const int ITEM_KAT_FOOD        = 1 <<  5;  // Nahrungsmittel (MULTI)
const int ITEM_KAT_DOCS        = 1 <<  6;  // Dokumente
const int ITEM_KAT_POTIONS    = 1 <<  7;  // Traenke
const int ITEM_KAT_LIGHT    = 1 <<  8;  // Lichtquellen
const int ITEM_KAT_RUNE        = 1 <<  9;  // Runen/Scrolls
const int ITEM_KAT_MAGIC    = 1 << 31;  // Ringe/Amulette/Guertel
const int ITEM_KAT_KEYS        = ITEM_KAT_NONE;
тут дело в флаге. Оружие, еда и боеприпасы дают "вшитую" MULTI. при этом для оружие есть ещё ITEM_NSPLIT, который "блокирует" MULTI.

Код:
            pItemRem->ClearFlag(ITM_FLAG_MULTI);
            pItemRem->SetFlag(ITM_FLAG_NSPLIT);     // подходит только для оружия
таким образом у меня получается это сделать со всеми категориями кроме ITEM_KAT_MUN и ITEM_KAT_FOOD
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.929
Благодарности
929
Баллы
275
поделитесь пожалуйста информацией о настройках для категории еды. а то я перекинул еду в KAT_NONE и у меня еда в инвентаре стала некрасивой :)

Daedalus:
func void inv_rot_KAT_FOOD()
{
    item.inv_zbias    = *;      // Масштабирование объекта.
    item.inv_rotx    = -*;          // Вращение объекта по оси X.
    item.inv_roty    = *;            // Вращение объекта по оси Y.
    item.inv_rotz    = -*;          // Вращение объекта по оси Z.
};
 

XenonR

Участник форума
Регистрация
4 Дек 2020
Сообщения
620
Благодарности
79
Баллы
110
Наверное, не совсем верно тут спрашивать, однако. Если кто знает, почему в блендер я кидаю предмет, например стол, а он без текстуры?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.201
Благодарности
6.172
Баллы
1.565
XenonR, Да, немного не в тему вопрос, т.к. по этому редактору уроков у нас не водится))
Вообще нужно где-то в настройках, этому редактору указать, что есть папка с текстурами, и ее нужно смотреть от сюда.
Как именно в блендере это выглядит - я не знаю, но в максе оно выглядит вот так:
1686981046498.png

Не думаю, что в блендере очень отличается эта настройка...
 

XenonR

Участник форума
Регистрация
4 Дек 2020
Сообщения
620
Благодарности
79
Баллы
110
Есть на сайте вопросы по моддингу?
И кто какие 3д прога использует? А то начал в блендере и что-то туго идет, текстуру смог заменить, а вот с импортом моделей и их текстур плохо всё...
Кстати, если нет такой темы, может кто создать или мне самому её создать?
 

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.846
Благодарности
1.209
Баллы
380
Есть на сайте вопросы по моддингу?
Собственно, ты как раз в теме, где вопросы по модострою задают ;)
И кто какие 3д прога использует?
Я преимущественно в Gmax сижу. Работа в нем такая же, как и в 3ds max
А то начал в блендере и что-то туго идет, текстуру смог заменить, а вот с импортом моделей и их текстур плохо всё...
Посмотри на этом канале. Там по блендеру есть видеоматериалы
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.929
Благодарности
929
Баллы
275
это у меня какой то глюк или движок Готики 2 НВ не даёт кастовать заклинание если у героя 1 мана?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.201
Благодарности
6.172
Баллы
1.565
XenonR, Думаю немного поможет: 3D
MW 7, а че ему кастовать то? если все заклы с минималкой на 5...
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.929
Благодарности
929
Баллы
275
@MW 7, а че ему кастовать то? если все заклы с минималкой на 5...
ну во первых у инвестиционного заклинания процесс прервётся автоматически когда будет 1 мана. то есть у героя к примеру 40 маны, и надо инвестировать 40 маны, мана отнимается, добегает до 1 и конец. а во вторых может быть я мод хочу сделать где свет требует 1 ману :)
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.201
Благодарности
6.172
Баллы
1.565
MW 7, Потыкался-потыкался, в общем держи:
Daedalus:
func int Spell_Logic_Light(var int manaInvested)
{
    if(Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= 1))
    {
        return SPL_SENDCAST;
    }
    else if(self.attribute[ATR_MANA] >= SPL_Cost_LIGHT)
    {
        return SPL_SENDCAST;
    }
    else
    {
        return SPL_SENDSTOP;
    };
};

func void Spell_Cast_Light()
{
    if(Npc_GetActiveSpellIsScroll(self))
    {
        self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - 1;
    }
    else
    {
        self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_LIGHT;
    };
    self.aivar[AIV_SelectSpell] += 1;
};
instance ItSc_L1(C_Item)
{
    name = NAME_Spruchrolle;
    mainflag = ITEM_KAT_RUNE;
    flags = ITEM_MULTI;
    value = Value_Sc_Light;
    visual = "ItSc_Light.3DS";
    material = MAT_LEATHER;
    spell = SPL_Light;
    cond_atr[2] = ATR_MANA_MAX;
    cond_value[2] = 1;
    wear = WEAR_EFFECT;
    effect = "SPELLFX_WEAKGLIMMER";
    description = NAME_SPL_LIGHT;
    text[0] = NAME_MageScroll;
    text[1] = NAME_Mana_needed;
    count[1] = 1;
    text[2] = NAME_Duration;
    count[2] = SPL_Duration_LIGHT;
    text[5] = NAME_Value;
    count[5] = value;
};
instance DIA_Sentenza_scrol(C_Info)
{
    npc = SLD_814_Sentenza;
    nr = 997;
    condition = DIA_Sentenza_scrol_Condition;
    information = DIA_Sentenza_scrol_Info;
    permanent = TRUE;
    description = "Дай свиток";
};


func int DIA_Sentenza_scrol_Condition()
{
    return TRUE;
};

func void DIA_Sentenza_scrol_Info()
{
    B_GiveInvItems(self,other,ItSc_L1,1);
    other.attribute[ATR_MANA] = 1;
    AI_StopProcessInfos(self);
};

Все завязано на константе SPL_Cost_Scroll, которая по дефолту ровна 5
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.929
Благодарности
929
Баллы
275
@MW 7, Потыкался-потыкался, в общем держи:
я про движок спрашиваю не про то как написать спелл логик, а про движок.

берём спелл он требует 1 ману и начинаем кастовать.
  • г1 - герой с 1 маной кастует
  • г2 НВ - герой с 1 маной не кастует
тоже самое с трансформацией и телепортацией при инвестирование маны, сейчас я этот вопрос решаю на скриптах с помощью костылей.
Код:
    if (self.attribute[ATR_MANA] == 2)    { self.attribute[ATR_MANA] += 1; };

***

в связи с этим я и задал свой вопрос
это у меня какой то глюк или движок Готики 2 НВ не даёт кастовать заклинание если у героя 1 мана?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.201
Благодарности
6.172
Баллы
1.565

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.855
Благодарности
5.288
Баллы
910
Ну вот то, что сверху - Г2 НВ - ГГ с 1 маной кастует... Специально в диалоге сделал, чтобы у ГГ была всего 1 мана...
Это просто каст, а не инверсия.

В Г2 разрабы вроде специально убрали почти весь инверс, слишком медленно с геймплейной точки.
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
1.929
Благодарности
929
Баллы
275
В Г2 разрабы вроде специально убрали почти весь инверс, слишком медленно с геймплейной точки.
не слишком медленно, а не захотели возиться и упростили систему. как и прочие моменты в Г2.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.201
Благодарности
6.172
Баллы
1.565
Ну я хз,
вот трансформ в овцу, с 1 маной:
Daedalus:
func int Spell_Logic_TrfSheep(var int manaInvested)
{
    if((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= 1)) || (self.attribute[ATR_MANA] >= 1))
    {
        self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - 1;
        Npc_SetActiveSpellInfo(self,Sheep);
        return SPL_SENDCAST;
    };
    return SPL_SENDSTOP;
};
instance ItSc_L1(C_Item)
{
    name = NAME_Spruchrolle;
    mainflag = ITEM_KAT_RUNE;
    flags = ITEM_MULTI;
    value = Value_Sc_TrfSheep;
    visual = "ItSc_TrfSheep.3DS";
    material = MAT_LEATHER;
    spell = SPL_TrfSheep;
    cond_atr[2] = ATR_MANA_MAX;
    cond_value[2] = 1;
    wear = WEAR_EFFECT;
    effect = "SPELLFX_WEAKGLIMMER";
    description = NAME_SPL_TrfSheep;
    text[0] = NAME_MageScroll;
    text[1] = NAME_Mana_needed;
    count[1] = 1;
    text[5] = NAME_Value;
    count[5] = value;
};
instance DIA_Sentenza_scrol(C_Info)
{
    npc = SLD_814_Sentenza;
    nr = 997;
    condition = DIA_Sentenza_scrol_Condition;
    information = DIA_Sentenza_scrol_Info;
    permanent = TRUE;
    description = "Дай свиток";
};


func int DIA_Sentenza_scrol_Condition()
{
    return TRUE;
};

func void DIA_Sentenza_scrol_Info()
{
    B_GiveInvItems(self,other,ItSc_L1,1);
    other.attribute[ATR_MANA] = 1;
    AI_StopProcessInfos(self);
};

 
Сверху Снизу