X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmutators%2Fmutator%2Fmelee_only%2Fsv_melee_only.qc;h=ec031730e5ee60e1b94e642bec059657f53644db;hb=d2b0f12cb08fe3d1e59d3c9514546c4858cf9012;hp=a8347499841b77d034adb39efac4853400343f29;hpb=fc9bf4e6a0c2aa4e8e3fcce7f045d97be58c425d;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/mutators/mutator/melee_only/sv_melee_only.qc b/qcsrc/common/mutators/mutator/melee_only/sv_melee_only.qc index a83474998..ec031730e 100644 --- a/qcsrc/common/mutators/mutator/melee_only/sv_melee_only.qc +++ b/qcsrc/common/mutators/mutator/melee_only/sv_melee_only.qc @@ -1,6 +1,9 @@ #include "sv_melee_only.qh" -REGISTER_MUTATOR(melee_only, cvar("g_melee_only") && !cvar("g_instagib") && !cvar("g_overkill") && !g_nexball); +#include "../overkill/sv_overkill.qh" + +string autocvar_g_melee_only; +REGISTER_MUTATOR(melee_only, expr_evaluate(autocvar_g_melee_only) && !MUTATOR_IS_ENABLED(mutator_instagib) && !MUTATOR_IS_ENABLED(ok) && !MapInfo_LoadedGametype.m_weaponarena); MUTATOR_HOOKFUNCTION(melee_only, SetStartItems, CBC_ORDER_LAST) { @@ -8,19 +11,30 @@ MUTATOR_HOOKFUNCTION(melee_only, SetStartItems, CBC_ORDER_LAST) start_weapons = warmup_start_weapons = WEPSET(SHOTGUN); } +MUTATOR_HOOKFUNCTION(melee_only, SetWeaponArena) +{ + // turn weapon arena off + M_ARGV(0, string) = "off"; +} + +MUTATOR_HOOKFUNCTION(melee_only, ForbidRandomStartWeapons) +{ + return true; +} + MUTATOR_HOOKFUNCTION(melee_only, ForbidThrowCurrentWeapon) { return true; } -MUTATOR_HOOKFUNCTION(melee_only, FilterItem) +MUTATOR_HOOKFUNCTION(melee_only, FilterItemDefinition) { - entity item = M_ARGV(0, entity); + entity definition = M_ARGV(0, entity); - switch (item.items) + switch (definition) { - case ITEM_HealthSmall.m_itemid: - case ITEM_ArmorSmall.m_itemid: + case ITEM_HealthSmall: + case ITEM_ArmorSmall: return false; } @@ -34,5 +48,5 @@ MUTATOR_HOOKFUNCTION(melee_only, BuildMutatorsString) MUTATOR_HOOKFUNCTION(melee_only, BuildMutatorsPrettyString) { - M_ARGV(0, string) = strcat(M_ARGV(0, string), ", Melee Only Arena"); + M_ARGV(0, string) = strcat(M_ARGV(0, string), ", Melee only Arena"); }