216 lines
4.8 KiB
Plaintext
216 lines
4.8 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
setmodelfromarray( var_0 )
|
|
{
|
|
self setmodel( var_0[randomint( var_0.size )] );
|
|
}
|
|
|
|
precachemodelarray( var_0 )
|
|
{
|
|
for ( var_1 = 0; var_1 < var_0.size; var_1++ )
|
|
precachemodel( var_0[var_1] );
|
|
}
|
|
|
|
attachhead( var_0, var_1 )
|
|
{
|
|
if ( !isdefined( level.character_head_index ) )
|
|
level.character_head_index = [];
|
|
|
|
if ( !isdefined( level.character_head_index[var_0] ) )
|
|
level.character_head_index[var_0] = randomint( var_1.size );
|
|
|
|
var_2 = ( level.character_head_index[var_0] + 1 ) % var_1.size;
|
|
|
|
if ( isdefined( self.script_char_index ) )
|
|
var_2 = self.script_char_index % var_1.size;
|
|
|
|
level.character_head_index[var_0] = var_2;
|
|
self attach( var_1[var_2], "", 1 );
|
|
self.headmodel = var_1[var_2];
|
|
}
|
|
|
|
attachhat( var_0, var_1 )
|
|
{
|
|
if ( !isdefined( level.character_hat_index ) )
|
|
level.character_hat_index = [];
|
|
|
|
if ( !isdefined( level.character_hat_index[var_0] ) )
|
|
level.character_hat_index[var_0] = randomint( var_1.size );
|
|
|
|
var_2 = ( level.character_hat_index[var_0] + 1 ) % var_1.size;
|
|
level.character_hat_index[var_0] = var_2;
|
|
self attach( var_1[var_2] );
|
|
self.hatmodel = var_1[var_2];
|
|
}
|
|
|
|
new()
|
|
{
|
|
self detachall();
|
|
var_0 = self.anim_gunhand;
|
|
|
|
if ( !isdefined( var_0 ) )
|
|
return;
|
|
|
|
self.anim_gunhand = "none";
|
|
self [[ anim.putguninhand ]]( var_0 );
|
|
}
|
|
|
|
save()
|
|
{
|
|
var_0["gunHand"] = self.anim_gunhand;
|
|
var_0["gunInHand"] = self.anim_guninhand;
|
|
var_0["model"] = self.model;
|
|
var_0["hatModel"] = self.hatmodel;
|
|
|
|
if ( isdefined( self.name ) )
|
|
var_0["name"] = self.name;
|
|
else
|
|
{
|
|
|
|
}
|
|
|
|
var_1 = self getattachsize();
|
|
|
|
for ( var_2 = 0; var_2 < var_1; var_2++ )
|
|
{
|
|
var_0["attach"][var_2]["model"] = self getattachmodelname( var_2 );
|
|
var_0["attach"][var_2]["tag"] = self getattachtagname( var_2 );
|
|
}
|
|
|
|
return var_0;
|
|
}
|
|
|
|
load( var_0 )
|
|
{
|
|
self detachall();
|
|
self.anim_gunhand = var_0["gunHand"];
|
|
self.anim_guninhand = var_0["gunInHand"];
|
|
self setmodel( var_0["model"] );
|
|
self.hatmodel = var_0["hatModel"];
|
|
|
|
if ( isdefined( var_0["name"] ) )
|
|
self.name = var_0["name"];
|
|
else
|
|
{
|
|
|
|
}
|
|
|
|
var_1 = var_0["attach"];
|
|
var_2 = var_1.size;
|
|
|
|
for ( var_3 = 0; var_3 < var_2; var_3++ )
|
|
self attach( var_1[var_3]["model"], var_1[var_3]["tag"] );
|
|
}
|
|
|
|
precache( var_0 )
|
|
{
|
|
if ( isdefined( var_0["name"] ) )
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
|
|
precachemodel( var_0["model"] );
|
|
var_1 = var_0["attach"];
|
|
var_2 = var_1.size;
|
|
|
|
for ( var_3 = 0; var_3 < var_2; var_3++ )
|
|
precachemodel( var_1[var_3]["model"] );
|
|
}
|
|
|
|
get_random_character( var_0 )
|
|
{
|
|
var_1 = strtok( self.classname, "_" );
|
|
|
|
if ( !common_scripts\utility::issp() )
|
|
{
|
|
if ( isdefined( self.pers["modelIndex"] ) && self.pers["modelIndex"] < var_0 )
|
|
return self.pers["modelIndex"];
|
|
|
|
var_2 = randomint( var_0 );
|
|
self.pers["modelIndex"] = var_2;
|
|
return var_2;
|
|
}
|
|
else if ( var_1.size <= 2 )
|
|
return randomint( var_0 );
|
|
|
|
var_3 = "auto";
|
|
var_2 = undefined;
|
|
var_4 = var_1[2];
|
|
|
|
if ( isdefined( self.script_char_index ) )
|
|
var_2 = self.script_char_index;
|
|
|
|
if ( isdefined( self.script_char_group ) )
|
|
{
|
|
var_5 = "grouped";
|
|
var_3 = "group_" + self.script_char_group;
|
|
}
|
|
|
|
if ( !isdefined( level.character_index_cache ) )
|
|
level.character_index_cache = [];
|
|
|
|
if ( !isdefined( level.character_index_cache[var_4] ) )
|
|
level.character_index_cache[var_4] = [];
|
|
|
|
if ( !isdefined( level.character_index_cache[var_4][var_3] ) )
|
|
initialize_character_group( var_4, var_3, var_0 );
|
|
|
|
if ( !isdefined( var_2 ) )
|
|
{
|
|
var_2 = get_least_used_index( var_4, var_3 );
|
|
|
|
if ( !isdefined( var_2 ) )
|
|
var_2 = randomint( 5000 );
|
|
}
|
|
|
|
while ( var_2 >= var_0 )
|
|
var_2 = var_2 - var_0;
|
|
|
|
level.character_index_cache[var_4][var_3][var_2]++;
|
|
return var_2;
|
|
}
|
|
|
|
get_least_used_index( var_0, var_1 )
|
|
{
|
|
var_2 = [];
|
|
var_3 = level.character_index_cache[var_0][var_1][0];
|
|
var_2[0] = 0;
|
|
|
|
for ( var_4 = 1; var_4 < level.character_index_cache[var_0][var_1].size; var_4++ )
|
|
{
|
|
if ( level.character_index_cache[var_0][var_1][var_4] > var_3 )
|
|
continue;
|
|
|
|
if ( level.character_index_cache[var_0][var_1][var_4] < var_3 )
|
|
{
|
|
var_2 = [];
|
|
var_3 = level.character_index_cache[var_0][var_1][var_4];
|
|
}
|
|
|
|
var_2[var_2.size] = var_4;
|
|
}
|
|
|
|
return random( var_2 );
|
|
}
|
|
|
|
initialize_character_group( var_0, var_1, var_2 )
|
|
{
|
|
for ( var_3 = 0; var_3 < var_2; var_3++ )
|
|
level.character_index_cache[var_0][var_1][var_3] = 0;
|
|
}
|
|
|
|
get_random_weapon( var_0 )
|
|
{
|
|
return randomint( var_0 );
|
|
}
|
|
|
|
random( var_0 )
|
|
{
|
|
return var_0[randomint( var_0.size )];
|
|
}
|