From: Mario Date: Sun, 14 Apr 2013 07:33:10 +0000 (+1000) Subject: Move monster coloring to the client & fix custom monster waypoint names X-Git-Tag: xonotic-v0.8.0~241^2^2~398 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=a7dc1163ccdf4fb72cd25e5458b0d4b61ff67cf6;p=xonotic%2Fxonotic-data.pk3dir.git Move monster coloring to the client & fix custom monster waypoint names --- diff --git a/qcsrc/server/monsters/lib/defs.qh b/qcsrc/server/monsters/lib/defs.qh index 325e9f75c..79d3903d8 100644 --- a/qcsrc/server/monsters/lib/defs.qh +++ b/qcsrc/server/monsters/lib/defs.qh @@ -7,7 +7,6 @@ .float candrop; .string oldtarget2; -.string oldmessage; .float respawnflags; const float MONSTER_RESPAWN_SPAWNPOINT = 0; // re-spawn at original spawn point diff --git a/qcsrc/server/monsters/lib/monsters.qc b/qcsrc/server/monsters/lib/monsters.qc index 5928051ef..9b8ad5198 100644 --- a/qcsrc/server/monsters/lib/monsters.qc +++ b/qcsrc/server/monsters/lib/monsters.qc @@ -260,7 +260,9 @@ void Monster_CheckMinibossFlag () if(self.spawnflags & MONSTERFLAG_GIANT) return; // 1 size modifier at a time - float r = random() * 4, chance = random() * 100; + self.SendFlags |= MSF_STATUS; + + float chance = random() * 100; // g_monsters_miniboss_chance cvar or spawnflags 64 causes a monster to be a miniboss if ((self.spawnflags & MONSTERFLAG_MINIBOSS) || (chance < autocvar_g_monsters_miniboss_chance)) @@ -270,22 +272,6 @@ void Monster_CheckMinibossFlag () self.flags |= MONSTERFLAG_MINIBOSS; if not(self.weapon) self.weapon = WEP_NEX; - - if (r < 2 || self.team == NUM_TEAM_2) - { - self.strength_finished = -1; - self.effects |= (EF_FULLBRIGHT | EF_BLUE); - } - else if (r >= 1 || self.team == NUM_TEAM_1) - { - self.invincible_finished = -1; - self.effects |= (EF_FULLBRIGHT | EF_RED); - } - else - self.effects |= (EF_FULLBRIGHT | EF_RED | EF_BLUE); - - if not(self.team) - self.colormod = randomvec(); } } @@ -309,7 +295,6 @@ void Monster_Fade () if(Monster_CanRespawn(self)) { self.monster_respawned = TRUE; - self.netname = ""; // needed to fix sprite (TODO: fix!) self.think = self.monster_spawnfunc; self.nextthink = time + self.respawntime; if(self.respawnflags & MONSTER_RESPAWN_DEATHPOINT) @@ -911,6 +896,8 @@ void monster_hook_spawn() { if not(self.monster_respawned) Monster_CheckMinibossFlag(); + + string nname = strzone(strdecolorize(self.netname)); self.max_health = self.health; self.pain_finished = self.nextthink; @@ -918,29 +905,18 @@ void monster_hook_spawn() monster_precachesounds(self); - if(self.team) - { - //self.colormod = Team_ColorRGB(self.team); - //self.glowmod = self.colormod; - self.colormap = 1024 + (self.team - 1) * 17; - self.colormod = '1 1 1'; - self.glowmod = Team_ColorRGB(self.team); - self.monster_attack = TRUE; - } - else - self.colormod = self.glowmod = '1 1 1'; + if(teamplay) + self.monster_attack = TRUE; // we can have monster enemies in team games self.sprite_height *= self.scale; // do this after setting the monster's scale if(autocvar_g_monsters_healthbars) { - WaypointSprite_Spawn(self.message, 0, 600, self, '0 0 1' * self.sprite_height, world, 0, self, sprite, FALSE, RADARICON_DANGER, ((self.team) ? Team_ColorRGB(self.team) : '1 0 0')); + WaypointSprite_Spawn(nname, 0, 600, self, '0 0 1' * self.sprite_height, world, 0, self, sprite, FALSE, RADARICON_DANGER, ((self.team) ? Team_ColorRGB(self.team) : '1 0 0')); WaypointSprite_UpdateMaxHealth(self.sprite, self.max_health); WaypointSprite_UpdateHealth(self.sprite, self.health); } - self.message = self.oldmessage; - monster_sound(self.msound_spawn, 0, FALSE); MUTATOR_CALLHOOK(MonsterSpawn); @@ -970,8 +946,6 @@ float monster_initialize(string net_name, float mon_id, if(net_name != "" && IS_PLAYER(self.realowner)) net_name = strzone(sprintf("%s^7's %s", self.realowner.netname, net_name)); self.netname = ((net_name == "") ? self.classname : net_name); - self.oldmessage = self.message; - self.message = strzone(strdecolorize(self.netname)); } if(autocvar_g_monsters_giants_only) @@ -1035,12 +1009,6 @@ float monster_initialize(string net_name, float mon_id, if not(self.monster_moveflags) self.monster_moveflags = MONSTER_MOVE_WANDER; - if(autocvar_g_nodepthtestplayers) - self.effects |= EF_NODEPTHTEST; - - if(autocvar_g_fullbrightplayers) - self.effects |= EF_FULLBRIGHT; - if not(nodrop) { setorigin(self, self.origin);