Консоль, функции и скрипты

Форум Модификации для игр серии Ex Machina Вопросы по созданию модификаций
Сообщений: 10 • Страница 1 из 1 1
Аватара

Цитата:

тема постоянно изменяется и дополняется | 2011.06.14



Цитата:

В этой теме будут складываться
- полезные для моддинга консольные команды
- описание консольных комманд
- описание различных функций
- и все что относится к функциональному коду



.

СПРАВКА
Спойлер
* первое время все будет складываться в кучу
но по ходу дела появится удобная структура

* лог-файл игры хранится в корневой папке Ex Machina под именем exmachina.log

* функции могут иметь параметры - например: function name(имя)
где "имя" это параметр но так же они могу работать и без параметра - например: function name()
в таком случае параметр выбирается "по умолчанию" - что то стандартное вообщем

* консольные команды вводятся через слеш - например: /quit
а функции без слеша - например: getgold(100500)

* размер буквы в консольной команде имеет большое значение(консоль чувствительна к регистру ввода)
например "fov 90" сработает а "Fov 90" НЕ сработает

* Белонг - это индексный номер внутриигровой группировки и не только
вроде как все белонги идут в диапозоне 1000-2000
с помощью белонга например задается сторона за которую воюет NPC(компьютерный игрок)

* Boolen параметр это переключатель - такой параметр(переменная)
может иметь только одно из двух значений - true (правда) и false (не правда)

.


g_ - Графика
r_ - (Render) изображение (r_maxlight)
snd_ звук
/ls - (landscape\terrain) земля и ее параметры

ПОЛЕЗНЫЕ КОМАНДЫ И ФУНКЦИИ ДЛЯ МОДДИНГА:
Спойлер
/consoleScreenSize 0.4 - меняет размер консоли (1 - весь экран \ 0.1 - 10% от экрана)
/conClear - очищает консоль от мусора
/quit - быстрый выход
/r_videomode ширина высота полный_экран ( пример: /r_videomode 1280 960 0 )

car (номер машины) - заменяет машину игрока на другую по выбору (по умолчанию Вен)
CreateEnemy(имя машины) - создает врага с белонгом 1002 в координатах вашей камеры (по умолчанию урал)
p() - сохраняет координаты и поворот камеры в log-файл (естественно используется свободная камера)
MovePlayer( x, y, z ) - перемещает игрока в указанные x,y,z координаты (падение с большой высоты убивает)
teleport() - телепортирует машину в координаты свободной камеры
save() - сохраняет в файл "aaa.xml"
load() - загружает из файла "aaa.xml"
addgold(количество) - добавляет денег
giveall () - добавляет денег, восстанавливает HP и количество топлива автомобиля
SetGameTime( час , минуты ) - изменяет внутри игровое время
PlayerDie() - убивает игрока

AddPlayerNewVehicle("имя машины") - заменяет машину игрока на другую по выбору (по умолчанию Урал)


.

ПРОДВИНУТЫЕ ИЗМЕНЕНИЯ
(тонкая настройка) (самостоятельные функции)

Спойлер
=== Пример ==================================================================
GetPlayerVehicle():AddModifier("hp", "+ 5000" )
тут через функцию GetPlayerVehicle() выбирается машина игрока
затем функция AddModifier() выбирает локальный параметр (машины игрока) и меняет его
в данном случае в параметр HP (жизни) добавляется 5000 единиц до максимума указанного в каждой машине
===========================================================================

SetGameSpeed( 0.25 ) - УГАДАЙТЕ ЧТО - 1 норма - 0.25 в 4 раза медленнее (плавно) - (значение ниже уже с рывками)
к сожалению звук автоматически не замедляется.. нюансы..

* термин "возвращает" значит что при запуске команды дается запрос
который команда возвращает обратно с новыми данными - например команда "СкажиСвоеИмя" вернет данные "Андрей"

GetPlayerVehicle() - возвращает машину игрока
GetPlayerVehicleId() - возвращает id машины игрока
GetPlayerMoney() - возвращает количество денег игрока
GetPlayerHealth() - возвращает количество жизни игрока(машины)
GetPlayerMaxHealth() - возвращает максимальное значение жизни игрока(машины)
GetPlayerFuel() - возвращает количество топлива
GetPlayerMaxFuel() - возвращает максимальное значение топлива

.

