set cl_weapon_stay_alpha 0.75 "Alpha of picked up weapons when g_weapon_stay > 0"
seta g_superspectate 0 "server side, allows extended spectator functions through the cmd interface. followpowerup, followstrength, followstshield or followfc [red|blue] will transfer spectation to the relevent player, if any"
+
+set g_melee_only 0 "enable melee only arena"
CHECK_MUTATOR_ADD("g_rocket_flying", mutator_rocketflying, !cvar("g_minstagib"));
CHECK_MUTATOR_ADD("g_vampire", mutator_vampire, !cvar("g_minstagib"));
CHECK_MUTATOR_ADD("g_superspectate", mutator_superspec, 1);
+ CHECK_MUTATOR_ADD("g_melee_only", mutator_melee_only, !cvar("g_minstagib"));
CHECK_MUTATOR_ADD("g_sandbox", sandbox, 1);
#undef CHECK_MUTATOR_ADD
g_warmup_allguns = cvar("g_warmup_allguns");
g_warmup_allow_timeout = cvar("g_warmup_allow_timeout");
- if ((g_race && g_race_qualifying == 2) || g_arena || g_minstagib || g_assault || cvar("g_campaign"))
+ if ((g_race && g_race_qualifying == 2) || g_arena || g_minstagib || g_assault || cvar("g_campaign") || cvar("g_melee_only"))
inWarmupStage = 0; // these modes cannot work together, sorry
g_pickup_respawntime_weapon = cvar("g_pickup_respawntime_weapon");
--- /dev/null
+MUTATOR_HOOKFUNCTION(melee_SetStartItems)
+{
+ start_ammo_shells = 0;
+
+ WEPSET_COPY_AW(start_weapons, WEP_SHOTGUN);
+
+ return FALSE;
+}
+
+MUTATOR_HOOKFUNCTION(melee_FilterItem)
+{
+ switch (self.items)
+ {
+ case IT_5HP:
+ case IT_ARMOR_SHARD:
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+MUTATOR_HOOKFUNCTION(melee_BuildMutatorsString)
+{
+ ret_string = strcat(ret_string, ":MeleeOnly");
+ return FALSE;
+}
+
+MUTATOR_HOOKFUNCTION(melee_BuildMutatorsPrettyString)
+{
+ ret_string = strcat(ret_string, ", Melee Only Arena");
+ return FALSE;
+}
+
+MUTATOR_DEFINITION(mutator_melee_only)
+{
+ MUTATOR_HOOK(SetStartItems, melee_SetStartItems, CBC_ORDER_ANY);
+ MUTATOR_HOOK(FilterItem, melee_FilterItem, CBC_ORDER_ANY);
+ MUTATOR_HOOK(BuildMutatorsString, melee_BuildMutatorsString, CBC_ORDER_ANY);
+ MUTATOR_HOOK(BuildMutatorsPrettyString, melee_BuildMutatorsPrettyString, CBC_ORDER_ANY);
+
+ return FALSE;
+}
MUTATOR_DECLARATION(mutator_superspec);
MUTATOR_DECLARATION(mutator_minstagib);
MUTATOR_DECLARATION(mutator_touchexplode);
+MUTATOR_DECLARATION(mutator_melee_only);
MUTATOR_DECLARATION(sandbox);
mutators/mutator_superspec.qc
mutators/mutator_minstagib.qc
mutators/mutator_touchexplode.qc
+mutators/mutator_melee_only.qc
../warpzonelib/anglestransform.qc
../warpzonelib/mathlib.qc