Welcome Soldier.



[APORTE] Rank y top10 para CTF

Fury Ausente
User
#1
Rank y top10 por banderas capturadas y banderas recuperadas.



Código PHP:
<?php 
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <jctf>
#include <adv_vault>

#define PLUGIN "Rank - Top10 CTF"
#define VERSION "1.0"
#define AUTHOR "Soy nuevo"

new g_flagcaptured[ 33 ]
new
g_flagreturned[ 33 ]

new
g_vault
new g_sort
new g_playername[ 33 ][ 32 ]
new
motd[ 1536 ]
new
g_maxplayers

new const g_sPrefix[] = "!t[!gamxmodx-es.com!t]"

enum {
   FLAGSCAPTURED,
   FLAGSRETURNED,
   MAX_FIELDS
}

new
g_campos[MAX_FIELDS]

public
plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

g_vault = adv_vault_open("CaptureTheFlags", false)
g_campos[FLAGSCAPTURED]     = adv_vault_register_field(g_vault, "FlagsCaptured")
g_campos[FLAGSRETURNED]     = adv_vault_register_field(g_vault, "FlagsReturned")
adv_vault_init(g_vault)

g_sort = adv_vault_sort_create( g_vault, ORDER_DESC, 0, 2000, g_campos[ FLAGSCAPTURED ], g_campos[ FLAGSRETURNED ] )

register_event("HLTV", "round_start", "a", "1=0", "2=0")

register_clcmd("say /rank", "ranking")
register_clcmd("say /top", "top10_flags")

g_maxplayers = get_maxplayers()
}

public
client_putinserver( id )
{
get_user_name(id, g_playername[id], 31 );

g_flagcaptured[ id ] = 0
g_flagreturned
[ id ] = 0

set_task
( 15.0, "publicidad", id)

LoadData( id )
}

public
client_disconnect( id )
{
SaveData( id )
}

public
publicidad( id )
{
chat_color( id, "%s !nTipea !g/rank !npara ver tu rank de !tBanderas Capturadas!n.", g_sPrefix )
chat_color( id, "%s !nTipea !g/top !npara ver el TOP10 de !tBanderas Capturadas!n.", g_sPrefix )
}

public
jctf_flag(iEvent, id, iFlagTeam, bool:bAssist)
{
switch(
iEvent)
{
case
FLAG_RETURNED:
{
if(!
bAssist)
{
g_flagreturned[ id ]++
}
}
case
FLAG_CAPTURED:
{
if(!
bAssist)
{
g_flagcaptured[ id ]++
}
}
}
}

public
top10_knife( id )
{
   new flagsc, flagsr,  keyindex, pj[ 32 ]
   
   static len
   
   len
= 0

   new toploop
= min( adv_vault_sort_numresult( g_vault, g_sort ), 10 )
   
   len
+= formatex(motd[len], sizeof motd-len,
   "<body bgcolor=#A4BED6>\
   <table width=100%% cellpadding=2 cellspacing=0 border=0>\
   <tr align=center bgcolor=#52697B>\
   <th width=20%%>Posicion\
   <th width=20%% align=left>Nombre\
   <th width=20%%>Banderas Capturadas\
   <th width=20%%>Banderas Recuperadas"
);
   
   for
( new position=1; position <= toploop; position++ )
   {
       keyindex = adv_vault_sort_position( g_vault, g_sort, position )
       
       if
( !adv_vault_get_prepare( g_vault, keyindex ) ) continue
       
       flagsc
= adv_vault_get_field( g_vault, g_campos[ FLAGSCAPTURED ] )
       flagsr = adv_vault_get_field( g_vault, g_campos[ FLAGSRETURNED ] )
       
       adv_vault_get_keyname
( g_vault, keyindex, pj, 31 )

       len += formatex(motd[len], sizeof motd-len, "<tr align=center>");
       len += formatex(motd[len], sizeof motd-len, "<td>%d", position);
       len += formatex(motd[len], sizeof motd-len, "<td align=left>%s", pj);
       len += formatex(motd[len], sizeof motd-len, "<td>%d", flagsc);
       len += formatex(motd[len], sizeof motd-len, "<td>%d", flagsr);
   }
   
   len
+= formatex(motd[len], sizeof motd-len, "</table></body>");
   
   show_motd
( id, motd, "TOP10 Capture The Flags");
}

