Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Скрипты сингловых миссий | страница 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

Применим к игроку, формациям и отдельным кораблям.
Проверял только для системы где находился.
;-----------------------------------------------------------------------------------

Ну вот этого вполне достаточно для создания миссий по крайней мере я вполне пока могу
обойтись таким набором команд.
_________________
Лучше быть бедным и живым, чем богатым и мертвым.
    Добавлено: 15:47 27-02-2005   
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 раз
    Добавлено: 15:02 13-04-2009   
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
    Добавлено: 00:06 10-08-2009   
Rokar
 1221 EGP


Модератор
Рейтинг канала: 3(47)
Репутация: 237
Сообщения: 17628
Откуда: дремучее Подмосковье
Зарегистрирован: 21.08.2002
Еще бы расписал, какое из условий/действий что означает, было бы вобще круто Подмигиваю
_________________
Непостоянство тоже бывает постоянным
    Добавлено: 11:59 10-08-2009   
senyaarseniy
 50 EGP


Рейтинг канала: 1(6)
Репутация: 0
Сообщения: 21
Откуда: VS
Зарегистрирован: 26.08.2008
Мнеб самому знать Хы... можно запихать в переводчик некоторые переводит или найти в файлах миссии там разобраться
_________________
Люблю freelancer
    Добавлено: 14:24 10-08-2009   
Rokar
 1221 EGP


Модератор
Рейтинг канала: 3(47)
Репутация: 237
Сообщения: 17628
Откуда: дремучее Подмосковье
Зарегистрирован: 21.08.2002
Там еще и параметры есть. Причем у разных условий/действий разное количество и разные значения параметров. Улыбка
_________________
Непостоянство тоже бывает постоянным
    Добавлено: 15:22 10-08-2009   
senyaarseniy
 50 EGP


Рейтинг канала: 1(6)
Репутация: 0
Сообщения: 21
Откуда: VS
Зарегистрирован: 26.08.2008
Параметров я не знаю но пятьже можно в файлах миссий найти. Улыбка
_________________
Люблю freelancer
    Добавлено: 15:44 10-08-2009   
senyaarseniy
 50 EGP


Рейтинг канала: 1(6)
Репутация: 0
Сообщения: 21
Откуда: VS
Зарегистрирован: 26.08.2008
Напишите ктонить поподробней о добавлении NPC плиз.
_________________
Люблю freelancer
    Добавлено: 18:53 10-08-2009   
Rokar
 1221 EGP


Модератор
Рейтинг канала: 3(47)
Репутация: 237
Сообщения: 17628
Откуда: дремучее Подмосковье
Зарегистрирован: 21.08.2002
senyaarseniy :
Напишите ктонить поподробней о добавлении NPC плиз.

Все элементарно. Идем в папку DATA\CHARACTERS, открываем файло costumes.ini, добавляем новый костюм (он же - новый перс). После чего этот костюм можно юзать в скриптах мультиков (thn) и миссий.
Собсно запчасти для костюма (туловище, руки, голова, всяческие аксесуары) прописаны в bodyparts.ini.
_________________
Непостоянство тоже бывает постоянным
    Добавлено: 11:48 13-08-2009   
senyaarseniy
 50 EGP


Рейтинг канала: 1(6)
Репутация: 0
Сообщения: 21
Откуда: VS
Зарегистрирован: 26.08.2008
Не всмысле о добавлении нпс в космосе что куда прописывать?
_________________
Люблю freelancer
    Добавлено: 15:55 13-08-2009   
Rokar
 1221 EGP


Модератор
Рейтинг канала: 3(47)
Репутация: 237
Сообщения: 17628
Откуда: дремучее Подмосковье
Зарегистрирован: 21.08.2002
Подозрение. Тогда, плиз, поподробнее сформулируйте вопрос.
ЗЫ. И какое отношение это имеет к сингловым миссиям? Озадачен
_________________
Непостоянство тоже бывает постоянным
    Добавлено: 16:51 13-08-2009   
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
    Добавлено: 17:03 13-08-2009   
Rokar
 1221 EGP


Модератор
Рейтинг канала: 3(47)
Репутация: 237
Сообщения: 17628
Откуда: дремучее Подмосковье
Зарегистрирован: 21.08.2002
nickname - произвольное имя, которое будет юзаться в скрипте миссии
affiliation - принадлежность (группа, к которой принадлежит НПЦ)
npc_ship_arch - кораблик, на котором летает данный НПЦ (если летает вобще)
space_costume - это внешний вид для переговорника: голова, туловище, какой-нить аксесуар ака переговорник
voice - юзаемый голос
individual_name - сцылка на имя в дллке
и т.д. Гы-гы

В далнейшем скрипте обращение к этому НПЦ идет строго по nickname.
_________________
Непостоянство тоже бывает постоянным
    Добавлено: 11:52 14-08-2009   
Endeavour
 1015 EGP


Рейтинг канала: 2(23)
Репутация: 105
Сообщения: 7041
Откуда: guess
Зарегистрирован: 26.05.2005
Rokar :
и т.д.
по-английскому, да. юзайте словарь хотя бы, во многих инишках названия значений - self explanatory Хы... Подмигиваю
    Добавлено: 11:57 14-08-2009   
Rokar
 1221 EGP


Модератор
Рейтинг канала: 3(47)
Репутация: 237
Сообщения: 17628
Откуда: дремучее Подмосковье
Зарегистрирован: 21.08.2002
Не забывай еще о различном количестве параметров Подмигиваю Так что перевод переводом, но и знания не помешают. Да.
_________________
Непостоянство тоже бывает постоянным
    Добавлено: 12:23 14-08-2009   
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
    Добавлено: 13:58 14-09-2010   
Канал Freelancer -> МОДовый отсек: «Скрипты сингловых миссий»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Имею я право первый раз за два года создать тему с фигней??? (SunnyGale)

  » Скрипты сингловых миссий | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18