Приветствую Вас Гость | RSSГлавная | Создание стандартной двери в СС - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Создание стандартной двери в СС
AlexandrДата: Среда, 21.04.2010, 16:44 | Сообщение # 1
Краб
Группа: Проверенные
Сообщений: 1
Награды: 3  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Здравствуйте! Первый раз, так что не бейте))) smile

Создание дверей стандартных (не вращающихся), я как многие делают, разобью на пошаговые блоки, сразу предупреждаю, надо будет долго терпеть прежде чем всё заработает.

Шаг 1: Описание программных блоков в ".ini", поможет ориентироваться в просторах файла и даст первые намёки на логику взаимодействия программных блоков.

Шаг 2: Здесь я разбиваю на подшаги "а", "б", "в" и т.п, и дам самое основное, что бы дверь вообще работала хотя бы.

Шаг 3: Добавление эффектов "Gib" (Гибы) - картинки появляющиеся после уничтожения двери или мотора, эффект разрушения.

...

ШАГ 1: Описание прораммных блоков в ".ini":

(Буду лишь по одному экземпляру показывать... всё идёт в правильной последовательности, можно в один ".ini" файл всё бросать)Для сравнения можете посмотреть файл "Cortex Command build 23\Base.rte\Actors\Doors\Doors.ini", или прикреплённый файл "All.rte".

{Внимание!!! Игра по каким-то причинам иногда не хочет принимать ".ini" файлы с русским описаниям, особенно в некоторых местах, например: "PresetName = ALL DoorA // Имя присваемое данному программному блоку, с дверью.", игра выдаст ошибку в этой строчке, так же замечено похожее переодическое поведение с координатмаи. Возможно виной всему раскладка клавиатуры в момент пичатанья "//". По этому советю взять готовый ".ini" файл и менять его без добавления описаний.}

1) Первый программный блок. Определяет значение гиба.(Для манипуляций им в будущем!)

Quote

AddEffect = MOSRotating
PresetName = Door Motor Gib A // Здесь присваиваем имя данному программному блоку или гибу если хотите (для будущего использования)
Mass = 52.75// Масса создаваемого объекта - гиба.

HitsMOs = 1
GetsHitByMOs = 0
SpriteFile = ContentFile
FilePath = ALL.rte/Objects/ALL/Doors/Elements/MotorGibA.bmp // Путь к ".bmp" картинке гиба.
FrameCount = 1
SpriteOffset = Vector
X = -8 // Дополнено - уточнено Mad_Alex: Координаты определяющие центр рисунка, который будет еще и центром тяжести объекта.
Y = -7
AngularVel = 6
AtomGroup = AtomGroup
AutoGenerate = 1
Material = Material
CopyOf = Mangled Metal
Resolution = 4
Depth = 0
DeepCheck = 0

2) Второй программный блок. Определяет значение двери (движущейся его части).

Quote

AddEffect = Attachable
PresetName = ALL DoorA // Имя присваемое данному программному блоку, с дверью.
PinStrength = 10000
Mass = 200 // Масса двери.

HitsMOs = 1
GetsHitByMOs = 1
SpriteFile = ContentFile
FilePath = ALL.rte/Objects/ALL/Doors/Elements/SlideShortA.bmp // Путь к ".bmp" картинке двери.
FrameCount = 1
SpriteOffset = Vector
X = 0 // Дополнено - уточнено Mad_Alex: Координаты определяющие центр рисунка, который будет еще и центром тяжести объекта.
Y = 0
EntryWound = AEmitter
CopyOf = Dent Metal Light
ExitWound = AEmitter
CopyOf = Dent Metal Light
AngularVel = 0
AtomGroup = AtomGroup
AutoGenerate = 1
Material = Material
CopyOf = Door Metal
Resolution = 4
Depth = 0
DeepGroup = AtomGroup
AutoGenerate = 1
Material = Material
CopyOf = Door Metal
Resolution = 6
Depth = 4
DeepCheck = 1
JointStrength = 300
JointStiffness = 0.5
BreakWound = AEmitter
CopyOf = Wound Bone Break
JointOffset = Vector
X = 0
Y = 0
DrawAfterParent = 1
GibImpulseLimit = 7500 // Это значение определяет какая сила воздействия начинает наносить вред двери..
GibWoundLimit = 75 // Это количество жизней, двери.
// GibSound = Sound
// CopyOf = Bone Crack
AddGib = Gib // Этот программный блок прикрепляет гибы к двери.
GibParticle = MOSRotating
CopyOf = Door Base Gib // Название присвоенное гибу в программном блоке 1.
Offset = Vector
X = 0
Y = 7
MinVelocity = 15

