FG
Издание о Fable

Создание пьедесталов опыта
Оригинал: Keshire. Перевод и редактирование: Torionel. Полезные идеи и правки: Андрей Одаренко.

Пьедестал опыта - это небольшое круглое сооружение, позволяющее персонажу Fable: The Lost Chapters прокачивать навыки за накопленный опыт. В игре такой пьедестал есть только в Гильдии Героев. Изложенный в руководстве способ позволит вам размещать пьедесталы опыта, вызывающие меню прокачки, где угодно.

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

Маркер

NewThing Marker;
Player -1;
UID 18446741874686296966;
DefinitionType "HERO_CENTRE_DOOR_MARKER";
CreateTC "CTCOwnedEntity";
ScriptName NULL;
ScriptData "NULL";
ThingGamePersistent FALSE;
ThingLevelPersistent FALSE;
StartCTCPhysicsStandard;
PositionX 17.222660;
PositionY 4.732910;
PositionZ 40.000000;
RHSetForwardX -0.999893;
RHSetForwardY 0.014616;
RHSetForwardZ 0.000000;
RHSetUpX 0.000000;
RHSetUpY 0.000000;
RHSetUpZ 1.000000;
EndCTCPhysicsStandard;
StartCTCEditor;
EndCTCEditor;
StartCTCOwnedEntity;
SwitchableNavigationTCAdded FALSE;
VersionNumber 1;
OwnerUID 18446741874686296065;
EndCTCOwnedEntity;
StartCTCHeroCentreDoorMarker;
Radius 1.00;
DoorType2 1;
EndCTCHeroCentreDoorMarker;
Health 1.0;
EndThing;

Графический эффект

NewThing Marker;
Player 4;
UID 18446741874686310261;
DefinitionType "MARKER_LIGHT_INTERNAL_CHANNEL";
CreateTC "CTCOwnedEntity";
ScriptName NULL;
ScriptData "NULL";
ThingGamePersistent FALSE;
ThingLevelPersistent FALSE;
StartCTCPhysicsStandard;
PositionX 17.348140;
PositionY 4.638672;
PositionZ 40.000000;
RHSetForwardX -0.999993;
RHSetForwardY 0.003645;
RHSetForwardZ 0.000000;
RHSetUpX 0.000000;
RHSetUpY 0.000000;
RHSetUpZ 1.000000;
EndCTCPhysicsStandard;
StartCTCEditor;
EndCTCEditor;
StartCTCLight;
Active TRUE;
Overridden TRUE;
Colour CRGBColour(0,100,20,255);
InnerRadius 3.0;
OuterRadius 5.0;
Flicker 0.0;
Inverted FALSE;
EndCTCLight;
StartCTCOwnedEntity;
SwitchableNavigationTCAdded FALSE;
VersionNumber 1;
OwnerUID 18446741874686296317;
EndCTCOwnedEntity;
Health 1.0;
EndThing;

Собственно пьедестал (из fmp-файла от Keshire)

Перед спауном самой постройки из камня необходимо скачать и установить данный файл. Пьедестал из файла спаунится как объект BUILDING_EXP_DUMMY и несколько отличается от оригинального (в отличие от "родного" игрового OBJECT_GUILD_PEDESTAL_EXPERIENCE_01, который стоит в Гильдии Героев).

NewThing Building;
Player 4;
UID 18446741874686296065;
DefinitionType "BUILDING_EXP_DUMMY";
ScriptName GrannysHouse;
ScriptData "NULL";
ThingGamePersistent FALSE;
ThingLevelPersistent FALSE;
StartCTCPhysicsStandard;
PositionX 17.300780;
PositionY 4.492676;
PositionZ 40.000000;
RHSetForwardX -0.999992;
RHSetForwardY 0.003929;
RHSetForwardZ 0.000000;
RHSetUpX 0.000000;
RHSetUpY 0.000000;
RHSetUpZ 1.000000;
EndCTCPhysicsStandard;
StartCTCEditor;
EndCTCEditor;
StartCTCVillageMember;
VillageUID 0;
EndCTCVillageMember;
StartCTCBuyableHouse;
WifeLivingHere 0;
OwnedByPlayer FALSE;
IsScripted FALSE;
Rented FALSE;
DayNextRentIsDue 2147483647;
CurrentDressLevel 0;
VirtualMoneyBags 0;
EndCTCBuyableHouse;
Health 15000.0;
EndThing;

Радиус действия пьедестала опыта

(прим. глав. ред. - слово Андрею Одаренко)

Для пьедесталов опыта мы можем назначить радиус действия (радиус триггера, который будет нас перенаправлять в меню улучшений характеристик героя), чтобы мы могли визуально оценить его и выбрать подходящий размер. Это будет работать примерно так же, как и вид радиуса другого известного маркера - REGION_EXIT_POINT (телепортов, а именно тех, что используются для перемещения из локации в локацию посредством прохождения через ворота).

По умолчанию CBox не будет показывать маркер HERO_CENTRE_DOOR_MARKER (который и направляет в меню улучшений характеристик, а вовсе не каменный пьедестал). Чтобы решить эту проблему, есть 2 способа, позволяющие увидеть радиус действия этого триггера.

Способ 1 - через блокнот

Тут всё просто - находите в блокноте HERO_CENTRE_DOOR_MARKER (с помощью функции поиска) и после строки "StartCTCHeroCentreDoorMarker;" видите 2 строки, а именно "Radius 1.00;" и "DoorType2 1;". Как можно было уже предположить, нам нужна строка "Radius 1.00". 1.00 - это и есть радиус действия триггера, изменяем его и готово!

Минусом данного способа является то, что при размещении двух и более HERO_CENTRE_DOOR_MARKER в одной локации будет сложно понять, какой маркер где находится, если, конечно же, вы не записали UID'ы с пометками (например, "1 - в доме, 2 - около моря").

Способ 2 - через CBox

Данный способ предполагает использование другой модели для маркера HERO_CENTRE_DOOR_MARKER.

  1. Открываем CBox или FE, что вам удобнее, и находим в game.bin объект HERO_CENTRE_DOOR_MARKER.
  2. Находим строку C8636B2E (Graphic).
  3. В строке Model ID назначаем любую модель (я использую 4510 - стандартная модель маркера).
  4. Нажимаем Apply Changes.
  5. Profit! Все готово, открываем локацию, содержащую пьедестал опыта, в CBox и видим на нем HERO_CENTRE_DOOR_MARKER! (Если вы открывали локацию еще до того как изменить параметр C8636B2E (Graphic) объекта HERO_CENTRE_DOOR_MARKER, то предварительно надо перезапустить CBox).

Плюсом данного метода является его мобильность: один раз назначив модель, будет проще найти объект на локации уже через CBox. Тут же пропадает минус из 1-ого способа, в общем,  способ 2 - прост и удобен.