Молоток

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

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


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