X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Ft_quake3.qc;h=7c1a582879ea5f3a64cc68de0869c075994df2ae;hb=0a92453278b65a165e83e64a989b5e7de38ccf02;hp=aeb07a560e66bd88d11b55276fc25530aaf4e161;hpb=936363b20ad37d0f0e3bba07451219104652f1d5;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/t_quake3.qc b/qcsrc/server/t_quake3.qc index aeb07a560..7c1a58287 100644 --- a/qcsrc/server/t_quake3.qc +++ b/qcsrc/server/t_quake3.qc @@ -8,27 +8,26 @@ void spawnfunc_ammo_shells() { spawnfunc_item_shells(); } // MG -> MG -void spawnfunc_weapon_machinegun() { spawnfunc_weapon_uzi(); } void spawnfunc_ammo_bullets() { spawnfunc_item_bullets(); } // GL -> Mortar void spawnfunc_ammo_grenades() { spawnfunc_item_rockets(); } // LG -> Lightning -//void spawnfunc_weapon_lightning() { spawnfunc_weapon_electro(); } +void spawnfunc_weapon_lightning() { spawnfunc_weapon_electro(); } void spawnfunc_ammo_lightning() { spawnfunc_item_cells(); } // Plasma -> Hagar void spawnfunc_weapon_plasmagun() { spawnfunc_weapon_hagar(); } void spawnfunc_ammo_cells() { spawnfunc_item_rockets(); } -// Rail -> Nex -void spawnfunc_weapon_railgun() { spawnfunc_weapon_nex(); } -void spawnfunc_ammo_slugs() { spawnfunc_item_cells(); } +// Rail -> Vortex +void spawnfunc_weapon_railgun() { spawnfunc_weapon_vortex(); } +void spawnfunc_ammo_slugs() { spawnfunc_item_plasma(); } // BFG -> Crylink void spawnfunc_weapon_bfg() { spawnfunc_weapon_crylink(); } -void spawnfunc_ammo_bfg() { spawnfunc_item_cells(); } +void spawnfunc_ammo_bfg() { spawnfunc_item_plasma(); } // RL -> RL void spawnfunc_ammo_rockets() { spawnfunc_item_rockets(); } @@ -71,9 +70,9 @@ void target_give_init() { entity targ; for (targ = world; (targ = find(targ, targetname, self.target)); ) { - if (targ.classname == "weapon_rocketlauncher") { + if (targ.classname == "weapon_rocketlauncher" || targ.classname == "weapon_devastator") { self.ammo_rockets += targ.count * WEP_CVAR(devastator, ammo); - self.netname = "rocketlauncher"; + self.netname = "devastator"; } else if (targ.classname == "weapon_plasmagun") { self.ammo_rockets += targ.count * WEP_CVAR_PRI(hagar, ammo); // WEAPONTODO @@ -83,18 +82,18 @@ void target_give_init() self.netname = strcat(self.netname, " hagar"); } else if (targ.classname == "weapon_bfg") { - self.ammo_cells += targ.count * autocvar_g_balance_crylink_primary_ammo; + self.ammo_cells += targ.count * WEP_CVAR_PRI(crylink, ammo); if(self.netname == "") self.netname = "crylink"; else self.netname = strcat(self.netname, " crylink"); } - else if (targ.classname == "weapon_grenadelauncher") { - self.ammo_rockets += targ.count * autocvar_g_balance_mortar_primary_ammo; // WEAPONTODO + else if (targ.classname == "weapon_grenadelauncher" || targ.classname == "weapon_mortar") { + self.ammo_rockets += targ.count * WEP_CVAR_PRI(mortar, ammo); // WEAPONTODO if(self.netname == "") - self.netname = "grenadelauncher"; + self.netname = "mortar"; else - self.netname = strcat(self.netname, " grenadelauncher"); + self.netname = strcat(self.netname, " mortar"); } else if (targ.classname == "item_armor_body") self.armorvalue = 100; @@ -114,18 +113,24 @@ void spawnfunc_target_give() InitializeEntity(self, target_give_init, INITPRIO_FINDTARGET); } -//void spawnfunc_item_flight() /* not supported */ -//void spawnfunc_item_haste() /* not supported */ +//void spawnfunc_item_flight() /* handled by buffs mutator or jetpack */ +//void spawnfunc_item_haste() /* handled by buffs mutator */ //void spawnfunc_item_health() /* handled in t_quake.qc */ //void spawnfunc_item_health_large() /* handled in t_items.qc */ //void spawnfunc_item_health_small() /* handled in t_items.qc */ //void spawnfunc_item_health_mega() /* handled in t_items.qc */ -//void spawnfunc_item_invis() /* not supported */ -//void spawnfunc_item_regen() /* not supported */ +//void spawnfunc_item_invis() /* handled by buffs mutator */ +//void spawnfunc_item_regen() /* handled by buffs mutator */ // CTF spawnfuncs handled in mutators/gamemode_ctf.qc now -void spawnfunc_item_flight() { spawnfunc_item_jetpack(); } +void spawnfunc_item_flight() +{ + if(!cvar("g_buffs") || !cvar("g_buffs_flight")) + spawnfunc_item_jetpack(); + else + buff_Init_Compat(self, BUFF_FLIGHT); +} .float notteam; .float notsingle; @@ -142,7 +147,7 @@ float DoesQ3ARemoveThisEntity() return 1; if(self.notta) - if not(!teamplay || g_tdm || g_ctf) + if (!(!teamplay || g_tdm || g_ctf)) return 1; if(self.notsingle) @@ -164,8 +169,6 @@ float DoesQ3ARemoveThisEntity() gametypename = "ffa"; if(teamplay) gametypename = "team"; - if(g_arena) - gametypename = "tournament"; if(g_ctf) gametypename = "ctf"; if(maxclients == 1)