Fallout2 Opcode Playground

Opcodes: 8000-801F, 8020-803F, 8040-805F,
8060-807F, 8080-809F, 80A0-80BF, 80C0-80DF,
80E0-80FF, 8100-811F, 8120-813F, 8140-8155
 
List Opcodes:Used in Fallout 2Named
Known to DecompilerDescribed

Descriptions for 8102

Opcode8102, SetBattleParm
>> subfunction   SetBattleParm

Author: Wasteland Ghost

10.02.05 12:28:45

Синтаксис оригинального компилятора:
int critter_add_trait(ObjectPtr who, int trait_type, int trait, int amount) - добавляет криттеру указанное свойство
Аргументы:
who - указатель на криттера
trait_type - тип:
TRAIT_PERK (0) - добавить перк
TRAIT_OBJECT (1) - добавить специфическое свойство
TRAIT_TRAIT (2) - добавить трейт
trait - трейт:
если trait_type = TRAIT_PERK - номер добавляемого перка (см. DEFINE.H)
если trait_type = TRAIT_OBJECT - номер специфического свойства:
OBJECT_AI_PACKET (5) - установка AI
OBJECT_TEAM_NUM (6) - установка команды, в которую будет входить данный криттер
если trait_type = TRAIT_TRAIT - номер добавляемого трейта (см. DEFINE.H)
amount - если trait_type = TRAIT_PERK или trait_type = TRAIT_TRAIT - количество добавляемых перков/трейтов
если trait_type = TRAIT_OBJECT и trait = OBJECT_AI_PACKET - номер AI пакета (см. AIPACKET.H)
если trait_type = TRAIT_OBJECT и trait = OBJECT_TEAM_NUM - номер команды (см. TEAMS.H)
Возвращаемое значение:
у меня всегда возвращает -1
Примечание:
Типы AI прописываются в AI.TXT, параметр packet_num совпадает с номером пакета AI из AIPACKET.H
Номера команд должны находиться в диапазоне 0...32000
Author: TryKos

30.04.03 22:38:47

BIS: critter_add_trait (CritterAddr, Trait_Type, Trait, Amount)
Добавляет заданному криттеру (who) 'свойство' [trait] заданного типа (trait_type), либо изменяет значение уже существующих свойств. Возможными свойствами в системе SPECIAL могут быть:

Perks [перки/особенности]
Traits[склонности]
Информация, специфичная для экземпляра объекта (например, номер команды, в которую входит объект, номер AI-пакета (блока данных, описывающего поведение объекта, см. aipacket.h), и т. д.)

См. так же has_trait.
Author: legacy information

22.06.02 13:29:01

Про команду 8102 можно написать поэму посильнее "Мертвых душ". Видимо, в дальнейшем описании я еще неоднократно вернусь к ней. Итак, команда имеет четыре параметра, да еще и какой-то результат возвращает. Первый параметр - CritterID. Эксперименты ставились как на чузене, так и на кроликах. Для чузена получается установить второй параметр в 0, тогда 3-й параметр - номер перка (считая от нуля, нужно делать поправку относительно номеров в perks.msg), а 4-й - сколько перков чузену добавить. Добавлять удавалось не только реальные перки, но и типа "какой-то навороченный армор", но в этом случае характеристики чузена не менялись. Именно этот вариант команды используется, чтобы загнать ему железяки под кожу. Что касается кроликов, то в изучаемых скриптах 2-й параметр всегда равен единице, 3-й - 6 или 5, а 4-й принимает самые разные значения. Если 3-й параметр равен 6, а 4-й нулю, то в бою криттер отображается с зеленым контуром (вроде свой), при прочих значениях 4-го параметра - красный контур, причем для Клинта 4-й параметр выставляется в единицу, а для патрулей Анклава больше сотни. Думаю, что это "злобность". Когда 3-й параметр равен 5, 4-й параметр определяет каким-то образом боевые качества криттера. Когда ставил Клинту 0, он постоянно мазал, а если и вышибал, то в пределах 6 хитов. А вот если ему же установить порядка 200, то почти всегда попадает и сносит каждый раз по 11 хитов. Пока все.