Added BO1 ZM rawfiles

This commit is contained in:
InfinityLoader
2024-02-18 17:32:07 -05:00
parent 1a9be4df02
commit b53c55f0c0
934 changed files with 216070 additions and 0 deletions

View File

@ -0,0 +1,496 @@
#include clientscripts\_utility;
#include clientscripts\_vehicle;
#include clientscripts\_lights;
#include clientscripts\_fx;
statechange(clientNum, system, newState)
{
if(!isdefined(level._systemStates))
{
level._systemStates = [];
}
if(!isdefined(level._systemStates[system]))
{
level._systemStates[system] = spawnstruct();
}
level._systemStates[system].state = newState;
if(isdefined(level._systemStates[system].callback))
{
[[level._systemStates[system].callback]](clientNum, newState);
}
else
{
println("*** Unhandled client system state change - " + system + " - has no registered callback function.");
}
}
maprestart()
{
println("*** Client script VM map restart.");
}
glass_smash(org, dir)
{
level notify("glass_smash", org, dir);
}
init_fx(clientNum)
{
waitforclient(clientNum);
clientscripts\_fx::fx_init(clientNum);
}
AddCallback(event, func)
{
AssertEx(IsDefined(event), "Trying to set a callback on an undefined event.");
if (!IsDefined(level._callbacks) || !IsDefined(level._callbacks[event]))
{
level._callbacks[event] = [];
}
level._callbacks[event] = add_to_array(level._callbacks[event], func, false);
}
Callback(event,clientNum)
{
if (IsDefined(level._callbacks) && IsDefined(level._callbacks[event]))
{
for (i = 0; i < level._callbacks[event].size; i++)
{
callback = level._callbacks[event][i];
if (IsDefined(callback))
{
self thread [[callback]](clientNum);
}
}
}
}
localclientconnect(clientNum)
{
println("*** Client script VM : Local client connect " + clientNum);
level.usetreadfx = 1;
if(isdefined(level._load_done) && clientNum > 0)
{
level notify( "kill_treads_forever" );
level.usetreadfx = 0;
}
if(!isdefined(level._laststand))
{
level._laststand = [];
}
level._laststand[clientNum] = false;
level notify("effects_init_"+clientNum);
level notify("connected", clientNum);
level thread localclientconnect_callback(clientNum);
}
localclientconnect_callback(clientNum)
{
wait .01;
player = GetLocalPlayers()[clientNum];
player Callback("on_player_connect",clientNum);
}
localclientdisconnect(clientNum)
{
println("*** Client script VM : Local client disconnect " + clientNum);
}
playerspawned(localClientNum)
{
self endon( "entityshutdown" );
self thread clientscripts\_flamethrower_plight::play_pilot_light_fx( localClientNum );
if(isdefined(level._faceAnimCBFunc))
self thread [[level._faceAnimCBFunc]](localClientNum);
if(isdefined(level._playerCBFunc))
self thread [[level._playerCBFunc]](localClientNum);
level thread localclientspawned_callback(localClientNum);
}
localclientspawned_callback(localClientNum)
{
wait .01;
player = GetLocalPlayers()[localClientNum];
player Callback( "playerspawned", localClientNum );
}
CodeCallback_GibEvent( localClientNum, type, locations )
{
if ( isdefined( level._gibEventCBFunc ) )
{
self thread [[level._gibEventCBFunc]]( localClientNum, type, locations );
}
}
get_gib_def()
{
if( !isdefined( level._gibbing_actor_models ) )
{
return -1;
}
for ( i = 0; i < level._gibbing_actor_models.size; i++ )
{
if ( self [[level._gibbing_actor_models[i].matches_me]]() )
{
self._original_model = self.model;
return i;
}
}
return -1;
}
entityspawned(localClientNum)
{
self endon( "entityshutdown" );
if ( !isdefined( self.type ) )
{
PrintLn( "Entity type undefined!" );
return;
}
if ( self.type == "missile" )
{
switch( self.weapon )
{
case "explosive_bolt_sp":
self thread clientscripts\_explosive_bolt::spawned( localClientNum, true, false );
break;
case "explosive_bolt_zm":
self thread clientscripts\_explosive_bolt::spawned( localClientNum, true, false );
break;
case "explosive_bolt_upgraded_zm":
self thread clientscripts\_explosive_bolt::spawned( localClientNum, true, true );
break;
case "crossbow_explosive_sp":
self thread clientscripts\_explosive_bolt::spawned( localClientNum, true, false );
break;
case "crossbow_explosive_zm":
self thread clientscripts\_explosive_bolt::spawned( localClientNum, true, false );
break;
case "crossbow_explosive_upgraded_zm":
self thread clientscripts\_explosive_bolt::spawned( localClientNum, false, true );
break;
case "sticky_grenade_zm":
if ( isdefined( level.zombie_sticky_grenade_spawned_func ) )
{
self thread [[level.zombie_sticky_grenade_spawned_func]]( localClientNum, true );
}
break;
case "zombie_quantum_bomb":
if( isdefined( level.zombie_quantum_bomb_spawned_func ) )
{
self thread [[level.zombie_quantum_bomb_spawned_func]]( localClientNum, true );
}
}
}
if( self.type == "vehicle" )
{
if( !isdefined( level.vehicles_inited ) )
{
clientscripts\_vehicle::init_vehicles();
}
clientscripts\_treadfx::loadtreadfx(self);
if( isdefined(level._customVehicleCBFunc) )
{
self thread [[level._customVehicleCBFunc]](localClientNum);
}
if ( !( self is_plane() ) && !(self is_helicopter()) && level.usetreadfx == 1 )
{
assert( isdefined( self.rumbleType ) );
precacherumble( self.rumbleType );
if( isdefined( self.exhaustfxname ) && self.exhaustfxname != "" )
{
self.exhaust_fx = loadfx( self.exhaustfxname );
}
self thread vehicle_treads(localClientNum);
self thread playTankExhaust(localClientNum);
self thread vehicle_rumble(localClientNum);
self thread vehicle_variants(localClientNum);
self thread vehicle_weapon_fired();
}
else if (self is_plane())
{
self thread aircraft_dustkick();
}
else if(self is_helicopter())
{
assert( isdefined( self.rumbleType ) );
precacherumble( self.rumbleType );
if( isdefined( self.exhaustfxname ) && self.exhaustfxname != "" )
{
self.exhaust_fx = loadfx( self.exhaustfxname );
}
self thread play_rotor_fx(localClientNum);
self thread delete_rotor_fx_on_save_restore(localClientNum);
self thread play_exhaust(localClientNum);
self thread aircraft_dustkick();
self clientscripts\_helicopter_sounds::start_helicopter_sounds();
}
self thread vehicle_clientmain(localClientNum);
}
else if (self.type == "actor" && GetDvarInt(#"zombiemode") > 0 )
{
if(isdefined(level._zombieCBFunc))
{
players = GetLocalPlayers();
for ( i = 0; i < players.size; i++ )
{
self thread [[level._zombieCBFunc]]( i );
}
}
}
if (self.type == "actor")
{
if(isdefined(level._faceAnimCBFunc))
self thread [[level._faceAnimCBFunc]](localClientNum);
if ( localClientNum == 0 )
{
self._gib_def = get_gib_def();
if( self._gib_def == -1 )
{
PrintLn( "*** Actor with model " + self.model + " not set for client-side gibbing." );
}
}
}
self.entity_spawned = true;
self notify("entity_spawned");
}
entityshutdown_callback( localClientNum, entity )
{
if( IsDefined( level._entityShutDownCBFunc ) )
{
[[level._entityShutDownCBFunc]]( localClientNum, entity );
}
}
airsupport( localClientNum, x, y, z, type, yaw, team, teamfaction, owner, exittype )
{
pos = ( x, y, z );
switch( teamFaction )
{
case "v":
teamfaction = "vietcong";
break;
case "n":
case "nva":
teamfaction = "nva";
break;
case "j":
teamfaction = "japanese";
break;
case "m":
teamfaction = "marines";
break;
case "s":
teamfaction = "specops";
break;
case "r":
teamfaction = "russian";
break;
default:
println( "Warning: Invalid team char provided, defaulted to marines" );
println( teamFaction + "\n" );
teamfaction = "marines";
break;
}
switch( team )
{
case "x":
team = "axis";
break;
case "l":
team = "allies";
break;
case "r":
team = "free";
break;
default:
println( "Invalid team used with playclientAirstike/napalm: " + team + "\n");
team = "allies";
break;
}
switch( exitType )
{
case "l":
exitType = "left";
break;
case "r":
exitType = "right";
break;
case "s":
exitType = "straight";
break;
case "b":
exitType = "barrelroll";
break;
default:
println( "Warning: Incorret exit type, defaulting to left" );
println( exitType + "\n" );
team = "left";
break;
}
if ( type == "n" )
{
clientscripts\_napalm::startNapalm( localClientNum, pos, yaw, teamfaction, team, owner, exitType );
}
else
{
println( "" );
println( "Unhandled airsupport type, only A (airstrike) and N (napalm) supported" );
println( type );
println( "" );
}
}
scriptmodelspawned(local_client_num, ent, destructable_index)
{
if(destructable_index == 0)
return;
if(!isdefined(level.createFXent))
return;
fixed = false;
for(i = 0; i < level.createFXent.size; i ++)
{
if(level.createFXent[i].v["type"] != "exploder")
continue;
exploder = level.createFXent[i];
if(!isdefined(exploder.needs_fixup))
continue;
if(exploder.needs_fixup == destructable_index)
{
exploder.v["angles"] = VectorToAngles( ent.origin - exploder.v["origin"] );
exploder clientscripts\_fx::set_forward_and_up_vectors();
exploder.needs_fixup = undefined;
fixed = true;
}
}
}
callback_activate_exploder(exploder_id)
{
if(!isdefined(level._exploder_ids))
return;
keys = getarraykeys(level._exploder_ids);
exploder = undefined;
for(i = 0; i < keys.size; i ++)
{
if(level._exploder_ids[keys[i]] == exploder_id)
{
exploder = keys[i];
break;
}
}
if(!isdefined(exploder))
{
println("*** Client : Exploder id " + exploder_id + " unknown.");
return;
}
println("*** Client callback - activate exploder " + exploder_id + " : " + exploder);
clientscripts\_fx::activate_exploder(exploder);
}
callback_deactivate_exploder(exploder_id)
{
if(!isdefined(level._exploder_ids))
return;
keys = getarraykeys(level._exploder_ids);
exploder = undefined;
for(i = 0; i < keys.size; i ++)
{
if(level._exploder_ids[keys[i]] == exploder_id)
{
exploder = keys[i];
break;
}
}
if(!isdefined(exploder))
{
println("*** Client : Exploder id " + exploder_id + " unknown.");
return;
}
println("*** Client callback - deactivate exploder " + exploder_id + " : " + exploder);
clientscripts\_fx::deactivate_exploder(exploder);
}
level_notify(notify_name, param1, param2)
{
level notify(notify_name, param1, param2);
}
sound_notify(client_num, entity, note )
{
if ( note == "sound_dogstep_run_default" )
{
entity playsound( client_num, "fly_dog_step_run_default" );
return true;
}
prefix = getsubstr( note, 0, 5 );
if ( prefix != "sound" )
return false;
alias = "aml" + getsubstr( note, 5 );
entity play_dog_sound( client_num, alias);
}
dog_sound_print( message )
{
}
play_dog_sound( localClientNum, sound, position )
{
dog_sound_print( "SOUND " + sound);
if ( isdefined( position ) )
{
return self playsound( localClientNum, sound, position );
}
return self playsound( localClientNum, sound );
}
client_flag_callback(localClientNum, flag, set, newEnt)
{
if ((self.type == "vehicle" || self.type == "actor" || self.type == "missle") && !IsDefined(self.entity_spawned))
{
self waittill("entity_spawned");
}
if(isdefined(level._client_flag_callbacks) && isdefined(level._client_flag_callbacks[self.type]) && IsDefined(level._client_flag_callbacks[self.type][flag]))
{
self thread [[level._client_flag_callbacks[self.type][flag]]](localClientNum, set, newEnt);
}
else
{
}
}
client_flagasval_callback(localClientNum, val)
{
if(isdefined(level._client_flagasval_callbacks) && isdefined(level._client_flagasval_callbacks[self.type]))
{
self thread [[level._client_flagasval_callbacks[self.type]]](localClientNum, val);
}
}
CodeCallback_PlayerFootstep(client_num, player, movementtype, ground_type, firstperson, quiet)
{
clientscripts\_footsteps::playerFootstep(client_num, player, movementtype, ground_type, firstperson, quiet);
}
CodeCallback_CreatingCorpse(localClientNum, player )
{
player notify( "face", "face_death" );
}
CodeCallback_PlayerJump(client_num, player, ground_type, firstperson, quiet)
{
clientscripts\_footsteps::playerJump(client_num, player, ground_type, firstperson, quiet);
}
CodeCallback_PlayerLand(client_num, player, ground_type, firstperson, quiet, damagePlayer)
{
clientscripts\_footsteps::playerLand(client_num, player, ground_type, firstperson, quiet, damagePlayer);
}
CodeCallback_PlayerFoliage(client_num, player, firstperson, quiet)
{
clientscripts\_footsteps::playerFoliage(client_num, player, firstperson, quiet);
}
AddPlayWeaponDeathEffectsCallback(weaponname, func)
{
if (!IsDefined(level._playweapondeatheffectscallbacks))
{
level._playweapondeatheffectscallbacks = [];
}
level._playweapondeatheffectscallbacks[weaponname] = func;
}
CodeCallback_PlayWeaponDeathEffects( localclientnum, weaponname, userdata )
{
if (IsDefined(level._playweapondeatheffectscallbacks) && IsDefined(level._playweapondeatheffectscallbacks[weaponname]))
{
self thread [[level._playweapondeatheffectscallbacks[weaponname]]]( localclientnum, weaponname, userdata );
}
}
AddPlayWeaponDamageEffectsCallback(weaponname, func)
{
if (!IsDefined(level._playweapondamageeffectscallbacks))
{
level._playweapondamageeffectscallbacks = [];
}
level._playweapondamageeffectscallbacks[weaponname] = func;
}
CodeCallback_PlayWeaponDamageEffects( localclientnum, weaponname, userdata )
{
if (IsDefined(level._playweapondamageeffectscallbacks) && IsDefined(level._playweapondamageeffectscallbacks[weaponname]))
{
self thread [[level._playweapondamageeffectscallbacks[weaponname]]]( localclientnum, weaponname, userdata );
}
}