TActivate (имя триггера) - активировать триггер
TDeactivate (имя триггера) - дезактивировать триггер
SetVar(имя, значение) - задание переменной (глобально?)
GetVar(имя) - возвращает значение переменой через ее имя
.

exit() - быстрое закрытие игры
AddFadingMsg( "Ваше сообщение" ) - выводит внизу экрана маленькое исчезающее сообщения (только латинские буквы)
AddFadingMsgId ( ID сообщения ) - выводит внизу экрана маленькое исчезающее сообщение по ID (например NPC говорят так "Привет")
AddImportantFadingMsg( "Ваше сообщение" ) - выводит сверху экрана крупное "важное" сообщение (только латинские буквы)
AddImportantFadingMsgId( ID сообщения ) - выводит сверху экрана крупное "важное" сообщение по ID
LOG( "Ваше сообщение" ) - записывает в лог-файл и отображает в консоле сообщение
print( "сообщение" ) - выводит текст в консоль и записывает в лог ( "\n" не учитывается)
println( "сообщение" ) - выводит текст в консоль и записывает в лог ( "\n" переводит на следующую строку)
Dist(obj1, obj2) - вычисление расстояния между объектами
GetPos(имя) - возвращает координаты объекта по имени
SetPos(имя, координаты) - переносит объект по имени в заданные координаты
setRot(имя, поворот) - поворачивает объект по имени с заданным поворотом
CreateVehicle( имя_прототипа, белонг, координаты, имя_машины) - создает машину

AddCinematicMessage( ID сообщения , задержка ) - добавляет сообщения в режиме синематики по заданному ID
AutoSave() - Сохранить игру (старое автосохранение будет перезаписано)
AllowSave( true ) - разрешить/запретить сохранение игры
AddHistory( ID строки текста ) - добавляет текст в журнал по заданному ID
AddBook( ID названия книги , ID строки текста)
BookExists( ID названия книги ) - Проверка, была ли уже книга с таким названием добавлена ранее в журнале
AddToEncyclopaedia( prototypeNamesTable ) - добавляет в энциклопедию прототип или целый список прототипов
Пример вызова: AddToEncyclopaedia( {"Belaz01", "Molokovoz01"} )
AddBelongToEncyclopaedia( belong ) - добавляет группировку в энциклопедию по белонгу
AddQuestItem( имя_прототипа предмета ) - добавление квестового предмета игроку
RemoveQuestItem( имя_прототипа предмета ) - удаление квестового предмета у игрока
IsQuestItemPresent( имя_прототипа предмета ) - проверка квестового предмета у игрока
EnableAutoHelp( bEnable или bDisable ) - вкл\выкл автоматической подсказки для профиля
IsAutoHelpEnabled() - узнать, отказался ли игрок от автоматической подсказки
ShowHelp( ID подсказки ) - открыть окно подсказки по ID
ShowBossIndicator( ID босса ) - показывает индикатор жизни босса по ID
HideBossIndicator() - прячет индикатор жизни босса

=== Параметры диалогов: =========================================================
SpawnMessageBox( ID сообщения, pause ) - сообщение по ID из strings.xml карты в окно диалога
В структуре сообщения в параметре numButtons указывается количество кнопок (1-OK; 2-OK+cancel, 3-OK+NO+cancel)
Возвращаемое значение - номер кнопки

эти же сообщения выводятся в синематике с записью голоса в *.ogg
или могут просто выводиться во время игры окошком с кнопками
===========================================================================

=== Параметры инвентаря: ========================================================
HasPlayerFreePlaceForItems( prototypeName, amount ) - проверка свободного места в инвентаре игрока
AddItemsToPlayerRepository( prototypeName, amount ) - добавление предмета в инвентарь игрока
RemoveItemsFromPlayerRepository( prototypeName, amount ) - удаление предмета из инвентаря
HasPlayerAmountOfItems( prototypeName, amount ) - проверка нужного количества предметов
===========================================================================

=== Параметры радара: ==========================================================
Radar:AllowNavPoints( true ) - отображение стрелочек указывающих на навигационные точки(чекпоинты)
Radar:AllowVehicles( true ) - отображение машин на радаре
Radar:AllowTurrets( true ) - отображение турелей(крестики)
Radar:AllowDistances( true ) - дистанция до навигационных точек(чекпоинтов)
Radar:SetScanRadius( 200 ) - максимальный радиус радара в метрах
===========================================================================

