mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-22 05:55:42 +00:00
Anim complete, interal completed!@
This commit is contained in:
parent
617612e7bd
commit
aeb9030ff8
@ -91,8 +91,38 @@ init()
|
|||||||
|
|
||||||
level.bots_bloodfx = loadfx("impacts/flesh_hit_body_fatal_exit");
|
level.bots_bloodfx = loadfx("impacts/flesh_hit_body_fatal_exit");
|
||||||
PrecacheMpAnim("pb_combatrun_forward_loop");
|
PrecacheMpAnim("pb_combatrun_forward_loop");
|
||||||
|
PrecacheMpAnim("pb_crouch_run_forward");
|
||||||
|
PrecacheMpAnim("pb_sprint");
|
||||||
|
|
||||||
|
PrecacheMpAnim("pb_crouch_walk_forward_shield");
|
||||||
|
PrecacheMpAnim("pb_crouch_run_forward_pistol");
|
||||||
|
PrecacheMpAnim("pb_crouch_run_forward_RPG");
|
||||||
|
PrecacheMpAnim("pb_crouch_walk_forward_akimbo");
|
||||||
|
|
||||||
|
PrecacheMpAnim("pb_combatrun_forward_shield");
|
||||||
|
PrecacheMpAnim("pb_pistol_run_fast");
|
||||||
|
PrecacheMpAnim("pb_combatrun_forward_RPG");
|
||||||
|
PrecacheMpAnim("pb_combatrun_forward_akimbo");
|
||||||
|
|
||||||
|
PrecacheMpAnim("pb_sprint_shield");
|
||||||
|
PrecacheMpAnim("pb_sprint_akimbo");
|
||||||
|
PrecacheMpAnim("pb_sprint_pistol");
|
||||||
|
PrecacheMpAnim("pb_sprint_RPG");
|
||||||
|
|
||||||
|
PrecacheMpAnim("pb_climbup");
|
||||||
|
PrecacheMpAnim("pb_prone_crawl");
|
||||||
|
PrecacheMpAnim("pb_laststand_crawl");
|
||||||
|
|
||||||
|
PrecacheMpAnim("pb_combatrun_forward_loop");
|
||||||
|
|
||||||
PrecacheMpAnim("pt_stand_core_pullout");
|
PrecacheMpAnim("pt_stand_core_pullout");
|
||||||
|
|
||||||
|
PrecacheMpAnim("pt_melee_pistol_1");
|
||||||
|
PrecacheMpAnim("pt_melee_prone_pistol");
|
||||||
|
PrecacheMpAnim("pt_melee_pistol_2");
|
||||||
|
PrecacheMpAnim("pt_laststand_melee");
|
||||||
|
PrecacheMpAnim("pt_melee_shield");
|
||||||
|
|
||||||
level thread fixGamemodes();
|
level thread fixGamemodes();
|
||||||
|
|
||||||
level thread onPlayerConnect();
|
level thread onPlayerConnect();
|
||||||
|
@ -56,6 +56,7 @@ connected()
|
|||||||
self thread onPlayerSpawned();
|
self thread onPlayerSpawned();
|
||||||
self thread onDisconnected();
|
self thread onDisconnected();
|
||||||
self thread onGameEnded();
|
self thread onGameEnded();
|
||||||
|
self thread onGiveLoadout();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -74,6 +75,17 @@ onDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onGiveLoadout()
|
||||||
|
{
|
||||||
|
self endon("disconnect");
|
||||||
|
|
||||||
|
for(;;)
|
||||||
|
{
|
||||||
|
self waittill("giveLoadout");
|
||||||
|
self botsDeleteFakeAnim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onGameEnded()
|
onGameEnded()
|
||||||
{
|
{
|
||||||
self endon("disconnect");
|
self endon("disconnect");
|
||||||
@ -438,6 +450,22 @@ emptyClipShoot()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkShouldHideAnim(shouldHideAnim)
|
||||||
|
{
|
||||||
|
isHidden = self isFakeAnimHidden();
|
||||||
|
|
||||||
|
if (self.bot.isreloading || self.bot.isfraggingafter)
|
||||||
|
shouldHideAnim = true;
|
||||||
|
|
||||||
|
if (self isInActiveAnim())
|
||||||
|
shouldHideAnim = false;
|
||||||
|
|
||||||
|
if (isHidden && !shouldHideAnim)
|
||||||
|
self showFakeAnim();
|
||||||
|
else if (!isHidden && shouldHideAnim)
|
||||||
|
self hideFakeAnim();
|
||||||
|
}
|
||||||
|
|
||||||
moveHack()
|
moveHack()
|
||||||
{
|
{
|
||||||
self endon("disconnect");
|
self endon("disconnect");
|
||||||
@ -446,11 +474,12 @@ moveHack()
|
|||||||
self.bot.last_pos = self.origin;
|
self.bot.last_pos = self.origin;
|
||||||
self.bot.moveTo = self.origin;
|
self.bot.moveTo = self.origin;
|
||||||
|
|
||||||
timer = 0;
|
shouldHideAnim = true;
|
||||||
for (;;)
|
for (timer = 0;;timer += 0.05)
|
||||||
{
|
{
|
||||||
|
self checkShouldHideAnim(shouldHideAnim);
|
||||||
|
shouldHideAnim = true;
|
||||||
wait 0.05;
|
wait 0.05;
|
||||||
timer += 0.05;
|
|
||||||
|
|
||||||
self.bot.velocity = (self.origin-self.bot.last_pos)*20;
|
self.bot.velocity = (self.origin-self.bot.last_pos)*20;
|
||||||
self.bot.last_pos = self.origin;
|
self.bot.last_pos = self.origin;
|
||||||
@ -469,6 +498,7 @@ moveHack()
|
|||||||
weapClass = weaponClass(curWeap);
|
weapClass = weaponClass(curWeap);
|
||||||
inLastStand = isDefined(self.lastStand);
|
inLastStand = isDefined(self.lastStand);
|
||||||
usingRemote = self isUsingRemote();
|
usingRemote = self isUsingRemote();
|
||||||
|
botAnim = "";
|
||||||
|
|
||||||
if (!self.bot.climbing)
|
if (!self.bot.climbing)
|
||||||
{
|
{
|
||||||
@ -574,6 +604,93 @@ moveHack()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (inLastStand)
|
||||||
|
botAnim = "pb_laststand_crawl";
|
||||||
|
else if (self.bot.climbing)
|
||||||
|
botAnim = "pb_climbup";
|
||||||
|
else if (stance == "prone")
|
||||||
|
botAnim = "pb_prone_crawl";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (stance == "stand")
|
||||||
|
{
|
||||||
|
if (self.bot.running)
|
||||||
|
{
|
||||||
|
// sprint
|
||||||
|
switch(weapClass)
|
||||||
|
{
|
||||||
|
case "pistol":
|
||||||
|
botAnim = "pb_sprint_pistol";
|
||||||
|
break;
|
||||||
|
case "rocketlauncher":
|
||||||
|
botAnim = "pb_sprint_RPG";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
botAnim = "pb_sprint";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(self.hasRiotShieldEquipped)
|
||||||
|
botAnim = "pb_sprint_shield";
|
||||||
|
|
||||||
|
if(isSubStr(curWeap, "akimbo_"))
|
||||||
|
botAnim = "pb_sprint_akimbo";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// stand
|
||||||
|
switch(weapClass)
|
||||||
|
{
|
||||||
|
case "pistol":
|
||||||
|
botAnim = "pb_pistol_run_fast";
|
||||||
|
break;
|
||||||
|
case "rocketlauncher":
|
||||||
|
botAnim = "pb_combatrun_forward_RPG";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
botAnim = "pb_combatrun_forward_loop";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(self.hasRiotShieldEquipped)
|
||||||
|
botAnim = "pb_combatrun_forward_shield";
|
||||||
|
|
||||||
|
if(isSubStr(curWeap, "akimbo_"))
|
||||||
|
botAnim = "pb_combatrun_forward_akimbo";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// crouch
|
||||||
|
switch(weapClass)
|
||||||
|
{
|
||||||
|
case "pistol":
|
||||||
|
botAnim = "pb_crouch_run_forward_pistol";
|
||||||
|
break;
|
||||||
|
case "rocketlauncher":
|
||||||
|
botAnim = "pb_crouch_run_forward_RPG";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
botAnim = "pb_crouch_run_forward";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(self.hasRiotShieldEquipped)
|
||||||
|
botAnim = "pb_crouch_walk_forward_shield";
|
||||||
|
|
||||||
|
if(isSubStr(curWeap, "akimbo_"))
|
||||||
|
botAnim = "pb_crouch_walk_forward_akimbo";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (botAnim != "")
|
||||||
|
{
|
||||||
|
shouldHideAnim = false;
|
||||||
|
|
||||||
|
if (!self botDoingAnim(botAnim))
|
||||||
|
self botDoAnim(botAnim);
|
||||||
|
}
|
||||||
|
|
||||||
moveTo = self.bot.moveTo;
|
moveTo = self.bot.moveTo;
|
||||||
|
|
||||||
completedMove = false;
|
completedMove = false;
|
||||||
@ -763,7 +880,9 @@ doSwitch(newWeapon)
|
|||||||
if (isDefined(self.lastDroppableWeapon) && self.lastDroppableWeapon != newWeapon)
|
if (isDefined(self.lastDroppableWeapon) && self.lastDroppableWeapon != newWeapon)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (!isDefined(self.lastStand))
|
||||||
self thread botDoAnim("pt_stand_core_pullout", 0.5, true);
|
self thread botDoAnim("pt_stand_core_pullout", 0.5, true);
|
||||||
|
|
||||||
self.bot.isswitching = true;
|
self.bot.isswitching = true;
|
||||||
|
|
||||||
wait 1; // fast pullout?
|
wait 1; // fast pullout?
|
||||||
@ -783,6 +902,7 @@ reload_watch()
|
|||||||
{
|
{
|
||||||
self waittill("reload_start");
|
self waittill("reload_start");
|
||||||
self.bot.isreloading = true;
|
self.bot.isreloading = true;
|
||||||
|
|
||||||
self waittill_notify_or_timeout("reload", 7.5);
|
self waittill_notify_or_timeout("reload", 7.5);
|
||||||
self.bot.isreloading = false;
|
self.bot.isreloading = false;
|
||||||
}
|
}
|
||||||
@ -2012,7 +2132,7 @@ knife(ent, knifeDist)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((distsq / knifeDist) < 0.3333333)
|
if ((distsq / knifeDist) < 0.5)
|
||||||
{
|
{
|
||||||
self playSound("melee_swing_small");
|
self playSound("melee_swing_small");
|
||||||
if (stance != "prone")
|
if (stance != "prone")
|
||||||
@ -2316,6 +2436,14 @@ bot_lookat(pos, time)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isInActiveAnim()
|
||||||
|
{
|
||||||
|
if (!isDefined(self.bot_anim))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return (self.bot_anim.inActiveAnim);
|
||||||
|
}
|
||||||
|
|
||||||
botDoingAnim(animName)
|
botDoingAnim(animName)
|
||||||
{
|
{
|
||||||
if (!isDefined(self.bot_anim))
|
if (!isDefined(self.bot_anim))
|
||||||
@ -2387,6 +2515,14 @@ botsDeleteFakeAnim()
|
|||||||
self.bot_anim = undefined;
|
self.bot_anim = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isFakeAnimHidden()
|
||||||
|
{
|
||||||
|
if (!isDefined(self.bot_anim))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return (self.bot_anim.hidden);
|
||||||
|
}
|
||||||
|
|
||||||
showFakeAnim()
|
showFakeAnim()
|
||||||
{
|
{
|
||||||
if(isDefined(self))
|
if(isDefined(self))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user