Raised This Month: $12 Target: $400
 3% 

Crear un Modulo para Amxx Sensillo!


  
 
 
Thread Tools Display Modes
Author Message
AntiBots
Veteran Member
Join Date: May 2008
Location: Brazil
Old 11-25-2009 , 15:49   Crear un Modulo para Amxx Sensillo!
#1

Vamos a empezar con algo muy muy pero muy sensillo.
Vamos a mandar un mensaje a un player cuando este escriba.

"say /msg"

Veamos como se hace...
Primero que nada, explico el codigo, luego pongo como crear el proyecto y los archivos de encabezado del MetaMod y HLSDK.

1#
en moduleconfig.h descomentamos
PHP Code:
#define FN_ClientCommand                ClientCommand 
Porque Pre y no Post? Porque queremos el mensaje antes que salga en el chat!!

2#
Buscamos en amxxmodule.h como es el prototipo de la funcion
PHP Code:
#ifdef FN_ClientCommand
void FN_ClientCommand(edict_t *pEntity);
#endif // FN_ClientCommand 
3#
Creamos un archivo llamado frutillita.h e incluimos:
PHP Code:
#ifndef __FRUTILLITA_H__
#define __FRUTILLITA_H__

#include "amxxmodule.h" // Importante si queres que el Amxx cargue el modulo.

#include "CString.h" // Clase creada por Bailopan para compatibilidad con linux.

#endif // __FRUTILLITA_H__ 
4#
Ahora voy a mostrarle una funcion que cree para mostrar un mensaje
PHP Code:
void UTIL_ColorChat(edict_t *pEdict , const char *pMessage, ...)
{
    if ( !
pEdict )
        return;

    
va_list    argptr;
    static 
char string[192];
    
String szString("\x04[Kz-Arg] ");
    
    
va_start argptrpMessage);
    
vsnprintfstringsizeof(string) - szString.size(), pMessageargptr );
    
va_end   argptr );

    
szString.append(string);

    static 
int idMsg_SayText GET_USER_MSG_ID(PLID"SayText"NULL);

    
MESSAGE_BEGINMSG_ONE_UNRELIABLEidMsg_SayTextNULLpEdict);
        
WRITE_BYTEENDINDEXpEdict ) );
        
WRITE_STRINGszString.c_str() );
    
MESSAGE_END();

Esta funcion la agregan a frutillita.h abajo de #include "CString.h".

5#
Ahora necesitamos definir la funcion de ClientCommand.
PHP Code:
void FN_ClientCommand(edict_t *pEntity)
{
    const 
charcmd CMD_ARGV(0);
    const 
chararg CMD_ARGV(1);

    if( 
strcmp(cmd"say") != && strcmp(cmd"say_team")  != )
        
RETURN_META(MRES_IGNORED);

    if ( !
strcmp(arg"/msg") )
    {
        
UTIL_ColorChatpEntity "\1Hola,\4 Este es un Mensaje de\3 Prueba");

        
RETURN_META(MRES_SUPERCEDE);
    }
   
    
RETURN_META(MRES_IGNORED);

Asi compilamos y listo...

PD: Hoy agrego mas info... Estaba estudiando para una prueba de matematica para mañana y para distenderme un poquito escribi esto.

TODO: Agregar tutorial desde 0 para los que no tienen ni idea.
TODO: Explicar que hace cada cosa, y como solucionar errores.

Atte.
El Reymon Papa!!!
__________________
AntiBots is offline
Send a message via ICQ to AntiBots Send a message via MSN to AntiBots Send a message via Skype™ to AntiBots
Starsailor
horrible hahah
Join Date: Aug 2008
Location: Buenos Aires
Old 11-25-2009 , 15:56   Re: [ES][TUT] Crear un Modulo para Amxx Sensillo!
#2

copado,pero tengo una duda

PHP Code:
#ifndef __FRUTILLITA_H__
#define __FRUTILLITA_H__ 
no seria

PHP Code:
#ifdef 
__________________
Find my plugins here..

Ex - Spanish Moderator.
Starsailor is offline
eXacT
Veteran Member
Join Date: Apr 2009
Location: Buenos Aires
Old 11-25-2009 , 15:56   Re: [ES][TUT] Crear un Modulo para Amxx Sensillo!
#3

