X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fcommon%2Fgamemodes%2Fgamemode%2Fnexball%2Fnexball.qc;h=0d56d37155b0359113d2e096e83619c6568a722d;hb=f3b08f163992b7be4e597cdd2297ed193d96dc1c;hp=b4becb3979d7b20981ddc01c28ed5b0defa6be66;hpb=e9f30b97435c6afe3d6911f21e1f4fd1b97e93da;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc b/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc index b4becb397..0d56d3715 100644 --- a/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc +++ b/qcsrc/common/gamemodes/gamemode/nexball/nexball.qc @@ -2,7 +2,7 @@ #ifdef IMPLEMENTATION #ifdef SVQC -.float metertime; +.float metertime = _STAT(NB_METERSTART); int autocvar_g_nexball_goalleadlimit; #define autocvar_g_nexball_goallimit cvar("g_nexball_goallimit") @@ -78,10 +78,10 @@ void LogNB(string mode, entity actor) GameLogEcho(s); } -void ball_restart() -{SELFPARAM(); - if(self.owner) - DropBall(self, self.owner.origin, '0 0 0'); +void ball_restart(entity this) +{ + if(this.owner) + DropBall(this, this.owner.origin, '0 0 0'); ResetBall(); } @@ -180,13 +180,13 @@ void GiveBall(entity plyr, entity ball) } plyr.(weaponentity).weapons = plyr.weapons; - plyr.(weaponentity).switchweapon = plyr.weapon; + plyr.(weaponentity).m_switchweapon = Weapons_from(plyr.weapon); plyr.weapons = WEPSET(NEXBALL); setself(plyr); Weapon w = WEP_NEXBALL; w.wr_resetplayer(w); - plyr.switchweapon = WEP_NEXBALL.m_id; - W_SwitchWeapon(WEP_NEXBALL.m_id); + PS(plyr).m_switchweapon = WEP_NEXBALL; + W_SwitchWeapon(WEP_NEXBALL); setself(this); } @@ -816,7 +816,7 @@ void W_Nexball_Attack2() W_SetupProjVelocity_Basic(missile, autocvar_g_balance_nexball_secondary_speed, 0); missile.angles = vectoangles(missile.velocity); missile.touch = W_Nexball_Touch; - missile.think = SUB_Remove; + missile.think = SUB_Remove_self; missile.nextthink = time + autocvar_g_balance_nexball_secondary_lifetime; //FIXME: use a distance instead? missile.effects = EF_BRIGHTFIELD | EF_LOWPRECISION; @@ -971,8 +971,8 @@ MUTATOR_HOOKFUNCTION(nb, PlayerPreThink) self.weapons = self.(weaponentity).weapons; Weapon w = WEP_NEXBALL; w.wr_resetplayer(w); - self.switchweapon = self.(weaponentity).switchweapon; - W_SwitchWeapon(self.switchweapon); + PS(self).m_switchweapon = self.(weaponentity).m_switchweapon; + W_SwitchWeapon(PS(self).m_switchweapon); self.(weaponentity).weapons = '0 0 0'; } @@ -1072,7 +1072,6 @@ REGISTER_MUTATOR(nb, g_nexball) if(g_nexball_meter_period <= 0) g_nexball_meter_period = 2; // avoid division by zero etc. due to silly users g_nexball_meter_period = rint(g_nexball_meter_period * 32) / 32; //Round to 1/32ths to send as a byte multiplied by 32 - addstat(STAT_NB_METERSTART, AS_FLOAT, metertime); // General settings /*