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

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

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

Scarecrow

Участник форума
Регистрация
11 Авг 2014
Сообщения
162
Благодарности
85
Баллы
220
Подскажите пожалуйста, как создать новую руну телепортации?
Вроде делаю так, как стандартные, а пишет - неопределенная функция. Надо еще что-то добавить или что?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Scarecrow, код бы посмотреть
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Scarecrow, и ошибку и код руны
 

Test Level

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

Scarecrow

Участник форума
Регистрация
11 Авг 2014
Сообщения
162
Благодарности
85
Баллы
220
Ну, создаю заклинание - spell_logic_teleport6.

func int spell_logic_teleport6(var int manainvested)
{
printdebugnpc(PD_MAGIC,"Spell_Logic_Teleport6");
if(manainvested >= SPL_SENDCAST_TELEPORT)
{
AI_Teleport(self,"GOLEM");
AI_PlayAni(self,"T_HEASHOOT_2_STAND");
return SPL_SENDCAST;
};
return SPL_NEXTLEVEL;
};

Потом иду в spell_processmana и пишу
if(Npc_GetActiveSpell(self) == SPL_TELEPORT6)
{
return spell_logic_teleport6(manainvested);
};

а потом в spell_processmana_release и пишу
if(Npc_GetActiveSpell(self) == SPL_TELEPORT6)
{
return SPL_SENDSTOP;
};


Все это пишу после скриптов оригинальных рун, в magic_intern добавил - const int SPL_TELEPORT6 = 59;
Еще не понимаю, как приписать текст этой руне, когда гг ее использует, в text.d как понимаю, но куда именно - не знаю.
Соусер ругается на то, что в spell_processmana написано.

Может, есть еще какой гайд по вставке нового заклинания, помимо того, что в разделе скриптинга?
 
Последнее редактирование:

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Scarecrow, сам код руны в каком файле прописываешь? Или новый файл создал?
 

Scarecrow

Участник форума
Регистрация
11 Авг 2014
Сообщения
162
Благодарности
85
Баллы
220
MEG@VOLT, ну да в AI/magic создал новый файл - spell_logic_teleport6.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
MEG@VOLT, ну да в AI/magic создал новый файл - spell_logic_teleport6.
Ну вот и первая ошибка. Я так понимаю, ты новичек в этом - лучше в уже существующий файл с рунами пихай свою. Тогда ошибка пропадет.
А так посмотри на файл gothic.rsc вроде, точно не могу щас сказать, не у компа. Это тот файл, в котором все файлы прописаны. И посмотри последовательность каждого файла.
 

Scarecrow

Участник форума
Регистрация
11 Авг 2014
Сообщения
162
Благодарности
85
Баллы
220
MEG@VOLT, благодарю за подсказку. Ага, пока мало что понимаю. новенький я тут, правда) Тогда попробую так.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
printdebugnpc(PD_MAGIC,"Spell_Logic_Teleport6");
Для Г1 делаешь руну? Это тот момент, который неплохо бы указать сразу. По умолчанию здесь подразумевается, что речь идёт о платформе Г2.

const int SPL_TELEPORT6 = 59;
Используй одно из резервных значений. Например, попробуй прописать своё заклинание вместо const int SPL_NEW5 = 58;

Также в текстовом массиве TXT_SPELLS нужно прописать на соответствующем месте название заклинания, которое выводится на экран при его активации. В текстовом массиве spellFXInstanceNames пропиши название соответствующего заклинанию визуального эффекта. В текстовом массиве spellFXAniLetters пропиши код используемой для каста анимации.
 

Suleiman

Участник форума
Регистрация
23 Янв 2012
Сообщения
137
Благодарности
91
Баллы
190
Я занялся переводом Возвращения Ксереса, у меня есть исходники (только скрипты без миров) и возник вопрос как их собрать и что надо подменить, чтобы увидеть результаты перевода в игре?
В моде используется LeGo и Icarus и возможно это тоже требует учета каких-то нюансов.
Вначале я думал, что зашлю автору демку перевода получи бинарники и если со шрифтами, позициями слов все будет хорошо, то дальше дело техники. Потом оказалось, что будет гораздо больше моментов нуждающихся в перепроверке и такой способ не годится как постоянный. Автору я конечно написал, но он пока молчит, так что может здесь мне смогут помочь.
 

Lorddemonik

★★★★★
Редактор раздела
Регистрация
17 Дек 2011
Сообщения
1.113
Благодарности
581
Баллы
350
Я занялся переводом Возвращения Ксереса, у меня есть исходники (только скрипты без миров) и возник вопрос как их собрать и что надо подменить, чтобы увидеть результаты перевода в игре?
В моде используется LeGo и Icarus и возможно это тоже требует учета каких-то нюансов.
Вначале я думал, что зашлю автору демку перевода получи бинарники и если со шрифтами, позициями слов все будет хорошо, то дальше дело техники. Потом оказалось, что будет гораздо больше моментов нуждающихся в перепроверке и такой способ не годится как постоянный. Автору я конечно написал, но он пока молчит, так что может здесь мне смогут помочь.
Ничто не мешает тебе запустит собственный мир игры, желательно пустой. А там уже смотри название предметов и вызывай НПС чтобы проверить диалоги
То есть по факту, берешь .ini от другого мода, прописывает там локацию пустую и запускаешь игру с уже имеющимися скриптами
 