3) Третий программный блок. Определяет значения мотора.

Quote

AddEffect = ADoor
PresetName = ALL MotorA // Имя присваемое данному программному блоку, с мотором.
Mass = 117.72 // Масса мотора.

HitsMOs = 0
GetsHitByMOs = 1
SpriteFile = ContentFile
FilePath = ALL.rte/Objects/ALL/Doors/Elements/MotorA.bmp //Путь к ".bmp" картинке мотора.
FrameCount = 4
SpriteOffset = Vector
X = 0 // Дополнено - уточнено Mad_Alex: Координаты определяющие центр рисунка, который будет еще и центром тяжести объекта.
Y = 0
AngularVel = 6
AtomGroup = AtomGroup
AutoGenerate = 1
Material = Material
CopyOf = Military Stuff
Resolution = 4
Depth = 0
DeepCheck = 0
GibImpulseLimit = 5000 // Это значение определяет какая сила воздействия начинает наносить вред мотору.
GibWoundLimit = 30 // Это количество жизней мотора.
// Сюда также можно прикрепить гибы (смотреть конец второго программного блока)

4) Четвёртый программный блок. Он соединяет мотор и дверь (привязывает дверь к мотору).

Quote

AddActor = ADoor
CopyOf = ALL MotorA // Название присвоенное программному блоку отвечающему за мотор.
PresetName = ALL SistemA // Название присваемое программному блоку в котором совместили дверь и мтор.
PinStrength = 10000
SpriteAnimMode = 5
SpriteAnimDuration = 150 // Скорость анимации мотора.
EntryWound = AEmitter
CopyOf = Leaking Machinery
ExitWound = AEmitter
CopyOf = Leaking Machinery
Status = 0
Health = 100
Team = 0
CharHeight = 40
Door = Attachable
CopyOf = ALL DoorA //Название присвоенное программному блоку отвечающему за дверь.
OpenOffset = Vector
X = -29 // Координаты двери в открытом состоянии, относительно места установки мотора, а не его рисунка. (В пикселях)
Y = 0
ClosedOffset = Vector
X = -29 // Координаты двери в закрытом состоянии, относительно места установки мотора, а не его рисунка. (В пикселях)
Y = 24
OpenClosedAngle = Matrix
AngleDegrees = 0 //Поворот ".bmp" картинки двери. (В градусах)
DoorMoveTime = 750 //Время закрытия-открытия двери(ей).
// DoorOpenSound
ClosedByDefault = 1
ResetDefaultDelay = 2000 // Через сколько после установки в игру закроются двери, как это бывает обычно у всех.
SensorInterval = 100
AddSensor = Sensor
StartOffset = Vector
X = 0 // Координаты пройдя в которых дверь откроется, относительно места установки мотора, а не его рисунка. (В пикселях)
Y = 28 //Удивительно, но со знаками (+ и -) какая-то белиберда, это вы уж сами тестируйте, но похоже здесь надо ставить знак наоборот. Что то вроде, того что не от мотора считается, а от точки считается где мотор находится, но мотор всё равно остаётся на месте и точка оказывается там где нам надо.
SensorRay = Vector
X = -55 // Точка координат до которой тянется линия от предыдущей точки координат (смотреть выше) войдя в которую откроются двери. (В пикселях, относительно предыдужей точки координат)
Y = 0
SkipPixels = 6 // Дополнено - уточнено Mad_Alex: Чем меньше значение параметра SkipPixels тем плотнее луч соединяющий координаты "StartOffset = Vector" и "SensorRay = Vector", детальнее проверка наличия актора в луче и больше он кушает быстродействие

