mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-20 23:57:53 -05:00
Update scripts to better decompiled scripts.
This commit is contained in:
200
ZM/Core/codescripts/character.gsc
Normal file
200
ZM/Core/codescripts/character.gsc
Normal file
@ -0,0 +1,200 @@
|
||||
// T6 GSC SOURCE
|
||||
// Decompiled by https://github.com/xensik/gsc-tool
|
||||
|
||||
setmodelfromarray( a )
|
||||
{
|
||||
self setmodel( a[randomint( a.size )] );
|
||||
}
|
||||
|
||||
precachemodelarray( a )
|
||||
{
|
||||
for ( i = 0; i < a.size; i++ )
|
||||
precachemodel( a[i] );
|
||||
}
|
||||
|
||||
randomelement( a )
|
||||
{
|
||||
return a[randomint( a.size )];
|
||||
}
|
||||
|
||||
attachfromarray( a )
|
||||
{
|
||||
self attach( randomelement( a ), "", 1 );
|
||||
}
|
||||
|
||||
new()
|
||||
{
|
||||
self detachall();
|
||||
oldgunhand = self.anim_gunhand;
|
||||
|
||||
if ( !isdefined( oldgunhand ) )
|
||||
return;
|
||||
|
||||
self.anim_gunhand = "none";
|
||||
self [[ anim.putguninhand ]]( oldgunhand );
|
||||
}
|
||||
|
||||
save()
|
||||
{
|
||||
info["gunHand"] = self.anim_gunhand;
|
||||
info["gunInHand"] = self.anim_guninhand;
|
||||
info["model"] = self.model;
|
||||
info["hatModel"] = self.hatmodel;
|
||||
info["gearModel"] = self.gearmodel;
|
||||
|
||||
if ( isdefined( self.name ) )
|
||||
{
|
||||
info["name"] = self.name;
|
||||
/#
|
||||
println( "Save: Guy has name ", self.name );
|
||||
#/
|
||||
}
|
||||
else
|
||||
{
|
||||
/#
|
||||
println( "save: Guy had no name!" );
|
||||
#/
|
||||
}
|
||||
|
||||
attachsize = self getattachsize();
|
||||
|
||||
for ( i = 0; i < attachsize; i++ )
|
||||
{
|
||||
info["attach"][i]["model"] = self getattachmodelname( i );
|
||||
info["attach"][i]["tag"] = self getattachtagname( i );
|
||||
}
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
load( info )
|
||||
{
|
||||
self detachall();
|
||||
self.anim_gunhand = info["gunHand"];
|
||||
self.anim_guninhand = info["gunInHand"];
|
||||
self setmodel( info["model"] );
|
||||
self.hatmodel = info["hatModel"];
|
||||
self.gearmodel = info["gearModel"];
|
||||
|
||||
if ( isdefined( info["name"] ) )
|
||||
{
|
||||
self.name = info["name"];
|
||||
/#
|
||||
println( "Load: Guy has name ", self.name );
|
||||
#/
|
||||
}
|
||||
else
|
||||
{
|
||||
/#
|
||||
println( "Load: Guy had no name!" );
|
||||
#/
|
||||
}
|
||||
|
||||
attachinfo = info["attach"];
|
||||
attachsize = attachinfo.size;
|
||||
|
||||
for ( i = 0; i < attachsize; i++ )
|
||||
self attach( attachinfo[i]["model"], attachinfo[i]["tag"] );
|
||||
}
|
||||
|
||||
precache( info )
|
||||
{
|
||||
if ( isdefined( info["name"] ) )
|
||||
{
|
||||
/#
|
||||
println( "Precache: Guy has name ", info["name"] );
|
||||
#/
|
||||
}
|
||||
else
|
||||
{
|
||||
/#
|
||||
println( "Precache: Guy had no name!" );
|
||||
#/
|
||||
}
|
||||
|
||||
precachemodel( info["model"] );
|
||||
attachinfo = info["attach"];
|
||||
attachsize = attachinfo.size;
|
||||
|
||||
for ( i = 0; i < attachsize; i++ )
|
||||
precachemodel( attachinfo[i]["model"] );
|
||||
}
|
||||
|
||||
get_random_character( amount )
|
||||
{
|
||||
self_info = strtok( self.classname, "_" );
|
||||
|
||||
if ( self_info.size <= 2 )
|
||||
return randomint( amount );
|
||||
|
||||
group = "auto";
|
||||
index = undefined;
|
||||
prefix = self_info[2];
|
||||
|
||||
if ( isdefined( self.script_char_index ) )
|
||||
index = self.script_char_index;
|
||||
|
||||
if ( isdefined( self.script_char_group ) )
|
||||
{
|
||||
type = "grouped";
|
||||
group = "group_" + self.script_char_group;
|
||||
}
|
||||
|
||||
if ( !isdefined( level.character_index_cache ) )
|
||||
level.character_index_cache = [];
|
||||
|
||||
if ( !isdefined( level.character_index_cache[prefix] ) )
|
||||
level.character_index_cache[prefix] = [];
|
||||
|
||||
if ( !isdefined( level.character_index_cache[prefix][group] ) )
|
||||
initialize_character_group( prefix, group, amount );
|
||||
|
||||
if ( !isdefined( index ) )
|
||||
{
|
||||
index = get_least_used_index( prefix, group );
|
||||
|
||||
if ( !isdefined( index ) )
|
||||
index = randomint( 5000 );
|
||||
}
|
||||
|
||||
while ( index >= amount )
|
||||
index -= amount;
|
||||
|
||||
level.character_index_cache[prefix][group][index]++;
|
||||
return index;
|
||||
}
|
||||
|
||||
get_least_used_index( prefix, group )
|
||||
{
|
||||
lowest_indices = [];
|
||||
lowest_use = level.character_index_cache[prefix][group][0];
|
||||
lowest_indices[0] = 0;
|
||||
|
||||
for ( i = 1; i < level.character_index_cache[prefix][group].size; i++ )
|
||||
{
|
||||
if ( level.character_index_cache[prefix][group][i] > lowest_use )
|
||||
continue;
|
||||
|
||||
if ( level.character_index_cache[prefix][group][i] < lowest_use )
|
||||
{
|
||||
lowest_indices = [];
|
||||
lowest_use = level.character_index_cache[prefix][group][i];
|
||||
}
|
||||
|
||||
lowest_indices[lowest_indices.size] = i;
|
||||
}
|
||||
|
||||
assert( lowest_indices.size, "Tried to spawn a character but the lowest indices didn't exist" );
|
||||
return random( lowest_indices );
|
||||
}
|
||||
|
||||
initialize_character_group( prefix, group, amount )
|
||||
{
|
||||
for ( i = 0; i < amount; i++ )
|
||||
level.character_index_cache[prefix][group][i] = 0;
|
||||
}
|
||||
|
||||
random( array )
|
||||
{
|
||||
return array[randomint( array.size )];
|
||||
}
|
19
ZM/Core/codescripts/character_mp.gsc
Normal file
19
ZM/Core/codescripts/character_mp.gsc
Normal file
@ -0,0 +1,19 @@
|
||||
// T6 GSC SOURCE
|
||||
// Decompiled by https://github.com/xensik/gsc-tool
|
||||
#include codescripts\character;
|
||||
|
||||
setmodelfromarray( a )
|
||||
{
|
||||
self setmodel( a[randomint( a.size )] );
|
||||
}
|
||||
|
||||
precachemodelarray( a )
|
||||
{
|
||||
for ( i = 0; i < a.size; i++ )
|
||||
precachemodel( a[i] );
|
||||
}
|
||||
|
||||
attachfromarray( a )
|
||||
{
|
||||
self attach( codescripts\character::randomelement( a ), "", 1 );
|
||||
}
|
24
ZM/Core/codescripts/delete.csc
Normal file
24
ZM/Core/codescripts/delete.csc
Normal file
@ -0,0 +1,24 @@
|
||||
// T6 GSC SOURCE
|
||||
// Decompiled by https://github.com/xensik/gsc-tool
|
||||
|
||||
main()
|
||||
{
|
||||
assert( isdefined( self ) );
|
||||
wait 0;
|
||||
|
||||
if ( isdefined( self ) )
|
||||
{
|
||||
/#
|
||||
if ( isdefined( self.classname ) )
|
||||
{
|
||||
if ( self.classname == "trigger_once" || self.classname == "trigger_radius" || self.classname == "trigger_multiple" )
|
||||
{
|
||||
println( "" );
|
||||
println( "*** trigger debug: delete.gsc is deleting trigger with ent#: " + self getentitynumber() + " at origin: " + self.origin );
|
||||
println( "" );
|
||||
}
|
||||
}
|
||||
#/
|
||||
self delete();
|
||||
}
|
||||
}
|
24
ZM/Core/codescripts/delete.gsc
Normal file
24
ZM/Core/codescripts/delete.gsc
Normal file
@ -0,0 +1,24 @@
|
||||
// T6 GSC SOURCE
|
||||
// Decompiled by https://github.com/xensik/gsc-tool
|
||||
|
||||
main()
|
||||
{
|
||||
assert( isdefined( self ) );
|
||||
wait 0;
|
||||
|
||||
if ( isdefined( self ) )
|
||||
{
|
||||
/#
|
||||
if ( isdefined( self.classname ) )
|
||||
{
|
||||
if ( self.classname == "trigger_once" || self.classname == "trigger_radius" || self.classname == "trigger_multiple" )
|
||||
{
|
||||
println( "" );
|
||||
println( "*** trigger debug: delete.gsc is deleting trigger with ent#: " + self getentitynumber() + " at origin: " + self.origin );
|
||||
println( "" );
|
||||
}
|
||||
}
|
||||
#/
|
||||
self delete();
|
||||
}
|
||||
}
|
25
ZM/Core/codescripts/struct.csc
Normal file
25
ZM/Core/codescripts/struct.csc
Normal file
@ -0,0 +1,25 @@
|
||||
// T6 GSC SOURCE
|
||||
// Decompiled by https://github.com/xensik/gsc-tool
|
||||
|
||||
initstructs()
|
||||
{
|
||||
level.struct = [];
|
||||
}
|
||||
|
||||
createstruct()
|
||||
{
|
||||
struct = spawnstruct();
|
||||
level.struct[level.struct.size] = struct;
|
||||
return struct;
|
||||
}
|
||||
|
||||
findstruct( position )
|
||||
{
|
||||
for ( i = 0; i < level.struct.size; i++ )
|
||||
{
|
||||
if ( distancesquared( level.struct[i].origin, position ) < 1 )
|
||||
return level.struct[i];
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
29
ZM/Core/codescripts/struct.gsc
Normal file
29
ZM/Core/codescripts/struct.gsc
Normal file
@ -0,0 +1,29 @@
|
||||
// T6 GSC SOURCE
|
||||
// Decompiled by https://github.com/xensik/gsc-tool
|
||||
|
||||
initstructs()
|
||||
{
|
||||
level.struct = [];
|
||||
}
|
||||
|
||||
createstruct()
|
||||
{
|
||||
struct = spawnstruct();
|
||||
level.struct[level.struct.size] = struct;
|
||||
return struct;
|
||||
}
|
||||
|
||||
findstruct( position )
|
||||
{
|
||||
foreach ( key, _ in level.struct_class_names )
|
||||
{
|
||||
foreach ( val, s_array in level.struct_class_names[key] )
|
||||
{
|
||||
foreach ( struct in s_array )
|
||||
{
|
||||
if ( distancesquared( struct.origin, position ) < 1 )
|
||||
return struct;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user