[Setup] Product=Pinata Version=100 Archive=Pinata.umod SrcPath=. MasterPath=.. Group=SetupGroup Group=PinataGroup Group=umodIncludeFilesGroup [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=350,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=369,Flags=3) [PinataGroup] File=(Src=System\Pinata.u,Size=7610) File=(Src=System\Pinata.int,Size=242) [umodIncludeFilesGroup] File=(Src=System\Pinata_readme.txt,Size=1200) [Setup] LocalProduct=Pinata ReadMe=System\Pinata_readme.txt SetupWindowTitle=Piñata AutoplayWindowTitle=Pinata Options ProductURL=http://home.earthlink.net/~biggj/404/screenshots/sslist.html VersionURL=http://home.earthlink.net/~biggj/404/screenshots/sslist.html Developer=|404|shiftre DeveloperURL=http://home.earthlink.net/~biggj/404/screenshots/sslist.html Áƒ*žDE@S-pÒGŠjÓ£¸èWÀoENonePinataBecomePickup ScoreKill setGameType TossWeapon drop_Alldrop_Weapons_OnlyCoreEnginedrop_Powerups_Only FunctionEnumVectorObject TextBufferPackageClassStructPropertyActorStruct InventoryWeaponMutatorXYZBoolPropertybCollideWorlddropped RemoteRolePawnFloatPropertyClassProperty IntProperty Location bCanThrowOther VelocityKiller TimerRate NextMutatorweapInvChargespeedPickupAmmoCount AmmoType AmmoAmountTimerCounterImpactHammer GameTypeBotpackUDamageut_jumpboots FinalCount NoPowerups TimeChargeBytePropertyObjectProperty RespawnTimeAmmoTempudamjbootsengtype noWeapons firstpass…„€‡†‰ˆ   €€‡ @¨-<K- '–%w*.†‘w*±- ®- ¦„r.›˜*˜-™- (£ª÷„w.›*-™a  ’.†Lš%¡&`¡Žw*‘- Žw.‰*.‰‹w*ø°¯¥œ?,,2D«œ?, a  ’.‰‹w*‘qw.ˆ*.ˆnw*  a  ’.ˆ  nw*‘r.•*a  ’.…w*‘á Žùw*¦$o‚$-«'®µ?% ŽÔâ×Ö ŽÕ?ü®?ù6¤ Ž6­ Ž6§ Ž–a–'Iwš*š ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ4ïêò™Ð¹‡¿ódì…lº)䇿ód쇿ódì†- ¹ù‡¿ódì†- ¹ù•_ä°T†- ¹ù†- ¹ù‡¿ódì†- ¹ù†- ¹ù†- ¹ù†- ¹ù‰¸DA‰¸DA‰¸DA‰¸DA‡¿ód쉸DA‰¸DA‰¸DAˆ¸vÚÛˆ¸vÚÛˆ¸vÚÛ‡¿ód숸vÚÛˆ¸vÚÛˆ¸vÚÛˆ¸vÚÛ…lº)ä…lº)䇿ódì…lº)ä…lº)ä…lº)䇿ód섽®l„½®l„½®l„½®l‡¿ód섽®l„½®l„½®l‡¿ódì…lº)ä…lº)äò™Ð¹ ŠŒøA- (- ()š::$- '??š::$- '  Po@//============================================================================= // Pinata. // Author: |404|shiftre // Pawn drops all inventory, powerups only, or weapons only when killed //============================================================================= class Pinata expands Mutator config(Pinata); enum gtype { drop_All, drop_Powerups_Only, drop_Weapons_Only }; var() config gtype GameType; var bool noWeapons; var bool noPowerups; function setGameType(gtype en) { noWeapons = false; noPowerups = false; if (en == drop_Powerups_Only) noWeapons = true; else if (en == drop_Weapons_Only) noPowerups = true; } function ScoreKill(Pawn Killer, Pawn Other) { local actor dropped; local float speed; local float temp; local int charge; local int finalcount; local int timecharge; local bool firstpass; local vector X,Y,Z; //Local list of droppable inv types local inventory inv; local weapon weap; local udamage udam; local ut_jumpboots jboots; //No, not those EverCamped items ;) //set Game type setGameType (GameType); firstpass = true; //Cycle through inventory, dropping weapons, pickups and armor for (inv=Other.Inventory; inv!=None; inv=inv.Inventory) { weap = Weapon(inv); if ( (weap != None)) { //If noWeapons selected, toss out selected item only (if allowable) if (noWeapons) { if (firstpass) { if (ImpactHammer(Other.Weapon)==none || !Other.Weapon.bCanThrow) Other.TossWeapon(); firstpass = false; } continue; } //Get ammo count for this weapon charge = weap.AmmoType.AmmoAmount; //Do not drop if impact hammer if (ImpactHammer(weap)!= None || !weap.bCanThrow) continue; //Spawn this item & set attributes dropped = Spawn(weap.Class,,,Other.Location); weap = Weapon(dropped); if (charge ==0) weap.PickupAmmoCount=1; else weap.PickupAmmoCount = charge; if ( weap != None ) { weap.RespawnTime = 0.0; //don't respawn weap.BecomePickup(); } } else if (!noPowerUps) { if (UDamage(inv) != None) { udam = UDamage(inv); if (udam != None) { //don't make much sense, but works if (udam.TimerRate-udam.TimerCounter < 5) charge = 50; else charge =(udam.TimerCounter*10); dropped = Spawn(udam.Class,,,Other.Location); udam = UDamage(dropped); udam.Charge = charge; if (udam != None) { udam.RespawnTime = 0.0; udam.BecomePickup(); } } } else if (UT_jumpboots(inv) != None) { jboots = UT_jumpboots(inv); if (jboots != None) { //Since jboots have a timelimit & charge limit, record both timecharge = jboots.TimeCharge; charge = jboots.Charge; dropped = Spawn(jboots.Class,,,Other.Location); jboots = UT_jumpboots(dropped); jboots.TimeCharge = timecharge; jboots.Charge = charge; if (jboots != None) { jboots.RespawnTime = 0.0; jboots.BecomePickup(); } } } //Else drop anything else that is not ammo (dropped with weapons) else if (Ammo(inv) == None) { charge = inv.Charge; dropped = Spawn(inv.Class,,,Other.Location); inv = Inventory(dropped); inv.Charge = charge; if (inv != None) { inv.RespawnTime = 0.0; inv.BecomePickup(); } } } //Now set the speed of the dropped item based off victom's speed speed = VSize(Other.Velocity); if ( dropped != None ) { dropped.RemoteRole = ROLE_DumbProxy; dropped.SetPhysics(PHYS_Falling); dropped.bCollideWorld = true; if (speed != 0) dropped.Velocity = Normal(Other.Velocity/speed + 0.5 * VRand()) * (speed + 280); else { dropped.Velocity.X = 0; dropped.Velocity.Y = 0; dropped.Velocity.Z = 0; } } //Destroy Item from victom's inventory Other.Inventory.Destroy(); } //Call next mutator down the line if ( NextMutator != None ) NextMutator.ScoreKill(Killer, Other); } ŒŒ  4ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿ6ýÿÿÿ5þÿÿÿþÿÿÿ;öÿÿÿÿÿÿÿüÿÿÿ&"ûÿÿÿ,!öÿÿÿ ûÿÿÿ<üÿÿÿ#þÿÿÿþÿÿÿ"ÿÿÿÿ=;üÿÿÿþÿÿÿ;ùÿÿÿúÿÿÿ$;óÿÿÿ)ýÿÿÿ2 üÿÿÿ1þÿÿÿ þÿÿÿ:þÿÿÿ "øÿÿÿ9"úÿÿÿ.þÿÿÿ ;úÿÿÿ/ ôÿÿÿ üÿÿÿ(:üÿÿÿ ôÿÿÿ óÿÿÿþÿÿÿ"ëÿÿÿ0üÿÿÿþÿÿÿ ôÿÿÿ‹+M‹Z‹%g‹*t‹?A‹@N”, [- g“C s“8 “D K”9 W¢BcžAj‹'wž3DŸ¨oQ$W@!> W)—c)ŸHp)©4z@x*—rk—k”7 Ll[Public] Object=(Name=Pinata.Pinata,Class=Class,MetaClass=Engine.Mutator,Description="Piñata") Preferences=(Caption="Mutators",Parent="Advanced Options") Preferences=(Caption="Pinata",Parent="Mutators",Class=Pinata.Pinata,Immediate=True)Piñata - another Clan 404 production Description: Get your party bags ready kids! When finishing off an oppenent in this mutator, they will drop all the goodies in their inventory, which includes all guns and/or powerups (is configurable). Instructions: With the umod version just double click and follow the instructions; with the zipped version, just unzip in your UT/System directory. There are three gametypes you can select from in Advanced Options/Mutators/Pinata: drop_All: Drop all powerups and weapons in inventory on death drop_Powerups_Only: Drops all powerups and only held weapon on death drop_Weapons_Only: Drops all weapons in inventory on death, not powerups Enjoy the party! -|404|shiftre Suggestions are welcome: shiftre@hotmail.com ---------------------------------------------- Special Thanks to: |404|sproket for all his neato ideas, the rest of 404 for their support, and jbp for posting my crap on his kickass site ;) Note: For those of you that don't know what a piñata is, this may help: pinata n : a container filled with toys and candy; suspended from a height for blindfolded children to break with sticks - hehe >:)System\Manifest.iniéSystem\Manifest.intéqSystem\Pinata.uZºSystem\Pinata.int!òSystem\Pinata_readme.txt"°£Å㟶&o'3aÜ