Suleiman

Участник форума
Регистрация
23 Янв 2012
Сообщения
137
Благодарности
91
Баллы
190
Ничто не мешает тебе запустит собственный мир игры, желательно пустой. А там уже смотри название предметов и вызывай НПС чтобы проверить диалоги
То есть по факту, берешь .ini от другого мода, прописывает там локацию пустую и запускаешь игру с уже имеющимися скриптами

Разобрался, оказывается скрипты в моде лежат в отдельном mod архиве, их вполне можно подменять перепаковывать и видеть результат в игре.
 

Suleiman

Участник форума
Регистрация
23 Янв 2012
Сообщения
137
Благодарности
91
Баллы
190
Еще один вопрос возник, мне нужно добавить шрифты другого цвета, которые идут с модом, но в которых нет кириллицы. Нашел программу Font2Targa для экспорта шрифтов, которая делает то что мне нужно, но где взять ttf шрифтов готики с кириллицей, гугление находит только латиницу.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.124
Благодарности
5.620
Баллы
910
Еще один вопрос возник, мне нужно добавить шрифты другого цвета, которые идут с модом, но в которых нет кириллицы. Нашел программу Font2Targa для экспорта шрифтов, которая делает то что мне нужно, но где взять ttf шрифтов готики с кириллицей, гугление находит только латиницу.
Возьми оригинальные шритфы из русской версии лежат в textures.vdf/textures_addon.vdf
Покрась их в нужные цвета с помощью фотошопа/gimp
исходники в расширении tga гладешь в _work\data\textures
textures.vdf/textures_addon.vdf отключаешь, дописываешь им в расширении .d
Заходишь в игру, шрифты должны будут скомпилироваться, скомпилированные варианты из _work\data\textures\_compiled засовываешь в мод
Не хочешь париться? Просто забери русские шрифты из textures.vdf/textures_addon.vdf и закинь их в мод
Шрифты начинаются с font_....
 

Suleiman

Участник форума
Регистрация
23 Янв 2012
Сообщения
137
Благодарности
91
Баллы
190
Заходишь в игру, шрифты должны будут скомпилироваться, скомпилированные варианты из _work\data\textures\_compiled засовываешь в мод

Ничего не скомпилировалось, делал на textures_addon.vdf аддоне, все текстуры аддона в том числе фоновый экран пропали хотя я все что распаковал положил в _work\data\textures, после запуска игры в папке compiled пусто. Может на это систем пак влиять?
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.124
Благодарности
5.620
Баллы
910
Ничего не скомпилировалось, делал на textures_addon.vdf аддоне, все текстуры аддона в том числе фоновый экран пропали хотя я все что распаковал положил в _work\data\textures, после запуска игры в папке compiled пусто. Может на это систем пак влиять?
После распаковки надо заблокировать оригинальный textures_addon.vdf. Если хоть где-то есть доступные текстуры в mod/vdf файлах компиляции новых не будет.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
В случае с Г2 сталкивался с тем, что движок не хотел компилировать текстуры карт, шрифтов и загрузочных экранов. У меня была версия без мод-стартера, возможно, это влияет. Компилировал текстуры Гоманом.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.124
Благодарности
5.620
Баллы
910
У цели заклинания макс. здоровье не меняет своего значения, хотя сила меняется исправно. Где-то есть косяк, о котором я не знаю видимо или хитрость.
Daedalus:
func void B_StopAltern()
{
    Npc_PercEnable(self,PERC_ASSESSMAGIC,B_AssessMagic);
    Npc_ClearAIQueue(self);
    AI_Standup(self);
    if(!Npc_IsPlayer(self))
    {
        if(self.guild < GIL_SEPERATOR_HUM)
        {
            B_AssessDamage();
        }
        else
        {
            Npc_SetTempAttitude(self,ATT_HOSTILE);
        };
    };
};

func void ZS_Altern()
{
    //Npc_ClearAIQueue(self);
    //B_ClearPerceptions(self);
    self.attribute[ATR_HITPOINTS_MAX] = (self.attribute[ATR_HITPOINTS_MAX] - (self.attribute[ATR_HITPOINTS_MAX] % 2)) / 2;
    if(self.attribute[ATR_HITPOINTS] > self.attribute[ATR_HITPOINTS_MAX])
    {
        self.attribute[ATR_HITPOINTS] = self.attribute[ATR_HITPOINTS_MAX];
    };
    self.attribute[ATR_STRENGTH] = (self.attribute[ATR_STRENGTH] - (self.attribute[ATR_STRENGTH] % 2)) / 2;
    self.aivar[AIV_ALTERN] = 1;
    AI_SetWalkMode(self,NPC_WALK);
};

func int ZS_Altern_Loop()
{
    if(self.aivar[AIV_ALTERN] == 1)
    {
        B_StopAltern();
        return LOOP_END;
    };
    return LOOP_CONTINUE;
};

func void ZS_Altern_END()
{
};
 
Сверху Снизу