=== Параметры миникарты и глобальной карты: ==========================================
AddKnownLevel( имя_уровня ) - добавляет иконку на глобальной карте
IsLevelKnown( имя_уровня ) - есть ли на глобальной карте (проверка?)
IsLevelVisited( имя_уровня ) - посещает или нет, можно посмотреть минимап или нет (проверка?)
ShowCircleOnMinimap( имя_уровня, центр, радиус) - круг на миникарте
ShowRectOnMinimap( имя_уровня, x0, y0, ширина, высота) - прямоугольник на миникарте
ShowSquareOnMinimap( имя_уровня, центр, пол-стороны ) - квадрат на миникарте
===========================================================================

=== Работа с квестами: ===========================================================
QuestStatus(имя квеста)
-- возвращает статус квеста с именем name
-- 0 - квест не взят и не может быть дан
-- 1 - квест может быть дан
-- 2 - квест дан (но не выполнен и не провален)
-- 3 - квест выполнен
-- 4 - квест провален
===========================================================================

=== глобальные "объекты" ===
g_Console:executeCommand( "консольная команда со слешем" ) - выполнение консольной команды
g_Player - игрок(объект) - через него можно задавать или возвращать внутренние параметры
GetVehicle() - GetVehicle():GetId() - GetMoney() - AddMoney(количество) - GetHealth() - GetMaxHealth() - GetFuel() - GetMaxFuel()
g_CinemaPanel - панель синематики
ConversationWnd - окно диалога (вроде как..)
RepliesManager -
TalkWithNpcDlg - окно диалога с NPC (еще одно?)
Journal - журнал
Radar - радар
LevelInfoManager -
SavesManager -
MsgManager -
TownDlg -
MotherPanel -
WeaponGroupManager -
HelpManager -
MainGameInterface -


ФУНКЦИИ И МЕТОДЫ \ КОНСТАНТЫ
САМОСТОЯТЕЛЬНЫЕ ФУНКЦИИ


Спойлер
#Функции и методы объектов
Deactivate
NextState
SetPosition
GetPosition
SetRotation
GetRotation
SetDirection
GetDirection
GetLinearVelocity
SetLinearVelocity
G etAngularVelocity
SetAngularVelocity
GetSkin
SetSkin
IsVisible
AddWalkPathByName
SetWalkPathByName
GetMoney
AddMoney
GetHealth
GetMaxHealth
G etFuel
GetMaxFuel
GetVehicle
AddItemsToRepository
RemoveItemsFromRepository
HasAmountOfItemsInRepository
CanPlaceItemsToRepository
IsQuestIt emPresent
AddQuestItem
RemoveQuestItem
SetScale
GetScale
SetMass
SetNodeAction
SetNextForAnimation
StartMotionToPort
InitPosition
Show
Hide
S etDestination
HoldFire
GetNumVehicles
SpawnCaravanToLocation
GetOpenGateToPlayer
SetOpenGateToPlayer
SetRuined
IsRuined
AddEvent
DelEvent
De lEventObj
GetTriggeredObjectAmount
GetTriggeredObjectID
AddTriggeredObjectID
GetCount
IncCount
IsActivated
Activate
Deactivate
GetCallEvent
G etCallObjName
GetCallObjId
Var
SetRandomSkin
SetGamePositionOnGround
GetSize
GetCabin
GetBasket
GetChassis
GetHealth
GetMaxHealth
GetFuel
Ge tMaxFuel
SetExternalPathByName
SetCanBeDistractedFromMoving
PlaceToEndOfPath
SetThrottle
GetThrottle
SetCustomControlEnabled
SetSteer
GetSte er
FireFromWeaponCustom
FireFromWeaponCustom2
HoldFire
SetCustomControlWeapons
GetCustomControlWeapons
SetCustomControlWeaponsTarget
GetCust omControlWeaponsTarget
SetCustomControlWeaponsTargetObj
GetCustomControlWeaponsTargetObj
SetCustomLinearVelocity
AddItemsToRepository
Remove ItemsFromRepository
HasAmountOfItemsInRepository
CanPlaceItemsToRepository
AddObjectToRepository
TakeOffAllGuns
AttachTrailer
DetachTrailer
T railerExists
GetTrailer
getGodMode
setGodMode
getImmortalMode
setImmortalMode
GetHorn
SetHorn
SetVisible
SetInvisible
GetMaxTorque
SetMaxTor que
GetMaxSpeed
SetMaxSpeed
GetCruisingSpeed
SetCruisingSpeed
LimitMaxSpeed
UnlimitMaxSpeed
SetForcedMaxTorque
ResetForcedMaxTorque
SaveWeap onGroups
RestoreWeaponGroups

