Core.Object | +--Engine.Actor | +--Engine.Info | +--UnrealShare.BotInfo
float
Alertness[32]
BotAccuracy[32]
string
BotClasses[32]
BotNames[32]
BotSkills[32]
BotSkins[32]
int
BotTeams[32]
Camping[32]
CombatStyle[32]
byte
Difficulty
class
FavoriteWeapon[32]
AvailableDescriptions[32],
NextBotClass
NumClasses
bool
bAdjustSkill
bRandomOrder
ChooseBotInfo()
String
GetAvailableClasses(int n)
GetBotClassName(int n)
GetBotIndex(string BotName)
GetBotName(int n)
GetBotSkin(int num)
GetBotTeam(int num)
void
Individualize(Bots NewBot, int n, int NumBots)
PostBeginPlay()
PreBeginPlay()
SetBotClass(String ClassName, int n)
SetBotName(string NewName, int n)
SetBotSkin(string NewSkin, int n)
SetBotTeam(int NewTeam, int n)
00001 //============================================================================= 00002 // BotInfo. 00003 //============================================================================= 00004 class BotInfo extends Info; 00005 00006 var() config bool bAdjustSkill; 00007 var() config bool bRandomOrder; 00008 var config byte Difficulty; 00009 00010 var() config string BotNames[32]; 00011 var() config int BotTeams[32]; 00012 var() config float BotSkills[32]; 00013 var() config float BotAccuracy[32]; 00014 var() config float CombatStyle[32]; 00015 var() config float Alertness[32]; 00016 var() config float Camping[32]; 00017 var() config class<Weapon> FavoriteWeapon[32]; 00018 var byte ConfigUsed[32]; 00019 var() config string BotClasses[32]; 00020 var() config string BotSkins[32]; 00021 var string AvailableClasses[32], AvailableDescriptions[32], NextBotClass; 00022 var int NumClasses; 00023 00024 function PreBeginPlay() 00025 { 00026 //DON'T Call parent prebeginplay 00027 } 00028 00029 function PostBeginPlay() 00030 { 00031 local string NextBotClass, NextBotDesc; 00032 local int i; 00033 00034 Super.PostBeginPlay(); 00035 00036 GetNextIntDesc("Bots", 0, NextBotClass, NextBotDesc); 00037 while ( (NextBotClass != "") && (NumClasses < 32) ) 00038 { 00039 AvailableClasses[NumClasses] = NextBotClass; 00040 AvailableDescriptions[NumClasses] = NextBotDesc; 00041 NumClasses++; 00042 GetNextIntDesc("Bots", NumClasses, NextBotClass, NextBotDesc); 00043 } 00044 } 00045 00046 function String GetAvailableClasses(int n) 00047 { 00048 return AvailableClasses[n]; 00049 } 00050 00051 function int ChooseBotInfo() 00052 { 00053 local int n, start; 00054 00055 if ( bRandomOrder ) 00056 n = Rand(16); 00057 else 00058 n = 0; 00059 00060 start = n; 00061 while ( (n < 32) && (ConfigUsed[n] == 1) ) 00062 n++; 00063 00064 if ( (n == 32) && bRandomOrder ) 00065 { 00066 n = 0; 00067 while ( (n < start) && (ConfigUsed[n] == 1) ) 00068 n++; 00069 } 00070 00071 if ( n > 31 ) 00072 n = 31; 00073 00074 return n; 00075 } 00076 00077 function class<bots> GetBotClass(int n) 00078 { 00079 return class<bots>( DynamicLoadObject(GetBotClassName(n), class'Class') ); 00080 } 00081 00082 function Individualize(bots NewBot, int n, int NumBots) 00083 { 00084 local texture NewSkin; 00085 00086 // Set bot's skin 00087 if ( (n >= 0) && (n < 32) && (BotSkins[n] != "") && (BotSkins[n] != "None") ) 00088 { 00089 NewSkin = texture(DynamicLoadObject(BotSkins[n], class'Texture')); 00090 if ( NewSkin != None ) 00091 NewBot.Skin = NewSkin; 00092 } 00093 00094 // Set bot's name. 00095 if ( (BotNames[n] == "") || (ConfigUsed[n] == 1) ) 00096 BotNames[n] = "Bot"; 00097 00098 Level.Game.ChangeName( NewBot, BotNames[n], false ); 00099 if ( BotNames[n] != NewBot.PlayerReplicationInfo.PlayerName ) 00100 Level.Game.ChangeName( NewBot, ("Bot"$NumBots), false); 00101 00102 ConfigUsed[n] = 1; 00103 00104 // adjust bot skill 00105 NewBot.Skill = FClamp(NewBot.Skill + BotSkills[n], 0, 3); 00106 NewBot.ReSetSkill(); 00107 } 00108 00109 function SetBotClass(String ClassName, int n) 00110 { 00111 BotClasses[n] = ClassName; 00112 } 00113 00114 function SetBotName( coerce string NewName, int n ) 00115 { 00116 BotNames[n] = NewName; 00117 } 00118 00119 function String GetBotName(int n) 00120 { 00121 return BotNames[n]; 00122 } 00123 00124 function int GetBotTeam(int num) 00125 { 00126 return BotTeams[Num]; 00127 } 00128 00129 function SetBotTeam(int NewTeam, int n) 00130 { 00131 BotTeams[n] = NewTeam; 00132 } 00133 00134 function int GetBotIndex( coerce string BotName ) 00135 { 00136 local int i; 00137 local bool found; 00138 00139 found = false; 00140 for (i=0; i<ArrayCount(BotNames)-1; i++) 00141 if (BotNames[i] == BotName) 00142 { 00143 found = true; 00144 break; 00145 } 00146 00147 if (!found) 00148 i = -1; 00149 00150 return i; 00151 } 00152 00153 function string GetBotSkin( int num ) 00154 { 00155 return BotSkins[Num]; 00156 } 00157 00158 function SetBotSkin( coerce string NewSkin, int n ) 00159 { 00160 BotSkins[n] = NewSkin; 00161 } 00162 00163 function String GetBotClassName(int n) 00164 { 00165 if ( (n < 0) || (n > 31) ) 00166 return AvailableClasses[Rand(NumClasses)]; 00167 00168 if ( BotClasses[n] == "" ) 00169 BotClasses[n] = AvailableClasses[Rand(NumClasses)]; 00170 00171 return BotClasses[n]; 00172 } 00173 00174 defaultproperties 00175 { 00176 Difficulty=1 00177 BotNames(0)="Dante" 00178 BotNames(1)="Ash" 00179 BotNames(2)="Rhiannon" 00180 BotNames(3)="Kurgan" 00181 BotNames(4)="Sonja" 00182 BotNames(5)="Avatar" 00183 BotNames(6)="Dominator" 00184 BotNames(7)="Cholerae" 00185 BotNames(8)="Apocalypse" 00186 BotNames(9)="Bane" 00187 BotNames(10)="Hippolyta" 00188 BotNames(11)="Eradicator" 00189 BotNames(12)="Nikita" 00190 BotNames(13)="Arcturus" 00191 BotNames(14)="Shiva" 00192 BotNames(15)="Vindicator" 00193 BotTeams(0)=1 00194 BotTeams(2)=1 00195 BotTeams(4)=1 00196 BotTeams(6)=1 00197 BotTeams(8)=1 00198 BotTeams(10)=1 00199 BotTeams(12)=1 00200 BotTeams(14)=1 00201 BotClasses(0)="UnrealShare.MaleThreeBot" 00202 BotClasses(1)="Unreali.MaleTwoBot" 00203 BotClasses(2)="UnrealShare.FemaleOneBot" 00204 BotClasses(3)="Unreali.MaleOneBot" 00205 BotClasses(4)="Unreali.FemaleTwoBot" 00206 BotClasses(5)="UnrealShare.MaleThreeBot" 00207 BotClasses(6)="Unreali.SkaarjPlayerBot" 00208 BotClasses(7)="UnrealShare.FemaleOneBot" 00209 BotClasses(8)="UnrealShare.MaleThreeBot" 00210 BotClasses(9)="Unreali.MaleTwoBot" 00211 BotClasses(10)="Unreali.FemaleTwoBot" 00212 BotClasses(11)="Unreali.SkaarjPlayerBot" 00213 BotClasses(12)="UnrealShare.FemaleOneBot" 00214 BotClasses(13)="Unreali.MaleOneBot" 00215 BotClasses(14)="Unreali.MaleTwoBot" 00216 BotClasses(15)="Unreali.SkaarjPlayerBot" 00217 }