Создание объектов: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
| Точно помню что мне выдавало ошибку, когда я пытался затолкать эмитер в эмитер. Видимо проблема была единичная.
|
|
| |
Статистика Форума |
Последние темы |
Читаемые темы |
Последние зарегистрированные пользователи |
|
|
|
|