Молоток

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Молоток » Игры изнутри » FAQ по Корсарам


FAQ по Корсарам

Сообщений 1 страница 10 из 56

1

FAQ по созданию модификаций для игр серии «Корсары»

https://i.pixxxels.cc/yd4kB25j/bae27e5525ba.png

Действия связанные с НПС

▶ Как поместить/удалить НПС в/из локации
▶ Как дать/лишить бессмертия НПС
▶ Как посадить НПС за стол в таверне посредством LAi_ActorSetSitMode
▶ Как посадить НПС за стол в таверне через файл StoryCharacters.с
▶ Как заставить НПС отправиться из одного локатора в другой, а потом исчезнуть
▶ Как объединить нескольких НПС в группу
▶ Как переместить НПС в локацию к главному герою без указания локации
▶ Как сделать чтобы несколько НПС напали на главного героя
▶ Как сделать чтобы один НПС напал на главного героя
▶ Как сделать чтобы группа НПС напала на главного героя у которого есть своя группа НПС
▶ Как сделать чтобы НПС бегал от главного героя
▶ Как положить НПС на землю или пол
▶ Как интегрировать в игру свой файл описания НПС
▶ Как добавить своего НПС в игру
▶ Как зафиксировать имя и фамилию, при создании своего НПС
▶ Как добавить звуковое приветствие вашему НПС

0

2

Как лишить главного героя возможности владеть саблей, пистолетом и подзорной трубой навсегда

Если возникает необходимость лишить главного героя сабли, пистолета и подзорной трубы навсегда то в casе квеста вставляем этот код:

Код:
RemoveCharacterEquip(pchar, BLADE_ITEM_TYPE);RemoveCharacterEquip(pchar, GUN_ITEM_TYPE);
RemoveCharacterEquip(pchar, SPYGLASS_ITEM_TYPE);
EnableEquip(pchar, BLADE_ITEM_TYPE, false);
EnableEquip(pchar, GUN_ITEM_TYPE, false);
EnableEquip(pchar, SPYGLASS_ITEM_TYPE, false);
TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, BLADE_ITEM_TYPE));
TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, GUN_ITEM_TYPE));
TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, SPYGLASS_ITEM_TYPE));

При начале исполнения case квеста в котором есть этот код у главного героя пропадут сабля, пистолет и подзорная труба.

Если надо лишить главного героя только сабли то вставляем в case квеста такой код:

Код:
RemoveCharacterEquip(pchar, BLADE_ITEM_TYPE);
EnableEquip(pchar, BLADE_ITEM_TYPE, false);
TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, BLADE_ITEM_TYPE));

Если надо лишить главного героя только пистолета то вставляем в case квеста такой код:

Код:
RemoveCharacterEquip(pchar, GUN_ITEM_TYPE);
EnableEquip(pchar, GUN_ITEM_TYPE, false);
TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, GUN_ITEM_TYPE));

Если надо лишить главного героя только подзорной трубы то вставляем в case квеста такой код:

Код:
RemoveCharacterEquip(pchar, SPYGLASS_ITEM_TYPE);
EnableEquip(pchar, SPYGLASS_ITEM_TYPE, false);
TakeItemFromCharacter(PChar, FindCharacterItemByGroup(pchar, SPYGLASS_ITEM_TYPE));

0

3

Как вставить свою картинку–заставку во время прохождения квеста

Можно украсить прохождение квеста картинкой–заставкой которая будет появляться при переходе из одного case квеста в другой. Для вставки картинки пишем такой код

Код:
StartPictureAsVideo("loading\название файла с картинкой");

Например, для вызова заставки при переходе в банк код пишется так

Код:
StartPictureAsVideo("loading\Bank_512.tga");

А для вызова заставки при переходе в церковь пишем так

Код:
StartPictureAsVideo("loading\Church_512.tga");

Хотя в коде картинка имеет расширение .tga , в папке файл имеет расширение .tga.tx. Перевести свою картинку с расширением .tga в текстуру с расширением .tga.tx можно с помощью программы–конвертера ConvertorTX

