The three virtues of a programmer: Laziness, Impatience, and Hubris. – Larry Wall
Legacy:Mod Ideas/Deadman Launcher
Description[edit]
Nothing much to explain I suppose, exept that you'd launch Ragdoll'ish dead bodies from guns to inflict damage on you opponent (according to the speed of the flailing limbs flying at you!), I dont know about you, but that sounds like fun.
C–B:
Camper at Heart: Here's the BodyLauncher 1.0 from ZedLep...(ripped from the package by the only way I know how) I put it here because it's a good idea that I'd like to see work but it doesn't function. I put the error below in the discussion section.
class BodyFire extends FlakAltFire; function projectile SpawnProjectile(Vector Start, Rotator Dir) { local xPawn p; local vector vec;//, hitloc, hitnorm; local rotator dir1; Dir1=Dir; Dir1.Pitch=0; vec=Start+Vector(Dir1)*class'xPawn'.Default.CollisionRadius*BodyWeapon(Weapon).InitScale*1.07; p = Spawn(class'xPawn',,, vec, Dir); if( p == None ) return None; AdjustPawn(p); P.Velocity=Vector(Dir)*BodyWeapon(Weapon).BodyLaunchVel+Weapon.Owner.Velocity; P.PlayDying(class'DamageType', vec); //AdjustPawn(p); return none; } function AdjustPawn(xpawn p) { local DMRosterConfigured tDM; local xRosterEntry Chosen; local int i; i=Int(FRand()*tDM.Characters.Length); tDM = Spawn(class'DMRosterConfigured'); Chosen = xRosterEntry(DeathMatch(Level.Game).EnemyRoster.ChooseBotClass(tDM.Characters[i])); tDM.Destroy(); if(Chosen==None) Return; P.LinkMesh(Mesh(DynamicLoadObject(Chosen.PlrProfile.MeshName, class'Mesh'))); P.Skins[0]=Texture(DynamicLoadObject(Chosen.PlrProfile.BodySkinName, class'Texture')); P.Skins[1]=Texture(DynamicLoadObject(Chosen.PlrProfile.FaceSkinName, class'Texture')); P.SoundGroupClass=None; P.RagDeathUpKick=150; P.RagdollLifeSpan=30; P.RagSpinScale=2.5; P.RagInvInertia=16; P.PhysicsVolume.TerminalVelocity=BodyWeapon(Weapon).BodyLaunchVel; P.AirSpeed=BodyWeapon(Weapon).BodyLaunchVel; P.WaterSpeed=BodyWeapon(Weapon).BodyLaunchVel; P.GroundSpeed=BodyWeapon(Weapon).BodyLaunchVel; P.AccelRate=BodyWeapon(Weapon).BodyLaunchVel; } simulated function bool AllowFire() { return True; }
class BodyWeapon extends FlakCannon; var float BodyLaunchVel, InitScale; function PostBeginPlay() { //local PhysicsVolume PV; Super.PostBeginPlay(); Level.MaxRagdolls=32; /* ForEach AllActors(Class'PhysicsVolume',PV) PV.TerminalVelocity=20000; */ } function BLVChange() { Level.Game.BroadcastHandler.Broadcast(None, "Body Launch Velocity is now at"@BodyLaunchVel); } gUTF8_REPLACEMENTclass BodyFireSpeed extends ProjectileFire; function projectile SpawnProjectile(Vector Start, Rotator Dir) { BodyWeapon(Weapon).BodyLaunchVel+=2000; if(BodyWeapon(Weapon).BodyLaunchVel>20000) BodyWeapon(Weapon).BodyLaunchVel=4000; BodyWeapon(Weapon).BLVChange(); Return None; } simulated function bool AllowFire() { return True; }
Interested Scripters[edit]
If you are interested in developing this mod for UT2003 then add your name to the list. Once you start development you should indicate that below (and hopefully include a link to a journal page). Before you start development you should also check this section to see if anyone else has started.
Discussion[edit]
C–B:: Seeing as how I dont actually own UT2003, I wouldnt be able to really do anything, But I just think it would be a great thing to have (My name is supposed to be in lower-case, oh well.).
ZxAnPhOrIaN: ...thinks about the Wikipedia:Gary Larson The Far Side Cartoon about the Dobie-o-matic... ;)
DJPaul: I think this mod has been done or in development. anyone got a URL?
Daid303: It's the body launcher, made by ZedLep, I found a link here
Camper at Heart: ZedLep's bodylauncher doesn't appear to work in UT2K4. Gives me, at least, a general
protection fault when I attempt to use it. Anyone know enough to try to fix it or tell me I'm the only one
with a problem?
General protection fault!
History: UObject::ProcessEvent <- (BodyFire DM-1on1-Albatross.BodyWeapon.BodyFire0, Function Engine.WeaponFire.ModeDoFire) <- UWeaponFire::ModeTick <- AActor::Tick <- TickAllActors <- ULevel::Tick <- (NetMode=0) <- TickLevel <- UGameEngine::Tick <- Level Albatross <- UpdateWorld <- MainLoop <- FMallocWindows::Free <- FMallocWindows::Realloc <- 676F4C57 0 FArray <- FArray::Realloc <- 0*2 <- FMallocWindows::Free