ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Скрипты сингловых миссий | страница 1 |
 |
Страница 1 из 1 |
|
|
|
Канал Freelancer »
МОДовый отсек: «Скрипты сингловых миссий» |
|
|
Dark Wizard
390 EGP
    Рейтинг канала: 2(13) Репутация: 89 Сообщения: 1041 Откуда: Москва Зарегистрирован: 15.05.2004
 |
|
Триггера и команды общего назначения
;-------------------------------- Триггер начального запуска (это триггер с которого начинается миссия)
ПРЕДУПРЕЖДЕНИЕ! ДЛЯ ТОГО ЧТОБЫ ВО ВРЕМЯ НАЧАЛА ВЫПОЛНЕНИЯ ТРИГГЕРА НЕ ПРОИЗОШЛО ВЫВАЛИВАНИЕ
КАЖДЫЙ ТРИГГЕР ДОЛЖЕН СОДЕРЖАТЬ КАК МИНИМУМ ОДНУ КОМАНДУ ПРОВЕРКИ УСЛОВИЯ. ВСЕ ЭТИ КОМАНДЫ
НАЧИНАЮТСЯ С Cnd_ .
[Trigger]
nickname = init_Trigger
InitState = ACTIVE
Cnd_True = no_params <----- Другие параметры для данной команды не обнаружены.
Cnd_SpaceEnter = no_params <----- В данном случае это заглушка
Act_ActTrig = <----- Cледующий триггер
Так как по умолчанию старт игрока в первой миссии происходит
в гипотической системе заданной в fp7_system.ini то перемещение
в реальную систему(базу) лежит на плечах создающего миссию.
Пример:
[Trigger]
nickname = init_Trigger
InitState = ACTIVE
Cnd_True = no_params
Cnd_SpaceEnter = no_params
Act_ActTrig = Move_Li01
Триггер перемещения
[Trigger]
nickname = Move_Li01
system = Li01
Cnd_Timer = 0.1 <----- Время задержки
Act_ForceLand = Li01_01_base <----- Команда перемещения на базу
К сожелению, похоже только одна команда способна осуществить
переброску игрока в другую систему да и то только на базу.
;-------------------------------- Команды для триггеров
Act_ActTrig <----- Активирует триггер
Act_DeActTrig <----- Деактивирует триггер
;-------------------------------- Выброс и подбор предмета в космосе
[MsnLoot]
nickname = trainingloot
archetype = commodity_construction_machinery
string_id = 261633
rel_pos_obj = Player <------ в данном случае привязка к позиции игрока
rel_pos_offset = 91, -210, 350 <------ позиция в которой появится предмет относительно позиции игрока.
velocity = 1, 0, 2
equip_amount = 1
health = 1.000000
Can_Jettison = true
а это сама команда
Act_SpawnLoot = trainingloot
А команда
Cnd_LootAcquired
позволяет запустить триггер после того как игрок подберет предмет
Cnd_LootAcquired = trainingloot, Player <------- Проверка условия подбора
Команда изятия предмета из трюма корабля
Act_RemoveCargo = trainingloot
Пример:
[Trigger]
nickname = Set_loot
system = Li01
Cnd_True = no_params <---- Заглушка
Act_SpawnLoot = trainingloot <---- Выброс предмета (Позиции завязаны на Player)
Act_ActTrig = Set_FAIL_dead_loot <---- Запуск триггера уничтожения
Act_ActTrig = loot_FAIL <---- Запуск триггера проверки уничтожения
Act_ActTrig = Goot_loot <---- Запуск триггера проверки захвата предмета
[Trigger]
nickname = Set_FAIL_dead_loot
system = Li01
Cnd_Timer = 60 <---- Через 60 сек подрыв trainingloot
Act_Destroy = trainingloot, EXPLODE <---- 60 прошло (Второй параметр - метод уничтожния EXPLODE - взорвался, SILENT - исчез)
[Trigger]
nickname = loot_FAIL
Cnd_Timer = 1 <--- Через секунду после запуска триггер стал активным.
Cnd_Destroyed = trainingloot, 1, EXPLODE <--- Если уничтожение предмета произошло с помощью EXPLODE
Act_ActTrig = FAIL_MSG <--- то произойдет активация FAIL_MSG
[Trigger]
nickname = FAIL_MSG
Cnd_Timer = 1.3 <-------- Через одну целую и три десятых игрок провалит миссиию
Act_ChangeState = FAIL, 459621 <-------- Время вышло
[Trigger]
nickname = Goot_loot
system = Li01
Cnd_LootAcquired = trainingloot, Player <--- Предмет захвачен успешно
Act_DeActTrig = Set_FAIL_dead_loot <--- Деактивируем провал миссии
;-------------------------------- Запись миссии
Act_Save = saveit, 32005 <--- Создает отдельную запись (32005 - это номер строки в ДЛЛ с комментарием)
Act_Save = saveit <--- Перезаписывает Автосохранение
В данном случае saveit - это триггер который будет запускатся при загрузке Сохраненки.
Может содержать установочные данные для продолжения миссии.
;-------------------------------- Обновление журнала
Act_NNIds = 30015, HISTORY <--- Обновляет дневник Трента.
Act_NNIds = 30015, OBJECTIVE_HISTORY <--- Заносит запись в лог миссии.
Act_NNIds = 30015 <--- Выводит запись на экран.
;-------------------------------- Перевод денег игроку (за что-нибудь)
Act_AdjAcct = 25000
Ну это, надеюсь не требует комментариев.
;-------------------------------- Запрет/разрешение активности в космосе для НПС во время миссии
Act_RandomPop = false
Act_RandomPop = true
true - Разрешает
Если вы хотите чтобы во время миссии вокруг вас летали НПС
то разрешите это им спомощью данной команды.
;-------------------------------- Разрешает/запрещает игроку управление кораблем
Act_LockManeuvers = true
Act_LockManeuvers = false
При true блокирует все действия связанные с управлением коробля.
;-------------------------------- Позволяет/запрещает появление дружественной фармации (миссионных кораблей)
в системе где находится игрок (Глобальная команда).
Act_RpopAttClamp = true (разрешено)
Лучше использовать другие команды для формаций во избежании неожиданного гимора.
;-------------------------------- Разрешает/запрещает атаку враждебных нпс во время выполнения миссии
Act_RpopTLAttacksEnabled = true
К сожелению это не глобальная команда и если вы сохранитесь во время
миссии на случайной базе то после загрузки сохраненки все враждебные
НПС станут нейтральными хотя репа будет отрицательной. Для обхода
данного ограничения рекомендуется запускать Act_RpopTLAttacksEnabled
в зациклинном триггере.
[Trigger]
nickname = Attacks_NPC_pop
system = ANY
Cnd_Timer = 10
Act_RpopTLAttacksEnabled = true
repeatable = true
З.Ы.
Act_RandomPop должен быть true для того чтобы НПС появлялись во время миссии.
;-------------------------------- Команда управления (не)убиваемостью объекта
Act_Invulnerable = Player, true, false, 0.900000
В данном случае устанавливается порог неубиваемости игрока в 90%
При достижении повреждений корпуса 90% повреждения перестают действовать на корпус.
На данный момент дальнейшие эксперементы с данной командой не проводились.
;-------------------------------- Команда уравлением целостности корпуса объекта.
Act_AdjHealth = объект, 0.5 <-- Добавляет 50% к текущему значению корпуса.
Если значение превышает в сумме значение hit_pts то значение корпуса устанавливается равным hit_pts
Act_AdjHealth = объект, -0.5 <-- Снимает 50% от текущего значения корпуса.
Если остаток отрицательный или ноль то объект разрушается.
;-------------------------------- Команды закрытия/окрытия доступа к базам, Вратам, Гипердырам и Линиям
Act_LockDock = Player, Iw06_to_Li03_hole, lock <-- надеюсь не требует комментариев.
Act_LockDock = Player, Iw06_to_Li03_hole, unlock <-- надеюсь не требует комментариев.
Act_PlayerCanDock = true <-- Глобальное открытие всех объектов
Act_PlayerCanDock = false <-- Глобальное закрытие всех объектов
Act_PlayerCanTradelane = false <-- Глобальное закрытие всех линий в системе
Act_PlayerCanTradelane = true <-- Глобальное открытие всех линий в системе
;-------------------------------- Такую комбинацию можно использовать в триггере для доступа к единичному объекту
Act_PlayerCanDock = false, Br04_01_dock_ring <-- Открыть доступ к планете Лидс но закрыть все остальные объекты
;-------------------------------- Репа относительно игрока (Глобальная)
Act_SetRep = Player, fc_x_grp, 0.65 <-- Положительная
Act_SetRep = Player, fc_x_grp, 0 <-- Нейтральная
Act_SetRep = Player, fc_x_grp, -0.65 <-- Отрицательная
;-------------------------------- Репа относительно игрока (Локальная)
[MsnShip]
nickname = frn_fighter_01
NPC = frn_m01bn
random_name = true <----- Разрешено случайное имя
label = lbl8_frn <----- Метка
jumper = true <----- Разрешено перемещение в другие системы
[MsnShip]
nickname = chn_fighter_01
NPC = chn_m01bn
random_name = true
label = lbl8_chn
Act_SetVibeLbl <----- Устанавливает репу формациями и отдельным объектам по меткам (параметр label)
Act_SetVibeLbl = lbl8_frn, lbl8_chn, REP_HOSTILE_MAXIMUM
Act_SetVibeLbl = lbl8_chn, lbl8_frn, REP_HOSTILE_MAXIMUM
Act_SetVibe <----- Устанавливает репу формациями и отдельным объектам
Act_SetVibe = chn_fighter_01, frn_fighter_01, REP_HOSTILE_MAXIMUM
Act_SetVibe = frn_fighter_01, chn_fighter_01, REP_HOSTILE_MAXIMUM
Act_SetVibeLblToShip <----- Устанавливает репу для отдельного корабля по меткам формаций или другого корабля (параметр label)
Act_SetVibeLblToShip = lbl8_chn, Player, REP_HOSTILE_MAXIMUM
REP_HOSTILE_MAXIMUM <----- Репа -1
REP_HOSTILE_THRESHOLD <----- Репа -0.65
REP_FRIEND_THRESHOLD <----- Репа +0.65
REP_FRIEND_MAXIMUM <----- Репа +1
REP_NEUTRAL_HOSTILE <----- Репа 0
Принципы создания виртуальных объектов, баз и кораблей можно изучить в инишках миссий
;-------------------------------- Невидимость
Act_Cloak = frn_fighter_01, false <----- Выключает
Act_Cloak = frn_fighter_01, true <----- Включает
Устройство невидимости должно быть установлено
;-------------------------------- Установка объектов, формаций, кораблей
Act_SpawnFormation = ваша_формация
Act_SpawnSolar = Ваш_виртуальный_объект
Act_SpawnShip = отдельный_корабль
Все примеры установки можно найти в инишках миссий
;-------------------------------- Перемещение в заданные точки
Act_MovePlayer = -34256, 1000, -25110, 1000
Перемещает игрока в текущей системе в примерно заданную точку.
Четвертый параметр - это сфера в которой появится игрок.
;-------------------------------- Текстовая панель и завершение миссии
Команда для окрытия диалоговой панели
Act_Popupdialog = 462160, 462161, CLOSE
Первый параметр - это заголовок панели.
Второй параметр - это сам текст.
Третий параметр делает эту панель доступной для закрытия.
Если убрать CLOSE то панель нельзя будет закрыть.
Команды для завершения миссии
Act_ChangeState = SUCCEED <----- Миссия выполнена
Act_ChangeState = FAIL <----- Миссия провалена (в панеле диалога нет комментария)
Act_ChangeState = FAIL, 234567 <----- Миссия провалена (в панеле диалога есть комментарий)
;-------------------------------- Команды проверки условий
Cnd_SystemEnter = Hi02 <-- Срабатывает когда игрок появляется в заданной системе(Только один параметр)
Cnd_NPCSystemEnter = Hi02, Player, формация <-- Тоже самое но только для групп. Может отрабатывать
как отдельные корабли так и целые формации
Cnd_LocEnter = Deck, EW14_01a_Base <----- Срабатывает когда игрок входит в локацию на базе
Cnd_LocExit = Deck, EW14_01a_Base <----- Срабатывает когда игрок выходит из локации на базе
Cnd_SpaceEnter = Hi02 <----- Срабатывает когда игрок вылетает с базы
Cnd_Timer = 5 <----- Срабатывает автоматом через заданное кол-во секунд
Cnd_MsnResponse = accept <----- Срабатывает когда игрок принимает миссию (требует наличие скрипта)
Cnd_MsnResponse = reject <----- Срабатывает когда игрок отклоняет миссию (требует наличие скрипта)
Cnd_DistVec = outside, Player, -33317, -150, 61122, 3000 <-- Срабатывает когда игрок вsходит из сферы вокруг заданной точки
Cnd_DistVec = inside, Player, -33317, -150, 61122, 3000 <-- Срабатывает когда игрок входит в сферу вокруг заданной точки
Шестой параметр - это радиус сферы.
---------------
Act_SetTitle = 22400 <----- Команда устанавливает заголовок миссии
Act_SetOffer = 22405 <----- Команда устанавливает описание миссии
Собственно это можно использовать для создания неожиданных миссий скажем в космосе
при "случайной" встрече с кем-нибудь.
;-------------------------------- Навигация по картам
Act_NNPath = 459717, 459717, Bw02_to_Ew03_hole, Bw02 <--- Устанавливает путь к объекту. Объект может находится и в другой системе.
Не работает если системы не соеденены Вратами гиперпереходов. НЕ ПУТАТЬ С ГИПЕРДЫРАМИ!
Для навигаций по контрольным точкам есть специальные объекты
[NNObjective]
nickname = NNObj_stop_01
state = HIDDEN
type = navmarker, ANY, 459635, 459635, 0, 0, 0
В данном случае это контрольная точка-заглушка
Я её использую для создания свободного времени внутри миссии
459635 - содержит "Сейчас нет заданий. Можете некоторое время заниматся своими делами."
Как использоать точки навигации можно посмотреть в М10.ini
;-------------------------------- Специальные команды
Пример создания сопроваждения:
[ObjList]
nickname = set_escort_01
BreakFormation = no_params <--- ???
SetPriority = ALWAYS_EXECUTE <--- Высочайший приоритет
follow = Player, 150, -70, 50, -200, 50000 <--- См. ниже
Первый параметр - К кому присоединятся
Второй параметр - С какого растояния возвращатся в строй
Третий, четвертый и пятый - положение в строю относительно первого параметра
Шестой параметр - предположительно удаление с которого должен засекатся Ведущий ведомым(и).
[Trigger]
nickname = set_formation_01
Cnd_Timer = 0.1
Act_GiveObjList = "истребитель", set_escort_01 <--- Подключает "истребитель" к игроку
Act_EnableManeuver = formation, true <--- Разрешает подруливание
Здесь "истребитель" любой ваш корабль который хотите поставить в сопровождение.
Также можно, поменяв местами Player и "истребитель"
заставить входить в формацию игрока а не "истребитель".
Также можно создавть глобальные формации из группы кораблей.
Пример подключения сопровождения:
[Trigger]
nickname = start_set_formation
system = EW14
Cnd_Timer = 4
Act_SpawnShip = "истребитель", -37619, -14900, -5366
Act_SetVibe = "истребитель", Player, REP_FRIEND_THRESHOLD
Act_Invulnerable = "истребитель", true, false, 0.900000
Act_ActTrig = Frm_select
[Trigger]
nickname = Frm_select
system = EW14
Cnd_Timer = 1
Act_ActTrig = set_formation_01
Пример разрыва созданной формации для боя например:
[ObjList]
nickname = escort_breakform
BreakFormation = no_params
[Trigger]
nickname= Break_formation_01
Cnd_Timer = 0.1
Act_GiveObjList = "истребитель", escort_breakform
;-----------------
Пример создания принудительной остановки игрока:
[ObjList]
nickname = stop_player
Idle = no_params
В триггере:
Act_GiveObjList = Player, stop_player
;-----------------
Данный пример отправит игрока, на базу и если не трогать управление то и пасадит на неё
[ObjList]
nickname = spec_leavetown
BreakFormation = no_paramsDock = EW14_01_Base <------- Докится можно ко всему, что позволяет стыковку
SetLifeTime = 465 <------- Время жизни чего???
В триггере:
Act_GiveObjList = Player, spec_leavetown
Применим к игроку, формациям и отдельным кораблям.
Проверял только для системы где находился.
;-----------------------------------------------------------------------------------
Ну вот этого вполне достаточно для создания миссий по крайней мере я вполне пока могу
обойтись таким набором команд.
_________________ Лучше быть бедным и живым, чем богатым и мертвым. |
|
|
senyaarseniy
50 EGP
 Рейтинг канала: 1(6) Репутация: 0 Сообщения: 21 Откуда: VS Зарегистрирован: 26.08.2008
 |
