【求助】如何在miscstats 内c4 安装与拆除 加音效
如何在miscstats内c4 安装与拆除 加音效 如题我真的不会帮帮忙巴高手 :too_sad: 我用的这版的/* AMX Mod script.
*
* This file is provided as is (no warranties).
*
* This plugin contains:
* o multikill announcement
* o bomb events
* o killing streak
* o enemy remaining
* o round counter
* o italy bonus kill
* o knife kill
* o headshot kill
* o greanade kill
* o last man
* o double kill
* o player name
* o first blood sound
*
* To use with AMX 0.9.6 (and higher) and Counter-Strike.
* Stats can be enabled with amx_statscfg and amx_statscfgmenu commands.
* NOTE: For pernament disable, comment file from plugins.ini
* or use amx_pausecfg and amx_pausecfgmenu commands.
* Rest of stats can be found in csstats plugin.
*/
#include <amxmod>
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
public KnifeKillReward
public KillSeries
public KillSeriesReward
public BombReward
new g_streakKills
new g_multiKills
new g_Planter
new g_Defuser
new g_C4Timer
new g_Defusing
new Float:g_LastOmg
new Float:g_LastPlan
new g_LastAnnounce
new g_roundCount
new Float:g_doubleKill
new g_doubleKillId
new g_friend
new g_firstBlood
new g_killnum
new g_killtime
new g_tempkilltime
new g_killreward
new g_bombreward = 300
new g_MultiKillMsg[] = {
"干的好! %s^n杀人数 %d 个 (爆头数 %d 个)",
"%s 真能杀!!^n杀人数 %d 个 (爆头数 %d 个)",
"%s 简直是狂战士!!!^n杀人数 %d 个 (爆头数 %d 个)",
"%s 已经是杀人王了^n杀人数 %d 个 (爆头数 %d 个)",
"%s 势不可挡!^n杀人数 %d 个 (爆头数 %d 个)",
"莫非 %s 就是魔王!!^n杀人数 %d 个 (爆头数 %d 个)",
"%s 如同上帝一样永生!!!!^n杀人数 %d 个 (爆头数 %d 个)"
}
new g_Sounds[] = {
"multikill",
"ultrakill",
"killingspree",
"rampage",
"unstoppable",
"monsterkill",
"godlike"
}
new g_KillingMsg[] = {
"%s: 干的好!",
"%s: 真能杀!!!",
"%s 简直是狂战士!!!",
"%s: 是杀人王!!!",
"%s 势不可挡!!!",
"%s 就像魔王!",
"%s 如同上帝!!!"
}
new g_KinfeMsg[] = {
"%s 悄然无息的干掉了 %s",
"%s 拔出刀剖开了 %s",
"%s 谨慎的跟在 %s 后用刀暗杀了他",
"%s 用刀剁了 %s"
}
new g_LastMessages[] = {
"^n现下全看你的了!",
"^n上帝与你同在!孩子",
"^n你的队友全部牺牲了,祝你好运!",
"^n你现下孤身一人了,多加小心!"
}
new g_HeMessages[] = {
"%s 送给 %s 了会爆炸的礼物--手雷",
"%s 用手雷把 %s 送上了天",
"%s 精确的把手雷投向了 %s",
"%s 给 %s 制造了个大爆炸"
}
new g_SHeMessages[] = {
"%s 好奇的拉保险后炸到了自己",
"%s 感受了手雷的威力",
"%s 把手雷扔进了自己的裤裆",
"%s 送自己去见上帝了!"
}
new g_HeadShots[] = {
"$kn 用漂亮的一枪命中了 $vn 的头部!",
"$kn 用 $wn 把 $vn 的头从身体上了分了家",
"$kn 在 $vn 的头上用 $wn 开了个洞",
"$vn 被 $kn 以闪电般的速度击倒",
"$vn 的头被 $kn 变成了红色的胶状物",
"$kn 自信的掏出了 $wn,随着枪声 $vn 倒在地上.",
"$vn 的头是在是太大了,$kn 随便开枪都...."
}
new g_teamsNames[] = {
"TERRORIST",
"CT"
}
public plugin_init(){
register_plugin("Misc. Stats","1.0","default, dudu improve it")
register_event("DeathMsg","eDeathMsg","a")
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
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("SendAudio", "eBombPlanted", "a", "2&%!MRAD_BOMBPL")
register_event("SendAudio", "eBombDef", "a", "2&%!MRAD_BOMBDEF")
register_event("TextMsg", "eBombFail", "a", "2&#Target_B")
register_event("BarTime", "eBombDefG", "be", "1=10", "1=5","1=3")
register_event("BarTime", "eBombDefL", "be", "1=0")
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")
server_cmd(g_addStast,"杀人等级音效","MultiKillSound")
server_cmd(g_addStast,"C4埋放过程","BombPlanting")
server_cmd(g_addStast,"C4拆解过程","BombDefusing")
server_cmd(g_addStast,"C4被放置","BombPlanted")
server_cmd(g_addStast,"C4被成功拆解","BombDefused")
server_cmd(g_addStast,"C4拆解失败","BombFailed")
server_cmd(g_addStast,"拿到C4","BombPickUp")
server_cmd(g_addStast,"C4掉落","BombDrop")
server_cmd(g_addStast,"C4倒计时","BombCountVoice")
server_cmd(g_addStast,"C4倒计时(拆解时)","BombCountDef")
server_cmd(g_addStast,"到达埋雷点","BombReached")
server_cmd(g_addStast,"C4事件奖励","BombReward")
server_cmd(g_addStast,"Italy其他事件","ItalyBonusKill")
server_cmd(g_addStast,"最后一人","LastMan")
server_cmd(g_addStast,"用刀杀死","KnifeKill")
server_cmd(g_addStast,"用刀杀死音效","KnifeKillSound")
server_cmd(g_addStast,"用刀杀死奖励","KnifeKillReward")
server_cmd(g_addStast,"手雷杀死","GrenadeKill")
server_cmd(g_addStast,"用手雷自杀","GrenadeSuicide")
server_cmd(g_addStast,"爆头","HeadShotKill")
server_cmd(g_addStast,"爆头音效","HeadShotKillSound")
server_cmd(g_addStast,"局数显示","RoundCounter")
server_cmd(g_addStast,"局数显示音效","RoundCounterSound")
server_cmd(g_addStast,"杀人技能","KillingStreak")
server_cmd(g_addStast,"杀人技能音效","KillingStreakSound")
server_cmd(g_addStast,"敌人剩余","EnemyRemaining")
server_cmd(g_addStast,"双杀","DoubleKill")
server_cmd(g_addStast,"双杀音效","DoubleKillSound")
server_cmd(g_addStast,"连续杀人","KillSeries")
server_cmd(g_addStast,"连续杀人奖励","KillSeriesReward")
server_cmd(g_addStast,"玩家名字","PlayerName")
server_cmd(g_addStast,"第一个杀人","FirstBloodSound")
}
public client_putinserver(id)
g_multiKills = g_streakKills[ id ] = { 0 , 0 }
public eDeathMsg(){
new killerId = read_data(1)
if ( killerId == 0 ) return
new victimId = read_data(2)
new bool:enemykill = (get_user_team(killerId) != get_user_team(victimId))
new headshot = read_data(3)
if ( g_firstBlood ) {
g_firstBlood = 0
if ( FirstBloodSound ) client_cmd(0,"spk misc/firstblood")
}
if ( (KillingStreak || KillingStreakSound) && enemykill ) {
g_streakKills[ killerId ][ 0 ]++
g_streakKills[ killerId ][ 1 ] = 0
g_streakKills[ victimId ][ 1 ]++
g_streakKills[ victimId ][ 0 ] = 0
new a = g_streakKills[ killerId ][ 0 ] - 3
if ( (a > -1) && !( a % 2 ) ) {
new name
get_user_name( killerId , 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,g_KillingMsg[ a ], name )
}
if (KillingStreakSound )client_cmd( 0 ,"spk misc/%s" , g_Sounds[ a ] )
}
}
if ( MultiKill || MultiKillSound ) {
if (killerId && enemykill ) {
g_multiKills++
g_multiKills += headshot
new param
param = killerId
param = g_multiKills
set_task( 4.0 + float( param ) ,"checkKills",0,param,2)
}
}
if ( EnemyRemaining ) {
new ppl, pplnum
new team = get_user_team( victimId ) - 1
get_players(ppl,pplnum,"e", g_teamsNames )
if (pplnum){
new eppl, epplnum
get_players(eppl,epplnum,"ae",g_teamsNames)
if (epplnum) {
new message
format(message,127,"%d %s 个剩余",epplnum,(team==0)?"匪徒":"警察" )
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) show_hudmessage(ppl,message)
//client_print(ppl,print_chat,message)
}
}
}
if ( LastMan ) {
new cts, ts, ctsnum, tsnum
get_players(cts,ctsnum,"ae", g_teamsNames )
get_players(ts,tsnum,"ae", g_teamsNames )
if ( ctsnum == 1 && tsnum == 1 ){
new ctname, tname
get_user_name(cts,ctname,31)
get_user_name(ts,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 单挑 %s",ctname,tname)
client_cmd(0,"spk misc/maytheforce")
}
else if ( !g_LastAnnounce) {
new oposite = 0, team = 0
if ( ctsnum == 1 && tsnum > 1 ) {
g_LastAnnounce = cts
oposite = tsnum
team = 0
}
else if ( tsnum == 1 && ctsnum > 1 ) {
g_LastAnnounce = ts
oposite = ctsnum
team = 1
}
if (g_LastAnnounce){
new name
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 血) 对决 %d %s%s",name,
get_user_health(g_LastAnnounce),oposite,
(team==0)?"匪徒":"警察",g_LastMessages[ random_num(0,3) ] )
client_cmd(g_LastAnnounce,"spk misc/oneandonly")
}
}
}
new arg
read_data( 4 , arg , 3)
if ( equal( arg, "kni" ) && ( KnifeKill || KnifeKillSound || KnifeKillReward )){
if ( KnifeKill ) {
new killer, victim
get_user_name(killerId,killer,31)
get_user_name(victimId,victim,31)
set_hudmessage(255, 100, 100, -1.0, 0.25, 1, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(0,g_KinfeMsg[ random_num(0,3) ],killer,victim)
}
if ( KnifeKillSound ) client_cmd(0,"spk misc/humiliation")
if ( KnifeKillReward && enemykill ){
new x = random_num(2000, 5000)
set_user_money(killerId,x+get_user_money(killerId))
announceEvent2(killerId,x,"%s 在用刀杀人中奖励 $%d")
}
}
else if ( equal( arg, "gre" ) && (GrenadeKill || GrenadeSuicide)){
new killer, victim
get_user_name(killerId,killer,32)
get_user_name(victimId,victim,32)
set_hudmessage(255, 100, 100, -1.0, 0.25, 1, 6.0, 6.0, 0.5, 0.15, 1)
if ( killerId != victimId ){
if ( GrenadeKill ) show_hudmessage(0,g_HeMessages[ random_num(0,3)],killer,victim)
}
else if ( GrenadeSuicide ) show_hudmessage(0,g_SHeMessages[ random_num(0,3) ],victim)
}
if ( headshot && (HeadShotKill || HeadShotKillSound) ){
if ( HeadShotKill ){
new killer, victim, weapon, message
get_user_name(killerId,killer,31)
get_user_name(victimId,victim,31)
read_data( 4 , weapon , 31)
copy( message, 127, g_HeadShots[ random_num(0,6) ] )
replace( message, 127 , "$vn", victim )
replace( message, 127 , "$wn", weapon )
replace( message, 127 , "$kn", killer )
set_hudmessage(100, 100, 255, -1.0, 0.29, 0, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(0,message )
}
if ( HeadShotKillSound ) {
client_cmd(killerId,"spk misc/headshot")
client_cmd(victimId,"spk misc/headshot")
}
}
if ( DoubleKill || DoubleKillSound ) {
new Float:nowtime = get_gametime()
if ( g_doubleKill == nowtime && g_doubleKillId == killerId ) {
if ( DoubleKill ) {
new name
get_user_name( killerId , name , 31)
set_hudmessage(255, 0, 255, -1.0, 0.35, 0, 6.0, 6.0, 0.5, 0.15, 3)
show_hudmessage(0,"哇! %s 打出了双杀" ,name )
}
if ( DoubleKillSound ) client_cmd(0,"spk misc/doublekill")
}
g_doubleKill = nowtime
g_doubleKillId = killerId
}
if ( KillSeries && enemykill ){
new killsm,killss,killnm,killns,temp1,temp2
get_time("%M", killsm, 2)
killnm = strtonum(killsm)
get_time("%S", killss, 2)
killns = strtonum(killss)
g_killtime = 60 * killnm + killns
if ( g_killnum == 0 )
g_tempkilltime = g_killtime
++g_killnum
temp1 = g_killtime - g_tempkilltime
temp2 = 2 * g_killnum - 1
if (g_killnum > 1 ){
if ( temp1 <= temp2 ){
new name
get_user_name( killerId , name , 31)
set_hudmessage( 150, 144, 50, 0.03, 0.85, 0, 6.0, 10.0, 0.1, 0.2, 5)
if ( KillSeriesReward ){
new tempmoney = 1000 * (g_killnum -1)
g_killreward += tempmoney
show_hudmessage(0,"%s 在 %d 秒里连杀了 %d 个敌人.^n并将在本局结束时得到奖励 $%d",name,temp2,g_killnum,g_killreward )
}else{
show_hudmessage(0,"%s 在 %d 秒里连杀了 %d 个敌人.",name,temp2,g_killnum)
}
}else{
g_killnum = 1
g_tempkilltime = g_killtime
}
}
}
}
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 = read_data(2)
public showStatus(id)
if ( PlayerName ){
new name,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==1){ // friend
new clip, ammo, wpnid = get_user_weapon(pid,clip,ammo)
new wpnname
get_weaponname(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 血 / %d 甲 / %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,"准备战斗!^n第 %d 局" ,g_roundCount )
}
if ( RoundCounterSound )client_cmd( 0 , "spk misc/prepare" )
if ( KillingStreak) {
new appl,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 , "* 你共杀了 %d 个而没有死亡过", g_streakKills[ i ][ 0 ] )
else if (g_streakKills[ i ][ 1 ] >= 2 )
client_print( i , print_chat , "* 小心! 你已经死了 %d 次而没有杀过人了", g_streakKills[ i ][ 1 ] )
}
}
}
if ( KillSeries ){
for (new i=0; i<33; ++i){
g_killnum = 0
if (KillSeriesReward ) g_killreward = 0
}
}
}
public eRestart(){
eEndRound()
g_roundCount = 0
g_firstBlood = 1
}
public eEndRound(){
if ( KillSeries && KillSeriesReward ){
for (new x=0; x<33; ++x){
if ( g_killreward ) set_user_money(x, get_user_money(x)+g_killreward)
}
}
g_C4Timer = -2
g_LastPlan = 0.0
g_LastOmg = 0.0
g_LastPlan = 0.0
remove_task(8038)
g_LastAnnounce = 0
}
public checkKills(param[]){
new id = param
new a = param
if (a == g_multiKills){
a -= 3
if ( a > -1 ){
if ( MultiKill ) {
new name
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
show_hudmessage(0,g_MultiKillMsg,name,g_multiKills,g_multiKills)
}
if ( MultiKillSound ) client_cmd(0,"spk misc/%s",g_Sounds)
}
g_multiKills = { 0,0 }
}
}
public chickenKill()
if ( ItalyBonusKill ) announceEvent( 0 , "有人杀了小鸡!!!")
public radioKill()
if ( ItalyBonusKill ) announceEvent( 0 , "有人调大了收音机!!!" )
announceEvent( id , message[] ){
new name
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,message,name)
}
announceEvent2( id , num, message[] ){
new name
get_user_name(id, name , 31)
set_hudmessage( 85, 62, 210, 0.03, 0.85, 0, 6.0, 10.0, 0.1, 0.2, 5)
show_hudmessage(0,message,name,num)
}
public eGotBomb(id){
g_Planter = id
g_Defuser = g_Defusing = 0
if ( BombReached && read_data(1)==2 && g_LastOmg<get_gametime()){
g_LastOmg = get_gametime() + 15.0
announceEvent(g_Planter , "天啊! %s 到达了埋雷点!" )
}
}
public eBombDefG(id){
if (read_data(1) == 3){
if ( BombPlanting && g_LastPlan<get_gametime() ){
g_LastPlan = get_gametime() + 15.0
announceEvent(g_Planter , "%s 正在放置C4!" )
}
}
else {
g_Defuser = g_Defusing = id
if ( BombDefusing && g_LastPlan<get_gametime()){
g_LastPlan = get_gametime() + 15.0
announceEvent(g_Defusing , "%s 正在拆解C4" )
}
}
}
public eBombDefL(id)
g_Defusing = 0
public eBombPlanted(){
if (BombReward){
announceEvent2(g_Planter,g_bombreward,"%s 成功放置C4奖励 $%d")
set_user_money(g_Planter,get_user_money(g_Planter)+g_bombreward)
}
if ( g_C4Timer != -2 ){
if (BombPlanted) announceEvent(g_Planter , "%s 把C4放置好了!!!" )
g_C4Timer = get_cvar_num("mp_c4timer") - 2
set_task(1.0,"bombTimer",8038,"",0,"b")
g_LastPlan = 0.0
}
}
public bombTimer(){
if (--g_C4Timer > 0){
if (BombCountVoice) {
if (g_C4Timer == 30 || g_C4Timer == 20){
new temp
num_to_word(g_C4Timer,temp,47)
client_cmd(0,"spk ^"vox/%s seconds until explosion^"",temp)
}
else if (g_C4Timer < 11){
new temp
num_to_word(g_C4Timer,temp,47)
client_cmd(0,"spk ^"vox/%s^"",temp)
}
}
if (BombCountDef && g_Defusing) client_print(g_Defusing,print_center,"%d",g_C4Timer)
}
else remove_task(8038)
}
public eBombDef(){
if (BombReward){
announceEvent2(g_Defuser,g_bombreward,"%s 拆C4成功奖励 $%d")
set_user_money(g_Defuser,get_user_money(g_Defuser)+g_bombreward)
}
if (BombDefused) announceEvent(g_Defuser , "%s 成功拆除了C4!" )
}
public eBombFail()
if (BombFailed && g_Defuser ) announceEvent(g_Defuser ,"%s 拆解C4失败了" )
public eBombPickUp(id)
if (BombPickUp) announceEvent(id , "%s 拾起了C4包")
public eBombDrop()
if (BombDrop) announceEvent(g_Planter , "%s 掉了C4包!!!") 这个东东我也在研究中。。。 我知道有个可以但是会覆盖miscstats
* cvar:
* streak_mode < flags >
* "a" - messages
* "b" - sounds
*
* bomb_mode < flags >
* "a" - exploded
* "b" - planting
* "c" - defusing
* "d" - planted
* "e" - defused
* "f" - failed to defuse
* "g" - pickup
* "h" - dropped
* "i" - sounds
*
* hekill_mode < flags >
* "a" - show normal HE-Kill in hud
* "b" - show suicide HE-Kill in hud
* "c" - play sound on HE-Kill
*
* kniff_mode < flags >
* "a" - messages
* "b" - sounds
*
* hs_mode < flags >
* "a" - messages
* "b" - sounds
*
* lastman_mode < flags >
* "a" - messages
* "b" - hp
* "c" - sounds
#include <amxmodx>
#define KNIFFMESSAGES 4
#define HEMESSAGES 4 /* Number of Random Messages for Normal HE Kills */
#define HESMESSAGES4 /* Number of Random Messages for Suicide HE Kills */
#define LEVELS 5
#define MESSAGESNOHP 4
#define MESSAGESHP 4
new planter
new defuser
new defusing
new Float:last_omg
new Float:last_plan
new kills = {0,...};
new deaths = {0,...};
new alone_ann = 0
new levels = {3, 5, 7, 9, 10};
new stksounds[] = {"misc/multikill", "misc/ultrakill",
"misc/monsterkill", "misc/killingspree", "misc/godlike"};
new stkmessages[] = {"%s: 杀手级!", "%s: 专业杀手级!!", "%s: 超级杀手级!!!",
"%s 疯狂杀手级!!!", "%s 神人杀手级." };
new kniffmessages[] = {
"%s 把 %s 切成了肉片",
"%s 取出身上的刀杀了 %s",
"%s 偷偷地跟在 %s 的身后用刀杀死了他",
"%s 用刀戳死了 %s"}
new he_messages[] = {
"%s 送了一个小礼物给 %s",
"%s 扔了一个小礼物给 %s",
"%s 非常精准将手榴弹投掷给 %s",
"%s 狠狠把 %s 炸飞了"} /* Random Messages for Normal HE Kills */
new hes_messages[] = {
"%s 被自己的手榴弹炸死",
"%s 亲身试验手榴弹的威力",
"%s 踢个手榴弹进他自己的屁屁",
"%s 爆炸了!"} /* Random Messages for Suicide HE Kills */
new messagesnohp[] = {"%i terrorist vs %i CT^n%s: 现在全部希望都在你身上!",
"%i terrorist vs %i CT^n%s: 我真希望你有个急救包.",
"%i terrorist vs %i CT^n%s: 你的队员全都牺牲了.祝你好运!",
"%i terrorist vs %i CT^n%s: 现在就剩你一个人了.上帝保佑你!"}
new messageshp[] = {"%i terrorist vs %i CT^n%s (%i 滴血): 现在全部希望都在你身上!",
"%i terrorist vs %i CT^n%s (%i hp): 我真希望你有个急救包.",
"%i terrorist vs %i CT^n%s (%i hp): 你的队员全都牺牲了.祝你好运!",
"%i terrorist vs %i CT^n%s (%i hp): 现在就剩你一个人了.上帝保佑你!"}
get_streak() {
new streak
get_cvar_string("streak_mode",streak,2)
return read_flags(streak)
}
get_bemode() {
new bemode
get_cvar_string("bomb_mode",bemode,9)
return read_flags(bemode)
}
public death_event(id) {
new streak = get_streak()
if ((streak&1) || (streak&2)){
new killer = read_data(1);
new victim = read_data(2);
kills += 1;
kills = 0;
deaths = 0;
deaths += 1;
for (new i = 0; i < LEVELS; i++) {
if (kills == levels) {
announce(killer, i);
return PLUGIN_CONTINUE;
}
}
}
return PLUGIN_CONTINUE;
}
announce(killer, level) {
new streak = get_streak()
if (streak&1){
new name;
get_user_name(killer, name, 32);
set_hudmessage(0, 100, 200, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, 2);
show_hudmessage(0, stkmessages, name);
}
if (streak&2){
client_cmd(0, "spk %s", stksounds);
}
}
public reset_hud(id) {
new streak = get_streak()
if (streak&1){
if (kills > levels) {
client_print(id, print_chat,
"* 目前为止你已经连续杀掉了 %d 名敌人,真神啊!.", kills);
} else if (deaths > 1) {
client_print(id, print_chat,
"* 小心点! 你已经连续 %d 局被杀死了要多多努力..", deaths);
}
}
}
public client_connect(id) {
new streak = get_streak()
if ((streak&1) || (streak&2)){
kills = 0;
deaths = 0;
}
}
public got_bomb(id){
new bemode = get_bemode()
if (bemode&1){
planter = id
defuser = defusing = 0
if ((read_data(1)==2) && (last_omg < get_gametime())){
new bplayers_t, numte
get_players(bplayers_t,numte,"e","terrorist")
last_omg = get_gametime() + 15.0
new name
get_user_name(planter, name , 32)
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(bplayers_t,"YA! %s 到达了埋弹点!",name)
}
}
}
public bdef_g(id){
new bemode = get_bemode()
if (read_data(1) == 3){
if (last_plan < get_gametime()){
if (bemode&2){
new bplayers_t, numte
get_players(bplayers_t,numte,"e","terrorist")
last_plan = get_gametime() + 15.0
new name
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
get_user_name(planter, name , 32)
show_hudmessage(bplayers_t,"%s 正在安装炸弹!",name)
}
}
}
else {
defuser = defusing = id
if (last_plan < get_gametime()){
if (bemode&4){
new bplayers_ct, numct
get_players(bplayers_ct,numct,"e","CT")
last_plan = get_gametime() + 15.0
new name
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
get_user_name(defusing, name , 32)
show_hudmessage(bplayers_ct,"%s 正在拆除炸弹...",name)
}
}
}
}
public bdef_l(id)
defusing = 0
public disable_c4(){
last_plan = 0.0
last_omg = 0.0
remove_task(8038)
}
public bomb_planted(){
new bemode = get_bemode()
if (bemode&256){
client_cmd(0,"spk djeyl/c4powa")
}
if (bemode&8){
new name
get_user_name(planter, name , 32)
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(0,"%s 成功安装好了炸弹!!!",name)
set_task(1.0,"bomb_c",8038,"",0,"b")
last_plan = 0.0
}
}
public bomb_defused(){
new bemode = get_bemode()
if (bemode&256){
client_cmd(0,"spk djeyl/laugh")
}
if (bemode&16){
new name
get_user_name(defuser, name , 32)
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(0,"%s 成功拆除了炸弹!",name)
disable_c4()
}
}
public bomb_failure(){
new bemode = get_bemode()
if (defuser){
if (bemode&256){
client_cmd(0,"spk djeyl/witch")
}
if (bemode&32){
new name
get_user_name(defuser, name , 32)
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(0,"%s拆除炸弹失败...",name)
}
}
}
public bomb_pickup(id){
new bemode = get_bemode()
if (bemode&64){
new bplayers_t, numte
get_players(bplayers_t,numte,"e","terrorist")
new name
get_user_name(id, name , 32)
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(bplayers_t,"%s 捡起了炸弹包...",name)
}
}
public bomb_drop(){
new bemode = get_bemode()
if (bemode&128){
new bplayers_t, numte
get_players(bplayers_t,numte,"e","terrorist")
new name
get_user_name(planter, name , 32)
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(bplayers_t,"%s 丢掉了炸弹包!!!",name)
}
}
public he_kills(){
new killer_id = read_data(1)
new victim_id = read_data(2)
new killer_name, victim_name
get_user_name(killer_id,killer_name,33)
get_user_name(victim_id,victim_name,33)
new hekmode
get_cvar_string("hekill_mode",hekmode,8)
new hekmode_bit = read_flags(hekmode)
if (hekmode_bit & 1) {
if (victim_id != killer_id)
{
if (hekmode_bit & 4) {
client_cmd(0,"spk djeyl/grenade")
}
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(0,he_messages[ random_num(0,HEMESSAGES-1)],killer_name,victim_name)
}
}
if (hekmode_bit & 2) {
if (victim_id == killer_id)
{
if (hekmode_bit & 4) {
client_cmd(0,"spk djeyl/witch")
}
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(0,hes_messages[ random_num(0,HESMESSAGES-1) ],victim_name)
}
}
}
public knife_kill(){
new kniffmode
get_cvar_string("kniff_mode",kniffmode,4)
new kniffmode_bit = read_flags(kniffmode)
if (kniffmode_bit & 1) {
new killer_id = read_data(1)
new victim_id = read_data(2)
new killer_name, victim_name
get_user_name(killer_id,killer_name,33)
get_user_name(victim_id,victim_name,33)
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
show_hudmessage(0,kniffmessages[ random_num(0,KNIFFMESSAGES-1) ],killer_name,victim_name)
}
if (kniffmode_bit & 2) {
client_cmd(0,"spk misc/humiliation")
}
}
public roundend_msg(id)
alone_ann = 0
public death_msg(id){
new lmmode
get_cvar_string("lastman_mode",lmmode,8)
new lmmode_bit = read_flags(lmmode)
new players_ct, players_t, ict, ite, last
get_players(players_ct,ict,"ae","CT")
get_players(players_t,ite,"ae","terrorist")
if (ict==1&&ite==1){
new name1, name2
get_user_name(players_ct,name1,32)
get_user_name(players_t,name2,32)
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
if (lmmode_bit & 1){
if (lmmode_bit & 2){
show_hudmessage(0,"%s (%i 滴血) vs. %s (%i 滴血)",name1,get_user_health(players_ct),name2,get_user_health(players_t))
}
else {
show_hudmessage(0,"%s vs. %s",name1,name2)
}
if (lmmode_bit & 4){
client_cmd(0,"spk misc/maytheforce")
}
}
}
else {
if (ict==1&&ite>1&&alone_ann==0&&(lmmode_bit & 4)){
last=players_ct
client_cmd(last,"spk misc/oneandonly")
}
else if (ite==1&&ict>1&&alone_ann==0&&(lmmode_bit & 4)){
last=players_t
client_cmd(last,"spk misc/oneandonly")
}
else {
return PLUGIN_CONTINUE
}
alone_ann = last
new name
get_user_name(last,name,32)
if (lmmode_bit & 1){
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.15, 1)
if (lmmode_bit & 2){
show_hudmessage(0,messageshp[ random_num(0,MESSAGESHP-1) ],ite ,ict ,name,get_user_health(last))
}
else {
show_hudmessage(0,messagesnohp[ random_num(0,MESSAGESNOHP-1) ],ite ,ict ,name )
}
}
if (lmmode_bit & 4){
client_cmd(last,"spk misc/maytheforce")
}
}
return PLUGIN_CONTINUE
}
public hs(){
new hsmode
get_cvar_string("hs_mode",hsmode,4)
new hsmode_bit = read_flags(hsmode)
if (hsmode_bit & 1){
new killer_id = read_data(1)
new victim_id = read_data(2)
new victim_name
get_user_name(victim_id,victim_name,33)
set_hudmessage(200, 100, 0, -1.0, 0.30, 0, 3.0, 3.0, 0.15, 0.15, 1)
show_hudmessage(killer_id,"::爆头::^nYou oWnEd %s !!",victim_name)
}
if (hsmode_bit & 2){
client_cmd(0,"spk misc/headshot")
}
}
public plugin_precache()
{
precache_sound( "djeyl/c4powa.wav")
precache_sound( "djeyl/laugh.wav")
precache_sound( "djeyl/grenade.wav")
precache_sound( "djeyl/witch.wav")
precache_sound( "misc/monsterkill.wav")
precache_sound( "misc/godlike.wav")
precache_sound( "misc/headshot.wav")
precache_sound( "misc/humiliation.wav")
precache_sound( "misc/killingspree.wav")
precache_sound( "misc/multikill.wav")
precache_sound( "misc/ultrakill.wav")
precache_sound( "misc/maytheforce.wav")
precache_sound( "misc/oneandonly.wav")
return PLUGIN_CONTINUE
}
public plugin_init() {
register_plugin("Ultimate sound","0.76","hephaistos@djeyl.net")
register_event("DeathMsg","hs","a","3=1")
register_event("DeathMsg","knife_kill","a","4&kni")
register_event("DeathMsg","he_kills","a","4&gren")
register_event("StatusIcon", "got_bomb", "be", "1=1", "1=2", "2=c4")
register_event("SendAudio", "bomb_planted", "a", "2&%!MRAD_BOMBPL")
register_event("SendAudio", "bomb_defused", "a", "2&%!MRAD_BOMBDEF")
register_event("TextMsg", "bomb_failure", "a", "2&#Target_B")
register_event("BarTime", "bdef_g", "be", "1=10", "1=5","1=3")
register_event("BarTime", "bdef_l", "be", "1=0")
register_event("TextMsg", "bomb_pickup", "bc", "2&#Got_bomb")
register_event("TextMsg", "bomb_drop", "bc", "2&#Game_bomb_d")
register_event("SendAudio", "disable_c4", "a", "2&%!MRAD_terwin","2&%!MRAD_ctwin","2&%!MRAD_rounddraw")
register_event("TextMsg","disable_c4","a","2&#Game_C","2&#Game_w")
register_event("ResetHUD", "reset_hud", "b");
register_event("DeathMsg", "death_event", "a")
register_event("SendAudio","roundend_msg","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
register_event("TextMsg","roundend_msg","a","2&#Game_C","2&#Game_w")
register_event("DeathMsg","death_msg","a")
register_cvar("lastman_mode","abc")
register_cvar("streak_mode","ab")
register_cvar("bomb_mode","abcdefghi")
register_cvar("hekill_mode","abc")
register_cvar("kniff_mode","ab")
register_cvar("hs_mode","ab")
return PLUGIN_CONTINUE 我终于了解 自己模了3天:cry: 起端那段是告诉你 原代码最后
可以调整
register_cvar("lastman_mode"," 输入要的里面加英文开起功能")
register_cvar("bomb_mode","i")
这样就是开起c4音效 其他空白如下 就
不会影响到 别的插件
这是原代码前面的说明
* bomb_mode < flags >
* "a" - exploded
* "b" - planting
* "c" - defusing
* "d" - planted
* "e" - defused
* "f" - failed to defuse
* "g" - pickup
* "h" - dropped
* "i" - sounds
原代码最后
register_cvar("lastman_mode"," ")
register_cvar("streak_mode"," ")
register_cvar("bomb_mode","i")
register_cvar("hekill_mode","")
register_cvar("kniff_mode","")
register_cvar("hs_mode","")
return PLUGIN_CONTINUE
} 还缺几钱!~~~` 这个有什么用?真麻烦 真多啊。,看不明、
页:
[1]