00001 //===========================================================================
00002 // Bot challenge game setup / one player only / on PC
00003 //===========================================================================
00004 class XIIIMenuBotChallengeSetupClient extends XIIIMenuMultiBase;
00005
00006
00007 var config string Map;
00008 VAR config int GameTypeIndex;
00009
00010 var XIIIComboControl GameCombo, MapCombo;
00011 var XIIICheckboxControl FriendlyCheck;
00012 var XIIIValueControl FragEdit, TimeEdit;
00013 var XIIIButton BotsButton, OKButton;
00014
00015 var int MaxGames, NbMaps;
00016
00017 var localized string TitleText, GameText, MapText, FriendlyText, FragText, TimeText, BotsText, OKText;
00018 VAR Array<string> MapsUNRList;
00019
00020 var texture tBackGround[7], tHighlight;
00021 var string sBackground[7], sHighlight;
00022
00023 var bool Initialized;
00024
00025 var int OnGame, OnMap, OnFrag, OnTime, MaxPlayerValue, PointsLimitFactor;
00026
00027 var int WinningScore, MaxTime, NbBots, IdealPC, N, FriendlyFire, FragLimit, TimeLimit, DefaultConfig;
00028 var int MaxScore;
00029
00030 var int TeamBot[7], NivBot[7];
00031
00032 var Array<int> GameNbPlayers;
00033
00034 var string URL;
00035
00036
00037 //===========================================================================
00038 event HandleParameters(string Param1, string Param2)
00039 {
00040 if ( Param1 != "" )
00041 {
00042 URL = Param1;
00043 log("Param1="$URL);
00044 Map = LocalParseOption ( URL, "Map", "");
00045 // GameTypeIndex = int( localParseOption ( URL, "GameType", "0"));
00046 IdealPC = int( localParseOption( URL,"IP", "0") );
00047 N = int( localParseOption( URL,"NP", "0") );
00048 FriendlyFire = int( localParseOption( URL,"FF", "0") );
00049 FragLimit = int( localParseOption( URL,"FR", "0") );
00050 TimeLimit = int( localParseOption( URL,"TI", "0") );
00051 DefaultConfig = int( localParseOption( URL,"DC", "0") );
00052 NbBots = int( localParseOption( URL,"NBots", "0") );
00053 TeamBot[0] = int( localParseOption( URL,"TB0", "1") );
00054 NivBot[0] = int( localParseOption( URL,"NB0", "1") );
00055 TeamBot[1] = int( localParseOption( URL,"TB1", "0") );
00056 NivBot[1] = int( localParseOption( URL,"NB1", "2") );
00057 TeamBot[2] = int( localParseOption( URL,"TB2", "1") );
00058 NivBot[2] = int( localParseOption( URL,"NB2", "2") );
00059 TeamBot[3] = int( localParseOption( URL,"TB3", "0") );
00060 NivBot[3] = int( localParseOption( URL,"NB3", "0") );
00061 TeamBot[4] = int( localParseOption( URL,"TB4", "1") );
00062 NivBot[4] = int( localParseOption( URL,"NB4", "0") );
00063 TeamBot[5] = int( localParseOption( URL,"TB5", "0") );
00064 NivBot[5] = int( localParseOption( URL,"NB5", "3") );
00065 TeamBot[6] = int( localParseOption( URL,"TB6", "1") );
00066 NivBot[6] = int( localParseOption( URL,"NB6", "3") );
00067
00068 //MaxBots = IPC - N;
00069 //log(self@"---> DONNEES"@Map@GameType@IdealPC@N@FragLimit@TimeLimit@NbBots);
00070 //log(self@"---> NIVEAUX BOTS"@NivBot[0]@NivBot[1]@NivBot[2]@NivBot[3]@NivBot[4]@NivBot[5]@NivBot[6]);
00071 }
00072 }
00073
00074 function Created()
00075 {
00076 local int i;
00077
00078 Super.Created();
00079
00080 AllowedGameTypeIndex[0]=DeathmatchIndex;
00081 AllowedGameTypeIndex[1]=TeamDeathmatchIndex;
00082 AllowedGameTypeIndex[2]=CaptureTheFlagIndex;
00083 AllowedGameTypeIndex[3]=TheHuntIndex;
00084 AllowedGameTypeIndex[4]=SabotageIndex;
00085 AllowedGameTypeIndex[5]=PowerUpIndex;
00086
00087 for (i=0; i<7; i++)
00088 tBackGround[i] = texture(DynamicLoadObject(sBackGround[i], class'Texture'));
00089
00090 tHighlight = texture(DynamicLoadObject(sHighlight, class'Texture'));
00091
00092 // Game Type
00093 GameCombo = XIIIComboControl(CreateControl(class'XIIIComboControl', 288, 96*fScaleTo, 300, 28));
00094 GameCombo.Text = GameText;
00095 //GameCombo.bSmallFont = true;
00096 GameCombo.bArrows = true;
00097 GameCombo.bCalculateSize = false;
00098 GameCombo.FirstBoxWidth = 150;
00099
00100 // Map
00101 MapCombo = XIIIComboControl(CreateControl(class'XIIIComboControl', 288, 141*fScaleTo, 300, 28));
00102 MapCombo.Text = MapText;
00103 MapCombo.bArrows = true;
00104 MapCombo.bCalculateSize = false;
00105 MapCombo.FirstBoxWidth = 160;
00106
00107 // Frag Limit
00108 FragEdit = XIIIValueControl(CreateControl(class'XIIIValueControl', 288, 186*fScaleTo, 300, 28));
00109 FragEdit.Text = FragText;
00110 FragEdit.bCalculateSize = false;
00111 FragEdit.FirstBoxWidth = 200;
00112 //FragEdit.SetRange(0,500);
00113
00114 // Time Limit
00115 TimeEdit = XIIIValueControl(CreateControl(class'XIIIValueControl', 288, 231*fScaleTo, 300, 28));
00116 TimeEdit.Text = TimeText;
00117 TimeEdit.bCalculateSize = false;
00118 TimeEdit.FirstBoxWidth = 175;
00119 TimeEdit.SetRange(0,60);
00120
00121 // Bots setup
00122 BotsButton = XIIIbutton(CreateControl(class'XIIIbutton', 340, 276*fScaleTo, 180, 28));
00123 BotsButton.Text = BotsText;
00124 BotsButton.bUseBorder = true;
00125
00126 // friendly fire
00127 FriendlyCheck = XIIICheckboxControl(CreateControl(class'XIIICheckboxControl', 288, 321*fScaleTo, 300, 28));
00128 FriendlyCheck.Text = FriendlyText;
00129 FriendlyCheck.bWhiteColorOnlyWhenFocused = true;
00130
00131 // OK go
00132 OKButton = XIIIbutton(CreateControl(class'XIIIbutton', 360, 366*fScaleTo, 139, 28));
00133 OKButton.Text = OKText;
00134 OKButton.bUseBorder = true;
00135
00136
00137 Controls[0] = GameCombo;
00138 Controls[1] = MapCombo;
00139 Controls[2] = FragEdit;
00140 Controls[3] = TimeEdit;
00141 Controls[4] = BotsButton;
00142 Controls[5] = FriendlyCheck;
00143 Controls[6] = OKButton;
00144
00145 IterateGames();
00146
00147 AfterCreate();
00148
00149 GotoState('ReinitMusic');
00150 }
00151
00152
00153 FUNCTION IterateGames()
00154 {
00155 local int i;
00156
00157 for (i=0;i<AllowedGameTypeIndex.Length;i++)
00158 {
00159 GameCombo.AddItem(GetGameTypeText(i));
00160 }
00161
00162 MaxGames = AllowedGameTypeIndex.Length;
00163
00164 OnGame = 0;
00165 GameCombo.SetSelectedIndex(0);
00166
00167 Initialized = true;
00168 GameChanged();
00169 }
00170
00171 FUNCTION IterateMaps()
00172 {
00173 LOCAL Array<string> MapDescList;
00174 LOCAL int i;
00175
00176 GetMapArray( OnGame, MapDescList, MapsUNRList );
00177
00178 MapCombo.Clear();
00179 GameNbPlayers.Length = 0;
00180 for( i=0; i<MapDescList.Length; i++ )
00181 {
00182 MapCombo.AddItem( MapDescList[i] );
00183 GameNbPlayers[ i ] = NbPlayers[ GameMapsIndex[ i ] ];
00184 }
00185
00186 OnMap = 0;
00187 MapCombo.SetSelectedIndex(0);
00188 }
00189
00190 function AfterCreate()
00191 {
00192 OnMenu = 0;
00193
00194 /* OnFrag = WinningScore;
00195 FragEdit.SetValue(OnFrag);
00196 if (OnFrag == 0)
00197 FragEdit.sValue ="-";*/
00198
00199 OnTime = MaxTime;
00200 TimeEdit.SetValue(OnTime);
00201 if (OnTime == 0)
00202 TimeEdit.sValue ="-";
00203 else
00204 TimeEdit.sValue = TimeEdit.sValue@"Min.";
00205 }
00206
00207
00208 function Paint(canvas C, float X, float Y)
00209 {
00210 local float fScale, fHeight, W, H;
00211
00212 Super.Paint(C,X,Y);
00213
00214 DrawStretchedTexture(C, 253*fRatioX, 54*fRatioY, 353*fRatioX, 377*fScaleTo*fRatioY, myRoot.tFondNoir);
00215
00216 fHeight = (373 / 192) * 64 * fScaleTo; // (sum_back.height/sum_tex.height) * tex_height
00217 DrawStretchedTexture(C, 255*fRatioX, 56*fRatioY, 349*fRatioX, fHeight*fRatioY, tBackGround[0]);
00218 DrawStretchedTexture(C, 255*fRatioX, (56+fHeight)*fRatioY, 349*fRatioX, fHeight*fRatioY, tBackGround[1]);
00219 DrawStretchedTexture(C, 255*fRatioX, (56+2*fHeight)*fRatioY, 349*fRatioX, fHeight*fRatioY, tBackGround[2]);
00220
00221 OnMenu = FindComponentIndex(FocusedControl);
00222 C.Style = 5;
00223 C.DrawColor.A = 180;
00224 DrawStretchedTexture(C, 255*fRatioX, ((91+OnMenu*45)*fScaleTo)*fRatioY, 349*fRatioX, 40*fRatioY, tHighlight);//OnMenu]);
00225 C.DrawColor.A = 255;
00226 DrawStretchedTexture(C, 41*fRatioX, 68*fRatioY, 242*fRatioX, 180*fScaleTo*fRatioY, tBackGround[5]);
00227 DrawStretchedTexture(C, 41*fRatioX, (68+180*fScaleTo)*fRatioY, 242*fRatioX, 180*fScaleTo*fRatioY, tBackGround[6]);
00228 C.Style = 1;
00229
00230 C.bUseBorder = true;
00231 DrawStretchedTexture(C, 140*fRatioX, 20*fRatioY, 180*fRatioX, 40*fRatioY, myRoot.FondMenu);
00232 C.TextSize(TitleText, W, H);
00233 C.DrawColor = BlackColor;
00234 C.SetPos((150 + (160-W)/2)*fRatioX, (40-H/2)*fRatioY);
00235 C.DrawText(TitleText, false);
00236 C.bUseBorder = false;
00237 C.DrawColor = WhiteColor;
00238
00239 }
00240
00241
00242 function ShowWindow()
00243 {
00244 Super.ShowWindow();
00245
00246 bShowBCK = true;
00247 bShowSEL = true;
00248 }
00249
00250
00251 function bool InternalOnKeyEvent(out byte Key, out byte State, float delta)
00252 {
00253 local int OldOnGame;
00254
00255 if ((State==1) || (state==2))// IST_Press // to avoid auto-repeat
00256 {
00257 if (Key==0x0D/*IK_Enter*/ || Key==1)
00258 {
00259 if (FocusedControl == BotsButton)
00260 GotoBotSetup();
00261 if (FocusedControl == Controls[6])
00262 StartPressed();
00263 return true;
00264 }
00265 if ((Key==0x08/*IK_Backspace*/)|| (Key==0x1B))
00266 {
00267 myRoot.CloseMenu(true);
00268 return true;
00269 }
00270 if (Key==0x26/*IK_Up*/)
00271 {
00272 PrevControl(FocusedControl);
00273 return true;
00274 }
00275 if (Key==0x28/*IK_Down*/)
00276 {
00277 NextControl(FocusedControl);
00278 return true;
00279 }
00280 if ((Key==0x25) || (Key==0x27))
00281 {
00282 OnMenu = FindComponentIndex(FocusedControl);
00283 if (OnMenu == 0)
00284 {
00285 OldOnGame = OnGame;
00286 if (Key==0x25) OnGame--;
00287 if (Key==0x27) OnGame++;
00288 OnGame = Clamp(OnGame,0,MaxGames - 1);
00289 if ( OldOnGame != OnGame )
00290 {
00291 GameCombo.SetSelectedIndex(OnGame);
00292 GameChanged();
00293 }
00294 }
00295 if ( FocusedControl==MapCombo)
00296 {
00297 if (Key==0x25) OnMap--;
00298 if (Key==0x27) OnMap++;
00299 OnMap = Clamp(OnMap,0,MapsUNRList.Length - 1);
00300 MapCombo.SetSelectedIndex(OnMap);
00301 }
00302 if (OnMenu == 2)
00303 {
00304 if ( Key==0x25 )
00305 OnFrag -= PointsLimitFactor;
00306 if ( Key==0x27 )
00307 OnFrag += PointsLimitFactor;
00308 OnFrag = Clamp(OnFrag,0,MaxScore*PointsLimitFactor);
00309 FragEdit.SetValue(OnFrag);
00310 if (OnFrag == 0) FragEdit.sValue ="-";
00311 }
00312 if (OnMenu == 3)
00313 {
00314 if (Key==0x25) OnTime -= 5;
00315 if (Key==0x27) OnTime += 5;
00316 OnTime = Clamp(OnTime,0,60);
00317 TimeEdit.SetValue(OnTime);
00318 if (OnTime == 0)
00319 TimeEdit.sValue ="-";
00320 else
00321 TimeEdit.sValue = TimeEdit.sValue@"Min.";
00322 }
00323 if (OnMenu == 5)
00324 {
00325 if (Key==0x25)
00326 FriendlyCheck.bChecked = true;
00327 else
00328 if (Key==0x27)
00329 FriendlyCheck.bChecked = false;
00330 }
00331 return true;
00332 }
00333 }
00334 return super.InternalOnKeyEvent(Key, state, delta);
00335 }
00336
00337
00338 function GameChanged()
00339 {
00340 local int CurrentGame, i;
00341
00342 if (Initialized)
00343 {
00344 OnMap = 0;
00345 Initialized=false;
00346
00347 CurrentGame = GameCombo.GetSelectedIndex();
00348
00349 OnFrag = GetDefaultGameTypeValue( OnGame );
00350 PointsLimitFactor = GetPointsLimitFactor( OnGame );
00351 FragEdit.SetValue(OnFrag);
00352 FragEdit.SetRange(0,MaxScore*PointsLimitFactor);
00353
00354 if (MapCombo != None)
00355 IterateMaps();
00356
00357 // friendly fire is visible in Team Deathmatch, Capture The Flag and Sabotage modes
00358 if ( HasFriendlyFire( OnGame ) )
00359 {
00360 FriendlyCheck.bNeverFocus = false;
00361 FriendlyCheck.bVisible = true;
00362 }
00363 else
00364 {
00365 FriendlyCheck.bNeverFocus = true;
00366 FriendlyCheck.bVisible = false;
00367 }
00368
00369 // time limit and points limit are not visible in Sabotage mode
00370 if ( HasTimeAndFragLimits( OnGame ) )
00371 {
00372 TimeEdit.bNeverFocus = false;
00373 TimeEdit.bVisible = true;
00374 FragEdit.bNeverFocus = false;
00375 FragEdit.bVisible = true;
00376 }
00377 else
00378 {
00379 TimeEdit.bNeverFocus = true;
00380 TimeEdit.bVisible = false;
00381 FragEdit.bNeverFocus = true;
00382 FragEdit.bVisible = false;
00383 }
00384
00385 Initialized = true;
00386 }
00387 }
00388
00389
00390 function MapChanged()
00391 {
00392 if (Initialized)
00393 {
00394 Map = MapsUNRList[OnMap];
00395 }
00396 }
00397
00398
00399 function FragChanged()
00400 {
00401 if (Initialized)
00402 {
00403 FragEdit.SetValue(OnFrag);
00404 if (OnFrag == 0)
00405 FragEdit.sValue ="-";
00406 }
00407 }
00408
00409
00410 function TimeChanged()
00411 {
00412 if (Initialized)
00413 {
00414 TimeEdit.SetValue(OnTime);
00415 if (OnTime == 0)
00416 TimeEdit.sValue ="-";
00417 else
00418 TimeEdit.sValue = TimeEdit.sValue@"Min.";
00419 }
00420 }
00421
00422
00423 function GotoBotSetup()
00424 {
00425 local string URL;
00426 local int N, FriendlyFire;
00427
00428 N = 1;
00429
00430 IdealPC = GameNbPlayers[ MapCombo.GetSelectedIndex( ) ]; //int( Mid( MapCombo.GetValue(), 1 ) );
00431
00432 NbBots = Min(NbBots,IdealPC - N);
00433
00434 FriendlyFire = int(FriendlyCheck.bChecked);
00435
00436 MapChanged();
00437 TimeChanged();
00438 FragChanged();
00439
00440 URL =
00441 "?Map="$Map$
00442 "?GameTypeIndex="$AllowedGameTypeIndex[OnGame]$
00443 "?IP="$IdealPC$
00444 "?NP="$N$
00445 "?FF="$FriendlyFire$
00446 "?FR="$OnFrag$
00447 "?TI="$OnTime$
00448 "?NBots="$NbBots$
00449 "?DC="$DefaultConfig$
00450 "?TB0="$TeamBot[0]$
00451 "?NB0="$NivBot[0]$
00452 "?TB1="$TeamBot[1]$
00453 "?NB1="$NivBot[1]$
00454 "?TB2="$TeamBot[2]$
00455 "?NB2="$NivBot[2]$
00456 "?TB3="$TeamBot[3]$
00457 "?NB3="$NivBot[3]$
00458 "?TB4="$TeamBot[4]$
00459 "?NB4="$NivBot[4]$
00460 "?TB5="$TeamBot[5]$
00461 "?NB5="$NivBot[5]$
00462 "?TB6="$TeamBot[6]$
00463 "?NB6="$NivBot[6];
00464
00465 //log(URL);
00466 myRoot.OpenMenu("XIDInterf.XIIIMenuBotsSetupClient", false, URL);
00467 }
00468
00469
00470 function StartPressed()
00471 {
00472 LOCAL string URL, MyName, MyClass, SkinCode, Mutator;
00473 LOCAL int i, N, IdealPC, FriendlyFire;
00474
00475 N = 1;
00476
00477 IdealPC = GameNbPlayers[ MapCombo.GetSelectedIndex( ) ]; //int( Mid( MapCombo.GetValue(), 1 ) );
00478 //IdealPC = 8;
00479
00480 NbBots = Min(NbBots,IdealPC - N);
00481
00482 FriendlyFire = int(FriendlyCheck.bChecked);
00483
00484 GetPlayerOwner().ConsoleCommand("SetViewPortNumberForNextMap "$N);
00485
00486 MapChanged();
00487 TimeChanged();
00488 FragChanged();
00489
00490 if (( NbBots == 0 ) && ( DefaultConfig == 0 ))
00491 {
00492 URL =
00493 /*"?Map="$*/Map$
00494 "?Game="$GetGameInfoText(OnGame)$
00495 "?IP="$IdealPC$
00496 "?NP="$N$
00497 "?FF="$FriendlyFire$
00498 "?FR="$OnFrag$
00499 "?TI="$OnTime$
00500 "?NBots="$(IdealPC - N)$
00501 "?TB0="$1$
00502 "?NB0="$1$
00503 "?TB1="$0$
00504 "?NB1="$2$
00505 "?TB2="$1$
00506 "?NB2="$2$
00507 "?TB3="$0$
00508 "?NB3="$0$
00509 "?TB4="$1$
00510 "?NB4="$0$
00511 "?TB5="$0$
00512 "?NB5="$3$
00513 "?TB6="$1$
00514 "?NB6="$3;
00515 }
00516 else
00517 {
00518 URL =
00519 /*"?Map="$*/Map$
00520 "?Game="$GetGameInfoText(OnGame)$
00521 "?IP="$IdealPC$
00522 "?NP="$N$
00523 "?FF="$FriendlyFire$
00524 "?FR="$OnFrag$
00525 "?TI="$OnTime$
00526 "?NBots="$NbBots$
00527 "?TB0="$TeamBot[0]$
00528 "?NB0="$NivBot[0]$
00529 "?TB1="$TeamBot[1]$
00530 "?NB1="$NivBot[1]$
00531 "?TB2="$TeamBot[2]$
00532 "?NB2="$NivBot[2]$
00533 "?TB3="$TeamBot[3]$
00534 "?NB3="$NivBot[3]$
00535 "?TB4="$TeamBot[4]$
00536 "?NB4="$NivBot[4]$
00537 "?TB5="$TeamBot[5]$
00538 "?NB5="$NivBot[5]$
00539 "?TB6="$TeamBot[6]$
00540 "?NB6="$NivBot[6];
00541 }
00542
00543 Mutator = GetMutatorText( OnGame );
00544 if ( Mutator!="" )
00545 URL = URL$"?Mutator="$Mutator;
00546
00547 // skin selection
00548 MyClass = GetPlayerOwner().GetDefaultURL("Class");
00549 SkinCode = class'MeshSkinList'.default.MeshSkinListInfo[0].SkinCode;
00550 for (i=0;i<class'MeshSkinList'.default.MeshSkinListInfo.Length;i++)
00551 {
00552 if ( MyClass == class'MeshSkinList'.default.MeshSkinListInfo[i].SkinName )
00553 {
00554 SkinCode = class'MeshSkinList'.default.MeshSkinListInfo[i].SkinCode;
00555 break;
00556 }
00557 }
00558 URL = URL$"?SK="$SkinCode;
00559
00560 // name selection
00561 MyName = GetPlayerOwner().GetDefaultURL("Name");
00562 URL = URL$"?Name="$MyName;
00563
00564 SaveConfigs();
00565
00566 myRoot.CloseAll(true);
00567 myRoot.GotoState('');
00568 myRoot.bProfileMenu = false;
00569 GetPlayerOwner().AttribPadToViewport();
00570 log("TRAVELLING w/URL: "$URL);
00571 GetPlayerOwner().ClientTravel(URL, TRAVEL_Absolute, false);
00572 }
00573
00574
00575 // if subclassed, this parent function must always be called first
00576 function string GetPageParameters()
00577 {
00578 return Super.GetPageParameters()$"?GameType="$GameCombo.GetSelectedIndex()$"?MapName="$MapCombo.GetSelectedIndex()$"?FragLimit="$FragEdit.GetValue()$"?TimeLimit="$TimeEdit.GetValue()$"?Friendly="$FriendlyCheck.bChecked$"?DC="$DefaultConfig$"?NBots="$NbBots$"?TB0="$TeamBot[0]$"?NB0="$NivBot[0]$"?TB1="$TeamBot[1]$"?NB1="$NivBot[1]$"?TB2="$TeamBot[2]$"?NB2="$NivBot[2]$"?TB3="$TeamBot[3]$"?NB3="$NivBot[3]$"?TB4="$TeamBot[4]$"?NB4="$NivBot[4]$"?TB5="$TeamBot[5]$"?NB5="$NivBot[5]$"?TB6="$TeamBot[6]$"?NB6="$NivBot[6];
00579 }
00580
00581 // if GetPageParameters() is subclassed, you'd better have this one too !
00582 function SetPageParameters(string PageParameters)
00583 {
00584 log("SetPageParameters("$PageParameters$") called for "$self);
00585
00586 OnGame = int(localParseOption(PageParameters, "GameType", "0"));
00587 GameCombo.SetSelectedIndex(OnGame);
00588 GameChanged();
00589
00590 OnMap = int(localParseOption(PageParameters, "MapName", "0"));
00591 MapCombo.SetSelectedIndex(OnMap);
00592 MapChanged();
00593
00594 OnFrag = int(localParseOption(PageParameters, "FragLimit", "0"));
00595 FragChanged();
00596
00597 OnTime = int(localParseOption(PageParameters, "TimeLimit", "0"));
00598 TimeChanged();
00599
00600 FriendlyCheck.bChecked = (Caps(localParseOption(PageParameters, "Friendly", "")) == "TRUE");
00601
00602 DefaultConfig = int( localParseOption( PageParameters,"DC", "0") );
00603
00604 NbBots = int( localParseOption( PageParameters,"NBots", "0") );
00605
00606 TeamBot[0] = int( localParseOption( PageParameters,"TB0", "1") );
00607 NivBot[0] = int( localParseOption( PageParameters,"NB0", "1") );
00608 TeamBot[1] = int( localParseOption( PageParameters,"TB1", "0") );
00609 NivBot[1] = int( localParseOption( PageParameters,"NB1", "2") );
00610 TeamBot[2] = int( localParseOption( PageParameters,"TB2", "1") );
00611 NivBot[2] = int( localParseOption( PageParameters,"NB2", "2") );
00612 TeamBot[3] = int( localParseOption( PageParameters,"TB3", "0") );
00613 NivBot[3] = int( localParseOption( PageParameters,"NB3", "0") );
00614 TeamBot[4] = int( localParseOption( PageParameters,"TB4", "1") );
00615 NivBot[4] = int( localParseOption( PageParameters,"NB4", "0") );
00616 TeamBot[5] = int( localParseOption( PageParameters,"TB5", "0") );
00617 NivBot[5] = int( localParseOption( PageParameters,"NB5", "3") );
00618 TeamBot[6] = int( localParseOption( PageParameters,"TB6", "1") );
00619 NivBot[6] = int( localParseOption( PageParameters,"NB6", "3") );
00620 }
00621
00622
00623 function SaveConfigs()
00624 {
00625 SaveConfig();
00626 GetPlayerOwner().SaveConfig();
00627 GetPlayerOwner().PlayerReplicationInfo.SaveConfig();
00628 }
00629
00630
00631
|