X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fgamemodes%2Fgamemode%2Fkeyhunt%2Fsv_keyhunt.qc;h=5d52ed7cb0379916ea8841585c46c04f71718dfa;hb=90d9f7c775306324957323d53d5a4ad995d999e3;hp=f8456734caa0f528e93b7b0b6b50cfdbfae3ef75;hpb=4e7bf26dfa7a8b94838303587b6e3509f9a2b704;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/gamemodes/gamemode/keyhunt/sv_keyhunt.qc b/qcsrc/common/gamemodes/gamemode/keyhunt/sv_keyhunt.qc index f8456734c..5d52ed7cb 100644 --- a/qcsrc/common/gamemodes/gamemode/keyhunt/sv_keyhunt.qc +++ b/qcsrc/common/gamemodes/gamemode/keyhunt/sv_keyhunt.qc @@ -23,6 +23,7 @@ float autocvar_g_balance_keyhunt_throwvelocity; int autocvar_g_keyhunt_teams_override; // #define KH_PLAYER_USE_ATTACHMENT +// TODO? no model exists for this // #define KH_PLAYER_USE_CARRIEDMODEL #ifdef KH_PLAYER_USE_ATTACHMENT @@ -61,8 +62,6 @@ int kh_Team_ByID(int t) return 0; } -//entity kh_worldkeylist; -.entity kh_worldkeynext; entity kh_controller; //bool kh_tracking_enabled; int kh_teams; @@ -542,7 +541,12 @@ void kh_WinnerTeam(int winner_team) // runs when a team wins midpoint += thisorigin; if(!first) - te_lightning2(NULL, lastorigin, thisorigin); + { + // TODO: this effect has been replaced due to a possible crash it causes + // see https://gitlab.com/xonotic/darkplaces/issues/123 + //te_lightning2(NULL, lastorigin, thisorigin); + Send_Effect(EFFECT_TR_NEXUIZPLASMA, lastorigin, thisorigin, 1); + } lastorigin = thisorigin; if(first) firstorigin = thisorigin; @@ -550,7 +554,8 @@ void kh_WinnerTeam(int winner_team) // runs when a team wins } if(NumTeams(kh_teams) > 2) { - te_lightning2(NULL, lastorigin, firstorigin); + //te_lightning2(NULL, lastorigin, firstorigin); // TODO see above + Send_Effect(EFFECT_TR_NEXUIZPLASMA, lastorigin, firstorigin, 1); } midpoint = midpoint * (1 / NumTeams(kh_teams)); te_customflash(midpoint, 1000, 1, Team_ColorRGB(winner_team) * 0.5 + '0.5 0.5 0.5'); // make the color >=0.5 in each component @@ -686,10 +691,12 @@ LABEL(not_winning) kh_interferemsg_time = 0; FOREACH_CLIENT(IS_PLAYER(it), { if(it.team == kh_interferemsg_team) + { if(it.kh_next) Send_Notification(NOTIF_ONE, it, MSG_CENTER, CENTER_KEYHUNT_MEET); else Send_Notification(NOTIF_ONE, it, MSG_CENTER, CENTER_KEYHUNT_HELP); + } else Send_Notification(NOTIF_ONE, it, MSG_CENTER, APP_TEAM_NUM(kh_interferemsg_team, CENTER_KEYHUNT_INTERFERE)); }); @@ -1036,7 +1043,7 @@ void havocbot_goalrating_kh(entity this, float ratingscale_team, float ratingsca navigation_routerating(this, head.owner, ratingscale_enemy * 10000, 100000); } - havocbot_goalrating_items(this, 1, this.origin, 10000); + havocbot_goalrating_items(this, 80000, this.origin, 10000); } void havocbot_role_kh_carrier(entity this) @@ -1291,6 +1298,13 @@ MUTATOR_HOOKFUNCTION(kh, HavocBot_ChooseRole) return true; } +MUTATOR_HOOKFUNCTION(kh, LogDeath_AppendItemCodes) +{ + entity player = M_ARGV(0, entity); + if(player.kh_next) + M_ARGV(1, string) = strcat(M_ARGV(1, string), "K"); // item codes +} + MUTATOR_HOOKFUNCTION(kh, DropSpecialItems) { entity frag_target = M_ARGV(0, entity);