cleaned revision for cstrike plugins
This commit is contained in:
parent
a816767abb
commit
324f4c58a8
@ -50,5 +50,5 @@
|
||||
* Returning cellmin as value in get_score function
|
||||
* makes that rank won't be saved. */
|
||||
|
||||
public get_score( stats[8] , body[8] )
|
||||
public get_score(stats[8], body[8])
|
||||
return stats[0] - stats[1] - stats[3] // kills - deaths - teamkills
|
@ -78,16 +78,19 @@ new g_doubleKillId
|
||||
new g_friend[33]
|
||||
new g_firstBlood
|
||||
|
||||
new g_MultiKillMsg[7][] = {
|
||||
new g_MultiKillMsg[7][] =
|
||||
{
|
||||
"Multi-Kill! %s^n%L %d %L (%d %L)",
|
||||
"Ultra-Kill!!! %s^n%L %d %L (%d %L)",
|
||||
"%s IS ON A KILLING SPREE!!!^n%L %d %L (%d %L)",
|
||||
"RAMPAGE!!! %s^n%L %d %L (%d hs)" ,
|
||||
"RAMPAGE!!! %s^n%L %d %L (%d hs)",
|
||||
"%s IS UNSTOPPABLE!!!^n%L %d %L (%d %L)",
|
||||
"%s IS A MONSTER!^n%L %d %L (%d %L)",
|
||||
"%s IS GODLIKE!!!!^n%L %d %L (%d %L)"
|
||||
}
|
||||
new g_Sounds[7][] = {
|
||||
|
||||
new g_Sounds[7][] =
|
||||
{
|
||||
"multikill",
|
||||
"ultrakill",
|
||||
"killingspree",
|
||||
@ -96,7 +99,8 @@ new g_Sounds[7][] = {
|
||||
"monsterkill",
|
||||
"godlike"
|
||||
}
|
||||
new g_KillingMsg[7][] = {
|
||||
new g_KillingMsg[7][] =
|
||||
{
|
||||
"%s: Multi-Kill!",
|
||||
"%s: Ultra-Kill!!!",
|
||||
"%s IS ON A KILLING SPREE!!!",
|
||||
@ -105,31 +109,41 @@ new g_KillingMsg[7][] = {
|
||||
"%s IS A MONSTER!",
|
||||
"%s IS GODLIKE!!!"
|
||||
}
|
||||
new g_KinfeMsg[4][] = {
|
||||
|
||||
new g_KinfeMsg[4][] =
|
||||
{
|
||||
"KNIFE_MSG_1",
|
||||
"KNIFE_MSG_2",
|
||||
"KNIFE_MSG_3",
|
||||
"KNIFE_MSG_4"
|
||||
}
|
||||
new g_LastMessages[4][] = {
|
||||
|
||||
new g_LastMessages[4][] =
|
||||
{
|
||||
"LAST_MSG_1",
|
||||
"LAST_MSG_2",
|
||||
"LAST_MSG_3",
|
||||
"LAST_MSG_4"
|
||||
}
|
||||
new g_HeMessages[4][] = {
|
||||
|
||||
new g_HeMessages[4][] =
|
||||
{
|
||||
"HE_MSG_1",
|
||||
"HE_MSG_2",
|
||||
"HE_MSG_3",
|
||||
"HE_MSG_4"
|
||||
}
|
||||
new g_SHeMessages[4][] = {
|
||||
|
||||
new g_SHeMessages[4][] =
|
||||
{
|
||||
"SHE_MSG_1",
|
||||
"SHE_MSG_2",
|
||||
"SHE_MSG_3",
|
||||
"SHE_MSG_4"
|
||||
}
|
||||
new g_HeadShots[7][] = {
|
||||
|
||||
new g_HeadShots[7][] =
|
||||
{
|
||||
"HS_MSG_1",
|
||||
"HS_MSG_2",
|
||||
"HS_MSG_3",
|
||||
@ -139,417 +153,563 @@ new g_HeadShots[7][] = {
|
||||
"HS_MSG_7"
|
||||
}
|
||||
|
||||
new g_teamsNames[4][] = {
|
||||
new g_teamsNames[4][] =
|
||||
{
|
||||
"TERRORIST",
|
||||
"CT",
|
||||
"TERRORISTS",
|
||||
"CTS"
|
||||
}
|
||||
|
||||
public plugin_init() {
|
||||
register_plugin("CS Misc. Stats",AMXX_VERSION_STR,"AMXX Dev Team")
|
||||
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("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")
|
||||
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)) {
|
||||
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" )
|
||||
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() {
|
||||
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")
|
||||
|
||||
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 }
|
||||
g_multiKills[id] = {0, 0}
|
||||
g_streakKills[id] = {0, 0}
|
||||
}
|
||||
|
||||
public client_death(killer,victim,wpnindex,hitplace,TK) {
|
||||
|
||||
if ( wpnindex == CSW_C4 )
|
||||
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
|
||||
|
||||
new headshot = ( hitplace == HIT_HEAD ) ? 1:0
|
||||
new selfkill = ( killer == victim ) ? 1:0
|
||||
|
||||
if ( g_firstBlood ) {
|
||||
if (g_firstBlood)
|
||||
{
|
||||
g_firstBlood = 0
|
||||
if ( FirstBloodSound ) play_sound("misc/firstblood")
|
||||
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 ) ) {
|
||||
|
||||
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 ){
|
||||
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,g_KillingMsg[ a ], name )
|
||||
show_hudmessage(0, g_KillingMsg[a], name)
|
||||
}
|
||||
if ( KillingStreakSound ) {
|
||||
|
||||
if (KillingStreakSound)
|
||||
{
|
||||
new file[32]
|
||||
|
||||
format(file, 32, "misc/%s", g_Sounds[a])
|
||||
play_sound(file)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( MultiKill || MultiKillSound ) {
|
||||
if (!selfkill && !TK ) {
|
||||
|
||||
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)
|
||||
set_task(4.0 + float(param[1]), "checkKills", 0, param, 2)
|
||||
}
|
||||
}
|
||||
if ( EnemyRemaining )
|
||||
|
||||
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] )
|
||||
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])
|
||||
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)
|
||||
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)
|
||||
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 ) {
|
||||
|
||||
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 ) {
|
||||
|
||||
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)
|
||||
|
||||
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)
|
||||
show_hudmessage(0, "%s vs. %s", ctname, tname)
|
||||
|
||||
play_sound("misc/maytheforce")
|
||||
}
|
||||
else if ( !g_LastAnnounce ) {
|
||||
else if (!g_LastAnnounce)
|
||||
{
|
||||
new oposite = 0, team = 0
|
||||
if ( ctsnum == 1 && tsnum > 1 ) {
|
||||
|
||||
if (ctsnum == 1 && tsnum > 1)
|
||||
{
|
||||
g_LastAnnounce = cts[0]
|
||||
oposite = tsnum
|
||||
team = 0
|
||||
}
|
||||
else if ( tsnum == 1 && ctsnum > 1 ) {
|
||||
else if (tsnum == 1 && ctsnum > 1)
|
||||
{
|
||||
g_LastAnnounce = ts[0]
|
||||
oposite = ctsnum
|
||||
team = 1
|
||||
}
|
||||
if (g_LastAnnounce) {
|
||||
|
||||
if (g_LastAnnounce)
|
||||
{
|
||||
new name[32]
|
||||
get_user_name(g_LastAnnounce,name,31)
|
||||
|
||||
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) ] )
|
||||
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")
|
||||
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)
|
||||
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")
|
||||
show_hudmessage(0, "%L", LANG_PLAYER, g_KinfeMsg[random_num(0, 3)], killer_name, victim_name)
|
||||
}
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
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)
|
||||
else if (GrenadeSuicide)
|
||||
show_hudmessage(0, "%L", LANG_PLAYER, g_SHeMessages[random_num(0, 3)], victim_name)
|
||||
}
|
||||
if ( headshot && (HeadShotKill || HeadShotKillSound) ) {
|
||||
if ( HeadShotKill && wpnindex ) {
|
||||
|
||||
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 )
|
||||
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 )
|
||||
show_hudmessage(players[i], message)
|
||||
}
|
||||
}
|
||||
if ( HeadShotKillSound ) {
|
||||
client_cmd(killer,"spk misc/headshot")
|
||||
client_cmd(victim,"spk misc/headshot")
|
||||
|
||||
if (HeadShotKillSound)
|
||||
{
|
||||
client_cmd(killer, "spk misc/headshot")
|
||||
client_cmd(victim, "spk misc/headshot")
|
||||
}
|
||||
}
|
||||
if ( (DoubleKill || DoubleKillSound) && !selfkill ) {
|
||||
|
||||
if ((DoubleKill || DoubleKillSound) && !selfkill)
|
||||
{
|
||||
new Float:nowtime = get_gametime()
|
||||
if ( g_doubleKill == nowtime && g_doubleKillId == killer ) {
|
||||
if ( DoubleKill ) {
|
||||
|
||||
if (g_doubleKill == nowtime && g_doubleKillId == killer)
|
||||
{
|
||||
if (DoubleKill)
|
||||
{
|
||||
new name[32]
|
||||
get_user_name( killer , name , 31 )
|
||||
|
||||
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 )
|
||||
show_hudmessage(0, "%L", LANG_PLAYER, "DOUBLE_KILL", name)
|
||||
}
|
||||
if ( DoubleKillSound ) play_sound("misc/doublekill")
|
||||
|
||||
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 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 )
|
||||
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)
|
||||
|
||||
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)
|
||||
|
||||
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) ) {
|
||||
{
|
||||
if (read_data(1) == floatround(get_cvar_float("mp_roundtime") * 60.0))
|
||||
{
|
||||
g_firstBlood = 1
|
||||
g_C4Timer = 0
|
||||
++g_roundCount
|
||||
if ( RoundCounter ) {
|
||||
|
||||
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 ] )
|
||||
}
|
||||
}
|
||||
show_hudmessage(0, "%L", LANG_PLAYER, "PREPARE_FIGHT", g_roundCount)
|
||||
}
|
||||
|
||||
public eRestart() {
|
||||
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() {
|
||||
public eEndRound()
|
||||
{
|
||||
g_C4Timer = -2
|
||||
g_LastOmg = 0.0
|
||||
remove_task(8038)
|
||||
g_LastAnnounce = 0
|
||||
}
|
||||
|
||||
public checkKills(param[]) {
|
||||
public checkKills(param[])
|
||||
{
|
||||
new id = param[0]
|
||||
new a = param[1]
|
||||
if (a == g_multiKills[id][0]) {
|
||||
|
||||
if (a == g_multiKills[id][0])
|
||||
{
|
||||
a -= 3
|
||||
if ( a > -1 ) {
|
||||
if ( MultiKill ) {
|
||||
|
||||
if (a > -1)
|
||||
{
|
||||
if (MultiKill)
|
||||
{
|
||||
new name[32]
|
||||
get_user_name(id,name,31)
|
||||
|
||||
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[a],name,LANG_PLAYER,"WITH",g_multiKills[id][0],LANG_PLAYER,"KILLS",g_multiKills[id][1],LANG_PLAYER,"HS")
|
||||
|
||||
if (a > 6)
|
||||
a = 6
|
||||
|
||||
show_hudmessage(0, g_MultiKillMsg[a], name, LANG_PLAYER, "WITH", g_multiKills[id][0], LANG_PLAYER, "KILLS", g_multiKills[id][1], LANG_PLAYER, "HS")
|
||||
}
|
||||
if ( MultiKillSound )
|
||||
|
||||
if (MultiKillSound)
|
||||
{
|
||||
new sound[24]
|
||||
format(sound, 23, "misc/%s", g_Sounds[a])
|
||||
play_sound(sound)
|
||||
}
|
||||
}
|
||||
g_multiKills[id] = { 0,0 }
|
||||
g_multiKills[id] = {0, 0}
|
||||
}
|
||||
}
|
||||
|
||||
public chickenKill()
|
||||
if ( ItalyBonusKill ) announceEvent( 0 , "KILLED_CHICKEN" )
|
||||
if (ItalyBonusKill)
|
||||
announceEvent(0, "KILLED_CHICKEN")
|
||||
|
||||
public radioKill() {
|
||||
if ( ItalyBonusKill ) announceEvent( 0 , "BLEW_RADIO" )
|
||||
public radioKill()
|
||||
{
|
||||
if (ItalyBonusKill)
|
||||
announceEvent(0, "BLEW_RADIO")
|
||||
}
|
||||
|
||||
announceEvent( id, message[] ) {
|
||||
announceEvent(id, message[])
|
||||
{
|
||||
new name[32]
|
||||
get_user_name(id, name , 31)
|
||||
|
||||
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)
|
||||
show_hudmessage(0, "%L", LANG_PLAYER, message, name)
|
||||
}
|
||||
|
||||
public eBombPickUp(id)
|
||||
if (BombPickUp) announceEvent(id , "PICKED_BOMB")
|
||||
if (BombPickUp)
|
||||
announceEvent(id, "PICKED_BOMB")
|
||||
|
||||
public eBombDrop()
|
||||
if (BombDrop) announceEvent(g_Planter , "DROPPED_BOMB")
|
||||
if (BombDrop)
|
||||
announceEvent(g_Planter, "DROPPED_BOMB")
|
||||
|
||||
public eGotBomb(id) {
|
||||
public eGotBomb(id)
|
||||
{
|
||||
g_Planter = id
|
||||
if ( BombReached && read_data(1)==2 && g_LastOmg<get_gametime()) {
|
||||
|
||||
if (BombReached && read_data(1) == 2 && g_LastOmg < get_gametime())
|
||||
{
|
||||
g_LastOmg = get_gametime() + 15.0
|
||||
announceEvent(g_Planter, "REACHED_TARGET" )
|
||||
announceEvent(g_Planter, "REACHED_TARGET")
|
||||
}
|
||||
}
|
||||
|
||||
public bombTimer() {
|
||||
if (--g_C4Timer > 0) {
|
||||
if (BombCountVoice) {
|
||||
if (g_C4Timer == 30 || g_C4Timer == 20) {
|
||||
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)
|
||||
|
||||
num_to_word(g_C4Timer, temp, 63)
|
||||
format(temp, 63, "^"vox/%s seconds until explosion^"", temp)
|
||||
play_sound(temp)
|
||||
}
|
||||
else if (g_C4Timer < 11) {
|
||||
else if (g_C4Timer < 11)
|
||||
{
|
||||
new temp[64]
|
||||
num_to_word(g_C4Timer,temp,63)
|
||||
|
||||
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)
|
||||
if (BombCountDef && g_Defusing)
|
||||
client_print(g_Defusing, print_center, "%d", g_C4Timer)
|
||||
}
|
||||
else remove_task(8038)
|
||||
else
|
||||
remove_task(8038)
|
||||
}
|
||||
|
||||
public bomb_planted(planter){
|
||||
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")
|
||||
|
||||
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" )
|
||||
if (BombPlanting)
|
||||
announceEvent(planter, "PLANT_BOMB")
|
||||
|
||||
public bomb_defusing(defuser)
|
||||
{
|
||||
if (BombDefusing)
|
||||
announceEvent(defuser, "DEFUSING_BOMB")
|
||||
|
||||
public bomb_defusing(defuser){
|
||||
if (BombDefusing) announceEvent(defuser, "DEFUSING_BOMB" )
|
||||
g_Defusing = defuser
|
||||
}
|
||||
|
||||
public bomb_defused(defuser)
|
||||
if (BombDefused) announceEvent(defuser, "DEFUSED_BOMB" )
|
||||
if (BombDefused)
|
||||
announceEvent(defuser, "DEFUSED_BOMB")
|
||||
|
||||
public bomb_explode(planter,defuser)
|
||||
if (BombFailed && defuser) announceEvent(defuser , "FAILED_DEFU" )
|
||||
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++)
|
||||
|
||||
for (i = 0; i < pnum; i++)
|
||||
{
|
||||
if (is_user_connecting(players[i]))
|
||||
continue
|
||||
|
||||
client_cmd(players[i], "spk %s", sound)
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,9 @@ new g_Modified
|
||||
new g_blockPos[112]
|
||||
new g_saveFile[64]
|
||||
new g_Restricted[] = "* This item is restricted *"
|
||||
new g_menusNames[7][] = {
|
||||
|
||||
new g_menusNames[7][] =
|
||||
{
|
||||
"pistol",
|
||||
"shotgun",
|
||||
"sub",
|
||||
@ -54,7 +56,9 @@ new g_menusNames[7][] = {
|
||||
"equip",
|
||||
"ammo"
|
||||
}
|
||||
new g_MenuTitle[7][] = {
|
||||
|
||||
new g_MenuTitle[7][] =
|
||||
{
|
||||
"Handguns",
|
||||
"Shotguns",
|
||||
"Sub-Machine Guns",
|
||||
@ -63,8 +67,10 @@ new g_MenuTitle[7][] = {
|
||||
"Equipment",
|
||||
"Ammunition"
|
||||
}
|
||||
new g_menusSets[7][2] = {
|
||||
{0,6},{6,8},{8,13},{13,23},{23,24},{24,32},{32,34}
|
||||
|
||||
new g_menusSets[7][2] =
|
||||
{
|
||||
{0, 6}, {6, 8}, {8, 13}, {13, 23}, {23, 24}, {24, 32}, {32, 34}
|
||||
}
|
||||
|
||||
new g_AliasBlockNum
|
||||
@ -74,44 +80,47 @@ new g_AliasBlock[MAXMENUPOS]
|
||||
// Second is a key for TERRORIST (all is key are minus one, 1 is 0, 2 is 1 etc.)
|
||||
// Third is a key for CT
|
||||
// Position with -1 doesn't exist
|
||||
new g_Keys[MAXMENUPOS][3] = {
|
||||
{1,1,1}, // H&K USP .45 Tactical
|
||||
{1,0,0}, // Glock18 Select Fire
|
||||
{1,3,3}, // Desert Eagle .50AE
|
||||
{1,2,2}, // SIG P228
|
||||
{1,4,-1}, // Dual Beretta 96G Elite
|
||||
{1,-1,4}, // FN Five-Seven
|
||||
{2,0,0}, // Benelli M3 Super90
|
||||
{2,1,1}, // Benelli XM1014
|
||||
{3,1,1}, // H&K MP5-Navy
|
||||
{3,-1,0}, // Steyr Tactical Machine Pistol
|
||||
{3,3,3}, // FN P90
|
||||
{3,0,-1}, // Ingram MAC-10
|
||||
{3,2,2}, // H&K UMP45
|
||||
{4,1,-1}, // AK-47
|
||||
{4,0,-1}, // Gali
|
||||
{4,-1,0}, // Famas
|
||||
{4,3,-1}, // Sig SG-552 Commando
|
||||
{4,-1,2}, // Colt M4A1 Carbine
|
||||
{4,-1,3}, // Steyr Aug
|
||||
{4,2,1}, // Steyr Scout
|
||||
{4,4,5}, // AI Arctic Warfare/Magnum
|
||||
{4,5,-1}, // H&K G3/SG-1 Sniper Rifle
|
||||
{4,-1,4}, // Sig SG-550 Sniper
|
||||
{5,0,0}, // FN M249 Para
|
||||
{6,0,0}, // Kevlar Vest
|
||||
{6,1,1}, // Kevlar Vest & Helmet
|
||||
{6,2,2}, // Flashbang
|
||||
{6,3,3}, // HE Grenade
|
||||
{6,4,4}, // Smoke Grenade
|
||||
{6,-1,6}, // Defuse Kit
|
||||
{6,5,5}, // NightVision Goggles
|
||||
{6,-1,7}, // Tactical Shield
|
||||
{0,5,5}, // Primary weapon ammo
|
||||
{0,6,6} // Secondary weapon ammo
|
||||
|
||||
new g_Keys[MAXMENUPOS][3] =
|
||||
{
|
||||
{1, 1, 1}, // H&K USP .45 Tactical
|
||||
{1, 0, 0}, // Glock18 Select Fire
|
||||
{1, 3, 3}, // Desert Eagle .50AE
|
||||
{1, 2, 2}, // SIG P228
|
||||
{1, 4, -1}, // Dual Beretta 96G Elite
|
||||
{1, -1, 4}, // FN Five-Seven
|
||||
{2, 0, 0}, // Benelli M3 Super90
|
||||
{2, 1, 1}, // Benelli XM1014
|
||||
{3, 1, 1}, // H&K MP5-Navy
|
||||
{3, -1, 0}, // Steyr Tactical Machine Pistol
|
||||
{3, 3, 3}, // FN P90
|
||||
{3, 0, -1}, // Ingram MAC-10
|
||||
{3, 2, 2}, // H&K UMP45
|
||||
{4, 1, -1}, // AK-47
|
||||
{4, 0, -1}, // Gali
|
||||
{4, -1, 0}, // Famas
|
||||
{4, 3, -1}, // Sig SG-552 Commando
|
||||
{4, -1, 2}, // Colt M4A1 Carbine
|
||||
{4, -1, 3}, // Steyr Aug
|
||||
{4, 2, 1}, // Steyr Scout
|
||||
{4, 4, 5}, // AI Arctic Warfare/Magnum
|
||||
{4, 5, -1}, // H&K G3/SG-1 Sniper Rifle
|
||||
{4, -1, 4}, // Sig SG-550 Sniper
|
||||
{5, 0, 0}, // FN M249 Para
|
||||
{6, 0, 0}, // Kevlar Vest
|
||||
{6, 1, 1}, // Kevlar Vest & Helmet
|
||||
{6, 2, 2}, // Flashbang
|
||||
{6, 3, 3}, // HE Grenade
|
||||
{6, 4, 4}, // Smoke Grenade
|
||||
{6, -1, 6}, // Defuse Kit
|
||||
{6, 5, 5}, // NightVision Goggles
|
||||
{6, -1, 7}, // Tactical Shield
|
||||
{0, 5, 5}, // Primary weapon ammo
|
||||
{0, 6, 6} // Secondary weapon ammo
|
||||
}
|
||||
|
||||
new g_WeaponNames[MAXMENUPOS][] = {
|
||||
new g_WeaponNames[MAXMENUPOS][] =
|
||||
{
|
||||
"H&K USP .45 Tactical",
|
||||
"Glock18 Select Fire",
|
||||
"Desert Eagle .50AE",
|
||||
@ -148,7 +157,8 @@ new g_WeaponNames[MAXMENUPOS][] = {
|
||||
"Secondary weapon ammo"
|
||||
}
|
||||
|
||||
new g_MenuItem[MAXMENUPOS][] = {
|
||||
new g_MenuItem[MAXMENUPOS][] =
|
||||
{
|
||||
"\yHandguns^n\w^n%d. %s\y\R%L^n\w",
|
||||
"%d. %s\y\R%L^n\w",
|
||||
"%d. %s\y\R%L^n\w",
|
||||
@ -192,7 +202,8 @@ new g_MenuItem[MAXMENUPOS][] = {
|
||||
"%d. %s\y\R%L^n\w"
|
||||
}
|
||||
|
||||
new g_Aliases[MAXMENUPOS][] = {
|
||||
new g_Aliases[MAXMENUPOS][] =
|
||||
{
|
||||
"usp", //Pistols
|
||||
"glock",
|
||||
"deagle",
|
||||
@ -235,7 +246,8 @@ new g_Aliases[MAXMENUPOS][] = {
|
||||
"secammo"
|
||||
}
|
||||
|
||||
new g_Aliases2[MAXMENUPOS][] = {
|
||||
new g_Aliases2[MAXMENUPOS][] =
|
||||
{
|
||||
"km45", //Pistols
|
||||
"9x19mm",
|
||||
"nighthawk",
|
||||
@ -281,286 +293,394 @@ new g_Aliases2[MAXMENUPOS][] = {
|
||||
new g_Autobuy[33][AUTOBUYLENGTH + 1]
|
||||
//new g_Rebuy[33][AUTOBUYLENGTH + 1]
|
||||
|
||||
setWeapon( a , action ) {
|
||||
setWeapon(a, action)
|
||||
{
|
||||
new b, m = g_Keys[a][0] * 8
|
||||
if (g_Keys[a][1] != -1) {
|
||||
|
||||
if (g_Keys[a][1] != -1)
|
||||
{
|
||||
b = m + g_Keys[a][1]
|
||||
if ( action == 2 )
|
||||
g_blockPos[ b ] = 1 - g_blockPos[ b ]
|
||||
|
||||
if (action == 2)
|
||||
g_blockPos[b] = 1 - g_blockPos[b]
|
||||
else
|
||||
g_blockPos[ b ] = action
|
||||
g_blockPos[b] = action
|
||||
}
|
||||
if (g_Keys[a][2] != -1) {
|
||||
|
||||
if (g_Keys[a][2] != -1)
|
||||
{
|
||||
b = m + g_Keys[a][2] + 56
|
||||
if ( action == 2 )
|
||||
g_blockPos[ b ] = 1 - g_blockPos[ b ]
|
||||
|
||||
if (action == 2)
|
||||
g_blockPos[b] = 1 - g_blockPos[b]
|
||||
else
|
||||
g_blockPos[ b ] = action
|
||||
g_blockPos[b] = action
|
||||
}
|
||||
|
||||
for (new i = 0; i < g_AliasBlockNum; ++i)
|
||||
if ( g_AliasBlock[ i ] == a ){
|
||||
if ( !action || action == 2 ) {
|
||||
if (g_AliasBlock[i] == a)
|
||||
{
|
||||
if (!action || action == 2)
|
||||
{
|
||||
--g_AliasBlockNum
|
||||
for(new j = i; j < g_AliasBlockNum; ++j )
|
||||
g_AliasBlock[ j ] = g_AliasBlock[ j + 1 ]
|
||||
|
||||
for (new j = i; j < g_AliasBlockNum; ++j)
|
||||
g_AliasBlock[j] = g_AliasBlock[j + 1]
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
if ( action && g_AliasBlockNum < MAXMENUPOS )
|
||||
g_AliasBlock[ g_AliasBlockNum++ ] = a
|
||||
|
||||
if (action && g_AliasBlockNum < MAXMENUPOS)
|
||||
g_AliasBlock[g_AliasBlockNum++] = a
|
||||
}
|
||||
|
||||
findMenuId( name[] ) {
|
||||
for(new i = 0; i < 7 ; ++i)
|
||||
if( equali( name , g_menusNames[i] ) )
|
||||
findMenuId(name[])
|
||||
{
|
||||
for (new i = 0; i < 7 ; ++i)
|
||||
if (equali(name, g_menusNames[i]))
|
||||
return i
|
||||
|
||||
return -1
|
||||
}
|
||||
|
||||
findAliasId( name[] ) {
|
||||
for(new i = 0; i < MAXMENUPOS ; ++i)
|
||||
if( equali( name , g_Aliases[i] ) )
|
||||
findAliasId(name[])
|
||||
{
|
||||
for (new i = 0; i < MAXMENUPOS ; ++i)
|
||||
if (equali(name, g_Aliases[i]))
|
||||
return i
|
||||
|
||||
return -1
|
||||
}
|
||||
|
||||
switchCommand( id, action ) {
|
||||
switchCommand(id, action)
|
||||
{
|
||||
new c = read_argc()
|
||||
if ( c < 3 ) {
|
||||
setc( g_blockPos, 112, action )
|
||||
console_print( id, "%L", id, action ? "EQ_WE_RES" : "EQ_WE_UNRES" )
|
||||
|
||||
if (c < 3)
|
||||
{
|
||||
setc(g_blockPos, 112, action)
|
||||
console_print(id, "%L", id, action ? "EQ_WE_RES" : "EQ_WE_UNRES")
|
||||
g_Modified = true
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
new arg[32], a
|
||||
new bool:found = false
|
||||
for (new b = 2; b < c; ++b) {
|
||||
read_argv(b,arg,31)
|
||||
if ( (a = findMenuId( arg )) != -1 ) {
|
||||
|
||||
for (new b = 2; b < c; ++b)
|
||||
{
|
||||
read_argv(b, arg, 31)
|
||||
|
||||
if ((a = findMenuId(arg)) != -1)
|
||||
{
|
||||
c = g_menusSets[a][1]
|
||||
|
||||
for (new i = g_menusSets[a][0]; i < c; ++i)
|
||||
setWeapon( i , action )
|
||||
console_print( id , "%s %L %L", g_MenuTitle[a], id, (a<5) ? "HAVE_BEEN" : "HAS_BEEN" , id, action ? "RESTRICTED" : "UNRESTRICTED" )
|
||||
setWeapon(i, action)
|
||||
|
||||
console_print(id, "%s %L %L", g_MenuTitle[a], id, (a < 5) ? "HAVE_BEEN" : "HAS_BEEN", id, action ? "RESTRICTED" : "UNRESTRICTED")
|
||||
g_Modified = found = true
|
||||
}
|
||||
else if ( (a = findAliasId( arg )) != -1 ) {
|
||||
else if ((a = findAliasId(arg)) != -1)
|
||||
{
|
||||
g_Modified = found = true
|
||||
setWeapon( a , action )
|
||||
console_print( id , "%s %L %L", g_WeaponNames[a], id, "HAS_BEEN", id, action ? "RESTRICTED" : "UNRESTRICTED " )
|
||||
setWeapon(a, action)
|
||||
console_print(id, "%s %L %L", g_WeaponNames[a], id, "HAS_BEEN", id, action ? "RESTRICTED" : "UNRESTRICTED ")
|
||||
}
|
||||
}
|
||||
if ( !found )
|
||||
console_print( id , "%L", id, "NO_EQ_WE" )
|
||||
|
||||
if (!found)
|
||||
console_print(id, "%L", id, "NO_EQ_WE")
|
||||
}
|
||||
}
|
||||
|
||||
positionBlocked( a ) {
|
||||
positionBlocked(a)
|
||||
{
|
||||
new m = g_Keys[a][0] * 8
|
||||
new d = ( g_Keys[a][1]==-1) ? 0 : g_blockPos[ m + g_Keys[a][1] ]
|
||||
d += ( g_Keys[a][2]==-1) ? 0 : g_blockPos[ m + g_Keys[a][2] + 56 ]
|
||||
new d = (g_Keys[a][1] == -1) ? 0 : g_blockPos[m + g_Keys[a][1]]
|
||||
|
||||
d += (g_Keys[a][2] == -1) ? 0 : g_blockPos[m + g_Keys[a][2] + 56]
|
||||
|
||||
return d
|
||||
}
|
||||
|
||||
public cmdRest(id,level,cid) {
|
||||
if (!cmd_access(id,level,cid,1))
|
||||
public cmdRest(id, level, cid)
|
||||
{
|
||||
if (!cmd_access(id, level, cid, 1))
|
||||
return PLUGIN_HANDLED
|
||||
|
||||
new cmd[8]
|
||||
read_argv(1,cmd,7)
|
||||
if ( equali( "on" , cmd ) )
|
||||
switchCommand( id, 1 )
|
||||
else if ( equali( "off" , cmd ) )
|
||||
switchCommand( id, 0 )
|
||||
else if ( equali( "list" , cmd ) ) {
|
||||
|
||||
read_argv(1, cmd, 7)
|
||||
|
||||
if (equali("on", cmd))
|
||||
switchCommand(id, 1)
|
||||
else if (equali("off", cmd))
|
||||
switchCommand(id, 0)
|
||||
else if (equali("list", cmd))
|
||||
{
|
||||
new arg1[8]
|
||||
new start = read_argv(2,arg1,7) ? str_to_num(arg1) : 1
|
||||
if (--start < 0) start = 0
|
||||
if (start >= MAXMENUPOS) start = MAXMENUPOS - 1
|
||||
new start = read_argv(2, arg1, 7) ? str_to_num(arg1) : 1
|
||||
|
||||
if (--start < 0)
|
||||
start = 0
|
||||
|
||||
if (start >= MAXMENUPOS)
|
||||
start = MAXMENUPOS - 1
|
||||
|
||||
new end = start + 10
|
||||
if (end > MAXMENUPOS) end = MAXMENUPOS
|
||||
new lName[16],lValue[16],lStatus[16],lOnOff[16]
|
||||
format(lName,15,"%L",id,"NAME")
|
||||
format(lValue,15,"%L",id,"VALUE")
|
||||
format(lStatus,15,"%L",id,"STATUS")
|
||||
|
||||
if (end > MAXMENUPOS)
|
||||
end = MAXMENUPOS
|
||||
|
||||
new lName[16], lValue[16], lStatus[16], lOnOff[16]
|
||||
|
||||
format(lName, 15, "%L", id, "NAME")
|
||||
format(lValue, 15, "%L", id, "VALUE")
|
||||
format(lStatus, 15, "%L", id, "STATUS")
|
||||
|
||||
console_print(id, "^n----- %L: -----", id, "WEAP_RES")
|
||||
console_print(id, " %-32.31s %-10.9s %-9.8s",lName,lValue,lStatus)
|
||||
if ( start != -1 ) {
|
||||
for (new a = start; a < end; ++a) {
|
||||
format(lOnOff,15,"%L",id,positionBlocked(a) ? "ON" : "OFF")
|
||||
console_print(id, "%3d: %-32.31s %-10.9s %-9.8s",a + 1,
|
||||
g_WeaponNames[a], g_Aliases[a], lOnOff)
|
||||
console_print(id, " %-32.31s %-10.9s %-9.8s", lName, lValue, lStatus)
|
||||
|
||||
if (start != -1)
|
||||
{
|
||||
for (new a = start; a < end; ++a)
|
||||
{
|
||||
format(lOnOff, 15, "%L", id, positionBlocked(a) ? "ON" : "OFF")
|
||||
console_print(id, "%3d: %-32.31s %-10.9s %-9.8s", a + 1, g_WeaponNames[a], g_Aliases[a], lOnOff)
|
||||
}
|
||||
}
|
||||
console_print(id,"----- %L -----",id,"REST_ENTRIES_OF",start+1,end,MAXMENUPOS)
|
||||
|
||||
console_print(id, "----- %L -----", id, "REST_ENTRIES_OF", start + 1, end, MAXMENUPOS)
|
||||
|
||||
if (end < MAXMENUPOS)
|
||||
console_print(id,"----- %L -----",id,"REST_USE_MORE",end+1)
|
||||
console_print(id, "----- %L -----", id, "REST_USE_MORE", end + 1)
|
||||
else
|
||||
console_print(id,"----- %L -----",id,"REST_USE_BEGIN")
|
||||
console_print(id, "----- %L -----", id, "REST_USE_BEGIN")
|
||||
}
|
||||
else if ( equali( "save" , cmd ) ) {
|
||||
if ( saveSettings( g_saveFile ) ){
|
||||
console_print( id , "%L", id, "REST_CONF_SAVED", g_saveFile )
|
||||
else if (equali("save", cmd))
|
||||
{
|
||||
if (saveSettings(g_saveFile))
|
||||
{
|
||||
console_print(id, "%L", id, "REST_CONF_SAVED", g_saveFile)
|
||||
g_Modified = false
|
||||
}
|
||||
else console_print( id, "%L", id, "REST_COULDNT_SAVE", g_saveFile )
|
||||
else
|
||||
console_print(id, "%L", id, "REST_COULDNT_SAVE", g_saveFile)
|
||||
}
|
||||
else if ( equali( "load" , cmd ) ) {
|
||||
setc( g_blockPos, 112, 0 ) // Clear current settings
|
||||
else if (equali("load", cmd))
|
||||
{
|
||||
setc(g_blockPos, 112, 0) // Clear current settings
|
||||
new arg1[64]
|
||||
if ( read_argv(2, arg1 , 63 ) ) {
|
||||
|
||||
if (read_argv(2, arg1, 63))
|
||||
{
|
||||
new configsdir[32]
|
||||
get_configsdir(configsdir,31)
|
||||
format(arg1,63,"%s/%s",configsdir,arg1)
|
||||
get_configsdir(configsdir, 31)
|
||||
|
||||
format(arg1, 63, "%s/%s", configsdir, arg1)
|
||||
}
|
||||
if ( loadSettings( arg1 ) ) {
|
||||
console_print( id, "%L", id, "REST_CONF_LOADED", arg1 )
|
||||
|
||||
if (loadSettings(arg1))
|
||||
{
|
||||
console_print(id, "%L", id, "REST_CONF_LOADED", arg1)
|
||||
g_Modified = true
|
||||
}
|
||||
else console_print( id, "%L", id, "REST_COULDNT_LOAD", arg1 )
|
||||
}
|
||||
else {
|
||||
console_print(id,"%L",id,"COM_REST_USAGE")
|
||||
console_print(id,"%L",id,"COM_REST_COMMANDS")
|
||||
console_print(id,"%L",id,"COM_REST_ON")
|
||||
console_print(id,"%L",id,"COM_REST_OFF")
|
||||
console_print(id,"%L",id,"COM_REST_ONV")
|
||||
console_print(id,"%L",id,"COM_REST_OFFV")
|
||||
console_print(id,"%L",id,"COM_REST_LIST")
|
||||
console_print(id,"%L",id,"COM_REST_SAVE")
|
||||
console_print(id,"%L",id,"COM_REST_LOAD")
|
||||
console_print(id,"%L",id,"COM_REST_VALUES")
|
||||
console_print(id,"%L",id,"COM_REST_TYPE")
|
||||
else
|
||||
console_print(id, "%L", id, "REST_COULDNT_LOAD", arg1)
|
||||
} else {
|
||||
console_print(id, "%L", id, "COM_REST_USAGE")
|
||||
console_print(id, "%L", id, "COM_REST_COMMANDS")
|
||||
console_print(id, "%L", id, "COM_REST_ON")
|
||||
console_print(id, "%L", id, "COM_REST_OFF")
|
||||
console_print(id, "%L", id, "COM_REST_ONV")
|
||||
console_print(id, "%L", id, "COM_REST_OFFV")
|
||||
console_print(id, "%L", id, "COM_REST_LIST")
|
||||
console_print(id, "%L", id, "COM_REST_SAVE")
|
||||
console_print(id, "%L", id, "COM_REST_LOAD")
|
||||
console_print(id, "%L", id, "COM_REST_VALUES")
|
||||
console_print(id, "%L", id, "COM_REST_TYPE")
|
||||
}
|
||||
|
||||
return PLUGIN_HANDLED
|
||||
}
|
||||
|
||||
displayMenu(id,pos) {
|
||||
if (pos < 0) return
|
||||
displayMenu(id, pos)
|
||||
{
|
||||
if (pos < 0)
|
||||
return
|
||||
|
||||
new menubody[512], start = pos * 7
|
||||
if (start >= MAXMENUPOS) start = pos = g_Position[id] = 0
|
||||
new len = format(menubody,511,"\y%L\R%d/5^n^n\w",id,"REST_WEAP",pos+1)
|
||||
|
||||
if (start >= MAXMENUPOS)
|
||||
start = pos = g_Position[id] = 0
|
||||
|
||||
new len = format(menubody, 511, "\y%L\R%d/5^n^n\w", id, "REST_WEAP", pos + 1)
|
||||
new end = start + 7, keys = MENU_KEY_0|MENU_KEY_8, k = 0
|
||||
if (end > MAXMENUPOS) end = MAXMENUPOS
|
||||
|
||||
for (new a = start; a < end; ++a) {
|
||||
if (end > MAXMENUPOS)
|
||||
end = MAXMENUPOS
|
||||
|
||||
for (new a = start; a < end; ++a)
|
||||
{
|
||||
keys |= (1<<k)
|
||||
|
||||
len += format(menubody[len],511-len,g_MenuItem[a],++k,g_WeaponNames[a], id, positionBlocked(a) ? "ON" : "OFF")
|
||||
len += format(menubody[len], 511 - len, g_MenuItem[a], ++k, g_WeaponNames[a], id, positionBlocked(a) ? "ON" : "OFF")
|
||||
}
|
||||
len += format(menubody[len],511-len,"^n8. %L \y\R%s^n\w",id,"SAVE_SET",g_Modified?"*":"")
|
||||
if (end != MAXMENUPOS) {
|
||||
format(menubody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
|
||||
|
||||
len += format(menubody[len], 511 - len, "^n8. %L \y\R%s^n\w", id, "SAVE_SET", g_Modified ? "*" : "")
|
||||
|
||||
if (end != MAXMENUPOS)
|
||||
{
|
||||
format(menubody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
|
||||
keys |= MENU_KEY_9
|
||||
}
|
||||
else format(menubody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT")
|
||||
show_menu(id,keys,menubody,-1,"Restrict Weapons")
|
||||
else
|
||||
format(menubody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
|
||||
|
||||
show_menu(id, keys, menubody, -1, "Restrict Weapons")
|
||||
}
|
||||
|
||||
public actionMenu(id,key) {
|
||||
switch (key) {
|
||||
case 7: {
|
||||
if (saveSettings(g_saveFile)) {
|
||||
public actionMenu(id, key)
|
||||
{
|
||||
switch (key)
|
||||
{
|
||||
case 7:
|
||||
{
|
||||
if (saveSettings(g_saveFile))
|
||||
{
|
||||
g_Modified = false
|
||||
client_print(id,print_chat,"* %L",id,"CONF_SAV_SUC")
|
||||
client_print(id, print_chat, "* %L", id, "CONF_SAV_SUC")
|
||||
}
|
||||
else client_print(id,print_chat,"* %L",id,"CONF_SAV_FAIL")
|
||||
displayMenu(id,g_Position[id])
|
||||
else
|
||||
client_print(id, print_chat, "* %L", id, "CONF_SAV_FAIL")
|
||||
|
||||
displayMenu(id, g_Position[id])
|
||||
}
|
||||
case 8: displayMenu(id,++g_Position[id])
|
||||
case 9: displayMenu(id,--g_Position[id])
|
||||
default: {
|
||||
setWeapon( g_Position[id] * 7 + key , 2 )
|
||||
case 8: displayMenu(id, ++g_Position[id])
|
||||
case 9: displayMenu(id, --g_Position[id])
|
||||
default:
|
||||
{
|
||||
setWeapon(g_Position[id] * 7 + key, 2)
|
||||
g_Modified = true
|
||||
displayMenu(id,g_Position[id])
|
||||
displayMenu(id, g_Position[id])
|
||||
}
|
||||
}
|
||||
|
||||
return PLUGIN_HANDLED
|
||||
}
|
||||
|
||||
public client_command( id ) {
|
||||
if ( g_AliasBlockNum ) {
|
||||
public client_command(id)
|
||||
{
|
||||
if (g_AliasBlockNum)
|
||||
{
|
||||
new arg[13]
|
||||
|
||||
if ( read_argv( 0, arg , 12 ) > 11 ) /* Longest buy command has 11 chars so if command is longer then don't care */
|
||||
if (read_argv(0, arg, 12) > 11) /* Longest buy command has 11 chars so if command is longer then don't care */
|
||||
return PLUGIN_CONTINUE
|
||||
|
||||
new a = 0
|
||||
|
||||
do {
|
||||
if ( equali( g_Aliases[g_AliasBlock[ a ]] , arg ) ||
|
||||
equali( g_Aliases2[g_AliasBlock[ a ]] , arg ) )
|
||||
do
|
||||
{
|
||||
client_print(id,print_center,g_Restricted )
|
||||
if (equali(g_Aliases[g_AliasBlock[a]], arg) || equali(g_Aliases2[g_AliasBlock[a]], arg))
|
||||
{
|
||||
client_print(id, print_center, g_Restricted)
|
||||
return PLUGIN_HANDLED
|
||||
}
|
||||
} while( ++a < g_AliasBlockNum )
|
||||
} while (++a < g_AliasBlockNum)
|
||||
}
|
||||
|
||||
return PLUGIN_CONTINUE
|
||||
}
|
||||
|
||||
public blockcommand(id) {
|
||||
client_print(id,print_center, g_Restricted )
|
||||
public blockcommand(id)
|
||||
{
|
||||
client_print(id, print_center, g_Restricted)
|
||||
return PLUGIN_HANDLED
|
||||
}
|
||||
|
||||
public cmdMenu(id,level,cid){
|
||||
if (cmd_access(id,level,cid,1))
|
||||
displayMenu(id, g_Position[id] = 0 )
|
||||
public cmdMenu(id, level, cid)
|
||||
{
|
||||
if (cmd_access(id, level, cid, 1))
|
||||
displayMenu(id, g_Position[id] = 0)
|
||||
|
||||
return PLUGIN_HANDLED
|
||||
}
|
||||
|
||||
checkRest(id,menu,key){
|
||||
checkRest(id, menu, key)
|
||||
{
|
||||
new team = get_user_team(id)
|
||||
|
||||
if (team != 1 && team != 2)
|
||||
return PLUGIN_HANDLED
|
||||
if ( g_blockPos[ (menu * 8 + key) + (get_user_team(id) - 1) * 56 ] ){
|
||||
engclient_cmd(id,"menuselect","10")
|
||||
client_print(id,print_center, g_Restricted )
|
||||
|
||||
if (g_blockPos[(menu * 8 + key) + (get_user_team(id) - 1) * 56])
|
||||
{
|
||||
engclient_cmd(id, "menuselect", "10")
|
||||
client_print(id, print_center, g_Restricted)
|
||||
|
||||
return PLUGIN_HANDLED
|
||||
}
|
||||
|
||||
return PLUGIN_CONTINUE
|
||||
}
|
||||
|
||||
public ammoRest1(id) return checkRest(id,0,5)
|
||||
public ammoRest2(id) return checkRest(id,0,6)
|
||||
public menuBuy(id,key) return checkRest(id,0,key)
|
||||
public menuPistol(id,key) return checkRest(id,1,key)
|
||||
public menuShotgun(id,key) return checkRest(id,2,key)
|
||||
public menuSub(id,key) return checkRest(id,3,key)
|
||||
public menuRifle(id,key) return checkRest(id,4,key)
|
||||
public menuMachine(id,key) return checkRest(id,5,key)
|
||||
public menuItem(id,key) return checkRest(id,6,key)
|
||||
public ammoRest1(id) return checkRest(id, 0, 5)
|
||||
public ammoRest2(id) return checkRest(id, 0, 6)
|
||||
public menuBuy(id, key) return checkRest(id, 0, key)
|
||||
public menuPistol(id, key) return checkRest(id, 1, key)
|
||||
public menuShotgun(id, key) return checkRest(id, 2, key)
|
||||
public menuSub(id, key) return checkRest(id, 3, key)
|
||||
public menuRifle(id, key) return checkRest(id, 4, key)
|
||||
public menuMachine(id, key) return checkRest(id, 5, key)
|
||||
public menuItem(id, key) return checkRest(id, 6, key)
|
||||
|
||||
saveSettings(filename[]) {
|
||||
saveSettings(filename[])
|
||||
{
|
||||
if (file_exists(filename))
|
||||
delete_file(filename)
|
||||
if (!write_file(filename,"; Generated by Restrict Weapons Plugin. Do not modify!^n; value name"))
|
||||
|
||||
if (!write_file(filename, "; Generated by Restrict Weapons Plugin. Do not modify!^n; value name"))
|
||||
return 0
|
||||
|
||||
new text[64]
|
||||
for(new a = 0; a < MAXMENUPOS; ++a) {
|
||||
if ( positionBlocked( a ) ) {
|
||||
format(text,63,"%-16.15s ; %s", g_Aliases[a] , g_WeaponNames[a])
|
||||
write_file(filename,text)
|
||||
|
||||
for (new a = 0; a < MAXMENUPOS; ++a)
|
||||
{
|
||||
if (positionBlocked(a))
|
||||
{
|
||||
format(text, 63, "%-16.15s ; %s", g_Aliases[a], g_WeaponNames[a])
|
||||
write_file(filename, text)
|
||||
}
|
||||
}
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
loadSettings(filename[]) {
|
||||
if (!file_exists(filename)) return 0
|
||||
loadSettings(filename[])
|
||||
{
|
||||
if (!file_exists(filename))
|
||||
return 0
|
||||
|
||||
new text[16]
|
||||
new a, pos = 0
|
||||
while (read_file(filename,pos++,text,15, a )) {
|
||||
if ( text[0] == ';' || !a ) continue // line is a comment
|
||||
parse( text, text , 15 )
|
||||
if ( (a = findAliasId( text )) != -1 )
|
||||
setWeapon( a , 1 )
|
||||
|
||||
while (read_file(filename, pos++, text, 15, a))
|
||||
{
|
||||
if (text[0] == ';' || !a)
|
||||
continue // line is a comment
|
||||
|
||||
parse(text, text, 15)
|
||||
|
||||
if ((a = findAliasId(text)) != -1)
|
||||
setWeapon(a, 1)
|
||||
}
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
// JGHG
|
||||
public fn_setautobuy(id) {
|
||||
public fn_setautobuy(id)
|
||||
{
|
||||
// Don't do anything if no items are blocked.
|
||||
if (!g_AliasBlockNum)
|
||||
return PLUGIN_CONTINUE
|
||||
@ -569,14 +689,15 @@ public fn_setautobuy(id) {
|
||||
g_Autobuy[id][0] = '^0'
|
||||
|
||||
new argCount = read_argc()
|
||||
|
||||
new arg[128]
|
||||
new autobuyLen = 0
|
||||
for (new i = 1; i < argCount; i++) { // Start at parameter 1; parameter 0 is just "cl_setautobuy"
|
||||
read_argv(i, arg, 127)
|
||||
|
||||
for (new i = 1; i < argCount; i++) // Start at parameter 1; parameter 0 is just "cl_setautobuy"
|
||||
{
|
||||
read_argv(i, arg, 127)
|
||||
// Add this parameter to user's autobuy prefs
|
||||
autobuyLen += format(g_Autobuy[id][autobuyLen], AUTOBUYLENGTH - autobuyLen, "%s", arg)
|
||||
|
||||
// If we detect more parameters, add a space
|
||||
if (i + 1 < argCount)
|
||||
autobuyLen += format(g_Autobuy[id][autobuyLen], AUTOBUYLENGTH - autobuyLen, " ")
|
||||
@ -584,21 +705,25 @@ public fn_setautobuy(id) {
|
||||
|
||||
// Strip any blocked items
|
||||
new strippedItems[AUTOBUYLENGTH + 1]
|
||||
|
||||
if (!StripBlockedItems(g_Autobuy[id], strippedItems))
|
||||
return PLUGIN_CONTINUE // don't touch anything if we didn't strip anything...
|
||||
|
||||
//server_print("Stripped items: ^"%s^"", strippedItems)
|
||||
engclient_cmd(id, "cl_setautobuy", strippedItems)
|
||||
|
||||
return PLUGIN_HANDLED
|
||||
}
|
||||
|
||||
// Returns true if this strips any items, else false.
|
||||
StripBlockedItems(inString[AUTOBUYLENGTH + 1], outString[AUTOBUYLENGTH + 1]) {
|
||||
StripBlockedItems(inString[AUTOBUYLENGTH + 1], outString[AUTOBUYLENGTH + 1])
|
||||
{
|
||||
// First copy string
|
||||
format(outString, AUTOBUYLENGTH, inString)
|
||||
|
||||
// Then strip those that are blocked.
|
||||
for (new i = 0; i < g_AliasBlockNum; i++) {
|
||||
for (new i = 0; i < g_AliasBlockNum; i++)
|
||||
{
|
||||
while (contain(outString, g_Aliases[g_AliasBlock[i]]) != -1)
|
||||
replace(outString, AUTOBUYLENGTH, g_Aliases[g_AliasBlock[i]], "")
|
||||
while (contain(outString, g_Aliases2[g_AliasBlock[i]]) != -1)
|
||||
@ -606,61 +731,64 @@ StripBlockedItems(inString[AUTOBUYLENGTH + 1], outString[AUTOBUYLENGTH + 1]) {
|
||||
}
|
||||
|
||||
// We COULD trim white space from outString here, but I don't think it really is necessary currently...
|
||||
|
||||
if (strlen(outString) < strlen(inString))
|
||||
return true // outstring is shorter: we stripped items, return true
|
||||
|
||||
return false // else end here, return false, no items were stripped
|
||||
}
|
||||
|
||||
public fn_autobuy(id) {
|
||||
public fn_autobuy(id)
|
||||
{
|
||||
// Don't do anything if no items are blocked.
|
||||
if (!g_AliasBlockNum)
|
||||
return PLUGIN_CONTINUE
|
||||
|
||||
// Strip any blocked items
|
||||
new strippedItems[AUTOBUYLENGTH + 1]
|
||||
|
||||
if (!StripBlockedItems(g_Autobuy[id], strippedItems))
|
||||
return PLUGIN_CONTINUE // don't touch anything if we didn't strip anything...
|
||||
|
||||
engclient_cmd(id, "cl_setautobuy", strippedItems)
|
||||
|
||||
return PLUGIN_HANDLED
|
||||
}
|
||||
|
||||
public plugin_init() {
|
||||
register_plugin("Restrict Weapons",AMXX_VERSION_STR,"AMXX Dev Team")
|
||||
public plugin_init()
|
||||
{
|
||||
register_plugin("Restrict Weapons", AMXX_VERSION_STR, "AMXX Dev Team")
|
||||
register_dictionary("restmenu.txt")
|
||||
register_dictionary("common.txt")
|
||||
register_clcmd("buyammo1","ammoRest1")
|
||||
register_clcmd("buyammo2","ammoRest2")
|
||||
register_clcmd("buyammo1", "ammoRest1")
|
||||
register_clcmd("buyammo2", "ammoRest2")
|
||||
register_clcmd("cl_setautobuy", "fn_setautobuy")
|
||||
register_clcmd("cl_autobuy", "fn_autobuy")
|
||||
register_clcmd("amx_restmenu","cmdMenu",ADMIN_CFG,"- displays weapons restriction menu")
|
||||
register_menucmd(register_menuid("#Buy", 1 ),511,"menuBuy")
|
||||
register_menucmd(register_menuid("Restrict Weapons"),1023,"actionMenu")
|
||||
register_menucmd(register_menuid("BuyPistol", 1 ),511,"menuPistol")
|
||||
register_menucmd(register_menuid("BuyShotgun", 1 ),511,"menuShotgun")
|
||||
register_menucmd(register_menuid("BuySub", 1 ),511,"menuSub")
|
||||
register_menucmd(register_menuid("BuyRifle", 1 ),511,"menuRifle")
|
||||
register_menucmd(register_menuid("BuyMachine", 1 ),511,"menuMachine")
|
||||
register_menucmd(register_menuid("BuyItem", 1 ),511,"menuItem")
|
||||
register_menucmd(-28,511,"menuBuy" )
|
||||
register_menucmd(-29,511,"menuPistol" )
|
||||
register_menucmd(-30,511,"menuShotgun")
|
||||
register_menucmd(-32,511,"menuSub")
|
||||
register_menucmd(-31,511,"menuRifle")
|
||||
register_menucmd(-33,511,"menuMachine")
|
||||
register_menucmd(-34,511,"menuItem")
|
||||
register_concmd("amx_restrict","cmdRest",ADMIN_CFG,"- displays help for weapons restriction")
|
||||
register_clcmd("amx_restmenu", "cmdMenu", ADMIN_CFG, "- displays weapons restriction menu")
|
||||
register_menucmd(register_menuid("#Buy", 1), 511, "menuBuy")
|
||||
register_menucmd(register_menuid("Restrict Weapons"), 1023, "actionMenu")
|
||||
register_menucmd(register_menuid("BuyPistol", 1), 511, "menuPistol")
|
||||
register_menucmd(register_menuid("BuyShotgun", 1), 511, "menuShotgun")
|
||||
register_menucmd(register_menuid("BuySub", 1), 511, "menuSub")
|
||||
register_menucmd(register_menuid("BuyRifle", 1), 511, "menuRifle")
|
||||
register_menucmd(register_menuid("BuyMachine", 1), 511, "menuMachine")
|
||||
register_menucmd(register_menuid("BuyItem", 1), 511, "menuItem")
|
||||
register_menucmd(-28, 511, "menuBuy")
|
||||
register_menucmd(-29, 511, "menuPistol")
|
||||
register_menucmd(-30, 511, "menuShotgun")
|
||||
register_menucmd(-32, 511, "menuSub")
|
||||
register_menucmd(-31, 511, "menuRifle")
|
||||
register_menucmd(-33, 511, "menuMachine")
|
||||
register_menucmd(-34, 511, "menuItem")
|
||||
register_concmd("amx_restrict", "cmdRest", ADMIN_CFG, "- displays help for weapons restriction")
|
||||
|
||||
new configsDir[64];
|
||||
get_configsdir(configsDir, 63);
|
||||
#if defined MAPSETTINGS
|
||||
new mapname[32]
|
||||
get_mapname(mapname,31)
|
||||
format(g_saveFile,63,"%s/weaprest_%s.ini",configsDir,mapname)
|
||||
get_mapname(mapname, 31)
|
||||
format(g_saveFile, 63, "%s/weaprest_%s.ini", configsDir, mapname)
|
||||
#else
|
||||
format(g_saveFile,63,"%s/weaprest.ini",configsDir)
|
||||
format(g_saveFile, 63, "%s/weaprest.ini", configsDir)
|
||||
#endif
|
||||
loadSettings(g_saveFile)
|
||||
}
|
||||
|
@ -38,46 +38,60 @@
|
||||
new g_pingSum[33]
|
||||
new g_pingCount[33]
|
||||
|
||||
public plugin_init() {
|
||||
register_plugin("CS Stats Logging",AMXX_VERSION_STR,"AMXX Dev Team")
|
||||
public plugin_init()
|
||||
{
|
||||
register_plugin("CS Stats Logging", AMXX_VERSION_STR, "AMXX Dev Team")
|
||||
}
|
||||
|
||||
public client_disconnect(id) {
|
||||
if ( is_user_bot(id) ) {
|
||||
public client_disconnect(id)
|
||||
{
|
||||
if (is_user_bot(id))
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
remove_task(id)
|
||||
new szTeam[16],szName[32],szAuthid[32], iStats[8], iHits[8], szWeapon[24]
|
||||
new iUserid = get_user_userid( id )
|
||||
get_user_team(id, szTeam, 15 )
|
||||
get_user_name(id, szName ,31 )
|
||||
get_user_authid(id, szAuthid , 31 )
|
||||
for (new i = 1 ; i < 31 ; ++i ) {
|
||||
if ( get_user_wstats( id , i ,iStats , iHits ) ) {
|
||||
xmod_get_wpnname( i , szWeapon , 23 )
|
||||
|
||||
new szTeam[16], szName[32], szAuthid[32], iStats[8], iHits[8], szWeapon[24]
|
||||
new iUserid = get_user_userid(id)
|
||||
|
||||
get_user_team(id, szTeam, 15)
|
||||
get_user_name(id, szName, 31)
|
||||
get_user_authid(id, szAuthid, 31)
|
||||
|
||||
for (new i = 1 ; i < 31 ; ++i)
|
||||
{
|
||||
if (get_user_wstats(id, i, iStats, iHits))
|
||||
{
|
||||
xmod_get_wpnname(i, szWeapon, 23)
|
||||
|
||||
log_message("^"%s<%d><%s><%s>^" triggered ^"weaponstats^" (weapon ^"%s^") (shots ^"%d^") (hits ^"%d^") (kills ^"%d^") (headshots ^"%d^") (tks ^"%d^") (damage ^"%d^") (deaths ^"%d^")",
|
||||
szName,iUserid,szAuthid,szTeam,szWeapon,iStats[4],iStats[5],iStats[0], iStats[2],iStats[3],iStats[6],iStats[1])
|
||||
szName, iUserid, szAuthid, szTeam, szWeapon, iStats[4], iStats[5], iStats[0], iStats[2], iStats[3], iStats[6], iStats[1])
|
||||
log_message("^"%s<%d><%s><%s>^" triggered ^"weaponstats2^" (weapon ^"%s^") (head ^"%d^") (chest ^"%d^") (stomach ^"%d^") (leftarm ^"%d^") (rightarm ^"%d^") (leftleg ^"%d^") (rightleg ^"%d^")",
|
||||
szName,iUserid,szAuthid,szTeam,szWeapon,iHits[1],iHits[2],iHits[3], iHits[4],iHits[5],iHits[6],iHits[7])
|
||||
szName, iUserid, szAuthid, szTeam, szWeapon, iHits[1], iHits[2], iHits[3], iHits[4], iHits[5], iHits[6], iHits[7])
|
||||
}
|
||||
}
|
||||
new iTime = get_user_time(id,1)
|
||||
log_message("^"%s<%d><%s><%s>^" triggered ^"time^" (time ^"%d:%02d^")",
|
||||
szName,iUserid,szAuthid,szTeam, (iTime / 60), (iTime % 60) )
|
||||
log_message("^"%s<%d><%s><%s>^" triggered ^"latency^" (ping ^"%d^")",
|
||||
szName,iUserid,szAuthid,szTeam, (g_pingSum[id] / ( g_pingCount[id] ? g_pingCount[id] : 1 ) ) )
|
||||
|
||||
new iTime = get_user_time(id, 1)
|
||||
|
||||
log_message("^"%s<%d><%s><%s>^" triggered ^"time^" (time ^"%d:%02d^")", szName, iUserid, szAuthid, szTeam, (iTime / 60), (iTime % 60))
|
||||
log_message("^"%s<%d><%s><%s>^" triggered ^"latency^" (ping ^"%d^")", szName, iUserid, szAuthid, szTeam, (g_pingSum[id] / (g_pingCount[id] ? g_pingCount[id] : 1)))
|
||||
}
|
||||
|
||||
public client_putinserver(id) {
|
||||
if ( !is_user_bot(id) ) {
|
||||
g_pingSum[ id ] = g_pingCount[ id ] = 0
|
||||
set_task( 19.5 , "getPing" , id , "" , 0 , "b" )
|
||||
public client_putinserver(id)
|
||||
{
|
||||
if (!is_user_bot(id))
|
||||
{
|
||||
g_pingSum[id] = g_pingCount[id] = 0
|
||||
set_task(19.5, "getPing", id, "", 0, "b")
|
||||
}
|
||||
}
|
||||
|
||||
public getPing(id) {
|
||||
public getPing(id)
|
||||
{
|
||||
new iPing, iLoss
|
||||
get_user_ping( id , iPing, iLoss)
|
||||
g_pingSum[ id ] += iPing
|
||||
++g_pingCount[ id ]
|
||||
|
||||
get_user_ping(id, iPing, iLoss)
|
||||
g_pingSum[id] += iPing
|
||||
++g_pingCount[id]
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user