[Setup] Product=MatrixMoves Beta 4 Version=040 Archive=MatrixMovesBeta4.umod SrcPath=. MasterPath=.. Requires=UnrealTournament400Requirement Group=SetupGroup Group=umodINIGroup Group=MMGroup [UnrealTournament400Requirement] Product=UnrealTournament Version=400 [SetupGroup] Copy=(Src=System\Manifest.ini,Master=System\Manifest.ini,Size=1048,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Size=587,Flags=3) [umodINIGroup] AddIni=UnrealTournament.ini,Engine.GameEngine.ServerPackages=MatrixMovesBeta4 AddIni=UnrealTournament.ini,UBrowserMMb4DM.ListFactories[0]=UBrowser.UBrowserSubsetFact,SupersetTag=UBrowserAll,GameType=MMb4DeathMatchPlus,bCompatibleServersOnly=True AddIni=UnrealTournament.ini,Engine.GameEngine.ServerPackages=MMB4_PluginPack1 Ini=System\UBrowser.int,ServerListTitles.UBrowserMMb4DM=MatrixMoves B4 DM [MMGroup] File=(Src=Help\MatrixMovesB4Readme.htm,Size=17344) File=(Src=Help\MatrixMoves_PluginB4.htm,Size=12374) File=(Src=Help\MMLogoInst.bmp,Size=29286) File=(Src=System\MatrixMovesBeta4.u,Size=224465) File=(Src=System\MatrixMovesBeta4.int,Size=436) File=(Src=System\MatrixMovesBeta4.ini,Size=6317) File=(Src=System\MMB4_PluginPack1.u,Size=147970) [Setup] LocalProduct=MatrixMoves Beta 4 ReadMe=Help\MatrixMovesB4Readme.htm SetupWindowTitle=MatrixMoves Beta 4 setup AutoplayWindowTitle=MatrixMoves Beta 4 Options ProductURL=http://www.planetunreal.com/reactor4 VersionURL=http://www.planetunreal.com/reactor4 Developer=Reactor 4 DeveloperURL=http://www.planetunreal.com/reactor4 Logo=Help\MMLogoInst.bmp [UnrealTournament400Requirement] LocalProduct=UnrealTournament ProductURL=http://www.unrealtournament.com/ VersionURL=http://unreal.epicgames.com/ Developer=Epic Games, Inc. DeveloperURL=http://www.epicgames.com/ MatrixMoves - Beta 4 Readme
MatrixMoves Beta 4
by Tuomo 'Tuco' Korva & Heikki Korva
http://www.planetunreal.com/reactor4
reactor4@planetunreal.com


Release Notes

Remember the amazing acrobatics in the movie Matrix ? Now you can do the same moves in Unreal Tournament with the MatrixMoves mutator. This beta 4 version has 7 moves and they look really cool in both 3rd and 1st person views. But of course you have to see it for yourself ! For the ultimate Matrix experience, combine this mutator with JadtheGerbil's excellent Lazy Matrix.

Installation

UMOD: Uncompress the zip file and double-click the file MatrixMovesBeta4.umod
Non-UMOD: Uncompress the zip file to your UnrealTournament\System directory

Using MatrixMoves in the Game

Off-Line Play:
You have two ways to use MatrixMoves in offline single player game:
1) Choose MatrixMoves B4 DM as the game-type.
2) Choose MatrixMoves Beta 4 from the mutator list.

On-Line Play:
Server:
You have two ways to setup MatrixMoves on your server:
1) Use MatrixMoves as normal mutator
2) Choose MatrixMoves B4 DeathMatch as gametype from the pulldown menu. With this option other people wanting to play MatrixMoves Beta 4 find your server much easily by using the MatrixMoves B4 DM server tab in the serverlist. Note that MatrixMoves mutator will be used always with this gametype even if you don't select it to be used.

If you have installed the Non-UMOD version of the mutator, you must add the following lines to the correct files by hand (additions in red color). The UMOD installer does this automatically.

File Additions
UnrealTournament.ini Additions to [Engine.GameEngine] section:
ServerPackages=MatrixMovesBeta4
ServerPackages=MMb4_Pluginpack1


Addition to the end of file:
[UBrowserMMb4DM]
ListFactories[0]=UBrowser.UBrowserSubsetFact,
SupersetTag=UBrowserAll,GameType=MMb4DeathMatchPlus,
bCompatibleServersOnly=True
UBrowser.int Additions to [ServerListTitles] section:
UBrowserMMb4DM=MatrixMoves B4 DM

Client:
You have two ways to finding Internet games using the MatrixMutator Beta 4:
1. Go to Find Internet games and click on MatrixMoves B4 DM tab on the serverbrowser.
- Note that the tab will be added to the browser the first time you activate the MatrixMoves configuration window.
2. Browse all populated servers and try to find a game using the MatrixMutator Beta 4

The Moves

- The moves work only with supported player classes. To find out if your current playerclass supports the moves during the game, hit TAB key to bring up the prompt, type checkmm and hit enter. If text "MatrixMoves Beta 4 Detected" is shown, your current playerclass supports the moves. See the supported classes at the end of this document for details.

- To be able to use all the moves, enable dodge from options->preferences->game in the UT menus.

Move Description
Wallrun & Backflip

1. Make sure that you are near a wall facing it.
2. Do a dodge forward and keep forward button pressed down to start running up the wall. You can run the wall:
- Vertically pressing and keeping down the forward/backward buttons
- Horizontally pressing and keeping down the strafe left/strafe right buttons
- Note that you can aim with your mouse during the wallrun sequence
- If you aren't pressing any of the up/down/strafe left/strafe right keys, the wallrun sequence ends. It also ends if you try run to the opposite direction you are currently going.

4. Press jump button while running up the wall to do a backflip.

