Приветствую Вас Гость | RSSГлавная | Создание объектов:AEmitter,MOSRotating,MOSParticle и MOPixel - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Статьи » Создание модов » Создание объектов:AEmitter,MOSRotating,MOSParticle и MOPixel (Автор: zoidberg)
Создание объектов:AEmitter,MOSRotating,MOSParticle и MOPixel
Xt3Ri4NДата: Вторник, 05.06.2012, 17:30 | Сообщение # 1
Краб
Группа: Администраторы
Сообщений: 725
Награды: 7  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Обзор всех существующих объектов в Cortex Command с приметками для lua-скриптов (выделено [])
Важные моменты выделены звёздочками

Все движущиеся объекты в CC называются Movable Object (MO)
Для всех объектов столкновения друг с другом или с землей (ландшафтом) просчитываются между их атомами (mopixel, mosparticle) или группами атомов (mosrotating, aemitter)

Идём от лёгкого к сложному:

MOPixel - пиксель (пуля, капля и т.д.). Обычный пиксель, 1х1, возможен шлейф и свечение.

Пример:
Code

AddEffect = MOPixel // для задания нового mopixel'я обычно используется addeffect, addammo (*разницы нет никакой*, можно даже addactor писать)
  PresetName = Spark Yellow 1 // имя пикселя
  ScriptPath = Base.rte/Effects/Pyro/fix.lua // путь к скрипту
  Mass = 0 // масса пикселя, кг. (от -inf до +inf)
  PinStrength = 1000 // сила, которую необходимо приложить, чтоб сбить MO с позиции
  GlobalAccScalar = 1 // модификатор силы притяжения (0 - сила притяжения не действует, 1 - без изменений (9,8) и т. д.)
  AirResistance = 0.2 // сопротивление воздуху - какая часть скорости будет отниматься каждый фрейм (~16 мс.)
// если пиксель летит со скоростью 100 м/с, и airresistance = 0.2 то через ~16 мс. (1 фрейм) его скорость будет 80 м/с (100 * (1 - 0.2) = 80), потом 64 (80 * (1 - 0.2) = 64), потом 51.2 и т. д.
  RestThreshold = 500 // сопротивление "уходу на отдых" - время в мс. которое должно пройти после того как пиксель упал на землю и перестал двигаться до момента когда он станет частью земли.
// значения <= 0 используются для предотвращения "ухода на отдых", хоть это и не эффективно
// [self.ToSettle = false гораздо лучше]
  LifeTime = 75 // время жизни пикселя, в мс.
  Sharpness = 1 // острота пикселя (см. ниже).
  HitsMOs = 0 // сталкивается ли этот пиксель с другими MO, у которых параметр getshitbymos равен 1.
  GetsHitByMOs = 0 // сталкиваются ли другие MO, у которых параметр hitsmos равен 1, с этим пикселем
// для пикселей этот параметр *должен равнятся 0, иначе игра вылетит с ошибкой
  Color = Color // цвет пикселя, в формате RGB, в палитре
   R = 255
   G = 255
   B = 187
  Atom = Atom // т. к. пиксель 1х1, то и "атом" у него 1.
   Material = Material // задаем материал атому
    CopyOf = Air // материал "атома" (пикселя)
   TrailColor = Color // цвет шлейфа, в палитре
    R = 255
    G = 255
    B = 159
   TrailLength = 8 // максимальная длина шлейфа
// блок свечения (glow)
  ScreenEffect = ContentFile // придаём пикселю свечение
   FilePath = Base.rte/Effects/Glows/YellowTiny2.bmp // путь к изображению свечения
// изображение свечения не обязано быть в палитре, прозрачным цветом для него является чёрный.
  EffectStartStrength = 1 // насыщенность свечения в момент его появления (от 0 до 1, числа выше 1 постепенно инвертируют цвета, делая белый прозрачным а чёрный видимым)
  EffectStopStrength = 1 // насыщенность свечения перед тем, как оно пропадёт
  EffectAlwaysShows = 1 // показывается ли свечение на протяжении всей "жизни" объекта, к которому прикреплено
