Player Connecting and Desconnecting + rank
#1
Lengua 
BIENVENIDOS A MI POST CHAVOS


.sma   Descargar AMXX / PlayerConnect.sma (Tamaño: 2.98 KB / Descargas: 149)

.inc   colorchat.inc (Tamaño: 2.46 KB / Descargas: 83)

Pues con ver el nombre creo ya saben de que es pacman, pos si no igual les digo,

Cuando el Jugador se conecta & desconecta aparece un mensaje diciendo el tipo de administrador y si no lo es dice sólo Usuario y tambien dice el rank que es y los rank que ya hay

Pienso en colocar que diga el Estado/Pais pero eso luego:3

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <csstats>
                /*    GRACIAS A TODOS :)    */

new const PLUGIN[][] = { "Player Connecting and Disconnecting + Rank""1.0""SoundBlaster" };

new const 
scon[] = "buttons/bell1.wav";

new const 
g_szPrefix[] = "[AMXX]";

public 
plugin_precache()
{
    
register_plugin(PLUGIN[0], PLUGIN[1], PLUGIN[2]);
    
    
precache_sound(scon);
}
public 
client_putinserver(id)
{
    
set_task(1.0"JugadorEntrando"id);
}

public 
JugadorEntrando(id)
{
    new 
Jugador[32];get_user_name(idJugadorcharsmax(Jugador))
    
    new 
stats], body]
    new 
rank get_user_statsidstatsbody 
    new 
rank_total get_statsnum( ) 
    
    if (
equal(scon[strlen(scon)-4], ".mp3"))
        
client_cmd(0,"mp3 play sound/%s"scon)
    else
        