Frontflip & Backflip 1. Dodge to the front or back to do a flip
- Note that you can do dodgemoves in the air.
Double Jump 1. Jump normally.
2. While still in air press jump button again to get higher.
- You can do only one Matrix Jump during one normal jump.
Freeze 1. Press and hold the crouch button while in mid-air to freeze
2. During the freeze you can turn and use weapons.
3. After letting go of the crouch button or after maximum freeze time has passed you will continue to move to the direction you were initially going.
4. Freeze can be used again after landing to the ground.
Side Cartwheels 1. Dodge to the left or right while standing to do a side cartwheel
- Note that you can do dodgemoves in the air.
Side Spin 1. Dodge to the left or right while crouching on the ground
High Jump 1. Press jump button while crouching on the ground


Configuration Options

You can configure some key attributes of MatrixMoves from the config window accessible from menus (Mod->MatrixMoves) in the UnrealTournament's main window. The changes take affect when a new level is loaded or current level restarted.

Option Description
Maximum Wallrun time Maximum amount of time in seconds player can run vertically on the wall. Set this value to 0 for infinite amount of time.
Maximum Freeze time Maximum amount of time in seconds player can freeze himself in the air. Set this value to 0 for infinite amount of time.
Wallrun speed Wallrun speed, 0.1 being the slowest value and 2.0 the fastest one. 1.0 is the default value.

Supported Playerclasses

To find out if your current playerclass supports the moves during the game, hit TAB key to bring up the prompt, type checkmm and hit enter. If text "MatrixMoves Beta 4 Detected" is shown, your current playerclass supports the moves.

Original playerclasses:
By default, Beta 4 version supports all original UnrealTournament player classes.
Male/Female Soldier, Male/Female Commando, Commander, Boss

Additional player classes:
You can configure the support for additional player classes from the "Additional playerclass window" accessible from "Plugins..." button on the "MatrixMoves configuration window". To be able to use the pluginclass simply click on corresponding checkbox. If you don't have it installed, an error message appears. Here are the additional supported player classes:
- All UT Bonuspack player classes
- Abbey, Alien Queen, Arab, AWolf, BobaFett, Dire, Drake, Gordon, Guardian, HellSpawn, Hunter, Lady Death, Lin Fang, Lobo, Lord Maul, Marine, Mask, Messiah, Obi-wan, Prowl, Q2Male, Ratamahatta, Rhino, Riot, Rumiko, SideSwipe, SolidSnake, Super Male, Unreal1Models, TekkBlade, Trinity, Troop, Valkyries and Yoshi.

As an example, let's add support for Trinity player class:
"I have downloaded the Trinity player class from the Internet (www.utskins.com, www.fileplanet.com and www.fileleech.com have them) and installed it to my UT. Then I start UT, go to the main menu and to the MatrixMoves configuration window (mod menu).Then I click the Plugins... button on the window which opens the "Additional playerclass window". I search "Trinity" from the list of Supportedclasses and check it's checkbox. After this I simply close the window, select Trinity as my new player model, set up a new practise session and frag some bots using MatrixMoves."

MatrixMoves uses a plugin type approach for supporting additional player classes. This means that you don't need any additional packages for playing MatrixMoves and it's easy to make new pluginpackages for player models which don't have MM support yet. To add support for new player classes by making pluginpackages see MatrixMoves_PluginB4 document. Note that if you want to use pluginpackages in network play, server must have them in ServerPackages list.

Known Issues

- The moves only work with the supported playerclasses.
- Bots don't use any of the new moves.
- The demo playback doesn't show the moves right.
- When playing MatrixMoves and going to the player setup, the player model may not be the right one.
- We recommend that you use the latest version of UT (v436) with this mutator.

Version History

Version Changes
Beta 4 - Playerclass code is completely rewritten to improve the network play
- Changed the start sequence for Wallrun
- Horizontal wallrun added !
- Added a console command for easy supported class detection ("checkmm")
- New window added for handling plugin playerclasses
- Fixed skin problem with Boss player class
- Removed the "Time between Jumps" option

Thanks to

- FangsFirst for the help with playerclass pluginpackage
- UsAaR33 for the new pluginpackage architecture idea

Authors

Tuomo 'Tuco' Korva
Heikki Korva

December 22nd, 2000
Copyright Reactor 4 - 2000. All Rights Reserved.

 

 
MatrixMoves - Playerclass Plugins for MMB4
MatrixMoves
Playerclass plugin documentation for
MatrixMoves Beta 4
by Tuomo 'Tuco' Korva
http://www.planetunreal.com/reactor4
reactor4@planetunreal.com


Release Notes

This document describes the procedure to make pluginpackages for supporting new player classes in MatrixMoves Beta 4. Making the plugin package takes about 30 minutes and requires a bit programming experience.

Supported classes

By default beta 4 version supports the following player classes:
- All original UnrealTournament player classes
- All UT Bonuspack player classes
- Abbey, Alien Queen, Arab, AWolf, BobaFett, Dire, Drake, Gordon, Guardian, HellSpawn, Hunter, Lady Death, Lin Fang, Lobo, Lord Maul, Marine, Mask, Messiah, Obi-wan, Prowl, Q2Male, Ratamahatta, Rhino, Riot, Rumiko, SideSwipe, SolidSnake, Super Male, Unreal1Models, TekkBlade, Trinity, Troop, Valkyries and Yoshi.

MatrixMoves B4 uses a plugin type approach for supporting additional player classes. This means that you don't need any additional packages for playing MatrixMoves and it's easy to make new pluginpackages for player models which don't have MM support yet.

How to make a new playerclass plugin

There are two ways to make plugins:
I If the playerclass you want to support doesn't have any mod specific code (like Rumiko or Obiwan), you should add your subclass below MM_BaseMale or MM_BaseFemale. However, if the playerclass you want to support has mod-specific code (like Infiltration or U4e), you should add your subclass below the class you want to support. Look at the examples below to see how to make new pluginclasses.

Example 1. Making a plugin for Trinity player class

1. Make sure you have MatrixMoves Beta 4 and the unsupported player class installed to UT
OK, MatrixMoves Beta 4and Trinity are both installed.

