#include "miscfunctions.qh"
#include "portals.qh"
#include "teamplay.qh"
-#include "waypointsprites.qh"
#include "weapons/throwing.qh"
#include "command/common.qh"
#include "../common/animdecide.qh"
#include "../common/playerstats.qh"
#include "../csqcmodellib/sv_model.qh"
+#include "../common/minigames/sv_minigames.qh"
+
#include "weapons/weaponstats.qh"
#include "../common/animdecide.qh"
int animbits = deadbits;
if(self.frozen)
animbits |= ANIMSTATE_FROZEN;
+ if(self.movetype == MOVETYPE_FOLLOW)
+ animbits |= ANIMSTATE_FOLLOW;
if(self.crouch)
animbits |= ANIMSTATE_DUCK;
animdecide_setstate(self, animbits, false);
damage /= sqrt(bound(1.0, attacker.cvar_cl_handicap, 100.0));
}
- if(DEATH_ISWEAPON(deathtype, WEP_TUBA))
+ if(DEATH_ISWEAPON(deathtype, WEP_TUBA.m_id))
{
// tuba causes blood to come out of the ears
vector ear1, ear2;
self.istypefrag = 0;
}
- frag_inflictor = inflictor;
- frag_attacker = attacker;
- frag_target = self;
frag_damage = damage;
- damage_take = take;
- damage_save = save;
- damage_force = force;
- MUTATOR_CALLHOOK(PlayerDamage_SplitHealthArmor);
+ MUTATOR_CALLHOOK(PlayerDamage_SplitHealthArmor, inflictor, attacker, self, force, take, save);
take = bound(0, damage_take, self.health);
save = bound(0, damage_save, self.armorvalue);
excess = max(0, damage - take - save);
dh = dh - max(self.health, 0);
da = da - max(self.armorvalue, 0);
WeaponStats_LogDamage(awep, abot, self.weapon, vbot, dh + da);
+ MUTATOR_CALLHOOK(PlayerDamaged, attacker, self, dh, da, hitloc);
}
if (self.health < 1)
if(deathtype == DEATH_KILL)
{
// for the lemmings fans, a small harmless explosion
- pointparticles(particleeffectnum("rocket_explode"), self.origin, '0 0 0', 1);
+ Send_Effect(EFFECT_ROCKET_EXPLODE, self.origin, '0 0 0', 1);
}
}
if(accuracy_isgooddamage(attacker, self))
attacker.accuracy.(accuracy_frags[w-1]) += 1;
- frag_attacker = attacker;
- frag_inflictor = inflictor;
- frag_target = self;
- frag_deathtype = deathtype;
- MUTATOR_CALLHOOK(PlayerDies);
+ MUTATOR_CALLHOOK(PlayerDies, inflictor, attacker, self, deathtype);
+ excess = frag_damage;
WEP_ACTION(self.weapon, WR_PLAYERDEATH);
}
else if(teamsay)
{
- msgstr = strcat("\{1}\{13}", colorstr, "(", colorprefix, namestr, colorstr, ") ^7", msgin);
+ if(strstrofs(msgin, "/me", 0) >= 0)
+ {
+ //msgin = strreplace("/me", "", msgin);
+ //msgin = substring(msgin, 3, strlen(msgin));
+ msgin = strreplace("/me", strcat(colorstr, "(", colorprefix, namestr, colorstr, ")^7"), msgin);
+ msgstr = strcat("\{1}\{13}^4* ", "^7", msgin);
+ }
+ else
+ msgstr = strcat("\{1}\{13}", colorstr, "(", colorprefix, namestr, colorstr, ") ^7", msgin);
cmsgstr = strcat(colorstr, "(", colorprefix, namestr, colorstr, ")\n^7", msgin);
}
else
{
- msgstr = strcat("\{1}", colorprefix, namestr, "^7: ", msgin);
+ if(strstrofs(msgin, "/me", 0) >= 0)
+ {
+ //msgin = strreplace("/me", "", msgin);
+ //msgin = substring(msgin, 3, strlen(msgin));
+ msgin = strreplace("/me", strcat(colorprefix, namestr), msgin);
+ msgstr = strcat("\{1}^4* ", "^7", msgin);
+ }
+ else
+ msgstr = strcat("\{1}", colorprefix, namestr, "^7: ", msgin);
cmsgstr = "";
}
msgstr = strcat(strreplace("\n", " ", msgstr), "\n"); // newlines only are good for centerprint
}
if(flood)
- print("NOTE: ", playername(source), "^7 is flooding.\n");
+ LOG_INFO("NOTE: ", playername(source), "^7 is flooding.\n");
// build sourcemsgstr by cutting off a prefix and replacing it by the other one
if(privatesay)
if(cmsgstr != "")
centerprint(privatesay, cmsgstr);
}
+ else if ( teamsay && source.active_minigame )
+ {
+ sprint(source, sourcemsgstr);
+ dedicated_print(msgstr); // send to server console too
+ FOR_EACH_REALCLIENT(head)
+ if(head != source)
+ if(head.active_minigame == source.active_minigame)
+ sprint(head, msgstr);
+ }
else if(teamsay > 0) // team message, only sent to team mates
{
sprint(source, sourcemsgstr);
{
if(tokenize_console(s) != 3)
{
- dprint("Invalid sound info line: ", s, "\n");
+ LOG_TRACE("Invalid sound info line: ", s, "\n");
continue;
}
PrecacheGlobalSound(strcat(argv(1), " ", argv(2)));
fh = fopen(f, FILE_READ);
if(fh < 0)
{
- dprint("Player sound file not found: ", f, "\n");
+ LOG_TRACE("Player sound file not found: ", f, "\n");
return 0;
}
while((s = fgets(fh)))