Молоток

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

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


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


FAQ по Корсарам

Сообщений 11 страница 20 из 56

1

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

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

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

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

0

11

Как посадить НПС за стол в таверне посредством LAi_ActorSetSitMode

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

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

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

Допустим у вас есть НПС с ID Pirate и вы хотите посадить его за стол в таверне, в Гваделупе. Вначале переносим НПС в таверну

Код:
ChangeCharacterAddressGroup(CharacterFromID("Pirate"),"Guadeloupe_tavern", "sit", "sit5");

Присваиваем НПС тип «актер»

Код:
LAi_SetActorType(CharacterFromID("Pirate"));

Затем устанавливаем «актеру» образ поведения – сидеть

Код:
LAi_ActorSetSitMode(characterFromID("Pirate"));

Таким образом можно посадить НПС и на лавку в церкви или за стол губернатора.

0

12

Как посадить НПС за стол в таверне через файл StoryCharacters.с

Этот способ применим если ваш НПС будет находится в таверне постоянно и вы не будете дергать его из локации в локацию. Например, как губернатор, тот постоянно сидит за столом.

Допустим у вас есть НПС, мужчина, пират, по имени Джон Браун, с ID Pirate , и вам нужно, чтобы он постоянно сидел в таверне, на острове Исла Мона. Открываем файл StoryCharacters.с в папке PROGRAM\characters\init и описываем там характеристики вашего НПС

Код:
makeref(ch,Characters[n]);
ch.id = "Pirate";
ch.name = "Джон";
ch.lastname = "Браун";
ch.model = "pirate_1";
ch.location = "IslaMona_tavern"  //локация, таверна на Исла Моне
ch.location.group = "sit";  //группа локаторов
ch.location.locator = "sit4";  //локатор
ch.Dialog.Filename = "";
ch.sex = "man";
LAi_SetImmortal(ch, true)
Lai_SetSitType(ch);  //установить тип - сидит
n = n + 1;

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

Код:
ChangeCharacterAddress(characterFromID("Pirate"), "None", "");

0

13

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

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

Код:
EnableEquip(pchar, SPYGLASS_ITEM_TYPE, true);
EnableEquip(pchar, BLADE_ITEM_TYPE, true);
EnableEquip(pchar, GUN_ITEM_TYPE, true);

EnableEquip(pchar, SPYGLASS_ITEM_TYPE, true); -- Дает возможность главному герою иметь подзорную трубу

EnableEquip(pchar, BLADE_ITEM_TYPE, true); -- Дает возможность главному герою иметь саблю

EnableEquip(pchar, GUN_ITEM_TYPE, true); -- Дает возможность главному герою иметь пистолет

0

14

Как перенести главного героя из одной локации в другую

Если возникла необходимость перенести главного героя из одной локации в другую, то можно воспользоваться таким кодом

Код:
DoQuestReloadToLocation("локация", "группа локаторов", "локатор", "case квеста который должен быть запущен");

Например, по развитию сюжета вашего квеста вам надо перенести главного героя в комнату, в таверне, в Гваделупе. Допустим, там должна произойти встреча. Пишем так

Код:
DoQuestReloadToLocation("Guadeloupe_tavern_upstairs", "goto", "goto1", "meeting_1");

После выполнения этого кода запуститься case "meeting_1"

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

Код:
case "meeting_0":
DoQuestReloadToLocation("Guadeloupe_tavern_upstairs", "goto", "goto1", "meeting_1");
break;

case "meeting_1":
// 
break;

0

15

Как заставить НПС отправиться из одного локатора в другой, а потом исчезнуть

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

Код:
LAi_ActorRunToLocation(CharacterFromID("ID НПС"), "группа локаторов", "локатор - куда бежит", "none - исчезновение", "группа локаторов", "локатор - откуда бежит", "", 10.0);

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

В case "run_1" квеста ставим НПС в городе Невис

Код:
case "run_1":
ChangeCharacterAddressGroup(CharacterFromID("Pirate"), "Nevis_town", "goto", "goto1");
break;
/
Код:
В следующем case "run_2" квеста устанавливаем НПС по типу как «актер». Далее пишем код LAi_ActorRunToLocation после выполнения которого НПС бежит к двери таверны и добежав до нее исчезает.	
Код:
case "run_2":
LAi_SetActorType(CharacterFromID("Pirate"));
        LAi_ActorRunToLocation(CharacterFromID("Pirate"), "reload", "reload4", "none", "goto", "goto1", "", 10.0);
break;

0

16

Как сделать эффект затемнения экрана при переходе из одного case квеста в другой

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

Код:
LAi_Fade("название квеста", "");

Когда этот код будет выполнен, экран станет черным, а потом появится изображение уже при выполнении указанного case квеста

Например, после выполнения case quest_1 квеста, должен погаснуть экран, а потом сразу запуститься case quest_2. Пишем это так

Код:
case "quest_1":
//
LAi_Fade("quest_2", "")
break;

case "quest_2":
//
break;

0

17

Как запустить следующий case квеста через определенное время

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

Код:
DoQuestCheckDelay("название case квеста", время в секундах);

Например, вы хотите чтобы case "story" квеста был выполнен с задержкой в пять секунд. Пишем этот код так

Код:
DoQuestCheckDelay("story", 5.0);

0

18

Как объединить нескольких НПС в группу

Если вам нужно чтобы несколько НПС напали на главного героя, проще объединить их в группу, чтобы не писать коды боя для каждого из НПС в отдельности. Чтобы добавить НПС в группу используем код

Код:
LAi_group_MoveCharacter(CharacterFromID("ID НПС"), "название группы");

Допустим, у вас есть три НПС с ID PirateA, PirateB, PirateC соответственно. И вы хотите объединить их в группу PIRATES_KILL. Пишем это так

Код:
LAi_group_MoveCharacter(CharacterFromID("PirateA"), "PIRATES_KILL");
  LAi_group_MoveCharacter(CharacterFromID("PirateB"), "PIRATES_KILL");
  LAi_group_MoveCharacter(CharacterFromID("PirateC"), "PIRATES_KILL");

0

19

Как переместить НПС в локацию к главному герою без указания локации

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

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

Например, ваш герой находится в городе Гваделупа и вы хотите перенести ваш НПС с ID Pirate туда же. Пишите такой код.

Код:
ChangeCharacterAddressGroup(CharacterFromID("Pirate"), PChar.location, "goto", "goto14");

Ваш НПС окажется в Гваделупе рядом с таверной.

0

20

Как сделать чтобы несколько НПС напали на главного героя

Например, вам понадобилось чтобы несколько НПС напали на главного героя. У вас есть три НПС с ID PirateA, PirateB, PirateC соответственно и они находятся в одной локации с главным героем. Чтобы они напали на него сделаем так

1. Установим каждому НПС тип «воин»

Код:
LAi_SetWarriorType(CharacterFromID("PirateA"));
LAi_SetWarriorType(CharacterFromID("PirateB"));
LAi_SetWarriorType(CharacterFromID("PirateC"));

2. Объединим всех НПС в одну группу, например RAZBOY

Код:
LAi_group_MoveCharacter(CharacterFromID("PirateA"), "RAZBOY");
LAi_group_MoveCharacter(CharacterFromID("PirateB"), "RAZBOY");
LAi_group_MoveCharacter(CharacterFromID("PirateC"), "RAZBOY");

3. Установим отношение между группой НПС и главным героем. В нашем случае отношения враждебные

Код:
LAi_group_SetRelation("RAZBOY", LAI_GROUP_PLAYER, LAI_GROUP_ENEMY);

4. Укажем что группа НПС действительно нападает на главного героя

Код:
LAi_group_FightGroups("RAZBOY", LAI_GROUP_PLAYER, true);

0


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