mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
161 lines
7.2 KiB
Plaintext
161 lines
7.2 KiB
Plaintext
#include common_scripts\utility;
|
||
#using_animtree ("zombie_dog");
|
||
main()
|
||
{
|
||
level.dog_debug_orient = 0;
|
||
level.dog_debug_anims = 0;
|
||
level.dog_debug_anims_ent = 0;
|
||
level.dog_debug_turns = 0;
|
||
self useAnimTree( #animtree );
|
||
self.animSet = "zombie";
|
||
initDogAnimations();
|
||
animscripts\zombie_init::firstInit();
|
||
self.chatInitialized = false;
|
||
self.noDodgeMove = true;
|
||
self.root_anim = %root;
|
||
self.meleeAttackDist = 0;
|
||
self thread setMeleeAttackDist();
|
||
level.dogRunTurnSpeed = 20;
|
||
level.dogRunPainSpeed = 20;
|
||
self.a = SpawnStruct();
|
||
self.a.pose = "stand";
|
||
self.a.nextStandingHitDying = false;
|
||
self.a.movement = "walk";
|
||
animscripts\zombie_init::set_anim_playback_rate();
|
||
self.disableArrivals = false;
|
||
self.pathEnemyFightDist = 512;
|
||
self setTalkToSpecies( "dog" );
|
||
self.health = int( anim.dog_health * self.health );
|
||
}
|
||
change_anim_set( animset )
|
||
{
|
||
assert( animset == "shepherd" || animset == "zombie" );
|
||
self.animSet = animset;
|
||
if( isdefined(anim.dogAnims) && isdefined(anim.dogAnims[self.animSet]) )
|
||
self.stopAnimDistSq = anim.dogAnims[self.animSet].dogStoppingDistSq;
|
||
}
|
||
setMeleeAttackDist()
|
||
{
|
||
self endon( "death" );
|
||
while ( 1 )
|
||
{
|
||
if ( IsDefined( self.enemy ) && IsPlayer(self.enemy) )
|
||
{
|
||
self.meleeAttackDist = anim.dogAnims[self.animSet].dogAttackPlayerDist;
|
||
}
|
||
else
|
||
{
|
||
self.meleeAttackDist = 102;
|
||
}
|
||
self waittill( "enemy" );
|
||
}
|
||
}
|
||
initDogAnimations()
|
||
{
|
||
if ( !IsDefined( level.dogsInitialized ) )
|
||
{
|
||
level.dogsInitialized = true;
|
||
precachestring( &"SCRIPT_PLATFORM_DOG_DEATH_DO_NOTHING" );
|
||
precachestring( &"SCRIPT_PLATFORM_DOG_DEATH_TOO_LATE" );
|
||
precachestring( &"SCRIPT_PLATFORM_DOG_DEATH_TOO_SOON" );
|
||
precachestring( &"SCRIPT_PLATFORM_DOG_HINT" );
|
||
}
|
||
if ( IsDefined (anim.NotFirstTimeDogs) )
|
||
{
|
||
return;
|
||
}
|
||
anim.NotFirstTimeDogs = 1;
|
||
anim.dogStartMoveAngles[8] = 0;
|
||
anim.dogStartMoveAngles[6] = 90;
|
||
anim.dogStartMoveAngles[4] = -90;
|
||
anim.dogStartMoveAngles[3] = 180;
|
||
anim.dogStartMoveAngles[1] = -180;
|
||
initCommonDogAnims();
|
||
initZombieDogAnimations();
|
||
level._effect[ "dog_bite_blood" ] = loadfx( "impacts/fx_deathfx_bloodpool_view" );
|
||
level._effect[ "deathfx_bloodpool" ] = loadfx( "impacts/fx_deathfx_dogbite" );
|
||
slices = 5;
|
||
array = [];
|
||
for ( i = 0; i <= slices; i++ )
|
||
{
|
||
array[ array.size ] = i / slices;
|
||
}
|
||
level.dog_melee_index = 0;
|
||
level.dog_melee_timing_array = array_randomize( array );
|
||
SetDvar( "friendlySaveFromDog", "0" );
|
||
}
|
||
initCommonDogAnims()
|
||
{
|
||
}
|
||
calcAnimLengthVariables(animset)
|
||
{
|
||
anim.dogAnims[animset].dogStoppingDistSq = lengthSquared( getmovedelta( anim.dogAnims[animset].move["run_stop"], 0, 1 ) * 1.2 ) ;
|
||
anim.dogAnims[animset].dogStartMoveDist = length( getmovedelta( anim.dogAnims[animset].move["run_start"], 0, 1 ) );
|
||
}
|
||
initZombieDogAnimations()
|
||
{
|
||
anim.dogAnims["zombie"] = spawnstruct();
|
||
anim.dogAnims["zombie"].lookKnob[2] = %zombie_dog_look_2;
|
||
anim.dogAnims["zombie"].lookKnob[4] = %zombie_dog_look_4;
|
||
anim.dogAnims["zombie"].lookKnob[6] = %zombie_dog_look_6;
|
||
anim.dogAnims["zombie"].lookKnob[8] = %zombie_dog_look_8;
|
||
anim.dogAnims["zombie"].traverse = [];
|
||
anim.dogAnims["zombie"].traverse["wallhop"] = %zombie_dog_run_jump_40;
|
||
anim.dogAnims["zombie"].traverse[ "window_40" ] = %zombie_dog_run_jump_window_40;
|
||
anim.dogAnims["zombie"].traverse["jump_down_40"] = %zombie_dog_traverse_down_40;
|
||
anim.dogAnims["zombie"].traverse["jump_down_190"] = %zombie_dog_traverse_down_190;
|
||
anim.dogAnims["zombie"].traverse["jump_down_120"] = %zombie_dog_traverse_down_126;
|
||
anim.dogAnims["zombie"].traverse["jump_up_40"] = %zombie_dog_traverse_up_40;
|
||
anim.dogAnims["zombie"].traverse[ "jump_up_80" ] = %zombie_dog_traverse_up_80;
|
||
anim.dogAnims["zombie"].look["attackIdle"][2] = %zombie_dog_attack_look_down;
|
||
anim.dogAnims["zombie"].look["attackIdle"][4] = %zombie_dog_attack_look_left;
|
||
anim.dogAnims["zombie"].look["attackIdle"][6] = %zombie_dog_attack_look_right;
|
||
anim.dogAnims["zombie"].look["attackIdle"][8] = %zombie_dog_attack_look_up;
|
||
anim.dogAnims["zombie"].look["normal"][2] = %zombie_dog_look_down;
|
||
anim.dogAnims["zombie"].look["normal"][4] = %zombie_dog_look_left;
|
||
anim.dogAnims["zombie"].look["normal"][6] = %zombie_dog_look_right;
|
||
anim.dogAnims["zombie"].look["normal"][8] = %zombie_dog_look_up;
|
||
anim.dogAnims["zombie"].pain["pain"][2] = %zombie_dog_pain_hit_front;
|
||
anim.dogAnims["zombie"].pain["pain"][4] = %zombie_dog_pain_hit_left;
|
||
anim.dogAnims["zombie"].pain["pain"][6] = %zombie_dog_pain_hit_right;
|
||
anim.dogAnims["zombie"].pain["pain"][8] = %zombie_dog_pain_hit_back;
|
||
anim.dogAnims["zombie"].pain["pain_run"][2] = %zombie_dog_run_pain_front;
|
||
anim.dogAnims["zombie"].pain["pain_run"][4] = %zombie_dog_run_pain_front;
|
||
anim.dogAnims["zombie"].pain["pain_run"][6] = %zombie_dog_run_pain_front;
|
||
anim.dogAnims["zombie"].pain["pain_run"][8] = %zombie_dog_run_pain_front;
|
||
anim.dogAnims["zombie"].death[2] = %zombie_dog_death_front;
|
||
anim.dogAnims["zombie"].death[4] = %zombie_dog_death_hit_left;
|
||
anim.dogAnims["zombie"].death[6] = %zombie_dog_death_hit_right;
|
||
anim.dogAnims["zombie"].death[8] = %zombie_dog_death_hit_back;
|
||
anim.dogAnims["zombie"].turn["90_left"] = %zombie_dog_turn_90_left;
|
||
anim.dogAnims["zombie"].turn["90_right"] = %zombie_dog_turn_90_right;
|
||
anim.dogAnims["zombie"].turn["180_left"] = %zombie_dog_turn_180_left;
|
||
anim.dogAnims["zombie"].turn["180_right"] = %zombie_dog_turn_180_right;
|
||
anim.dogAnims["zombie"].turn["turn_knob"] = %zombie_dog_turn_knob;
|
||
anim.dogAnims["zombie"].runTurn["90_left"] = %zombie_dog_run_turn_90_left;
|
||
anim.dogAnims["zombie"].runTurn["90_right"] = %zombie_dog_run_turn_90_right;
|
||
anim.dogAnims["zombie"].runTurn["180_left"] = %zombie_dog_run_turn_180_left;
|
||
anim.dogAnims["zombie"].runTurn["180_right"] = %zombie_dog_run_turn_180_right;
|
||
anim.dogAnims["zombie"].combatIdle["attackidle"] = %zombie_dog_attackidle;
|
||
anim.dogAnims["zombie"].combatIdle["attackidle_bark"] = %zombie_dog_attackidle_bark;
|
||
anim.dogAnims["zombie"].combatIdle["attackidle_growl"] = %zombie_dog_attackidle_growl;
|
||
anim.dogAnims["zombie"].idle = %zombie_dog_idle;
|
||
anim.dogAnims["zombie"].attack["attackidle_knob"] = %zombie_dog_attackidle_knob;
|
||
anim.dogAnims["zombie"].attack["attack_player_miss"] = %zombie_dog_run_attack_miss;
|
||
anim.dogAnims["zombie"].attack["attack_player_miss_turnR"] = %zombie_dog_attack_player_miss_turnR;
|
||
anim.dogAnims["zombie"].attack["attack_player_miss_turnL"] = %zombie_dog_attack_player_miss_turnL;
|
||
anim.dogAnims["zombie"].attack["run_attack"] = %zombie_dog_run_attack;
|
||
anim.dogAnims["zombie"].attack["attack_player_late"] = %zd_attack_player_late;
|
||
anim.dogAnims["zombie"].move["run_attack_low"] = %zombie_dog_run_attack_low;
|
||
anim.dogAnims["zombie"].move["run_stop"] = %zombie_dog_run_stop;
|
||
anim.dogAnims["zombie"].move["run_start"] = %zombie_dog_run;
|
||
anim.dogAnims["zombie"].move["run_start_knob"] = %zombie_dog_run;
|
||
anim.dogAnims["zombie"].move["run"] = %zombie_dog_run;
|
||
anim.dogAnims["zombie"].move["run_lean_L"] = %zombie_dog_run_lean_l;
|
||
anim.dogAnims["zombie"].move["run_lean_R"] = %zombie_dog_run_lean_r;
|
||
anim.dogAnims["zombie"].move["run_knob"] = %zombie_dog_run_knob;
|
||
anim.dogAnims["zombie"].move["walk"] = %zombie_dog_trot;
|
||
calcAnimLengthVariables("zombie");
|
||
anim.dogAnims["zombie"].dogAttackPlayerDist = 64;
|
||
}
|
||
|
||
|