|
Цитата: |
К сожелению, похоже только одна команда способна осуществить
переброску игрока в другую систему да и то только на базу.
|
Нашол несколько команд тока на английском и перевёл переводчиком! Мож пригодится кому!
Act_ForceLand = *base name* <-это посадит Вас на основе Вашего выбора. Различие между этим и RelocatePlayer - то, что с этим Вы видите приземляющуюся последовательность - важное различие на некоторых местах.
Act_RelocatePlayer = *base комната name* <-это разместит Вас в определенную комнату определенной основы. Это - то, как Osiris работает.
Act_MovePlayer = *coordinates* <-различная форма другие два, это работает в пределах системы. Это редко полезно, но часто используется после файла шипа, который показывает игроков, двигающихся, таким образом Вы не появляетесь назад, где Вы были.
P.S. В 13 миссии после уничтожения генераторов корабль перемещается в другую систему так что есть команда для перемещения не на базу!
_________________ Люблю freelancer
Последний раз редактировалось: senyaarseniy (15:05 13-04-2009), всего редактировалось 1 раз |
|
|
senyaarseniy
50 EGP
 Рейтинг канала: 1(6) Репутация: 0 Сообщения: 21 Откуда: VS Зарегистрирован: 26.08.2008
 |
|
мож кому пригодится
Есть 42 различных Условия:
Cnd_True
Cnd_Destroyed
Cnd_CommComplete
Cnd_SpaceEnter
Cnd_Timer
Cnd_SpaceExit
Cnd_BaseEnter
Cnd_LocEnter
Cnd_RTCDone
Cnd_PopUpDialog
Cnd_CharSelect
Cnd_MsnResponse
Cnd_BaseExit
Cnd_ProjHit
Cnd_DistShip
Cnd_WatchTrigger
Cnd_PlayerManeuver
Cnd_TLEntered
Cnd_TLExited
Cnd_DistVec
Cnd_NPCSystemEnter
Cnd_LaunchComplete
Cnd_DistVecLbl
Cnd_HealthDec
Cnd_ProjHitShipToLbl
Cnd_InSpace
Cnd_SystemExit
Cnd_CargoScanned
Cnd_LootAcquired
Cnd_LocExit
Cnd_HasMsn
Cnd_SystemEnter
Cnd_JumpInComplete
Cnd_PlayerLaunch
Cnd_TetherBroke
Cnd_InTradelane
Cnd_WatchVibe
Cnd_InZone
Cnd_DistCircle
Cnd_EncLaunched
Cnd_DistVecLbl
86 различных Действий:
Act_ActTrig
Act_NagDistLeaving
Act_Invulnerable
Act_MarkObj
Act_PlayerCanTradelane
Act_ChangeState
Act_DeactTrig
Act_SendComm
Act_PlayerCanDock
Act_PlayMusic
Act_SpawnShip
Act_SetVibe
Act_SpawnSolar
Act_GCSClamp
Act_RandomPop
Act_MovePlayer
Act_CallThorn
Act_PlaySoundEffect
Act_StartDialog
Act_GiveObjList
Act_Destroy
Act_SetVibeLblToShip
Act_Cloak
Act_RelocateShip
Act_LightFuse
Act_SetVibeLbl
Act_ForceLand
Act_SetShipAndLoadout
Act_AddAmbient
Act_AddRTC
Act_NNIds
Act_PopUpDialog
Act_SetNNObj
Act_RemoveRTC
Act_SetOffer
Act_SetTitle
Act_RemoveAmbient
Act_NagOff
Act_RpopAttClamp
Act_PobjIdle
Act_NagClamp
Act_LockDock
Act_SpawnFormation
Act_SetVibeShipToLbl
Act_NagGreet
Act_EtherComm
Act_EnableManeuver
Act_RevertCam
Act_Save
Act_PlayerEnemyClamp
Act_AdjHealth
Act_SpawnLoot
Act_LockManeuvers
Act_HostileClamp
Act_DisableTradelane
Act_NagDistTowards
Act_SetLifeTime
Act_AdjAcct
Act_SetNNState
Act_SetNNHidden
Act_GiveNNObjs
Act_EnableEnc
Act_DebugMsg
Act_RandomPopSphere
Act_SetInitialPlayerPos
Act_StaticCam
Act_SetVibeOfferBaseHack
Act_NNPath
Act_SetOrient
Act_RemoveCargo
Act_SetRep
Act_DisableFriendlyFire
Act_Jumper
Act_GiveMB
Act_SetPriority
Act_RPopTLAttacksEnabled
Act_DockRequest
Act_ForceLand
Act_DisableEnc
_________________ Люблю freelancer |
|
|
Rokar
1221 EGP
       Рейтинг канала: 3(47) Репутация: 237 Сообщения: 17628 Откуда: дремучее Подмосковье Зарегистрирован: 21.08.2002
 |