Файлы с картинками для загрузки на экран хранятся в папке loading
Путь к папке в игре КВС: RESOURCE\TEXTURES\loading
Путь к папке в игре КВЛ:
RESOURCE\TEXTURES\Loading\inside
Соответственно, и названия файлов разные. Для картинки–заставки при входе в банк в игре КВС файл имеет такое имя Bank_512.tga.tx, а в игре КВЛ такое bank.tga.tx .

0

4

Как добавить в квест видео

Если возникла необходимость добавить видео в квест, то можно это сделать таким кодом

Код:
sVideoFile = "название файла";

Например, у вас есть видео файл VideoCaseA.wmv и вы хотите вставить его в игру, в одну из веток квеста. В нужном месте квеста пишете этот код

Код:
sVideoFile = "VideoCaseA";

Все видео файлы игры хранятся в папке RESOURCE\VIDEOS

Все видео файлы которые вы хотите использовать в игре должны иметь расширения .wmv, например VideoCaseA.wmv.

Оптимальное разрешение для видео 720х576, но если ваше видео 640х480, сойдет и такое.

0

5

Как событиям в квесте придать вид широкоформатного видео

Если вы желаете украсить выполнения какого-либо действия в квесте, например, диалог между главным героем и НПС, придав ему вид широкоформатного видео, то делается это с помощью кода

Код:
StartQuestMovie(true, true, true);
EndQuestMovie();

Обратите внимание, что начинать выполнения надо в одном case квеста, а заканчивать в следующем case. Выглядеть это будет так

Код:
case "start_movie":
StartQuestMovie(true, true, true);
break;    
  
case "end_movie":
EndQuestMovie();
break;

0

6

Как вставить свое видео как заставку к игре

Находим в папке PROGRAM файл seadogs.c. Ищем в нем такие строки.

Код:
void Main_LogoVideo()
{
    
    int i = sti(InterfaceStates.videoIdx);
    switch(i)
    {
  case 0:
   {
    InterfaceStates.videoIdx = 1;
    StartPostVideo("PlaylogicLogo",1);
    return;
   }
  break;

  case 1:
   {
    InterfaceStates.videoIdx = 2;
    StartPostVideo("1CLogo",1);
    return;
   }
  break;

  case 2:
   {
    InterfaceStates.videoIdx = 4;
    StartPostVideo("AkellaLogo",1);
    return;
   }
  break;
    }

Мы видим последовательность вывода видео файлов на экран при загрузке игры. Вначале запускается файл PlaylogicLogo из case 0, после файл 1CLogo из case 1, и последним запускается файл AkellaLogo из case 2.

Чтобы вставить свое видео замените название файла на свое в выражении

Код:
StartPostVideo("название файла",1);

Например, если у вас есть видео файл Zastavka.wmv и вы хотите установить его как видео заставку к игре, и файл всего один, то меняем название в case 0, в коде

Код:
StartPostVideo("PlaylogicLogo",1); 

на название своего файла. А case 1 и case 2 стираем, так как они нам не нужны. Запись в файле должна иметь такой вид

Код:
void Main_LogoVideo()
{
    
    int i = sti(InterfaceStates.videoIdx);
    switch(i)
    {
  case 0:
   {
    InterfaceStates.videoIdx = 1;
    StartPostVideo("Zastavka",1);
    return;
   }
  break;
    }

Все видео файлы игры хранятся в папке RESOURCE\VIDEOS

Все видео файлы которые вы хотите использовать в игре должны иметь расширения .wmv, например VideoCaseA.wmv.

Оптимальное разрешение для видео 720х576, но если ваше видео 640х480, сойдет и такое.

Стоит рассмотреть и другой вариант. Как добавление своего видео файла в качестве заставки реализовали создатели игры КВС. Вот их решение

Код:
void Main_LogoVideo()
{
    int i = sti(InterfaceStates.videoIdx);
    switch(i)
    {
  case 0:
   {
    InterfaceStates.videoIdx = 1;
    //StartPostVideo("PlaylogicLogo",1);
    StartPostVideo("error",1);
    return;
   }
  break;

  case 1:
   {
    InterfaceStates.videoIdx = 2;
    //StartPostVideo("1CLogo",1);
    StartPostVideo("error",1);
    return;
   }
  break;

  case 2:
   {
    InterfaceStates.videoIdx = 4;
    StartPostVideo("WindFreedom",1);
    return;
   }
  break;
    }

Как видите, они отключили запуск видео из case 0 и case 1, а свое вставили в case 2.

0

7

Как добавить запись в судовой журнал

Чтобы добавить запись в суровой журнал, вначале, открываем файл quests_texts.txt который находится в папке RESOURCE\INI\texts\russian\questbook и делаем там записи которые после будут отображаться в судовом журнале при вызове его из интерфейса игры

Код:
#QUEST    First quest  //обязательно на английском
Заголовок квеста
#TEXT     1
Первая запись в судовой журнал
#TEXT     2
Вторая запись в судовой журнал
#TEXT     3
Третья запись в судовой журнал

Чтобы интегрировать ваши записи сделанные в файле quests_texts.txt в игру в case квеста пишем

★ добавляет заголовок в судовой журнал

Код:
SetQuestHeader("First quest"); 

★ добавляет первую запись

Код:
AddQuestRecord("First quest", "1");  

★ добавляет вторую запись

Код:
AddQuestRecord("First quest", "2");  

★ добавляет  третью запись

Код:
AddQuestRecord("First quest", "3");  

★ закрывает судовой журнал

Код:
CloseQuestHeader("First quest");  

0

8

Как добавить звук при добавлении записи в судовой журнал

При добавлении записи в суровой журнал, вы также можете добавить и звуковое сопровождение, чтобы игрок знал, что в суровой журнал добавлена запись. Чтобы добиться этого, добавляете в case квеста после кода записи в суровой журнал следующий код

Код:
PlayStereoSound("notebook");

Выглядеть в case квеста это будет так

Код:
SetQuestHeader("First quest"); AddQuestRecord("First quest", "1");
PlayStereoSound("notebook");

Также вы можете добавить всплывающее надпись которая будет появляться на экране. Тогда это будет писаться так

Код:
SetQuestHeader("First quest"); AddQuestRecord("First quest", "1");
PlayStereoSound("notebook");
Log_SetStringToLog("добавлена запись в СЖ");

0

9

Как поместить/удалить НПС в/из локации

Если у вас есть НПС и вам необходимо поместить/удалить его в/из нужную вам локацию, вы можете использовать такой код

★ поместить НПС в локацию

Код:
ChangeCharacterAddressGroup(CharacterFromID("ID НПС"), "локация", "группа локаторов", "локатор"); 

★ удалить НПС из локации

Код:
ChangeCharacterAddressGroup(CharacterFromID("ID НПС"), "None", "", "");  

Например, у вас есть НПС с ID Commendant и вам нужно чтобы он стоял за воротами города Гваделупа, пишем такой код

Код:
ChangeCharacterAddressGroup(CharacterFromID("Commendant"),"Exit_Guadeloupe", "goto", "goto17");

Если вы хотите удалить своего НПС из локации или из игры, то пишете такой код

Код:
ChangeCharacterAddressGroup(CharacterFromID("Commendant"), "None", "", "");

0

10

Как дать/лишить бессмертия НПС

Вам необходимо дать/лишить бессмертия НПС. Для этого пишем такой код

★ дать бессмертие НПС

Код:
LAi_SetImmortal(CharacterFromID("ID НПС"), true);  

★ лишить НПС бессмертия

Код:
LAi_SetImmortal(CharacterFromID("ID НПС"), false);  

Допустим, что у вас есть НПС с ID Pirate и вы хотите сделать его бессмертным, тогда пишем так

Код:
LAi_SetImmortal(CharacterFromID("Pirate"), true);

Если вы хотите лишить вашего НПС бессмертия, тогда пишем так

Код:
LAi_SetImmortal(CharacterFromID("Pirate"), false);

0


Вы здесь » Молоток » Игры изнутри » FAQ по Корсарам