X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fgamemode_keyhunt.qc;h=7755b0f45514e0b72c4eb3bfd1015bb1fe400b12;hb=52ae1315c1851e595d12ffc13e2407dee0b24e5e;hp=d6413d33fab9d1500219fbd0e934d6357aa27507;hpb=3618a0f2000f064d6f59b99c7b79d7a3c25f77b9;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/gamemode_keyhunt.qc b/qcsrc/server/mutators/gamemode_keyhunt.qc index d6413d33f..7755b0f45 100644 --- a/qcsrc/server/mutators/gamemode_keyhunt.qc +++ b/qcsrc/server/mutators/gamemode_keyhunt.qc @@ -32,18 +32,18 @@ float kh_no_radar_circles; .float siren_time; // time delay the siren //.float stuff_time; // time delay to stuffcmd a cvar -float test[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; -//test[0] = status of dropped keys, test[1 - 16] = player # +float kh_keystatus[17]; +//kh_keystatus[0] = status of dropped keys, kh_keystatus[1 - 16] = player # //replace 17 with cvar("maxplayers") or similar !!!!!!!!! //for(i = 0; i < maxplayers; ++i) -// test[i] = "0"; +// kh_keystatus[i] = "0"; float kh_Team_ByID(float t) { - if(t == 0) return COLOR_TEAM1; - if(t == 1) return COLOR_TEAM2; - if(t == 2) return COLOR_TEAM3; - if(t == 3) return COLOR_TEAM4; + if(t == 0) return FL_TEAM_1; + if(t == 1) return FL_TEAM_2; + if(t == 2) return FL_TEAM_3; + if(t == 3) return FL_TEAM_4; return 0; } @@ -342,7 +342,7 @@ void kh_Key_AssignTo(entity key, entity player) // runs every time a key is pic key.kh_next.kh_prev = key; float i; - i = test[key.owner.playerid]; + i = kh_keystatus[key.owner.playerid]; if(key.netname == "^1red key") i += 1; if(key.netname == "^4blue key") @@ -351,7 +351,7 @@ void kh_Key_AssignTo(entity key, entity player) // runs every time a key is pic i += 4; if(key.netname == "^6pink key") i += 8; - test[key.owner.playerid] = i; + kh_keystatus[key.owner.playerid] = i; kh_Key_Attach(key); @@ -361,13 +361,13 @@ void kh_Key_AssignTo(entity key, entity player) // runs every time a key is pic WaypointSprite_AttachCarrier("", player, RADARICON_FLAGCARRIER, colormapPaletteColor(player.team - 1, 0)); player.waypointsprite_attachedforcarrier.waypointsprite_visible_for_player = kh_KeyCarrier_waypointsprite_visible_for_player; WaypointSprite_UpdateRule(player.waypointsprite_attachedforcarrier, player.team, SPRITERULE_TEAMPLAY); - if(player.team == COLOR_TEAM1) + if(player.team == FL_TEAM_1) WaypointSprite_UpdateSprites(player.waypointsprite_attachedforcarrier, "keycarrier-red", "keycarrier-friend", "keycarrier-red"); - else if(player.team == COLOR_TEAM2) + else if(player.team == FL_TEAM_2) WaypointSprite_UpdateSprites(player.waypointsprite_attachedforcarrier, "keycarrier-blue", "keycarrier-friend", "keycarrier-blue"); - else if(player.team == COLOR_TEAM3) + else if(player.team == FL_TEAM_3) WaypointSprite_UpdateSprites(player.waypointsprite_attachedforcarrier, "keycarrier-yellow", "keycarrier-friend", "keycarrier-yellow"); - else if(player.team == COLOR_TEAM4) + else if(player.team == FL_TEAM_4) WaypointSprite_UpdateSprites(player.waypointsprite_attachedforcarrier, "keycarrier-pink", "keycarrier-friend", "keycarrier-pink"); if(!kh_no_radar_circles) WaypointSprite_Ping(player.waypointsprite_attachedforcarrier); @@ -541,7 +541,7 @@ void kh_WinnerTeam(float teem) // runs when a team wins bprint(key.owner.netname); first = FALSE; } - bprint("^7 captured the keys for the ", ColoredTeamName(teem), "\n"); + bprint("^7 captured the keys for the ", Team_ColoredFullName(teem), "\n"); first = TRUE; midpoint = '0 0 0'; @@ -567,7 +567,7 @@ void kh_WinnerTeam(float teem) // runs when a team wins te_lightning2(world, lastorigin, firstorigin); } midpoint = midpoint * (1 / kh_teams); - te_customflash(midpoint, 1000, 1, TeamColor(teem) * 0.5 + '0.5 0.5 0.5'); // make the color >=0.5 in each component + te_customflash(midpoint, 1000, 1, Team_ColorRGB(teem) * 0.5 + '0.5 0.5 0.5'); // make the color >=0.5 in each component play2all(kh_sound_capture); kh_FinishRound(); @@ -596,7 +596,7 @@ void kh_LoserTeam(float teem, entity lostkey) // runs when a player pushes a fl kh_Scores_Event(attacker, world, "push", autocvar_g_balance_keyhunt_score_push, 0); PlayerScore_Add(attacker, SP_KH_PUSHES, 1); centerprint(attacker, "Your push is the best!"); - bprint("The ", ColoredTeamName(teem), "^7 could not take care of the ", lostkey.netname, "^7 when ", attacker.netname, "^7 came\n"); + bprint("The ", Team_ColoredFullName(teem), "^7 could not take care of the ", lostkey.netname, "^7 when ", attacker.netname, "^7 came\n"); } else { @@ -656,7 +656,7 @@ void kh_LoserTeam(float teem, entity lostkey) // runs when a player pushes a fl --j; } - bprint("The ", ColoredTeamName(teem), "^7 could not take care of the ", lostkey.netname, "\n"); + bprint("The ", Team_ColoredFullName(teem), "^7 could not take care of the ", lostkey.netname, "\n"); } play2all(kh_sound_destroy); te_tarexplosion(lostkey.origin); @@ -715,7 +715,7 @@ void kh_Key_Think() // runs all the time else Send_CSQC_Centerprint_Generic(head, CPID_KH_MSG, "All keys are in your team's hands!\n\nHelp the key carriers to meet!", 0, 0); else - Send_CSQC_Centerprint_Generic(head, CPID_KH_MSG, strcat("All keys are in the ", ColoredTeamName(kh_interferemsg_team), "^7's hands!\n\nInterfere ^1NOW^7!"), 0, 0); + Send_CSQC_Centerprint_Generic(head, CPID_KH_MSG, strcat("All keys are in the ", Team_ColoredFullName(kh_interferemsg_team), "^7's hands!\n\nInterfere ^1NOW^7!"), 0, 0); } } @@ -748,21 +748,21 @@ void kh_Key_Spawn(entity initial_owner, float angle, float i) // runs every tim key.kh_dropperteam = 0; key.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_PLAYERCLIP | DPCONTENTS_BOTCLIP; setsize(key, KH_KEY_MIN, KH_KEY_MAX); - key.colormod = TeamColor(initial_owner.team) * KH_KEY_BRIGHTNESS; + key.colormod = Team_ColorRGB(initial_owner.team) * KH_KEY_BRIGHTNESS; key.reset = key_reset; switch(initial_owner.team) { - case COLOR_TEAM1: + case FL_TEAM_1: key.netname = "^1red key"; break; - case COLOR_TEAM2: + case FL_TEAM_2: key.netname = "^4blue key"; break; - case COLOR_TEAM3: + case FL_TEAM_3: key.netname = "^3yellow key"; break; - case COLOR_TEAM4: + case FL_TEAM_4: key.netname = "^6pink key"; break; default: @@ -876,7 +876,7 @@ string kh_CheckEnoughPlayers() // checks enough player are present, runs after { if(result != "") result = strcat(result, ", "); - result = strcat(result, ColoredTeamName(teem)); + result = strcat(result, Team_ColoredFullName(teem)); } } return result; @@ -1108,14 +1108,20 @@ MUTATOR_DEFINITION(gamemode_keyhunt) { if(time > 1) // game loads at time 1 error("This is a game type and it cannot be added at runtime."); - g_keyhunt = 1; kh_Initialize(); } + MUTATOR_ONROLLBACK_OR_REMOVE + { + // we actually cannot roll back kh_Initialize here + // BUT: we don't need to! If this gets called, adding always + // succeeds. + } + MUTATOR_ONREMOVE { - g_keyhunt = 0; - error("This is a game type and it cannot be removed at runtime."); + print("This is a game type and it cannot be removed at runtime."); + return -1; } return 0;