public
ranking( id )
{
   new rank = adv_vault_sort_key(g_vault, g_sort, 0, g_playername[ id ] )
   
   if
( !rank )
   {
   
    chat_color
(id, "%s !nTodavia no estas rankeando :C", g_sPrefix)
   }
   else chat_color(id, "%s !nTu rank es !t%d !ncon !g%d !nbanderas capturadas y !g%d !nrecuperadas", g_sPrefix, rank, g_flagcaptured[ id ], g_flagreturned[ id ])
}

public
round_start()
{
for(new
id=1; id <= g_maxplayers; id++)
{
if(
is_user_connected( id ) )
SaveData( id )
}
   
adv_vault_sort_update
(g_vault, g_sort)
}

public
client_infochanged( id )
{
   if( !is_user_connected( id ) ) return
   
   static newname
[ 32 ]
   
   get_user_info
( id, "name", newname, charsmax( newname ) )    
   
   if
( !equal(newname, g_playername[ id ] ) )
   {
       set_task( 0.1, "LoadData", id )
   }
}
public
SaveData( id )
{
if(!
is_user_connected( id ) ) return;
   
adv_vault_set_start
( g_vault )
adv_vault_set_field( g_vault, g_campos[ FLAGSCAPTURED ], g_flagcaptured[ id ] )
adv_vault_set_field( g_vault, g_campos[ FLAGSRETURNED ], g_flagreturned[ id ] )
adv_vault_set_end( g_vault, 0, g_playername[ id ] )
}
public
LoadData( id )
{

if(!
adv_vault_get_prepare(g_vault, _, g_playername[ id ] ) )        
           
return;
   
g_flagcaptured
[ id ] = adv_vault_get_field( g_vault, g_campos[ FLAGSCAPTURED ] )
g_flagreturned[ id ] = adv_vault_get_field( g_vault, g_campos[ FLAGSRETURNED ] )
}

stock chat_color( const id, const input[], any:... )
{
new
count = 1, players[ 32 ]

static
msg[ 191 ]

vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!g", "^4" )
replace_all( msg, 190, "!n", "^1" )
replace_all( msg, 190, "!t", "^3" )
replace_all( msg, 190, "!t2", "^0" )

if (
id ) players[ 0 ] = id; else get_players(players, count, "ch" )
{
for (new
i = 0; i < count; i++)
{
if (
is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, players[ i ] )
write_byte( players[ i ] )
write_string( msg )
message_end()
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
*/
Lo ollvidaba Creditos para: Soy nuevo

"El día que seas capaz de llorar de impotencia ante una injusticia, ese día seremos compañeros"
Responder

PlayEasymx Sin conexión
User
#2
CREDITS: Soy nuevo
[+] 3 users say Thank You to PlayEasymx for this post
Responder

Pantunflas. Sin conexión
User
#3
Cuando se vuelven a resetear los scores?
[Imagen: 4582718fef90032cd9f84895b8dbd4c3.gif]
[+] 2 users say Thank You to Pantunflas. for this post
Responder

PlayEasymx Sin conexión
User
#4
(07-07-2017, 09:14 PM)Pantunflas. escribió: Cuando se vuelven a resetear los scores?

Borrando el contenido de vault en la carpeta data
[+] 3 users say Thank You to PlayEasymx for this post
Responder

ChrstopH Ausente
Hypnotize
#5
deberías agregar en el thr que necesitas la api de adv_vault activada

Código PHP:
<?php 
register_clcmd
("say /top", "top10_flags")

seguro que abre el top10? gg
[Imagen: 76561198283253977.png]

Mapas Frutas 100%
DeathRun Levels 100%
Atrapa al Traidor (Edición) 100%
Battle Royale 40%
[+] 1 user says Thank You to ChrstopH for this post
Responder

Sky^^ Sin conexión
User
#6
(07-07-2017, 11:54 PM)PlayEasymx escribió:
(07-07-2017, 09:14 PM)Pantunflas. escribió: Cuando se vuelven a resetear los scores?

Borrando el contenido de vault en la carpeta data

No se resetea, tienes que hacerlo manualmente.

EDIT: Como dice Chris, el top ni se abrirá v:
[Imagen: 76561198095047868.png]

Perfil de amxmodx-es: Skylar
Responder

Fury Ausente
User
#7
(07-13-2017, 07:41 PM)°Ushio-Z escribió: Que nalgotas Playeas 7u7

Ste men :roflmao:

"El día que seas capaz de llorar de impotencia ante una injusticia, ese día seremos compañeros"
Responder





Usuarios navegando en este tema:
1 invitado(s)



Sobre M X E M E X I C O

Comunidad MxE © 2020 - La mejorar comunidad de Counter Strike 1.6 .