|
按照连输的场次 , 给予一定的补助金 (0, 1000, 2500, 3500, 4500, 5500)
源码:
#include <amxmodx>
#include <cstrike>
#define AWARD_LEVELS 5
#define MAX_AWARD 9000
new const award[] = {0, 1000, 2500, 3500, 4500, 5500}
new score[] = {0, 0}
new scale = 0
public teamscore()
{
new team[2]
read_data(1,team,1)
new curTeam = (team[0] == 'C') ? 0 : 1
new curScore = read_data(2)
if (curScore == score[curTeam])
return PLUGIN_CONTINUE
score[curTeam] = curScore
// Keep a sliding scale of losses clamped to 7
// Scale is positive when CT's are winning
if (curTeam)
{
scale += 1
} else
{
scale -= 1
}
scale = clamp(scale, 0-AWARD_LEVELS, AWARD_LEVELS)
log_message("「平安夜公告」 當前按物價計酬法 %d.", scale)
if (!get_cvar_num("extramoney"))
return PLUGIN_CONTINUE
// find the pot amount by converting the sliding scale to an index
// in the award lookup table
new pindex = scale
if (!curTeam)
pindex = 0-pindex
new pot = award[clamp(pindex-1, 0, 5)]
if (!pot)
return PLUGIN_CONTINUE
new players[32];
new playerCount, i
get_players(players, playerCount, "ce", curTeam ? "CT" : "TERRORIST")
for (i=0;i < playerCount; i++)
{
new money = cs_get_user_money(players[i])
new newmoney = max(clamp(money+pot, 0, MAX_AWARD), money) // Only give extra money up to 8000
cs_set_user_money(players[i], newmoney, 1)
}
return PLUGIN_CONTINUE
}
public plugin_init()
{
register_plugin("JETB", "0.5", "Janzert")
register_cvar("extramoney", "1")
register_event("TeamScore", "teamscore", "a");
return PLUGIN_CONTINUE
} |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注个册吧
×
|