#Константы
AT_ATTACK1
AT_ATTACK2
AT_BLOCK1
AT_BLOCK2
AT_DEATH1
AT_DEATH2
AT_MOVE1
AT_MOVE2
AT_PAIN1
AT_PAIN2
A T_RESERVED1
AT_RESERVED2
AT_RESERVED3
AT_RESERVED4
AT_STAND1
AT_STAND2
CINEMATIC_AIM_TO_ID
CINEMATIC_AIM_TO_POINT
CINEMATIC_FROM_POS
CINEMAT IC_NO_AIM
Q_CANBEGIVEN
Q_COMPLETED
Q_FAILED
Q_TAKEN
Q_UNKNOWN
RS_ALLY
RS_ENEMY
RS_NEUTRAL
RS_OWN

#Самостоятельные функции
AddBelongToEncyclopaedia
AddBook
AddChildByPrototype
AddCinematicMessage
AddFadingMsg
AddFadingMsgId
AddHistory
AddImportantFadingMs g
AddImportantFadingMsgId
AddItemsToPlayerRepository
AddKnownLevel
AddPlayerGunsWithAffix
AddPlayerGunsWithAffixOrMoney
AddPlayerGunsWithRan domAffix
AddPlayerGunsWithRandomAffixOrMoney
AddPlayerItems
AddPlayerItemsWithBox
AddPlayerMoney
AddQuestItem
AddToEncyclopaedia
AddVehicleG unsWithAffix
AddVehicleGunsWithRandomAffix
AllowSave
AutoSave
BindKeysToScript
BookExists
CanQuestBeGiven
CapturePlayerVehicle
CinemaFilters Use
CompleteQuest
CompleteQuestIfTaken
CreateBoxWithAffixGun
CreateCaravanTeam
CreateHuman
CreateNewBreakableObject
CreateNewDummyObject
Cre ateNewObject
CreateNewObject
CreateNewSgNodeObject
CreateTeam
CreateVehicle
DisableGodMode
Dist
EnableAutoHelp
EnableGodMode
EndConversation
exit
exrandom
FailQuest
FailQuestIfTaken
Fly
FlyAround
FlyCamera
FlyCameraHoldMode
FlyLinked
g_EnableBloom
g_EnableMotionBlur
GameCamera
Ga meFiltersUse
GenerateEnemiesInPlayerZone
GenerateRandomAffixList
GetComputerName
GetCurNpc
GetEntityByID
GetEntityByName
GetItemsAmount
getO bj
GetPlayerFuel
GetPlayerHealth GetPlayerMaxFuel
GetPlayerMaxHealth
GetPlayerMoney
GetPlayerVehicle
GetPlayerVehicleId
getPos
GetTolerance
GetVar
HasPlayerAmountOfItems
H asPlayerFreePlaceForItems
HideBossIndicator
IncTolerance
InSet
IsAutoHelpEnabled
IsLevelKnown
IsLevelVisited
IsQuestComplete
IsQuestFailed
I sQuestItemPresent
IsQuestTaken
IsQuestTakenAndNotComplete
IsTownWithConditionalClosing
LeaveTown
PlayerDead
QuestStatus
RAD
ReadyCinematic
R emoveItemsFromPlayerRepository
RemoveObject
RemovePlayerItem
RemoveQuestItem
RestoreAllToleranceStatus
RestoreWeaponGroups
RotationPlayerByP oints
RuleConsole
SaveAllToleranceStatus
SaveWeaponGroups
SetConditionalClosingForTown
setPos
SetRadarUpgrade
setRot
SetTolerance
SetVar
Sho wBossIndicator
ShowCircleOnMinimap
ShowCircleOnMinimapByName
ShowHelp
ShowRectOnMinimap
ShowSquareOnMinimap
SpawnMessageBox
StartCinematic
S tartConversation
TActivate
TakeQuest
TDeactivate
TeamCreateWithWarez
CVector


.

