我用的是多年菜鸟的amxx1.6汉化增强版,前几天在stats.ini中开启了LastMan,发现汉化不完全,显示为:player (100 HP) vs. 3 TERRORISTS:现在全部希望都在你身上!我试着改miscstats.txt,但没用,就试着改源码,但TERRORISTS和CTS始终没改过来,高手们帮帮我吧!谢谢!下面是源码- /* AMX Mod X
- * Misc. Stats Plugin
- *
- * by the AMX Mod X Development Team
- * originally developed by OLO
- *
- * This file is part of AMX Mod X.
- *
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * In addition, as a special exception, the author gives permission to
- * link the code of this program with the Half-Life Game Engine ("HL
- * Engine") and Modified Game Libraries ("MODs") developed by Valve,
- * L.L.C ("Valve"). You must obey the GNU General Public License in all
- * respects for all of the code used other than the HL Engine and MODs
- * from Valve. If you modify this file, you may extend this exception
- * to your version of the file, but you are not obligated to do so. If
- * you do not wish to do so, delete this exception statement from your
- * version.
- */
- #include <amxmodx>
- #include <csx>
- public MultiKill
- public MultiKillSound
- public BombPlanting
- public BombDefusing
- public BombPlanted
- public BombDefused
- public BombFailed
- public BombPickUp
- public BombDrop
- public BombCountVoice
- public BombCountDef
- public BombReached
- public ItalyBonusKill
- public EnemyRemaining
- public LastMan
- public KnifeKill
- public KnifeKillSound
- public GrenadeKill
- public GrenadeSuicide
- public HeadShotKill
- public HeadShotKillSound
- public RoundCounterSound
- public RoundCounter
- public KillingStreak
- public KillingStreakSound
- public DoubleKill
- public DoubleKillSound
- public PlayerName
- public FirstBloodSound
- new g_streakKills[33][2]
- new g_multiKills[33][2]
- new g_C4Timer
- new g_Defusing
- new g_Planter
- new Float:g_LastOmg
- new g_LastAnnounce
- new g_roundCount
- new Float:g_doubleKill
- new g_doubleKillId
- new g_friend[33]
- new g_firstBlood
- new g_MultiKillMsg[7][] =
- {
- "MULTI_MSG",
- "ULTRA_MSG",
- "SPREE_MSG",
- "RAMPAGE_MSG" ,
- "UNSTOPPABLE_MSG",
- "MONSTER_MSG",
- "GODLIKE_MSG"
- }
- new g_Sounds[7][] =
- {
- "multikill",
- "ultrakill",
- "killingspree",
- "rampage",
- "unstoppable",
- "monsterkill",
- "godlike"
- }
- new g_KillingMsg[7][] =
- {
- "MULTI_SMALL",
- "ULTRA_SMALL",
- "SPREE_SMALL",
- "RAMPAGE_SMALL",
- "UNSTOPPABLE_SMALL",
- "MONSTER_SMALL",
- "GODLIKE_SMALL"
- }
- new g_KinfeMsg[4][] =
- {
- "KNIFE_MSG_1",
- "KNIFE_MSG_2",
- "KNIFE_MSG_3",
- "KNIFE_MSG_4"
- }
- new g_LastMessages[4][] =
- {
- "LAST_MSG_1",
- "LAST_MSG_2",
- "LAST_MSG_3",
- "LAST_MSG_4"
- }
- new g_HeMessages[4][] =
- {
- "HE_MSG_1",
- "HE_MSG_2",
- "HE_MSG_3",
- "HE_MSG_4"
- }
- new g_SHeMessages[4][] =
- {
- "SHE_MSG_1",
- "SHE_MSG_2",
- "SHE_MSG_3",
- "SHE_MSG_4"
- }
- new g_HeadShots[7][] =
- {
- "HS_MSG_1",
- "HS_MSG_2",
- "HS_MSG_3",
- "HS_MSG_4",
- "HS_MSG_5",
- "HS_MSG_6",
- "HS_MSG_7"
- }
- new g_teamsNames[4][] =
- {
- "TERRORIST",
- "CT",
- "TERRORISTS",
- "CTS"
- }
- public plugin_init()
- {
- register_plugin("CS Misc. Stats", AMXX_VERSION_STR, "AMXX Dev Team")
- register_dictionary("miscstats.txt")
- register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w")
- register_event("SendAudio", "eEndRound", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin", "2&%!MRAD_rounddraw")
- register_event("RoundTime", "eNewRound", "bc")
- register_event("StatusValue", "setTeam", "be", "1=1")
- register_event("StatusValue", "showStatus", "be", "1=2", "2!0")
- register_event("StatusValue", "hideStatus", "be", "1=1", "2=0")
- new mapname[32]
- get_mapname(mapname, 31)
- if (equali(mapname, "de_", 3) || equali(mapname, "csde_", 5))
- {
- register_event("StatusIcon", "eGotBomb", "be", "1=1", "1=2", "2=c4")
- register_event("TextMsg", "eBombPickUp", "bc", "2&#Got_bomb")
- register_event("TextMsg", "eBombDrop", "bc", "2&#Game_bomb_d")
- }
- else if (equali(mapname, "cs_italy"))
- {
- register_event("23", "chickenKill", "a", "1=108", /*"12=106", */ "15=4")
- register_event("23", "radioKill", "a", "1=108", /*"12=294", */ "15=2")
- }
- }
- public plugin_cfg()
- {
- new g_addStast[] = "amx_statscfg add ^"%s^" %s"
-
- server_cmd(g_addStast, "MultiKill", "MultiKill")
- server_cmd(g_addStast, "MultiKillSound", "MultiKillSound")
- server_cmd(g_addStast, "Bomb Planting", "BombPlanting")
- server_cmd(g_addStast, "Bomb Defusing", "BombDefusing")
- server_cmd(g_addStast, "Bomb Planted", "BombPlanted")
- server_cmd(g_addStast, "Bomb Defuse Succ.", "BombDefused")
- server_cmd(g_addStast, "Bomb Def. Failure", "BombFailed")
- server_cmd(g_addStast, "Bomb PickUp", "BombPickUp")
- server_cmd(g_addStast, "Bomb Drop", "BombDrop")
- server_cmd(g_addStast, "Bomb Count Down", "BombCountVoice")
- server_cmd(g_addStast, "Bomb Count Down (def)", "BombCountDef")
- server_cmd(g_addStast, "Bomb Site Reached", "BombReached")
- server_cmd(g_addStast, "Italy Bonus Kill", "ItalyBonusKill")
- server_cmd(g_addStast, "Last Man", "LastMan")
- server_cmd(g_addStast, "Knife Kill", "KnifeKill")
- server_cmd(g_addStast, "Knife Kill Sound", "KnifeKillSound")
- server_cmd(g_addStast, "Grenade Kill", "GrenadeKill")
- server_cmd(g_addStast, "Grenade Suicide", "GrenadeSuicide")
- server_cmd(g_addStast, "HeadShot Kill", "HeadShotKill")
- server_cmd(g_addStast, "HeadShot Kill Sound", "HeadShotKillSound")
- server_cmd(g_addStast, "Round Counter", "RoundCounter")
- server_cmd(g_addStast, "Round Counter Sound", "RoundCounterSound")
- server_cmd(g_addStast, "Killing Streak", "KillingStreak")
- server_cmd(g_addStast, "Killing Streak Sound", "KillingStreakSound")
- server_cmd(g_addStast, "Enemy Remaining", "EnemyRemaining")
- server_cmd(g_addStast, "Double Kill", "DoubleKill")
- server_cmd(g_addStast, "Double Kill Sound", "DoubleKillSound")
- server_cmd(g_addStast, "Player Name", "PlayerName")
- server_cmd(g_addStast, "First Blood Sound", "FirstBloodSound")
- }
- public client_putinserver(id)
- {
- g_multiKills[id] = {0, 0}
- g_streakKills[id] = {0, 0}
- }
- public client_death(killer, victim, wpnindex, hitplace, TK)
- {
- if (wpnindex == CSW_C4)
- return
- new headshot = (hitplace == HIT_HEAD) ? 1 : 0
- new selfkill = (killer == victim) ? 1 : 0
- if (g_firstBlood)
- {
- g_firstBlood = 0
- if (FirstBloodSound)
- play_sound("misc/firstblood")
- }
- if ((KillingStreak || KillingStreakSound) && !TK)
- {
- g_streakKills[victim][1]++
- g_streakKills[victim][0] = 0
- if (!selfkill)
- {
- g_streakKills[killer][0]++
- g_streakKills[killer][1] = 0
-
- new a = g_streakKills[killer][0] - 3
- if ((a > -1) && !(a % 2))
- {
- new name[32]
- get_user_name(killer, name, 31)
-
- if ((a >>= 1) > 6)
- a = 6
-
- if (KillingStreak)
- {
- set_hudmessage(0, 100, 255, 0.05, 0.55, 2, 0.02, 6.0, 0.01, 0.1, 3)
- show_hudmessage(0,"%L",LANG_PLAYER,g_KillingMsg[a], name)
- }
-
- if (KillingStreakSound)
- {
- new file[32]
-
- format(file, 32, "misc/%s", g_Sounds[a])
- play_sound(file)
- }
- }
- }
- }
- if (MultiKill || MultiKillSound)
- {
- if (!selfkill && !TK)
- {
- g_multiKills[killer][0]++
- g_multiKills[killer][1] += headshot
-
- new param[2]
-
- param[0] = killer
- param[1] = g_multiKills[killer][0]
- set_task(4.0 + float(param[1]), "checkKills", 0, param, 2)
- }
- }
- if (EnemyRemaining)
- {
- new ppl[32], pplnum = 0
- new team = get_user_team(victim) - 1
-
- if (team >= 0 && team < 4)
- get_players(ppl, pplnum, "e", g_teamsNames[1 - team])
-
- if (pplnum)
- {
- new eppl[32], epplnum
-
- if (team >= 0 && team < 4)
- {
- get_players(eppl, epplnum, "ae", g_teamsNames[team])
- if (epplnum)
- {
- new message[128], team_name[32]
- set_hudmessage(255, 255, 255, 0.02, 0.85, 2, 0.05, 0.1, 0.02, 3.0, 3)
- for (new a = 0; a < pplnum; ++a)
- {
- format(team_name, 31, "%L", ppl[a], (epplnum == 1) ? g_teamsNames[team] : g_teamsNames[team + 2])
- format(message, 127, "%L", ppl[a], "REMAINING", epplnum, team_name)
- show_hudmessage(ppl[a], message)
- }
- }
- }
- }
- }
- if (LastMan)
- {
- new cts[32], ts[32], ctsnum, tsnum
-
- get_players(cts, ctsnum, "ae", g_teamsNames[1])
- get_players(ts, tsnum, "ae", g_teamsNames[0])
-
- if (ctsnum == 1 && tsnum == 1)
- {
- new ctname[32], tname[32]
-
- get_user_name(cts[0], ctname, 31)
- get_user_name(ts[0], tname, 31)
-
- set_hudmessage(0, 255, 255, -1.0, 0.35, 0, 6.0, 6.0, 0.5, 0.15, 3)
- show_hudmessage(0, "%s vs. %s", ctname, tname)
-
- play_sound("misc/maytheforce")
- }
- else if (!g_LastAnnounce)
- {
- new oposite = 0, team = 0
-
- if (ctsnum == 1 && tsnum > 1)
- {
- g_LastAnnounce = cts[0]
- oposite = tsnum
- team = 0
- }
- else if (tsnum == 1 && ctsnum > 1)
- {
- g_LastAnnounce = ts[0]
- oposite = ctsnum
- team = 1
- }
- if (g_LastAnnounce)
- {
- new name[32]
-
- get_user_name(g_LastAnnounce, name, 31)
-
- set_hudmessage(0, 255, 255, -1.0, 0.35, 0, 6.0, 6.0, 0.5, 0.15, 3)
- show_hudmessage(0, "%s (%d HP) vs. %d %s%s: %L", name, get_user_health(g_LastAnnounce), oposite, g_teamsNames[team], (oposite == 1) ? "" : "S", LANG_PLAYER, g_LastMessages[random_num(0, 3)])
-
- if (!is_user_connecting(g_LastAnnounce))
- client_cmd(g_LastAnnounce, "spk misc/oneandonly")
- }
- }
- }
- if (wpnindex == CSW_KNIFE && (KnifeKill || KnifeKillSound))
- {
- if (KnifeKill)
- {
- new killer_name[32], victim_name[32]
-
- get_user_name(killer, killer_name, 31)
- get_user_name(victim, victim_name, 31)
-
- set_hudmessage(255, 100, 100, -1.0, 0.25, 1, 6.0, 6.0, 0.5, 0.15, 1)
- show_hudmessage(0, "%L", LANG_PLAYER, g_KinfeMsg[random_num(0, 3)], killer_name, victim_name)
- }
-
- if (KnifeKillSound)
- play_sound("misc/humiliation")
- }
- if (wpnindex == CSW_HEGRENADE && (GrenadeKill || GrenadeSuicide))
- {
- new killer_name[32], victim_name[32]
-
- get_user_name(killer, killer_name, 32)
- get_user_name(victim, victim_name, 32)
-
- set_hudmessage(255, 100, 100, -1.0, 0.25, 1, 6.0, 6.0, 0.5, 0.15, 1)
-
- if (!selfkill)
- {
- if (GrenadeKill)
- show_hudmessage(0, "%L", LANG_PLAYER, g_HeMessages[random_num(0, 3)], killer_name, victim_name)
- }
- else if (GrenadeSuicide)
- show_hudmessage(0, "%L", LANG_PLAYER, g_SHeMessages[random_num(0, 3)], victim_name)
- }
- if (headshot && (HeadShotKill || HeadShotKillSound))
- {
- if (HeadShotKill && wpnindex)
- {
- new killer_name[32], victim_name[32], weapon_name[32], message[128], players[32], pnum
-
- xmod_get_wpnname(wpnindex, weapon_name, 31)
- get_user_name(killer, killer_name, 31)
- get_user_name(victim, victim_name, 31)
- get_players(players, pnum, "c")
-
- for (new i = 0; i < pnum; i++)
- {
- format(message, 127, "%L", players[i], g_HeadShots[random_num(0, 6)])
-
- replace(message, 127, "$vn", victim_name)
- replace(message, 127, "$wn", weapon_name)
- replace(message, 127, "$kn", killer_name)
-
- set_hudmessage(100, 100, 255, -1.0, 0.29, 0, 6.0, 6.0, 0.5, 0.15, 1)
- show_hudmessage(players[i], message)
- }
- }
-
- if (HeadShotKillSound)
- {
- client_cmd(killer, "spk misc/headshot")
- client_cmd(victim, "spk misc/headshot")
- }
- }
- if ((DoubleKill || DoubleKillSound) && !selfkill)
- {
- new Float:nowtime = get_gametime()
-
- if (g_doubleKill == nowtime && g_doubleKillId == killer)
- {
- if (DoubleKill)
- {
- new name[32]
-
- get_user_name(killer, name, 31)
-
- set_hudmessage(255, 0, 255, -1.0, 0.35, 0, 6.0, 6.0, 0.5, 0.15, 3)
- show_hudmessage(0, "%L", LANG_PLAYER, "DOUBLE_KILL", name)
- }
-
- if (DoubleKillSound)
- play_sound("misc/doublekill")
- }
-
- g_doubleKill = nowtime
- g_doubleKillId = killer
- }
- }
- public hideStatus(id)
- {
- if (PlayerName)
- {
- set_hudmessage(0, 0, 0, 0.0, 0.0, 0, 0.0, 0.01, 0.0, 0.0, 4)
- show_hudmessage(id, "")
- }
- }
- public setTeam(id)
- g_friend[id] = read_data(2)
- public showStatus(id)
- {
- if (PlayerName)
- {
- new name[32], pid = read_data(2)
-
- get_user_name(pid, name, 31)
- new color1 = 0, color2 = 0
-
- if (get_user_team(pid) == 1)
- color1 = 255
- else
- color2 = 255
-
- if (g_friend[id] == 1) // friend
- {
- new clip, ammo, wpnid = get_user_weapon(pid, clip, ammo)
- new wpnname[32]
-
- if (wpnid)
- xmod_get_wpnname(wpnid, wpnname, 31)
-
- set_hudmessage(color1, 50, color2, -1.0, 0.60, 1, 0.01, 3.0, 0.01, 0.01, 4)
- show_hudmessage(id, "%s -- %d HP / %d AP / %s", name, get_user_health(pid), get_user_armor(pid), wpnname)
- } else {
- set_hudmessage(color1, 50, color2, -1.0, 0.60, 1, 0.01, 3.0, 0.01, 0.01, 4)
- show_hudmessage(id, name)
- }
- }
- }
- public eNewRound()
- {
- if (read_data(1) == floatround(get_cvar_float("mp_roundtime") * 60.0))
- {
- g_firstBlood = 1
- g_C4Timer = 0
- ++g_roundCount
-
- if (RoundCounter)
- {
- set_hudmessage(200, 0, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
- show_hudmessage(0, "%L", LANG_PLAYER, "PREPARE_FIGHT", g_roundCount)
- }
-
- if (RoundCounterSound)
- play_sound("misc/prepare")
-
- if (KillingStreak)
- {
- new appl[32], ppl, i
- get_players(appl, ppl, "ac")
-
- for (new a = 0; a < ppl; ++a)
- {
- i = appl[a]
-
- if (g_streakKills[i][0] >= 2)
- client_print(i, print_chat, "* %L", i, "KILLED_ROW", g_streakKills[i][0])
- else if (g_streakKills[i][1] >= 2)
- client_print(i, print_chat, "* %L", i, "DIED_ROUNDS", g_streakKills[i][1])
- }
- }
- }
- }
- public eRestart()
- {
- eEndRound()
- g_roundCount = 0
- g_firstBlood = 1
- }
- public eEndRound()
- {
- g_C4Timer = -2
- g_LastOmg = 0.0
- remove_task(8038)
- g_LastAnnounce = 0
- }
- public checkKills(param[])
- {
- new id = param[0]
- new a = param[1]
-
- if (a == g_multiKills[id][0])
- {
- a -= 3
-
- if (a > -1)
- {
- if (MultiKill)
- {
- new name[32]
-
- get_user_name(id, name, 31)
- set_hudmessage(255, 0, 100, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, 2)
-
- if (a > 6)
- a = 6
-
- new temp[64]
- format(temp,63,"%L %d %L (%d %L)",LANG_SERVER,"WITH",g_multiKills[id][0],LANG_SERVER,"KILLS",g_multiKills[id][1],LANG_SERVER,"HS")
- show_hudmessage(0,"%L",LANG_PLAYER,g_MultiKillMsg[a],name,temp)
- }
-
- if (MultiKillSound)
- {
- new sound[24]
- format(sound, 23, "misc/%s", g_Sounds[a])
- play_sound(sound)
- }
- }
- g_multiKills[id] = {0, 0}
- }
- }
- public chickenKill()
- if (ItalyBonusKill)
- announceEvent(0, "KILLED_CHICKEN")
- public radioKill()
- {
- if (ItalyBonusKill)
- announceEvent(0, "BLEW_RADIO")
- }
- announceEvent(id, message[])
- {
- new name[32]
-
- get_user_name(id, name, 31)
- set_hudmessage(255, 100, 50, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
- show_hudmessage(0, "%L", LANG_PLAYER, message, name)
- }
- public eBombPickUp(id)
- if (BombPickUp)
- announceEvent(id, "PICKED_BOMB")
- public eBombDrop()
- if (BombDrop)
- announceEvent(g_Planter, "DROPPED_BOMB")
- public eGotBomb(id)
- {
- g_Planter = id
-
- if (BombReached && read_data(1) == 2 && g_LastOmg < get_gametime())
- {
- g_LastOmg = get_gametime() + 15.0
- announceEvent(g_Planter, "REACHED_TARGET")
- }
- }
- public bombTimer()
- {
- if (--g_C4Timer > 0)
- {
- if (BombCountVoice)
- {
- if (g_C4Timer == 30 || g_C4Timer == 20)
- {
- new temp[64]
-
- num_to_word(g_C4Timer, temp, 63)
- format(temp, 63, "^"vox/%s seconds until explosion^"", temp)
- play_sound(temp)
- }
- else if (g_C4Timer < 11)
- {
- new temp[64]
-
- num_to_word(g_C4Timer, temp, 63)
- format(temp, 63, "^"vox/%s^"", temp)
- play_sound(temp)
- }
- }
- if (BombCountDef && g_Defusing)
- client_print(g_Defusing, print_center, "%d", g_C4Timer)
- }
- else
- remove_task(8038)
- }
- public bomb_planted(planter)
- {
- g_Defusing = 0
-
- if (BombPlanted)
- announceEvent(planter, "SET_UP_BOMB")
-
- g_C4Timer = get_cvar_num("mp_c4timer")
- set_task(1.0, "bombTimer", 8038, "", 0, "b")
- }
- public bomb_planting(planter)
- if (BombPlanting)
- announceEvent(planter, "PLANT_BOMB")
- public bomb_defusing(defuser)
- {
- if (BombDefusing)
- announceEvent(defuser, "DEFUSING_BOMB")
-
- g_Defusing = defuser
- }
- public bomb_defused(defuser)
- if (BombDefused)
- announceEvent(defuser, "DEFUSED_BOMB")
- public bomb_explode(planter, defuser)
- if (BombFailed && defuser)
- announceEvent(defuser, "FAILED_DEFU")
- public play_sound(sound[])
- {
- new players[32], pnum
- get_players(players, pnum, "c")
- new i
-
- for (i = 0; i < pnum; i++)
- {
- if (is_user_connecting(players[i]))
- continue
-
- client_cmd(players[i], "spk %s", sound)
- }
- }
复制代码 第一个vs.我改成了单挑,显示正常,把第二个vs.改成了对决,hp改成了生命值。是不是还要改别的? |