|
Еще бы расписал, какое из условий/действий что означает, было бы вобще круто
_________________ Непостоянство тоже бывает постоянным |
|
|
senyaarseniy
50 EGP
 Рейтинг канала: 1(6) Репутация: 0 Сообщения: 21 Откуда: VS Зарегистрирован: 26.08.2008
 |
|
Мнеб самому знать можно запихать в переводчик некоторые переводит или найти в файлах миссии там разобраться
_________________ Люблю freelancer |
|
|
Rokar
1221 EGP
       Рейтинг канала: 3(47) Репутация: 237 Сообщения: 17628 Откуда: дремучее Подмосковье Зарегистрирован: 21.08.2002
 |
|
Там еще и параметры есть. Причем у разных условий/действий разное количество и разные значения параметров.
_________________ Непостоянство тоже бывает постоянным |
|
|
senyaarseniy
50 EGP
 Рейтинг канала: 1(6) Репутация: 0 Сообщения: 21 Откуда: VS Зарегистрирован: 26.08.2008
 |
|
Параметров я не знаю но пятьже можно в файлах миссий найти.
_________________ Люблю freelancer |
|
|
senyaarseniy
50 EGP
 Рейтинг канала: 1(6) Репутация: 0 Сообщения: 21 Откуда: VS Зарегистрирован: 26.08.2008
 |
