• Страница 1 из 1
  • 1
Спаун города
Пользователь не в сети :(
Torionel™
О боже, ради этого я начал заниматься моддингом fable - мечта о своем городе))) И вот, наконец - все объясняется так просто!!!

Итак, для чего это нужно - просто заспаунить постройки и неговорящих npc с фиолетовой аурой может каждый дурак. Но как сделать, чтобы спаунились стражи, чтобы показывало уровень штрафа за убийство?

Все в tng-файлах локаций, finalalbion.wld и в REGION entry в game.bin. Нет нужды объяснять знающим моддерам, зачем нужен REGION в game.bin)) Но вы должны убедиться, что у локации, в которой вы построите город, указан какой-либо REGION в finalalbion.wld.

Т.е. проверяем, чтобы у локации присутствовала похожая строка в wld-файле:

Code
NewRegion 53;
RegionName "PrisonSecretPassageExterior";
NewDisplayName "TXT_REGION_SECRET_PASSAGE_EXTERNAL";
RegionDef "REGION_SECRET_PASSAGE_EXTERNAL"; - вот эта вот строка
MiniMapGraphic MINIMAP_PRISONSECRETPASSAGEEXTERIOR;
MiniMapScale 1.0;
MiniMapOffsetX 1.0;
MiniMapOffsetY -31.0;
WorldMapOffsetX 1021.0;
WorldMapOffsetY 335.0;
NameGraphicOffsetX 0.0;
NameGraphicOffsetY 0.0;
ContainsMap "FinalAlbion\PrisonSecretPassageExterior.lev";
SeesMap "FinalAlbion\PrisonSecretPassageExterior_Filler_01.lev";
EndRegion;

Так вот, сама механика:

- находим в tng любой уже имеющейся в игре деревни скрипт, начинающийся с NewThing Village; (юзаем поиск блокнота, эта штука там всего одна). Вы должны скопировать скрипт в свою локацию. Насчет координат - по идее, лучше заменить на новые. И сгенерировать новый UID обязательно. Если все правильно сделаете, в локации автоматически появятся стражники. После этого:

если нужно заспаунить дом - спауньте, в villageUID в CBox указывает ID своего скопированного скрипта. Если, допустим, вы заспаунили дом из Оуквэйла, и VILLAGE script взяли из Белогорья, то это, скорее всего, не сработает (у меня не хочет). Поэтому спауним те дома, которые "подходят" под тип VILLAGE (Белогорские дома с белогорским скриптом и т.д.). После спауна дома, если вы соблюдали все инструкции, в нем уже будет жить npc. Можно добавить ему и мебель - для этого нужно указать то ли UID дома в CTCOwnedEntity предмета, то ли UID хозяина)) хрен его знает, но это работает 100%.

если вам нужно заспаунить отдельного "бездомного" npc, указывайте в его VillageUID все тот же uid вставленного скрипта. В CBox эта функция не пашет, так что ручками - через блокнот - (вставляем

Code
StartCTCVillageMember;
VillageUID xxxxxxxxxxxxxxxxxxxx;
EndCTCVillageMember;

после координат NPC)

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

вставляем в villageuid бочонка uid из вставленного скрипта (опять же, МОЖНО через CBox).

И последнее - штрафы. Все это - в REGION данной локации.

Строки 955B43EC и 1DC7E2A3 (сразу после SoundMap) указывают на запрещение на ношение оружия и использование магии (как в Бауэрстоуне). Ставим 1 если нужно, и 0 - если нафиг.

UseVillageTime - если значение 1, если я не ошибаюсь, то глашатай будет кричать по утрам и на закате (всем знакомо? "лааавки открываааются!").

Поставьте единицы в UseCrimes и Display Crimes, и при хулиганстве будет появлятся табличка штрафа.

И да, если возникнут вопросы:

я использовал этот скрипт (вместе с домами из Оуквэйла, естественно)

Code
NewThing Village;
Player 4;
UID 18446741874686296575;
DefinitionType "VILLAGE_OAKVALE";
ScriptName V_OakVale;
ScriptData "NULL";
ThingGamePersistent TRUE;
ThingLevelPersistent TRUE;
Health 0.00000;
ObjectScale 1.00000;
StartCTCPhysicsStandard;
PositionX 87.57080;
PositionY 115.36840;
PositionZ 9.37355;
RHSetForwardX 0.00000;
RHSetForwardY 0.99999;
RHSetForwardZ 0.00000;
RHSetUpX 0.00000;
RHSetUpY 0.00000;
RHSetUpZ 0.99999;
EndCTCPhysicsStandard;
StartCTCVillage;
HasBeenInitiallyPopulated FALSE;
FramePlayerLastSeenByGuard -4528509;
Limbo FALSE;
IsEnemyBecauseOfCrime FALSE;
CurrentIsHeroCriminal FALSE;
EndCTCVillage;
StartCTCEnemy;
FriendsWithEverythingFlag FALSE;
EnableFollowersEnemyProxy TRUE;
FactionName "";
EndCTCEnemy;
StartCTCCreatureOpinionOfHero;
InteractedFlag FALSE;
GreetedFlag FALSE;
LastOpinionReactionFrame 0;
NumberOfTimesHit 0.0;
ToleranceToBeingHitOverride -1.0;
FrameToDecayNumberOfTimesHit 2147483647;
ForcedAttitude 18;
HeroOpinionEnemy FALSE;
EndCTCCreatureOpinionOfHero;
EndThing;
Пользователь не в сети :(
Andy777
У меня просто нет слов, это ОГРОМНЫЙ прорыв в модинге.
Вообще чудо, Веселей некуда, возможность создавать 100 параллельных реальностей.
Теперь нет нужды изменять настоящую локацию.
Пользователь не в сети :(
Torionel™
Нет теперь для нас тайн - только моделлинг и скриптинг))
Пользователь не в сети :(
Boomer
Очень интересно...Если у меня что нибуть выставлю на ваш суд)))
  • Страница 1 из 1
  • 1
Поиск: