SA-MP Forums Archive
Creando un simple sistema de AFK - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Creando un simple sistema de AFK (/showthread.php?tid=165217)



Creando un simple sistema de AFK - TiNcH010 - 03.08.2010

Ola, weno en este post vengo a explicarles mi breve tutorial de como hacer un simple, sencillisimo sistema de AFK.
Weno primero q nada aclaro q me estoy explicando i hablando bien jeje xD weno comencemos..

Primero q nada agregamos el NEW de (en este kso ausente) seria asi:
Код:
new Ausente[MAX_PLAYERS];
Una vez agregado el new es facil, solo ponemos el cuerpo del comando, de esta manera. Nos podemos ubicar en:
OnPlayerCommandText i ponemos:

Код:
if (strcmp("/ausente", cmdtext, true, 10) == 0)
{
    new nombre[MAX_PLAYER_NAME], string1[256], string2[256];
    GetPlayerName(playerid, nombre, sizeof(nombre));
    format(string1, sizeof(string1), "*%s Ha ingresado en el modo AFK. (Ocupado/No disponible).", nombre);
    format(string2, sizeof(string1), "*%s Ha regresado del modo AFK. (Libre/Disponible).", nombre);
    if (Ausente[playerid] == 0)
    {
        Ausente[playerid] = 1;
        TogglePlayerControllable(playerid, false);
        SetCameraBehindPlayer(playerid);
        SendClientMessage(playerid, 0xDABB3EAA, "Ahora estas ausente. Para dejar de estarlo usa /ausente nuevamente.");
        SendClientMessageToAll(0x9EC73DAA, string1);
   }
   else if (Ausente[playerid] == 1)
   {
      Ausente[playerid] = 0;
        TogglePlayerControllable(playerid, true);
        SetCameraBehindPlayer(playerid);
        SendClientMessage(playerid, 0xDABB3EAA, "Ya no estas ausente.");
        SendClientMessageToAll(0x9EC73DAA, string2);
   }
   return 1;
}
Listo, vieron q facil? weno dudas, preguntas o BUGS solo diganlo..
ACLARO Q ES MI FS I NO ES COPIADO!!!!!!
Salu2


Re: Creando un simple sistema de AFK - MrDeath537 - 03.08.2010

pawn Код:
format(string1, sizeof(string1), "RevLatina: *%s Ha ingresado en el modo AFK. (Ocupado/No disponible).", nombre);
    format(string2, sizeof(string1), "RevLatina: *%s Ha regresado del modo AFK. (Libre/Disponible).", nombre);
їCopiar y pegar?


Re: Creando un simple sistema de AFK - TiNcH010 - 03.08.2010

jaja lo acabo d modifikr, lo cree yo para ese server perdon.. si no me creen pregunten al dueсo


Re: Creando un simple sistema de AFK - TheChaoz - 04.08.2010

es bastante simple. podrias hacer el codigo un poco mas eficas dejandolo asi:
pawn Код:
if(strcmp("/ausente", cmdtext, true) == 0)
{
    new nombre[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid, nombre, sizeof(nombre));
    if(!Ausente[playerid])
    {
        Ausente[playerid] = 1;
        TogglePlayerControllable(playerid, false);
        SetCameraBehindPlayer(playerid);
        SendClientMessage(playerid, 0xDABB3EAA, "Ahora estas ausente. Para dejar de estarlo usa /ausente nuevamente.");
        format(string, sizeof(string), "*%s Ha ingresado en el modo AFK. (Ocupado/No disponible).", nombre);
        SendClientMessageToAll(0x9EC73DAA, string);
   }
   else
   {
        Ausente[playerid] = 0;
        TogglePlayerControllable(playerid, true);
        SetCameraBehindPlayer(playerid);
        SendClientMessage(playerid, 0xDABB3EAA, "Ya no estas ausente.");
        format(string, sizeof(string), "*%s Ha regresado del modo AFK. (Libre/Disponible).", nombre);
        SendClientMessageToAll(0x9EC73DAA, string);
   }
   return 1;
}
Nota: no hay sentido en crear un array con un tamaсo de 256 bytes cuando se van a usar 128, el chat nunca va mas alla de 128.

aca una explicacion exelente sobre esto Why you should not use 256 de ****** (ingles)


Re: Creando un simple sistema de AFK - TiNcH010 - 04.08.2010

weno ¬¬ es lo mismo xD


Re: Creando un simple sistema de AFK - TheChaoz - 04.08.2010

en realidad usando no uno si no 2 arrays de 256 estas desperdiciando memoria, asi que no es lo mismo, pero son formas diferentes de verlo.

PD: soy demasiado detallista en algunos casos tmp es que se desperdicia la re memoria, pero si se puede evitar mejor


Re: Creando un simple sistema de AFK - Zamaroht - 04.08.2010

Estoy con the_chaoz :P, si bien puede parecer poca la memoria desperdiciada (no mбs de 1kb, y hoy en dнa una computadora servidor tiene mнnimo 1GB (~1.000.000kb) de RAM), estб bueno acostumbrarse a ahorrar memoria en cada cosa que se haga.
Ahorrar un par de bytes en un comando no es nada, pero ahorrar un par de bytes en unos cuaantos comandos puede llegar a hacer la diferencia.


Re: Creando un simple sistema de AFK - CristianTdj - 04.08.2010

Aсade [Tutorial] al principio del nombre y crйalo como si fuera tal.

Estoy de acuerdo con los demбs, yo antes era bбrbaro con los scripts y lo hacнa todo exageradнsimo, por suerte MrDeath me enseсу el buen camino :P


Re: Creando un simple sistema de AFK - MrDeath537 - 04.08.2010

Sн, me olvidй de decirtelo yo en mi comentario xD!. Estarй traduciendo el tutorial de ******.