5) Пятый программный блок. Добавляет в СС объект и определяет местонахождение моторов.

Quote

AddTerrainObject = TerrainObject // Добавляем объект.
PresetName = DoorT2 // Название объекта которое будет отображаться в игре.
AddToGroup = ALL (Doors) // Группа в которой будет находиться объект в игре.
GoldCost = 150 // Цена объекта.
FGColorFile = ContentFile // Ниже пути по которым игра найдёт нужные рисунки для создания объекта.
Path = ALL.rte/Objects/ALL/Doors/DoorT2FG.bmp
MaterialFile = ContentFile
Path = ALL.rte/Objects/ALL/Doors/DoorT2Mat.bmp
BGColorFile = ContentFile
Path = ALL.rte/Objects/ALL/Doors/DoorT2BG.bmp
AddChildObject = SOPlacer
PlacedObject = ADoor // Строка отвечающая з создание дверей в объекте.
CopyOf = ALL SistemA // Имя присвоенное программному блоку в котором совместили дверь и мтор.
Offset = Vector
X = 21 // Координаты мотора, относительно центра рисунка. (В пикселях)
Y = -41
AddChildObject = SOPlacer // Это блок второго мотора.
PlacedObject = ADoor
CopyOf = ALL SistemA // Имя присвоенное программному блоку в котором совместили дверь и мтор.
Offset = Vector
X = 21 // Координаты мотора, относительно центра рисунка. (В пикселях)
Y = 41
HFlipped = 1 // Зеркализация, делает его (мотор) наоборот, как отражение тому, что должно было быть без этой команды.
Rotation = Matrix
AngleDegrees = 180 // Поворот рисунка двери. (В градусах)

...

Шаг 2:

А) Создаём дверь, мотор и объект в котором всё это будет находиться.

Б) Создаём ".ini" файл и добавляем туда блок номер 2, но лучше из СС , а не отсюда!
В строке "PresetName = ***" вместо звёздочек пишем имя которым вы хотите назвать этот программный блок.
В строке"FilePath = ###" вместо решёток пишем путь к файлу (".bmp" картинке) вашей двери.[/color]

В) Создаём прораммный блок номер 3 и проделываем те же манипуляции!

Г) Создаём прораммный блок номер 4.
В строке"CopyOf = ###" Вместо решёток пишем как мы назвали программный блок номер 3 (мотор).
В строке"PresetName =***" вместо звёздочек пишем как мы назвали программный блок 2 (дверь).

Д) Создаём программный блок номер 5.
В строке "PresetName = $$$" Вместо долларов пишем как мы назовём наш модуль в СС (в игре).
В строке"AddToGroup = %%%" Вместо процентов пишем в какой группе будет название нашего модуля.
В трёх строках с названиями "Path = ^^^" Вместо вершинок пишем пути к трём разным bmp картинкам модуля на которому будут размещены мотр с дверью.
В строке "CopyOf = @@@" Вместо Собак пишем как мы назвали программный блок номер 4 (слияние двери с мотором).
И указываем координаты размещения моторов относительно центра рисунка модуля. В
"X" и "Y".

Е) После всех манипуляций и установки мотора в нужном месте возвращаемся к прораммному блоку 4 и химичим.

Quote

