X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fmutator%2Fgamemode_lms.qc;h=8670bbbef8c9bc36ba45c8c0a3c5a0bedf882026;hb=5eea97bc262bfaf271817ca034439ad551f691d4;hp=22850d8b8be9221dbae26169b3a2bed7a2632539;hpb=3cfb64730d883ae9ccf0315f365da19345270890;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/mutator/gamemode_lms.qc b/qcsrc/server/mutators/mutator/gamemode_lms.qc index 22850d8b8..8670bbbef 100644 --- a/qcsrc/server/mutators/mutator/gamemode_lms.qc +++ b/qcsrc/server/mutators/mutator/gamemode_lms.qc @@ -168,18 +168,22 @@ MUTATOR_HOOKFUNCTION(lms, reset_map_players) } MUTATOR_HOOKFUNCTION(lms, PutClientInServer) -{SELFPARAM(); +{ + entity player = M_ARGV(0, entity); + // player is dead and becomes observer // FIXME fix LMS scoring for new system - if(PlayerScore_Add(self, SP_LMS_RANK, 0) > 0) + if(PlayerScore_Add(player, SP_LMS_RANK, 0) > 0) { - TRANSMUTE(Observer, self); - Send_Notification(NOTIF_ONE, self, MSG_CENTER, CENTER_LMS_NOLIVES); + TRANSMUTE(Observer, player); + Send_Notification(NOTIF_ONE, player, MSG_CENTER, CENTER_LMS_NOLIVES); } } MUTATOR_HOOKFUNCTION(lms, PlayerDies) { + entity frag_target = M_ARGV(2, entity); + frag_target.respawn_flags |= RESPAWN_FORCE; return false; } @@ -249,6 +253,8 @@ MUTATOR_HOOKFUNCTION(lms, ForbidThrowCurrentWeapon) MUTATOR_HOOKFUNCTION(lms, GiveFragsForKill) { + entity frag_target = M_ARGV(1, entity); + // remove a life float tl; tl = PlayerScore_Add(frag_target, SP_LMS_LIVES, -1); @@ -263,7 +269,7 @@ MUTATOR_HOOKFUNCTION(lms, GiveFragsForKill) PlayerScore_Add(frag_target, SP_LMS_RANK, lms_next_place); // won't ever spawn again --lms_next_place; } - frag_score = 0; + M_ARGV(2, float) = 0; return true; } @@ -298,8 +304,8 @@ MUTATOR_HOOKFUNCTION(lms, FilterItem) return true; } -void lms_extralife() -{SELFPARAM(); +void lms_extralife(entity this) +{ StartItem(this, ITEM_ExtraLife); } @@ -312,7 +318,7 @@ MUTATOR_HOOKFUNCTION(lms, OnEntityPreSpawn) if (self.classname != "item_health_mega") return false; entity e = spawn(); - e.think = lms_extralife; + setthink(e, lms_extralife); e.nextthink = time + 0.1; e.spawnflags = self.spawnflags;