|
Напишите ктонить поподробней о добавлении NPC плиз.
_________________ Люблю freelancer |
|
|
Rokar
1221 EGP
       Рейтинг канала: 3(47) Репутация: 237 Сообщения: 17628 Откуда: дремучее Подмосковье Зарегистрирован: 21.08.2002
 |
|
senyaarseniy : |
Напишите ктонить поподробней о добавлении NPC плиз.
|
Все элементарно. Идем в папку DATA\CHARACTERS, открываем файло costumes.ini, добавляем новый костюм (он же - новый перс). После чего этот костюм можно юзать в скриптах мультиков (thn) и миссий.
Собсно запчасти для костюма (туловище, руки, голова, всяческие аксесуары) прописаны в bodyparts.ini.
_________________ Непостоянство тоже бывает постоянным |
|
|
senyaarseniy
50 EGP
 Рейтинг канала: 1(6) Репутация: 0 Сообщения: 21 Откуда: VS Зарегистрирован: 26.08.2008
 |
|
Не всмысле о добавлении нпс в космосе что куда прописывать?
_________________ Люблю freelancer |
|
|
Rokar
1221 EGP
       Рейтинг канала: 3(47) Репутация: 237 Сообщения: 17628 Откуда: дремучее Подмосковье Зарегистрирован: 21.08.2002
 |