2. Open Unrealtournament\System\Unreal.ini file and add MatrixMovesBeta4, MMB4_PluginPack1 and the unsupported packages to the end of editpackages list
Open file in notepad. Search for editpackages and add the lines to the end of the list.
EditPackages=MatrixMovesBeta4
EditPackages=MMB4_PluginPack1
EditPackages=Trinity

3. Fire up UnrealEd and find the unsupported player class from the class hierarchy. Also click on the export all scripts.
Trinity seems to located in Pawn- PlayerPawn- TournamentPlayer- TournamentFemale-Trinity. I also export all the scripts.

4. Add a subclass to either MM_BaseMale or MM_BaseFemale depending on where the unsupported playe class was located.
Trinity is located under TournamentFemale so I'll use MM_BaseFemale.The class has some new code but it doesn't contain any mod-specific code. Right click on the MM_BaseFemale in the class browser, choose create new class, put MMB3_Trinityplugin as package name and MMTrinity as new class name.

5. Open the class you just created. Also open some other pluginclass that has been already created.
OK, MMTrinity and MMaqueen are opened in the editor.

6. Copy the code from an already ready pluginclass to the new class you created. Then open the UC file of unsupported class you exported earlier and copy/paste all the code excluding the model import code to your new class. You also need the default properties section.
I copy the code from aqueen class to Trinity class. Then I open the exported file in some text editor from F:\UT\Trinity\Classes\Trinity.uc and copy all the text from there to the trinity class open in UnrealEd2. After the copy I remove all the import commands from the class.

7. Modify the code in you new class in function PostBeginPlay so that the variables being initialized are the ones you just copied from the UC file.
Trinity has some own code for handling animations so I put it to the start of the class. To the end of the class I put the function PostBeginPlay and modify it so that it has the values of Trinity instead of Alien Queen. For example, I change the mesh to be loaded from aqueen.aqueen to Trinity.Trinity. The variables that Trinity doesn't have can be destroyed and the ones that Trinity has but the Alien Queen doesn't have I add as new ones.

8. Then I just hit compile and save the package.
Just press the compile button, then select the MMB4_TrinityPlugin package from list and press save selected packages.

9. Open Unrealtournament\System\MatrixMoves.ini file in some text editor. Add the original player class name to the first empty line in SupportedClasses. Then add the name of the class you created to the first empty line in PluginClasses.
Open file in notepad. Add the lines to the first empty line which in this case is after the cow class. The class name consists of package name and class name so for the original trinity class it'strinity.trinityi and for the plugin class it's MMB4_TrinityPlugin.MMtrinity.

SupportedClasses[0]=multimesh.tcow
SupportedClasses[1]=trinity.trinity
PluginClasses[0]=MMB4_PluginPack1.MMtcow
PluginClasses[1]=MMB4_TrinityPlugin.MMtrinity

10. You're done. Test if the plugin works in the game.

Example 2. Making a plugin for Infiltration player class

1. Make sure you have MatrixMoves and the unsupported player class installed to UT
OK, MatrixMoves Beta 4and Infiltration are both installed.

2. Open Unrealtournament\System\Unreal.ini file and add both packages to the end of editpackages list
Open file in notepad. Search for editpackages and add the lines to the end of the list.
EditPackages=MatrixMovesBeta4
EditPackages=InfiltrationUT (Not sure if the Infiltration package name is really that !)

3. Fire up UnrealEd and find the unsupported player class from the class hierarchy
Infiltration player class seems to located in Pawn and the class name is INFUT_TMale1

4. Add a subclass for the unsupported player class and put it to a new package
Right click on the original class in the class browser, choose create new class, put MMB4_Infiltrationplugin as package name and MMInfUT_TMale1 as new class name.

5. Open MM_BaseMale class under Male1 and copy all the code from it to new player class you created
Copy/paste the code from MM_BaseMale to the MMInfUT_TMale1 class.

6. Compile code and save the new package.
Just press the compile button, then select the MMB4_Infitrationplugin package from list and press save selected packages.

7. Open Unrealtournament\System\MatrixMoves.ini file in some text editor. Add the original player class name to the first empty line in SupportedClasses. Then add the name of the class you created to the first empty line in PluginClasses.
Open file in notepad. Add the lines to the first empty line which in this case is after the cow class. The class name consists of package name and class name so for the original nali class it's multimesh.tnali and for the plugin class it's MM_BonuspackPlugin.MMtnali.
SupportedClasses[0]=multimesh.tcow
SupportedClasses[1]=InfiltrationUT.INFUT_TMale1
PluginClasses[0]=MM_BonusPackPlugin.MMtcow
PluginClasses[1]=MMB4_InfiltrationPlugin.MMInfUT_TMale1
(Not sure if the Infiltration package name is really that !)

8. You're done. Test if the plugin works in the game.


