X-Git-Url: http://de.git.xonotic.org/?p=voretournament%2Fvoretournament.git;a=blobdiff_plain;f=data%2Fqcsrc%2Fserver%2Fcl_weaponsystem.qc;h=144ade6ecc2159ff99b96f90ade6c42e56cdb2a8;hp=66ad0f7c587fbef72ec9719f56f0d481bc88a85e;hb=8f3126d8771da7f1e8ad1200d9c77226ecc91756;hpb=0b1e581725b0ca18a2e2a7b4b7ea30b960d2c8a3 diff --git a/data/qcsrc/server/cl_weaponsystem.qc b/data/qcsrc/server/cl_weaponsystem.qc index 66ad0f7c..144ade6e 100644 --- a/data/qcsrc/server/cl_weaponsystem.qc +++ b/data/qcsrc/server/cl_weaponsystem.qc @@ -256,7 +256,7 @@ float CL_ExteriorWeaponentity_CustomizeEntityForClient() if(self.owner.weaponname == "" || self.owner.deadflag != DEAD_NO) return TRUE; - if(other.spectatee_status) + if(other.spectatee_status && other.spectatee_status == num_for_edict(other.enemy)) other = other.enemy; // also do this for the player we are spectating if not(other.cvar_chase_active || other.classname == "observer") // the observer check prevents a bug @@ -266,7 +266,12 @@ float CL_ExteriorWeaponentity_CustomizeEntityForClient() return TRUE; } - setmodel(self, strcat("models/weapons/v_", self.owner.weaponname, ".md3")); + if not(self.owner.stat_eaten) + setmodel(self, strcat("models/weapons/v_", self.owner.weaponname, ".md3")); + else if(cvar("g_vore_neighborprey_distance") && (other.predator == self.owner.predator || other.fakepredator == self.owner.predator) && !(other.cvar_chase_active || other.classname == "observer")) + setmodel(self, strcat("models/weapons/v_", self.owner.weaponname, ".md3")); // allow seeing neighboring prey's weapon model + else + setmodel(self, ""); // hide prey's weapon model return TRUE; } @@ -566,18 +571,21 @@ void CL_Weaponentity_Think() if(self.owner.alpha == default_player_alpha) self.alpha = default_weapon_alpha; - else if(self.owner.alpha != 0 && self.owner.predator.classname != "player") + else if(self.owner.alpha != 0 && !self.owner.stat_eaten) self.alpha = self.owner.alpha; else self.alpha = 1; self.colormap = self.owner.colormap; + self.colormod = self.owner.colormod; + self.glowmod = self.owner.weaponentity_glowmod; if (self.weaponentity) { self.weaponentity.effects = self.effects; self.weaponentity.alpha = self.alpha; self.weaponentity.colormap = self.colormap; self.weaponentity.colormod = self.owner.colormod; // used by the regurgitating colors + self.weaponentity.glowmod = self.glowmod; } self.angles = '0 0 0'; @@ -836,6 +844,7 @@ void CL_ExteriorWeaponentity_Think() } self.colormap = self.owner.colormap; + self.glowmod = self.owner.weaponentity_glowmod; self.customizeentityforclient = CL_ExteriorWeaponentity_CustomizeEntityForClient; }; @@ -1585,7 +1594,7 @@ void W_DecreaseAmmo(.float ammo_type, float ammo_use, float ammo_reload) void W_ReloadedAndReady() { // if we are inside the stomach, don't allow reloading, and schedule the weapon to reload once when we're out - if(self.predator.classname == "player") + if(self.stat_eaten) { self.clip_load = self.weapon_load[self.weapon] = -1; w_ready(); // don't keep executing each frame @@ -1621,7 +1630,7 @@ void W_ReloadedAndReady() void W_Reload(float sent_ammo_min, float sent_ammo_amount, float sent_time, string sent_sound) { // if we are inside the stomach, don't allow reloading - if(self.predator.classname == "player") + if(self.stat_eaten) return; // set global values to work with