pour cela il y a l'antirox mais jai essayer de le modifier macleod mais je voudrais que tu me dise ou je merde lol je pensse que sa doit etre au niveau du lacher darme je n'arrive poas a trop bien comprend et je n'arrive pas a faire marcher les mp5 enfin il beug au niveau de la compile
PHP Code:
#include <amxmodx>
#include <fakemeta>
new const MTL_VERSION[] = "1.1.1"
#define MAX_PLAYERS 32
#define OFFSET_TEAM 114
#define OFFSET_CSDEATHS 444
#define OFFSET_USP_AMMO 382
#define OFFSET_GLOCK_AMMO 386
#define NODROP_BITSUM ((1<<CSW_HEGRENADE) | (1<<CSW_SMOKEGRENADE) | (1<<CSW_FLASHBANG) | (1<<CSW_KNIFE) | (1<<CSW_C4))
#define GUNS_BITSUM ((1<<CSW_M3) | (1<<CSW_XM1014) | (1<<CSW_MAC10) | (1<<CSW_MP5) | (1<<CSW_UMP45) | (1<<CSW_P90) | (1<<CSW_USP) | (1<<CSW_GLOCK18) | (1<<CSW_ELITE) | (1<<CSW_FIVESEVEN) | (1<<CSW_DEAGLE) | (1<<CSW_P228))
#define USP_GLOCK_BITSUM ((1<<CSW_USP) | (1<<CSW_GLOCK18))
#define OTHER_GUNS_NUM 10
new const g_iGunsIdsList[OTHER_GUNS_NUM] = { CSW_M3 , CSW_XM1014 , CSW_MAC10 , CSW_MP5 , CSW_UMP45 , CSW_P90 , CSW_DEAGLE , CSW_P228 , CSW_ELITE , CSW_FIVESEVEN }
new const g_szGunsList[OTHER_GUNS_NUM][10] = { "m3" , "xm1014" , "mac10" , "mp5" , "ump45" , "p90" , "deagle" , "p228" , "elite" , "fiveseven" }
new g_iIsLimited[MAX_PLAYERS+1]
new bool:g_RestartAttempt[MAX_PLAYERS+1]
new bool:g_bWasAlive[MAX_PLAYERS+1]
new g_iPlanterId
new g_pcvarMtlActive, g_pcvarMtlEcart, g_pcvarMtlEcart2, g_pcvarMtlBombfrags
new g_iEcarts, g_iEcarts2
public plugin_init() {
register_plugin("mT Limiter", MTL_VERSION, "Iznogood/ConnorMcLeod")
register_dictionary("mtl.txt")
register_cvar("mTl", MTL_VERSION, FCVAR_SERVER|FCVAR_SPONLY) // mTl tracker
g_pcvarMtlEcart = register_cvar("mtl_ecart", "5")
g_pcvarMtlEcart2 = register_cvar("mtl_ecart2", "10")
g_pcvarMtlActive = register_cvar("mtl_active", "1" )
g_pcvarMtlBombfrags = register_cvar("mtl_bombfrags", "0")
register_event("TextMsg", "eRestartAttempt", "a", "2=#Game_will_restart_in")
register_event("ResetHUD", "eResetHUD", "be")
register_event("CurWeapon", "eCurWeapon", "be", "1=1")
register_logevent("ePlanted_The_Bomb", 3, "2=Planted_The_Bomb")
register_event("23", "eBomb_Explosed", "a", "1=17", "6=-105", "7=17")
register_logevent("eDefused_The_Bomb", 3, "2=Defused_The_Bomb")
register_event("DeathMsg", "eDeathMsg", "a")
register_logevent("eRoundStart", 2, "1=Round_Start")
register_clcmd("say /mtl", "help_mtl", 0, ": affiche l'aide du plugin mTL")
register_clcmd("/mtl", "help_mtl", 0, ": affiche l'aide du plugin mTL")
register_clcmd("fullupdate", "fullupdateCmd")
}
public plugin_cfg() {
g_iEcarts = get_pcvar_num(g_pcvarMtlEcart)
g_iEcarts2 = get_pcvar_num(g_pcvarMtlEcart2)
}
public client_putinserver(id) {
g_iIsLimited[id] = 0
g_bWasAlive[id] = false
}
public fullupdateCmd() {
return PLUGIN_HANDLED_MAIN
}
public eRestartAttempt() {
new players[MAX_PLAYERS], num
get_players(players, num, "a")
for (new i; i < num; ++i)
g_RestartAttempt[players[i]] = true
}
public eRoundStart() {
if(!get_pcvar_num( g_pcvarMtlActive ))
return
g_iPlanterId = 0
g_iEcarts = get_pcvar_num(g_pcvarMtlEcart)
g_iEcarts2 = get_pcvar_num(g_pcvarMtlEcart2)
if(!random(4)) {
set_hudmessage(85, 95, 255, -1.0, 0.10, 1, 1.0, 7.0, 0.1, 0.2, -1)
show_hudmessage(0, "%L", LANG_PLAYER, "MTL_ADV", MTL_VERSION)
}
}
public eResetHUD(id) {
if (g_RestartAttempt[id]) {
g_RestartAttempt[id] = false
return
}
event_player_spawn(id)
}
event_player_spawn(id) {
if( !get_pcvar_num( g_pcvarMtlActive ) )
return
if( is_user_bot( id ) )
return
new Float:frags
pev(id, pev_frags, frags)
new diff = floatround(frags) - get_pdata_int(id, OFFSET_CSDEATHS)
if( diff >= g_iEcarts2 )
g_iIsLimited[id] = 2
else if( diff >= g_iEcarts )
g_iIsLimited[id] = 1
else {
g_iIsLimited[id] = 0
if(!g_bWasAlive[id])
g_bWasAlive[id] = true
return
}
static const szKnife[] = "weapon_knife"
client_cmd(id, szKnife)
set_hudmessage(85, 95, 255, -1.0, 0.4, 1, 1.0, 7.0, 0.1, 0.2, -1)
if( g_iIsLimited[id] == 1 )
show_hudmessage(id, "%L", id, "MTL_LIM1", g_iEcarts )
else
{
show_hudmessage(id, "%L", id, "MTL_LIM2", g_iEcarts2 )
if( g_bWasAlive[id] )
{
new weapons = pev(id, pev_weapons)
if( !(weapons & (1<<CSW_USP)) && !(weapons & (1<<CSW_GLOCK18)) )
{
for(new i; i<OTHER_GUNS_NUM; i++)
{
if( weapons & (1<<g_iGunsIdsList[i]) )
{
client_cmd(id, "drop weapon_%s", g_szGunsList[i])
break
}
}
set_task(0.2, "give_user_gun", id)
}
}
}
if(!g_bWasAlive[id])
g_bWasAlive[id] = true
}
public eDeathMsg() {
g_bWasAlive[read_data(2)] = false
}
public give_user_gun(id) {
new team = get_pdata_int(id, OFFSET_TEAM)
switch(team)
{
case 1:
{
static const szGlock18Name[] = "weapon_glock18"
if( fmGiveItem(id, szGlock18Name) > 0 )
{
if( get_pdata_int(id, OFFSET_GLOCK_AMMO) < 40 )
{
set_pdata_int(id, OFFSET_GLOCK_AMMO, 40)
}
}
}
case 2:
{
static const szUspName[] = "weapon_usp"
if( fmGiveItem(id, szUspName) > 0 )
{
if( get_pdata_int(id, OFFSET_USP_AMMO) < 24 )
{
set_pdata_int(id, OFFSET_USP_AMMO, 24)
}
}
}
}
}
fmGiveItem(index, const item[]) {
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
if (!pev_valid(ent))
return 0
new Float:origin[3]
pev(index, pev_origin, origin)
set_pev(ent, pev_origin, origin)
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, ent)
new save = pev(ent, pev_solid)
dllfunc(DLLFunc_Touch, ent, index)
if (pev(ent, pev_solid) != save)
return ent
engfunc(EngFunc_RemoveEntity, ent)
return -1
}
public eCurWeapon(id) {
if(!get_pcvar_num(g_pcvarMtlActive))
return
if(!g_iIsLimited[id])
return
if(is_user_bot(id ))
return
if( !( ( (g_iIsLimited[id]==1 ? GUNS_BITSUM : USP_GLOCK_BITSUM) | NODROP_BITSUM ) & (1<<read_data(2)) ) )
{
static const szDropCmd[] = "drop"
client_cmd( id, szDropCmd)
}
}
public ePlanted_The_Bomb() {
new loguser[80], name[32]
read_logargv(0, loguser, 79)
parse_loguser(loguser, name, 31)
g_iPlanterId = get_user_index(name)
}
public eDefused_The_Bomb() {
if( !get_pcvar_num( g_pcvarMtlActive ) )
return
new Float:fFragsToGive = get_pcvar_float(g_pcvarMtlBombfrags) - 3.0
if( !fFragsToGive )
return
new loguser[80], name[32]
read_logargv(0, loguser, 79)
parse_loguser(loguser, name, 31)
new iDefuser = get_user_index(name)
new Float:fFrags
pev(iDefuser, pev_frags, fFrags)
set_pev(iDefuser, pev_frags, fFragsToGive + fFrags)
}
public eBomb_Explosed() {
if( !get_pcvar_num( g_pcvarMtlActive ) )
return
if(!g_iPlanterId || !is_user_connected(g_iPlanterId))
return
new Float:fFragsToGive = get_pcvar_float(g_pcvarMtlBombfrags) - 3.0
if( !fFragsToGive )
return
new Float:fFrags
pev(g_iPlanterId, pev_frags, fFrags)
set_pev(g_iPlanterId, pev_frags, fFragsToGive + fFrags)
}
public help_mtl(id) {
if (get_pcvar_num( g_pcvarMtlActive ) != 1)
return
new len = 1200
static buffer[1201]
new title[32]
new n = 0
n += formatex(buffer[n], len-n, "<html><head><STYLE type=^"text/css^">")
n += formatex(buffer[n], len-n, "BODY{font-family: ^"Times New Roman^", Arial;background: black; color: white}")
n += formatex(buffer[n], len-n, "A:link { color: white }A:visited { color: white }A:active { color: white }</STYLE></head>")
n += formatex(buffer[n], len-n, "<body><font face=Tahoma size=2pt><h1><font color=red>mT Limiter</font></h1><br>")
n += formatex(buffer[n], len-n, "%L <b><font color=orange>%d</font></b><br>", id, "MTL_MOTD1", g_iEcarts)
n += formatex(buffer[n], len-n, "%L<br><br>", id, "MTL_MOTD2")
n += formatex(buffer[n], len-n, "%L <b><font color=red>%d</font></b><br>", id, "MTL_MOTD1", g_iEcarts2)
n += formatex(buffer[n], len-n, "%L<br><br>", id, "MTL_MOTD4")
n += formatex(buffer[n], len-n, "<br><br><i>%L</i></body></html>", id, "MTL_MOTD5", MTL_VERSION)
formatex(title, 31, "%L", id, "MTL_MOTD6")
show_motd(id, buffer, title)