[Tutorial]Activaciуn/Desactivaciуn de funciones con #define -
Rodro - 26.11.2010
La verdad no se me ocurria que nombre ponerle al tutorial. Por si no entienden, lo que harнa es lo siguiente:
Habran visto en FS's como LuxAdmin lo siguiente:
pawn Код:
#define EnablePM_Cmd 1 // Enable/Disable PM Command [1= Enabled - 0=Disabled]
Cambiando el "1" por "0", podemos desactivar los PMs, y viceversa. Este tutorial se tratara de eso.
Primero, vamos a definir lo que queremos que se desactive/active. En este caso sera un simple comando.
pawn Код:
#define ComandoMensaje 1 //Cambia el "1" por "0" para desactivar el ComandoMensaje
Digamos que el comando es asi:
pawn Код:
if(strcmp(cmdtext, "/mensaje", true) == 0)
{
SendClientMessage(playerid,COLOR,"Este es el mensaje");
return 1;
}
Para agregarle la funciуn de activacion/desactivaciуn, hacemos le agregamos luego del { :
pawn Код:
#if ComandoMensaje == 1 //
Y al final del comando:
Quedaria asi:
pawn Код:
if(strcmp(cmdtext, "/mensaje", true) == 0)
{
#if ComandoMensaje == 1
SendClientMessage(playerid,COLOR,"Este es el mensaje");
#endif
return 1;
}
Ahora agregaremos un else, que es la contradiccion de un if. Para ponerlo, debemos eliminar el #endif y colocarlo al final de la funcion.
pawn Код:
#else
SendClientMessage(playerid,COLOR,"El mensaje esta desactivado");
#endif
Quedaria asi:
pawn Код:
if(strcmp(cmdtext, "/mensaje", true) == 0)
{
#if ComandoMensaje == 1
SendClientMessage(playerid,COLOR,"Este es el mensaje");
#else
SendClientMessage(playerid,COLOR,"El mensaje esta desactivado");
#endif
return 1;
}
Esto no solo puede usarse en comandos, sinу en funciones mas complejas, como un Anti DriveBy. Ejemplo:
pawn Код:
#if AntiDriveBy == 1
if(newstate == PLAYER_STATE_DRIVER)
{
for (new i = 0; i<13; i++)
{
GetPlayerWeaponData(playerid, i, ArmasJugador[playerid][i], MunicionJugador[playerid][i]);
}
ResetPlayerWeapons(playerid);
}
if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
{
for(new i=0;i<13;i++)
{
GivePlayerWeapon(playerid,ArmasJugador[playerid][i],MunicionJugador[playerid][i]);
}
}
#endif
Bueno, eso es todo. Espero que les sirva
Saludos!
Respuesta: [Tutorial]Activaciуn/Desactivaciуn de funciones con #define -
TheChaoz - 27.11.2010
un par de cosas
1є
si vas a usar
no uses antes del mismo
2є
se llaman macros
3є
los codigos ponelos entre [pawn*] y [/pawn*] (sin los '*')
Respuesta: [Tutorial]Activaciуn/Desactivaciуn de funciones con #define -
Rodro - 27.11.2010
Errores corregidos, gracias.
Respuesta: [Tutorial]Activaciуn/Desactivaciуn de funciones con #define -
MrDeath537 - 27.11.2010
Tambiйn se puede hacer de la siguiente forma:
pawn Код:
#define MENSAJE
// OnPlayerCommandText
if (!strcmp(cmdtext, "/test", true))
{
#if defined MENSAJE
SendClientMessage(playerid, 0xFFFFFFFF, "Mensaje.");
#endif
return 1;
}
Respuesta: [Tutorial]Activaciуn/Desactivaciуn de funciones con #define -
TheChaoz - 27.11.2010
Quote:
Originally Posted by MrDeath
Tambiйn se puede hacer de la siguiente forma:
pawn Код:
#define MENSAJE
// OnPlayerCommandText if (!strcmp(cmdtext, "/test", true)) { #if defined MENSAJE SendClientMessage(playerid, 0xFFFFFFFF, "Mensaje."); #endif return 1; }
|
hay infinidad de formas de hacerlo. tambien lo podes hacer x funciones o integers comunes. x archivos. x db. x tantos metodos