client_cmd(0,"spk %s"scon)

    switch(
get_user_flags(id))
    {
        case    
ADMIN_LEVEL_B:    ChatColor(0GREEN"^x04%s^x01 El^x04 Dueño %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_LEVEL_C:    ChatColor(0GREEN"^x04%s^x01 El^x04 Encargado %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_LEVEL_D:    ChatColor(0GREEN"^x04%s^x01 El^x04 Administrador VIP %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_LEVEL_E:    ChatColor(0GREEN"^x04%s^x01 El^x04 Administrador Normal %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_USER:    ChatColor(0GREEN"^x04%s^x01 El^x04 Usuario %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
    }
}

public 
client_disconnect(id)
{
    new 
Jugador[32];get_user_name(idJugadorcharsmax(Jugador))
    new 
stats], body]
    new 
rank get_user_statsidstatsbody 
    new 
rank_total get_statsnum( )
    
    switch(
get_user_flags(id))
    {
        case    
ADMIN_LEVEL_B:    ChatColor(0GREEN"^x04%s^x01 El^x04 Dueño %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_LEVEL_C:    ChatColor(0GREEN"^x04%s^x01 El^x04 Encargado %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_LEVEL_D:    ChatColor(0GREEN"^x04%s^x01 El^x04 Administrador VIP %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_LEVEL_E:    ChatColor(0GREEN"^x04%s^x01 El^x04 Administrador Normal %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_USER:    ChatColor(0GREEN"^x04%s^x01 El^x04 Usuario %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
    }


Está es editada por Neeeeeeeeeel.- para el que la quiera
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <csstats>

new const scon[] = "buttons/bell1.wav";

new 
Jugador[33];
new const 
g_szPrefix[] = "[AMXX]";

const 
TASK_CONST 2346;

enum eFlags{
    
NAME[32],
    
FLAG
}

new const 
szFlags[][eFlags] = {
    {
"Dueño"ADMIN_LEVEL_B},
    {
"Encargado"ADMIN_LEVEL_C},
    {
"Administrador VIP"ADMIN_LEVEL_D},
    {
"Administrador Normal"ADMIN_LEVEL_E},
    {
"Usuario"ADMIN_USER}
}

public 
plugin_precache(){
    
register_plugin("Player Connecting and Disconnecting + rank""1.0""SoundBlaster");
    
precache_sound(scon);
}

public 
client_putinserver(id){
    
set_task(1.0"JugadorEntrando",id+TASK_CONST);
}

public 
JugadorEntrando(id){
    
id -= TASK_CONST;
    
get_user_name(idJugadorcharsmax(Jugador));

    new 
stats[8], body[8];
    new 
rank get_user_stats(idstatsbody);
    new 
rank_total get_statsnum();

    if (
equal(scon[strlen(scon)-4], ".mp3")){
        
client_cmd(0,"mp3 play sound/%s"scon);
    } else {
        
client_cmd(0,"spk %s"scon);
    }
    
    new 
flags get_user_flags(id);
    
    for (new 
0sizeof szFlagsi++){
        if (
flags szFlags[i][FLAG]){
            
ChatColor(0GREEN"^x04%s^x01 El^x04 %s %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixszFlags[i][NAME], Jugadorrankrank_total);
            break;
        }
    }
}

public 
client_disconnect(id){
    
get_user_name(id,Jugador,charsmax(Jugador));
    new 
stats[8], body[8];
    new 
rank get_user_stats(idstatsbody);
    new 
rank_total get_statsnum();

    new 
flags get_user_flags(id);
    
    for (new 
0sizeof szFlagsi++){
        if (
flags szFlags[i][FLAG]){
            
ChatColor(0GREEN"^x04%s^x01 El^x04 %s %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixszFlags[i][NAME], Jugadorrankrank_total)
            break;
        }
    }


.sma   Descargar AMXX / PlayerConnectN.sma (Tamaño: 1.72 KB / Descargas: 112)

Acepto sugerencias y cualquier critica, así aprendo más
Responder
#2
Seria algo como el GHW_CONECT? si no me equivoco? pero con mas cositas? buen aporte deja y como y te lo pruebo y si esta malo te meto - 3 Yao ming
* Ing. Informático * Mapper * Venezolano
Responder
#3
podrias hacer esto y ahorrarte todos los else if y colocale las respectivas flags

Código PHP:
switch( get_user_flagsid ) )
{
    case 
ADMIN_LEVEL_BChatColor(0GREEN"^x04%s^x01 El^x04 Dueño %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
    case 
ADMIN_LEVEL_CChatColor(0GREEN"^x04%s^x01 El^x04 Encargado %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
    case 
ADMIN_LEVEL_DChatColor(0GREEN"^x04%s^x01 El^x04 Administrador VIP %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
    case 
ADMIN_LEVEL_EChatColor(0GREEN"^x04%s^x01 El^x04 Administrador Normal %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)


~Digito ergo sum~
Responder
#4
Creo que la variable jugador es al pedo hacerla global ?) ya que igual obtienes el nombre en las 2 funciones, en vez de tantos "new" crealo en uno solo ( por funcion ) y en vez de tantos if ,else if, crea un switch.

EDIT: No todos tienen la libreria de "colorchat".
EDIT2:

Código PHP:
set_task(1.0"JugadorEntrando")
-->
set_task(1.0"JugadorEntrando"id 
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#5
Así está más lindo

Edit: Update. Me había comido una línea.
Edit2: Update 2. Para que no se muestre muchas veces el mensaje.
Edit3: Update3. Arreglé un par de cosas.


Archivos adjuntos
.sma   Descargar AMXX / PlayerConnect.sma (Tamaño: 1.72 KB / Descargas: 123)
[Imagen: paypalqr.png]
Responder
#6
Listo ya lo actualizeSonrisa

(14/12/2015, 02:18 PM)Neeeeeeeeeel.- escribió: Así está más lindo

Edit: Update. Me había comido una línea.

Una vez lo hice así, y cuando me conectaba lanzaba el mensaje las 4 veces por que tenia todas las letras por, eso lo cambie
Responder
#7
(14/12/2015, 02:37 PM)BlackPower1 escribió: Una vez lo hice así, y cuando me conectaba lanzaba el mensaje las 4 veces por que tenia todas las letras por, eso lo cambie
Ahí lo updatee para que eso no pase.
[Imagen: paypalqr.png]
Responder
#8
(14/12/2015, 02:37 PM)BlackPower1 escribió: Listo ya lo actualizeSonrisa

(14/12/2015, 02:18 PM)Neeeeeeeeeel.- escribió: Así está más lindo

Edit: Update. Me había comido una línea.

Una vez lo hice así, y cuando me conectaba lanzaba el mensaje las 4 veces por que tenia todas las letras por, eso lo cambie

Sera porque el player tenia todas las flags, o no hiciste la condicion correctamente...
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#9
(14/12/2015, 02:42 PM)kikizon2 escribió: Sera porque el player tenia todas las flags, o no hiciste la condicion correctamente...
Seguramente no le puso un "break" al loop.
[Imagen: paypalqr.png]
Responder
#10
Bueno gracias:3 , allí coloque el que tu editaste para el que la quiera^^
Responder
#11
(14/12/2015, 02:45 PM)Neeeeeeeeeel.- escribió:
(14/12/2015, 02:42 PM)kikizon2 escribió: Sera porque el player tenia todas las flags, o no hiciste la condicion correctamente...
Seguramente no le puso un "break" al loop.

El "break" seria para cuando tiene todas las flags, no ? si la condicion del loop solo se cumple una vez no entiendo porque mandaria 4 mensajes Confundido
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#12
(14/12/2015, 02:48 PM)kikizon2 escribió:
(14/12/2015, 02:45 PM)Neeeeeeeeeel.- escribió:
(14/12/2015, 02:42 PM)kikizon2 escribió: Sera porque el player tenia todas las flags, o no hiciste la condicion correctamente...
Seguramente no le puso un "break" al loop.

El "break" seria para cuando tiene todas las flags, no ? si la condicion del loop solo se cumple una vez no entiendo porque mandaria 4 mensajes Confundido

Allí lo dije tenia todas las flags y mandaba 1 mensaje por cada tipo de admin por si no me entiendes, yo tengo admin_level_b y level_c y mandaba los dos mensajes, cuando me conectaba decia dueño y encargado ( es decir primero el mensaje de dueño y luego encargado pacman )
Responder
#13
(14/12/2015, 02:48 PM)kikizon2 escribió:
(14/12/2015, 02:45 PM)Neeeeeeeeeel.- escribió:
(14/12/2015, 02:42 PM)kikizon2 escribió: Sera porque el player tenia todas las flags, o no hiciste la condicion correctamente...
Seguramente no le puso un "break" al loop.

El "break" seria para cuando tiene todas las flags, no ? si la condicion del loop solo se cumple una vez no entiendo porque mandaria 4 mensajes Confundido
Si está el break solo se puede mandar una vez. Cuando se cumple la condición, finaliza el loop.
[Imagen: paypalqr.png]
Responder
#14
Lindo plugin Thats what she said

Responder
#15
(14/12/2015, 03:51 PM)Skylar escribió: Lindo plugin Thats what she said

Gracias Excitedeyes
Responder
#16
Cita:Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

Warning: Indeterminate array size in "sizeof" expression (symbol "") on line 44
Warning: Indeterminate array size in "sizeof" expression (symbol "") on line 60
Header size: 568 bytes
Code size: 3268 bytes
Data size: 2476 bytes
Stack/heap size: 16384 bytes; max. usage is unknown, due to recursion
Total requirements: 22696 bytes

2 Warnings.
Done.

En el de neeeeeel da ese Warning!
[Imagen: 76561198086476173.png]
Responder
#17
Buen plugin :'v

--------------------------------------------------------

Me confundi :l, no habia descargado el .inc :c

--------------------------------------------------------

(14/12/2015, 05:04 PM)joluis81 escribió:
Cita:Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

Warning: Indeterminate array size in "sizeof" expression (symbol "") on line 44
Warning: Indeterminate array size in "sizeof" expression (symbol "") on line 60
Header size: 568 bytes
Code size: 3268 bytes
Data size: 2476 bytes
Stack/heap size: 16384 bytes; max. usage is unknown, due to recursion
Total requirements: 22696 bytes

2 Warnings.
Done.

En el de neeeeeel da ese Warning!

Proba cambiando:

Código PHP:
for (new 0sizeof szFlags[]; i++) 
------------------>
Código PHP:
for (new 0sizeof szFlagsi++) 
Hide&SeekCrab
Responder
#18
Gracias ahora si :3
[Imagen: 76561198086476173.png]
Responder
#19
(14/12/2015, 05:12 PM)Santjcs escribió: Buen plugin :'v

Tendrias que cambiar:

Código PHP:
#include <colorchat> 
------------------>
Código PHP:
#include <ChatColor> 

Sí revisas el inc , veras que no hay que cambiar eso
Responder
#20
Mira tengo un problema deje las partes de los nombres asi

Código PHP:
public JugadorEntrando(id)
{
    new 
Jugador[32];get_user_name(idJugadorcharsmax(Jugador))
    
    new 
stats], body]
    new 
rank get_user_statsidstatsbody 
    new 
rank_total get_statsnum( ) 
    
    if (
equal(scon[strlen(scon)-4], ".mp3"))
        
client_cmd(0,"mp3 play sound/%s"scon)
    else
        
client_cmd(0,"spk %s"scon)

    switch(
get_user_flags(id))
    {
        case    
ADMIN_LEVEL_E:    ChatColor(0GREEN"^x04%s^x01 El^x04 Dueño %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_KICK:    ChatColor(0GREEN"^x04%s^x01 El^x04 Admin %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_USER:    ChatColor(0GREEN"^x04%s^x01 El^x04 Usuario %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
    }
}

public 
client_disconnect(id)
{
    new 
Jugador[32];get_user_name(idJugadorcharsmax(Jugador))
    new 
stats], body]
    new 
rank get_user_statsidstatsbody 
    new 
rank_total get_statsnum( )
    
    switch(
get_user_flags(id))
    {
        case    
ADMIN_LEVEL_E:    ChatColor(0GREEN"^x04%s^x01 El^x04 Dueño %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_KICK:    ChatColor(0GREEN"^x04%s^x01 El^x04 Admin %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_USER:    ChatColor(0GREEN"^x04%s^x01 El^x04 Usuario %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
    }


Pero en el chat sale solo Admin normal :c Ni siquiera user :c
[Imagen: 76561198086476173.png]
Responder
#21
(14/12/2015, 06:12 PM)joluis81 escribió: Mira tengo un problema deje las partes de los nombres asi

Código PHP:
public JugadorEntrando(id)
{
    new 
Jugador[32];get_user_name(idJugadorcharsmax(Jugador))
    
    new 
stats], body]
    new 
rank get_user_statsidstatsbody 
    new 
rank_total get_statsnum( ) 
    
    if (
equal(scon[strlen(scon)-4], ".mp3"))
        
client_cmd(0,"mp3 play sound/%s"scon)
    else
        
client_cmd(0,"spk %s"scon)

    switch(
get_user_flags(id))
    {
        case    
ADMIN_LEVEL_E:    ChatColor(0GREEN"^x04%s^x01 El^x04 Dueño %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_KICK:    ChatColor(0GREEN"^x04%s^x01 El^x04 Admin %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_USER:    ChatColor(0GREEN"^x04%s^x01 El^x04 Usuario %s^x01 Se ha Conectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
    }
}

public 
client_disconnect(id)
{
    new 
Jugador[32];get_user_name(idJugadorcharsmax(Jugador))
    new 
stats], body]
    new 
rank get_user_statsidstatsbody 
    new 
rank_total get_statsnum( )
    
    switch(
get_user_flags(id))
    {
        case    
ADMIN_LEVEL_E:    ChatColor(0GREEN"^x04%s^x01 El^x04 Dueño %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_KICK:    ChatColor(0GREEN"^x04%s^x01 El^x04 Admin %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
        case    
ADMIN_USER:    ChatColor(0GREEN"^x04%s^x01 El^x04 Usuario %s^x01 Se ha Desconectado^x03 Su rank es^x04 %d^x03 de^x04 %d."g_szPrefixJugadorrankrank_total)
    }


Pero en el chat sale solo Admin normal :c Ni siquiera user :c

Recuerda que el plugin va leer el acceso que este antes del otro acceso, es decir, ADMIN_KICK está primero que ADMIN_LEVEL_E , o sea, por eso sale Admin, no sé si me entendiste.
Responder
#22
Ah claro claro dejame pruebo! Si entendi

EDIT: Si era eso se me paso por alto gracias!
[Imagen: 76561198086476173.png]
Responder
#23
(14/12/2015, 06:20 PM)joluis81 escribió: Ah claro claro dejame pruebo! Si entendi

EDIT: Si era eso se me paso por alto gracias!

^^Whatever
Responder
#24
Ahí arreglé unas cositas
[Imagen: paypalqr.png]
Responder
#25
(14/12/2015, 02:52 PM)Neeeeeeeeeel.- escribió:
(14/12/2015, 02:48 PM)kikizon2 escribió:
(14/12/2015, 02:45 PM)Neeeeeeeeeel.- escribió:
(14/12/2015, 02:42 PM)kikizon2 escribió: Sera porque el player tenia todas las flags, o no hiciste la condicion correctamente...
Seguramente no le puso un "break" al loop.

El "break" seria para cuando tiene todas las flags, no ? si la condicion del loop solo se cumple una vez no entiendo porque mandaria 4 mensajes Confundido
Si está el break solo se puede mandar una vez. Cuando se cumple la condición, finaliza el loop.

Voy a explicarlo mejor, por si a alguien le quedo la duda..

break = romper.

Por lo tanto, su nombre lo indica, rompe una cadena(loop) de repeticiones(for).
Es útil, cuando ya hallamos lo que buscamos al iniciar tal loop y no nos interesa seguir continuándolo.

Acá les dejo un Plugin que hice para dar un ejemplo, algo vago, de como se puede implementar el break:

Código PHP:
#include <amxmodx>

new bool:getOwner;
new 
bool:g_Owner[33];

new 
MaxPlayers;

public 
plugin_init()
{
    
register_plugin"Break Owner""0.1""Pancho.-'+hud;Erater" );
    
    
register_clcmd"say /owner""cmdOwner" );
    
    
register_event("HLTV""EventNewRound" "a""1=0""2=0");
    
    
MaxPlayers get_maxplayers();
}

public 
client_disconnect(id)
{
    if( 
g_Owner[id] )
    {
        
g_Owner[id] = false;
        
getOwner false;
    }
}

public 
cmdOwner(id)
{
    if( !
getOwner )
    {
        
getOwner true;
    
        
g_Owner[id] = true;
    
        
client_print(idprint_chat"Eres Owner ahora.");
    }
    
    else
        
client_print(idprint_chat"Ya existe un Owner.");
    
    return 
PLUGIN_HANDLED;
}

public 
EventNewRound()
{    
    
client_print(0print_chat"Comienzo de Nueva Ronda, buscando si existe algun Owner..");
    
    for( new 
1<= MaxPlayersi++ )
    {
        if( !
g_Owner[i] && == MaxPlayers //Si ya llego al final del loop y no encontro un Owner.
            
client_print(0print_chat"Busqueda finalizada, no existe ningun Owner.");
            
        else if( !
g_Owner[i] ) 
            
client_print(0print_chat"Buscando Owner... Intento%s: %i."== 1"":"s"i);
        
        else if( 
g_Owner[i] )
        {
            
client_print(0print_chat"Owner encontrado! En el Intento: %i. Loop Finalizado."i);
            
            break; 
//Ya encontramos el Owner, ya no nos interesa seguir buscando. Rompemos la cadena del for.
        
}
    }
    
    return 
PLUGIN_HANDLED;


No es el mejor ejemplo.. pero fue lo primero que se me vino a la mente. Yao ming
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)