AddSensor = Sensor
StartOffset = Vector
X = 0 // Координаты пройдя в которых дверь откроется, относительно места установки мотора, а не его рисунка. (В пикселях)
Y = 28 //Удивительно, но со знаками (+ и -) какая-то белиберда, это вы уж сами тестируйте, но похоже здесь надо ставить знак наоборот. Что то вроде, того что не от мотора считается, а от точки считается где мотор находится, но мотор всё равно остаётся на месте и точка оказывается там где нам надо.
SensorRay = Vector
X = -55 // Точка координат до которой тянется линия от предыдущей точки координат (смотреть выше) войдя в которую откроются двери. (В пикселях, относительно предыдужей точки координат)
Y = 0
SkipPixels = 6

Остальные манипуляции проводите пользуясь материалами Шаг 1 для обеспечения правильного места отображения элементов.

...

Шаг 3:

Если вы разобрались с расположением мотора и дверьми , и всё рабтает, можно приступать к освоению гибов.
Заходим в наш злополучный ".ini", хотя для кого как))) И добавляем первый программный блок (ставим перед вторым и желательно оставить пустую строку между блоками. Для сравения всё так же смотрите файл "Cortex Command build 23\Base.rte\Actors\Doors\Doors.ini", ну или прикреплённый файл "All.rte")
В строке "PresetName = ***" вместо звёздочек пишем имя которым вы хотите назвать этот программный блок.
В строке "FilePath = ###" вместо решёток пишем путь к файлу (".bmp" картинке) вашему гибу.

В зависимости от того для чего этот гиб (для мотора или двери) мы в 2 (дверь) или 3 (мотор) программном блоке вставляем некое дополнение

Quote

AddGib = Gib
GibParticle = MOSRotating
CopyOf = *** // Вместо звёздочек пишем название присвоенное гибу в программном блоке 1 (Гибы).
Offset = Vector
X = 0 // Координаты по которым размещается гиб относительно центра рисунка двери (Или мотора если вы вставили это в программный блок 3)
Y = 7
MinVelocity = 15

Если всё сделано правильно , вы увидите как отваливаются куски от вашей двери когда она исчерпала свой лимит жизни))) Удачи в модостроении!!! smile

Всё равно мне до мода полноценного далеко, так что выкладываю две двери после создания которых я и написал эту статью, как пример на котором можно поэкспериментировать:

Прикрепления: ALL.rte.rar (229.2 Kb) · TxtVersiya.txt (11.2 Kb)


Сообщение отредактировал Alexandr - Суббота, 24.04.2010, 11:15
 
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
Флудильня! [gjrfytn]

Techion Warpbot [Blump]

изменение баланса [Mad_Alex]

Carion mod [Bluffy]

"Jupiter" Inc. [Blump]

OnLine Tech [skyline]

Прочность материалов [inache]

Sherk Inc. [Van1997Kuller]

Туториал - ваш первый актор. [Wormctor]

Russian Combat Small Arms {B24-B27} [Djavdet]

[1]>Флудильня! [9]

[2]>[UNITED TERRAN FORCES] [8]

[3]>изменение баланса [5]

[4]>Box Man Mod [5]

[5]>Туториал - ваш первый актор. [4]

[6]>OnLine Tech [3]

[7]>Sherk Inc. [3]

[8]>Techion Warpbot [2]

[9]>"Jupiter" Inc. [2]

[10]>Corporation of Improbable Researches v0.7.5 [2]

Dimasik [24.10.2024|21:30]

space-pay [09.10.2024|00:20]

tonyrose2003 [02.07.2024|06:03]

ktota12345678 [23.06.2024|20:14]

BlackShadow7755 [11.04.2024|22:28]

ghost4559 [28.03.2024|12:29]

rostislavpoarkov55 [21.03.2024|10:44]

dawidponomaryow [08.03.2024|21:16]

nekoplay18 [31.01.2024|20:10]

Provv [19.10.2023|20:58]


Вверх
Русский Фан Сайт Cortex Command © 2024.