From: Mario Date: Wed, 11 Sep 2013 07:22:42 +0000 (+1000) Subject: Merge branch 'master' into divVerent/4team_ctf X-Git-Tag: xonotic-v0.8.1~29^2~41 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=07790894d9c74e14bcd54cef20b34590250c49ec;p=xonotic%2Fxonotic-data.pk3dir.git Merge branch 'master' into divVerent/4team_ctf --- 07790894d9c74e14bcd54cef20b34590250c49ec diff --cc qcsrc/common/items.qh index a936a4c0e,45510437f..ced55cd74 --- a/qcsrc/common/items.qh +++ b/qcsrc/common/items.qh @@@ -1,63 -1,57 +1,63 @@@ - float BOT_PICKUP_RATING_LOW = 2500; - float BOT_PICKUP_RATING_MID = 5000; - float BOT_PICKUP_RATING_HIGH = 10000; - - float WEP_TYPE_OTHER = 0x00; // not for damaging people - float WEP_TYPE_SPLASH = 0x01; // splash damage - float WEP_TYPE_HITSCAN = 0x02; // hitscan - float WEP_TYPEMASK = 0x0F; - float WEP_FLAG_CANCLIMB = 0x10; // can be used for movement - float WEP_FLAG_NORMAL = 0x20; // in "most weapons" set - float WEP_FLAG_HIDDEN = 0x40; // hides from menu - float WEP_FLAG_RELOADABLE = 0x80; // can has reload - float WEP_FLAG_SUPERWEAPON = 0x100; // powerup timer - float WEP_FLAG_MUTATORBLOCKED = 0x200; // hides from impulse 99 etc. (mutators are allowed to clear this flag) - - float IT_UNLIMITED_WEAPON_AMMO = 1; + const float BOT_PICKUP_RATING_LOW = 2500; + const float BOT_PICKUP_RATING_MID = 5000; + const float BOT_PICKUP_RATING_HIGH = 10000; + + const float WEP_TYPE_OTHER = 0x00; // not for damaging people + const float WEP_TYPE_SPLASH = 0x01; // splash damage + const float WEP_TYPE_HITSCAN = 0x02; // hitscan + const float WEP_TYPEMASK = 0x0F; + const float WEP_FLAG_CANCLIMB = 0x10; // can be used for movement + const float WEP_FLAG_NORMAL = 0x20; // in "most weapons" set + const float WEP_FLAG_HIDDEN = 0x40; // hides from menu + const float WEP_FLAG_RELOADABLE = 0x80; // can has reload + const float WEP_FLAG_SUPERWEAPON = 0x100; // powerup timer + const float WEP_FLAG_MUTATORBLOCKED = 0x200; // hides from impulse 99 etc. (mutators are allowed to clear this flag) + + const float IT_UNLIMITED_WEAPON_AMMO = 1; // when this bit is set, using a weapon does not reduce ammo. Checkpoints can give this powerup. - float IT_UNLIMITED_SUPERWEAPONS = 2; + const float IT_UNLIMITED_SUPERWEAPONS = 2; // when this bit is set, superweapons don't expire. Checkpoints can give this powerup. - float IT_CTF_SHIELDED = 4; // set for the flag shield - float IT_USING_JETPACK = 8; // confirmation that button is pressed - float IT_JETPACK = 16; // actual item - float IT_FUEL_REGEN = 32; // fuel regeneration trigger - float IT_SHELLS = 256; - float IT_NAILS = 512; - float IT_ROCKETS = 1024; - float IT_CELLS = 2048; - float IT_SUPERWEAPON = 4096; - float IT_FUEL = 128; - float IT_STRENGTH = 8192; - float IT_INVINCIBLE = 16384; - float IT_HEALTH = 32768; + const float IT_CTF_SHIELDED = 4; // set for the flag shield + const float IT_USING_JETPACK = 8; // confirmation that button is pressed + const float IT_JETPACK = 16; // actual item + const float IT_FUEL_REGEN = 32; // fuel regeneration trigger + WANT_CONST float IT_SHELLS = 256; + WANT_CONST float IT_NAILS = 512; + WANT_CONST float IT_ROCKETS = 1024; + WANT_CONST float IT_CELLS = 2048; + const float IT_SUPERWEAPON = 4096; + const float IT_FUEL = 128; + const float IT_STRENGTH = 8192; + const float IT_INVINCIBLE = 16384; + const float IT_HEALTH = 32768; // union: // for items: - float IT_KEY1 = 131072; - float IT_KEY2 = 262144; + WANT_CONST float IT_KEY1 = 131072; + WANT_CONST float IT_KEY2 = 262144; // for players: - float IT_RED_FLAG_TAKEN = 32768; - float IT_RED_FLAG_LOST = 65536; - float IT_RED_FLAG_CARRYING = 98304; - float IT_BLUE_FLAG_TAKEN = 131072; - float IT_BLUE_FLAG_LOST = 262144; - float IT_BLUE_FLAG_CARRYING = 393216; - float IT_YELLOW_FLAG_TAKEN = 524288; - float IT_YELLOW_FLAG_LOST = 1048576; - float IT_YELLOW_FLAG_CARRYING = 1572864; - float IT_PINK_FLAG_TAKEN = 2097152; - float IT_PINK_FLAG_LOST = 4194304; - float IT_PINK_FLAG_CARRYING = 6291456; + const float IT_RED_FLAG_TAKEN = 32768; + const float IT_RED_FLAG_LOST = 65536; - const float IT_RED_FLAG_CARRYING = 98304; ++ const float IT_RED_FLAG_CARRYING = 98304; + const float IT_BLUE_FLAG_TAKEN = 131072; + const float IT_BLUE_FLAG_LOST = 262144; + const float IT_BLUE_FLAG_CARRYING = 393216; ++ const float IT_YELLOW_FLAG_TAKEN = 524288; ++ const float IT_YELLOW_FLAG_LOST = 1048576; ++ const float IT_YELLOW_FLAG_CARRYING = 1572864; ++ const float IT_PINK_FLAG_TAKEN = 2097152; ++ const float IT_PINK_FLAG_LOST = 4194304; ++ const float IT_PINK_FLAG_CARRYING = 6291456; // end - float IT_5HP = 524288; - float IT_25HP = 1048576; - float IT_ARMOR_SHARD = 2097152; - float IT_ARMOR = 4194304; + const float IT_5HP = 524288; + const float IT_25HP = 1048576; + const float IT_ARMOR_SHARD = 2097152; + const float IT_ARMOR = 4194304; - float IT_AMMO = 3968; // IT_SHELLS | IT_NAILS | IT_ROCKETS | IT_CELLS | IT_FUEL; - float IT_PICKUPMASK = 51; // IT_FUEL_REGEN | IT_JETPACK | IT_UNLIMITED_AMMO; // strength and invincible are handled separately - float IT_UNLIMITED_AMMO = 3; // IT_UNLIMITED_SUPERWEAPONS | IT_UNLIMITED_WEAPON_AMMO; + const float IT_AMMO = 3968; // IT_SHELLS | IT_NAILS | IT_ROCKETS | IT_CELLS | IT_FUEL; + const float IT_PICKUPMASK = 51; // IT_FUEL_REGEN | IT_JETPACK | IT_UNLIMITED_AMMO; // strength and invincible are handled separately + const float IT_UNLIMITED_AMMO = 3; // IT_UNLIMITED_SUPERWEAPONS | IT_UNLIMITED_WEAPON_AMMO; - float AMMO_COUNT = 4; // amount of ammo types to show in the inventory panel + const float AMMO_COUNT = 4; // amount of ammo types to show in the inventory panel // variables: string weaponorder_byid; diff --cc qcsrc/server/mutators/gamemode_ctf.qc index 3b2a0624c,d2fc1e993..7d4339343 --- a/qcsrc/server/mutators/gamemode_ctf.qc +++ b/qcsrc/server/mutators/gamemode_ctf.qc @@@ -274,8 -239,8 +274,8 @@@ void ctf_Handle_Drop(entity flag, entit flag.ctf_status = FLAG_DROPPED; // messages and sounds - Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_ENT_2(flag, INFO_CTF_LOST_), player.netname); + Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_ENT_4(flag, INFO_CTF_LOST_), player.netname); - sound(flag, CH_TRIGGER, flag.snd_flag_dropped, VOL_BASE, ATTN_NONE); + sound(flag, CH_TRIGGER, flag.snd_flag_dropped, VOL_BASE, ATTEN_NONE); ctf_EventLog("dropped", player.team, player); // scoring @@@ -442,12 -407,11 +442,12 @@@ void ctf_Handle_Capture(entity flag, en float old_time, new_time; if not(player) { return; } // without someone to give the reward to, we can't possibly cap + if(ctf_IsDifferentTeam(player, flag)) { return; } // messages and sounds - Send_Notification(NOTIF_ONE, player, MSG_CENTER, APP_TEAM_ENT_2(enemy_flag, CENTER_CTF_CAPTURE_)); + Send_Notification(NOTIF_ONE, player, MSG_CENTER, APP_TEAM_ENT_4(enemy_flag, CENTER_CTF_CAPTURE_)); ctf_CaptureRecord(enemy_flag, player); - sound(player, CH_TRIGGER, ((IsDifferentTeam(player, flag)) ? enemy_flag.snd_flag_capture : flag.snd_flag_capture), VOL_BASE, ATTN_NONE); - sound(player, CH_TRIGGER, flag.snd_flag_capture, VOL_BASE, ATTEN_NONE); ++ sound(player, CH_TRIGGER, ((IsDifferentTeam(player, flag)) ? enemy_flag.snd_flag_capture : flag.snd_flag_capture), VOL_BASE, ATTEN_NONE); switch(capturetype) { @@@ -487,9 -451,9 +487,9 @@@ void ctf_Handle_Return(entity flag, entity player) { // messages and sounds - Send_Notification(NOTIF_ONE, player, MSG_CENTER, APP_TEAM_ENT_2(flag, CENTER_CTF_RETURN_)); - Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_ENT_2(flag, INFO_CTF_RETURN_), player.netname); + Send_Notification(NOTIF_ONE, player, MSG_CENTER, APP_TEAM_ENT_4(flag, CENTER_CTF_RETURN_)); + Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_ENT_4(flag, INFO_CTF_RETURN_), player.netname); - sound(player, CH_TRIGGER, flag.snd_flag_returned, VOL_BASE, ATTN_NONE); + sound(player, CH_TRIGGER, flag.snd_flag_returned, VOL_BASE, ATTEN_NONE); ctf_EventLog("return", flag.team, player); // scoring @@@ -536,8 -500,8 +536,8 @@@ void ctf_Handle_Pickup(entity flag, ent } // messages and sounds - Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_ENT_2(flag, INFO_CTF_PICKUP_), player.netname); + Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_ENT_4(flag, INFO_CTF_PICKUP_), player.netname); - sound(player, CH_TRIGGER, flag.snd_flag_taken, VOL_BASE, ATTN_NONE); + sound(player, CH_TRIGGER, flag.snd_flag_taken, VOL_BASE, ATTEN_NONE); FOR_EACH_REALPLAYER(tmp_player) { @@@ -625,9 -589,9 +625,9 @@@ void ctf_CheckFlagReturn(entity flag, f default: case RETURN_TIMEOUT: - { Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_ENT_2(flag, INFO_CTF_FLAGRETURN_TIMEOUT_)); break; } + { Send_Notification(NOTIF_ALL, world, MSG_INFO, APP_TEAM_ENT_4(flag, INFO_CTF_FLAGRETURN_TIMEOUT_)); break; } } - sound(flag, CH_TRIGGER, flag.snd_flag_respawn, VOL_BASE, ATTN_NONE); + sound(flag, CH_TRIGGER, flag.snd_flag_respawn, VOL_BASE, ATTEN_NONE); ctf_EventLog("returned", flag.team, world); ctf_RespawnFlag(flag); } @@@ -1786,14 -1714,9 +1786,14 @@@ MUTATOR_HOOKFUNCTION(ctf_PlayerPreThink { entity flag; + float t = 0, t2 = 0, t3 = 0; + // initially clear items so they can be set as necessary later. - self.items &~= (IT_RED_FLAG_CARRYING | IT_RED_FLAG_TAKEN | IT_RED_FLAG_LOST - | IT_BLUE_FLAG_CARRYING | IT_BLUE_FLAG_TAKEN | IT_BLUE_FLAG_LOST - | IT_YELLOW_FLAG_CARRYING | IT_YELLOW_FLAG_TAKEN | IT_YELLOW_FLAG_LOST - | IT_PINK_FLAG_CARRYING | IT_PINK_FLAG_TAKEN | IT_PINK_FLAG_LOST - self.items &= ~(IT_RED_FLAG_CARRYING | IT_RED_FLAG_TAKEN | IT_RED_FLAG_LOST - | IT_BLUE_FLAG_CARRYING | IT_BLUE_FLAG_TAKEN | IT_BLUE_FLAG_LOST | IT_CTF_SHIELDED); ++ self.items &= ~(IT_RED_FLAG_CARRYING | IT_RED_FLAG_TAKEN | IT_RED_FLAG_LOST ++ | IT_BLUE_FLAG_CARRYING | IT_BLUE_FLAG_TAKEN | IT_BLUE_FLAG_LOST ++ | IT_YELLOW_FLAG_CARRYING | IT_YELLOW_FLAG_TAKEN | IT_YELLOW_FLAG_LOST ++ | IT_PINK_FLAG_CARRYING | IT_PINK_FLAG_TAKEN | IT_PINK_FLAG_LOST + | IT_CTF_SHIELDED); // scan through all the flags and notify the client about them for(flag = ctf_worldflaglist; flag; flag = flag.ctf_worldflagnext)