|
Тогда, плиз, поподробнее сформулируйте вопрос.
ЗЫ. И какое отношение это имеет к сингловым миссиям?
_________________ Непостоянство тоже бывает постоянным |
|
|
senyaarseniy
50 EGP
 Рейтинг канала: 1(6) Репутация: 0 Сообщения: 21 Откуда: VS Зарегистрирован: 26.08.2008
 |
|
Ну как добавить в миссию нпс
[NPC]
nickname = xxx
affiliation = xxx
npc_ship_arch = xxx
space_costume =
voice = xxx
individual_name = xxx
и т.д.
_________________ Люблю freelancer |
|
|
Rokar
1221 EGP
       Рейтинг канала: 3(47) Репутация: 237 Сообщения: 17628 Откуда: дремучее Подмосковье Зарегистрирован: 21.08.2002
 |
|
nickname - произвольное имя, которое будет юзаться в скрипте миссии
affiliation - принадлежность (группа, к которой принадлежит НПЦ)
npc_ship_arch - кораблик, на котором летает данный НПЦ (если летает вобще)
space_costume - это внешний вид для переговорника: голова, туловище, какой-нить аксесуар ака переговорник
voice - юзаемый голос
individual_name - сцылка на имя в дллке
и т.д.
В далнейшем скрипте обращение к этому НПЦ идет строго по nickname.
_________________ Непостоянство тоже бывает постоянным |
|
|
Endeavour
1015 EGP
       Рейтинг канала: 2(23) Репутация: 105 Сообщения: 7041 Откуда: guess Зарегистрирован: 26.05.2005
 |