December 22nd, 2000
Copyright Reactor 4 - 2000. All Rights Reserved.

 

 
BMfr6(WR0n . .Ľƿw{[}}0zR|Kt])A:~B){Jo[~;21"qS;zk|C{;sQqR*k[rK)|<"uB)uh|1!~2nR$|1nJ"qBhU{)})lJhQnB]]s8q;jJ|"{)nllt2{!lA[Yq3aSt*z n:lZt)n4cLcGufBt!p(l0sUSm*sdbb[Ga8cQ^B`8lYEj e)OL\6jv[Q[8c"[2PH_(t[JNBIImXJ\)^ bR:auVA\!fTHIFURRW)S3Q3S2Y"ZO4T$BBG:ZWMIJ5Q#K2P"H5K)SVRI)=9RJ#<<gH3B/|I"B0KFCCC(A*L}IF G9066J{A!sB!u71|Az;$tAU<.{Ej8'sBh9!r9 k;s:c:g0,q;633t++b2!j2 k9k<Q4"[2 e8 e2[1J-#S1[*%a2Z1T1S&&/**J*R)Y1B)W!!R.Q)B)J)J B I):"C!@:!/@":3)1:  )120")*!    ZZҥ㑑xփ{{{{{{{xӠrrrrrrr{{rxxӃrr{{{ֵr{{{{{{rߵ{{{rr{{{{{{rֵփxxӃrr{{{rxxxxx⠠֠{xxxxx{ߵ{x e  xW{r{r  r{փr  *   r     r x r   7*    {{ߠ eM   *xӃrrxr r{W xW rӃ  r ӠxW xrrx{W  ZMe  e Wx* rr h rx r   *h rr r  7r  rrx  7ee ҥ   {́rxhhh r*r rr * *r̠r   xx 77 hrxh   eM {Whr *h rh r̠  r ́  h̠ rhxxhWWeeeM7ʹhԠh̠Ǡ*hWhʵhʠW*x *hWʽWhh*Ӡ*Ёʽ¹ʽʽ ʹɹɽ·ǹɽʽʽʽʽʹɹ·ù··ʽʽʽʽʽϽʽʽ·ɹɹ··ɹʽϽʽʽʽZʽɽ·ʽȻʽʽ;ó;ͱvvvvvllllZZZZZZZZ[[DDDDD;;EE--...........0000000EEEE;;;DDDDJJJJJJZZZZZZZZZZZZZZZZAAAAASSSAAAAAAAAA[JJJJJJJJJD;;;---->>>>--.......1111.>>>>DDDD;;;D[[JJJJJJ]]]]iiiiiiiiijjjjpuuuuu;;vvvllliZZZZZZZZ[JDDDDDD;;D-----........0000000EEEEDDD;;;DDDD[JJJZZZZZZZZZZZZZZZZZZAAAAAAAAAAAAAA[JJJJJJJJJJJDDDDDDDDDDDD--->>>>>111111.111->>>>DDDDDDJJJJJJJJJJ]]]iiiiiiiijjjjjppppppuѵ;;sssssssipppppiipliiiillllllllllllllsssllssssuuuuuuuuuuuuuupppppppppiipppppppppssssssssssssssss±нδǾļĴĻĴIJĴZĴĴļȿļómkk^^kkkkkkqq^Uk~k^^^^kk^^k^^^^XCC__XXX___XXXXNNNNNNjjIIIIVYYRRNN_X==X}tLC^CCXXXXXXXX____c|nN)N333VVIVVVIIIIYw`NN===XXXXXXCCCCCk~mLOOOOUUU^^^UUUCC^LCXXXXXOOOLL^^C2mtBO\^^^^LL======T_mmk^^^^XXXXCCCOOOOO~ȼoyooϜbbQyœob׬ooz944'''4444??99/?~q?'499999///??////BB6%%8888%%%%%%%,$YY,,,,,$$$&&&:6///kk66!!6666/&&&:Xnc$$$$$=`R%%%%%%%%%&&////^m^2!!!!!9999999?qq2////////6666^k///?66666///6///B^^C6666////4444''''qȼyGQyoGQʬbQoby۬QGbbQzzQboGz944444444?OO444K~~\KKOKKKK///KK//B6TTB%%88888888,,,,gY$$:::6666BB6kkC&&&&&CCC6%88:Rn`$HHH$$NnR&&666666///^q^???!!!????6666666kmC/////6///6KK/^m66666666666B///B__B//2266444444449~ϻGbɏGybbɳGooGGoͭoGb94?944?99\aO///OkX^\OOOOOB66BBB&B__N%%$HNNHHH$$$$$$gj$$$:TTB6666CCCtt=&:::::XT88NN$$$Rw` 5IHHH Rw_$=&&&BBBBBB&d~d???!!!!??O?66?<66m}C6666666C6//6BC_t/222222%&CCCB&&&=kkTBBOOKK??66''99?ɏGoQoyQQboooQzQbzGobooQGG99K449KKKOOK6BBX}XXXXBXKKKK6/BB&%8__N,,,HHHHHH555@@ Vj$$$$8BTBB6666::L}:&&8888NN$$HH  V|` """" H55H R|c)=:&&&&&&6BBB66d~d22222?OO22CCm}B&BB&&2CC2///22ct/666BB&&&CXCB&&&XmcXBTTT????2!!!?9'?ɏGoQoyGGbzbGQQzozGbzGoGbZ?9O99OOKKKKKKTBX}T:TTTTTB6666BB8%8__N,,,HHH555555F@Vj$$::%8CCCCCC666C=::$$$HHH$$$$ Puj"""""""@@@@ Y`$))):&&&&&BB6666k~d<<<>>>>>>>1]j$XX:::::CCCXC8TNHRI5Fgg@D]si.""""55@@@@@""`` 33:::&&22CC66qq?9?11g`N_C666OBmtBBRHV@@jp-J]l.DjP55H5Hjj""j`+wn:&&&&&CC^~m2~m<>1jn%_kBB6//UȘXNI@@-((]p-####;fEPu$$R`5VnYXKUO66ŤCm~UUUȚ}6TN,,$$B}٤CCC%n|&cļmB&T_ttBTή~'?Ϝb܎o~OՙO'a~?kNw|V5gϼɼN,Rwj>>[EE0SZ#0DD>5jw%_kK????qȚ^XV1>J-((if0####EfE(>V`$nٓRHVwY}T/K~q/Uؐ&k~UUqm2^LBBkϘXXN8%X۲B/XT%n|%8nt\BBXXB&&B_~mBXa????Uސ'9ɧaՐ?'\~Nw|g5@t8,Ijg>>[EEEff##DD11uw%_mm՘XXY>D[D..fZ#00##SfD(1ɞct`,HYnR}6/tը6^ދ/mtBXC/B6//KĚ_XH$$%cĸk6BB%n%%n~qO////66/6_tmTT~k99??9''~99ZqŐaq~H|wg55ȫ_%$HggDEEE0Sff##EE1@w%_Ȩދ6XV>[[[E#ff#0S00SfD11RΫϊ8,,,YnRO^dqދ6tm6_~C6666/KkXH$$$:ĤkΘT%:,n%%ntk^\K///\mm\KKKKqqqq99qލN|pP1@jwYN_м_8IIjjD.EEESfS##D[>Ht%_k/XF1[[[EEff00S00SfD155,cۤB%::,cnT靐՘C~tBcmB6666??~tTYHHHntBtȿn%N,n%%cп~999/Oqq\9Oȸ؋49Oȝ՘N|pF11P||,,TȫRHVFjjE0SSSSfZ##D]FH|t%Xm/XI1DDEEEly00SSSSi[15H$B^//TT%_tTtȝșĚTt}TctB66/666~ȸ}N}YHHHΊNNT|,N,w%%X44?K\qkOKaΝd'9'~qޝ~H|[>(1pԛ,,}H5FFjfEESS00fZ##E]F5wt%^qq~dd~ޘ6TV1D...Sl00SSSSlP@I$$XO//BB%c}Bkq~ޚNw}HYtCB6///?ȶtN}I55@w,N%ۓ$Hp%%_q??OOaqaOO~~O?'?~4q؝OK޶~IgE((]êHHϫ`55PPifE0SS00fS##E[@5w}/k?'9'''OդCCF1JE00Svl00SS0SiD@V,%}ΨȐB/BB&mm6^ș??~ضN||5YwTB6///UծcN@Fgj$|ĞYI5p,:t~~~aKKaUKa~k9\ըq\k~~~d?499O~9~a9/\ĨIfE((Ej@1>[[iiE#00SSllEEE>55wĂ6~\'???UqؚBBF.J;000ll00A00AlDI$Yؘ^}66:&mk/m޶U//CĮI|u@jXBBB66~ؤX:F1]ggPp,:}qa?9999?UK?dk4^qO9''??Od~d9?~9K446ոn@p[E.#.[ϦpDZZlf;0SSSlʡfD115wċ6~䐀&&@J;;0Zv000AlD5NޮC6t/:%ck6Cտ|IuuPjȫt^kqqq:8P1juD">Pp,%tqaa~k?99Oqk9dȶqa~9'O؀996/^`@pEEEE((j11[fffEZ೧sD |Θ6q~%8>Z;0l„0000AiDV}/BBTT%km6m!!!&Lw+uuFF|鿤%:>J---i]Γ,8tŋO9Ok~q?O''ZOa?KK%8ۼgFEE[[.(ɈP1>[[[pfEfʯj wΚ/UޮX%8F1]D.;;AiD"ޤ_BT%cՐT%mm2<22&&:`"F55ضcRۧ-DJJ]jΓ%Tk~KK^qqU2dȨq9UaOOOB%%Nnn@V[D]]D.D>D][JiiJ]ɼ@wΘ/6Ÿ~C%%8V@]DD#.l-;;;ZsPFĤcNNN:%_=m~2d^!222==YnnI@V5YŀC&&Y"]]>>DPP>PjϘ%TX~خ~\K^qq^K6^ظUU!9'OOKUU?6B%%%,,VF>PgPF>FP@FPPPjjPPgjjppujjjjI$wՋ//Uqqqqqaad2Y@PPD>1Fjj]-----JsP+``YNNNNN%%cn:m~!!<<2!2CCCX:5@Y3+:cq2NI"""">>>FPPPPPPϘ%TTOk~~~~~~qdUOUkqqdO222Uq~qd^O22?9?U??\\66TBBB$,V@1FPPPP@55555@FVVppPFF"@FFF@++RN&}؋//?99?UO??<<22Y+VVF@5@FFFFF"PpP 3 3R==T88:&m~!!!22CLLLXN:$$+V+R)&2222<<222%8Y+"""""""FPPF""И%BBB??999'''666Uk~~dCCC6669??20?0@0A0B0C0D0E0F0G0H0I0J0n]Beta 4t]22nd Dec. 2000.  Z R KVWXvuW O @n[bLkWRKRZY|$!&p P jY Y g {/::$::$ 6#ܞѨT1X'X'X'X'X'R@GR@GԝX{#Uss  ):& ~gt` Fz/::$::$ 6(F_o1X'X'X'X'X'R@GR@GԝX{#Uss  ):& C y U   X/L3" AW% QUp5r@^w@BZba mkpd j /::$::$ 6EPwG'1X'X'X'X'X'R@GR@GԝX{#Uss  ):& ;@=mG@<l {tQ:UDfQR  nRPO@||Cw9j  vT J_COD>]bNMK@@IoK@@U{t@@`Kg@qas_a `eeTds E`YV[1 [bBg @ dr c vN , f i m G@4 @A Mp~\Vn{Rx IaVFGHLrlhcbEp@a HDp@A|{RU_~AeH IR] zknxoxC u@ldz@wxyy@eq j Wk~V o T2DTdMo o  , rSIuLHv]M ZXJyeTOP Z + c^A K H? q@B_FKFlNFCa@j}@m@wCDqrC[PxH KH? `hlILAUMOrPssJiOoX+ h@Xwf + Pt H? Za <>TAEFD?=; G@NIMOPQRb_Vuc{\fghijKXk^^@QtTrW T ]hv%~.'lo PPTAEFD?=; G@NIMOPQRyK@@PG @XPm| [Kw[ YcXD_ZTUNMowjaVemAlKrl nuoz|(k V 6tc8f(F_  6"9"5]FCommandoSkins.cmdo7]FCommandoSkins.2]Botpack.SelectionFemale10]Botpack.TrophyFemale14]Female Commando8]BotPack.VoiceFemaleOne1(q W 6u)u9(F_  6"y"9"5]SGirlSkins.army7] SGirlSkins.Y2]Botpack.SelectionFemale20]Botpack.TrophyFemale24MFemale Soldier8]BotPack.VoiceFemaleTwo1x@W p Uw$ , O@|qqb lK}l Q^NYh ESMdB^P}] <>TAEFD?=;G~F G@NIMOPQRzKw n Z2[NMo o  , fvc]MatrixMoves Configuration]Ivu>u>H#?O:% ::$G$F I?::$IHGa=FIHGa=F ^Z*v-%Z `u%  g!tu $ \iyT,:c:$ :c:$cR#?#? h_ b c\c\5r xdt4o$"$$q!  5b;#$-(-(-(  cB."t }*s;#$-(-(-(  IvS`w#$-(-(-(6v@6v66v6a+v N-+ ]Ta]c pvh\ys nt j-Dt D  0.8kH  1.5~:;1/MatrixMoves odetected S@?/pppWallrun:UkFreeze:UfSpeed:Ur @]E ml"t L A b kidQiea QV a$y YeWl1>>u>u> <$ h$ V ?,e:%$ $V ?, $ $ $ $V ?, ^ W?-R(::$WV[a=^"WV[a=^--R h SE:_f- ;:]:$ :]:$]dQ?,cc f Y`.?Y 4:i%dY<i?o:4do:6?a,6?,66?,6?D?a,,6?,66?,6?D?a,,96?,66?,?,-ea,@%-la, %-Pa,%-P--{a, %}$ &}$ ,}$ ,}$ ,}$ d-e-l-P}"dIKm,KII?,`?, -P--{--{-e-g w*V:%U$$M-f+-h w*WBB:%X$U$|Y?%|G?|??|Y6F:j6Fm[::$ ::$x,bx&Ix6 Ix6I6Fx66Fx66FIS::$ ::$ ::$ ::$6FIda=F6I6m66Fa+Fxz |?%|-b-c-Pid;C?t@F4C?putpp=t?,w.*u uZYa6u6u6u666 BVsBE(&s-$o$q!b Jx.k+ Ix iB* dOgpI $ 4$ ?^ L$"?, Q$ V$ [$ v$?6 o$q! Y[CX>>u>u>aFS?%Xa??%::$$::$$?%::$$::$$:?%X#??!::$$77::$$?%X#?z::$$::$$$E C?$:%::$ ::$b$S?,2::$e$e$-V(_::$CXea=ECXea=E--V b c%  F z(\[V:%::$z Y$$%[4 }$$ %[4 ::$:z:$-P'$x%f?%af(o$q!$z $A%b$\?,2aX_\?,26_6_?6_6_?_?h?%_-P'$A$k?%ak(4% $%\4 ?$ 4% <$%\4 q$T4% n$%[4 $4% $%[4 -P$?'HD?58 SWKD8K$ \ (Ci>-3?,a!J;a!Kg_?,a!aga!L JJ lMoUbM?DM>u>u> <$ h$ Z"?,e:%$ $Z"?, $ $ $ $Z"?, J L?-L(::$LZJa=J"LZJa=J--L q] %c $/] @G.]̌?//̌?.?6@6.6 D6 6 Z  $Z $ $ $ z$/] G.]L?/Y/L?.?.::$6 D::$6 D::$6 D6 D6 6 6 6 Z  w$Z+ $ $ /] G.]?/`/?.?.::$ 6 D+6 D6 6  Z ~$Z+ ']a+Z Z 8tc Ns%NPXz 5$o$q!# $$~ի?$$6?,q! $$~ի$$6?,q! [$$~ի?$6?,q! $$~ի$6?,q! $$~ի?$6?,q! $ $~ի$6?,q!  F $s;#$-(-(-(  tA F=]Q::$ ::$ ::$ ::$a{q]?,2Q?,Z6q6q?6q6q?q?h? $$6D?@6%6p66D?@?6@( $6DBA666p66PF6&?%6PF66X?6BAX?D?@F6%6D?@6@( N$$6D?@6%6p66D?@?6( $6DBA666p6PF6?%6PF6X?6BAX?D?@F66D?@6( $$6D6@6%6@6D?6( H$6DBA6666@6@,d666X?6BAX?DF6@6666( $$6D??X6666D??6( %$6DBA66^6%6@6%66@6X?6BAX?D?F66D?66( 'Aa+ ZqD F=CUc: :$ : :$ : :$ : :$aRmC?,2c?,Z6m6m?6m6m?fm?h?ff $ $6D?@6%6p66D?@?6@( $6DBD666p66PF6&?%6PF66V?6BDV?D?@F6%6D?@6@( N$ $6D?@6%6p66D?@?6( $6DBD666p6PF6?%6PF6V?6BDV?D?@F66D?@6( $ $6D6@6%6@6D?6( H$6DBD6666@6@,d666V?6BDV?DF6@6666( $ $6D??X6666D??6( %$6DBD66^6%6@6%66@6V?6BDV?D?F66D?66( 'Da+ T E%( s"?+ X LE%( }d %c $3d @G0ď?33̌?0?6@606 D6 6 \  $\ $ $ $ z$3d G0dL?3Y3L?0?0::$6 D::$6 D::$6 D6 D6 6 6 6 \  w$\+ $ $ 3d G0d?3`3?0?0::$ 6 D+6 D6 6  \ ~$\+ 'da+\ W e -+ U "J+ W 16384SA*+-%A y 32768~(Ci>-3?,a!J;a!Kg_?,a!aga!L zcc y hA%:h:$$o$q!:h:$$CDjj?"j30 q!$ Cc%  { .t C  65536{ 49152B  1.1N o*u-%o E vvu>u>w#?O:% ::$x$y v?::$vwxa=yvwxa=y Q X t4o$ $$q! | 0.5u7&&BossSkins.Boss I J(pjV^ j q } }^zqqBossSkins. pq :7,5%pp 1T_R7pp1T_R75%p 1p1%pp1T_R7pp1T_R7 &pp 2T_R7pp 2T_R7,pp 3T_R7pp 3T_R7,pp 4T_R7pp 4T_R7c%p 1 &p 2p 2,p 3p 3,p 4p 4w.*..p 5Xan   M H`.?H 4:Z%_H<Z?o:4_o:6?c,6?,66?,6?D?c,,6?,66?,6?D?c,,96?,66?,?,-`c,@%-_c, %-Nc,%-N--Bc, %B$ &B$ ,B$ ,B$ ,B$ _-`-_-NB"_>Pb,P>>?,q?, -N--B--B-I-y w*V:%U$$M-F+-| w*WBB:%X$U$CH?%CG?C??CH6K:Q6Kb[::$ ::$p,bp&>p6 >p6>6Kp66Kp66K>S::$ ::$ ::$ ::$6K>ba=K6>6b66Ka+KAz C?%C-U-~-Nqb;C?`@F4C?Yz`YY=`?,w.*z zZHa6z6z6z666 B ;b;#$-(-(-(  YS*+-%S V u%  7@Q -+ U .e+ R S T "D+ {D Q;r  n~%n^_V 5$o$q!# $&tի?&&6?,q! $&tի&&6?,q! [$&tի?&6?,q! $&tի&6?,q! $&tի?&6?,q! $ &tի&6?,q!  0c tY`w#$-(-(-(6t@6t66t6a+t TTI #2a ] @ $ \ !4A $ ^ EA%:E:$$o$q!:E:$$OP}}?%}58 q!$ [ 16384hv b @_f- ;:V:$ :V:$Vdh?,ii _ (Ci>-3?,a!J;a!Kg_?,a!aga!L kd gD8g$ O]*+-%] e fBE(&f-$o$q!b k g E%( i N F=DMB::$ ::$ ::$ ::$aboD?,2B?,Z6o6o?6o6o?Qo?h?QQ $$6D?@6%6p66D?@?6@( $6DBN666p66PF6&?%6PF66W?6BNW?D?@F6%6D?@6@( N$$6D?@6%6p66D?@?6( $6DBN666p6PF6?%6PF6W?6BNW?D?@F66D?@6( $$6D6@6%6@6D?6( H$6DBN6666@6@,d666W?6BNW?DF6@6666( $$6D??X6666D??6( %$6DBN66^6%6@6%66@6W?6BNW?D?F66D?66( 'Na+ Vo dx%djmn 5$o$q!# $!jի?!!6?,q! $!jի!!6?,q! [$!jի?!6?,q! $!jի!6?,q! $!jի?!6?,q! $ !jի!6?,q!  DW=1$p%A%x%4%Q w -*XOc>>u>u>n::$ L?%L-wXO6w::$l$l$;::$M$ --$'--$C--$_--${::$M::M?-l::$-33$;;::$ ::$-;?%$z::$ :% % L?%l$~a%::$ ~!{- :%-6b -{{-66)666D?6?&?, 1=-{?6?6%U6666-\-UO-?&?A-_ -?V- ~!-y'-(^-y(::$-wla=_-wla=_--y n \[b666666}::$ ::$\ `  32768[r  49152j SoUbS?DS:?D:S:US:U?U:?SDD&S:U:SU?US?:D&DUOU^3D&6D:?@L6D:?@`6DS Ok \X>>u>u>|`M?%O|??%: :$$: :$ $?%: :$$: :$ $:?%O#??!: :$$77: :$ $?%O#?z: :$$: :$ $$e \?$:%::$ ::$b$M?,2::$s$s$-I(_::$\Osa=e\Osa=e--I z S-EK_:%::$S Y$$ K, }$$  K, ::$:S:$-R'$ g?%ag(o$q!$S $@%b$E?,2aN^E?,26^6^?6^6^?^?h? ^-R'$@$b?%ab(,% $ E, ?$ ,% <$ E, q$T,% n$ K, $,% $ K, -R$?'HD?/. p *pP L>6*?%06*?%@B;@CD|6*?%n6*?%@y@4CDQ6*6*@Q?,I@6*?%6*?%@?,D6*?%6*?%@?,DD6*?%6*?%@?h@ Q@ ] 'uj& ::$g:% ::$ o$L?633@r]::$ j,633?$ Su UX>>u>u>@L?%I@??%::$$::$$?%::$$::$$:?%I#??!::$$77::$$?%I#?z::$$::$$$a U?$:%::$ ::$b$?,2::$l$l$-~(_::$UIla=aUIla=a--~ t  65536R_6 W8-z^(U-'U::$p Y 20AAW>>u>u>n::$ W?%W2aAA6a::$k$k$;::$B$ --$'--$C--$_--${::$B::B?2k::$233$;;::$ ::$2;?%$z::$ :% M% W?%k$la%::$ l!{- :%-6b 2{{-66)666D?6?&?, 1=2{?6?6%H6666-\2HA-?&?A2J 2?V- l!-s'-(^-s(::$2aka=J2aka=J--s | _; W8-z^(U-'U::$j G m G* }  1.1T{ E 5_f- ;:d:$ :d:$ddJ?,rr J~ G "up& ::$g:% ::$ o$Q?633@rG::$ p,633?$ S )pU L>6)?%06)?%JB;JCD|6)?%n6)?%JyJ4CDT6)6)JT?,I@6)?%6)?%J?,D6)?%6)?%J?,DD6)?%6)?%J?hJ D uN`w#$-(-(-(6u@6u66u6a+u T[ e 0r  0b;#$-(-(-(  L N b M c%  O Q Xc P i %c $5i @G8ǐ?55̌?8?6@686 D6 6 g  $g $ $ $ z$5i G8iL?5Y5L?8?8::$6 D::$6 D::$6 D6 D6 6 6 6 g  w$g+ $ $ 5i G8i?5`5?8?8::$ 6 D+6 D6 6  g ~$g+ 'ia+g U H[b666666}::$ ::$H g` WB1$j%@%%,%L YX Y }SR gl1>>u>u> <$ h$ M%?,e:%$ $M%?, $ $ $ $M%?, h g?-z(::$gM}a=h"gM}a=h--z ^WA%:W:$$o$q!:W:$$TYKK? K/. q!$ ^ _ MSWdQWDE }B  0.8U6%UZ@>>u>u>n::$ Q?%Q6^UZ6^::$A$A$;::$[$ --$'--$C--$_--${::$[::[?6A::$633$;;::$ ::$6;?%$z::$ :% x% Q?%A$Da%::$ D!{- :%-6b 6{{-66)666D?6?&?, 1=6{?6?6%R6666-\6RZ-?&?A6@ 6?V- D!-X'-(^-X(::$6^Aa=@6^Aa=@--X b  0.5[ f \pC $ 4$ ?^ L$%?, Q$ V$ [$ v$?6 o$q! Cfr $y i K  $y s;#$-(-(-(  k m "s n o l .t p -9t q s ct r u t4o$%$$q! t !iu $ v u%  w ~*u-%~ _x ivu>u>k#?O:% ::$n$o i?::$ikna=oikna=o kj"s } ]E" ~ S@?/pppWallrun:UbFreeze:UgSpeed:Uc B :;1/MatrixMoves odetected z @ yT,:q:$ :q:$qR#?#? A qE  1.5`H9F`Mutator{9{9e~9,e%r9e99}9e&r99zrMatrixMovesBeta4.MatrixMutator-y'-x'&-ye~`Mutator=u`e,z`e,b-x`ppuMatrixMovesBeta4.MatrixMutator,z`ppuMatrixMovesBeta4.MatrixMutatorz`O H  0.5m eI  0.8J  1.1K  65536L  49152O  32768d  1.5M :;1/MatrixMoves odetected L 16384.GKR BIM"L"D"E"C*e7DO*ei"ɋ6iH1;@(˙̥D̚ˠ̠̥̠̗'˙̠̥C̟̠̙D˙R̚C˙̥Rˠ(̙̙̙˙̚˙('˚̙DˠΠΟ͠(˦|ΠͥΆD̠̥R̥̙D̠˚̘RΥ(̙˚˥˚˚̙((̠̚D͞ΠΨ͞5̙|ΨΨ͆ͤͦͥR̚ˠ͠˚̘̥|ΩΤΤΦ5̥̙̚5(̙̙TҨѣ5˚΁ѨTѣͦ|˥̥ͤрΤ̙ͥ̀Ҥҧ5̦˚̖̙̠̙˥5(˚̥vĢâþç6˙˚΁ǕTÿѤΨ|ˠTΥ˙˦ÿĨ6Υ̙˚˚6(“vE@Bv7||||~̦΁ljǓTR|˥vҏTC66ͤĿ6|6777ˇ|67|7 (R̞ÈȾ*5¾Ɛx8OEĩ7*7ľNNŽÿ6D7˂ΝÈġC67*6ͣȽ57|*R̄6'5R7 (|6(}CĈȜ55ľů@ĩC~~~C5Ůǯҝ6|7΂̄C6˃CFTR5BÕEE}̚7RC '̄R56Cv6ħůLCĊC̓ŋŸ¢56C̥6CC̅7FĨvE˚̇C̚̚D*'̄5D5CC@ƯNCΟ75ů̦D~67DCC̙Câ5;E65*|˚*6**RD** R|C57CC6ŸOFΝ9***6ŌƸĨE;D̦|DDCCD̚DCFC5**D̗˘67CC*CD*** R||7CEFTT@Ÿx¢FD5**65ƐƸĊEBΩ56CD̃|̗DҩCCT̗̖̓R*C**** RRRC6âBFTT@F¾ŹxFTCƐƸĢE@ĊDC΃C̥̟BҩC;΀̦Φ||5D5**@N |R˙̇6@ΨƹxvT̖D̓ȒȽvFĎ̦˖D˄6CRTTBDͅDF̈́F@TC7ͤ}7D||66|˚R555* 3ӷ(|̥̄ĈҤ̥ȈǽȡħÊя̥˚̈́̀ΦTTTTͥ|||˚R5555** w'˙̦ĉΦ˥ľçÊ̦̦̥̄˅Υ΀ͦͩͥ̚R655ɭɷ*Bɶɺ4!{(̙̚}̦Φҧħ҉Υ˦ͥΩΩҢĩюΦ̥̦̦̇̆̀˦Ξͥ̚|765OOy4{4ӷ3w(̦̥̚ΦΩħč̥ͥΥΨҤҨҏͨΦ˦̥̇̅˥́˦̦˥Ξ|7766;ɶL3{(̚˙̦̥̥ͨΩҩҩΨͦ˦̔˥ΦͤҩҔΦ̖̥̚˥̦̥̃Π˦̦CC7vOy;O@wwL(̥̚˦̠ΩҨͦΦ˦Φ͠ҩҨҩ̖̚˅̥̠̄̄RDCɭɶ6OɺN*{Lz )**55;66B@66BFTvXTTTTTvXvTTTTTTTT|RDC766@6@@BB@9,8,# )**55566BB66BETvvXvvTTFFFFFTvXFTTFFFTTFTTTTTTTTTTFFFTTTRDC76699;;;@@;*$$+)**5566BB@6BETTTXvTTvFOXXXvvxxxxvOXXXTTTFSEEEEFFFXXXxxxxXSSSTTTFCEEFTTTFFFFTTTTTTTTTFFFFTTTvXFFFEEEFTTDDDDC66955999=@=$##        +-IA55;@EEBB6BSXXFTFFXSXXOxxxxxOOXOFXXFTEEEESEFXXOXxxxxvXSESXXTTTXXEEESXTTTSSSXXXFTXXFFXFSXXFFXXXSEESSSTXTSXTC76;A?89*,JJI0/%%0       0G!"3GGK4HKHLLLLMQQQwzzxxxOzzQQPHH4KG33KG0   0%"?mm?dY:k;U8:Uk@@I,,?;k;:m8d: &%   q1q1q1`ba fkmpI,88A;8,>g.]m8,]kkImmpI<,d>8pIJ8g$V]mg]],$8>d,gI$,8>g,)  %    8,88,,$$$,,,,$$,>:88,$..>><.,,,$..,$$$,>-,$+#,,.-.,$$,$..,++#,<-.,$,,...,,$,]-,,,$,>888,,,,--,,$,8,88,$)+.,8,,$,,,,,$#$$.,,)) %    ++,+++###+++#..+++#+,..,,+###++#+#..+####++++####+#####.+++###++++#++++###.,,$###+++###++,,+#,++#+#++####++##       #######++#####+#####+###########++#############