15/07/2020, 03:32 PM
(Última modificación: 17/07/2020, 01:17 AM por andres_1041. Edited 14 times in total.)
AMXX - Deathmatch.
Versión 1.0b lanzada el 15 de julio de 2020.
Descripción
- Simple Deathmatch con el objetivo de divertir a los usuarios con sus recursos.
Contiene
- Top 5 - (MEJORES JUGADORES)
- Estadísticas.
- Rangos [CS:GO]
- Admin Prefixes.
- Tienda de Hats.
- Hora Happy.
- Cambio de Cámara.
- Armas al hacer Respawn. - (PRIMARIAS & SECUNDARIAS)
- Menú de Items. - (SE ABRE EN LA N)
- Protección + Glow. - (CONFIGURABLE)
- Donación de frags.
Requiere
- Adv_vault.
- RegameDLL_CS.
- [SDT] Steam data info.
- Amxmodx 1.8.3 o superior.
Imágenes
Créditos
Changelog
Código
Código PHP:
#include <amxmodx>
#include <amxconst>
#include <amxmisc>
#include <adv_vault>
#include <cstrike>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <stripweapons>
#include <steamdata>
#define TASK_SUMAR 12234
#define SUMAR_ID ( taskid - TASK_SUMAR )
#define MAX_HATS sizeof( g_sHats )
#define HAT_NONE -1
#if AMXX_VERSION_NUM < 190
#define MAX_PLAYERS 32
#define MAX_MOTD_LENGTH 1536
#define client_disconnected client_disconnect
#define client_print_color client_print
#define print_team_default print_chat
#endif
new const g_szPluginName[ ] = "Deathmatch";
new const g_szPluginVersion[ ] = "1.0b";
new const g_szPluginAuthor[ ] = "Andre's <3.";
new const g_szChatPrefix[ ] = "^4[ AMXX-ES ]^1";
new const g_szConsolePrefix[ ] = "[ AMXX ]";
new const g_szContactUrl[ ] = "www.amxmodx-es.com";
new const g_szItemMenuSound[ ] = "Ui/buttonclickrelease.wav";
new const g_szPlayerKilledSound[ ] = "buttons/bell1.wav";
new const g_szSoundUpdate[ ] = "events/task_complete.wav";
new const g_DefaultAvatar[ ] = "https://i.ibb.co/HB7q1P9/profile.png";
enum _:eWeapons_Struct
{
WPN_NAME[ 30 ],
WPN_WEAPONENT[ 47 ],
WPN_CSW,
WPN_BULLETS
}
enum _:eRangos_Struct
{
NOMBRE[ 30 ],
FRAGS
}
enum _:eHats_Struc
{
HAT_NOMBRE[ 32 ],
HAT_MODELO[ 40 ],
HAT_COST
}
enum
{
CAMPO_FRAGS,
CAMPO_DEATHS,
CAMPO_HS,
CAMPO_KNIFES,
CAMPO_DIAS,
CAMPO_HORAS,
CAMPO_MINUTOS,
CAMPO_SEGUNDOS,
CAMPO_DAMAGE,
CAMPO_HITS,
CAMPO_RANGO,
CAMPO_MAX
}
new const Weapons_Primary[ ][ eWeapons_Struct ] =
{
{ "M4A1", "weapon_m4a1", CSW_M4A1, 200 },
{ "AK-47", "weapon_ak47", CSW_AK47, 200 },
{ "AWP", "weapon_awp", CSW_AWP, 200 },
{ "Famas", "weapon_famas", CSW_FAMAS, 200 },
{ "Galil", "weapon_galil", CSW_GALIL, 200 },
{ "MAC-10", "weapon_mac10", CSW_MAC10, 200 },
{ "TMP", "weapon_tmp", CSW_TMP, 200 },
{ "UMP", "weapon_ump45", CSW_UMP45, 200 },
{ "MP5 Navy", "weapon_mp5navy", CSW_MP5NAVY, 200 },
{ "ES P90", "weapon_p90", CSW_P90, 200 },
{ "SG-552", "weapon_sg552", CSW_SG552, 200 },
{ "SCOUT", "weapon_scout", CSW_SCOUT, 200 },
{ "AUG", "weapon_aug", CSW_AUG, 200 },
{ "M249", "weapon_m249", CSW_M249, 200 },
{ "M3", "weapon_m3", CSW_M3, 200 },
{ "XM1014", "weapon_xm1014", CSW_XM1014, 200 },
{ "G3SG1", "weapon_g3sg1", CSW_G3SG1, 200 }
}
new const Weapons_Secondary[ ][ eWeapons_Struct ] =
{
{ "Deagle", "weapon_deagle", CSW_DEAGLE, 200 },
{ "USP", "weapon_usp", CSW_USP, 200 },
{ "Glock", "weapon_glock18", CSW_GLOCK18, 200 },
{ "P228", "weapon_p228", CSW_P228, 200 },
{ "FiveseveN", "weapon_fiveseven", CSW_FIVESEVEN, 200 },
{ "Dual Elite Berettas", "weapon_elite", CSW_ELITE, 200 }
}
new const RangosCSGO[ ][ eRangos_Struct ] =
{
{ "Sin Rango", 50 },
{ "Silver I", 200 },
{ "Silver II", 300 },
{ "Silver III", 400 },
{ "Silver IV", 500 },
{ "Silver Elite", 900 },
{ "Silver Elite Master", 1100 },
{ "Gold Nova I", 1700 },
{ "Gold Nova II", 2100 },
{ "Gold Nova III", 2600 },
{ "Gold Nova Master", 3100 },
{ "Master Guardian I", 3700 },
{ "Master Guardian II", 4000 },
{ "Master Guardian Elite", 4800 },
{ "Distinguished Master Guardian", 6000 },
{ "Legendary Eagle", 9000 },
{ "Legendary Eagle Master", 13000 },
{ "Supreme Master First Class", 17000 },
{ "The Global Elite", 1000000 }
}
new const g_sHats[ ][ eHats_Struc ] =
{
{ "Carita", "models/AMXX-Hats/carita.mdl", 10 },
{ "Super Sonic", "models/AMXX-Hats/SuperSonic.mdl", 50 },
{ "Batman", "models/AMXX-Hats/Batman.mdl", 200 },
{ "Black Dragon", "models/AMXX-Hats/black_dragon.mdl", 300 },
{ "Cara Anchoa", "models/AMXX-Hats/CaraAnchoa.mdl", 400 },
{ "Angel", "models/AMXX-Hats/Angel.mdl", 500 },
{ "Cheetos", "models/AMXX-Hats/Cheetos.mdl", 900 },
{ "Cocodrilo", "models/AMXX-Hats/cocodrilo.mdl", 1100 },
{ "Cow", "models/AMXX-Hats/cow.mdl", 1700 },
{ "Dar", "models/AMXX-Hats/dar.mdl", 2100 },
{ "Dragon", "models/AMXX-Hats/Dragon.mdl", 2600 },
{ "Elf", "models/AMXX-Hats/elf.mdl", 3100 },
{ "Gallo", "models/AMXX-Hats/Gallo.mdl", 3700 },
{ "Gato con Botas", "models/AMXX-Hats/gato_con_botas.mdl", 4000 },
{ "Gato", "models/AMXX-Hats/gato.mdl", 4800 },
{ "Lobo", "models/AMXX-Hats/Lobo.mdl", 6000 },
{ "Rana Rene", "models/AMXX-Hats/RanaRene.mdl", 13000 },
{ "Panther", "models/AMXX-Hats/panther.mdl", 17000 },
{ "Panda", "models/AMXX-Hats/panda.mdl", 18000 },
{ "Tigre", "models/AMXX-Hats/tigre.mdl", 20000 }
}
new const BlockCommands[ ][ ] =
{
"chooseteam", "jointeam", "buy",
"buyammo1", "buyammo2", "buyequip",
"cl_autobuy", "cl_rebuy", "cl_setautobuy",
"cl_setrebuy", "drop", "radio1", "radio2", "radio3"
}
new const ClientCommand_Top[ ][ ] =
{
"say /top5", "say top5", "say top",
"say_team /top5", "say_team top5", "say_team top"
}
new const ClientCommand_Ranking[ ][ ] =
{
"say /rankstats", "say rankstats", "say stats",
"say_team /rankstats", "say_team rankstats", "say_team stats"
}
new const ClientCommand_Rank[ ][ ] =
{
"say /rank", "say rank", "say mystats",
"say_team /rank", "say_team rank", "say_team mystats"
}
new const ClientCommand_HourHappy[ ][ ] =
{
"say /horahappy", "say /vh", "say /hh",
"say_team /horahappy", "say_team /vh", "say_team /hh"
}
new const ClientCommand_Guns[ ][ ] =
{
"say /guns", "say guns", "say .guns",
"say_team /guns", "say_team guns", "say_team .guns"
}
new const ClientCommand_Cam[ ][ ] =
{
"say /cam", "say /camera", "say .cam",
"say_team /cam", "say_team /camera", "say_team .cam"
}
new const ClientCommand_Hat[ ][ ] =
{
"say /hats", "say /hat", "say .hats",
"say_team /hats", "say_team /hat", "say_team .hats",
}
new const g_Hours[ ] = { 20, 21, 22, 23, 00, 01, 02, 03, 04, 05, 06, 07 }
new g_Campos[ CAMPO_MAX ];
new g_vHats;
new g_iVault;
new g_iSortsT;
new g_CampoAvatar;
new g_vPurchasedHats;
new g_CampoOldConexion;
new SyncHUD;
new g_StatusIcon;
new g_ScreenFade;
new g_ScreenShake;
new cvar_player_protection;
new iEnt[ MAX_PLAYERS + 1 ];
new g_iDias[ MAX_PLAYERS + 1 ];
new g_Rango[ MAX_PLAYERS + 1 ];
new g_Frags[ MAX_PLAYERS + 1 ];
new g_iHoras[ MAX_PLAYERS + 1 ];
new g_Knifes[ MAX_PLAYERS + 1 ];
new g_Muertes[ MAX_PLAYERS + 1 ];
new g_iMinutos[ MAX_PLAYERS + 1 ];
new g_iSegundos[ MAX_PLAYERS + 1 ];
new g_HeadShots[ MAX_PLAYERS + 1 ];
new g_fCamera[ MAX_PLAYERS + 1 ];
new g_iHatSelected[ MAX_PLAYERS + 1 ];
new g_iWeaponSelect[ MAX_PLAYERS + 1 ];
new g_iItemSelected[ MAX_PLAYERS + 1 ];
new g_iPurchasedHats[ MAX_PLAYERS + 1 ];
new g_sFields[ 3 ][ MAX_HATS ];
new g_PlayerName[ MAX_PLAYERS + 1 ][ 32 ];
new g_PlayerAvatar[ MAX_PLAYERS + 1 ][ 200 ];
new g_PlayerDate[ MAX_PLAYERS + 1 ][ CAMPO_MAX ];
new g_PlayerOldConexion[ MAX_PLAYERS + 1 ][ 30 ];
new bool:g_HappyTime;
new bool:g_Hat[ MAX_PLAYERS + 1 ][ MAX_HATS ];
new bool:g_bEquipHats[ MAX_PLAYERS + 1 ][ MAX_HATS ];
const ID_TASK = 320323;
public plugin_init( )
{
register_plugin( g_szPluginName, g_szPluginVersion, g_szPluginAuthor );
register_event( "Damage", "@Event_Damage", "b" );
register_forward( FM_SetModel, "@Forward_SetModel" );
register_event( "HLTV" , "@fRoundStart" , "a", "1=0", "2=0" );
RegisterHam( Ham_Spawn, "player", "@ClientPlayer_Spawn", true );
RegisterHam( Ham_Killed, "player", "@ClientPlayer_Killed", true );
SyncHUD = CreateHudSyncObj( );
g_StatusIcon = get_user_msgid( "StatusIcon" );
g_ScreenShake = get_user_msgid( "ScreenShake" );
g_ScreenFade = get_user_msgid( "ScreenFade" );
for( new i = 0; i < sizeof( ClientCommand_Guns ); i++ )
register_clcmd( ClientCommand_Guns[ i ], "@ClientCommand_Weapons" );
for( new i = 0; i < sizeof( ClientCommand_Top ); i++ )
register_clcmd( ClientCommand_Top[ i ], "@ClientCommand_TopRanks" );
for( new i = 0; i < sizeof( ClientCommand_Ranking ); i++ )
register_clcmd( ClientCommand_Ranking[ i ], "@ClientCommand_Rankstats" );
for( new i = 0; i < sizeof( ClientCommand_Rank ); i++ )
register_clcmd( ClientCommand_Rank[ i ], "@ClientCommand_ShowRank" );
for( new i = 0; i < sizeof( ClientCommand_Ranking ); i++ )
register_clcmd( ClientCommand_HourHappy[ i ], "@ClientCommand_ShowHappy" );
for( new i = 0; i < sizeof( ClientCommand_Cam ); i++ )
register_clcmd( ClientCommand_Cam[ i ], "@ClientCommand_Camera" );
for( new i = 0; i < sizeof( ClientCommand_Hat ); i++ )
register_clcmd( ClientCommand_Hat[ i ], "@ClientCommand_ShowHats" );
for( new i = 0; i < sizeof( BlockCommands ); i++ )
register_clcmd( BlockCommands[ i ], "@BlockCommand_Client" );
register_concmd( "DonateFrags", "@cmdFrags", ADMIN_CVAR, "<Nombre> <Cantidad>" );
register_clcmd( "nightvision", "@ClientCommand_ShowMenuItems" );
register_clcmd( "say", "@HookSay" );
register_clcmd( "say_team", "@HookSayTeam" );
cvar_player_protection = register_cvar( "amxx_protection_player", "3.0" );
register_message( g_StatusIcon, "@Message_StatusIcon" );
g_iVault = adv_vault_open( "AMXX-Deathmatch", false );
new szBuffer[ 16 ];
for( new i = 0; i < MAX_HATS; i++ )
{
formatex( szBuffer, charsmax( szBuffer ), "Hats-#%d", i+1 )
g_sFields[ 0 ][ i ] = adv_vault_register_field( g_iVault, szBuffer );
formatex( szBuffer, charsmax( szBuffer ), "EquipHats-#%d", i+1 )
g_sFields[ 1 ][ i ] = adv_vault_register_field( g_iVault, szBuffer );
}
g_Campos[ CAMPO_FRAGS ] = adv_vault_register_field( g_iVault, "FRAGS" );
g_Campos[ CAMPO_HS ] = adv_vault_register_field( g_iVault, "HEADSHOT" );
g_Campos[ CAMPO_KNIFES ] = adv_vault_register_field( g_iVault, "KNIFES" );
g_Campos[ CAMPO_DEATHS ] = adv_vault_register_field( g_iVault, "MUERTES" );
g_Campos[ CAMPO_DIAS ] = adv_vault_register_field( g_iVault, "DIAS" );
g_Campos[ CAMPO_HORAS ] = adv_vault_register_field( g_iVault, "HORAS" );
g_Campos[ CAMPO_MINUTOS ] = adv_vault_register_field( g_iVault, "MINUTOS" );
g_Campos[ CAMPO_SEGUNDOS ] = adv_vault_register_field( g_iVault, "SEGUNDOS" );
g_Campos[ CAMPO_DAMAGE ] = adv_vault_register_field( g_iVault, "DAMAGE" );
g_Campos[ CAMPO_HITS ] = adv_vault_register_field( g_iVault, "HITS" );
g_Campos[ CAMPO_RANGO ] = adv_vault_register_field( g_iVault, "RANGO" );
g_vHats = adv_vault_register_field( g_iVault, "SELECTED-HATS" );
g_vPurchasedHats = adv_vault_register_field( g_iVault, "PURCHASE-HATS", DATATYPE_ARRAY, MAX_HATS );
g_CampoAvatar = adv_vault_register_field( g_iVault, "AVATAR", DATATYPE_STRING, charsmax( g_PlayerAvatar[ ] ) );
g_CampoOldConexion = adv_vault_register_field( g_iVault, "OLD", DATATYPE_STRING, charsmax( g_PlayerOldConexion[ ] ) );
adv_vault_init( g_iVault );
g_iSortsT = adv_vault_sort_create( g_iVault, ORDER_DESC, 0, 2000, g_Campos[ CAMPO_FRAGS ], g_Campos[ CAMPO_HS ], g_Campos[ CAMPO_DEATHS ] );
}
public plugin_cfg( )
{
if ( is_plugin_loaded( "Pause Plugins" ) != -1 )
server_cmd ( "amx_pausecfg add ^"%s^"", g_szPluginName );
set_cvar_string( "mp_freezetime", "0" );
set_cvar_string( "mp_autoteambalance", "0" );
set_cvar_string( "mp_round_infinite", "1" );
set_cvar_string( "mp_freeforall", "1" );
set_cvar_string( "mp_auto_join_team", "1" );
set_cvar_string( "mp_forcerespawn", "1" );
set_cvar_string( "mp_roundrespawn_time", "3" );
set_task( 0.1, "@HappyHour" );
}
public plugin_precache( )
{
for( new iNum = 0; iNum < MAX_HATS; iNum++ )
precache_model( g_sHats[ iNum ][ HAT_MODELO ] );
}
public client_putinserver( iId )
{
g_Rango[ iId ] = 0;
g_fCamera[ iId ] = false;
g_iWeaponSelect[ iId ] = 0;
g_iHatSelected[ iId ] = HAT_NONE;
g_iItemSelected[ iId ] = HAT_NONE;
g_iPurchasedHats[ iId ] = 0;
g_PlayerAvatar[ iId ] = "^0";
g_PlayerOldConexion[ iId ] = "^0";
g_iDias[ iId ] = 0;
g_iHoras[ iId ] = 0;
g_iMinutos[ iId ] = 0;
g_iSegundos[ iId ] = 0;
for( new i = 0; i < MAX_HATS; i++ )
{
g_Hat[ iId ][ i ] = false;
g_bEquipHats[ iId ][ i ] = false;
}
set_task( 1.0, "@HUD_HAPPY", iId+TASK_SUMAR, _, _, "b" );
set_task( 10.0, "@ConnectMessage", iId, _, _, "a", 1 );
set_task( 1.0, "@SumarSegundos", iId+TASK_SUMAR, _, _, "b" );
set_task( 0.5, "@ClientCommand_Weapons", iId );
get_user_name( iId, g_PlayerName[ iId ], charsmax( g_PlayerName[ ] ) );
if( !is_player_steam( iId ) ) set_task( 1.0, "@Steamload", iId );
else formatex( g_PlayerAvatar[ iId ], charsmax( g_PlayerAvatar[ ] ), g_DefaultAvatar );
@fCargar( iId );
}
public @ConnectMessage( const iId )
{
if( is_user_connected( iId ) )
{
client_cmd( iId, "spk events/tutor_msg.wav" );
client_print_color( iId, print_team_default, "%s^3 %s^1 Ha sido creado por ^4%s", g_szChatPrefix, g_szPluginName, g_szPluginAuthor );
console_print( iId, "%s %s Ha sido creado por %s", g_szConsolePrefix, g_szPluginName, g_szPluginAuthor );
}
}
public client_disconnected( iId )
{
get_time( "%d/%m/%Y - %H:%M:%S", g_PlayerOldConexion[ iId ], charsmax( g_PlayerOldConexion[ ] ) );
@fGuardar( iId );
}
public @cmdFrags( const iId, const iLevel, const iCid )
{
if( !cmd_access( iId, iLevel, iCid, 2 ) )
return PLUGIN_HANDLED;
new iName[ 32 ];
read_argv( 1, iName, charsmax( iName ) );
new iPlayer = cmd_target( iId, iName, CMDTARGET_ALLOW_SELF );
if( !iPlayer )
return PLUGIN_HANDLED;
new iNum[ 10 ];
read_argv( 2, iNum, charsmax( iNum ) );
g_Frags[ iPlayer ] += str_to_num( iNum );
new iNameUser[ 32 ], iNameAdmin[ 32 ];
get_user_name( iId, iNameAdmin, charsmax( iNameAdmin ) );
get_user_name( iPlayer, iNameUser, charsmax( iNameUser ) );
client_print_color( 0, 0, "%s ^3||^1ADMIN^3||^1:^4 %s^1 Le dio^3 %s^1 Frags a^4 %s^1.", g_szChatPrefix, iNameAdmin, iNum, iNameUser );
@ClientRangoUP( iPlayer, str_to_num( iNum ) );
return PLUGIN_HANDLED;
}
public @ClientCommand_Camera( const iId )
{
if( !is_user_connected( iId ) ) return PLUGIN_HANDLED;
g_fCamera[ iId ] =! g_fCamera[ iId ];
g_fCamera[ iId ] ? set_view( iId, CAMERA_3RDPERSON ) : set_view( iId, CAMERA_NONE );
return PLUGIN_HANDLED;
}
public @HookSay( const iId )
{
static iSaid[ 192 ];
new szMessage[ 191 ];
read_args( iSaid, charsmax( iSaid ) );
remove_quotes( iSaid );
replace_all( iSaid, charsmax( iSaid ), "%", " " );
if ( !ValidMessage( iSaid, 1 ) ) return PLUGIN_CONTINUE;
new iName[ 32 ];
static iColor[ 11 ], iAlive[ 17 ], iTipo[ 17 ];
new iFlags = get_user_flags( iId );
get_user_name( iId, iName, charsmax( iName ) );
get_user_team( iId, iColor, charsmax( iColor ) );
if ( iFlags & ADMIN_LEVEL_B ) formatex( iTipo, charsmax( iTipo ), "DUEÑO" );
else if ( iFlags & ADMIN_LEVEL_C ) formatex( iTipo, charsmax( iTipo ), "VIP" );
else if ( iFlags & ADMIN_LEVEL_D ) formatex( iTipo, charsmax( iTipo ), "ADMIN" );
if( cs_get_user_team( iId ) == CS_TEAM_SPECTATOR )
{
if( is_user_admin( iId ) )
formatex( szMessage, charsmax( szMessage ), "^4(^1SPEC^4) ^3||^1%s^3||^1%s^3||^3 %s^1 : %s", RangosCSGO[ g_Rango[ iId ] ][ NOMBRE ], iTipo, iName, iSaid );
else
formatex( szMessage, charsmax( szMessage ), "^3(^1SPEC^3)^4 ||^1%s^4||^3 %s^1 : %s", RangosCSGO[ g_Rango[ iId ] ][ NOMBRE ], iName, iSaid );
}
else {
if( is_user_admin( iId ) )
formatex( szMessage, charsmax( szMessage ), "%s ^3||^1%s^3||^1%s^3||^3 %s^1 : %s", iAlive ? "^1" : "^3(^1MUERTO^3)", RangosCSGO[ g_Rango[ iId ] ][ NOMBRE ], iTipo, iName, iSaid );
else
formatex( szMessage, charsmax( szMessage ), "%s ^4||^1%s^4||^3 %s^1 : %s", iAlive ? "^1" : "^3(^1MUERTO^3)", RangosCSGO[ g_Rango[ iId ] ][ NOMBRE ], iName, iSaid );
}
static i, iTeam[ 11 ];
for( i = 1; i <= get_maxplayers( ); i++ )
{
if( !is_user_connected( i ) ) continue;
if ( is_user_admin( i ) || iAlive[ iId ] && iAlive[ i ] || !iAlive[ iId ] && !iAlive[ i ] )
{
get_user_name( iId, iName, charsmax( iName ) );
get_user_team( i, iTeam, charsmax( iTeam ) );
@ChangeTeamInfo( i, iColor );
@WriteMessage( i, szMessage );
@ChangeTeamInfo( i, iTeam );
}
}
return PLUGIN_HANDLED_MAIN;
}
public @HookSayTeam( const iId )
{
static iSaid[ 192 ];
new szMessage[ 191 ]
read_args( iSaid, charsmax( iSaid ) );
remove_quotes( iSaid );
replace_all( iSaid, charsmax( iSaid ), "%", " " );
if ( !ValidMessage( iSaid, 1 ) ) return PLUGIN_CONTINUE;
new iName[ 32 ];
get_user_name( iId, iName, charsmax( iName ) );
new iFlags = get_user_flags( iId );
static iPlayerTeam, iPlayerTeamName[ 19 ], iTipo[ 17 ];
iPlayerTeam = get_user_team( iId );
if ( iFlags & ADMIN_LEVEL_B ) formatex( iTipo, charsmax( iTipo ), "DUEÑO" );
else if ( iFlags & ADMIN_LEVEL_C ) formatex( iTipo, charsmax( iTipo ), "VIP" );
else if ( iFlags & ADMIN_LEVEL_D ) formatex( iTipo, charsmax( iTipo ), "ADMIN" );
switch ( iPlayerTeam )
{
case 1: copy( iPlayerTeamName , 6, "TT" );
case 2: copy( iPlayerTeamName , 8, "CT" );
default: copy( iPlayerTeamName , 11, "SPEC" );
}
static iColor[ 11 ], iAlive[ 17 ];
if( is_user_admin( iId ) )
formatex( szMessage, charsmax( szMessage ), "%s (^1%s^3) ^3||^1%s^3||^1%s^3||^3 %s^1 : %s", iAlive ? "^1" : "^3(^1MUERTO^3)", iPlayerTeamName, RangosCSGO[ g_Rango[ iId ] ][ NOMBRE ], iTipo, iName, iSaid );
else
formatex( szMessage, charsmax( szMessage ), "%s (^1%s^3) ^4||^1%s^4||^3 %s^1 : %s", iAlive ? "^1" : "^3(^1MUERTO^3)", iPlayerTeamName, RangosCSGO[ g_Rango[ iId ] ][ NOMBRE ], iName, iSaid );
static i, iTeam[ 11 ];
for( i = 1; i <= get_maxplayers( ); i++ )
{
if( !is_user_connected( i ) ) continue;
if( get_user_team( i ) == iPlayerTeam )
{
if ( is_user_admin( i ) || iAlive[ iId ] && iAlive[ i ] || !iAlive[ iId ] && !iAlive[ i ] )
{
get_user_name( iId, iName, charsmax( iName ) );
get_user_team( i, iTeam, charsmax( iTeam ) );
@ChangeTeamInfo( i, iColor );
@WriteMessage( i, szMessage );
@ChangeTeamInfo( i, iTeam );
}
}
}
return PLUGIN_HANDLED_MAIN;
}
@ClientRangoUP( const iId, const iFrags )
{
g_Frags[ iId ] += iFrags;
static iRank; iRank = g_Frags[ iId ];
while( g_Frags[ iId ] >= RangosCSGO[ g_Rango[ iId ] ][ FRAGS ] && g_Rango[ iId ] < charsmax( RangosCSGO ) )
++g_Rango[ iId ];
if( iRank < g_Rango[ iId ] )
{
client_print_color( iId, print_team_default, "%s Felicidades ^3subiste^1 al rango: ^4%s^1.", g_szChatPrefix, RangosCSGO[ g_Rango[ iId ] ][ NOMBRE ] );
message_begin( MSG_ONE, g_ScreenShake, { 0,0,0 }, iId );
write_short( 1<<13 );
write_short( 1<<13 );
write_short( 1<<13 );
message_end( );
message_begin( MSG_ONE, g_ScreenFade, { 0,0,0 }, iId );
write_short( 1<<10 );
write_short( 1<<10 );
write_short( 0x0000 );
write_byte( random_num( 10, 255 ) );
write_byte( random_num( 10, 255 ) );
write_byte( random_num( 10, 255 ) );
write_byte( 75 );
message_end( );
client_cmd( iId, "spk ^"%s^"", g_szSoundUpdate );
}
}
public @Event_Damage( const iId )
{
new iAttacker = get_user_attacker( iId );
new iDamage = read_data( 2 );
if( !is_user_alive( iAttacker ) || !( 1 <= iAttacker <= get_maxplayers( ) ) || iAttacker == iId || iDamage <= 0 )
return
g_PlayerDate[ iAttacker ][ CAMPO_DAMAGE ] += iDamage
g_PlayerDate[ iAttacker ][ CAMPO_HITS ] += 1
@fGuardar( iId );
}
public @fRoundStart( )
{
for( new iId = 1; iId <= get_maxplayers( ); ++iId )
{
if( is_user_connected( iId ) )
@fGuardar( iId );
}
adv_vault_sort_update( g_iVault, g_iSortsT );
}
public @Steamload( const iId )
{
get_steamdata( iId, g_PlayerAvatar[ iId ], charsmax( g_PlayerAvatar[ ] ), STD_AVATAR_FULL );
@fCargar( iId );
}
public @SumarSegundos( taskid )
{
static iId;
iId = SUMAR_ID;
if( g_iSegundos[ iId ] >= 60 )
{
g_iSegundos[ iId ] = 0
g_iMinutos[ iId ]++
}
else g_iSegundos[ iId ]++
if( g_iMinutos[ iId ] >= 60 )
{
g_iMinutos[ iId ] = 0;
g_iHoras[ iId ]++
}
if( g_iHoras[ iId ] >= 24 )
{
g_iHoras[ iId ] = 0;
g_iDias[ iId ]++
}
}
public @HUD_HAPPY( taskid )
{
new iId = SUMAR_ID;
set_dhudmessage( random_num( 10, 255 ), random_num( 10, 255 ), random_num( 10, 255 ), 0.0, 0.15, 1, 6.0, 1.0 );
if( g_Rango[ iId ] == charsmax( RangosCSGO ) )
{
ShowSyncHudMsg( SUMAR_ID, SyncHUD,
"=======================^n\
Frags: %d^n\
Rango: %s^n\
Hora Happy: %sACTIVADA\
=======================",
g_Frags[ iId ], RangosCSGO[ g_Rango[ iId ] ][ NOMBRE ],
g_HappyTime == true ? "" : "DES" );
}
else {
ShowSyncHudMsg( SUMAR_ID, SyncHUD,
"=======================^n\
Frags: %d^n\
Rango: %s^n\
Sig. Rango: %s^n\
Hora Happy: %sACTIVADA^n\
=======================",
g_Frags[ iId ], RangosCSGO[ g_Rango[ iId ] ][ NOMBRE ],
RangosCSGO[ g_Rango[ iId ]+1 ][ NOMBRE ], g_HappyTime == true ? "" : "DES" );
}
}
public @ClientPlayer_Killed( const iAttacker, const iVictim, const iSg )
{
if( !is_user_connected( iVictim ) || !is_user_connected( iAttacker ) || !iAttacker || iAttacker == iVictim )
return HAM_IGNORED;
@ClientRangoUP( iAttacker, 1 );
g_Frags[ iAttacker ]++
g_Muertes[ iVictim ]++
if( get_user_weapon( iAttacker ) == CSW_KNIFE )
{
g_Knifes[ iAttacker ]++
@ClientRangoUP( iAttacker, 2 );
}
if( get_pdata_int( iVictim, 75, 5 ) == HIT_HEAD )
{
g_HeadShots[ iAttacker ]++
@ClientRangoUP( iAttacker, 2 );
}
if( is_user_admin( iAttacker ) )
{
if( g_HappyTime )
{
g_Frags[ iAttacker ] += 2 * 2
@ClientRangoUP( iAttacker, 4 );
}
else
{
g_Frags[ iAttacker ] += 2
@ClientRangoUP( iAttacker, 2 );
}
}
else
{
if( g_HappyTime )
{
g_Frags[ iAttacker ] += 1 * 2
@ClientRangoUP( iAttacker, 2 );
}
else
{
g_Frags[ iAttacker ]++
}
}
set_task( 0.5, "@Ham_SpawnPlayer", iVictim );
client_cmd( iAttacker, "spk ^"%s^"", g_szPlayerKilledSound );
return HAM_IGNORED;
}
public @Forward_SetModel( const iEntity, const szModel[ ] )
{
static szClassName[ 32 ];
pev( iEntity, pev_classname, szClassName, charsmax( szClassName ) );
if( equal( szClassName, "weaponbox" ) ) {
set_pev( iEntity, pev_nextthink, get_gametime( ) + 0.01 );
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public @ClientCommand_Weapons( const iId )
{
if( !is_user_connected( iId ) || !is_user_alive( iId ) ) return PLUGIN_HANDLED;
new szBuffer[ 70 ];
formatex( szBuffer, charsmax( szBuffer ), "\d%s^n\r[\wAMXX\d-\wES\r]\y Armas Primarias.\d", g_szContactUrl );
new iMenu = menu_create( szBuffer, "@Handled_WeaponsPrimary" );
for( new i = 0; i < sizeof( Weapons_Primary ); i++ )
{
formatex( szBuffer, charsmax( szBuffer ), "%s", Weapons_Primary[ i ][ WPN_NAME ] );
menu_additem( iMenu, szBuffer );
}
menu_setprop( iMenu, MPROP_NEXTNAME, "\wSiguiente." );
menu_setprop( iMenu, MPROP_BACKNAME, "\wAtrás." );
menu_setprop( iMenu, MPROP_EXITNAME, "\wSalir." );
menu_display( iId, iMenu );
return PLUGIN_HANDLED;
}
public @Handled_WeaponsPrimary( const iId, const iMenu, const iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( iMenu )
return PLUGIN_HANDLED
}
g_iWeaponSelect[ iId ] = iItem;
StripWeapons( iId, Primary );
give_item( iId, "weapon_knife" );
give_item( iId, Weapons_Primary[ g_iWeaponSelect[ iId ] ][ WPN_WEAPONENT ] );
cs_set_user_bpammo( iId, Weapons_Primary[ g_iWeaponSelect[ iId ] ][ WPN_CSW ], Weapons_Primary[ g_iWeaponSelect[ iId ] ][ WPN_BULLETS ] );
client_print_color( iId, print_team_default, "%s Has elegido como ^3primaria^1 la ^4%s^1.", g_szChatPrefix, Weapons_Primary[ g_iWeaponSelect[ iId ] ][ WPN_NAME ] );
client_cmd( iId, "spk ^"%s^"", g_szItemMenuSound );
@ClientCommand_WeaponsSecondary( iId );
return PLUGIN_HANDLED
}
public @ClientCommand_WeaponsSecondary( const iId )
{
if( !is_user_connected( iId ) || !is_user_alive( iId ) ) return PLUGIN_HANDLED;
new szBuffer[ 70 ];
formatex( szBuffer, charsmax( szBuffer ), "\d%s^n\r[\wAMXX\d-\wES\r]\y Armas Secundarias.\d", g_szContactUrl );
new iMenu = menu_create( szBuffer, "@Handled_WeaponsSecondary" );
for( new i = 0; i < sizeof( Weapons_Secondary ); i++ )
{
formatex( szBuffer, charsmax( szBuffer ), "%s", Weapons_Secondary[ i ][ WPN_NAME ] );
menu_additem( iMenu, szBuffer );
}
menu_setprop( iMenu, MPROP_NEXTNAME, "\wSiguiente." );
menu_setprop( iMenu, MPROP_BACKNAME, "\wAtrás." );
menu_setprop( iMenu, MPROP_EXITNAME, "\wSalir." );
menu_display( iId, iMenu );
return PLUGIN_HANDLED;
}
public @Handled_WeaponsSecondary( const iId, const iMenu, const iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( iMenu )
return PLUGIN_HANDLED
}
g_iWeaponSelect[ iId ] = iItem;
StripWeapons( iId, Secondary );
give_item( iId, "weapon_hegrenade" );
give_item( iId, Weapons_Secondary[ g_iWeaponSelect[ iId ] ][ WPN_WEAPONENT ] );
cs_set_user_bpammo( iId, Weapons_Secondary[ g_iWeaponSelect[ iId ] ][ WPN_CSW ], Weapons_Secondary[ g_iWeaponSelect[ iId ] ][ WPN_BULLETS ] );
client_print_color( iId, print_team_default, "%s Has elegido como ^3secundaria^1 la ^4%s^1.", g_szChatPrefix, Weapons_Secondary[ g_iWeaponSelect[ iId ] ][ WPN_NAME ] );
client_cmd( iId, "spk ^"%s^"", g_szItemMenuSound );
return PLUGIN_HANDLED
}
public @ClientCommand_ShowHats( const iId )
{
if( !is_user_connected( iId ) || !is_user_alive( iId ) ) return PLUGIN_HANDLED;
new szBuffer[ 130 ];
formatex( szBuffer, charsmax( szBuffer ), "\d%s^n\r[\wAMXX\d-\wES\r]\y Menú de Sombreros.^n\wAdquiridas: \y%d/%d^n\wPUNTOS: \y%d\d", g_szContactUrl, g_iPurchasedHats[ iId ], MAX_HATS, g_Frags[ iId ] );
new iMenu = menu_create( szBuffer, "@Handled_ShowHats" );
for( new iNum = 0; iNum < MAX_HATS; iNum++ )
{
if( g_bEquipHats[ iId ][ iNum ] )
formatex( szBuffer, charsmax( szBuffer ), "\d%s \r[EQUIPADA]", g_sHats[ iNum ][ HAT_NOMBRE ] );
else if( g_Hat[ iId ][ iNum ] )
formatex( szBuffer, charsmax( szBuffer ), "\d%s \r[ADQUIRIDA]", g_sHats[ iNum ][ HAT_NOMBRE ] );
else if( !g_Hat[ iId ][ iNum ] )
formatex( szBuffer, charsmax( szBuffer ), "\w%s \r[COMPRAR]", g_sHats[ iNum ][ HAT_NOMBRE ] );
else
formatex( szBuffer, charsmax( szBuffer ), "%s%s %s[PUNTOS: %d]", g_Frags[ iId ] < g_sHats[ iNum ][ HAT_COST ] ? "\d" : "\w", g_sHats[ iNum ][ HAT_NOMBRE ] );
menu_additem( iMenu, szBuffer );
}
menu_setprop( iMenu, MPROP_NEXTNAME, "\wSiguiente." );
menu_setprop( iMenu, MPROP_BACKNAME, "\wAtrás." );
menu_setprop( iMenu, MPROP_EXITNAME, "\wSalir." );
menu_display( iId, iMenu );
return PLUGIN_HANDLED;
}
public @Handled_ShowHats( const iId, const iMenu, const iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( iMenu );
return PLUGIN_HANDLED;
}
client_cmd( iId, "spk ^"%s^"", g_szItemMenuSound );
g_iItemSelected[ iId ] = iItem;
g_iHatSelected[ iId ] = iItem;
@ShowMenu_PreviewHats( iId );
menu_destroy( iMenu );
return PLUGIN_HANDLED;
}
public @ShowMenu_PreviewHats( const iId )
{
new szBuffer[ 200 ];
if( g_bEquipHats[ iId ][ g_iItemSelected[ iId ] ] )
formatex( szBuffer, charsmax( szBuffer ), "\d%s^n\yVISTA PREVIA DE:\w %s^n\yESTADO: \r[EQUIPADA]", g_szContactUrl, g_sHats[ g_iItemSelected[ iId ] ][ HAT_NOMBRE ] );
else if( g_Hat[ iId ][ g_iItemSelected[ iId ] ] )
formatex( szBuffer, charsmax( szBuffer ), "\d%s^n\yVISTA PREVIA DE:\w %s^n\yESTADO: \r[ADQUIRIDA]", g_szContactUrl, g_sHats[ g_iItemSelected[ iId ] ][ HAT_NOMBRE ] );
else
formatex( szBuffer, charsmax( szBuffer ), "\d%s^n\yVISTA PREVIA DE:\w %s^n\yPRECIO: \w%d\r$^n\yPUNTOS: \w%d", g_szContactUrl, g_sHats[ g_iItemSelected[ iId ] ][ HAT_NOMBRE ], g_sHats[ g_iItemSelected[ iId ] ][ HAT_COST ], g_Frags[ iId ] );
new iMenu = menu_create( szBuffer, "@Handled_ViewHats" );
if( g_bEquipHats[ iId ][ g_iItemSelected[ iId ] ] )
formatex( szBuffer, charsmax( szBuffer ), "Desequipar" );
else if( g_Hat[ iId ][ g_iItemSelected[ iId ] ] )
formatex( szBuffer, charsmax( szBuffer ), "Equipar" );
else
formatex( szBuffer, charsmax( szBuffer ), "Comprar" );
menu_additem( iMenu, szBuffer );
menu_setprop( iMenu, MPROP_EXITNAME, "\wAtrás." );
menu_display( iId, iMenu );
}
public @Handled_ViewHats( const iId, const iMenu, const iItem )
{
if( iItem == MENU_EXIT )
{
@ClientCommand_ShowHats( iId );
return PLUGIN_HANDLED;
}
g_iItemSelected[ iId ] = iItem;
g_iHatSelected[ iId ] = iItem;
switch( iItem )
{
case 0:
{
if( g_bEquipHats[ iId ][ g_iItemSelected[ iId ] ] )
{
g_bEquipHats[ iId ][ g_iItemSelected[ iId ] ] = false;
g_iHatSelected[ iId ] = HAT_NONE;
client_print_color( iId, print_team_default, "%s Desequipaste el hat: ^3%s^1.", g_szChatPrefix, g_sHats[ g_iItemSelected[ iId ] ][ HAT_NOMBRE ] );
return PLUGIN_HANDLED;
}
else if( g_Hat[ iId ][ g_iHatSelected[ iId ] ] )
{
for( new i = 0; i < MAX_HATS; i++ )
g_bEquipHats[ iId ][ i ] = false;
g_iHatSelected[ iId ] = g_iItemSelected[ iId ];
g_bEquipHats[ iId ][ g_iItemSelected[ iId ] ] = true;
client_print_color( iId, print_team_default, "%s Equipaste el Sombrero: ^3%s^1.", g_szChatPrefix, g_sHats[ g_iItemSelected[ iId ] ][ HAT_NOMBRE ] );
return PLUGIN_HANDLED;
}
else
{
if( g_Frags[ iId ] < g_sHats[ g_iItemSelected[ iId ] ][ HAT_COST ] )
{
@ShowMenu_PreviewHats( iId );
client_print_color( iId, print_team_default, "%s Te faltan ^3%d^1 para comprar el hat: ^4%s^1.", g_szChatPrefix, g_sHats[ g_iItemSelected[ iId ] ][ HAT_COST ] - g_Frags[ iId ], g_sHats[ g_iItemSelected[ iId ] ][ HAT_NOMBRE ] );
return PLUGIN_HANDLED;
}
iEnt[ iId ] = create_entity( "info_target" );
entity_set_int( iEnt[ iId ], EV_INT_movetype, MOVETYPE_FOLLOW );
entity_set_edict( iEnt[ iId ], EV_ENT_aiment, iId );
entity_set_int( iEnt[ iId ], EV_INT_rendermode, kRenderNormal );
entity_set_model( iEnt[ iId ], g_sHats[ g_iItemSelected[ iId ] ][ HAT_MODELO ] );
g_Frags[ iId ] -= g_sHats[ g_iItemSelected[ iId ] ][ HAT_COST ];
g_sHats[ iId ][ g_iItemSelected[ iId ] ] = true;
@ShowMenu_PreviewHats( iId );
client_print_color( iId, print_team_default, "%s Compraste el hat: ^3%s^1.", g_szChatPrefix, g_sHats[ g_iItemSelected[ iId ] ][ HAT_NOMBRE ] );
g_iPurchasedHats[ iId ]++;
}
}
}
client_cmd( iId, "spk ^"%s^"", g_szItemMenuSound );
menu_destroy( iMenu );
return PLUGIN_HANDLED;
}
public @ClientCommand_ShowMenuItems( iId )
{
new szBuffer[ 100 ];
formatex( szBuffer, charsmax( szBuffer ), "\d%s^n\r[\wAMXX\d-\wES\r]\y Menú de Item`s.", g_szContactUrl );
new iMenu = menu_create( szBuffer, "@Handled_ShowMenu" );
menu_additem( iMenu, "Ver \yTop." );
menu_additem( iMenu, "Ver \yRanking." );
menu_additem( iMenu, "Elegir \yArmas." );
menu_additem( iMenu, "Comprar \yHats." );
menu_additem( iMenu, "Cambiar de \yCamara." );
menu_additem( iMenu, "Hora \yHappy." );
menu_additem( iMenu, "Guardar \yDatos." );
menu_additem( iMenu, "Cargar \yDatos." );
if( is_user_admin( iId ) )
menu_additem( iMenu, "Panel \r[ADMIN]" );
else
menu_additem( iMenu, "\dPanel \r[ADMIN]" );
menu_setprop( iMenu, MPROP_PERPAGE, 0 );
menu_setprop( iMenu, MPROP_EXIT, MEXIT_FORCE );
menu_setprop( iMenu, MPROP_EXITNAME, "\wSalir." );
menu_display( iId, iMenu, 0 );
}
public @Handled_ShowMenu( iId, iMenu, iItem )
{
if( iItem == MENU_EXIT )
{
menu_destroy( iMenu );
return PLUGIN_HANDLED;
}
switch( iItem )
{
case 0: @ClientCommand_TopRanks( iId );
case 1: @ClientCommand_Rankstats( iId );
case 2: @ClientCommand_Weapons( iId );
case 3: @ClientCommand_ShowHats( iId );
case 4: @ClientCommand_Camera( iId );
case 5: @ClientCommand_ShowHappy( iId );
case 6:
{
@fGuardar( iId );
client_print_color( iId, print_team_default, "%s Datos guardados ^3correctamente^1.", g_szChatPrefix );
}
case 7:
{
@fCargar( iId );
client_print_color( iId, print_team_default, "%s Datos cargados ^3correctamente^1.", g_szChatPrefix );
}
case 8: client_cmd( iId, "amxmodmenu" );
}
client_cmd( iId, "spk ^"%s^"", g_szItemMenuSound );
return PLUGIN_HANDLED;
}
public @ClientPlayer_Spawn( const iId )
{
if( is_user_alive( iId ) )
{
if( g_iHatSelected[ iId ] == HAT_NONE )
return PLUGIN_HANDLED;
if( is_valid_ent( iEnt[ iId ] ) )
{
remove_entity( iEnt[ iId ] );
iEnt[ iId ] = 0;
}
iEnt[ iId ] = create_entity( "info_target" );
if( !is_valid_ent( iEnt[ iId ] ) ) return PLUGIN_HANDLED;
entity_set_int( iEnt[ iId ], EV_INT_movetype, MOVETYPE_FOLLOW );
entity_set_edict( iEnt[ iId ], EV_ENT_aiment, iId );
entity_set_int( iEnt[ iId ], EV_INT_rendermode, kRenderNormal );
entity_set_model( iEnt[ iId ], g_sHats[ g_iHatSelected[ iId ] ][ HAT_MODELO ] );
}
set_task( 0.5, "@ClientCommand_Weapons", iId );
return PLUGIN_HANDLED;
}
public @ClientCommand_TopRanks( const iId )
{
new iMotd[ MAX_MOTD_LENGTH ], iLen, iKeyindex, iName[ 32 ], iAvatarFull[ 199 ], iKills, iHs, iDeaths;
get_user_name( iId, iName, charsmax( iName ) );
new iToploop = min( adv_vault_sort_numresult( g_iVault, g_iSortsT ), 5 );
iKills = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_FRAGS ] );
iDeaths = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_DEATHS ] );
iHs = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_HS ] );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen,
"<meta charset=utf-8><style>\
th{background:#0048FF;color:#d4d4d4;padding:6px}td{color:white;text-align:center}tr:nth-child(even){background:#272727}</style>\
<body style=^"background:#202020;font-family:Arial^">\
<h1 style=^"color:#d4d4d4;text-align:center^">%s - TOP 5</h1>\
<table width=100%% style=^"border-collapse:collapse;border:1px solid #0068ff^">\
<tr align=center>\
<th width=1%%>#\
<th width=1%%>FOTO\
<th width=5%%>NOMBRE\
<th width=5%%>FRAGS\
<th width=5%%>HEADSHOT\
<th width=5%%>MUERTES", g_szConsolePrefix );
for( new position = 1; position <= iToploop; position++ )
{
iKeyindex = adv_vault_sort_position( g_iVault, g_iSortsT, position );
if( !adv_vault_get_prepare( g_iVault, iKeyindex ) )
continue;
adv_vault_get_field( g_iVault, g_CampoAvatar, iAvatarFull, 199 );
adv_vault_get_keyname( g_iVault, iKeyindex, iName, 31 );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<tr align=center>" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", position );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td><img src=%s style=^"width:30px;border:1px solid #0048FF^">", iAvatarFull );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%s", iName );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", iKills );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", iHs );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", iDeaths );
}
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "</table><h6 style=^"color:#d4d4d4;text-align:center^">HECHO POR: <span style=color:#0048ff>%s</body>", g_szPluginAuthor );
show_motd( iId, iMotd, fmt( "%s - Top 5 Deathmatch.", g_szConsolePrefix ) );
}
public @ClientCommand_Rankstats( const iId )
{
new iMotd[ MAX_MOTD_LENGTH ], iLen, iName[ 32 ], iAvatarFull[ 199 ], szOldConexion[ 30 ], qDias, qHoras, qMinutos, iDmg, iHits, iKills, iHs, iKn, iDeaths;
new iRankposition = adv_vault_sort_key( g_iVault, g_iSortsT, 0, g_PlayerName[ iId ] );
get_user_name( iId, iName, charsmax( iName ) );
qDias = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_DIAS ] );
qHoras = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_HORAS ] );
qMinutos = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_MINUTOS ] );
iDmg = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_DAMAGE ] );
iHits = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_HITS ] );
iKills = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_FRAGS ] );
iDeaths = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_DEATHS ] );
iHs = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_HS ] );
iKn = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_KNIFES ] );
adv_vault_get_field( g_iVault, g_CampoAvatar, iAvatarFull, 199 );
adv_vault_get_field( g_iVault, g_CampoOldConexion, szOldConexion, 29 );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<meta charset=utf-8><style>#bg{height:366px;border:1px solid #0048FF}\
h1{font-size:15px;background:#0048FF}h2{text-align:center;font-size:20px}span{color:#0048FF}\
th{background:#0048FF;font-size:12px}td{border:1px solid #0048FF;font-size:11px}table{text-align:center;border:1px solid #0048FF}img{width:130px;border-radius:50%%;margin-top:5px}#br,#bl{width:38%%;text-align:center}\
#bl{float:left;margin-left:20px}#br{float:right;margin-right:20px}</style><body style=^"background:#202020;font-family:arial;color:#d4d4d4^">\
<div id=bg><h2>[<span>AMXX</span>] - RANKSTATS</h1>\
<h2>Tu ranking es <span>%d</span> de <span>%d</span></h3>\
<div id=bl><h1>PERFIL</h1><img src=%s><h2>Nick: <span>%s</div>", iRankposition, adv_vault_sort_numresult( g_iVault, g_iSortsT ), iAvatarFull, iName );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<div id=br>\
<h1>ESTADÍSTICAS</h1><br>\
<table width=100%%>\
<tr align=center>\
<th width=30%%>FRAGS\
<th>HEADSHOTS\
<th>MUERTES" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<tr align=center>" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", iKills );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", iHs );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", iDeaths );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<tr align=center>" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<th width=30%%>DIAS\
<th width=40%%>HORAS\
<th>MINUTOS" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<tr align=center>" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", qDias );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", qHoras );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", qMinutos );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<tr align=center>" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<th>DAMAGE\
<th>KNIFES\
<th>HITS" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<tr align=center>" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", iDmg );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", iKn );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%d", iHits );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "</table><table width=100%%>" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<tr align=center>\
<th>ÚLTIMA CONEXIÓN" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<tr align=center>" );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "<td>%s", szOldConexion );
iLen += formatex( iMotd[ iLen ], sizeof iMotd-iLen, "</table></div></body>" );
show_motd( iId, iMotd, fmt( "AMXX-RANK ^"%s^"", iName ) );
}
public @ClientCommand_ShowRank( const iId )
{
new iRankposition = adv_vault_sort_key( g_iVault, g_iSortsT, 0, g_PlayerName[ iId ] );
new iKills = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_FRAGS ] );
if( !iRankposition ) client_print_color( iId, print_team_default, "%s No estas ^3rankeando^1 en el ^4Top^1.", g_szChatPrefix );
else client_print_color( iId, print_team_default, "%s Tu rank es ^3%d^1 de ^4%d^1 con ^3%d^1 Matanza(^4s^1)", g_szChatPrefix, iRankposition, adv_vault_sort_numresult( g_iVault, g_iSortsT ), iKills );
client_cmd( iId, "spk ^"%s^"", g_szItemMenuSound );
return PLUGIN_HANDLED
}
public @Ham_SpawnPlayer( const iId )
{
if( !is_user_connected( iId ) ) return PLUGIN_HANDLED;
ExecuteHamB( Ham_CS_RoundRespawn, iId );
@ClientCommand_Weapons( iId );
set_user_godmode( iId, 1 );
give_item( iId, Weapons_Primary[ g_iItemSelected[ iId ] ][ WPN_WEAPONENT ] );
give_item( iId, Weapons_Secondary[ g_iItemSelected[ iId ] ][ WPN_WEAPONENT ] );
cs_set_user_bpammo( iId, Weapons_Primary[ g_iItemSelected[ iId ] ][ WPN_CSW ], Weapons_Secondary[ g_iItemSelected[ iId ] ][ WPN_BULLETS ] );
cs_set_user_bpammo( iId, Weapons_Secondary[ g_iItemSelected[ iId ] ][ WPN_CSW ], Weapons_Secondary[ g_iItemSelected[ iId ] ][ WPN_BULLETS ] );
if( cs_get_user_team( iId ) == CS_TEAM_CT )
set_user_rendering( iId, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 25 );
if( cs_get_user_team( iId ) == CS_TEAM_T )
set_user_rendering( iId, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 25 );
set_task( get_pcvar_float( cvar_player_protection ), "@RemoveProtection", iId );
@fCargar( iId );
return PLUGIN_HANDLED;
}
public @RemoveProtection( const iId )
{
if( !is_user_connected( iId ) ) return PLUGIN_HANDLED;
set_user_rendering( iId );
set_user_godmode( iId );
return PLUGIN_HANDLED;
}
public @Message_StatusIcon( const iMsg_id, const iMsg_dest, const iId )
{
static szIcon[ 8 ];
get_msg_arg_string( 2, szIcon, charsmax( szIcon ) );
if( equal( szIcon, "buyzone" ) && get_msg_arg_int( 1 ) )
{
set_pdata_int( iId, 235, get_pdata_int( iId, 235 ) & ~(1<<0) );
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public @BlockCommand_Client( const iId ) return PLUGIN_HANDLED;
public @ClientCommand_ShowHappy( const iId )
{
client_print_color( iId, print_team_default, "%s La ^3Hora Happy^1 está: ^3%sACTIVADA^1.", g_szChatPrefix, g_HappyTime == true ? "" : "DES" );
client_print_color( iId, print_team_default, "%s La ^3Hora Happy^1 sirve para que tu ^4Frags^1 sean ^3dobles^1.", g_szChatPrefix );
console_print( iId, "%s La Hora Happy está: %sACTIVADA.", g_szConsolePrefix, g_HappyTime == true ? "" : "DES" );
console_print( iId, "%s La Hora Happy sirve para que tu Frags sean dobles.", g_szConsolePrefix );
}
public @HappyHour( )
{
new iTime_data[ 12 ], iCurrent_date[ 4 ]
get_time( "%H", iTime_data, 12 )
get_time( "%A", iCurrent_date, charsmax( iCurrent_date ) )
new iTime = str_to_num( iTime_data )
for( new i = 0; i <= sizeof( g_Hours )- 1; i++ )
{
if( iTime != g_Hours[ i ] ) continue;
g_HappyTime = true
break;
}
if( equal( iCurrent_date, "Fri" ) )
{
g_HappyTime = true
}
}
@fGuardar( const iId )
{
if( !is_user_connected( iId ) )
return PLUGIN_HANDLED;
adv_vault_set_start( g_iVault );
for( new i = 0; i < MAX_HATS; i++ )
{
adv_vault_get_field( g_iVault, g_sFields[ 0 ][ i ], g_Hat[ iId ][ i ] );
adv_vault_get_field( g_iVault, g_sFields[ 1 ][ i ], g_bEquipHats[ iId ][ i ] );
}
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_FRAGS ], g_Frags[ iId ] );
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_DEATHS ], g_Muertes[ iId ] );
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_HS ], g_HeadShots[ iId ] );
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_KNIFES ], g_Knifes[ iId ] );
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_DIAS ], g_iDias[ iId ] );
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_HORAS ], g_iHoras[ iId ] );
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_MINUTOS ], g_iMinutos[ iId ] );
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_SEGUNDOS ], g_iSegundos[ iId ] );
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_RANGO ], g_Rango[ iId ] );
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_DAMAGE ], g_PlayerDate[ iId ][ CAMPO_DAMAGE ] );
adv_vault_set_field( g_iVault, g_Campos[ CAMPO_HITS ], g_PlayerDate[ iId ][ CAMPO_HITS ] );
adv_vault_set_field( g_iVault, g_vPurchasedHats, g_iPurchasedHats[ iId ] );
adv_vault_set_field( g_iVault, g_vHats, g_iHatSelected[ iId ] );
adv_vault_set_field( g_iVault, g_CampoAvatar, g_PlayerAvatar[ iId ] );
adv_vault_set_field( g_iVault, g_CampoOldConexion, g_PlayerOldConexion[ iId ] );
adv_vault_set_end( g_iVault, 0, g_PlayerName[ iId ] );
adv_vault_sort_update( g_iVault, g_iSortsT );
return PLUGIN_HANDLED;
}
@fCargar( const iId )
{
if( !adv_vault_get_prepare( g_iVault, _, g_PlayerName[ iId ] ) )
return;
for( new i = 0; i < MAX_HATS; i++ )
{
g_Hat[ iId ][ i ] = bool:adv_vault_get_field( g_iVault, g_sFields[ 0 ][ i ] );
g_bEquipHats[ iId ][ i ] = bool:adv_vault_get_field( g_iVault, g_sFields[ 1 ][ i ] );
}
g_Frags[ iId ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_FRAGS ] );
g_Muertes[ iId ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_DEATHS ] );
g_HeadShots[ iId ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_HS ] );
g_Knifes[ iId ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_KNIFES ] );
g_Rango[ iId ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_RANGO ] );
g_iDias[ iId ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_DIAS ] );
g_iHoras[ iId ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_HORAS ] );
g_iMinutos[ iId ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_MINUTOS ] );
g_iSegundos[ iId ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_SEGUNDOS ] );
g_iPurchasedHats[ iId ] = adv_vault_get_field( g_iVault, g_vPurchasedHats );
g_iHatSelected[ iId ] = adv_vault_get_field( g_iVault, g_vHats );
g_PlayerDate[ iId ][ CAMPO_DAMAGE ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_DAMAGE ] );
g_PlayerDate[ iId ][ CAMPO_HITS ] = adv_vault_get_field( g_iVault, g_Campos[ CAMPO_HITS ] );
adv_vault_get_field( g_iVault, g_CampoOldConexion, g_PlayerOldConexion[ iId ], charsmax( g_PlayerOldConexion[ ] ) );
adv_vault_get_field( g_iVault, g_CampoAvatar, g_PlayerAvatar[ iId ], charsmax( g_PlayerAvatar[ ] ) );
}
public @ChangeTeamInfo( iPlayer, iTeam[ ] )
{
message_begin( MSG_ONE, get_user_msgid( "TeamInfo" ), _, iPlayer );
write_byte( iPlayer );
write_string( iTeam );
message_end( );
}
public @WriteMessage( iPlayer, iTeam[ ] )
{
message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0,0,0 }, iPlayer );
write_byte( iPlayer );
write_string( iTeam );
message_end( );
}
stock ValidMessage( iText[ ], iMaxcount )
{
static iLen, i, iCount
iLen = strlen( iText );
iCount = 0
if( !iLen )
return false;
for( i = 0; i < iLen; i++ ) {
if( iText[ i ] != ' ' ) {
iCount++
if ( iCount >= iMaxcount )
return true;
}
}
return false;
}
stock bool:is_player_steam( const iId )
{
new iAuthid[ 25 ];
get_user_authid( iId, iAuthid, 24 );
if( containi( iAuthid, "STEAM_" ) == -1 )
return true;
return false;
}
Recursos: Aquí.