Still having alot of problems.
Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <nvault>
#include <sqlvault_ex>
#include <colorchat>
#include <dhudmessage>
#define is_valid_player(%1) (1 <= %1 <= 32)
#define ADMIN_CREATE ADMIN_RESERVATION
/*============================================================
Variables
============================================================*/
new
OnOff,
OnOff2,
precio1,
precio2,
precio3,
precio4,
precio5,
precio6,
precio7,
precioC1,
precioC2,
precioC3,
precioC4,
CTDefaultDano,
TDefaultDano,
PaloDano,
HachaDano,
MacheteDano,
MotocierraDano,
hTDefaultDano,
hCTDefaultDano,
hPaloDano,
hHachaDano,
hMacheteDano,
Vida,
Armor,
glock1,
glock2,
help,
g_killjp,
g_killhsjp,
g_maxjp,
g_iMsgSayText,
syncObj,
Ronda[33],
Speed[33],
Speed2[33],
TCuchillo[33],
CTCuchillo[33],
Destapador[33],
Hacha[33],
Machete[33],
Motocierra[33],
g_jbpacks[33],
quitar[33],
regalar[33],
gidPlayer[33]
new gSteamID[32], vKey[64], vData[64], gVault
new const g_szVersion[ ] = "1.1.2";
/*============================================================
Weapon Model's
============================================================*/
new VIEW_MODELT[] = "models/[EyL]Jailbreak/Punos/Punos.mdl"
new PLAYER_MODELT[] = "models/[EyL]Jailbreak/Punos/Punos2.mdl"
new VIEW_MODELCT[] = "models/[EyL]Jailbreak/Electro/Electro.mdl"
new PLAYER_MODELCT[] = "models/[EyL]Jailbreak/Electro/Electro2.mdl"
new VIEW_Hacha[] = "models/[EyL]Jailbreak/Hacha/Hacha.mdl"
new PLAYER_Hacha[] = "models/[EyL]Jailbreak/Hacha/Hacha2.mdl"
new VIEW_Machete[] = "models/[EyL]Jailbreak/Machete/Machete.mdl"
new PLAYER_Machete[] = "models/[EyL]Jailbreak/Machete/Machete2.mdl"
new VIEW_Palo[] = "models/[EyL]Jailbreak/Palo/Palo.mdl"
new PLAYER_Palo[] = "models/[EyL]Jailbreak/Palo/Palo2.mdl"
new VIEW_Moto[] = "models/[EyL]Jailbreak/Moto/Moto.mdl"
new PLAYER_Moto[] = "models/[EyL]Jailbreak/Moto/Moto2.mdl"
new WORLD_MODEL[] = "models/w_knife.mdl"
new OLDWORLD_MODEL[] = "models/w_knife.mdl"
/*============================================================
Shop Sounds!
============================================================*/
new const Si[] = { "[EyL]Jailbreak/Yes.wav" }
new const No[] = { "[EyL]Jailbreak/No.wav" }
/*============================================================
Weapon Sound's
============================================================*/
new const palo_deploy[] = { "weapons/knife_deploy1.wav" }
new const palo_slash1[] = { "weapons/knife_slash1.wav" }
new const palo_slash2[] = { "weapons/knife_slash2.wav" }
new const palo_wall[] = { "[EyL]Jailbreak/Palo/PHitWall.wav" }
new const palo_hit1[] = { "[EyL]Jailbreak/Palo/PHit1.wav" }
new const palo_hit2[] = { "[EyL]Jailbreak/Palo/PHit2.wav" }
new const palo_hit3[] = { "[EyL]Jailbreak/Palo/PHit3.wav" }
new const palo_hit4[] = { "[EyL]Jailbreak/Palo/PHit4.wav" }
new const palo_stab[] = { "[EyL]Jailbreak/Palo/PStab.wav" }
new const hacha_deploy[] = { "weapons/knife_deploy1.wav" }
new const hacha_slash1[] = { "[EyL]Jailbreak/Hacha/HSlash1.wav" }
new const hacha_slash2[] = { "[EyL]Jailbreak/Hacha/HSlash2.wav" }
new const hacha_wall[] = { "[EyL]Jailbreak/Hacha/HHitWall.wav" }
new const hacha_hit1[] = { "[EyL]Jailbreak/Hacha/HHit1.wav" }
new const hacha_hit2[] = { "[EyL]Jailbreak/Hacha/HHit2.wav" }
new const hacha_hit3[] = { "[EyL]Jailbreak/Hacha/HHit3.wav" }
new const hacha_stab[] = { "[EyL]Jailbreak/Hacha/HHit4.wav" }
new const machete_deploy[] = { "[EyL]Jailbreak/Machete/MConvoca.wav" }
new const machete_slash1[] = { "[EyL]Jailbreak/Machete/MSlash1.wav" }
new const machete_slash2[] = { "[EyL]Jailbreak/Machete/MSlash2.wav" }
new const machete_wall[] = { "[EyL]Jailbreak/Machete/MHitWall.wav" }
new const machete_hit1[] = { "[EyL]Jailbreak/Machete/MHit1.wav" }
new const machete_hit2[] = { "[EyL]Jailbreak/Machete/MHit2.wav" }
new const machete_hit3[] = { "[EyL]Jailbreak/Machete/MHit3.wav" }
new const machete_hit4[] = { "[EyL]Jailbreak/Machete/MHit4.wav" }
new const machete_stab[] = { "[EyL]Jailbreak/Machete/MStab.wav" }
new const motocierra_deploy[] = { "[EyL]Jailbreak/Moto/MTConvoca.wav", }
new const motocierra_slash[] = { "[EyL]Jailbreak/Moto/MTSlash.wav", }
new const motocierra_wall[] = { "[EyL]Jailbreak/Moto/MTHitWall.wav" }
new const motocierra_hit1[] = { "[EyL]Jailbreak/Moto/MTHit1.wav", }
new const motocierra_hit2[] = { "[EyL]Jailbreak/Moto/MTHit2.wav", }
new const motocierra_stab[] = { "[EyL]Jailbreak/Moto/MTStab.wav" }
new const t_deploy[] = { "[EyL]Jailbreak/T/TConvoca.wav", }
new const t_slash1[] = { "[EyL]Jailbreak/T/Slash1.wav", }
new const t_slash2[] = { "[EyL]Jailbreak/T/Slash2.wav", }
new const t_wall[] = { "[EyL]Jailbreak/T/THitWall.wav" }
new const t_hit1[] = { "[EyL]Jailbreak/T/THit1.wav", }
new const t_hit2[] = { "[EyL]Jailbreak/T/THit2.wav", }
new const t_hit3[] = { "[EyL]Jailbreak/T/THit3.wav", }
new const t_hit4[] = { "[EyL]Jailbreak/T/THit4.wav", }
new const t_stab[] = { "[EyL]Jailbreak/T/TStab.wav" }
new const ct_deploy[] = { "[EyL]Jailbreak/CT/CTConvoca.wav", }
new const ct_slash1[] = { "[EyL]Jailbreak/CT/Slash1.wav", }
new const ct_slash2[] = { "[EyL]Jailbreak/CT/Slash2.wav", }
new const ct_wall[] = { "[EyL]Jailbreak/CT/CTHitWall.wav" }
new const ct_hit1[] = { "[EyL]Jailbreak/CT/CTHit1.wav", }
new const ct_hit2[] = { "[EyL]Jailbreak/CT/CTHit2.wav", }
new const ct_hit3[] = { "[EyL]Jailbreak/CT/CTHit3.wav", }
new const ct_hit4[] = { "[EyL]Jailbreak/CT/CTHit4.wav", }
new const ct_stab[] = { "[EyL]Jailbreak/CT/CTStab.wav" }
enum _:GangInfo
{
Trie:GangMembers,
GangName[ 64 ],
GangHP,
GangStealing,
GangGravity,
GangDamage,
GangStamina,
GangWeaponDrop,
GangKills,
NumMembers
};
enum
{
VALUE_HP,
VALUE_STEALING,
VALUE_GRAVITY,
VALUE_DAMAGE,
VALUE_STAMINA,
VALUE_WEAPONDROP,
VALUE_KILLS
}
enum
{
STATUS_NONE,
STATUS_MEMBER,
STATUS_ADMIN,
STATUS_LEADER
};
new const g_szGangValues[ ][ ] =
{
"HP",
"Stealing",
"Gravity",
"Damage",
"Stamina",
"WeaponDrop",
"Kills"
};
new const g_szPrefix[ ] = "^04[ AreYouSerious ]^01";
/* Tries */
new Trie:g_tGangNames;
new Trie:g_tGangValues;
/* Vault */
new SQLVault:g_hVault;
new SQLVault:g_hPointsVault;
/* Arrays */
new Array:g_aGangs;
/* Pcvars */
new g_pCreateCost;
new g_pStaminaCost;
new g_pHealthMax;
new g_pStealingMax;
new g_pGravityMax;
new g_pDamageMax;
new g_pStaminaMax;
new g_pWeaponDropMax;
new g_pHealthPerLevel;
new g_pStealingPerLevel;
new g_pGravityPerLevel;
new g_pDamagePerLevel;
new g_pStaminaPerLevel;
new g_pWeaponDropPerLevel;
new g_pPointsPerKill;
new g_pHeadshotBonus;
new g_pMaxMembers;
new g_pAdminCreate;
/* Integers */
new g_iGang[ 33 ];
new g_iPoints[ 33 ];
new SzMaxPlayers, SzSayText
/*============================================================
Config
============================================================*/
public plugin_init()
{
register_plugin("Loja e Gang", "1.0", "AreYouSerious")
register_clcmd("say /loja", "Tienda")
register_clcmd("say !loja", "Tienda")
register_clcmd("say /facas", "Tienda1")
register_clcmd("say !facas", "Tienda1")
register_logevent("Tienda1",2, "1=Round_Start")
register_clcmd("darpacks", "duel_menu", ADMIN_ALL)
register_clcmd("JbPacks", "player")
RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1)
RegisterHam(Ham_TakeDamage, "player", "FwdTakeDamage", 0)
RegisterHam(Ham_Killed, "player", "fw_player_killed")
register_event("CurWeapon", "Event_Change_Weapon", "be", "1=1")
register_forward(FM_SetModel, "fw_SetModel")
register_forward(FM_EmitSound, "Fwd_EmitSound")
/*============================================================
Cvar's
============================================================*/
g_killjp = register_cvar("jb_killJP", "3");
g_killhsjp = register_cvar("jb_bonushsJP", "2");
g_maxjp = register_cvar("jb_maxgiveJP", "10000");
OnOff = register_cvar("jb_Shop", "1")//1(ON) 0(OFF)
OnOff2 = register_cvar("jb_ShopKnifes", "1")//1(ON) 0(OFF)
help = register_cvar("jb_help", "1")//1(ON) 0(OFF)
precio1 = register_cvar("jb_pFlash", "8")
precio2 = register_cvar("jb_pHe", "11")
precio3 = register_cvar("jb_pHEFL", "22")
precio4 = register_cvar("jb_pWalk", "25")
precio5 = register_cvar("jb_pFast", "28")
precio6 = register_cvar("jb_pDrugs", "30")
precio7 = register_cvar("jb_pGlock", "36")
precioC1 = register_cvar("jb_pKnife1", "0")
precioC2 = register_cvar("jb_pKnife2", "20")
precioC3 = register_cvar("jb_pKnife3", "25")
precioC4 = register_cvar("jb_pKnife4", "36")
TDefaultDano = register_cvar("jb_dKnifeT", "20")
CTDefaultDano = register_cvar("jb_dKnifeCT", "50")
PaloDano = register_cvar("jb_dKnife1", "30")
HachaDano = register_cvar("jb_dKnife2", "60")
MacheteDano = register_cvar("jb_dKnife3", "80")
MotocierraDano = register_cvar("jb_dKnife4", "100")
hTDefaultDano = register_cvar("jb_dHsKnifeT", "30")
hCTDefaultDano = register_cvar("jb_dHsKnifeCT", "80")
hPaloDano = register_cvar("jb_dhsKnife1", "45")
hHachaDano = register_cvar("jb_dhsKnife2", "75")
hMacheteDano = register_cvar("jb_dhsKnife3", "95")
Vida = register_cvar("jb_drLife", "200")
Armor = register_cvar("jb_drArmor", "200")
glock1 = register_cvar("jb_gClip", "20")
glock2 = register_cvar("jb_gAmmo", "0")
g_iMsgSayText = get_user_msgid("SayText")
syncObj = CreateHudSyncObj()
g_aGangs = ArrayCreate( GangInfo );
g_tGangValues = TrieCreate();
g_tGangNames = TrieCreate();
g_hVault = sqlv_open_local( "jb_gangs", false );
sqlv_init_ex( g_hVault );
g_hPointsVault = sqlv_open_local( "jb_points", true );
g_pCreateCost = register_cvar( "jb_gang_cost", "1000000000" );
g_pStaminaCost = register_cvar( "jb_stamina_cost", "20" );
g_pHealthMax = register_cvar( "jb_health_max", "5" );
g_pStealingMax = register_cvar( "jb_stealing_max", "5" );
g_pGravityMax = register_cvar( "jb_gravity_max", "5" ); // Max * Gravity Per Level must be LESS than 800
g_pDamageMax = register_cvar( "jb_damage_max", "10" );
g_pStaminaMax = register_cvar( "jb_stamina_max", "10" );
g_pWeaponDropMax = register_cvar( "jb_weapondrop_max", "10" );
g_pHealthPerLevel = register_cvar( "jb_health_per", "10" );
g_pStealingPerLevel = register_cvar( "jb_stealing_per", "0.05" );
g_pGravityPerLevel = register_cvar( "jb_gravity_per", "10" );
g_pDamagePerLevel = register_cvar( "jb_damage_per", "3" );
g_pStaminaPerLevel = register_cvar( "jb_stamina_per", "3" );
g_pWeaponDropPerLevel = register_cvar( "jb_weapondrop_per", "1" );
g_pPointsPerKill = register_cvar( "jb_points_per_kill", "3" );
g_pHeadshotBonus = register_cvar( "jb_headshot_bonus", "2" );
g_pMaxMembers = register_cvar( "jb_max_members", "8" );
g_pAdminCreate = register_cvar( "jb_admin_create", "1" ); // Admins can create gangs without points
register_cvar( "jb_gang_version", g_szVersion, FCVAR_SPONLY | FCVAR_SERVER );
register_menu( "Gang Menu", 1023, "GangMenu_Handler" );
register_menu( "Skills Menu", 1023, "SkillsMenu_Handler" );
for( new i = 0; i < sizeof g_szGangValues; i++ )
{
TrieSetCell( g_tGangValues, g_szGangValues[ i ], i );
}
RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1 );
RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 );
RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Post", 1 );
RegisterHam( Ham_Item_PreFrame, "player", "Ham_PlayerResetSpeedPost", 1);
register_event( "DeathMsg", "Event_DeathMsg", "a" );
register_clcmd( "say /gang", "Cmd_Gang" );
register_clcmd( "gang_name", "Cmd_CreateGang" );
LoadGangs();
register_clcmd("say", "cmdSay")
register_clcmd("say_team", "cmdSayTeam")
SzMaxPlayers = get_maxplayers()
SzSayText = get_user_msgid ("SayText")
register_message(SzSayText, "MsgDuplicate")
/*============================================================
Multi Lengual!
============================================================*/
register_dictionary("JBShop.txt")
}
/*============================================================
Precaches
============================================================*/
public plugin_precache()
{
precache_sound(Si)
precache_sound(No)
precache_sound(t_deploy)
precache_sound(t_slash1)
precache_sound(t_slash2)
precache_sound(t_stab)
precache_sound(t_wall)
precache_sound(t_hit1)
precache_sound(t_hit2)
precache_sound(t_hit3)
precache_sound(t_hit4)
precache_sound(ct_deploy)
precache_sound(ct_slash1)
precache_sound(ct_slash2)
precache_sound(ct_stab)
precache_sound(ct_wall)
precache_sound(ct_hit1)
precache_sound(ct_hit2)
precache_sound(ct_hit3)
precache_sound(ct_hit4)
precache_sound(palo_deploy)
precache_sound(palo_slash1)
precache_sound(palo_slash2)
precache_sound(palo_stab)
precache_sound(palo_wall)
precache_sound(palo_hit1)
precache_sound(palo_hit2)
precache_sound(palo_hit3)
precache_sound(palo_hit4)
precache_sound(machete_deploy)
precache_sound(machete_slash1)
precache_sound(machete_slash2)
precache_sound(machete_stab)
precache_sound(machete_wall)
precache_sound(machete_hit1)
precache_sound(machete_hit2)
precache_sound(machete_hit3)
precache_sound(machete_hit4)
precache_sound(hacha_deploy)
precache_sound(hacha_slash1)
precache_sound(hacha_slash2)
precache_sound(hacha_stab)
precache_sound(hacha_wall)
precache_sound(hacha_hit1)
precache_sound(hacha_hit2)
precache_sound(hacha_hit3)
precache_sound(motocierra_deploy)
precache_sound(motocierra_slash)
precache_sound(motocierra_stab)
precache_sound(motocierra_wall)
precache_sound(motocierra_hit1)
precache_sound(motocierra_hit2)
precache_model(VIEW_MODELT)
precache_model(PLAYER_MODELT)
precache_model(VIEW_MODELCT)
precache_model(PLAYER_MODELCT)
precache_model(VIEW_Palo)
precache_model(PLAYER_Palo)
precache_model(VIEW_Hacha)
precache_model(PLAYER_Hacha)
precache_model(VIEW_Machete)
precache_model(PLAYER_Machete)
precache_model(VIEW_Moto)
precache_model(PLAYER_Moto)
precache_model(WORLD_MODEL)
return PLUGIN_CONTINUE
}
/*============================================================
KNIFE SHOP
============================================================*/
public Tienda1(id)
{
if(get_pcvar_num(OnOff2))
{
if (get_user_team(id) == 1)
{
if (get_user_flags(id) & ADMIN_RESERVATION)
{
static Item[64]
formatex(Item, charsmax(Item),"\r[ AreYouSerious ]^n\y %L", LANG_PLAYER, "SHOP")
new Menu = menu_create(Item, "CuchilleroHandler")
formatex(Item, charsmax(Item),"\w%L \r%d\y Packs",LANG_PLAYER, "KNIFE1", get_pcvar_num(precioC1))
menu_additem(Menu, Item, "1")
formatex(Item, charsmax(Item),"\w%L \r%d\y Packs",LANG_PLAYER, "KNIFE2", get_pcvar_num(precioC2))
menu_additem(Menu, Item, "2")
formatex(Item, charsmax(Item),"\w%L \r%d\y Packs",LANG_PLAYER, "KNIFE3", get_pcvar_num(precioC3))
menu_additem(Menu, Item, "3")
formatex(Item, charsmax(Item),"\w%L \r%d\y Packs",LANG_PLAYER, "KNIFE4", get_pcvar_num(precioC4))
menu_additem(Menu, Item, "4")
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu)
}
else
{
ColorChat( id, TEAM_COLOR, "%s Apenas ^x04VIP's ^x01podem usar o ^x03Menu das Facas^x01.")
}
}
}
return PLUGIN_HANDLED
}
public CuchilleroHandler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new vivo = is_user_alive(id)
new Obtener1 = get_pcvar_num(precioC1)
new Obtener2 = get_pcvar_num(precioC2)
new Obtener3 = get_pcvar_num(precioC3)
new Obtener4 = get_pcvar_num(precioC4)
new key = str_to_num(data);
switch(key)
{
case 1:
{
if (g_jbpacks[id]>= Obtener1 && vivo)
{
g_jbpacks[id] -= Obtener1
CTCuchillo[id] = 0
TCuchillo[id] = 0
Destapador[id] = 1
Hacha[id] = 0
Machete[id] = 0
Motocierra[id] = 0
ham_strip_weapon(id, "weapon_knife")
give_item(id, "weapon_knife")
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_KNIFE1")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
case 2:
{
if (g_jbpacks[id] >= Obtener2 && vivo)
{
g_jbpacks[id] -= Obtener2
CTCuchillo[id] = 0
TCuchillo[id] = 0
Destapador[id] = 0
Hacha[id] = 1
Machete[id] = 0
Motocierra[id] = 0
ham_strip_weapon(id, "weapon_knife")
give_item(id, "weapon_knife")
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_KNIFE2")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
case 3:
{
if (g_jbpacks[id] >= Obtener3 && vivo)
{
g_jbpacks[id] -= Obtener3
CTCuchillo[id] = 0
TCuchillo[id] = 0
Destapador[id] = 0
Hacha[id] = 0
Machete[id] = 1
Motocierra[id] = 0
ham_strip_weapon(id, "weapon_knife")
give_item(id, "weapon_knife")
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_KNIFE3")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
case 4:
{
if (g_jbpacks[id] >= Obtener4 && vivo)
{
g_jbpacks[id] -= Obtener4
CTCuchillo[id] = 0
TCuchillo[id] = 0
Destapador[id] = 0
Hacha[id] = 0
Machete[id] = 0
Motocierra[id] = 1
ham_strip_weapon(id, "weapon_knife")
give_item(id, "weapon_knife")
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_KNIFE4")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
/*============================================================
ITEM'S MENU
============================================================*/
public Tienda(id)
{
if(get_pcvar_num(OnOff))
{
if(get_pcvar_num(OnOff) && Ronda[id])
{
if(is_user_alive(id))
{
if (cs_get_user_team(id) == CS_TEAM_T )
{
new contador=0;
new players[32], num, tempid;
get_players(players, num)
for (new i=0; i<num; i++)
{
tempid = players[i]
if (get_user_team(tempid)==1 && is_user_alive(tempid))
{
contador++;
}
}
if ( contador == 1 )
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "LAST")
}
else if ( contador >= 2 )
{
static Item[64]
formatex(Item, charsmax(Item),"\r[ AreYouSerious ]^n\y %L", LANG_PLAYER, "SHOP1")
new Menu = menu_create(Item, "TiendaHandler")
formatex(Item, charsmax(Item),"\w%L \r%d \y Packs",LANG_PLAYER, "FLASH", get_pcvar_num(precio1))
menu_additem(Menu, Item, "1")
formatex(Item, charsmax(Item),"\w%L \r%d \y Packs",LANG_PLAYER, "HE", get_pcvar_num(precio2))
menu_additem(Menu, Item, "2")
formatex(Item, charsmax(Item),"\w%L \r%d \y Packs",LANG_PLAYER, "HEFLASH", get_pcvar_num(precio3))
menu_additem(Menu, Item, "3")
formatex(Item, charsmax(Item),"\w%L \r%d \y Packs",LANG_PLAYER, "FOOTSTEPS", get_pcvar_num(precio4))
menu_additem(Menu, Item, "4")
formatex(Item, charsmax(Item),"\w%L \r%d \y Packs",LANG_PLAYER, "SPEED", get_pcvar_num(precio5))
menu_additem(Menu, Item, "5")
formatex(Item, charsmax(Item),"\w%L \r%d \y Packs",LANG_PLAYER, "DRUGS", get_pcvar_num(precio6))
menu_additem(Menu, Item, "6")
formatex(Item, charsmax(Item),"\w%L \r%d \y Packs",LANG_PLAYER, "GLOCK", get_pcvar_num(precio7))
menu_additem(Menu, Item, "7")
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu)
}
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "ONLY")
}
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "DEAD")
}
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "ONE_TIME")
}
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "SHOP_OFF")
}
return PLUGIN_HANDLED
}
public TiendaHandler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new vivo = is_user_alive(id)
new gmsg_SetFOV = get_user_msgid("SetFOV")
new Obtener1 = get_pcvar_num(precio1)
new Obtener2 = get_pcvar_num(precio2)
new Obtener3 = get_pcvar_num(precio3)
new Obtener4 = get_pcvar_num(precio4)
new Obtener5 = get_pcvar_num(precio5)
new Obtener6 = get_pcvar_num(precio6)
new Obtener7 = get_pcvar_num(precio7)
new vida1 = get_user_health(id)
new vida2 = get_pcvar_num(Vida)
new armor1 = get_user_armor(id)
new armor2 = get_pcvar_num(Armor)
new key = str_to_num(data);
switch(key)
{
case 1:
{
if (g_jbpacks[id] >= Obtener1 && vivo)
{
g_jbpacks[id] -= Obtener1
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_FLASH")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
Ronda[id] = 0
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
case 2:
{
if (g_jbpacks[id] >= Obtener2 && vivo)
{
g_jbpacks[id] -= Obtener2
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_HE")
give_item(id, "weapon_hegrenade")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
Ronda[id] = 0
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
case 3:
{
if (g_jbpacks[id] >= Obtener3 && vivo)
{
g_jbpacks[id] -= Obtener3
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_HEFLASH")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_flashbang")
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
Ronda[id] = 0
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
case 4:
{
if (g_jbpacks[id] >= Obtener4 && vivo)
{
g_jbpacks[id] -= Obtener4
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_FOOTSTEPS")
set_user_footsteps(id, 1)
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
Ronda[id] = 0
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
case 5:
{
if (g_jbpacks[id] >= Obtener5 && vivo)
{
g_jbpacks[id] -= Obtener5
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_SPEED")
set_user_maxspeed(id, 500.0)
Speed[id] = 1
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
Ronda[id] = 0
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
case 6:
{
if (g_jbpacks[id] >= Obtener6 && vivo)
{
g_jbpacks[id] -= Obtener6
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_DRUGS")
set_user_armor(id, armor1 + armor2)
set_user_health(id, vida1 + vida2)
set_user_maxspeed(id, 380.0)
Speed2[id] = 1
message_begin( MSG_ONE, gmsg_SetFOV, { 0, 0, 0 }, id )
write_byte( 180 )
message_end( )
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
Ronda[id] = 0
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
case 7:
{
if (g_jbpacks[id] >= Obtener7 && vivo)
{
g_jbpacks[id] -= Obtener7
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "BUY_GLOCK")
cs_set_weapon_ammo( give_item( id, "weapon_glock18" ), get_pcvar_num(glock1))
cs_set_user_bpammo(id, CSW_GLOCK18, get_pcvar_num(glock2))
emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
Ronda[id] = 0
}
else
{
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "MONEY")
emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public client_putinserver(id)
{
set_task(1.0, "JailbreakPacks", id, _, _, "b")
load_packs(id)
g_iGang[ id ] = get_user_gang( id );
new szAuthID[ 35 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
g_iPoints[ id ] = sqlv_get_num( g_hPointsVault, szAuthID );
}
public client_disconnect(id)
{
save_packs(id)
g_iGang[ id ] = -1;
new szAuthID[ 35 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
sqlv_set_num( g_hPointsVault, szAuthID, g_iPoints[ id ] );
}
public JailbreakPacks(id)
{
new aData[GangInfo], NameOfGang[64]
set_dhudmessage(0, 170, 255, 0.6, 0.7, 0, 6.0, 12.0)
show_dhudmessage(0, syncObj,"Extremely Lethal^nJBPacks: %i^nGang: %s", g_jbpacks[id], NameOfGang)
}
public duel_menu(id)
{
if (!is_user_admin(id))
{
ColorChat(id, NORMAL, "%L", LANG_PLAYER, "CANT")
return PLUGIN_HANDLED
}
static opcion[64]
formatex(opcion, charsmax(opcion),"\y%L", LANG_PLAYER, "JBPACKS")
new iMenu = menu_create(opcion, "menu")
formatex(opcion, charsmax(opcion),"\w%L", LANG_PLAYER, "GIVE_JBPACKS")
menu_additem(iMenu, opcion, "1")
formatex(opcion, charsmax(opcion),"\w%L", LANG_PLAYER, "TAKE_JBPACKS")
menu_additem(iMenu, opcion, "2")
menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, iMenu, 0)
return PLUGIN_HANDLED
}
public menu(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
new Key = str_to_num(Data)
switch (Key)
{
case 1:
{
regalar[id] = 1
quitar[id] = 0
escojer(id)
}
case 2:
{
quitar[id] = 1
regalar[id] = 0
escojer(id)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public escojer(id)
{
static opcion[64]
formatex(opcion, charsmax(opcion),"\y%L", LANG_PLAYER, "CHOOSE")
new iMenu = menu_create(opcion, "choose")
new players[32], pnum, tempid
new szName[32], szTempid[10]
get_players(players, pnum, "a")
for( new i; i<pnum; i++ )
{
tempid = players[i]
get_user_name(tempid, szName, 31)
num_to_str(tempid, szTempid, 9)
formatex(opcion, charsmax(opcion), "\w%s \rJBPacks [%d]", szName, g_jbpacks[tempid])
menu_additem(iMenu, opcion, szTempid, 0)
}
menu_display(id, iMenu)
return PLUGIN_HANDLED
}
public choose(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
new tempid = str_to_num(Data)
gidPlayer[id] = tempid
client_cmd(id, "messagemode JbPacks")
menu_destroy(menu)
return PLUGIN_HANDLED
}
public player(id)
{
new say[300]
read_args(say, charsmax(say))
remove_quotes(say)
if(!is_str_num(say) || equal(say, ""))
return PLUGIN_HANDLED
jbpacks(id, say)
return PLUGIN_CONTINUE
}
jbpacks(id, say[]) {
new amount = str_to_num(say)
new victim = gidPlayer[id]
new vname[32]
if(victim > 0)
{
get_user_name(victim, vname, 31)
if(regalar[id])
{
if(amount > get_pcvar_num(g_maxjp))
{
g_jbpacks[victim] = get_pcvar_num(g_maxjp)
}
else
{
g_jbpacks[victim] = g_jbpacks[victim] + amount
}
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "GIVE_MSG", amount, vname)
}
if(quitar[id])
{
if(amount > g_jbpacks[victim])
{
g_jbpacks[victim] = 0
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "TAKE_ALL", vname)
}
else
{
g_jbpacks[victim] = g_jbpacks[victim] - amount
ColorChat( id, TEAM_COLOR, "%L", LANG_PLAYER, "TAKE_MSG", amount, vname)
}
}
}
return PLUGIN_HANDLED
}
public Fwd_PlayerSpawn_Post(id)
{
if (is_user_alive(id))
{
if(get_user_team(id) == 1) strip_user_weapons(id); give_item(id, "weapon_knife")
set_user_footsteps(id, 0)
Speed[id] = 0
Speed2[id] = 0
Ronda[id] = 1
CTCuchillo[id] = 0
TCuchillo[id] = 0
Destapador[id] = 0
Hacha[id] = 0
Machete[id] = 0
Motocierra[id] = 0
if(get_pcvar_num(help)) ColorChat(id, NORMAL, "%L", LANG_PLAYER, "HELP")
}
}
public FwdTakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
{
if (is_valid_player(attacker) && get_user_weapon(attacker) == CSW_KNIFE)
{
switch(get_user_team(attacker))
{
case 1:
{
if(TCuchillo[attacker])
{
SetHamParamFloat(4, get_pcvar_float(TDefaultDano))
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
SetHamParamFloat(4, get_pcvar_float(hTDefaultDano))
}
}
if(Destapador[attacker])
{
SetHamParamFloat(4, get_pcvar_float(PaloDano))
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
SetHamParamFloat(4, get_pcvar_float(hPaloDano))
}
}
if(Hacha[attacker])
{
SetHamParamFloat(4, get_pcvar_float(HachaDano))
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
SetHamParamFloat(4, get_pcvar_float(hHachaDano))
}
}
if(Machete[attacker])
{
SetHamParamFloat(4, get_pcvar_float(MacheteDano))
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
SetHamParamFloat(4, get_pcvar_float(hMacheteDano))
}
}
if(Motocierra[attacker])
{
SetHamParamFloat(4, get_pcvar_float(MotocierraDano))
}
}
case 2:
{
if(CTCuchillo[attacker])
{
SetHamParamFloat(4, get_pcvar_float(CTDefaultDano))
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
SetHamParamFloat(4, get_pcvar_float(hCTDefaultDano))
}
}
}
}
}
return HAM_HANDLED
}
public fw_player_killed(victim, attacker, shouldgib)
{
if(get_user_team(attacker) == 1)
{
g_jbpacks[attacker] += get_pcvar_num(g_killjp)
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
g_jbpacks[attacker] += get_pcvar_num(g_killhsjp)
}
}
}
public Event_Change_Weapon(id)
{
new weaponID = read_data(2)
switch (get_user_team(id))
{
case 1:
{
if(Speed[id])
{
set_user_maxspeed(id, 500.0)
}
if(Speed2[id])
{
set_user_maxspeed(id, 380.0)
}
if(weaponID == CSW_KNIFE && get_pcvar_num(OnOff2))
{
if(TCuchillo[id])
{
set_pev(id, pev_viewmodel2, VIEW_MODELT)
set_pev(id, pev_weaponmodel2, PLAYER_MODELT)
}
if(Destapador[id])
{
set_pev(id, pev_viewmodel2, VIEW_Palo)
set_pev(id, pev_weaponmodel2, PLAYER_Palo)
}
if(Hacha[id])
{
set_pev(id, pev_viewmodel2, VIEW_Hacha)
set_pev(id, pev_weaponmodel2, PLAYER_Hacha)
}
if(Machete[id])
{
set_pev(id, pev_viewmodel2, VIEW_Machete)
set_pev(id, pev_weaponmodel2, PLAYER_Machete)
}
if(Motocierra[id])
{
set_pev(id, pev_viewmodel2, VIEW_Moto)
set_pev(id, pev_weaponmodel2, PLAYER_Moto)
}
}
}
case 2:
{
if(CTCuchillo[id] && weaponID == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2, VIEW_MODELCT)
set_pev(id, pev_weaponmodel2, PLAYER_MODELCT)
}
}
}
return PLUGIN_CONTINUE
}
public fw_SetModel(entity, model[])
{
if(!pev_valid(entity))
return FMRES_IGNORED
if(!equali(model, OLDWORLD_MODEL))
return FMRES_IGNORED
new className[33]
pev(entity, pev_classname, className, 32)
if(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
{
engfunc(EngFunc_SetModel, entity, WORLD_MODEL)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public Fwd_EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
{
if (!is_user_connected(id))
return FMRES_IGNORED;
if(CTCuchillo[id])
{
if(get_user_team(id) == 2)
{
if (equal(sample[8], "kni", 3))
{
if (equal(sample[14], "sla", 3))
{
switch (random_num(1, 2))
{
case 1: engfunc(EngFunc_EmitSound, id, channel, ct_slash1, volume, attn, flags, pitch)
case 2: engfunc(EngFunc_EmitSound, id, channel, ct_slash2, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
if(equal(sample,"weapons/knife_deploy1.wav"))
{
engfunc(EngFunc_EmitSound, id, channel, ct_deploy, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
if (equal(sample[14], "hit", 3))
{
if (sample[17] == 'w')
{
engfunc(EngFunc_EmitSound, id, channel, ct_wall, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
else
{
switch (random_num(1, 4))
{
case 1: engfunc(EngFunc_EmitSound, id, channel, ct_hit1, volume, attn, flags, pitch)
case 2: engfunc(EngFunc_EmitSound, id, channel, ct_hit2, volume, attn, flags, pitch)
case 3: engfunc(EngFunc_EmitSound, id, channel, ct_hit3, volume, attn, flags, pitch)
case 4: engfunc(EngFunc_EmitSound, id, channel, ct_hit4, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
}
if (equal(sample[14], "sta", 3))
{
engfunc(EngFunc_EmitSound, id, channel, ct_stab, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
}
}
}
if(TCuchillo[id])
{
if(get_user_team(id) == 1)
{
if (equal(sample[8], "kni", 3))
{
if (equal(sample[14], "sla", 3))
{
switch (random_num(1, 2))
{
case 1: engfunc(EngFunc_EmitSound, id, channel, t_slash1, volume, attn, flags, pitch)
case 2: engfunc(EngFunc_EmitSound, id, channel, t_slash2, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
if(equal(sample,"weapons/knife_deploy1.wav"))
{
engfunc(EngFunc_EmitSound, id, channel, t_deploy, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
if (equal(sample[14], "hit", 3))
{
if (sample[17] == 'w')
{
engfunc(EngFunc_EmitSound, id, channel, t_wall, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
else
{
switch (random_num(1, 4))
{
case 1: engfunc(EngFunc_EmitSound, id, channel, t_hit1, volume, attn, flags, pitch)
case 2: engfunc(EngFunc_EmitSound, id, channel, t_hit2, volume, attn, flags, pitch)
case 3: engfunc(EngFunc_EmitSound, id, channel, t_hit3, volume, attn, flags, pitch)
case 4: engfunc(EngFunc_EmitSound, id, channel, t_hit4, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
}
if (equal(sample[14], "sta", 3))
{
engfunc(EngFunc_EmitSound, id, channel, t_stab, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
}
}
}
if(Destapador[id])
{
if (equal(sample[8], "kni", 3))
{
if (equal(sample[14], "sla", 3))
{
switch (random_num(1, 2))
{
case 1: engfunc(EngFunc_EmitSound, id, channel, palo_slash1, volume, attn, flags, pitch)
case 2: engfunc(EngFunc_EmitSound, id, channel, palo_slash2, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
if(equal(sample,"weapons/knife_deploy1.wav"))
{
engfunc(EngFunc_EmitSound, id, channel, palo_deploy, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
if (equal(sample[14], "hit", 3))
{
if (sample[17] == 'w')
{
engfunc(EngFunc_EmitSound, id, channel, palo_wall, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
else
{
switch (random_num(1, 4))
{
case 1:engfunc(EngFunc_EmitSound, id, channel, palo_hit1, volume, attn, flags, pitch)
case 2:engfunc(EngFunc_EmitSound, id, channel, palo_hit2, volume, attn, flags, pitch)
case 3:engfunc(EngFunc_EmitSound, id, channel, palo_hit3, volume, attn, flags, pitch)
case 4:engfunc(EngFunc_EmitSound, id, channel, palo_hit4, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
}
if (equal(sample[14], "sta", 3))
{
engfunc(EngFunc_EmitSound, id, channel, palo_stab, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
}
}
if(Hacha[id])
{
if (equal(sample[8], "kni", 3))
{
if (equal(sample[14], "sla", 3))
{
switch (random_num(1, 2))
{
case 1: engfunc(EngFunc_EmitSound, id, channel, hacha_slash1, volume, attn, flags, pitch)
case 2: engfunc(EngFunc_EmitSound, id, channel, hacha_slash2, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
if(equal(sample,"weapons/knife_deploy1.wav"))
{
engfunc(EngFunc_EmitSound, id, channel, hacha_deploy, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
if (equal(sample[14], "hit", 3))
{
if (sample[17] == 'w')
{
engfunc(EngFunc_EmitSound, id, channel, hacha_wall, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
else
{
switch (random_num(1, 3))
{
case 1: engfunc(EngFunc_EmitSound, id, channel, hacha_hit1, volume, attn, flags, pitch)
case 2: engfunc(EngFunc_EmitSound, id, channel, hacha_hit2, volume, attn, flags, pitch)
case 3: engfunc(EngFunc_EmitSound, id, channel, hacha_hit3, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
}
if (equal(sample[14], "sta", 3))
{
engfunc(EngFunc_EmitSound, id, channel, hacha_stab, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
}
}
if(Machete[id])
{
if (equal(sample[8], "kni", 3))
{
if (equal(sample[14], "sla", 3))
{
switch (random_num(1, 2))
{
case 1: engfunc(EngFunc_EmitSound, id, channel, machete_slash1, volume, attn, flags, pitch)
case 2: engfunc(EngFunc_EmitSound, id, channel, machete_slash2, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
if(equal(sample,"weapons/knife_deploy1.wav"))
{
engfunc(EngFunc_EmitSound, id, channel, machete_deploy, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
if (equal(sample[14], "hit", 3))
{
if (sample[17] == 'w')
{
engfunc(EngFunc_EmitSound, id, channel, machete_wall, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
else // hit
{
switch (random_num(1, 4))
{
case 1: engfunc(EngFunc_EmitSound, id, channel, machete_hit1, volume, attn, flags, pitch)
case 2: engfunc(EngFunc_EmitSound, id, channel, machete_hit2, volume, attn, flags, pitch)
case 3: engfunc(EngFunc_EmitSound, id, channel, machete_hit3, volume, attn, flags, pitch)
case 4: engfunc(EngFunc_EmitSound, id, channel, machete_hit4, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
}
if (equal(sample[14], "sta", 3))
{
engfunc(EngFunc_EmitSound, id, channel, machete_stab, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
}
}
if(Motocierra[id])
{
if (equal(sample[8], "kni", 3))
{
if (equal(sample[14], "sla", 3))
{
engfunc(EngFunc_EmitSound, id, channel, motocierra_slash, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
if(equal(sample,"weapons/knife_deploy1.wav"))
{
engfunc(EngFunc_EmitSound, id, channel, motocierra_deploy, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
if (equal(sample[14], "hit", 3))
{
if (sample[17] == 'w')
{
engfunc(EngFunc_EmitSound, id, channel, motocierra_wall, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
else
{
switch (random_num(1, 2))
{
case 1: engfunc(EngFunc_EmitSound, id, channel, motocierra_hit1, volume, attn, flags, pitch)
case 2: engfunc(EngFunc_EmitSound, id, channel, motocierra_hit2, volume, attn, flags, pitch)
}
return FMRES_SUPERCEDE;
}
}
if (equal(sample[14], "sta", 3))
{
engfunc(EngFunc_EmitSound, id, channel, motocierra_stab, volume, attn, flags, pitch)
return FMRES_SUPERCEDE;
}
}
}
return FMRES_IGNORED;
}
/*============================================================
Stocks!
============================================================*/
stock save_packs( index )
{
gVault = nvault_open( "JBShop" );
if( gVault == INVALID_HANDLE )
{
set_fail_state( "nValut ERROR: =-> Invalid-Handle" );
}
get_user_authid( index, gSteamID, charsmax( gSteamID ) );
formatex( vKey, charsmax( vKey ), "%s Packs", gSteamID );
formatex( vData, charsmax( vData ), "%d", g_jbpacks[ index ] );
nvault_set( gVault, vKey, vData );
nvault_close( gVault );
}
stock load_packs( index )
{
gVault = nvault_open( "JBShop" );
if( gVault == INVALID_HANDLE )
{
set_fail_state( "nValut ERROR: =-> Invalid-Handle" );
}
get_user_authid( index, gSteamID, charsmax( gSteamID ) );
formatex( vKey, charsmax( vKey ), "%s Packs", gSteamID );
g_jbpacks[ index ] = nvault_get( gVault, vKey );
nvault_close( gVault );
}
stock ham_strip_weapon(id,weapon[])
{
if(!equal(weapon,"weapon_",7)) return 0;
new wId = get_weaponid(weapon);
if(!wId) return 0;
new wEnt;
while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
if(!wEnt) return 0;
if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
ExecuteHamB(Ham_Item_Kill,wEnt);
set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
return 1;
}
public plugin_end()
{
SaveGangs();
sqlv_close( g_hVault );
}
public Ham_PlayerSpawn_Post( id )
{
if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
return HAM_IGNORED;
if( g_iGang[ id ] == -1 )
{
return HAM_IGNORED;
}
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
new iHealth = 100 + aData[ GangHP ] * get_pcvar_num( g_pHealthPerLevel );
set_user_health( id, iHealth );
new iGravity = 800 - ( get_pcvar_num( g_pGravityPerLevel ) * aData[ GangGravity ] );
set_user_gravity( id, float( iGravity ) / 800.0 );
return HAM_IGNORED;
}
public Ham_TakeDamage_Pre( iVictim, iInflictor, iAttacker, Float:flDamage, iBits )
{
if( !is_user_alive( iAttacker ) || cs_get_user_team( iAttacker ) != CS_TEAM_T )
return HAM_IGNORED;
if( g_iGang[ iAttacker ] == -1 )
return HAM_IGNORED;
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ iAttacker ], aData );
SetHamParamFloat( 4, flDamage + ( get_pcvar_num( g_pDamagePerLevel ) * ( aData[ GangDamage ] ) ) );
return HAM_IGNORED;
}
public Ham_TakeDamage_Post( iVictim, iInflictor, iAttacker, Float:flDamage, iBits )
{
if( !is_user_alive( iAttacker ) || g_iGang[ iAttacker ] == -1 || get_user_weapon( iAttacker ) != CSW_KNIFE || cs_get_user_team( iAttacker ) != CS_TEAM_T )
{
return HAM_IGNORED;
}
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ iAttacker ], aData );
new iChance = aData[ GangWeaponDrop ] * get_pcvar_num( g_pWeaponDropPerLevel );
if( iChance == 0 )
return HAM_IGNORED;
new bool:bDrop = ( random_num( 1, 100 ) <= iChance );
if( bDrop )
client_cmd( iVictim, "drop" );
return HAM_IGNORED;
}
public Ham_PlayerResetSpeedPost( id )
{
if( g_iGang[ id ] == -1 || !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
{
return HAM_IGNORED;
}
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
if( aData[ GangStamina ] > 0 && get_user_maxspeed( id ) > 1.0 )
set_user_maxspeed( id, 250.0 + ( aData[ GangStamina ] * get_pcvar_num( g_pStaminaPerLevel ) ) );
return HAM_IGNORED;
}
public Event_DeathMsg()
{
new iKiller = read_data( 1 );
new iVictim = read_data( 2 );
if( !is_user_alive( iKiller ) || cs_get_user_team( iVictim ) != CS_TEAM_CT || cs_get_user_team( iKiller ) != CS_TEAM_T )
return PLUGIN_CONTINUE;
new iTotal = get_pcvar_num( g_pPointsPerKill ) + ( bool:read_data( 3 ) ? get_pcvar_num( g_pHeadshotBonus ) : 0 );
if( g_iGang[ iKiller ] > -1 )
{
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ iKiller ], aData );
aData[ GangKills ]++;
ArraySetArray( g_aGangs, g_iGang[ iKiller ], aData );
iTotal += iTotal * ( aData[ GangStealing ] * get_pcvar_num( g_pStealingPerLevel ) );
}
g_iPoints[ iKiller ] += iTotal;
return PLUGIN_CONTINUE;
}
public Cmd_Gang( id )
{
if( !is_user_connected( id ) || cs_get_user_team( id ) != CS_TEAM_T )
{
ColorChat( id, TEAM_COLOR, "%s Apenas os ^04Prisioneiros ^01podem aceder ao ^04Menu Gangs", g_szPrefix );
return PLUGIN_HANDLED;
}
static szMenu[ 512 ], iLen, aData[ GangInfo ], iKeys, iStatus;
iKeys = MENU_KEY_0 | MENU_KEY_4;
iStatus = getStatus( id, g_iGang[ id ] );
if( g_iGang[ id ] > -1 )
{
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
iLen = formatex( szMenu, charsmax( szMenu ), "\r[ AreYouSerious ]^n\yMenu Gang^n\wGang Atual:\y %s^n", aData[ GangName ] );
}
else
{
iLen = formatex( szMenu, charsmax( szMenu ), "\r[ AreYouSerious ]^n\yMenu Gang^n\wGang Atual:\r Nenhum^n" );
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r1. \wCriar Gang \yVIP^n", get_pcvar_num( g_pCreateCost ) );
iKeys |= MENU_KEY_1;
}
if( iStatus > STATUS_MEMBER && g_iGang[ id ] > -1 && get_pcvar_num( g_pMaxMembers ) > aData[ NumMembers ] )
{
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r2. \wConvidar para Gang^n" );
iKeys |= MENU_KEY_2;
}
else
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r2. \dConvidar para Gang^n" );
if( g_iGang[ id ] > -1 )
{
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r3. \wTop 10^n" );
iKeys |= MENU_KEY_3;
}
if( g_iGang[ id ] > -1 )
{
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r4. \wSair do Gang^n" );
iKeys |= MENU_KEY_5;
}
else
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r4. \dSair do Gang^n" );
if( iStatus > STATUS_MEMBER )
{
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r5. \wAdministrar Gang^n" );
iKeys |= MENU_KEY_6;
}
else
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r5. \dAdministrar Gang^n" );
if( g_iGang[ id ] > -1 )
{
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r6. \wMembros Online^n" );
iKeys |= MENU_KEY_7;
}
else
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "\r6. \dMembros Online^n" );
iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "^n\r0. \wSair" );
show_menu( id, iKeys, szMenu, -1, "Gang Menu" );
return PLUGIN_CONTINUE;
}
public GangMenu_Handler( id, iKey )
{
switch( ( iKey + 1 ) % 10 )
{
case 0: return PLUGIN_HANDLED;
case 1:
{
if( get_pcvar_num( g_pAdminCreate ) && get_user_flags( id ) & ADMIN_CREATE )
{
client_cmd( id, "messagemode gang_name" );
}
else if( g_iPoints[ id ] < get_pcvar_num( g_pCreateCost ) )
{
ColorChat( id, TEAM_COLOR, "%s Apenas ^04VIPs ^03podem Criar ^04Gang, adquire VIP escrevendo no Chat: ^04/vip", g_szPrefix );
return PLUGIN_HANDLED;
}
else
client_cmd( id, "messagemode gang_name" );
}
case 2:
{
ShowInviteMenu( id );
}
case 3:
{
Cmd_Top10( id );
}
case 4:
{
ShowLeaveConfirmMenu( id );
}
case 5:
{
ShowLeaderMenu( id );
}
case 6:
{
ShowMembersMenu( id );
}
}
return PLUGIN_HANDLED;
}
public Cmd_CreateGang( id )
{
new bool:bAdmin = false;
if( get_pcvar_num( g_pAdminCreate ) && get_user_flags( id ) & ADMIN_CREATE )
{
bAdmin = true;
}
else if( g_iPoints[ id ] < get_pcvar_num( g_pCreateCost ) )
{
ColorChat( id, TEAM_COLOR, "%s Apenas ^04VIPs ^03Podem Criar ^04Gang, adquire VIP escrevendo no Chat: ^04/vip", g_szPrefix );
return PLUGIN_HANDLED;
}
else if( g_iGang[ id ] > -1 )
{
ColorChat( id, TEAM_COLOR, "%s Nao podes Criar um ^04Gang ^03se ja te Encontras Num!", g_szPrefix );
return PLUGIN_HANDLED;
}
else if( cs_get_user_team( id ) != CS_TEAM_T )
{
ColorChat( id, TEAM_COLOR, "%s Apenas ^03Prisioneiros ^01tem acesso ao ^3Menu de Gangs!", g_szPrefix );
return PLUGIN_HANDLED;
}
new szArgs[ 60 ];
read_args( szArgs, charsmax( szArgs ) );
remove_quotes( szArgs );
if( TrieKeyExists( g_tGangNames, szArgs ) )
{
ColorChat( id, TEAM_COLOR, "%s Ja existe um ^04Gang ^03com esse ^04Nome", g_szPrefix );
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
new aData[ GangInfo ];
aData[ GangName ] = szArgs;
aData[ GangHP ] = 0;
aData[ GangStealing ] = 0;
aData[ GangGravity ] = 0;
aData[ GangStamina ] = 0;
aData[ GangWeaponDrop ] = 0;
aData[ GangDamage ] = 0;
aData[ NumMembers ] = 0;
aData[ GangMembers ] = _:TrieCreate();
ArrayPushArray( g_aGangs, aData );
if( !bAdmin )
g_iPoints[ id ] -= get_pcvar_num( g_pCreateCost );
set_user_gang( id, ArraySize( g_aGangs ) - 1, STATUS_LEADER );
ColorChat( id, TEAM_COLOR, "%s Criaste Gang:^04 %s", g_szPrefix, szArgs );
return PLUGIN_HANDLED;
}
public ShowInviteMenu( id )
{
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new szInfo[ 6 ], hMenu;
hMenu = menu_create( "\r[ AreYouSerious ]^n\yConvida um Jogador", "InviteMenu_Handler" );
new szName[ 32 ];
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( iPlayer == id || g_iGang[ iPlayer ] == g_iGang[ id ] || cs_get_user_team( iPlayer ) != CS_TEAM_T )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szInfo, charsmax( szInfo ) );
menu_additem( hMenu, szName, szInfo );
}
menu_display( id, hMenu, 0 );
}
public InviteMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
new szData[ 6 ], iAccess, hCallback, szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, 31, hCallback );
new iPlayer = str_to_num( szData );
if( !is_user_connected( iPlayer ) )
return PLUGIN_HANDLED;
ShowInviteConfirmMenu( id, iPlayer );
ColorChat( id, TEAM_COLOR, "%s Convidaste o^04 %s ^03para se juntar ao teu ^04Gang", g_szPrefix, szName );
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
public ShowInviteConfirmMenu( id, iPlayer )
{
new szName[ 32 ];
get_user_name( id, szName, charsmax( szName ) );
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
new szMenuTitle[ 128 ];
formatex( szMenuTitle, charsmax( szMenuTitle ), "Foste Convidado para te Juntares ao Gang\r %s", aData[ GangName ] );
new hMenu = menu_create( szMenuTitle, "InviteConfirmMenu_Handler" );
new szInfo[ 6 ];
num_to_str( g_iGang[ id ], szInfo, 5 );
menu_additem( hMenu, "Aceitar", szInfo );
menu_additem( hMenu, "\rRecusar", "-1" );
menu_display( iPlayer, hMenu, 0 );
}
public InviteConfirmMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
return PLUGIN_HANDLED;
new szData[ 6 ], iAccess, hCallback;
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
new iGang = str_to_num( szData );
if( iGang == -1 )
return PLUGIN_HANDLED;
if( getStatus( id, g_iGang[ id ] ) == STATUS_LEADER )
{
ColorChat( id, TEAM_COLOR, "%s Nao podes Sair do ^04Gang ^03Enquanto es o ^04Lider.", g_szPrefix );
return PLUGIN_HANDLED;
}
set_user_gang( id, iGang );
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, iGang, aData );
ColorChat( id, TEAM_COLOR, "%s Juntaste-te ao Gang^04 %s^03.", g_szPrefix, aData[ GangName ] );
return PLUGIN_HANDLED;
}
public ShowSkillsMenu( id )
{
static szMenu[ 512 ], iLen, iKeys, aData[ GangInfo ];
if( !iKeys )
{
iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0;
}
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
iLen = formatex( szMenu, charsmax( szMenu ), "\ySkills Menu^n^n" );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r1. \wHealth Upgrade [\rCost: \y50 Euros\w] \y[Level:%i/%i]^n", aData[ GangHP ], get_pcvar_num( g_pHealthMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r2. \wStealing Upgrade [\rCost: \y50 Euros\w] \y[Level:%i/%i]^n", aData[ GangStealing ], get_pcvar_num( g_pStealingMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r3. \wGravity Upgrade [\rCost: \y50 Euros\w] \y[Level:%i/%i]^n", aData[ GangGravity ], get_pcvar_num( g_pGravityMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r4. \wDamage Upgrade [\rCost: \y50 Euros\w] \y[Level:%i/%i]^n", aData[ GangDamage ], get_pcvar_num( g_pDamageMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r5. \wWeapon Drop Upgrade [\rCost: \y50 Euros\w] \y[Level:%i/%i]^n", aData[ GangWeaponDrop ], get_pcvar_num( g_pWeaponDropMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "\r6. \wSpeed Upgrade [\rCost: \y50 Euros\w] \y[Level:%i/%i]^n", aData[ GangStamina ], get_pcvar_num( g_pStaminaMax ) );
iLen += formatex( szMenu[ iLen ], 511 - iLen, "^n\r0. \wSair" );
show_menu( id, iKeys, szMenu, -1, "Skills Menu" );
}
public SkillsMenu_Handler( id, iKey )
{
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
switch( ( iKey + 1 ) % 10 )
{
case 0:
{
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
case 1:
{
if( aData[ GangHP ] == 5)
{
ColorChat( id, TEAM_COLOR, "%s Your gang is already at the max level for that skill.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - 50
if( iRemaining < 0 )
{
ColorChat( id, TEAM_COLOR, "%s You don't have enough Euros for that.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangHP ]++;
g_iPoints[ id ] = iRemaining;
}
case 2:
{
if( aData[ GangStealing ] == 10)
{
ColorChat( id, TEAM_COLOR, "%s Your gang is already at the max level for that skill.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - 50
if( iRemaining < 0 )
{
ColorChat( id, TEAM_COLOR, "%s You don't have enough Euros for that.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangStealing ]++;
g_iPoints[ id ] = iRemaining;
}
case 3:
{
if( aData[ GangGravity ] == 10)
{
ColorChat( id, TEAM_COLOR, "%s Your gang is already at the max level for that skill.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - 50
if( iRemaining < 0 )
{
ColorChat( id, TEAM_COLOR, "%s You don't have enough Euros for that.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangGravity ]++;
g_iPoints[ id ] = iRemaining;
}
case 4:
{
if( aData[ GangDamage ] == 5)
{
ColorChat( id, TEAM_COLOR, "%s Your gang is already at the max level for that skill.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - 50
if( iRemaining < 0 )
{
ColorChat( id, TEAM_COLOR, "%s You don't have enough Euros for that.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangDamage ]++;
g_iPoints[ id ] = iRemaining;
}
case 5:
{
if( aData[ GangWeaponDrop ] == 5)
{
ColorChat( id, TEAM_COLOR, "%s Your gang is already at the max level for that skill.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - 50
if( iRemaining < 0 )
{
ColorChat( id, TEAM_COLOR, "%s You don't have enough Euros for that.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangWeaponDrop ]++;
g_iPoints[ id ] = iRemaining;
}
case 6:
{
if( aData[ GangStamina ] == get_pcvar_num( g_pStaminaMax ) )
{
ColorChat( id, TEAM_COLOR, "%s Your gang is already at the max level for that skill.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
new iRemaining = g_iPoints[ id ] - get_pcvar_num( g_pStaminaCost );
if( iRemaining < 0 )
{
ColorChat( id, TEAM_COLOR, "%s You don't have enough Euros for that.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
aData[ GangStamina ]++;
g_iPoints[ id ] = iRemaining;
}
}
ArraySetArray( g_aGangs, g_iGang[ id ], aData );
new iPlayers[ 32 ], iNum, iPlayer;
new szName[ 32 ];
get_players( iPlayers, iNum );
for( new i = 0; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( iPlayer == id || g_iGang[ iPlayer ] != g_iGang[ id ] ) continue;
ColorChat( iPlayer, TEAM_COLOR, "%s has just upgraded one of your gang's skills.", szName );
}
ColorChat( id, TEAM_COLOR, "%s You have successfully upgraded your gang.", g_szPrefix );
ShowSkillsMenu( id );
return PLUGIN_HANDLED;
}
public Cmd_Top10( id )
{
new iSize = ArraySize( g_aGangs );
new iOrder[ 100 ][ 2 ];
new aData[ GangInfo ];
for( new i = 0; i < iSize; i++ )
{
ArrayGetArray( g_aGangs, i, aData );
iOrder[ i ][ 0 ] = i;
iOrder[ i ][ 1 ] = aData[ GangKills ];
}
SortCustom2D( iOrder, iSize, "Top10_Sort" );
new szMessage[ 2048 ];
formatex( szMessage, charsmax( szMessage ), "<body bgcolor=#000000><font color=#FFB000><pre>" );
format( szMessage, charsmax( szMessage ), "%s%2s %-22.22s %7s^n", szMessage, "#", "Nome", "Frags",
"Gravity", "Stamina", "WeaponDrop", "Damage" );
for( new i = 0; i < min( 10, iSize ); i++ )
{
ArrayGetArray( g_aGangs, iOrder[ i ][ 0 ], aData );
format( szMessage, charsmax( szMessage ), "%s%-2d %22.22s %7d^n", szMessage, i + 1, aData[ GangName ],
aData[ GangKills ], aData[ GangHP ], aData[ GangStealing ], aData[ GangGravity ], aData[ GangStamina], aData[ GangWeaponDrop ], aData[ GangDamage ] );
}
show_motd( id, szMessage, "TOP 10 - AreYouSerious | Gangs" );
}
public Top10_Sort( const iElement1[ ], const iElement2[ ], const iArray[ ], szData[], iSize )
{
if( iElement1[ 1 ] > iElement2[ 1 ] )
return -1;
else if( iElement1[ 1 ] < iElement2[ 1 ] )
return 1;
return 0;
}
public ShowLeaveConfirmMenu( id )
{
new hMenu = menu_create( "\r[ AreYouSerious ]^n\yQueres Sair do teu Gang?", "LeaveConfirmMenu_Handler" );
menu_additem( hMenu, "Sim", "0" );
menu_additem( hMenu, "Nao", "1" );
menu_display( id, hMenu, 0 );
}
public LeaveConfirmMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
return PLUGIN_HANDLED;
new szData[ 6 ], iAccess, hCallback;
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
switch( str_to_num( szData ) )
{
case 0:
{
if( getStatus( id, g_iGang[ id ] ) == STATUS_LEADER )
{
ColorChat( id, TEAM_COLOR, "%s Tens de Tornar outro Membro do Gang ^04Lider ^03Antes de Saires", g_szPrefix );
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
ColorChat( id, TEAM_COLOR, "%s Saiste do teu ^04Gang", g_szPrefix );
set_user_gang( id, -1 );
Cmd_Gang( id );
}
case 1: Cmd_Gang( id );
}
return PLUGIN_HANDLED;
}
public ShowLeaderMenu( id )
{
new hMenu = menu_create( "\r[ AreYouSerious ]^n\yMenu Lider Gang", "LeaderMenu_Handler" );
new iStatus = getStatus( id, g_iGang[ id ] );
if( iStatus == STATUS_LEADER )
{
menu_additem( hMenu, "Acabar com o Gang", "0" );
menu_additem( hMenu, "Transferir Lider", "1" );
menu_additem( hMenu, "Adicionar Admin", "4" );
menu_additem( hMenu, "Remover Admin", "5" );
}
menu_additem( hMenu, "Expulsar do Gang", "2" );
menu_additem( hMenu, "Mudar Nome do Gang", "3" );
menu_display( id, hMenu, 0 );
}
public LeaderMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
switch( str_to_num( szData ) )
{
case 0:
{
ShowDisbandConfirmMenu( id );
}
case 1:
{
ShowTransferMenu( id );
}
case 2:
{
ShowKickMenu( id );
}
case 3:
{
client_cmd( id, "messagemode New_Name" );
}
case 4:
{
ShowAddAdminMenu( id );
}
case 5:
{
ShowRemoveAdminMenu( id );
}
}
return PLUGIN_HANDLED;
}
public ShowDisbandConfirmMenu( id )
{
new hMenu = menu_create( "\r[ AreYouSerious ]^n\yQueres Acabar com o Gang?", "DisbandConfirmMenu_Handler" );
menu_additem( hMenu, "Sim", "0" );
menu_additem( hMenu, "Nao", "1" );
menu_display( id, hMenu, 0 );
}
public DisbandConfirmMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
return PLUGIN_HANDLED;
new szData[ 6 ], iAccess, hCallback;
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
switch( str_to_num( szData ) )
{
case 0:
{
ColorChat( id, TEAM_COLOR, "%s Acabaste com o teu ^04GANG", g_szPrefix );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new iPlayer;
for( new i = 0; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( iPlayer == id )
continue;
if( g_iGang[ id ] != g_iGang[ iPlayer ] )
continue;
ColorChat( iPlayer, TEAM_COLOR, "%s O teu ^04Gang ^03foi Acabado pelo ^04Lider.", g_szPrefix );
set_user_gang( iPlayer, -1 );
}
new iGang = g_iGang[ id ];
set_user_gang( id, -1 );
ArrayDeleteItem( g_aGangs, iGang );
Cmd_Gang( id );
}
case 1: Cmd_Gang( id );
}
return PLUGIN_HANDLED;
}
public ShowTransferMenu( id )
{
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum, "e", "TERRORIST" );
new hMenu = menu_create( "\r[ AreYouSerious ]^n\yTransferir Lider para:", "TransferMenu_Handler" );
new szName[ 32 ], szData[ 6 ];
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ iPlayer ] != g_iGang[ id ] || id == iPlayer )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szData, charsmax( szData ) );
menu_additem( hMenu, szName, szData );
}
menu_display( id, hMenu, 0 );
}
public TransferMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback );
new iPlayer = str_to_num( szData );
if( !is_user_connected( iPlayer ) )
{
ColorChat( id, TEAM_COLOR, "%s O Jogador Ja Nao Esta ^04Conectado", g_szPrefix );
ShowTransferMenu( id );
return PLUGIN_HANDLED;
}
set_user_gang( iPlayer, g_iGang[ id ], STATUS_LEADER );
set_user_gang( id, g_iGang[ id ], STATUS_ADMIN );
Cmd_Gang( id );
new iPlayers[ 32 ], iNum, iTemp;
get_players( iPlayers, iNum );
for( new i = 0; i < iNum; i++ )
{
iTemp = iPlayers[ i ];
if( iTemp == iPlayer )
{
ColorChat( iTemp, TEAM_COLOR, "%s Es Agora o ^04Lider ^03do Teu ^04Gang.", g_szPrefix );
continue;
}
else if( g_iGang[ iTemp ] != g_iGang[ id ] )
continue;
ColorChat( iTemp, TEAM_COLOR, "%s O^04 %s ^03Assumiu a Lideranca do Teu ^04Gang.", g_szPrefix, szName );
}
return PLUGIN_HANDLED;
}
public ShowKickMenu( id )
{
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new hMenu = menu_create( "\r[ AreYouSerious ]^n\yExpulsar do Gang:", "KickMenu_Handler" );
new szName[ 32 ], szData[ 6 ];
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ iPlayer ] != g_iGang[ id ] || id == iPlayer )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szData, charsmax( szData ) );
menu_additem( hMenu, szName, szData );
}
menu_display( id, hMenu, 0 );
}
public KickMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback );
new iPlayer = str_to_num( szData );
if( !is_user_connected( iPlayer ) )
{
ColorChat( id, TEAM_COLOR, "%s O Jogador Ja Nao Esta ^04Conectado.", g_szPrefix );
ShowTransferMenu( id );
return PLUGIN_HANDLED;
}
set_user_gang( iPlayer, -1 );
Cmd_Gang( id );
new iPlayers[ 32 ], iNum, iTemp;
get_players( iPlayers, iNum );
for( new i = 0; i < iNum; i++ )
{
iTemp = iPlayers[ i ];
if( iTemp == iPlayer || g_iGang[ iTemp ] != g_iGang[ id ] )
continue;
ColorChat( iTemp, TEAM_COLOR, "%s O^04 %s ^03Foi ^04Expulso^03 do Teu ^04Gang.", g_szPrefix, szName );
}
ColorChat( iPlayer, TEAM_COLOR, "%s Foste ^04Expulso ^03do Teu ^04Gang.", g_szPrefix, szName );
return PLUGIN_HANDLED;
}
public ChangeName_Handler( id )
{
if( g_iGang[ id ] == -1 || getStatus( id, g_iGang[ id ] ) == STATUS_MEMBER )
{
return;
}
new iGang = g_iGang[ id ];
new szArgs[ 64 ];
read_args( szArgs, charsmax( szArgs ) );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new bool:bInGang[ 33 ];
new iStatus[ 33 ];
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ id ] != g_iGang[ iPlayer ] )
continue;
bInGang[ iPlayer ] = true;
iStatus[ iPlayer ] = getStatus( id, iGang );
set_user_gang( iPlayer, -1 );
}
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, iGang, aData );
aData[ GangName ] = szArgs;
ArraySetArray( g_aGangs, iGang, aData );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( !bInGang[ iPlayer ] )
continue;
set_user_gang( iPlayer, iGang, iStatus[ id ] );
}
}
public ShowAddAdminMenu( id )
{
new iPlayers[ 32 ], iNum;
new szName[ 32 ], szData[ 6 ];
new hMenu = menu_create( "\r[ AreYouSerious ]^n\yAdicionar Admin:", "AddAdminMenu_Handler" );
get_players( iPlayers, iNum );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ id ] != g_iGang[ iPlayer ] || getStatus( iPlayer, g_iGang[ iPlayer ] ) > STATUS_MEMBER )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szData, charsmax( szData ) );
menu_additem( hMenu, szName, szData );
}
menu_display( id, hMenu, 0 );
}
public AddAdminMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( hMenu );
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback );
new iChosen = str_to_num( szData );
if( !is_user_connected( iChosen ) )
{
menu_destroy( hMenu );
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
set_user_gang( iChosen, g_iGang[ id ], STATUS_LEADER );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ iPlayer ] != g_iGang[ id ] || iPlayer == iChosen )
continue;
ColorChat( iPlayer, TEAM_COLOR, "%s O^04 %s ^03Foi Promovido a ^04Admin ^03do Teu ^04Gang.", g_szPrefix, szName );
}
ColorChat( iChosen, TEAM_COLOR, "%s ^03Foste Promovido a ^04Admin ^03do Teu ^04Gang.", g_szPrefix );
menu_destroy( hMenu );
return PLUGIN_HANDLED;
}
public ShowRemoveAdminMenu( id )
{
new iPlayers[ 32 ], iNum;
new szName[ 32 ], szData[ 6 ];
new hMenu = menu_create( "\r[ AreYouSerious ]^n\yRemover Admin:", "RemoveAdminMenu_Handler" );
get_players( iPlayers, iNum );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ id ] != g_iGang[ iPlayer ] || getStatus( iPlayer, g_iGang[ iPlayer ] ) != STATUS_ADMIN )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szData, charsmax( szData ) );
menu_additem( hMenu, szName, szData );
}
menu_display( id, hMenu, 0 );
}
public RemoveAdminMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( hMenu );
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), hCallback );
new iChosen = str_to_num( szData );
if( !is_user_connected( iChosen ) )
{
menu_destroy( hMenu );
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
set_user_gang( iChosen, g_iGang[ id ], STATUS_MEMBER );
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ iPlayer ] != g_iGang[ id ] || iPlayer == iChosen )
continue;
ColorChat( iPlayer, TEAM_COLOR, "%s O^04 %s ^0foi Despromovido de ^04Admin ^03do Teu ^04Gang.", g_szPrefix, szName );
}
ColorChat( iChosen, TEAM_COLOR, "%s ^03Foste Despromovido de ^04Admin ^03do Teu ^04Gang.", g_szPrefix );
menu_destroy( hMenu );
return PLUGIN_HANDLED;
}
public ShowMembersMenu( id )
{
new szName[ 64 ], iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new hMenu = menu_create( "\r[ AreYouSerious ]^n\yMembros online:", "MemberMenu_Handler" );
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iGang[ id ] != g_iGang[ iPlayer ] )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
switch( getStatus( iPlayer, g_iGang[ id ] ) )
{
case STATUS_MEMBER:
{
add( szName, charsmax( szName ), " \r[Membro]" );
}
case STATUS_ADMIN:
{
add( szName, charsmax( szName ), " \r[Admin]" );
}
case STATUS_LEADER:
{
add( szName, charsmax( szName ), " \r[Leader]" );
}
}
menu_additem( hMenu, szName );
}
menu_display( id, hMenu, 0 );
}
public MemberMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( hMenu );
Cmd_Gang( id );
return PLUGIN_HANDLED;
}
menu_destroy( hMenu );
ShowMembersMenu( id )
return PLUGIN_HANDLED;
}
// Credits to Tirant from zombie mod and xOR from xRedirect
public LoadGangs()
{
new szConfigsDir[ 60 ];
get_configsdir( szConfigsDir, charsmax( szConfigsDir ) );
add( szConfigsDir, charsmax( szConfigsDir ), "/jb_gangs.ini" );
new iFile = fopen( szConfigsDir, "rt" );
new aData[ GangInfo ];
new szBuffer[ 512 ], szData[ 6 ], szValue[ 6 ], i, iCurGang;
while( !feof( iFile ) )
{
fgets( iFile, szBuffer, charsmax( szBuffer ) );
trim( szBuffer );
remove_quotes( szBuffer );
if( !szBuffer[ 0 ] || szBuffer[ 0 ] == ';' )
{
continue;
}
if( szBuffer[ 0 ] == '[' && szBuffer[ strlen( szBuffer ) - 1 ] == ']' )
{
copy( aData[ GangName ], strlen( szBuffer ) - 2, szBuffer[ 1 ] );
aData[ GangHP ] = 0;
aData[ GangStealing ] = 0;
aData[ GangGravity ] = 0;
aData[ GangStamina ] = 0;
aData[ GangWeaponDrop ] = 0;
aData[ GangDamage ] = 0;
aData[ GangKills ] = 0;
aData[ NumMembers ] = 0;
aData[ GangMembers ] = _:TrieCreate();
if( TrieKeyExists( g_tGangNames, aData[ GangName ] ) )
{
new szError[ 256 ];
formatex( szError, charsmax( szError ), "[JB Gangs] Gang already exists: %s", aData[ GangName ] );
set_fail_state( szError );
}
ArrayPushArray( g_aGangs, aData );
TrieSetCell( g_tGangNames, aData[ GangName ], iCurGang );
log_amx( "Gang Created: %s", aData[ GangName ] );
iCurGang++;
continue;
}
strtok( szBuffer, szData, 31, szValue, 511, '=' );
trim( szData );
trim( szValue );
if( TrieGetCell( g_tGangValues, szData, i ) )
{
ArrayGetArray( g_aGangs, iCurGang - 1, aData );
switch( i )
{
case VALUE_HP:
aData[ GangHP ] = str_to_num( szValue );
case VALUE_STEALING:
aData[ GangStealing ] = str_to_num( szValue );
case VALUE_GRAVITY:
aData[ GangGravity ] = str_to_num( szValue );
case VALUE_STAMINA:
aData[ GangStamina ] = str_to_num( szValue );
case VALUE_WEAPONDROP:
aData[ GangWeaponDrop ] = str_to_num( szValue );
case VALUE_DAMAGE:
aData[ GangDamage ] = str_to_num( szValue );
case VALUE_KILLS:
aData[ GangKills ] = str_to_num( szValue );
}
ArraySetArray( g_aGangs, iCurGang - 1, aData );
}
}
new Array:aSQL;
sqlv_read_all_ex( g_hVault, aSQL );
new aVaultData[ SQLVaultEntryEx ];
new iGang;
for( i = 0; i < ArraySize( aSQL ); i++ )
{
ArrayGetArray( aSQL, i, aVaultData );
if( TrieGetCell( g_tGangNames, aVaultData[ SQLVEx_Key2 ], iGang ) )
{
ArrayGetArray( g_aGangs, iGang, aData );
TrieSetCell( aData[ GangMembers ], aVaultData[ SQLVEx_Key1 ], str_to_num( aVaultData[ SQLVEx_Data ] ) );
aData[ NumMembers ]++;
ArraySetArray( g_aGangs, iGang, aData );
}
}
fclose( iFile );
}
public SaveGangs()
{
new szConfigsDir[ 64 ];
get_configsdir( szConfigsDir, charsmax( szConfigsDir ) );
add( szConfigsDir, charsmax( szConfigsDir ), "/jb_gangs.ini" );
if( file_exists( szConfigsDir ) )
delete_file( szConfigsDir );
new iFile = fopen( szConfigsDir, "wt" );
new aData[ GangInfo ];
new szBuffer[ 256 ];
for( new i = 0; i < ArraySize( g_aGangs ); i++ )
{
ArrayGetArray( g_aGangs, i, aData );
formatex( szBuffer, charsmax( szBuffer ), "[%s]^n", aData[ GangName ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "HP=%i^n", aData[ GangHP ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Stealing=%i^n", aData[ GangStealing ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Gravity=%i^n", aData[ GangGravity ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Stamina=%i^n", aData[ GangStamina ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "WeaponDrop=%i^n", aData[ GangWeaponDrop ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Damage=%i^n", aData[ GangDamage ] );
fputs( iFile, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "Kills=%i^n^n", aData[ GangKills ] );
fputs( iFile, szBuffer );
}
fclose( iFile );
}
set_user_gang( id, iGang, iStatus=STATUS_MEMBER )
{
new szAuthID[ 35 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
new aData[ GangInfo ];
if( g_iGang[ id ] > -1 )
{
ArrayGetArray( g_aGangs, g_iGang[ id ], aData );
TrieDeleteKey( aData[ GangMembers ], szAuthID );
aData[ NumMembers ]--;
ArraySetArray( g_aGangs, g_iGang[ id ], aData );
sqlv_remove_ex( g_hVault, szAuthID, aData[ GangName ] );
}
if( iGang > -1 )
{
ArrayGetArray( g_aGangs, iGang, aData );
TrieSetCell( aData[ GangMembers ], szAuthID, iStatus );
aData[ NumMembers ]++;
ArraySetArray( g_aGangs, iGang, aData );
sqlv_set_num_ex( g_hVault, szAuthID, aData[ GangName ], iStatus );
}
g_iGang[ id ] = iGang;
return 1;
}
get_user_gang( id )
{
new szAuthID[ 35 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
new aData[ GangInfo ];
for( new i = 0; i < ArraySize( g_aGangs ); i++ )
{
ArrayGetArray( g_aGangs, i, aData );
if( TrieKeyExists( aData[ GangMembers ], szAuthID ) )
return i;
}
return -1;
}
getStatus( id, iGang )
{
if( !is_user_connected( id ) || iGang == -1 )
return STATUS_NONE;
new aData[ GangInfo ];
ArrayGetArray( g_aGangs, iGang, aData );
new szAuthID[ 35 ];
get_user_authid( id, szAuthID, charsmax( szAuthID ) );
new iStatus;
TrieGetCell( aData[ GangMembers ], szAuthID, iStatus );
return iStatus;
}
public cmdSay(id)
{
new SzMessages[192], SzName[32]
new SzAlive = is_user_alive(id)
new Admin = 0, iSurf = get_user_flags(id)
if(iSurf & ADMIN_IMMUNITY)
Admin = 1
else if(iSurf & ADMIN_LEVEL_H)
Admin = 2
else if(iSurf & ADMIN_LEVEL_G)
Admin = 3
else if(iSurf & ADMIN_LEVEL_F)
Admin = 4
else if(iSurf & ADMIN_RESERVATION)
Admin = 5
else if(iSurf & ADMIN_USER)
Admin = 6
read_args(SzMessages, 191)
remove_quotes(SzMessages)
get_user_name(id, SzName, 31)
new aData[GangInfo], NameOfGang[64]
if( g_iGang[id] > -1 )
{
ArrayGetArray( g_aGangs, g_iGang[ id ], aData )
format(NameOfGang, charsmax(NameOfGang), "%s", aData[GangName])
}
else
format(NameOfGang, charsmax(NameOfGang), "")
if(!is_valid_msg(SzMessages)) return PLUGIN_CONTINUE;
switch(Admin)
{
case 6:
{
format(SzMessages, 191, "^1%s^4%s ^3%s : ^1%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
case 5:
{
format(SzMessages, 191, "^1%s^4[ VIP ] ^4%s ^3%s : ^1%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
case 4:
{
format(SzMessages, 191, "^1%s^4[ MOD ] ^4%s ^3%s : ^4%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
case 3:
{
format(SzMessages, 191, "^1%s^4[ MOD.GERAL ] ^4%s ^3%s : ^4%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
case 2:
{
format(SzMessages, 191, "^1%s^4[ ADMIN ] ^4%s ^3%s : ^4%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
case 1:
{
format(SzMessages, 191, "^1%s^4[ LEADER ] ^4%s ^3%s : ^4%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
}
for(new i = 1; i <= SzMaxPlayers; i++)
{
if(!is_user_connected(i))
continue;
message_begin(MSG_ONE, get_user_msgid("SayText"), {0, 0, 0}, i);
write_byte(id);
write_string(SzMessages);
message_end();
}
return PLUGIN_CONTINUE
}
public cmdSayTeam(id)
{
new SzMessages[192], SzName[32]
new SzAlive = is_user_alive(id)
new Admin = 0, iSurf = get_user_flags(id)
if(iSurf & ADMIN_IMMUNITY)
Admin = 1
else if(iSurf & ADMIN_LEVEL_H)
Admin = 2
else if(iSurf & ADMIN_LEVEL_G)
Admin = 3
else if(iSurf & ADMIN_LEVEL_F)
Admin = 4
else if(iSurf & ADMIN_RESERVATION)
Admin = 5
else if(iSurf & ADMIN_USER)
Admin = 6
read_args(SzMessages, 191)
remove_quotes(SzMessages)
get_user_name(id, SzName, 31)
new aData[GangInfo], NameOfGang[64]
if( g_iGang[id] > -1 )
{
ArrayGetArray( g_aGangs, g_iGang[ id ], aData )
format(NameOfGang, charsmax(NameOfGang), "%s", aData[GangName])
}
else
format(NameOfGang, charsmax(NameOfGang), "")
if(!is_valid_msg(SzMessages)) return PLUGIN_CONTINUE;
switch(Admin)
{
case 6:
{
format(SzMessages, 191, "^1%s(Equipa)^4%s ^3%s : ^1%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
case 5:
{
format(SzMessages, 191, "^1%s(Equipa)^4[ VIP ] ^4%s ^3%s : ^1%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
case 4:
{
format(SzMessages, 191, "^1%s(Equipa)^4[ MOD ] ^4%s ^3%s : ^4%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
case 3:
{
format(SzMessages, 191, "^1%s(Equipa)^4[ MOD.GERAL ] ^4%s ^3%s : ^4%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
case 2:
{
format(SzMessages, 191, "^1%s(Equipa)^4[ ADMIN ] ^4%s ^3%s : ^4%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
case 1:
{
format(SzMessages, 191, "^1%s(Equipa)^4[ LEADER ] ^4%s ^3%s : ^4%s", SzAlive ? "" : "*Morto*", NameOfGang, SzName, SzMessages)
}
}
for(new i = 1; i <= SzMaxPlayers; i++)
{
if(!is_user_connected(i))
continue;
message_begin(MSG_ONE, get_user_msgid("SayText"), {0, 0, 0}, i);
write_byte(id);
write_string(SzMessages);
message_end();
}
return PLUGIN_CONTINUE
}
public MsgDuplicate(id){ return PLUGIN_HANDLED; }
bool:is_valid_msg(const SzMessages[]){
if( SzMessages[0] == '@'
|| !strlen(SzMessages)){ return false; }
return true;
}
[IMG]http://s30.************/o9x9g5yhd/Sem_T_tulo.png[/IMG]