X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmutators%2Fmutator%2Fsuperspec%2Fsv_superspec.qc;h=add4bec010fc90f09f6372232d023e098b3f4edd;hb=0514f7948727cfa572b33bd29d1bdf2c13cd866d;hp=4c99095b79df43f68e4daa402d97599cda72ebae;hpb=acf114225f94bed609c10c74e1bb1277d28a7419;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/mutators/mutator/superspec/sv_superspec.qc b/qcsrc/common/mutators/mutator/superspec/sv_superspec.qc index 4c99095b7..add4bec01 100644 --- a/qcsrc/common/mutators/mutator/superspec/sv_superspec.qc +++ b/qcsrc/common/mutators/mutator/superspec/sv_superspec.qc @@ -1,6 +1,7 @@ #include "sv_superspec.qh" -REGISTER_MUTATOR(superspec, cvar("g_superspectate")); +string autocvar_g_superspectate; +REGISTER_MUTATOR(superspec, expr_evaluate(autocvar_g_superspectate)); #define _SSMAGIX "SUPERSPEC_OPTIONSFILE_V1" #define _ISLOCAL(ent) ((edict_num(1) == (ent)) ? true : false) @@ -120,16 +121,16 @@ MUTATOR_HOOKFUNCTION(superspec, ItemTouch) } } - if((it.autospec_flags & ASF_SHIELD && item.invincible_finished) || - (it.autospec_flags & ASF_STRENGTH && item.strength_finished) || - (it.autospec_flags & ASF_MEGA_AR && item.itemdef == ITEM_ArmorMega) || - (it.autospec_flags & ASF_MEGA_HP && item.itemdef == ITEM_HealthMega) || - (it.autospec_flags & ASF_FLAG_GRAB && item.classname == "item_flag_team")) + if(((it.autospec_flags & ASF_SHIELD) && item.invincible_finished) || + ((it.autospec_flags & ASF_STRENGTH) && item.strength_finished) || + ((it.autospec_flags & ASF_MEGA_AR) && item.itemdef == ITEM_ArmorMega) || + ((it.autospec_flags & ASF_MEGA_HP) && item.itemdef == ITEM_HealthMega) || + ((it.autospec_flags & ASF_FLAG_GRAB) && item.classname == "item_flag_team")) { if((it.enemy != toucher) || IS_OBSERVER(it)) { - if(it.autospec_flags & ASF_OBSERVER_ONLY && !IS_OBSERVER(it)) + if((it.autospec_flags & ASF_OBSERVER_ONLY) && !IS_OBSERVER(it)) { if(it.superspec_flags & SSF_VERBOSE) superspec_msg("", "", it, sprintf("^8Ignored that ^7%s^8 grabbed %s^8 since the observer_only option is ON\n", toucher.netname, item.netname), 2); @@ -345,7 +346,7 @@ MUTATOR_HOOKFUNCTION(superspec, SV_ParseClientCommand) if(cmd_name == "followpowerup") { - FOREACH_CLIENT(IS_PLAYER(it) && (it.strength_finished > time || it.invincible_finished > time), { return superspec_Spectate(player, it); }); + FOREACH_CLIENT(IS_PLAYER(it) && (STAT(STRENGTH_FINISHED, it) > time || STAT(INVINCIBLE_FINISHED, it) > time), { return superspec_Spectate(player, it); }); superspec_msg("", "", player, "No active powerup\n", 1); return true; @@ -353,7 +354,7 @@ MUTATOR_HOOKFUNCTION(superspec, SV_ParseClientCommand) if(cmd_name == "followstrength") { - FOREACH_CLIENT(IS_PLAYER(it) && it.strength_finished > time, { return superspec_Spectate(player, it); }); + FOREACH_CLIENT(IS_PLAYER(it) && STAT(STRENGTH_FINISHED, it) > time, { return superspec_Spectate(player, it); }); superspec_msg("", "", player, "No active Strength\n", 1); return true; @@ -361,7 +362,7 @@ MUTATOR_HOOKFUNCTION(superspec, SV_ParseClientCommand) if(cmd_name == "followshield") { - FOREACH_CLIENT(IS_PLAYER(it) && it.invincible_finished > time, { return superspec_Spectate(player, it); }); + FOREACH_CLIENT(IS_PLAYER(it) && STAT(INVINCIBLE_FINISHED, it) > time, { return superspec_Spectate(player, it); }); superspec_msg("", "", player, "No active Shield\n", 1); return true; @@ -400,7 +401,7 @@ MUTATOR_HOOKFUNCTION(superspec, ClientConnect) player.superspec_flags = SSF_VERBOSE; player.superspec_itemfilter = ""; - entity _hello = spawn(); + entity _hello = new(superspec_delayed_hello); _hello.enemy = player; setthink(_hello, superspec_hello); _hello.nextthink = time + 5; @@ -441,7 +442,7 @@ MUTATOR_HOOKFUNCTION(superspec, PlayerDies) entity frag_target = M_ARGV(2, entity); FOREACH_CLIENT(IS_SPEC(it), { - if(it.autospec_flags & ASF_FOLLOWKILLER && IS_PLAYER(frag_attacker) && it.enemy == frag_target) + if((it.autospec_flags & ASF_FOLLOWKILLER) && IS_PLAYER(frag_attacker) && it.enemy == frag_target) { if(it.autospec_flags & ASF_SHOWWHAT) superspec_msg("", "", it, sprintf("^7Following %s^7 due to followkiller\n", frag_attacker.netname), 2);