X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Ft_quake3.qc;h=2c5bd894ea54bd4c78c28f6ca3e33ef4d21074b2;hb=5b4d55a39e59f76751555cc0420e5734fbc4a792;hp=bb1128bd60e8c532c217de9d8f9d99f9c0404d27;hpb=451c0fbf5473c6acc88bafaa0e9c14e5afd3764e;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/t_quake3.qc b/qcsrc/server/t_quake3.qc index bb1128bd6..2c5bd894e 100644 --- a/qcsrc/server/t_quake3.qc +++ b/qcsrc/server/t_quake3.qc @@ -1,3 +1,30 @@ +#include "_all.qh" + +#include "../common/weapons/weapons.qh" +#include "../common/buffs.qh" + +void spawnfunc_weapon_crylink(); +void spawnfunc_weapon_electro(); +void spawnfunc_weapon_hagar(); +void spawnfunc_weapon_machinegun(); +void spawnfunc_weapon_vortex(); + +void spawnfunc_target_items(); + +void spawnfunc_item_bullets(); +void spawnfunc_item_cells(); +void spawnfunc_item_rockets(); +void spawnfunc_item_shells(); + +void spawnfunc_item_jetpack(); + +void spawnfunc_item_armor_big(); +void spawnfunc_item_armor_large(); +void spawnfunc_item_armor_small(); + +void spawnfunc_item_health_medium(); +void spawnfunc_item_health_mega(); + //*********************** //QUAKE 3 ENTITIES - So people can play quake3 maps with the xonotic weapons //*********************** @@ -8,13 +35,12 @@ 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 -> Electro +// LG -> Lightning void spawnfunc_weapon_lightning() { spawnfunc_weapon_electro(); } void spawnfunc_ammo_lightning() { spawnfunc_item_cells(); } @@ -22,8 +48,8 @@ void spawnfunc_ammo_lightning() { spawnfunc_item_cells(); } void spawnfunc_weapon_plasmagun() { spawnfunc_weapon_hagar(); } void spawnfunc_ammo_cells() { spawnfunc_item_rockets(); } -// Rail -> Nex -void spawnfunc_weapon_railgun() { spawnfunc_weapon_nex(); } +// Rail -> Vortex +void spawnfunc_weapon_railgun() { spawnfunc_weapon_vortex(); } void spawnfunc_ammo_slugs() { spawnfunc_item_cells(); } // BFG -> Crylink @@ -71,30 +97,30 @@ void target_give_init() { entity targ; for (targ = world; (targ = find(targ, targetname, self.target)); ) { - if (targ.classname == "weapon_rocketlauncher") { - self.ammo_rockets += targ.count * autocvar_g_balance_rocketlauncher_ammo; - self.netname = "rocketlauncher"; + if (targ.classname == "weapon_rocketlauncher" || targ.classname == "weapon_devastator") { + self.ammo_rockets += targ.count * WEP_CVAR(devastator, ammo); + self.netname = "devastator"; } else if (targ.classname == "weapon_plasmagun") { - self.ammo_rockets += targ.count * autocvar_g_balance_hagar_primary_ammo; + self.ammo_rockets += targ.count * WEP_CVAR_PRI(hagar, ammo); // WEAPONTODO if(self.netname == "") self.netname = "hagar"; else 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_grenadelauncher_primary_ammo; + 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 +140,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;