|
|
1.1 ! root 1: ! 2: #define CTF_VERSION 1.09b ! 3: #define CTF_VSTRING2(x) #x ! 4: #define CTF_VSTRING(x) CTF_VSTRING2(x) ! 5: #define CTF_STRING_VERSION CTF_VSTRING(CTF_VERSION) ! 6: ! 7: #define STAT_CTF_TEAM1_PIC 17 ! 8: #define STAT_CTF_TEAM1_CAPS 18 ! 9: #define STAT_CTF_TEAM2_PIC 19 ! 10: #define STAT_CTF_TEAM2_CAPS 20 ! 11: #define STAT_CTF_FLAG_PIC 21 ! 12: #define STAT_CTF_JOINED_TEAM1_PIC 22 ! 13: #define STAT_CTF_JOINED_TEAM2_PIC 23 ! 14: #define STAT_CTF_TEAM1_HEADER 24 ! 15: #define STAT_CTF_TEAM2_HEADER 25 ! 16: #define STAT_CTF_TECH 26 ! 17: #define STAT_CTF_ID_VIEW 27 ! 18: #define STAT_CTF_MATCH 28 ! 19: ! 20: #define CONFIG_CTF_MATCH (CS_MAXCLIENTS-1) ! 21: ! 22: typedef enum { ! 23: CTF_NOTEAM, ! 24: CTF_TEAM1, ! 25: CTF_TEAM2 ! 26: } ctfteam_t; ! 27: ! 28: typedef enum { ! 29: CTF_GRAPPLE_STATE_FLY, ! 30: CTF_GRAPPLE_STATE_PULL, ! 31: CTF_GRAPPLE_STATE_HANG ! 32: } ctfgrapplestate_t; ! 33: ! 34: typedef struct ghost_s { ! 35: char netname[16]; ! 36: int number; ! 37: ! 38: // stats ! 39: int deaths; ! 40: int kills; ! 41: int caps; ! 42: int basedef; ! 43: int carrierdef; ! 44: ! 45: int code; // ghost code ! 46: int team; // team ! 47: int score; // frags at time of disconnect ! 48: edict_t *ent; ! 49: } ghost_t; ! 50: ! 51: extern cvar_t *ctf; ! 52: ! 53: #define CTF_TEAM1_SKIN "ctf_r" ! 54: #define CTF_TEAM2_SKIN "ctf_b" ! 55: ! 56: #define DF_CTF_FORCEJOIN 131072 ! 57: #define DF_ARMOR_PROTECT 262144 ! 58: #define DF_CTF_NO_TECH 524288 ! 59: ! 60: #define CTF_CAPTURE_BONUS 15 // what you get for capture ! 61: #define CTF_TEAM_BONUS 10 // what your team gets for capture ! 62: #define CTF_RECOVERY_BONUS 1 // what you get for recovery ! 63: #define CTF_FLAG_BONUS 0 // what you get for picking up enemy flag ! 64: #define CTF_FRAG_CARRIER_BONUS 2 // what you get for fragging enemy flag carrier ! 65: #define CTF_FLAG_RETURN_TIME 40 // seconds until auto return ! 66: ! 67: #define CTF_CARRIER_DANGER_PROTECT_BONUS 2 // bonus for fraggin someone who has recently hurt your flag carrier ! 68: #define CTF_CARRIER_PROTECT_BONUS 1 // bonus for fraggin someone while either you or your target are near your flag carrier ! 69: #define CTF_FLAG_DEFENSE_BONUS 1 // bonus for fraggin someone while either you or your target are near your flag ! 70: #define CTF_RETURN_FLAG_ASSIST_BONUS 1 // awarded for returning a flag that causes a capture to happen almost immediately ! 71: #define CTF_FRAG_CARRIER_ASSIST_BONUS 2 // award for fragging a flag carrier if a capture happens almost immediately ! 72: ! 73: #define CTF_TARGET_PROTECT_RADIUS 400 // the radius around an object being defended where a target will be worth extra frags ! 74: #define CTF_ATTACKER_PROTECT_RADIUS 400 // the radius around an object being defended where an attacker will get extra frags when making kills ! 75: ! 76: #define CTF_CARRIER_DANGER_PROTECT_TIMEOUT 8 ! 77: #define CTF_FRAG_CARRIER_ASSIST_TIMEOUT 10 ! 78: #define CTF_RETURN_FLAG_ASSIST_TIMEOUT 10 ! 79: ! 80: #define CTF_AUTO_FLAG_RETURN_TIMEOUT 30 // number of seconds before dropped flag auto-returns ! 81: ! 82: #define CTF_TECH_TIMEOUT 60 // seconds before techs spawn again ! 83: ! 84: #define CTF_GRAPPLE_SPEED 650 // speed of grapple in flight ! 85: #define CTF_GRAPPLE_PULL_SPEED 650 // speed player is pulled at ! 86: ! 87: void CTFInit(void); ! 88: void CTFSpawn(void); ! 89: ! 90: void SP_info_player_team1(edict_t *self); ! 91: void SP_info_player_team2(edict_t *self); ! 92: ! 93: char *CTFTeamName(int team); ! 94: char *CTFOtherTeamName(int team); ! 95: void CTFAssignSkin(edict_t *ent, char *s); ! 96: void CTFAssignTeam(gclient_t *who); ! 97: edict_t *SelectCTFSpawnPoint (edict_t *ent); ! 98: qboolean CTFPickup_Flag(edict_t *ent, edict_t *other); ! 99: qboolean CTFDrop_Flag(edict_t *ent, gitem_t *item); ! 100: void CTFEffects(edict_t *player); ! 101: void CTFCalcScores(void); ! 102: void SetCTFStats(edict_t *ent); ! 103: void CTFDeadDropFlag(edict_t *self); ! 104: void CTFScoreboardMessage (edict_t *ent, edict_t *killer); ! 105: void CTFTeam_f (edict_t *ent); ! 106: void CTFID_f (edict_t *ent); ! 107: void CTFSay_Team(edict_t *who, char *msg); ! 108: void CTFFlagSetup (edict_t *ent); ! 109: void CTFResetFlag(int ctf_team); ! 110: void CTFFragBonuses(edict_t *targ, edict_t *inflictor, edict_t *attacker); ! 111: void CTFCheckHurtCarrier(edict_t *targ, edict_t *attacker); ! 112: ! 113: // GRAPPLE ! 114: void CTFWeapon_Grapple (edict_t *ent); ! 115: void CTFPlayerResetGrapple(edict_t *ent); ! 116: void CTFGrapplePull(edict_t *self); ! 117: void CTFResetGrapple(edict_t *self); ! 118: ! 119: //TECH ! 120: gitem_t *CTFWhat_Tech(edict_t *ent); ! 121: qboolean CTFPickup_Tech (edict_t *ent, edict_t *other); ! 122: void CTFDrop_Tech(edict_t *ent, gitem_t *item); ! 123: void CTFDeadDropTech(edict_t *ent); ! 124: void CTFSetupTechSpawn(void); ! 125: int CTFApplyResistance(edict_t *ent, int dmg); ! 126: int CTFApplyStrength(edict_t *ent, int dmg); ! 127: qboolean CTFApplyStrengthSound(edict_t *ent); ! 128: qboolean CTFApplyHaste(edict_t *ent); ! 129: void CTFApplyHasteSound(edict_t *ent); ! 130: void CTFApplyRegeneration(edict_t *ent); ! 131: qboolean CTFHasRegeneration(edict_t *ent); ! 132: void CTFRespawnTech(edict_t *ent); ! 133: void CTFResetTech(void); ! 134: ! 135: void CTFOpenJoinMenu(edict_t *ent); ! 136: qboolean CTFStartClient(edict_t *ent); ! 137: void CTFVoteYes(edict_t *ent); ! 138: void CTFVoteNo(edict_t *ent); ! 139: void CTFReady(edict_t *ent); ! 140: void CTFNotReady(edict_t *ent); ! 141: qboolean CTFNextMap(void); ! 142: qboolean CTFMatchSetup(void); ! 143: qboolean CTFMatchOn(void); ! 144: void CTFGhost(edict_t *ent); ! 145: void CTFAdmin(edict_t *ent); ! 146: qboolean CTFInMatch(void); ! 147: void CTFStats(edict_t *ent); ! 148: void CTFWarp(edict_t *ent); ! 149: void CTFBoot(edict_t *ent); ! 150: void CTFPlayerList(edict_t *ent); ! 151: ! 152: qboolean CTFCheckRules(void); ! 153: ! 154: void SP_misc_ctf_banner (edict_t *ent); ! 155: void SP_misc_ctf_small_banner (edict_t *ent); ! 156: ! 157: extern char *ctf_statusbar; ! 158: ! 159: void UpdateChaseCam(edict_t *ent); ! 160: void ChaseNext(edict_t *ent); ! 161: void ChasePrev(edict_t *ent); ! 162: ! 163: void CTFObserver(edict_t *ent); ! 164: ! 165: void SP_trigger_teleport (edict_t *ent); ! 166: void SP_info_teleport_destination (edict_t *ent);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.