// ели предыдущий параметр равен 0, задаются два следующих:
  EffectStartTime = 0 // время, с которого появится свечение (сравнивается с Age - "возрастом" пикселя)
// [пиксель с Age = 1 не будет светится при любых обстоятельствах]
  EffectStopTime = 600 // время прекращения свечения. аналогично пред. параметру


*Подробнее о остроте

*MOPixel'и не могут иметь гибы

*[MOPixel'и не имеют MOID]

MOSParticle - в общем, тот-же пиксель, но со спрайтом.

Code

AddEffect = MOSParticle // аналогично MOPixel'ю
  PresetName = Fire Puff Medium // имя
  ScriptPath = Base.rte/Effects/Pyro/fix.lua // путь к файлу скрипта
  Mass = 0.2 // тут и далее - аналогично пикселю
  GlobalAccScalar = -0.24
  AirResistance = 0.1
  RestThreshold = 500
  LifeTime = 400
  Sharpness = 0
  PinStrength = 10
  HitsMOs = 0
  GetsHitByMOs = 0 // *должен = 0
  SpriteFile = ContentFile // спрайт, обязателен
   FilePath = Base.rte/Effects/Pyro/FirePuffMedium.bmp // путь к файлу (в палитре)
  FrameCount = 6 // количество кадров (если требуется анимация)
  SpriteOffset = Vector // точка относительно левого верхнего угла картинки, но оба значения (х и у) берутся с противоположным знаком (т. е. теперь х инвертирован, а у как у Декарта)
   X = -14
   Y = -14
  Atom = Atom // также как и MOPixel, MOSParticle имеен один атом, расположенный в точке sprite offset
   Material = Material
    CopyOf = Air // материал "атома" (пикселя)
   TrailLength = 0 // шлейф, как правило, не используется
  Framerate = 0 // если lifetime ограничен и framerate = 0 то длительность показа каждого кадра распределится в зависимости от их кол-ва и самого lifetime
// если у MOSParticle'а 5 кадров, lifetime = 1000 (мс) то каждый кадр будет показан 200 мс (1000 / 5 = 200)
// если lifetime не ограничен или нам надо чтоб анимация проигралась не один раз, используется framerate - длительность одного кадра в мс.
// блок свечения, аналогичен пикселю
  ScreenEffect = ContentFile
   FilePath = Base.rte/Effects/Glows/YellowSmall.bmp
  EffectStartTime = 0
  EffectStopTime = 200
  EffectStartStrength = 0.65
  EffectStopStrength = 0.3


*MOSParticle'ы не имеют гибов

*MOSParticle'ы не вращаются (кроме анимации)

*[MOSParticle'ы не имеют MOID]

А теперь самое интересное.

MOSRotating - MO, который может вращаться, иметь гибы, прикрепления и свечение.

Code

AddActor = MOSRotating // задаём новый MOSRotating (addeffect и остальные тоже работают)
  PresetName = Dropship Dock // имя
  PinStrength = 11000 // см. выше
  Mass = 80 // масса
  Buyable = 1 // возможность купить через *меню постройки (не покупки)
  // в меню покупки доступны только helddevice, tdexplosive, actor а также объекты дочерних классов, с парамаетром buyable = 1
  GoldCost = 40 // стоимость
  RestThreshold = 0 // см. выше
  HitsMOs = 0 // см. выше
  GetsHitByMOs = 1 // для MOSRotating'а можно здесь и 1 поставить
  OrientToVel = 0.8 // определяет скорость, с которой MOSRotating будет поворачиватся, пока не будет направлен в направлении полёта
// обьясняю: есть, например, стрела - сзади перья, спереди наконечник. если стрела летит вниз и orient to vel = 1 то она будет повернута наконечником вниз, если = 0, то она не будет менять свой угол наклона в зависимости от направления движения
  SpriteFile = ContentFile // спрайт (обязателен)
   FilePath = Base.rte/Scenes/Objects/BunkerModules/DropshipDock.bmp // путь к спрайту
  FrameCount = 1 // кол-во кадров
  SpriteOffset = Vector // точка - центр масс MOSRotating'а, относительно левого верхнего угла, аналогично MOSParticle'у
   X = -60
   Y = -24
  HFlipped = 0 // начальное (при создании) отражение по горизонтали
  ScriptPath = Base.rte/Scenes/Objects/BunkerModules/DropshipDock.lua // путь к скрипту
  EntryWound = AEmitter // задаём входное повреждение
   CopyOf = Dent Metal Light
  ExitWound = AEmitter // повреждение на выходе
   CopyOf = Dent Metal Light
  AtomGroup = AtomGroup // группа атомов этого MOSRotating'а (для столкновений с *другими MO)
   AutoGenerate = 1 // автоматическая генерация атомов
   Material = Material // если autogenerate = 1, материал из которого будут все сгенерированные атомы
    CopyOf = Military Stuff // задание материала
   Resolution = 1 // если autogenerate = 1, "качество" - сколько будет пропущено пикселей прежде чем будет сгенерировано следующий атом (если = 0, то будет заполнено каждый пиксель спрайта (кроме прозрачных, конечно же))
   Depth = 0 // ширина отступа от краёв спрайта (от краев видимой части) для генерации группы атомов
  DeepGroup = AtomGroup // аналогично atom group, но используется для столкновений с землей
   AutoGenerate = 1
   Material = Material
    CopyOf = Military Stuff
   Resolution = 4
   Depth = 6
  DeepCheck = 1 // проверка deep group, если = 0 то блок deepgroup можно удалить, для столкновений с землей будет использоватся atom group
  AddEmitter = AEmitter // новое прикрепление - эмиттер
   CopyOf = Coalition Missile Launcher FX // его имя
   ParentOffset = Vector // точка относительно sprite offset'а MOSRotating'а,  которую будет помещем sprite offset прикрепления и на которой он будет закреплен
    X = -6
    Y = 0
   DrawAfterParent = 1
  AddGib = Gib // задаём новый гиб
   GibParticle = MOPixel // гиб будет пикселем
    CopyOf = Spark Yellow 1
   Count = 18 // кол-во гибов
   Spread = 2.25 // разброс, в радианах (3.14 - разброс на 360 градусов)
   MaxVelocity = 20 // макс. скорость гиба
   MinVelocity = 8 // мин. скорость
   LifeVariation = 0.50 // вариация времени жизни гиба (значение 0.5 значит что гиб будет иметь от 0.5 до 1.5 своего lifetime'а, значение 0.1 - от 0.9 до 1.1)
   InheritsVel = 1 // наследуется ли скорость гибом (1 - да, 0 - нет)
   Offset = Vector // точка, относительно sprite offset, в какой появится гиб
    X = -12
    Y = -1  
  GibImpulseLimit = 10000 // сила, требуемая для того, чтоб MOSRotating разлетелся на гибы
  GibWoundLimit = 60 // кол-во повреждений, требуемое для того, чтоб MOSRotating разлетелся на гибы


* работоспособнось свечений для MOSRotating'ов не подтверждена

*[MOSRotating'и имеют MOID, если getshitbymos = 1]

AEMitter - MO, который вращается, имеет гибы, свечение и испускает другие MO.

Code

AddAmmo = AEmitter // см. выше
  PresetName = Destroyer Cannon Shot // имя эмиттера
  Mass = 10
  LifeTime = 6000
  GlobalAccScalar = 0
  RestThreshold = -500
  OrientToVel = 0.8
  Sharpness = 3
  HitsMOs = 0
  GetsHitByMOs = 0
  ScriptPath = Dummy.rte/Devices/Weapons/Launchers/Destroyer.lua
  SpriteFile = ContentFile
   FilePath = Dummy.rte/Devices/Sprites/DestroyerShot.bmp
  FrameCount = 1
  SpriteOffset = Vector
   X = -6
   Y = -6
  AtomGroup = AtomGroup
   AutoGenerate = 1
   Material = Material
    CopyOf = Bullet Metal
   Resolution = 2
   Depth = 0
  DeepGroup = AtomGroup
   AutoGenerate = 1
   Material = Material
    CopyOf = Bullet Metal
   Resolution = 4
   Depth = 1
  DeepCheck = 0 // до этого момента aemitter от mosrotating'а не отличается
  EmissionOffset = Vector // отступ от spite offset'а из которого будет испускатся эмиссия
   X = -7
   Y = 0
  EmissionAngle = Matrix // направление эмиссии
   AngleDegrees = 180 // значение в градусах (0 - вправо (по умолчанию), 90 - вверх, 180 - влево, и т. д.)
  AddEmission = Emission // задаём эмиссию (только addemission)
   EmittedParticle = MOPixel // испускатся будет пиксель
    CopyOf = Destroyer Emission Particle 1 // с вот этим именем
   Spread = 3.14 // разброс в радианах
   MaxVelocity = 30 // макс. скорость эмиссии, м/с (20пикс = 1м)
   MinVelocity = 20 // мин. скорость, м/с.
   PushesEmitter = 0 // толкает ли эмиссия эмиттер (используется в ракетах, двигателях)
   StartTimeMS = 0 // время начала испускания, мс.
   StopTimeMS = 23 // время завершения испускания, мс.
  AddEmission = Emission
   EmittedParticle = MOPixel
    CopyOf = Destroyer Emission Particle 2
   Spread = 3.14
   MaxVelocity = 30
   MinVelocity = 20
   BurstSize = 3 // кол-во выбрасываемых частиц за раз, для первого выброса
   PushesEmitter = 0
   StartTimeMS = 23
  AddEmission = Emission
   EmittedParticle = MOPixel
    CopyOf = Destroyer Trail Glow
   Spread = 0
   MaxVelocity = 0
   MinVelocity = 0
   PushesEmitter = 0
   BurstScale = 2 // модификатор скорости и интенсивности эмиссии
   ParticlesPerMinute = 3500 // кол-во выбросов в минуту (если burst size = 2, например, то самих частиц (particles) будет в 2 раза больше
   // если меньше 60 - то будет просчитыватся шанс выброса ежесекундно (при значении 30 - шанс 50%, при 6 - 10%)
  AddEmission = Emission
   EmittedParticle = MOPixel
    CopyOf = Destroyer Emission Kick
   Spread = 3.14
   MaxVelocity = 100
   MinVelocity = 100
   PushesEmitter = 1
   StartTimeMS = 3800 // эта эмиссия начнет испускаться через 3800мс. (3.8сек.)
  EmissionEnabled = 1 // включена ли эмиссия по умолчанию [emitter:EnableEmission(true/false)]
  EmissionsIgnoreThis = 0 // будет ли эмиссия игнорировать эмиттер и его родителей
  ParticlesPerMinute = 3500 // общее значение, будет использовано для тех типов эмиссий, в которых не указано индивидуально
  // параметры, начинающиеся на burst - применяются для первого выброса, при появлении эмиттера (в основном для wound'ов)
  BurstSize = 1 // общее значение (см.выше)
  BurstScale = 1 // общее значение (см.выше)
  BurstDamage = 0 // урон, наносящийся при появлении эмиттера (если это эмиттер повреждений (wound))
  BurstTriggered = 1 // будет ли выполнен выброс эмиссий сразу же при появлении emitter'а
  BurstSpacing = 500 // задержка между появлением emitter'а и выбросом (если bursttriggered = 0)
  EmissionDamage = 0 // урон, наносящийся с каждым выбросом (в основном для wound'ов)
  EmissionCountLimit = 40 // максимальное кол-во выбросов эмиссий, после которого они прекращаются (в основном для wound'ов)
  Flash = Attachable // "вспышка" - эффект, который будет появлятся в точке emissionoffset во время функционирования эмиттера (только attachable, другие не проверял)
   CopyOf = Muzzle Flash Pistol // имя вспышки
  FlashOnlyOnBurst = 0 // если 1, то "вспышка" отображается только при первом выбросе, если 0 - всегда
//    EmissionSound = Sound // звук, воспроизводящийся во время выбросов
//  AddSample = ContentFile // добавить новый звук
//   FilePath = Base.rte/ // путь к файлу (.wav)
//  LoopSetting = -1 // -1 - повторять звук, пока происходит эмиссия, 0 - воспроизводить звук один раз
  BurstSound = Sound // звук первого выброса
   CopyOf = Metal Penetration Hit // используется ранее обозначенная группа звуков с именем "Metal Penetration Hit"
   PresetName = Brain Pod Hit // название группы звуков
   AddSample = ContentFile // новый звук
    FilePath = Base.rte/Effects/GlassImpactA.wav // путь к файлу
   AddSample = ContentFile
    FilePath = Base.rte/Effects/GlassImpactB.wav
   AddSample = ContentFile
    FilePath = Base.rte/Effects/GlassImpactC.wav   
//    EndSound = Sound // звук окончания эмиссии
//  AddSample = ContentFile
//   FilePath = Base.rte/
  AddGib = Gib
   GibParticle = MOPixel
    CopyOf = Destroyer Emission Particle 1
   Count = 30
   Spread = 3.14
   MaxVelocity = 40
   MinVelocity = 40
   InheritsVel = 0
  GibImpulseLimit = 150

   
   
//////////// прочее

// группы звуков

// группы звуков используются чтобы разнообразить озвучку.
// при вызове определенной группы, воспроизводится случайный звук из тех, которые включены в нее.
// вероятность воспроизведения каждого из звуков группы равна.
[code]
AddSound = Sound // задаем новую группу звуков (только addsound = sound)
  PresetName = Unseen Reveal Blip // имя группы
  AddSample = ContentFile // новый звук
   FilePath = Base.rte/Sounds/Plopp1.wav // путь к файлу
  AddSample = ContentFile
   FilePath = Base.rte/Sounds/Plopp2.wav
  AddSample = ContentFile
   FilePath = Base.rte/Sounds/Plopp3.wav


// прикрепления (attachables)
// прикрепления это, по сути, те же mosrotating'и, но могут быть прикреплены к акторам, эмиттерам, mosrotating'ам.

Code

AddEffect = Attachable // полностью аналогично mosrotating'у
  PresetName = Muzzle Flash Pistol
  Mass = 0
  HitsMOs = 0
  GetsHitByMOs = 0
  SpriteFile = ContentFile
   FilePath = Base.rte/Effects/Pyro/MuzzleFlash02.bmp
  FrameCount = 3
  SpriteOffset = Vector
   X = -2
   Y = -6
  AtomGroup = AtomGroup
   CopyOf = Null // здесь используется ранее заданая группа атомов под названием "Null"
  DeepCheck = 0
  ScreenEffect = ContentFile
   FilePath = Base.rte/Effects/Glows/YellowSmall.bmp
  DrawAfterParent = 0
   
  // разница лишь в следующих строках:
  JointStrength = 50 // сила, которую необходимо приложить, чтобы сбить данный аттачмент
  JointStiffness = 0.6 // коэфициент передачи сил.  
  //если к аттачменту будет приложена сила 100 (ньютонов ли, лол?), и данный параметр равен 0.6, то объекту, к которому аттачмент прикреплен, будет передано 60 (100 * 0.6)
  JointOffset = Vector // сдвиг точки крепления относительно spriteoffset'а аттачмента
   X = 0
   Y = 0
  ParentOffset = Vector // сдвиг точки крепления относительно spriteoffset'а объекта, к которому аттачмент прикреплен.
   X = 0
   Y = 0


// подробнее про joint-, parent-, и прочие offset'ы - http://www.forums.datarealms.com/viewtopic.php?f=1&t=19092

Code

иерархия классов:

- entity
   |- scene object
   |  |- movable object
   |  |  |- mo sprite
   |  |  |  |- mos rotating
   |  |  |  |  |- attachable
   |  |  |  |  |  |- a emitter
   |  |  |  |  |  |- held device
   |  |  |  |  |  |  |- hd firearm
   |  |  |  |  |  |- magazine
   |  |  |  |  |  |- thrown device
   |  |  |  |  |  |  |- td explosive
   |  |  |  |  |- actor
   |  |  |  |  |  |- a crab
   |  |  |  |  |  |- a craft
   |  |  |  |  |  |  |- ac dropship
   |  |  |  |  |  |  |- ac rocket
   |  |  |  |  |  |- a door
   |  |  |  |  |  |- a human
   |  |  |- mo pixel


Мои разработки:

Русификатор для B32
Русификатор для B26
 
SfabrikanДата: Вторник, 05.06.2012, 17:38 | Сообщение # 2
Швабри
Группа: Половина модератора
Сообщений: 1474
Награды: 1  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Гораздо лучше чем моя которую предлагал я!

 
Doktor_InkvizitorДата: Вторник, 05.06.2012, 18:05 | Сообщение # 3
Зомби
Группа: Проверенные
Сообщений: 243
Награды: 3  +
Репутация:  ±
Замечания:  ±
Статус: Offline
занятно.
 
Mad_AlexДата: Вторник, 05.06.2012, 18:18 | Сообщение # 4
Печальный Скнюссик
Группа: Главный Администратор
Сообщений: 1914
Награды: 38  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Хорошо, одобряю, все точно и верно.

Пару уточнений:
Quote (armored)
MOSRotating'и имеют MOID

Только при GetsHitByMOs = 1
Остальные (например куски дропшипа, которые давят солдат, но попасть по которым пулей нельзя) - не имеют.

Еще эмиттер и аттачабл должны быть описаны в обратном порядке, потому эмиттер - это подвид аттачабла (AEmitter = Attachable Emitter) - он имеет те же свойста, но добавляет свои.

Quote (armored)
MOSRotating - MO, который может вращаться, иметь гибы, прикрепления и свечение.

Свечение для MOSR действительно можно добавить без каких-либо проблем, но если я ничего не путаю, отображаться оно все равно не будет.

Quote (armored)
StartTimeMS = 0 // время начала испускания
StopTimeMS = 23 // время завершения испускания

Думаю, имеет смысл дописать ко всем аналогичным параметрам, что они принимают значения в миллисекундах.
Чтоб понятнее было.
Quote (armored)
AngleDegrees = 180 // 0 - вправо (по умолчанию), 90 - вверх, 180 - влево, 270 - вниз

А тут просто написать, что принимает значения угла в градусах, от 0 до 359

Вроде все, так вообще никаких критических замечаний нет.
Приятно удивил.

Особенно радует, что статья написана с расчетом на умного читателя, а не пермануба. Это заставляет меня изменить свое мнение и согласиться, что такие статьи действительно могут быть полезны и писать их стоит.

Но это ведь, кстати, перевод датареалмсовской статьи, а не с нуля написано, так?


Если вы читаете этот текст, значит вы посетили кладбище моей юности.
Прощай, cortexcommandru.3dn.ru, ты для меня много значил когда-то.
 
Mad_AlexДата: Вторник, 05.06.2012, 18:22 | Сообщение # 5
Печальный Скнюссик
Группа: Главный Администратор
Сообщений: 1914
Награды: 38  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Перечитай пост внимательней.

Если вы читаете этот текст, значит вы посетили кладбище моей юности.
Прощай, cortexcommandru.3dn.ru, ты для меня много значил когда-то.
 
Mad_AlexДата: Вторник, 05.06.2012, 18:52 | Сообщение # 6
Печальный Скнюссик
Группа: Главный Администратор
Сообщений: 1914
Награды: 38  +
Репутация:  ±
Замечания:  ±
Статус: Offline
А какая разница? Я просто сказал, что статья хорошая и подметил, что можно уточнить. При чем тут ты или зойдберг?

Если вы читаете этот текст, значит вы посетили кладбище моей юности.
Прощай, cortexcommandru.3dn.ru, ты для меня много значил когда-то.
 
METALalomДата: Вторник, 05.06.2012, 19:46 | Сообщение # 7
Ронин
Группа: Проверенные
Сообщений: 598
Награды: 15  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Уточни что AEmitter не может испускать другой AEmitter.
 
zoidbergДата: Вторник, 05.06.2012, 20:48 | Сообщение # 8
Манекен
Группа: Проверенные
Сообщений: 251
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
может, я гарантирую это.
а еще в статье нет переведенного текста, совсем-совсем.


hey, i've just killed someone with the rock!

Сообщение отредактировал zoidberg - Вторник, 05.06.2012, 20:50
 
METALalomДата: Вторник, 05.06.2012, 20:58 | Сообщение # 9
Ронин
Группа: Проверенные
Сообщений: 598
Награды: 15  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Проверь. Когда мне нужно было добавить эмитер в эмитер приходилось извращаться прикрепляя его к мосротейтингу.
 
DjavdetДата: Вторник, 05.06.2012, 21:09 | Сообщение # 10
Манекен
Группа: Проверенные
Сообщений: 377
Награды: 7  +
Репутация:  ±
Замечания:  ±
Статус: Offline
zoidberg, Какие люди, привет!
METALalom, Как неможет У меня миномёт как мотрёшка на AEmitter

Добавлено (05.06.2012, 21:06)
---------------------------------------------
Наврал MOSRotating тоже ставил я

Добавлено (05.06.2012, 21:09)
---------------------------------------------

Code
AddDevice = AEmitter
  PresetName = Mortar Cluster Particle Active
  Mass = 2
  RestThreshold = -500
  HitsMOs = 1
  GetsHitByMOs = 1
  SpriteFile = ContentFile
   FilePath = RCSA.rte/Devices/Mortar/SpikeBall.bmp
  FrameCount = 1
  SpriteOffset = Vector
   X = -4
   Y = -3
  EntryWound = AEmitter
   CopyOf = Hit a ricochet
  ExitWound = AEmitter
   CopyOf = Hit a ricochet
  Buyable = 0
  AtomGroup = AtomGroup
   AutoGenerate = 1
   Material = Material
    CopyOf = Mega Metal
   Resolution = 2
   Depth = 0
  DeepGroup = AtomGroup
   AutoGenerate = 1
   Material = Material
    CopyOf = Mega Metal
   Resolution = 4
   Depth = 10
  DeepCheck = 0
  JointStrength = 10
  JointStiffness = 0.001
  DrawAfterParent = 1
  GibSound = Sound
   AddSample = ContentFile
    Path = RCSA.rte/Devices/Mortar/SpikeBall Active.ogg
  GibImpulseLimit = 5//0.1
  GibWoundLimit = 4
  AddGib = Gib
   GibParticle = AEmitter
    CopyOf = Mortar Cluster Particle A
   Count = 1
   Spread = 0
   MaxVelocity = 0
   MinVelocity = 0
   InheritsVel = 0

Хотя тут сработало


 
zoidbergДата: Вторник, 05.06.2012, 21:34 | Сообщение # 11
Манекен
Группа: Проверенные
Сообщений: 251
Награды: 2  +
Репутация:  ±
Замечания:  ±
Статус: Offline
djavdet, у тебя там гибы, а мы про эмиссии.

Code

AddAmmo = AEmitter
    PresetName = Revolver Cannon Recoil Skip
    Mass = 0.1
    OrientToVel = 1
    HitsMOs = 0
    GetsHitByMOs = 0
    SpriteFile = ContentFile
     FilePath = Base.rte/Null_.bmp
    LifeTime = 1
    FrameCount = 1
    AtomGroup = AtomGroup
     CopyOf = Null
    DeepCheck = 0
    AddEmission = Emission
     EmittedParticle = MOSParticle
      CopyOf = Tiny Smoke Ball 1
      LifeTime = 200
      GlobalAccScalar = 0.0
     ParticlesPerMinute = 1
     BurstSize = 5
     Spread = 1.5
     MaxVelocity = 1
     MinVelocity = 0
     PushesEmitter = 0
    AddEmission = Emission
     EmittedParticle = MOSParticle
      CopyOf = Tiny Smoke Ball 1
      LifeTime = 150
      GlobalAccScalar = 0.0
     ParticlesPerMinute = 1
     BurstSize = 5
     Spread = 0.7
     MaxVelocity = 2
     MinVelocity = 1
     PushesEmitter = 0
    AddEmission = Emission
     EmittedParticle = MOSParticle
      CopyOf = Side Thruster Blast Ball 1
      LifeTime = 200
      GlobalAccScalar = 0.0
      AirResistance = 0.3
     ParticlesPerMinute = 1
     BurstSize = 5
     Spread = 0.2
     MaxVelocity = 15
     MinVelocity = 10
     PushesEmitter = 0
    AddEmission = Emission
     EmittedParticle = MOSParticle
      CopyOf = Fire Puff Small
     ParticlesPerMinute = 1
     BurstSize = 3
     Spread = 0.2
     MaxVelocity = 3
     MinVelocity = 0
     PushesEmitter = 0
    AddEmission = Emission
     EmittedParticle = MOPixel
      CopyOf = Glow Explosion Huge
     ParticlesPerMinute = 1
     BurstSize = 1
     Spread = 0
     MaxVelocity = 7
     MinVelocity = 3
     PushesEmitter = 0
    AddEmission = Emission
     EmittedParticle = AEmitter
      CopyOf = Revolver Cannon Shot
     ParticlesPerMinute = 1
     BurstSize = 1
     Spread = 0.0
     MaxVelocity = 80
     MinVelocity = 80
     PushesEmitter = 0
    EmissionEnabled = 1
    EmissionsIgnoreThis = 0
    BurstTriggered = 1
    


почти оригинальный код revolver cannon из далекого 23го билда.


hey, i've just killed someone with the rock!

Сообщение отредактировал zoidberg - Вторник, 05.06.2012, 21:39
 
Mad_AlexДата: Вторник, 05.06.2012, 21:52 | Сообщение # 12
Печальный Скнюссик
Группа: Главный Администратор
Сообщений: 1914
Награды: 38  +
Репутация:  ±
Замечания:  ±
Статус: Offline
AEmitter может испускать даже солдат, ракеты и двери, так что неправда.

Если вы читаете этот текст, значит вы посетили кладбище моей юности.
Прощай, cortexcommandru.3dn.ru, ты для меня много значил когда-то.
 
METALalomДата: Вторник, 05.06.2012, 21:55 | Сообщение # 13
Ронин
Группа: Проверенные
Сообщений: 598
Награды: 15  +
Репутация:  ±
Замечания:  ±
Статус: Offline
Точно помню что мне выдавало ошибку, когда я пытался затолкать эмитер в эмитер. Видимо проблема была единичная.
 
Форум » Статьи » Создание модов » Создание объектов:AEmitter,MOSRotating,MOSParticle и MOPixel (Автор: zoidberg)
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последние темы Читаемые темы Последние зарегистрированные пользователи
Флудильня! [yksys147keti3626]

АнтиБК/Бойцовский клуб/Сombats [greendayone82]

The Sims 3 [greendayone82]

ЯДЕРНЫЙ ТРОН!!! [greendayone82]

Очень интересная игра [greendayone82]

Проблема с Loadouts [mekkievbk]

Русификатор Cortex Command Build 32 [puksus]

CC теперь в Open Source и B33 с мультиплеером !!! [gjrfytn]

игра обломи предыдущего [puksus]

Smarter AI Mod v1 [TerrariMan]

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

[2]>Свалка арта. [843]

[3]>игра обломи предыдущего [360]

[4]>Фан-арт по Cortex Command [349]

[5]>Песенки или музыка. [268]

[6]>Russian Combat Small Arms {B24-B27} [246]

[7]>[UNITED TERRAN FORCES] [240]

[8]>Elzirs [229]

[9]>Выход 24 билда. [214]

[10]>Cortex Command - Online Deathmatch [208]

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]

ranatolevnko200 [01.10.2023|17:56]

Silencer18 [24.07.2023|21:52]

yksys147keti3626 [30.01.2023|23:11]

islambabaev1100 [22.12.2022|01:14]


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