|
по-английскому, да. юзайте словарь хотя бы, во многих инишках названия значений - self explanatory
|
|
|
Rokar
1221 EGP
       Рейтинг канала: 3(47) Репутация: 237 Сообщения: 17628 Откуда: дремучее Подмосковье Зарегистрирован: 21.08.2002
 |
|
Не забывай еще о различном количестве параметров Так что перевод переводом, но и знания не помешают.
_________________ Непостоянство тоже бывает постоянным |
|
|
HeIIoween
|
|
Скрипты Сингловых Миссий в Мультиплеере
Во freelancer.ini на сервере:
[Initial MP DLLs]
path = ..\dlls\bin
DLL = Content.dll, GameSupport, HIGHEST
; required to operate gates and docks
; required to create ships in space
DLL = Content.dll, SpaceSupport, NORMAL
DLL = Content.dll, BaseSupport, NORMAL
DLL = Content.dll, StoryLauncher, BELOW_NORMAL ;<-воткните это
DLL = Content.dll, SpacePop, LOWEST ;populator
DLL = Content.dll, AISandbox, BELOW_NORMAL
DLL = Content.dll, TestAutomation, BELOW_NORMAL
DLL = Content.dll, BasePop, LOWEST
В конце файла с рестартом или в mpnewcharacter.fl на сервере:
...
[MissionState]
mission_accepted = 1 ; да - у нас есть миссия
att_clamp = true
tradelane_attacks = true
scan_clamp = true
gcs_clamp = false
hostile_clamp = false
random_pop = true
[BStoryMissionDone]
[StoryInfo]
ship_bought = false
Mission = Mission_13
MissionNum = 0
delta_worth = -1.000000
debug = 0
В data/missions/m13.ini:
[Mission]
npc_ship_file = missions\npcships.ini
[MsnSolar] ; это у нас Фрипорт 7 с биодомиками по 3-м сторонам
nickname = fp7base
faction = li_p_grp
reputation = li_p_grp
system = LI01
base=intro1_base
position = 3600, 1000, -21000
orientation = 1, 0, 0, 0
archetype = freeport7
loadout = freeport7
label = lbl_fp7base
radius = 0
pilot = setscene_nomad_fighter_FP7
random_name = true
[MsnSolar]
nickname = freeport7_space_dome1
faction = li_p_grp
reputation = li_p_grp
system = LI01
position = 4118, 1000, -21000
orientation = 0, 0, 1, 0
archetype = freeport7_space_dome
label = lbl_fp7base
radius = 0
pilot = setscene_nomad_fighter_FP7
random_name = true
loadout = space_dome_co_01
parent = fp7base
[MsnSolar]
nickname = freeport7_space_dome2
faction = li_p_grp
reputation = li_p_grp
system = LI01
position = 3080, 1000, -21000
orientation = 1, 0, 0, 0
archetype = freeport7_space_dome
label = lbl_fp7base
radius = 0
pilot = setscene_nomad_fighter_FP7
random_name = true
loadout = space_dome_co_01
parent = fp7base
[MsnSolar]
nickname = freeport7_space_dome3
faction = li_p_grp
reputation = li_p_grp
system = LI01
position = 3600, 1000, -20609
orientation = 1, 0, 1, 0
archetype = freeport7_space_dome
label = lbl_fp7base
radius = 0
pilot = setscene_nomad_fighter_FP7
random_name = true
loadout = space_dome_co_01
parent = fp7base
[Trigger]
nickname = tr_initialize_init
system = li01
InitState = ACTIVE ; старт миссии - в данном случае это миссия номер 0 файла миссии номер 13
Cnd_True = no_params
Act_ActTrig = go_mis
[Trigger]
nickname = go_mis
system = Li01
Cnd_SystemEnter = Li01
Act_ActTrig = mis_yes ; проверяем mission_accepted = 1 ? да
Act_ActTrig = mis_no ; нет
[Trigger]
nickname = mis_yes
Cnd_HasMsn = yes
Act_ActTrig = start_init ; если да - стартуем миссию
[Trigger]
nickname = mis_no
Cnd_HasMsn = no ; если нет - пропускаем старт миссии
Act_SetVibe = fp7base, Player, REP_HOSTILE_THRESHOLD
Act_SetVibe = freeport7_space_dome1, Player, REP_HOSTILE_THRESHOLD
Act_SetVibe = freeport7_space_dome2, Player, REP_HOSTILE_THRESHOLD
Act_SetVibe = freeport7_space_dome3, Player, REP_HOSTILE_THRESHOLD
Act_ActTrig = the_end_end
[Trigger]
nickname = start_init
system = li01
Cnd_Timer = 10
Act_RandomPop = true
Act_RpopAttClamp = true
Act_RpopTLAttacksEnabled = true
Act_Destroy = freeport7_space_dome1, SILENT ; втихаря убиваем копии фрипорта 7 (detroy root должен быть во fuse, который указан в solararch.ini и во fuse.ini)
Act_Destroy = freeport7_space_dome2, SILENT ; -//-
Act_Destroy = freeport7_space_dome3, SILENT ; -//-
Act_Destroy = fp7base, SILENT ; -//-
Act_SpawnSolar = fp7base
Act_SpawnSolar = freeport7_space_dome1
Act_SpawnSolar = freeport7_space_dome2
Act_SpawnSolar = freeport7_space_dome3
Act_MarkObj = fp7base, 1
Act_MarkObj = freeport7_space_dome1, 1
Act_MarkObj = freeport7_space_dome2, 1
Act_MarkObj = freeport7_space_dome3, 1
Act_SetVibe = fp7base, Player, REP_HOSTILE_THRESHOLD
Act_SetVibe = freeport7_space_dome1, Player, REP_HOSTILE_THRESHOLD
Act_SetVibe = freeport7_space_dome2, Player, REP_HOSTILE_THRESHOLD
Act_SetVibe = freeport7_space_dome3, Player, REP_HOSTILE_THRESHOLD
Act_ActTrig = the_end
[Trigger]
nickname = the_end
system = Li01
Cnd_SystemEnter = Li01
Cnd_Destroyed = fp7base, 1, EXPLODE
Cnd_Destroyed = freeport7_space_dome1, 1, EXPLODE
Cnd_Destroyed = freeport7_space_dome2, 1, EXPLODE
Cnd_Destroyed = freeport7_space_dome3, 1, EXPLODE
Act_ActTrig = the_end_end
[Trigger]
nickname = the_end_end
system = Li01
Cnd_SystemEnter = Li01
Cnd_Timer = 1
Act_ChangeState = SUCCEED ; это мы можем закомментировать, если не хотите наличия (а не продолжения) миссии после перезахода
Документация:
http://freelancercommunity.net/viewtopic.php?t=511 - Английская (Создатель Big Daddy StoryLine - 14-й миссии)
Как работает:
При Act_ChangeState = SUCCEED
- если игрок создал чар, создается миссия;
- если он же перезашел, Фрипорт 7 и миссия пропадут;
- если следующий игрок создает чар , то Фрипорт 7 исчезает и тут же появляется заново (грубо говоря, если его почти добили и появился новый игрок, то Фрипорт 7 снова цел и невредим)
Если мы уберем Act_ChangeState = SUCCEED
- если игрок создал чар, создается миссия;
- если он же перезашел, Фрипорт 7 и миссия останутся, но никому не будет принадлежать
- если следующий игрок создает чар , то Фрипорт 7 исчезает и тут же появляется заново (грубо говоря, если его почти добили и появился новый игрок, то Фрипорт 7 снова цел и невредим)
Так в чем же "фишкА"?
Соссно варианты использования:
1. Создаем сервер например на 6-ть игроков и 2 слота для модера и админа.
Сервер забивается, никто не может пересоздать Фрипорт 7 и вперед - допустим одной группе надо защитить Фрипорт 7, а другой раздолбать
2. Создается рестарт за деньги, абсурд, но игрок получает за миссию больше денег, чем он потратил на ее создание
3. Ну и конечно ивенты!
Только админ или ивент мастер может создать миссию-ивент
Это самый оптимальный вариант
добавлено спустя 2 минуты:
P.S. Кстати еще одно условие Cnd_RumorHeard нумер 43
|
|
|
|
|
|
Канал Freelancer ->
МОДовый отсек: «Скрипты сингловых миссий» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Хотя, с нашей скоростью постинга в конфу, конец темы ты можешь и не увидеть... (предположил Harley)
|
» Скрипты сингловых миссий | страница 1 |
|