My Flettners wont fly :(

Ask questions, discuss ideas, get answers
Post Reply
Coroner47
Posts: 213
Joined: Tue Nov 24, 2009 5:11 am
Location: Canada

Re: My Flettners wont fly :(

Post by Coroner47 »

This might help you. I found this a while ago. Ive never messed with environmental vehicles myself. The bottom of the document should give you a good idea of how they work tho. Also, Apache has some environmental vehicles in his DC Unauthorized mod you can check out. I'm sure his mod is in the "Mod Download" section of the forum. Credit goes to Zeuser[RET]
Environmental vehicles
By: Zeuser[RET]

Back when I was coding for DCX I put forward the term "Environmental vehicles" which simply means that a vehicle is just part of the environement to enahnce how a map feels and can't be flown by either bots or humans.

If you try the latest DCX (0.9) you'll find environmental vehicles on the Sniperfest, Lost village, Lost village Brit and Paintball maps.

A few types of environmental vehicles include:

1 - A pair of Medivac blackhawk helicopters that simply do a fly-by
2 - The same pair of Medivac Blackhawks but are used by the Bots as airborne spawnpoints. They will then parachute out of the heli when flying over landing zones.
3 - Save as above but with Chinooks for the British maps.
4 - A C-130 that swoops down and flies away.

And another type I just coded yesterday:

5 - A pair of SU-25s that fly-by and drop bombs.

Cool factor

What's cool about the environmental vehicles is that they spawn and simply fly straight on their own. They're not attached to a rotational bundle or anything. So this means you can shoot them down or even bump into them. And sometimes they can even run into a hill or building on their own. Pretty cool!

How it's done

Lets take the SU-25 and convert it to "environmental". We'll just make a copy of the SU-25 and make it environmental. Here's the code:

Objects.con:

rem ******************************************
rem - DesertCombat
rem - Version .39j
rem - August 12th
rem - Revision 2
rem ******************************************
rem raised to 200 hitpoints

rem ***************************************
rem *** DCX_SU-25BM / With bombs missiles ***
rem ***************************************
ObjectTemplate.create PlayerControlObject env_SU-25
ObjectTemplate.setNetworkableInfo DCX_SU-25_body_info
ObjectTemplate.saveInSeparateFile 1
ObjectTemplate.hasMobilePhysics 1
ObjectTemplate.hasDynamicShadow 1
ObjectTemplate.drag 0.061
ObjectTemplate.mass 3000
ObjectTemplate.inertiaModifier 0.95/0.943/0.968
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.hasResponsePhysics 1
ObjectTemplate.explosionRadius 8
ObjectTemplate.explosionDamage 5
ObjectTemplate.hasArmor 1
ObjectTemplate.angleMod 1
ObjectTemplate.speedMod 1
ObjectTemplate.hitpoints 200
ObjectTemplate.maxhitpoints 200
ObjectTemplate.material 63
ObjectTemplate.criticalDamage 20
ObjectTemplate.hpLostWhileCriticalDamage 1.5
ObjectTemplate.explosionForceMod 15
ObjectTemplate.hpLostWhileUpSideDown 10
ObjectTemplate.hpLostWhileDamageFromWater 10
ObjectTemplate.addArmorEffect 100 em_PlaneDamage -1.8/1.4/-4
ObjectTemplate.addArmorEffect 100 em_PlaneDamage 1.8/1.4/-4
ObjectTemplate.addArmorEffect 50 e_StukaFire 1.8/1.4/-4
ObjectTemplate.addArmorEffect 50 e_warning_jet_iraqi 0/.92/3
ObjectTemplate.addArmorEffect 20 e_StukaFire -1.8/1.4/-4
ObjectTemplate.addArmorEffect 20 e_StukaFire 1.8/1.4/-4
ObjectTemplate.addArmorEffect 20 e_warning_jet_iraqi 0/.92/3
ObjectTemplate.addArmorEffect 0 e_StukaFire -1/1/-4
ObjectTemplate.addArmorEffect 0 e_StukaFire 1/1/-4
ObjectTemplate.addArmorEffect 0 e_ExplGas_air 0/0/0
ObjectTemplate.addArmorEffect 0 e_scrapmetal_Plane 0/0/0
ObjectTemplate.addArmorEffect 0 e_ScrapDCX_SU25 0/0/0
ObjectTemplate.addArmorEffect -1 WaterWaterExplosion 0/0/0

ObjectTemplate.damageFromWater 1
ObjectTemplate.aiTemplate DCX_SU-25
rem -------------------------------------
ObjectTemplate.addTemplate env_lodSU-25
rem -------------------------------------
ObjectTemplate.setSoldierExitLocation -3/0.1/2.8 0/0/0
ObjectTemplate.GUIIndex 101
ObjectTemplate.setVehicleIcon "Vehicle/Icon_SU-25.dds"
ObjectTemplate.setVehicleIconPos 62/101
ObjectTemplate.setNumberOfWeaponIcons 2
ObjectTemplate.setPrimaryAmmoIcon "Ammo/Icon_bullet.tga"

rem *** Tan added heat ***
rem ObjectTemplate.setPrimaryAmmoBar ABAmmoBar
ObjectTemplate.setPrimaryAmmoBar ABAmmoBarHeatBar

ObjectTemplate.setSecondaryAmmoIcon "Ammo/icon_bomb.dds"
ObjectTemplate.setSecondaryAmmoBar ABAmmoBarReloadBar
ObjectTemplate.setCrossHairType CHTIcon
ObjectTemplate.setVehicleCategory VCAir
ObjectTemplate.setVehicleType VTDiveBomber
ObjectTemplate.setToolTipType TTDiveBomber
ObjectTemplate.setMinimapIcon "Minimap/minimap_icon_plane3_16x16.tga"

rem *** lodDCX_SU-25 ***
ObjectTemplate.create LodObject env_lodSU-25
ObjectTemplate.hasMobilePhysics 1
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.hasResponsePhysics 1
rem -------------------------------------
ObjectTemplate.addTemplate env_SU-25Complex
ObjectTemplate.addTemplate DCX_SU-25Simple
ObjectTemplate.addTemplate DCX_SU-25Wreck
rem -------------------------------------
ObjectTemplate.lodSelector DCX_SU-25LodSelector

rem *** DCX_SU-25Complex ***
ObjectTemplate.create Bundle env_SU-25Complex
ObjectTemplate.hasMobilePhysics 1
ObjectTemplate.hasCollisionPhysics 1
ObjectTemplate.hasResponsePhysics 1
rem -------------------------------------
ObjectTemplate.addTemplate lodDCX_SU-25Cockpit
ObjectTemplate.addTemplate DCX_SU-25Camera
ObjectTemplate.setPosition 0/1/1.2
rem ObjectTemplate.addTemplate DCX_SU-25Seat
rem ObjectTemplate.setPosition 0/.92/1.8
ObjectTemplate.addTemplate env_SU-25Engine
ObjectTemplate.setPosition -1/0/0
ObjectTemplate.addTemplate env_SU-25EngineR
ObjectTemplate.setPosition 1/0/0

rem --- N/A ---
ObjectTemplate.addTemplate DCX_SU-25FlapLeftInner
ObjectTemplate.setPosition -0.945/-0.32/-1.141
ObjectTemplate.setRotation 15.5/0/12.5
ObjectTemplate.addTemplate DCX_SU-25FlapRightInner
ObjectTemplate.setPosition 0.95/-0.32/-1.141
ObjectTemplate.setRotation -15.498/0/-12.498
rem --- Flaps ---
ObjectTemplate.addTemplate DCX_SU-25FlapLeftMiddle
ObjectTemplate.setPosition -2.736/-0.216/-0.699
ObjectTemplate.setRotation 13/0/-9.498
ObjectTemplate.addTemplate DCX_SU-25FlapRightMiddle
ObjectTemplate.setPosition 2.741/-0.216/-0.699
ObjectTemplate.setRotation -12.998/0/9
rem --- Roll ---
ObjectTemplate.addTemplate DCX_SU-25FlapLeftOuter
ObjectTemplate.setPosition -4.9/.937/-3.71
ObjectTemplate.setRotation -.42/0/0
ObjectTemplate.addTemplate DCX_SU-25FlapRightOuter
ObjectTemplate.setPosition 4.9/.937/-3.71
ObjectTemplate.setRotation -.42/0/0
rem --- Elevators (preset at x trim) ---
ObjectTemplate.addTemplate DCX_SU-25FlapTailLeft
ObjectTemplate.setPosition -1.33/1.71/-8.54

rem ObjectTemplate.setRotation -.42/0/0
ObjectTemplate.setRotation -.42/-5/0

ObjectTemplate.addTemplate DCX_SU-25FlapTailRight
ObjectTemplate.setPosition 1.33/1.71/-8.54

rem ObjectTemplate.setRotation -.42/0/0
ObjectTemplate.setRotation -.42/-5/0

rem --- Rudder ---
ObjectTemplate.addTemplate DCX_SU-25Rudder
ObjectTemplate.setPosition 0/2.8/-7.88
ObjectTemplate.setRotation 0/0/-89.998
rem --- Lift ---
ObjectTemplate.addTemplate DCX_SU-25BodyWingVertical
ObjectTemplate.setRotation 0/0/-89.999
rem --- Weapons ---
ObjectTemplate.addTemplate env_SU-25_BombRack
rem -------------------------------------


Physics.con:


rem *** DCX_SU-25Engine ***
ObjectTemplate.create Engine env_SU-25Engine
ObjectTemplate.setNetworkableInfo DCX_SU-25_engine_info
ObjectTemplate.loadSoundScript Sounds/DCX_SU-25Engine.ssc
rem -------------------------------------
ObjectTemplate.addTemplate lodDCX_SU-25Propeller
ObjectTemplate.setPosition 0.2/.7/-3.5
rem -------------------------------------
ObjectTemplate.setMinRotation -0.3/0/-1
ObjectTemplate.setMaxRotation 0.3/0/1

ObjectTemplate.setMaxSpeed 800/0/1000
ObjectTemplate.setAcceleration 99999/0/99999
ObjectTemplate.setInputToRoll c_PIThrottle
ObjectTemplate.setAutomaticReset 1
ObjectTemplate.setEngineType c_ETRocket
ObjectTemplate.setTorque 40
ObjectTemplate.setDifferential 10

ObjectTemplate.setGearUp 0.2
ObjectTemplate.setGearDown 0.2
ObjectTemplate.setNoPropellerEffectAtSpeed 70
rem -------------------------------------
ObjectTemplate.addTemplate DCX_SU-25_Gear_Front
ObjectTemplate.setPosition 1/0/1.3
ObjectTemplate.setRotation 0/0/0
rem -------------------------------------
rem -------------------------------------
ObjectTemplate.addTemplate DCX_SU-25_Gear_BR
ObjectTemplate.setPosition .60/0/-2.3
ObjectTemplate.setRotation -30/0/0
rem -------------------------------------
rem -------------------------------------
ObjectTemplate.addTemplate DCX_SU-25_Gear_BL
ObjectTemplate.setPosition 1.40/0/-2.3
ObjectTemplate.setRotation 0/0/0
rem -------------------------------------

rem *** DCX_SU-25Engine Right ***
ObjectTemplate.create Engine env_SU-25Engine2
ObjectTemplate.setNetworkableInfo DCX_SU-25_engine2_info
rem *** Tan removed the second engine sound ***
rem ObjectTemplate.loadSoundScript Sounds/DCX_SU-25Engine.ssc
rem -------------------------------------
ObjectTemplate.addTemplate lodDCX_SU-25PropellerR
ObjectTemplate.setPosition -0.2/.7/-3.5
rem -------------------------------------
ObjectTemplate.setMinRotation -0.3/0/-1
ObjectTemplate.setMaxRotation 0.3/0/1
ObjectTemplate.setMaxSpeed 800/0/1000
ObjectTemplate.setAcceleration 99999/0/99999
ObjectTemplate.setInputToRoll c_PIThrottle
ObjectTemplate.setAutomaticReset 1
ObjectTemplate.setEngineType c_ETRocket
ObjectTemplate.setTorque 40
ObjectTemplate.setDifferential 10

ObjectTemplate.setGearUp 0.2
ObjectTemplate.setGearDown 0.2
ObjectTemplate.setNoPropellerEffectAtSpeed 70


Weapons.con:

rem *** DCX_SU-25_BombRack ***
ObjectTemplate.create FireArms env_SU-25_BombRack
ObjectTemplate.setNetworkableInfo DCX_PlaneFireArmInfo
ObjectTemplate.setAsynchronyFire 1
ObjectTemplate.aiTemplate DCX_SU-25_Missiles
ObjectTemplate.projectileTemplate MK83Bomb
ObjectTemplate.projectilePosition 0/-1/0
ObjectTemplate.visibleDummyProjectileTemplate DCX_AV8MK83Dummy
ObjectTemplate.magSize 8
ObjectTemplate.numOfMag 1
ObjectTemplate.velocity 0
ObjectTemplate.autoReload 1
ObjectTemplate.reloadtime 5
ObjectTemplate.roundOfFire 3
ObjectTemplate.fireingForce 0
ObjectTemplate.setInputFire c_PIAltFire
ObjectTemplate.rotationalSpeed 0/0/0
ObjectTemplate.AmmoType 8
rem --- Enhancments to drop bombs automatically ---
ObjectTemplate.DelayToUse 1
ObjectTemplate.FireDelay 2
ObjectTemplate.autoFire 1


ObjectTemplate.addFireArmsPosition 4.29/.423/-2.9 -0.487588/-0.065582/0
ObjectTemplate.addFireArmsPosition -4.29/.423/-2.9 .487588/-0.065582/0
Rem ---
ObjectTemplate.addFireArmsPosition 3.51/.5/-2.64 -0.399144/-0.056859/0
ObjectTemplate.addFireArmsPosition -3.51/.5/-2.64 .399144/-0.056859/0
Rem ---
ObjectTemplate.addFireArmsPosition 2.8/.57/-2.43 -0.31854/-0.048919/0
ObjectTemplate.addFireArmsPosition -2.8/.57/-2.43 .31854/-0.048919/0
Rem ---
ObjectTemplate.addFireArmsPosition 1.97/.66/-2.17 -0.224233/-0.0387/0
ObjectTemplate.addFireArmsPosition -1.97/.66/-2.17 .224233/-0.0387/0


Notice all the bolded parts.

The idea is to use the SU-25 almost as-is. But you must remove the entry to prevent a player or bot from entering the vehicle. Of course the camera, seat and a few other objects can also be removed. but it does work in its current form.

Then you'll noticed that I jammed the elevators at 5 degrees up rotation so the SU-25 has a tendency ot nose up a bit. This prevents it from crashing into the ground on take-off.

The important part ot make this work is to use the "Rocket" type of engine so it'll instantly go on as soon as it spawns. And then adjust the minroation, maxrotation and acceleration in such a way that the engine gets max thrust ASAP! I also double the engine power to make sure it flies forward soon as it spawns.

You'll notice the weapon changes as well. it's set to drop bombs a few seconds after it spawns. I'll try to get that thing to randomize as well.

Use on a map

What I usually do is put a spawner in the air on the edge of a map pointing inwards towards the center of the map. On certain maps like Lost village I point them towards the landing zones. So unless they're shot down or bumped into, the helis fly over the landing zones.

I usually set the spawn times as random so it doesn't become too predicatble.

On some maps, like Bulge, I put the spawners on rotational bundles. Combined with the random spawn times, the vehicles are hard to predict. You never know when they'll come and from where they'll come.

Experiment with the concept a bit and be creative. Add spawn points, make the vehicle go round and round, add bot gunners etc.

The important part is that the vehicle is autonomous and can react to weapons and collisions. It looks more natural that way.
Image
Pray hard, die fast
freddy
Posts: 1267
Joined: Sun Oct 18, 2009 4:58 pm

Re: My Flettners wont fly :(

Post by freddy »

you may want to try

Code: Select all

ObjectTemplate.setAutomaticReset 0
User avatar
Dennis|8749236
Posts: 239
Joined: Sun Nov 29, 2009 6:02 am
Location: Earth
Contact:

Re: My Flettners wont fly :(

Post by Dennis|8749236 »

your engine type is Rocket, that's why it won't fly(i got that problem too, when i was writing ME109TL's engine part...i thought use ETRocket it will go faster...-_-|||)
What is the meaning of Life?? (Don't think about it!)
freddy
Posts: 1267
Joined: Sun Oct 18, 2009 4:58 pm

Re: My Flettners wont fly :(

Post by freddy »

try activate the Flettner_HoverEngine, might work better.

the setEngineType c_ETRocket type is used as it starts with full throttle even with no input from any player
User avatar
Dennis|8749236
Posts: 239
Joined: Sun Nov 29, 2009 6:02 am
Location: Earth
Contact:

Re: My Flettners wont fly :(

Post by Dennis|8749236 »

really???
lastt time i write a engine use c_ETRocket it won't fly too...
What is the meaning of Life?? (Don't think about it!)
freddy
Posts: 1267
Joined: Sun Oct 18, 2009 4:58 pm

Re: My Flettners wont fly :(

Post by freddy »

yes. there are two types of engines that "starts by them selfes"
c_ETRocket - Identical to c_ETPlane, except that it does not require input, the engine starts running at creation
c_ETTorpedo - Identical to c_ETSea, except that it does not require input, the engine starts running at creation
http://dzn.org.pl/mdt/scripting/ObjectT ... .shtm.html

but however they doesn´t have this this line of code

Code: Select all

ObjectTemplate.setAutomaticReset 1

and im not sure if/how that can affect if you changing an existant engine and/or building your own.
This is used to modify the effect of a key or button on the pitch, rotation, etc. If set to 1, it resets the throttle to zero after user input is removed.
http://dzn.org.pl/mdt/scripting/ObjectT ... .shtm.html

i know if you have a "selfgoing" vehicle and get into the drivers position, it will stop as soon you get out from driver position.
Archimonday
Posts: 42
Joined: Tue Oct 27, 2009 2:11 am

Re: My Flettners wont fly :(

Post by Archimonday »

If this is completely map side, attach the prop rotational bundle to a strong rocket engine (with no effects, and a helicopter engine sound) pushing the craft forward. Then attach a much weaker rocket engine somewhere on the front, or middle of the plane to keep it from coming down.
Image
Post Reply