Возвращает ранг игрока во фракции. По умолчанию, это фракция говорящего актера, если FactionID не определен. Возвращает 0-9 и 1, если не игрок не член фракции.
Пример: Актер/объект со следующим скриптом доступны, только если игрок не член дома Редоран:
Возможно, возвращает репутацию во фракции. Не тестировалось, Беседкой не использовалось.
SameFaction (returns Boolean/short)
Возвращает 1, если игрок состоит во фракции вызывающего объекта (NPC).
PCExpelled["factionID"] (returns Boolean/short)
Возвращает 1, если игрок однажды был исключен из фракции вызывающего объекта (NPC), или фракция может задаваться особо. Для примера смотри скрипт далее для функции PCClearExpelled.
Изменение реакции и положения во фракции
[no fix] PCJoinFaction["FactionID"]
Делает игрока членом заданной фракции. FactionID опционально, если оно не добавлено, то используется фракция вызывающего NPC.
LowerRank
RaiseRank
Повышает и понижает ранг объекта в текущей фракции. В оригинальной игре это используется только в диалогах.
[no fix] PCLowerRank
[no fix] PCRaiseRank
Повышает и понижает ранг игрока на 1 во фракции NPC. Если игрок не принадлежит фракции, это установит его ранг в 1.
Пример:
Begin treboniusScript
;если вы на Арене
;квет гтльдмастера активен...
;обновляет журнал и повышает игрока
;когда требониус умрет.
short doOnce
short nolore
if ( doOnce == 1 )
Return
endif
if ( GetJournalIndex MG_Guildmaster < 50 )
Return
endif
if ( GetPCCell "Vivec, Arena" == 0 )
Return
endif
if ( duelActive == 0 )
Return
endif
if ( OnDeath == 1 )
Set DuelActive to 0
Set doOnce to 1
PCRaiseRank "Mages Guild"
PCRaiseRank "Mages Guild"
Journal MG_Guildmaster 100
endif
End
[no fix] PCExpell["FactionID"]
Исключает игрока из фракции NPC.
[no fix] PCClearExpelled["FactionID"]
Сбрасывает флаг об исключении.
Пример:
Скрипт от Bethesda, который сбрасывает статус изгнания игрока через некоторое время:
Begin expelledMG
; это просто модель
;должно быть на предмете в каждой Гильдии Магов.
short myDay
short temp
if ( PCExpelled "Mages Guild" == 0 )
return
endif
if ( ExpMagesGuild == 0 )
Set ExpMagesGuild to 1
endif
if ( myDay == 0 )
Set myDay to Day
endif
if ( myDay == Day )
return
endif
if ( Day > myDay )
Set temp to ( Day - myDay )
else
Set temp to ( myDay - Day )
endif
Set myDay to Day
Set temp to ( temp + 2 )
Set ExpMagesGuild to ( ExpMagesGuild + temp )
if ( ExpMagesGuild > 30 )
Set ExpMagesGuild to 0
PCClearExpelled "Mages Guild"
return
endif
End
[no fix] ModPCFacRep, var_enum, ["FactionID"]
[no fix] SetPCFacRep, var_enum, ["FactionID"]
ModPCFacRep, 5, "Imperial Legion"
ModPCFacRep, 5, "Temple"
Модифицирует или устанавливает модификатор реакции для членов определенной фракции (по отношению к игроку).
Модифицирует и устанавливает реакцию членов одной фракции по отношению к членам другой.
Пример: Это часть скрипта MoonAndStar. Эта часть сначала делает игрока членом фракции "Nerevarine", а затем устанавливает реакцию на это двум фракциям:
;реакция фракций и журнал
Journal "A2_6_Incarnate" 50
player->modReputation 5
PCJoinFaction, Nerevarine
if ( GetPCRank, Redoran >= 0 )
modFactionReaction, "Redoran", "Nerevarine", 4
endif
if ( GetPCRank, Temple >= 0 )
modFactionReaction, "Temple", "Nerevarine", 4
endif
Определение и изменение реакции
Get/Mod/SetReputation
Get/Mod/SetDisposition
возможно, все это относится к базовой реакции (которая задается в CS, неизмененной никакими модификаторами)
Функции для оборотней
Установка атрибутов оборотня
SetWerewolfAcrobatics
Actor -> SetWerewolfAcrobatics
Эта функция устанавливает атрибуты объекта, как у оборотня. Она устанавливает скиллы и атрибуты в значение fWerewolfxxxx установок геймплея. В большинстве случаев, это означает высокую силу, ловкость, акробатику и 0 для всего остального.
Player -> AddSpell "werewolf vision"
Player -> AddSpell "werewolf regeneration"
Player -> SetWereWolfAcrobatics
Изменение цвета Секунды
[no fix] TurnMoonWhite
[no fix] TurnMoonRed
Эти две функции очень просты они изменяют цвет Секунды (маленькой, белой луны) с белого на красный и наоборот. Это не влияет на игру, но небо сразу выглядит другим. Используется в главном квесте Бладмуна.
if ( doOnce == 0 )
TurnMoonRed
set doOnce to 1
endif
Определение, скольких убил оборотень
[no fix] GetWerewolfKills (returns short ?)
Это счетчик, сколько NPC было убито оборотнем. Каждый раз, когда убивается NPC, в то время как игрок оборотень, к этому счетчику добавляется 1. Он сбрасывается, когда игрок превращается в человека.
if ( GetWerewolfKills > 0 )
; код, чтобы игрок не страдал от голода.
endif
Проверка, находится ли существо в форме оборотня
IsWerewolf
If (Actor -> IsWerewolf ]
Эта функция позволяет определить, является оборотнем цель или нет. Она может использоваться на игроке или других Актерах.
if ( Player->IsWerewolf != 1 ) ;НЕ ВЫПОЛНЯТЬ ЕСЛИ ИГРОК НЕ ОБОРОТЕНЬ
return
endif
Превращение в оборотня
BecomeWerewolf
UndoWerewolf
Actor->BecomeWerewolf
Actor->UndoWerewolf
Эти функции превращают объект в оборотня и назад в человека. ВАЖНО: Использование Becomewerewolf и Undowerewolf МОЖЕТ запороть вам игру. Некоторые квесты и переменные целиком зависят от их использования, так что если вы решили использовать их, чтобы поразвлечься (От WormGod).
if ( OnPCEquip == 1 )
Player->BecomeWereWolf
Set OnPCEquip to 0
Endif
Set timer to ( timer + GetSecondsPassed )
If ( timer > 10 )
Player->UndoWereWolf
Endif
Специальные глобальные переменные для оборотней
[no fix] PCknownWerewolf (is short global)
Глобальная переменная, которая указывает, известен ли игрок как оборотень.
[no fix] PCWerewolf (is short global)
Установлена в 1, если игрок оборотень. Используется для контроля многих скриптов для оборотней.
[no fix] WerewolfClawMult (is float global)
Усилитель удара когтями. Точная формула неизвестна, см скрипты оборотней.