logic_script
< Ru
Jump to navigation
Jump to search
| CLogicScript |
logic_script - это объект логики, доступно для всех игр на движке
Source начиная с
Left 4 Dead 2. Также доступен в
Ветвь Team Fortress 2 и
Mapbase.
Этот объект функционирует как контейнер для сценариев VScript. Например, в Left 4 Dead 2 он часто используется для логики "карнавальных игр", встречающихся в кампании Dark Carnival, таких как Peanut Gallery, Strongman Contest, Whack-a-Stach и т.д.
Ключ-параметры
- Name (targetname) <объект источник>
- Имя объекта, по которому другие объекты могут ссылаться на этот объект, через Входы/Выходы или другие ключ-параметры (например
parentnameилиtarget).
Оно отображается на 2D-видах в Hammer и Отчёте об объектах (Entity Report).- См. также: Основные ключ-параметры, входы и выходы доступные для всех объектов
- EntityGroup[0] (Group00) to EntityGroup[15] (Group15) <целевой объект>
- Имена целевых объектов для доступа к ним в коде Squirrel. Все указанные имена объектов будут найдены при создании этого объекта, а их указатели будут добавлены к сценарию
logic_script:EntityGroup: массив, в которомEntityGroup[0]- это указатель объекта с именем, указанным в ключ-параметре EntityGroup[0] и т.д. Если существует несколько объектов с таким именем, то указатель будет использовать первый найденный объект. Размер массива определется наибольшим номером непустого EntityGroup плюс единица, поэтому убедитесь, что в коде Squirrel не используется явное задание номера, если размер массива неизвестен. Если ключ-параметр EntityGroup[i] будет пустым внутри массива (когдаi < EntityGroup.len()), тоEntityGroup[i]будет равенnull.MyEntityGroup(нет в
): таблица, содержащая указатели, ключами которых являются их значения, например, если ключ-параметр EntityGroup[2] задан как sound.start, тоMyEntityGroup["sound.start"] == EntityGroup[2].MyEntityGroupArray(нет в
): массив, аналогичный EntityGroup.
Системный сценарий VScript, исполняемый для обеспечения этого функционала: Следующий сценарий VScript исполняется для logic_script, когда он появляется.
__AppendToScriptGroupвызывается для каждого значения, указанного в ключ-параметрахGroup00-Group15.EntityGroup <- []; MyEntityGroup <- {}; MyEntityGroupArray <- EntityGroup; function __AppendToScriptGroup( name ) { if ( name.len() == 0 ) { EntityGroup.append( null ); } else { local ent = Entities.FindByName( null, name ); EntityGroup.append( ent ); if ( ent != null ) { ent.ValidateScriptScope(); MyEntityGroup[name] <- ent; ent.GetScriptScope().EntityGroup <- EntityGroup; } } }
Смотреть также
Внешние ссылки
- It's the VScripting documentation FAQ! (Steam Forums)
- Scripting for Left 4 Dead 2 (Leeland.net) - Пример использования logic_script
Categories:
- Ru/Source
- Ru/Source 2
- Ru/CPointEntity
- Ru/Logical entities
- Ru/Source base entities
- Ru/Source base logical entities
- Ru/Mapbase entities
- Ru/Mapbase logical entities
- Ru/Team Fortress 2 entities
- Ru/Team Fortress 2 logical entities
- Ru/Half-Life 2: Deathmatch entities
- Ru/Half-Life 2: Deathmatch logical entities
- Ru/Half-Life Deathmatch: Source entities
- Ru/Half-Life Deathmatch: Source logical entities
- Ru/Counter-Strike: Source entities
- Ru/Counter-Strike: Source logical entities
- Ru/Day of Defeat: Source entities
- Ru/Day of Defeat: Source logical entities

