*E@g,D: 7kJTN"gNoneUTJMH29EngineCoreBotpackTournamentPlayerClientPlaySound AmpMessageSystem GiveWeapon WeaponnoteReceiveLocalizedMessage MessagesClientReceive GetStringUTJMH ReplaceWith SpreeSoundUTJUnrealHealthPostBeginPlay LogPickup spreenoteTimerBroadcastLocalizedMessageUTJHealthPackRRedeemerSoundRRedeemerMessageMessage RHealthSoundRHealthMessage WarnCannons UTJMedBox TakeDamageExplodeUTJHealthVial UTJNaliFruit TrackWarheadGiveToPickup ScriptedPawnGetRandomPlayerMesh PlayerPawn DrawColor ModifyPlayerTouch PickupSound ValidTouch SetRespawnPickupViewMeshCollisionRadius ScreptedPawn GetFontSizeColor bIsUnique ItemName GiveHealth GiveRedeemer SuperHealthSlithQueenYPos CheckConfigWarLordFlying fixmoverPowerUpMonsterSetMonsterWeaponPlayPickupMessage GetOffset bSuperHeal Mercenary NotifySpree HealthVialHealingAmountMedBox HealthPackCheckBroadCastbCenterCollisionHeight UnrealShareFindInventoryTypeKrallspeedRedeemerDeathGasbagSetSwitchPriorityBrute bIsSpecialBotDesireability bFadeMessage BeginState GiveAmmo TeamCannon ProcessTouchPickupMessageSkaarj SpawnEffects ZoneChangeMutatorTakeDamage FontSizeDamageDrawMonsterName RespawnTimeGetTextBotGiveAmpbBeep Destroyed EndSpreeTournamentHealth AmbientGlowCheckReplacement AddMutator DrawScale AddVelocityMaxDesireability ScaleGlow WeaponSet ScoreKill ShakeViewHealth LifeSpanTitan Activate EndSelfSpreeimpact EndSpreeNotePupaeEndFemaleSpree MonsterHuntBroadcastMessage PostRenderClientMessageUTJGetWeaponMessageRegisterDamageMutator UTJHealthUTJKillingSpreeMessageGrow NaliFruitMantaUTJMHAmpMessage Tentacle UTJMHBaseUTJMultiKillMessageUTJRandomHealthMsgUTJRandomRedeemerMsg UTJShockWaveUTJStrongMonsterWaverRoot ImpactHammer UTJTKMessage Translocator BP_Health UTJWarShell UTJWarShell2UTJ_HUDPlayerViewMeshUserversionTickBegin GetMessage BHealthPack AddInventory InstigatorTargetZoneHUDType nextPawnSpreeOwnerRegion RelatedPRI_1OptionalObject TimeSecondsVictimsNetMode PawnListdist LocalLog WorldLog NextMutatorbSuperRelevantDestYLNextDamageMutatorVictimGame bIsSpectatorbIsABotXPos PlayerNameMClipY Rotation instigatedByInv bHeldItem Velocity AccelerationCharge bIsHumanbTriggerOnceOnlydesirePendingWeaponPickupAmmoCount AmmoType MyDamageType AmmoAmountMaxAmmoMomentumTransferbFire HitNormalClipX bWaterZoneNewZone HitLocation ShockRifle ut_biorifle PulseGun SniperRifleripper minigun2UT_FlakCannon UT_EightballWarheadLauncherMisc NewWeaponIcons Momentum damageScale actualDamageAggressivenessNKillerRangedProjectilePtrail WhipDamage ClawDamage RelatedPRI_2NumOther DeltaTime StingDamageDir DifficultyDAmmo4bHighDetailModeDAmmo5 WaterRingMoverEncroachTypeProjectileSpeed RefireRate BiteDamage AIRatingPickups CandidateDamageScalingGeneralNDamage Crosshair6 SmokeRate InitialDirGenericExpl03 CombatStyle SmallFontSetPos PunchDamage DrawIcon StrikeDamage PointRegion Initialized WeaponClass Location bIsPlayer HurtRadius LocalMessagebIsPawnTournamentWeapon AccelRate ChallengeHUDStyle GameNameTeam DamageTypeUDamageUT_SpriteSmokePuffXCZYW ScriptText ShockProj WarShell UT_BioGelArmor2SBR Razor2AltRazor2hboxLightSmokeTrailTournamentGameInfo LastKillTimeWarExplosion2 WarExplosionBioGlob UT_Grenade ShockWave RocketMk2RedeemertrailLocalMessagePlusCriticalEventPlus UTFlakShellVialCriticalEventLowPlus ChatSound MultiLevel AmpPickup UTSuperHeal UTHealth CannonTimerRespawnSound2 ShockSizeOldShockDistanceICountMoScaleEndSpreeNoteTrailerG MonsterHUD ReturnValueMutatorWeapon LevelInfo GameInfo Projectile ZoneInfoPlayerReplicationInfoStatLogAmmo InventoryCanvasFontLevelMoverActorPawnLodMeshSoundTexture RemoteRole MaxHealth AmpCount kakuCount HealthCountbEnableAmpTime kakuTime HealthTimebUseRandomWeaponHealthRegenPerSecHealthRegenPerSecMinbUseRegenAmmobUseRegenHealth bGiveArmorbUseWarnTeamDamageMaxRegenHealthHealthRegenPerKillHealthRegenPerKillMin bUseUTJTimerbUseMonsterHUDDefaultHealthbUseAntiBoostRoleClassPackagerandmSwitch TextBufferObjectrede FunctionStateVectorStruct StrongLevelNameUnrealI StrProperty UTJMHSnd19kentaroowarinazekill megakill2003Monsterkill_F2003multikill2003ultrakill2003double_kill2003HolyShit_F2003LudicrousKill_F2003WhickedSick2003dominating2003 godlike2003killing_spree2003 rampage2003unstoppable2003TwoOneThreeyameronidotoStructPropertyClassProperty NamePropertyObjectPropertyFloatProperty BoolPropertyC_Owner IntProperty ByteProperty bAltFireXH_` S-6} g|@ 7caH6$>Sьt& & tttԝXM?q@)@t>@wu[#/v5$+ERԝX11!t"ڸ!t"ډttttttt- 1IS$De$HB2'"<K4ZwdQXXI2BSZU> Y> Y> Y{#U{#U{#U] was died. Total kill: }]*)was looking good till he killed himself!A]+*was looking good till she killed herself!]is on a killing spree!is on a rampage!is dominating!is unstoppable!  is Godlike!is Whicked Sick!kS,Ei @V&% vF@*@{SXQ%E[=> Y{#U{#U{#Ud"X6Z+*5=$,CN~`@PP(]#`bc@^@Dd@d@O@if@j@k@l@m@F@n@p@\ C]Qu Ypl> Y{#U] Gets HP +500!! 1.. 2.. 3.. Random Health!@xzA!{MBkR~Q;`pl> Y{#U] Gets Redeemer!! 1.. 2.. 3.. Summon Random Redeemer!k@ErP\#Bs?:ї+ERԝX11!t"ڸ!t"ډttttttt- 1IS$Ce$HBD^e@NKLLIJNRT8{xu\W@\@[^]@a@b@T@f@ @ P@ghjqopqrg@ ebF2t}ȤjZUc] You got MGES Bio Rifle! ASMD Shock Rifle!  Pulse Gun! Ripper!  Minigun!  Flak Cannon! Rocket Launcher! Sniper Rifle! Extra Health!  ImpactHammer (v) !!kSmux @  p[]6(yPP-> Yxx> Y"/> Yxxxxxxxx"/"/xxx"/"/xxx"/"/xxxxxxx"/"/"/B_sR~AfS!}PyPylTttt> YttԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXtԝXԝXԝXԝXԝXԝXz$?oZLKP @.=> Y> Y> Y> Y> Y> Y> Y> Yd"X6Z+*5=$DCNNUSOMCג<pl> Y] Incoming! BUTIKIRE!! OH YEAH !!!!Killing time!MINAGOROSI !!!('YEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEHAW!!!!killllllllllllllllllllllllll"!Visit at http://utj.xebra.org/ !Good Hunting!" !Let's kill the Brute(nikudama)!!+ *kita---------------(v)--------------!!! L O L+*5 @YHIJN@SH "O:HKJIHHa  @  !MPQVRF , E  TEU4 `,  oS`8*S%p~So6So  _; ,{;Z]bD,wb* ]w];;a  @ ;Zx ' !@[\@WG #IGNvumGN,GNF ' !YsApMrE*rE*J{EEAwkpEsSA  w@ `@ ln G!nopqr !@c@Fh8*F%piF@6F@  dfij@es #=s\`^[s\k ' !eh1ehf  nC Va/!<, 5%  P&  l,  , / ,  , B a/!W,  %  & , ,  9,  U, / q,  v, ,  %a/!U, % % & , % , % ", % a/!R, C% G& c,  h, ,  ,  , / a/!G, % &  , ,  a/!`, :% U&  Z, v,  {, ,  , / a/!;, % &  , ,  a/!N, 1% L&  Q, m,  r, ,  Ta/!?, % /T & T , T , BT 5, T Q, T  oB;,????? ?, a/!W.=.=, Ca/!U.=.=, a/!{.=.=, a/!R.=.=, 6a/!L.=.=, a/!G.=.=, a/!`.=.=, )a/!@.=.=, xa/!<.., a/!;.=.=, a/!?.=.=,  p_q5R _ s[$ #vw#*_#a/!_#?#?##/a0 [C[10 rE @DWY  YtZ, Z a J --- UTJ MonsterHunt Strong Monster Mutator initialized. by zeal=TUS=--- http://utj.xebra.org/ /a0 aBa10a@' qV4V&,  vUU &Double Kill! 3,Multi Kill! H,Mega Kill! _,ULTRA KILL!! ,M O N S T E R K I L L !!! ,L U D I C R O U S K I L L !!!! , , , , , , , , , , , , , , , , , , , , , , !, &, +, 0, 5,! :," ?,# D,$ I,% N,& x,'H O L Y S H I T !!!!!!! },( ,)Y A R I S U G I !!!!!!!!!!!   Aw>wg@_ -g'--- Config ------ AmpTime =SP--- kakuTime =S*--- HealthTime =S)-q--- UseRandomWeapon--- HealthRegenPerSec =Sp--- HealthRegenPerSecMin =Sn--- MaxHealth =Sm-l--- UseRegenAmmo9-k--- UseRegenHealthW-j--- UseGiveArmorz-f--- UseWarnTeamDamage--- MaxRegenHealth =SO--- HealthRegenPerKill =SF--- HealthRegenPerKillMin =Se-d--- UseUTJTimer(UseRandomRedeemer..etc)>-`--- UseAntiBoost[--- AntiBoost is Disable( |}~@y e]}MJL} C&   ' a,   ' ,   ' ,   ' ,   ' ,   ' , , , , , , , , , , , , , , $, ), ., 3, 8, =, B, G, L, Q, V, [, `,! e," j,# o,$ t,% y,& ,'   ' ,( ,)   '    3B@(h>3w3*'.3w'*'-'-%, %M'%, , M'%33%%*, %M CN8_>>N D:9I<a w* %: V:: e& \: G2b@P@@P C **w*a/!ia/!jK@%w*a/!ia/!%8-l8w*!w.*:%:%!.., ..,!.., .., #-kO 6 -D?O?pn(`w**)Z*,*% ~*),)% u)*%(- ~9`)%(`- u8 FE @DLI  IH9m^034-9- "w"*"a/!4a/!'"5 B499"5 B494""G OKH.,%,,#&C,<,Z,Z,q,},,, -w-*-a/!- BK-- EK4,  LJJ4J'Vis Team Killer!J%Warning Team Damage :V Remaining Life:SJYou are Team Killer!! You killed:V  @TOh}/*O "& has Double Kill! =, has Multi Kill! W, has Mega Kill! s, has ULTRA KILL!! , has M O N S T E R K I L L !!! , has L U D I C R O U S K I L L !!!! , , , , , , , , , , , , , , , , !, &, +, 0, 5, :, ?, D, I, N, S,! X," ],# b,$ g,% l,& ,' has H O L Y S H I T !!!!!!! ,( ,) is Y A R I S U G I !!!!!!!!!!!  QR@My ,UyAQRTQA% A'y   '   UWMwx)][W-W-CWhP VwO# r* #- @- Va/!3 a/!3a/!3 r* r* -- &-m-%w*- wmFe&,H..?,.A.,).,(. @.M..%.. W+ 0& .w+ Qt*  at,w *  %+ -' V+ v+ $+*, a/!W a/!Y \+  ,  X,/a/! .$T-qa/!H, H %  ,d &  ,2 ,  ,P !,  ,n K,  ,Z u,  , ,  , ,  , , ,    -j a w * -'  %  , tHw* , ZcNK!~?,-`w * w *u a/! a/!68=68=68=% w * w * a/!* a/!* w -fM a/! . Q   % w 稨TK? :(dam:S)killed killer type:WKl a/!&lw&*U&a/!& Q' && a/! . Q   a/!' a/!'%r  a/!'%Lw*$c S8K cD cfc ]1j2w1 Q *1% 2a 1 1 w2*22 %12| Yf'7.7 wxzU-$f$/a8 D7 '! 7 _!!!_!w333?6D??&33?!x6=,6$6$=???6=,6=,6$==??fff?6$6=,6$?6, ?<,7apppW(S)'10 ^pk >a/!Ka/!#c(|a/!Ka/!b(a/!:Za/!La/!a/!da/!a(a/!ya/!a/!a/!:a/!#](a/!Ia/!"\(a/!na/!Za/!Ka/!La/!Ia/!a/!"a/!BPSE.BP_Health(X$' _0A^/a0 00-:0:$Hit!! bTriggerOnceOnly & ME_ReturnWhenEncroach @W00$10 v5 -v >  稨--- UTJ MonsterHunt Mutator Ver^initialized by zeal=TUS=--- http://utj.xebra.org/ -v'%%T&T,d-da?'-d yG.with =UTJ= MH mutator Ver^by zeal=TUS=Aw* D- US/D.DB-..D?.@S.w* w* #..Da  @DbL>0 .`&9L- R/L.L;-{D?@w* w* |Da  @~:&L"b=<0 eb&495=Y -{D?@5?|=w=*=?5?=,(<5 @u<5@ g- / , iw*.w*..I..I.I.EpS!&a0:&"b=< &a?' nf&.`a!Va%a?,aA(a!Jt=aa(a!U= b9PCr>*>a C,GC?C?6-::$a,( -a ,C,>a $a,( il.w>*>a k5I,>a>( l=w*}a/!]a!$bq!$ IjY 4 ,j ml HVTl,a  @a  HB?z$a "W//============================================================================= // UTJ_HUD // Copyright 2005 zeal //============================================================================= class UTJ_HUD expands MonsterHUD; simulated function PostRender(Canvas C) { Super.PostRender(C); DrawMonsterName(C); } simulated function DrawMonsterName(Canvas C) { local float Dist; local ScriptedPawn P; local int XPos, YPos; local Vector X,Y,Z, Dir; local PlayerPawn C_Owner; // C_Owner = PlayerPawn(Owner.Owner); C_Owner = PlayerPawn(Owner); GetAxes(C_Owner.Rotation, X, Y, Z); if (Level.bHighDetailMode) C.Style = ERenderStyle.STY_Translucent; else C.Style = ERenderStyle.STY_Normal; foreach VisibleCollidingActors(class'ScriptedPawn', P, 2000, C_Owner.Location, true) { Dir = P.Location - C_Owner.Location; Dist = VSize(Dir); Dir = Dir / Dist; if ((Dir Dot X) > 0.7) { XPos = 0.5 * C.ClipX * (1 + 1.4 * (Dir Dot Y)); YPos = 0.5 * C.ClipY * (1 - 1.4 * (Dir Dot Z)); C.SetPos(XPos - 8, YPos - 8); C.DrawIcon(Texture'CrossHair6', 1.0); C.SetPos(Xpos - 12, YPos - 16); C.DrawColor.R = 0; C.DrawColor.G = 255; C.DrawColor.B = 0; if(P.Health < (P.Default.Health * 0.3) ) //30% dam { C.DrawColor.R = 255; C.DrawColor.G = 0; C.DrawColor.B = 0; } else if(P.Health < (P.Default.Health * 0.6) ) //60% dam { C.DrawColor.R = 255; C.DrawColor.G = 255; C.DrawColor.B = 0; } else if(P.Health < (P.Default.Health * 0.9) ) //90% dam { C.DrawColor.R = 127; C.DrawColor.G = 255; C.DrawColor.B = 0; } C.Font = C.SmallFont; C.SetPos(Xpos - 12, YPos - 16); C.DrawText(P.class.Name$"("$P.Health$")", true); //log(P.class.Name$"("$P.Health$")"$" C_Owner.Location:"$C_Owner.Location); } } } zX*//============================================================================= // UTJWarShell2. // by zeal //============================================================================= class UTJWarShell2 extends WarShell; var float CannonTimer, SmokeRate; var redeemertrail trail; simulated function Timer() { local ut_SpriteSmokePuff b; if ( Trail == None ) Trail = Spawn(class'RedeemerTrail',self); CannonTimer += SmokeRate; if ( CannonTimer > 0.6 ) { WarnCannons(); CannonTimer -= 0.6; } if ( Region.Zone.bWaterZone || (Level.NetMode == NM_DedicatedServer) ) { SetTimer(SmokeRate, false); Return; } if ( Level.bHighDetailMode ) { Spawn(class'LightSmokeTrail'); SmokeRate = 152/Speed; } else { SmokeRate = 0.15; b = Spawn(class'ut_SpriteSmokePuff'); b.RemoteRole = ROLE_None; } SetTimer(SmokeRate, false); } simulated function Destroyed() { if ( Trail != None ) Trail.Destroy(); Super.Destroyed(); } simulated function PostBeginPlay() { SmokeRate = 0.3; SetTimer(0.3,false); } function WarnCannons() { local Pawn P; for ( P=Level.Pawnlist; P!=None; P=P.NextPawn ) if ( P.IsA('TeamCannon') && !P.IsInState('TrackWarhead') && P.LineOfSightTo(self) ) { P.target = self; P.GotoState('TrackWarhead'); } } singular function TakeDamage( int NDamage, Pawn instigatedBy, Vector hitlocation, vector momentum, name damageType ) { if ( NDamage > 5 ) { PlaySound(Sound'Expl03',,6.0); spawn(class'WarExplosion',,,Location); HurtRadius(Damage,50.0, MyDamageType, MomentumTransfer, HitLocation ); RemoteRole = ROLE_SimulatedProxy; Destroy(); } } auto state Flying { simulated function ZoneChange( Zoneinfo NewZone ) { local waterring w; if ( NewZone.bWaterZone != Region.Zone.bWaterZone ) { w = Spawn(class'WaterRing',,,,rot(16384,0,0)); w.DrawScale = 0.2; w.RemoteRole = ROLE_None; } } function ProcessTouch (Actor Other, Vector HitLocation) { if ( Other != instigator ) Explode(HitLocation,Normal(HitLocation-Other.Location)); } function Explode(vector HitLocation, vector HitNormal) { if ( Role < ROLE_Authority ) return; HurtRadius(Damage,100.0, MyDamageType, MomentumTransfer, HitLocation ); spawn(class'UTJShockWave',,,Location); RemoteRole = ROLE_SimulatedProxy; Destroy(); } function BeginState() { local vector InitialDir; initialDir = vector(Rotation); if ( Role == ROLE_Authority ) Velocity = speed*initialDir; Acceleration = initialDir*50; } } to@| {bYSmk{-6-Ra "@RL>R$ V*//============================================================================= // UTJWarShell. // by zeal //============================================================================= class UTJWarShell extends WarShell; var float CannonTimer, SmokeRate; var redeemertrail trail; simulated function Timer() { local ut_SpriteSmokePuff b; if ( Trail == None ) Trail = Spawn(class'RedeemerTrail',self); CannonTimer += SmokeRate; if ( CannonTimer > 0.6 ) { WarnCannons(); CannonTimer -= 0.6; } if ( Region.Zone.bWaterZone || (Level.NetMode == NM_DedicatedServer) ) { SetTimer(SmokeRate, false); Return; } if ( Level.bHighDetailMode ) { Spawn(class'LightSmokeTrail'); SmokeRate = 152/Speed; } else { SmokeRate = 0.15; b = Spawn(class'ut_SpriteSmokePuff'); b.RemoteRole = ROLE_None; } SetTimer(SmokeRate, false); } simulated function Destroyed() { if ( Trail != None ) Trail.Destroy(); Super.Destroyed(); } simulated function PostBeginPlay() { SmokeRate = 0.3; SetTimer(0.3,false); } function WarnCannons() { local Pawn P; for ( P=Level.Pawnlist; P!=None; P=P.NextPawn ) if ( P.IsA('TeamCannon') && !P.IsInState('TrackWarhead') && P.LineOfSightTo(self) ) { P.target = self; P.GotoState('TrackWarhead'); } } singular function TakeDamage( int NDamage, Pawn instigatedBy, Vector hitlocation, vector momentum, name damageType ) { if ( NDamage > 5 ) { PlaySound(Sound'Expl03',,6.0); spawn(class'WarExplosion',,,Location); HurtRadius(Damage,50.0, MyDamageType, MomentumTransfer, HitLocation ); RemoteRole = ROLE_SimulatedProxy; Destroy(); } } auto state Flying { simulated function ZoneChange( Zoneinfo NewZone ) { local waterring w; if ( NewZone.bWaterZone != Region.Zone.bWaterZone ) { w = Spawn(class'WaterRing',,,,rot(16384,0,0)); w.DrawScale = 0.2; w.RemoteRole = ROLE_None; } } function ProcessTouch (Actor Other, Vector HitLocation) { if ( Other != instigator ) Explode(HitLocation,Normal(HitLocation-Other.Location)); } function Explode(vector HitLocation, vector HitNormal) { if ( Role < ROLE_Authority ) return; HurtRadius(Damage,100.0, MyDamageType, MomentumTransfer, HitLocation ); spawn(class'WarExplosion',,,Location); RemoteRole = ROLE_SimulatedProxy; Destroy(); } function BeginState() { local vector InitialDir; initialDir = vector(Rotation); if ( Role == ROLE_Authority ) Velocity = speed*initialDir; Acceleration = initialDir*50; } } \class UTJUnrealHealth extends Health config(UTJMH); var config int MaxHealth; var() int HealingAmount; var() bool bSuperHeal; event float BotDesireability(Pawn Bot) { local float desire; if (bSuperHeal) MaxHealth = MaxHealth * 2.0; desire = Min(HealingAmount, MaxHealth - Bot.Health); if ( (Bot.Weapon != None) && (Bot.Weapon.AIRating > 0.5) ) desire *= 1.7; if ( Bot.Health < 40 ) return ( FMin(0.03 * desire, 2.2) ); else return ( FMin(0.015 * desire, 2.0) ); } auto state Pickup { function Touch( actor Other ) { local Pawn P; if ( ValidTouch(Other) ) { P = Pawn(Other); if (bSuperHeal) MaxHealth = MaxHealth * 2.0; if (P.Health < MaxHealth) { if (Level.Game.LocalLog != None) Level.Game.LocalLog.LogPickup(Self, P); if (Level.Game.WorldLog != None) Level.Game.WorldLog.LogPickup(Self, P); P.Health += HealingAmount; if (P.Health > MaxHealth) P.Health = MaxHealth; PlayPickupMessage(P); PlaySound (PickupSound,,2.5); if ( Level.Game.Difficulty > 1 ) Other.MakeNoise(0.1 * Level.Game.Difficulty); SetRespawn(); } } } } vC^cB31wC!DDC  xc6z{F6-gסt& & tttԝXtttX'tPf//============================================================================= // UTJTKMessage. // Copyright 2003 zeal //============================================================================= class UTJTKMessage expands LocalMessagePlus; #exec OBJ LOAD FILE=..\Sounds\UTJMHSnd19.uax PACKAGE=UTJMHSnd19 static function float GetOffset(int Switch, float YL, float ClipY ) { return (Default.YPos/768.0) * ClipY + YL; } static function int GetFontSize( int Switch ) { return 2; } static function string GetString( optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { if(Switch == 9999) return RelatedPRI_1.PlayerName@"is Team Killer!"; else if(Switch > 0) return "Warning Team Damage :"@RelatedPRI_1.PlayerName@" Remaining Life:"@Switch; else return "You are Team Killer!! You killed:"@RelatedPRI_1.PlayerName; return ""; } static function ClientReceive( PlayerPawn P, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); if(Switch <= 0 || Switch == 9999) P.ClientPlaySound(sound'UTJMHSnd19.kentaro.nidoto',, true); return; } y|!iL::$ B?|a  $a Z^// ==================================================================== // This script was quoted in part from Boom-boy. thx. // reconstruction by zeal. // ==================================================================== class UTJStrongMonster extends Mutator; function PostBeginPlay() { local ScriptedPawn S; Log(" "); Log("--- UTJ MonsterHunt Strong Monster Mutator initialized. by zeal=TUS="); Log("--- http://utj.xebra.org/"); Log(" "); foreach AllActors(class'ScriptedPawn', S) { PowerUpMonster(S); } SetTimer(5.0,True);// detekitanonimo taiou.(kyouaku) Super.PostBeginPlay(); } function ModifyPlayer(Pawn Other) { Super.ModifyPlayer(Other); } simulated function Timer() { local ScriptedPawn S; local Pawn P; for ( P=Level.PawnList; P!=None; P=P.NextPawn ) if ( P.IsA('TournamentPlayer') ) { //BroadcastMessage("change "@P.DamageScaling); if(P.DamageScaling == 1.0) { P.DamageScaling = 1.5; } } foreach AllActors(class'ScriptedPawn', S) { SetMonsterWeapon(S); } } function AddMutator(Mutator M) { Super.AddMutator(M); } function PowerUpMonster(ScriptedPawn S) { local int StrongLevel; StrongLevel = 4; S.Aggressiveness *= StrongLevel; S.ReFireRate *= StrongLevel; S.CombatStyle *= StrongLevel; S.ProjectileSpeed *= StrongLevel; S.AccelRate *= StrongLevel; //S.fatness = S.Health; if (S.Health >= 500000) S.Health /= 10; // power down(lo if (S.IsA('Brute')) { Brute(S).WhipDamage += StrongLevel; Brute(S).WhipDamage += StrongLevel*10; } else if (S.IsA('Gasbag')) { Gasbag(S).PunchDamage += StrongLevel; Gasbag(S).PunchDamage += StrongLevel*10; } else if (S.IsA('Titan')) { Titan(S).PunchDamage += StrongLevel; Titan(S).PunchDamage += StrongLevel*10; } else if (S.IsA('Krall')) { Krall(S).StrikeDamage += StrongLevel; Krall(S).StrikeDamage += StrongLevel*10; } else if (S.IsA('Manta')) { Manta(S).StingDamage += StrongLevel; Manta(S).StingDamage += StrongLevel*10; } else if (S.IsA('Mercenary')) { Mercenary(S).PunchDamage += StrongLevel; Mercenary(S).PunchDamage += StrongLevel*10; } else if (S.IsA('Skaarj')) { Skaarj(S).ClawDamage += StrongLevel; Skaarj(S).ClawDamage += StrongLevel*10; } else if (S.IsA('Pupae')) { Pupae(S).BiteDamage += StrongLevel; Pupae(S).BiteDamage += StrongLevel*10; } else if (S.IsA('Queen')) { Queen(S).ClawDamage += StrongLevel; Queen(S).ClawDamage += StrongLevel*10; } else if (S.IsA('Slith')) { Slith(S).ClawDamage += StrongLevel; Slith(S).ClawDamage += StrongLevel*10; } else if (S.IsA('Warlord')) { Warlord(S).StrikeDamage += StrongLevel; Warlord(S).StrikeDamage += StrongLevel*10; } } function SetMonsterWeapon(ScriptedPawn S) { if (S.IsA('Queen')) { switch(rand(6)) { case 0: S.RangedProjectile = class'UT_Grenade'; break; case 1: S.RangedProjectile = class'RocketMk2'; break; case 2: S.RangedProjectile = class'BioGlob'; break; case 3: S.RangedProjectile = class'UTJWarShell'; break; case 4: S.RangedProjectile = class'UTFlakShell'; break; case 5: S.RangedProjectile = class'UTJWarShell2'; break; } } if (S.IsA('Brute')) { switch(rand(9)) { case 0: S.RangedProjectile = class'BioGlob'; break; case 1: case 2: case 3: S.RangedProjectile = class'Razor2'; break; case 4: S.RangedProjectile = class'Razor2Alt'; break; case 5: S.RangedProjectile = class'UTJWarShell'; break; case 6: S.RangedProjectile = class'UT_Grenade'; break; case 7: case 8: S.RangedProjectile = class'RocketMk2'; break; } } if (S.IsA('Gasbag')) { switch(rand(5)) { case 0: S.RangedProjectile = class'UTFlakShell'; break; case 1: case 2: S.RangedProjectile = class'ShockProj'; break; case 3: S.RangedProjectile = class'RocketMk2'; break; case 4: S.RangedProjectile = class'UT_Grenade'; break; } } if (S.IsA('Krall')) { switch(rand(7)) { case 0: case 1: case 2: S.RangedProjectile = class'ShockProj'; break; case 3: case 4: S.RangedProjectile = class'DAmmo4'; break; case 5: S.RangedProjectile = class'DAmmo5'; break; case 6: S.RangedProjectile = class'UTJWarShell'; break; } } if (S.IsA('Mercenary')) { switch(rand(4)) { case 0: case 1: S.RangedProjectile = class'RocketMk2'; break; case 2: case 3: S.RangedProjectile = class'UT_Grenade'; break; } } if (S.IsA('Skaarj')) { switch(rand(7)) { case 0: case 1: S.RangedProjectile = class'DAmmo4'; break; case 2: case 3: S.RangedProjectile = class'ShockProj'; break; case 4: case 5: S.RangedProjectile = class'RocketMk2'; break; case 6: S.RangedProjectile = class'UTJWarShell'; break; } } if (S.IsA('Slith')) { switch(rand(4)) { case 0: case 1: S.RangedProjectile = class'BioGlob'; break; case 2: case 3: S.RangedProjectile = class'UT_BioGel'; break; } } if (S.IsA('Tentacle')) { switch(rand(6)) { case 0: case 1: S.RangedProjectile = class'RocketMk2'; break; case 2: case 3: S.RangedProjectile = class'BioGlob'; break; case 4: case 5: S.RangedProjectile = class'UT_Grenade'; break; } } if (S.IsA('Warlord')) { switch(rand(5)) { case 0: S.RangedProjectile = class'UTJWarShell'; break; case 1: S.RangedProjectile = class'Razor2Alt'; break; case 2: S.RangedProjectile = class'Dammo4'; break; case 3: S.RangedProjectile = class'UTJWarshell2'; break; case 3: S.RangedProjectile = class'RocketMk2'; break; case 4: S.RangedProjectile = class'UTFlakShell'; break; } } } |Y[w >Y9,::$YY?,2 }mT^@ў=$:e"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/"/6 OldShockDistance) || (dir dot Victims.Velocity <= 0)) { MoScale = FMax(0, 250 - 1.1 * Dist); Victims.Velocity = Victims.Velocity + dir * (MoScale + 20); Victims.TakeDamage ( MoScale, Instigator, Victims.Location - 0.5 * (Victims.CollisionHeight + Victims.CollisionRadius) * dir, (1000 * dir), 'RedeemerDeath' ); } } return; } } foreach VisibleCollidingActors( class 'Actor', Victims, ShockSize*29, Location ) { dir = Victims.Location - Location; dist = FMax(1,VSize(dir)); dir = dir/dist + vect(0,0,0.3); if (dist> OldShockDistance || (dir dot Victims.Velocity < 0)) { MoScale = FMax(0, 250 - 1.1 * Dist); // 1100 if ( Victims.bIsPawn ) Pawn(Victims).AddVelocity(dir * (MoScale + 20)); else Victims.Velocity = Victims.Velocity + dir * (MoScale + 20); Victims.TakeDamage ( MoScale, Instigator, Victims.Location - 0.5 * (Victims.CollisionHeight + Victims.CollisionRadius) * dir, (1000 * dir), 'RedeemerDeath' ); } } OldShockDistance = ShockSize*29;//29 } simulated function PostBeginPlay() { local Pawn P; if ( Role == ROLE_Authority ) { for ( P=Level.PawnList; P!=None; P=P.NextPawn ) if ( P.IsA('PlayerPawn') && (VSize(P.Location - Location) < 3000) ) PlayerPawn(P).ShakeView(0.5, 60000.0/VSize(P.Location - Location), 10); if ( Instigator != None ) MakeNoise(10.0); } SetTimer(0.1, True); if ( Level.NetMode != NM_DedicatedServer ) SpawnEffects(); } simulated function SpawnEffects() { local WarExplosion W; PlaySound(Sound'Expl03', SLOT_Interface, 16.0); PlaySound(Sound'Expl03', SLOT_None, 16.0); PlaySound(Sound'Expl03', SLOT_Misc, 16.0); PlaySound(Sound'Expl03', SLOT_Talk, 16.0); W = spawn(class'WarExplosion',,,Location); W.RemoteRole = ROLE_None; } r//============================================================================= // UTJRandomRedeemerMsg. // Copyright 2003 zeal //============================================================================= class UTJRandomRedeemerMsg expands CriticalEventPlus; #exec OBJ LOAD FILE=..\Sounds\UTJMHSnd19.uax PACKAGE=UTJMHSnd19 var(Message) string RRedeemerMessage[5]; var(Message) sound RRedeemerSound[5]; static function string GetString( optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { if(Switch == 0) return RelatedPRI_1.PlayerName$Default.RRedeemerMessage[Switch]; else return Default.RRedeemerMessage[Switch]; } static simulated function ClientReceive( PlayerPawn P, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); P.ClientPlaySound(Default.RRedeemerSound[Switch],, true); } p//============================================================================= // UTJRandomHealthMsg. // Copyright 2004 zeal //============================================================================= class UTJRandomHealthMsg expands CriticalEventPlus; #exec OBJ LOAD FILE=..\Sounds\UTJMHSnd19.uax PACKAGE=UTJMHSnd19 var(Message) string RHealthMessage[5]; var(Message) sound RHealthSound[5]; static function string GetString( optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { if(Switch == 0) return RelatedPRI_1.PlayerName$Default.RHealthMessage[Switch]; else return Default.RHealthMessage[Switch]; } static simulated function ClientReceive( PlayerPawn P, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); if(Switch < 5)P.ClientPlaySound(Default.RHealthSound[Switch],, true); } Xrr?*?a X(GX?X?6-::$a(( -a (C(>ra r$a(( L//============================================================================= // UTJNaliFruit. //============================================================================= class UTJNaliFruit extends NaliFruit config(UTJMH); var config int MaxHealth; event float BotDesireability(Pawn Bot) { if ( HealingAmount < 3 ) return 0; return Super.BotDesireability(Bot); } auto state Pickup { function Timer() { HealingAmount += 1; SetTimer(0.5,True); } function Touch( actor Other ) { if ( !ValidTouch(Other) || (HealingAmount<2) ) Return; if (Level.Game.LocalLog != None) Level.Game.LocalLog.LogPickup(Self, Pawn(Other)); if (Level.Game.WorldLog != None) Level.Game.WorldLog.LogPickup(Self, Pawn(Other)); if (Pawn(Other).Health < MaxHealth) { Pawn(Other).Health += HealingAmount; if (Pawn(Other).Health > MaxHealth) Pawn(Other).Health = MaxHealth; Pawn(Other).ClientMessage(PickupMessage$HealingAmount, 'Pickup'); PlaySound (PickupSound); SetRespawn(); if ( Level.Game.Difficulty > 1 ) Other.MakeNoise(0.1 * Level.Game.Difficulty); } } Begin: PlayAnim('Root'); FinishAnim(); HealingAmount = 0; Sleep(FRand()*3); SetTimer(8.5,False); PlayAnim('Grow',0.036); FinishAnim(); SetTimer(0.0,False); LoopAnim('Waver',0.1); } Dl.w?*?a F5K(>a>( G=w*}a/!]a!$bq!$ Eh#6Im1& & tttttԝXPH HVT,a  @a  HB?A$a "~0//============================================================================= // UTJMultiKillMessage. // Copyright 2003 zeal //============================================================================= class UTJMultiKillMessage expands LocalMessagePlus; #exec OBJ LOAD FILE=..\Sounds\UTJMHSnd19.uax PACKAGE=UTJMHSnd19 static function float GetOffset(int Switch, float YL, float ClipY ) { return (Default.YPos/768.0) * ClipY + YL; } static function int GetFontSize( int Switch ) { if ( Switch == 1 ) return Default.FontSize; else return 2; } static function string GetString( optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { switch (Switch) { case 1: return "Double Kill!"; break; case 2: return "Multi Kill!"; break; case 3: return "Mega Kill!"; break; case 4: return "ULTRA KILL!!"; break; case 5: return "M O N S T E R K I L L !!!"; break; case 6: return "L U D I C R O U S K I L L !!!!"; break; case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: case 30: case 31: case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: return "H O L Y S H I T !!!!!!!"; break; case 40: case 41: return "Y A R I S U G I !!!!!!!!!!!"; break; } return ""; } static function ClientReceive( PlayerPawn P, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); switch (Switch) { case 1: P.ClientPlaySound(sound'UTJMHSnd19.kill.double_kill2003',, true); break; case 2: P.ClientPlaySound(sound'UTJMHSnd19.kill.multikill2003',, true); break; case 3: P.ClientPlaySound(sound'UTJMHSnd19.kill.megakill2003',, true); break; case 4: P.ClientPlaySound(sound'UTJMHSnd19.kill.ultrakill2003',, true); break; case 5: P.ClientPlaySound(sound'UTJMHSnd19.kill.Monsterkill_F2003',, true); break; case 6: P.ClientPlaySound(sound'UTJMHSnd19.kill.LudicrousKill_F2003',, true); break; case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: case 30: case 31: case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: P.ClientPlaySound(sound'UTJMHSnd19.kill.HolyShit_F2003',, true); break; case 40: case 41: P.ClientPlaySound(sound'UTJMHSnd19.kentaro.yamero',, true); break; } return; } AC//============================================================================= // UTJMHBase ver 2.9 // Copyright 2004 zeal //============================================================================= class UTJMHBase expands Mutator config(UTJMH); // imiarunoka humei(lo // #exec OBJ LOAD FILE=..\Sounds\Male1Voice.uax PACKAGE=(ALL) // #exec OBJ LOAD FILE=..\Sounds\Male2Voice.uax PACKAGE=(ALL) // #exec OBJ LOAD FILE=..\Sounds\FeMale1Voice.uax PACKAGE=(ALL) // #exec OBJ LOAD FILE=..\Sounds\FeMale2Voice.uax PACKAGE=(ALL) // imi nai mitai(lo var bool Initialized; var int AmpCount; var int kakuCount; var int HealthCount; // conf var config bool bEnable; var config int AmpTime; var config int kakuTime; var config int HealthTime; var config bool bUseRandomWeapon; var config int HealthRegenPerSec; var config int HealthRegenPerSecMin; var config int MaxHealth; var config bool bUseRegenAmmo; var config bool bUseRegenHealth; var config bool bGiveArmor; var config bool bUseWarnTeamDamage; var config int MaxRegenHealth; var config int HealthRegenPerKill; var config int HealthRegenPerKillMin; var config bool bUseUTJTimer; var config bool bUseMonsterHUD; var config int DefaultHealth; var config bool bUseAntiBoost; var string version; //var String servername; //var string Decoration; var String UTJNaliFruit; var String UTJMedBox; var String UTJHealthPack; var String UTJUnrealHealth; var String UTJHealthVial; function PostBeginPlay() { if (Initialized) return; if(CheckConfig()) {// err return; } Log(" "); Log("--- UTJ MonsterHunt Mutator Ver"@version@"initialized by zeal=TUS="); Log("--- http://utj.xebra.org/"); Log(" "); Initialized = True; kakuCount = 0; HealthCount = 0; if(DefaultHealth < 1) DefaultHealth = 100; if(bUseUTJTimer) SetTimer(1, True); if(bUseMonsterHUD) Level.Game.HUDType = class'UTJ_HUD'; Level.Game.RegisterDamageMutator(Self); TournamentGameInfo(Level.Game).GameName = Level.Game.Default.GameName@"with =UTJ= MH mutator Ver"@version@"by zeal=TUS="; // fix mover fixmover(); if ( NextMutator != None ) NextMutator.PostBeginPlay(); } function fixmover() { // light fix local mover M; foreach AllActors( class 'Mover', M) { if(M.bTriggerOnceOnly && M.MoverEncroachType == ME_ReturnWhenEncroach) { log("Hit!! bTriggerOnceOnly & ME_ReturnWhenEncroach @"@M.name); M.MoverEncroachType = ME_IgnoreWhenEncroach; } } } function bool CheckReplacement(Actor Other, out byte bSuperRelevant) { if(Other.IsA('NaliFruit') && !Other.IsA('UTJNaliFruit')) { ReplaceWith(Other,UTJNaliFruit); return false; } if(Other.IsA('MedBox') && !Other.IsA('UTJMedBox')) { ReplaceWith(Other,UTJMedBox); return false; } if(Other.IsA('SuperHealth') || Other.IsA('HealthPack') && !Other.IsA('UTJHealthPack') && !Other.IsA('BHealthPack') && !Other.IsA('UTJUnrealHealth')) { ReplaceWith(Other,UTJHealthPack); return false; } if(Other.IsA('Health') && !Other.IsA('UTJHealthPack') && !Other.IsA('UTJUnrealHealth') && !Other.IsA('SuperHealth') && !Other.IsA('UTJNaliFruit')) { ReplaceWith(Other,UTJUnrealHealth); return false; } if(Other.IsA('HealthVial') && !Other.IsA('UTJHealthVial')) { ReplaceWith(Other,UTJHealthVial); return false; } if(Other.IsA('TournamentHealth') && !Other.IsA('BP_Health') && !Other.IsA('MedBox') && !Other.IsA('HealthPack') && !Other.IsA('HealthVial') && !Other.IsA('UTJHealthPack') && !Other.IsA('UTJHealthVial') && !Other.IsA('UTJMedBox')) { ReplaceWith(Other,"BPSE.BP_Health"); // BPSE taiou. return false; } bSuperRelevant = 0; return true; } function GiveAmp(Pawn PlayerPawn) { local UDamage damage; if( (PlayerPawn.FindInventoryType(class'UDamage') != None) || (PlayerPawn.Health <= 0) ) return; damage = spawn(class'UDamage',PlayerPawn,,PlayerPawn.Location); if( damage != None ) { damage.RespawnTime = 0.0; damage.GiveTo(PlayerPawn); damage.Activate(); } } function MutatorTakeDamage ( out int ActualDamage, Pawn Victim, Pawn InstigatedBy, out Vector HitLocation, out Vector Momentum, name DamageType) { local Pawn P; if(DamageType == 'Impact') // hammer x5 ii ! { ActualDamage *= 5; } if(bUseAntiBoost) { if(Victim != None && InstigatedBy != None) { if(Victim.IsA('TournamentPlayer') && InstigatedBy.IsA('TournamentPlayer')) Momentum.z *= 0.1; Momentum.x *= 0.1; Momentum.y *= 0.1; } } if(ActualDamage > 0 && Victim != None && InstigatedBy != None) { //Log("Dam:"@ActualDamage@"victim "@Victim.name@"instigatedby"@InstigatedBy.name@" dam type:"@DamageType); if(Victim.IsA('PlayerPawn') && InstigatedBy.IsA('PlayerPawn') && Victim != InstigatedBy && bUseWarnTeamDamage) {// InstigatedBy > killer Victim > killed //danger if ( InstigatedBy.IsA('TournamentPlayer') ) InstigatedBy.ReceiveLocalizedMessage( class'UTJTKMessage',Victim.Health - ActualDamage, Victim.PlayerReplicationInfo ); //BroadCastMessage("Dam: victim"@ActualDamage@Victim.PlayerReplicationInfo.PlayerName@"instigatedby"@InstigatedBy.PlayerReplicationInfo.PlayerName@DamageType); if(Victim.Health - ActualDamage<= 0 && Victim != InstigatedBy) { Log("TK? :(dam:"@ActualDamage@")killed"@Victim.PlayerReplicationInfo.PlayerName@"killer"@InstigatedBy.PlayerReplicationInfo.PlayerName@"type:"@DamageType); if ( Victim.IsA('TournamentPlayer') ) { for ( P=Level.PawnList; P!=None; P=P.NextPawn ) if ( P.IsA('TournamentPlayer') ) P.ReceiveLocalizedMessage( class'UTJTKMessage',9999, InstigatedBy.PlayerReplicationInfo ); } if ( InstigatedBy.IsA('TournamentPlayer') ) InstigatedBy.ReceiveLocalizedMessage( class'UTJTKMessage',Victim.Health - ActualDamage, Victim.PlayerReplicationInfo ); } } if(Victim.IsA('ScriptedPawn') && InstigatedBy.IsA('ScriptedPawn')) ActualDamage = 0; if(Victim == InstigatedBy && Victim.IsA('ScriptedPawn')) // zibaku ActualDamage = 0; } //spawn(class'WarExplosion',,,HitLocation); afo if ( NextDamageMutator != None ) NextDamageMutator.MutatorTakeDamage(ActualDamage, Victim, InstigatedBy, HitLocation, Momentum, DamageType); } function ModifyPlayer(Pawn Other) { local int randm; local inventory inv; if(!Other.IsA('TournamentPlayer'))return; TournamentPlayer(Other).PlayerReplicationInfo.Team = 0; // kyouseitekini team 0 Other.Health = DefaultHealth; // random weapon // ges,shock,pulse,ripper,mini,flak,rocket,sniper if (bUseRandomWeapon && Other.IsA('TournamentPlayer') ) // players only { randm = Rand(10); switch(randm) { case 0: GiveWeapon(Other,class'UT_Biorifle'); Other.Health += 100; break; case 1: GiveWeapon(Other,class'Shockrifle'); Other.Health += 50; break; case 2: GiveWeapon(Other,class'Pulsegun'); Other.Health += 80; break; case 3: GiveWeapon(Other,class'ripper'); Other.Health += 110; break; case 4: GiveWeapon(Other,class'minigun2'); Other.Health += 90; break; case 5: GiveWeapon(Other,class'UT_Flakcannon'); Other.Health += 30; break; case 6: GiveWeapon(Other,class'UT_EightBall'); Other.Health += 20; break; case 7: GiveWeapon(Other,class'SniperRifle'); Other.Health += 20; break; case 8: //GiveWeapon(Other,class''); Other.Health += 1000; break; case 9: GiveWeapon(Other,class'ImpactHammer'); Other.Health += 400; break; } if(bGiveArmor) { inv = Spawn(class'Armor2'); if( inv != None ) { inv.bHeldItem = true; inv.RespawnTime = 0.0; inv.GiveTo(Other); inv.Charge = Inv.Default.Charge; } } Other.ReceiveLocalizedMessage( class'UTJGetWeaponMessage', randm, Other.PlayerReplicationInfo, Other.PlayerReplicationInfo ); } if ( NextMutator != None ) NextMutator.ModifyPlayer(Other); } function GiveWeapon(Pawn PlayerPawn, class WeaponClass ) { local Weapon NewWeapon; if( PlayerPawn.FindInventoryType(WeaponClass) != None ) return; newWeapon = Spawn(WeaponClass); if( newWeapon != None ) { newWeapon.RespawnTime = 0.0; newWeapon.GiveTo(PlayerPawn); newWeapon.bHeldItem = true; newWeapon.SetSwitchPriority(PlayerPawn); newWeapon.WeaponSet(PlayerPawn); newWeapon.AmbientGlow = 0; //if ( PlayerPawn.IsA('PlayerPawn') ) // newWeapon.SetHand(PlayerPawn(PlayerPawn).Handedness); //else // newWeapon.GotoState('Idle'); //PlayerPawn.Weapon.GotoState('DownWeapon'); PlayerPawn.PendingWeapon = None; //PlayerPawn.Weapon = newWeapon; if ( !newWeapon.IsA('ImpactHammer') && !newWeapon.IsA('Translocator') ) { newWeapon.GiveAmmo(PlayerPawn); newWeapon.AmmoType.AmmoAmount = newWeapon.AmmoType.MaxAmmo/10; } } } function ScoreKill(Pawn Killer, Pawn Other) { // BroadcastMessage("Killer"@Killer@" Other"@ Other); if(Killer == None)return; // sui if(!Killer.bIsHuman)return; // bot iran if(Killer.PlayerReplicationInfo.bIsABot) return; // bot irane- if(Killer.IsA('ScreptedPawn'))return; if(Killer.IsA('ScreptedPawn') && Other.IsA('ScreptedPawn'))return; if ( (Killer == None) && (Other == None) )return; // ? //BroadcastMessage("Killer"@Killer@" Other"@ Other); if ( Killer.bIsPlayer && Other.bIsPlayer )return; // tk if ( Other.Spree > 1 && Other.bIsPlayer) EndSpree(Killer, Other); if(Other.bIsPlayer)Other.Spree = 0; if ( (Killer != None) && Killer.bIsPlayer && (Killer != Other) ) { if(Killer.Health <= MaxHealth)Killer.Health += Rand(HealthRegenPerKill)+HealthRegenPerKillMin; Killer.Spree+=1; if ( Killer.Spree > 14 ) NotifySpree(Killer, Killer.Spree); if ( (TournamentPlayer(Killer).Level.TimeSeconds - TournamentPlayer(Killer).LastKillTime < 3)) { TournamentPlayer(Killer).MultiLevel++; if(TournamentPlayer(Killer).MultiLevel >= 41)TournamentPlayer(Killer).MultiLevel = 40; TournamentPlayer(Killer).ReceiveLocalizedMessage( class'UTJMultiKillMessage', TournamentPlayer(Killer).MultiLevel ); CheckBroadCast(Killer,TournamentPlayer(Killer).MultiLevel); } else TournamentPlayer(Killer).MultiLevel = 0; TournamentPlayer(Killer).LastKillTime = TournamentPlayer(Killer).Level.TimeSeconds; } //Super.ScoreKill(Killer, Other); } function CheckBroadCast(Pawn Killer,int num) { if(Killer.bIsPlayer && !Killer.PlayerReplicationInfo.bIsABot) BroadCastMessage(Killer.PlayerReplicationInfo.PlayerName@GetText(num)); } function string GetText(int Switch) { switch (Switch) { case 1: return " has Double Kill!"; break; case 2: return " has Multi Kill!"; break; case 3: return " has Mega Kill!"; break; case 4: return " has ULTRA KILL!!"; break; case 5: return " has M O N S T E R K I L L !!!"; break; case 6: return " has L U D I C R O U S K I L L !!!!"; break; case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: case 30: case 31: case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: return " has H O L Y S H I T !!!!!!!"; break; case 40: case 41: return " is Y A R I S U G I !!!!!!!!!!!"; break; } return ""; } function NotifySpree(Pawn Other, int num) { local Pawn P; if ( num == 15 ) num = 0; else if ( num == 35 ) num = 1; else if ( num == 60 ) num = 2; else if ( num == 90 ) num = 3; else if ( num == 125 ) num = 4; else if ( num == 250 ) num = 5; else return; for ( P=Level.PawnList; P!=None; P=P.NextPawn ) if ( P.IsA('TournamentPlayer') ) P.ReceiveLocalizedMessage( class'UTJKillingSpreeMessage', Num, Other.PlayerReplicationInfo ); } function EndSpree(Pawn Killer, Pawn Other) { local Pawn P; // koko kurunoka wakaran(lo // BroadcastMessage("Endspree Killer"@Killer@" Other"@ Other); if ( !Other.bIsPlayer || Killer.PlayerReplicationInfo.bIsABot) return; for ( P=Level.PawnList; P!=None; P=P.NextPawn ) if ( P.IsA('TournamentPlayer') ) { if(Other.IsA('ScriptedPawn')) P.ReceiveLocalizedMessage( class'UTJKillingSpreeMessage', Other.Spree, Killer.PlayerReplicationInfo, Killer.PlayerReplicationInfo ); else // pk end P.ReceiveLocalizedMessage( class'UTJKillingSpreeMessage', Other.Spree, Killer.PlayerReplicationInfo, Other.PlayerReplicationInfo ); } } function Timer() { // regenerate ammo (except redeemer) & health in one fell swoop local Pawn P; local Inventory Inv; if (AmpCount < AmpTime)AmpCount++; else if (AmpCount == AmpTime) { BroadcastLocalizedMessage( class'UTJMHAmpMessage',,, None, None ); // give all current players damage amps for ( P=Level.PawnList; P!=None; P=P.NextPawn ) if ( P.IsA('Bot') || P.IsA('TournamentPlayer')) GiveAmp(P); AmpCount = 0; } for ( P=Level.PawnList; P!=None; P=P.NextPawn ) if ( P.IsA('Bot') || P.IsA('TournamentPlayer')) { if (P.Health > 0) { // ammo if(bUseRegenAmmo) { for( Inv=P.Inventory; Inv!=None; Inv=Inv.Inventory ) if ( (Ammo(Inv)!=None) && (P.bFire==0) && (P.bAltFire==0) ) if (Ammo(Inv).AmmoAmount < Ammo(Inv).MaxAmmo * 10) { Ammo(Inv).AmmoAmount += Ammo(Inv).Default.AmmoAmount/3; if (Ammo(Inv).AmmoAmount > Ammo(Inv).MaxAmmo * 10) Ammo(Inv).AmmoAmount = Ammo(Inv).MaxAmmo * 10; } } if(bUseRegenHealth) { // health if ( P.Health < MaxRegenHealth && !P.Region.Zone.bWaterZone) P.Health = FMin(MaxRegenHealth, P.Health + Rand(HealthRegenPerSec)+HealthRegenPerSecMin); } } } //random redeemer & health P = GetRandomPlayer(); if(P != None) { if (kakuCount < kakuTime)kakuCount ++; if (HealthCount < HealthTime)HealthCount ++; if(kakuTime-kakuCount < 5 && kakuTime-kakuCount > 0) { BroadcastLocalizedMessage(class'UTJRandomRedeemerMsg',kakuTime-kakuCount,P.PlayerReplicationInfo ); } if(HealthTime-HealthCount < 5 && HealthTime-HealthCount > 0) { BroadcastLocalizedMessage(class'UTJRandomHealthMsg',HealthTime-HealthCount,P.PlayerReplicationInfo ); } //BroadcastMessage("Count"@kakuCount@" kakuTime"@kakuTime); if (kakuCount >= kakuTime) { kakuCount = 0; P = GetRandomPlayer(); if(P.bIsPlayer) { BroadcastLocalizedMessage(class'UTJRandomRedeemerMsg',kakuCount,P.PlayerReplicationInfo ); GiveRedeemer(P); } } if (HealthCount >= HealthTime) { HealthCount = 0; P = GetRandomPlayer(); if(P.bIsPlayer) { BroadcastLocalizedMessage(class'UTJRandomHealthMsg',HealthCount,P.PlayerReplicationInfo ); GiveHealth(P); } } } } function GiveRedeemer(Pawn PlayerPawn) { local Warheadlauncher rede; rede= spawn(class'Warheadlauncher'); if( rede!= None ) { rede.RespawnTime = 0.0; rede.GiveTo(PlayerPawn); rede.SetSwitchPriority(PlayerPawn); // rede.Instigator = PlayerPawn; // rede.BecomeItem(); PlayerPawn.AddInventory(rede); // rede.BringUp(); rede.PickupAmmoCount = 1; rede.GiveAmmo(PlayerPawn); } } function GiveHealth(Pawn PlayerPawn) { PlayerPawn.Health+=500; } function Pawn GetRandomPlayer() { local Pawn N; local PlayerPawn Dest; local Pawn Candidate[32]; local int num; for (N=Level.PawnList; N!=None; N=N.NextPawn) { Dest=PlayerPawn(N); if (Dest!=None && Dest.bIsPlayer && !Dest.PlayerReplicationInfo.bIsSpectator) { if (num<32) Candidate[num] = Dest; else if (Rand(num) < 32) Candidate[Rand(32)] = Dest; num++; } } if(num==0) return None; return Candidate[Rand(Min(32,num))]; } function bool CheckConfig() { if(!bEnable)return true; Log("--- Config ---"); Log("--- AmpTime ="@AmpTime); Log("--- kakuTime ="@kakuTime); Log("--- HealthTime ="@HealthTime); if(bUseRandomWeapon) Log("--- UseRandomWeapon"); Log("--- HealthRegenPerSec ="@HealthRegenPerSec); Log("--- HealthRegenPerSecMin ="@HealthRegenPerSecMin); Log("--- MaxHealth ="@MaxHealth); if(bUseRegenAmmo) Log("--- UseRegenAmmo"); if(bUseRegenHealth) Log("--- UseRegenHealth"); if(bGiveArmor) Log("--- UseGiveArmor"); if(bUseWarnTeamDamage) Log("--- UseWarnTeamDamage"); Log("--- MaxRegenHealth ="@MaxRegenHealth); Log("--- HealthRegenPerKill ="@HealthRegenPerKill); Log("--- HealthRegenPerKillMin ="@HealthRegenPerKillMin); if(bUseUTJTimer) Log("--- UseUTJTimer(UseRandomRedeemer..etc)"); if(bUseAntiBoost) Log("--- UseAntiBoost"); else Log("--- AntiBoost is Disable"); return false; } OJZ@| BbYUmkB-6-Ua "@UL>U$ MzOZR)L=$:et> Y> Y{#Utt!r!r!rt!r!rtttttttttГttѸBѸBѸBѸBѸBѸBѸBѸBГtt1ttttttttttt{#Uttttttttttttttttttt{#Ut{#Utt{#UtttttttttttttttxxxxxxxxxxxxxxxxxxxxxxtX'X'X'X'X'X'tX'X'X'X'ѸBX'ѸBtxx{#UttttttttttttГГГГГttt=$:etttttttttt{#Ut{#Uttttttttttttt=$:ettt8 8 8 ԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXԝXyrүyrүyrүyrүS=щ=$:e`]2.9#]UTJMH29.UTJNaliFruit]UTJMH29.UTJMedBox]UTJMH29.UTJHealthPack]UTJMH29.UTJUnrealHealth"]UTJMH29.UTJHealthViali//============================================================================= // UTJMHAmpMessage. // Copyright 2003 zeal //============================================================================= class UTJMHAmpMessage expands CriticalEventPlus; var(Message) string AmpMessage[12]; static function int GetFontSize( int Switch ) { return 2; } static function string GetString(optional int Spree, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { return Default.AmpMessage[Rand(12)]; } static simulated function ClientReceive( PlayerPawn P, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); P.PlaySound(Sound'Botpack.Pickups.AmpPickup',, 4.0); return; } Qh^cD31wh!iih  U//============================================================================= // MedBox. //============================================================================= class UTJMedBox extends UTJHealth; $U6V M$>Sь^1.)2$BTG!iL::$ B?Ga } $a f//============================================================================= // UTJKillingSpreeMessage. // Copyright 2003 zeal //============================================================================= class UTJKillingSpreeMessage expands CriticalEventLowPlus; #exec OBJ LOAD FILE=..\Sounds\UTJMHSnd19.uax PACKAGE=UTJMHSnd19 var(Messages) localized string EndSpreeNote, EndSelfSpree, EndFemaleSpree,EndSpreeNoteTrailer; var(Messages) localized string Spreenote[10]; var(Messages) sound SpreeSound[10]; static function string GetString( optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { if (RelatedPRI_2 == None) { if (RelatedPRI_1 == None) return ""; if (RelatedPRI_1.PlayerName != "") return RelatedPRI_1.PlayerName@Default.SpreeNote[Switch]; } else { return RelatedPRI_2.PlayerName$Default.EndSpreeNote@Switch; } return ""; } static simulated function ClientReceive( PlayerPawn P, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); if (RelatedPRI_2 != None) return; if (RelatedPRI_1 != P.PlayerReplicationInfo) { P.PlaySound(sound'SpreeSound',, 4.0); return; } P.ClientPlaySound(Default.SpreeSound[Switch],, true); } WG[w >G9,::$GG?,2 W//============================================================================= // Vial. //============================================================================= class UTJHealthVial extends UTJHealth; ]a us::$PA`@L=C?, \ qPA`@L=::$g,a  ::$/a8 ?,: :$   ?  #>   ?%zČ?     ?, _ D  ի?   ? !T10 /a8 ?,   ?  #>   ?%zČ? -. s ?,     ?, _ D  ի?   ? !T10?, $["6_v$>SьJ"F_]You picked up a Health Vial +7] Health Vialg$A1.)u$@2$`AO$A+class UTJHealthPack extends UTJHealth; $a6b$>SьJ"dF_]'&You picked up the Big Keg O' Health +7]Super Health Packg$B1t$@.)r$L?2$AO$AH class UTJHealth extends TournamentHealth config(UTJMH); var config int MaxHealth; auto state Pickup { function Touch( actor Other ) { local Pawn P; if ( ValidTouch(Other) ) { P = Pawn(Other); if (bSuperHeal) MaxHealth = Min(MaxHealth, MaxHealth * 2.0); if (P.Health < MaxHealth) { if (Level.Game.LocalLog != None) Level.Game.LocalLog.LogPickup(Self, P); if (Level.Game.WorldLog != None) Level.Game.WorldLog.LogPickup(Self, P); P.Health += HealingAmount; if (P.Health > MaxHealth) P.Health = MaxHealth; PlayPickupMessage(P); PlaySound (PickupSound,,2.5); Other.MakeNoise(0.2); SetRespawn(); } } } } ^V1 ::$w*a/!*  ? ..x?`jG  A"w*b Aa='::$a \//============================================================================= // UTJGetWeaponMessage. // Copyright 2004 zeal //============================================================================= class UTJGetWeaponMessage expands CriticalEventLowPlus; var(Messages) localized string GetMessage; var(Messages) localized string Weaponnote[10]; static function string GetString( optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { return Default.GetMessage@Default.Weaponnote[Switch]; } static simulated function ClientReceive( PlayerPawn P, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); } dgaj da $Aa $Aa $Aa $Aga  g$ a@ }}|`|_}}P|'|e|S|C|A|W|i|[iy}Ie]|Tcm|*||Y|jbU|JeW|X}KFE|Q|Z||e}|@|b|f|z|R|U|VC |gF5b+|yJAD@gVesej|}fzjd|^bH||gXik|KC|{}O|c|a|~iReu|bevjrj{|n|?}kfI|<|{|@|G|RbK|X}E|;iJ|w}d|L|W|`iC|U||eh|yef|DbmFRjnew|x|ACljx}LCWjofgfSiSjNdQfe}BiTC,C|frCN|b|d|ybDC4|ifJD&ggzaKe.C^J^iKCqfDar|_OD&|sfujoC[ePfuC bFe{jqjqjvjpj}gGCYCj]a@}BCiJC}Jf=egeRjQjQjOjOjOj@iqb[H|tC!|\CMDfpeZb]b^CEdHfO|pD&CbIf2Cbb_|c|a|\|W|^|[|]CC-|l|`|qC|kC|jc||Zj_fcCcG|_|{feNCYjUjkf~feCs-iJC-gFfj}fCafWe\idffeMf[}Bg~fLCp|vbbDbECwCaCccigKgYfACPbTbRbPbSbQbVbUgLb`elbZb[bXb\bYbWJ_iO|bfCbMbNbam iim vin CjtPjl ^jG kjtwjdEk^qSk| ak^w nkE{ke IlF Vls cln oln|lt JmHn Wmi dmRh pmRg }m&t In-n Vn"n cn:e pn n }ndn Jo^t WoB co^L poF |ow Ipn Vpn cpHdpps Ttn `tymtH {tRl GuRk Tu*`u/H nun zu$e Gv[KSvB ^z* kzexzk F{t S{%M `{@ l{h x{gE|l S|* `|nm|= {|%iH}/oV}od}Rf r} ~}ImK~/G x t DnQ _ZI l~ yIe E  Q` ^"t jC w DRt QRj ^Xaj6g K XRy eQg r nlMG [?I g tm A Nn[R` it vRz Bm Or\d jRw wRv DRs Qfg^TtlTZ zRr GRq TRp aRe nRo {u HRn URm bDnon}TKQMZRS gctfBnPe ^:F k:J w DRWQ)nh~ v C\LP9t\9Z jrwRu EnRn`z nr{t IC Vnc* q ~s KnWreZ so @ M ZC gxtz Bt Oo \R" iR urBB Pn]R kR xR# ERx Rc _  lRi x EnR.i`~n/F |o InV dnqro MB ZFigrPn^B lBy]uG/Z|6YJ<ZXS}fncJF qPE~JZCQYQMh_o G Tu`WZno |rInW eo roP M DYr]nkk y&FP l x4!EuDfB njP XrdorP @u LLoXBpfBM VBA c /pP _ok~Dyr}nKrYogP u~ BA*C@CMm@Bg z@q&a@CGE3J }@,%J@ooP ^41jP [P gKsR>V ~nTrbopP ~ KJP UR(xbR8-ZR9uGRo |QE3k ^RmJkRHJuP Q4!K  l P yQEEP JRhsV rI oW P eQ XqRM_IRwhR lgR,OSRc` bD,BRjBnfm pP ]RpPiRAVyR^O!-}m$&+j#-aU:&,v%P b:Yon(-l](+II&~t/Dr.P v/l3B/.u/CcIY7f/ \]h4by/E[h4c*i/gL/` Z/@,f5boR/h4a*A:h4gb5^@ItIQh4q}5!Tn@h4e^B<V g5[JtTl~h4O0j~h4}yuh4{vDqIh4Wul3L.Cm#Pp \@h4I1\JEeRh4OsJgBJ` P@,\PboHO~!wh4tu P^@i Vh4`i $oI P!Tx Bh4qL WV } P[JJ _h4bT aqv \u g V s $"}I ^h F bh45R $RG $h4S Y Nl h4gz ama B} N