groso pa, ahi segun entedi creaste la funcion color chat, para qe se printee en el chat en color con el tag de kz arg tuyo
__________________

"There is no knowledge, that is not power"
eXacT is offline
Send a message via MSN to eXacT Send a message via Skype™ to eXacT
AntiBots
Veteran Member
Join Date: May 2008
Location: Brazil
Old 11-25-2009 , 15:58   Re: [ES][TUT] Crear un Modulo para Amxx Sensillo!
#4

Quote:
Originally Posted by Starsailor View Post
copado,pero tengo una duda

PHP Code:
#ifndef __FRUTILLITA_H__
#define __FRUTILLITA_H__ 
no seria

PHP Code:
#ifdef 
No, la n dice si no esta definido, el otro es si esta definido.
__________________
AntiBots is offline
Send a message via ICQ to AntiBots Send a message via MSN to AntiBots Send a message via Skype™ to AntiBots
GusS15
Veteran Member
Join Date: Oct 2009
Location: Venezuela, Caracas
Old 11-25-2009 , 16:06   Re: [ES][TUT] Crear un Modulo para Amxx Sensillo!
#5

copado Gracias +k
GusS15 is offline
Send a message via MSN to GusS15
Kiske
Veteran Member
Join Date: May 2009
Old 11-25-2009 , 18:12   Re: [ES][TUT] Crear un Modulo para Amxx Sensillo!
#6

Buenisimo!

Otra cosa:

De donde puedo sacar mas Informacion con respecto a esto ?
Porque o sea, vos usaste:

PHP Code:
#define FN_ClientCommand                ClientCommand  
void FN_ClientCommand(edict_t *pEntity); 
De que lugar puedo sacar una Lista de Funciones y algun ejemplo de como se usan o la descripcion de las mismas ?
__________________

Kiske is offline
Send a message via Skype™ to Kiske
AntiBots
Veteran Member
Join Date: May 2008
Location: Brazil
Old 11-25-2009 , 18:27   Re: [ES][TUT] Crear un Modulo para Amxx Sensillo!
#7

http://svn.tcwonline.org/viewvc.cgi/...p&root=amxmodx
http://svn.tcwonline.org/viewvc.cgi/...p&root=amxmodx

Las funciones del MetaMod son todas las forwards que tiene Fakemeta.

Simplemente las habilitas en moduleconfig.h entonces, automaticamente importa las funciones.
Sino lo podes hacer manualmente con __stdcall pero no te compliques la vida.

jaja.

Saludos.
__________________
AntiBots is offline
Send a message via ICQ to AntiBots Send a message via MSN to AntiBots Send a message via Skype™ to AntiBots
Old 11-25-2009, 18:27
01101101
This message has been deleted by 01101101. Reason: Me ganaron de mano
Alucard^
AMXX Moderator: Others
Join Date: Sep 2007
Location: Street
Old 11-25-2009 , 20:54   Re: [ES][TUT] Crear un Modulo para Amxx Sensillo!
#8

Espero el "todo" porque no cazo un fulbo :s No me gusta trabajar con codigo que no entiendo del todo.
__________________
Approved Plugins - Steam Profile

Public non-terminated projects:
All Admins Menu, HLTV parameters, Subnick,
Second Password (cool style), InfoZone,
Binary C4 plant/defuse, and more...

Private projects:
NoSpec (+menu), NV Surf Management,
PM Adanved System, KZ longjump2, and more...
Alucard^ is offline
Send a message via Skype™ to Alucard^
larito
Veteran Member
Join Date: Nov 2008
Location: Argentina- Mendoza
Old 11-25-2009 , 20:56   Re: [ES][TUT] Crear un Modulo para Amxx Sensillo!
#9

No entendi que es lo que hacen estas classes y funciones.
PHP Code:
va_list 
String
va_start
vsnprintf
va_end 
larito is offline
Send a message via MSN to larito
01101101
BANNED
Join Date: Nov 2009
Location: 9`su 09`n0n7e`r0f76a
Old 11-25-2009 , 21:06   Re: [ES][TUT] Crear un Modulo para Amxx Sensillo!
#10

Y me corregias alzheimer!!!!
sensillo
--->
sencillo
01101101 is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:10.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode