Молоток

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

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


Вы здесь » Молоток » Игры изнутри » 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 по Корсарам