* вносите ваш вклад - пишите ниже то полезное что вы нашли для себя или ищите
просьба не редактировать это сообщение (я сам внесу ваши добавления - и вам проще и мне спокойнее)

Аватара
В новой модификации я планирую задействовать найденную функцию автосейва.
Код: Ctrl+A, Ctrl+C
      AutoSave()


Также заменю все читы в релизной версии мода на чит такого вида:
Код: Ctrl+A, Ctrl+C
      function suicide()
  AutoSave()
  GetPlayerVehicle():AddModifier( "hp", "= 0" )
end

У игрока сильно засосёт под ложечкой, когда он не сохранившись увидит взрыв своего грузовика

Впринципе я думаю, что функцию "AutoSave()" можно свободно использовать через квесты.
Прелесть Ex Machina именно в открытости простому модеру, она интуитивно понятна.

__________!///_ _____
_________( @@ )_____
_______ooO-(_)-o o____
Пришёл, увидел, забанил. Ещё вопросы?


Если у Вас нет бана - это не Ваша заслуга - это наше упущение.
Уровень профиля от John
Аватара
чит-коды можно и более изящно заменить в будущем :]
с какой нибудь надписью на экране - шуткой и хз еще чем
например сохранением скриншота в момент его взрыва хD

Добавлено (23.01.11, 10:57)
---------------------------------------------
очень хочу найти как манипулировать временем
я имею ввиду замедление и тд
add: нашел

Аватара
Дописал кое что в первое сообщение, из простых чит-кодов, надеюсь Скорп не против.

“Going outside is highly overrated.”
– Ernest Cline, Ready Player One
Аватара
только рад но возможны различные казусы
например мы будем редактировать пост одновременно и тогда
сохранение второго человека затрет(удалит) изменение первого
или просто будет трудно разобраться..

так что пиши просто сообщением а я сам добавлю
и тебе проще и мне спокойнее

* если будет много текста кидай под спойлер конечно же :]

Аватара
А как сделать чтобы не урал был а другие машины (CreateEnemy(****))?

Добавлено:
если использовать чит "CreateEnemy", то постоянно, что я не делал, появляется урал.
Как сделать, чтобы не урал, а другие машины появлялись?

ILN
Аватара
А как сделать чтобы не урал был а другие машины (CreateEnemy(****))?


если использовать чит "CreateEnemy", то постоянно, что я не делал, появляется урал.
Как сделать, чтобы не урал, а другие машины появлялись?

| Тут Что-то Должно Быть? |
Аватара

"DarkSOul_56" писал(а):

А как сделать чтобы не урал был а другие машины (CreateEnemy(****))?

Добавлено:
если использовать чит "CreateEnemy", то постоянно, что я не делал, появляется урал.
Как сделать, чтобы не урал, а другие машины появлялись?


Если хочешь, чтобы появился Крейсер, пишешь следующее: CreateEnemy("Cruiser01"). То же самое проделываешь с танком: CreateEnemy("Tank01"). Только после названия каждой машины ОБЯЗАТЕЛЬНО СТАВИШЬ 01 , И КАВЫЧКИ , КАК В ПРИМЕРЕ: CreateEnemy("Tank01")
Аватара
Всем привет, а не подскажете как можно узнать id машины игрока или её имя, я хочу реализовать следующей момент, приезжает игрок куда-либо начинает диалог с nps, и игра проверяет если id или имя текущей машины ровно допустим Bug то один разговор, если scout то другой. Есть идеи как это можно реализовать?
Аватара
Получить машину игрока: g_Player:GetVehicle(). Возвращает ссылку на объект, который и является машиной игрока.
В скриптах разработчики для краткости используют GetPlayerVehicle(), которая всего лишь возвращает значение, полученное от g_Player:GetVehicle().
То, что ты называешь именем машины игрока на самом деле является именем прототипа. Например, Bug, Scout, Molokovoz, Bug01, Scout01, Molokovoz01. Имя прототипа чувствительно к регистру.
Поэтому.
  • Получить машину игрока как объект: GetPlayerVehicle().

  • Получить ID машины игрока: GetPlayerVehicle():GetId().

  • Получить имя машины игрока: GetPlayerVehicle():GetName().

  • Получить имя прототипа машины игрока: GetPlayerVehicle():GetProperty("Prototype").AsString.

Сообщений: 10 • Страница 1 из 1 1