Saltar al contenido
  • Global

    Global

    Chatroom Rules

    • NO SE DA SOPORTE EN CHATBOX
    • NO SPAM
    • NO FLOOD

Publicaciones recomendadas

  • Usuario
Publicado

Esta es una guía compleja de improvisaciones que conozco para mejorar nuestro servidor. (Y para entrar un poco más en la comunidad).

 

Comencemos:

 

 

 

Timers

Algo que siempre sube el Ping en nuestro Servidor, ya que SA-MP corre en un hilo, y un timer ejecutándose hace correr a ese hilo un poco mas lento. Les daré formas de como evitar usar muchos.

 

 

Timer's por restricciones

Si usamos Timer's por restricciones, me refiero a que un usuario no pueda realizar 'X' acción/comando por un determinado momento, un Timer no es la mejor opción. Una manera de solucionarlo es usando el include de DesingMyCry: http://forum.sa-mp.com/showthread.php?t=439112. Es %100 recomendable usarlo, ya que no hay necesidad de usar Timer's para verificar si el tiempo de una acción pasó o no. (Ya que usa las nativas de SA-MP. ('gettime')).

 

 

Rejas en movimiento

Es raro que en un Servidor no se usen Rejas en movimiento; normalmente usan un timer para volver a cerrar la reja, pero hay una callback que podría solucionar ese problema: http://wiki.sa-mp.com/wiki/OnObjectMoved - Es llamada cuando un objeto termina de moverse.

 

 

 

Celdas

Formatear muchas celdas innecesarias usan muchos recursos y hace una compilación más lenta.

Recomiendo que cuenten la cantidad de celdas para no usar tantas, un ejemplo sería:

 

No recomendado:

new string[144];
format(string, sizeof(string), "* Tus datos principales: %s[%d].", GetName(playerid), playerid);
SendClientMessage(playerid, -1, string);

Recomendado:

new string[55];
format(string, sizeof(string), "* Tus datos principales: %s[%d].", GetName(playerid), playerid);
SendClientMessage(playerid, -1, string);

Qué hice ahí? Fue bajar la cantidad de celdas y ocupar sólo las necesarias.

Nota: Tengan en cuenta que si formatean el Nick del Jugador, deben aregarle '+24' celdas a la matriz/array.

Nota 2: Los Hexadecimales almacenan '+8' caracteres. (Escribiendo el Hexadecimal entero).

Nota 3: Deben agregar '+1' celda por el caracter nulo.

 

 

 

 

Macros y funciones

Las funciones (stock) bajan la velocidad de compilación si no se optimizan bien. Un ejemplo en Dini que se puede apreciar es:

stock dini_Exists(filename[])
{
return fexist(filename);
}

stock dini_Remove(filename[])
{
return fremove(filename);
}

Cuando podría ser:

#define dini_Exists fexist
#define dini_Remove fremove

Ya que los macros son compilados por el pre-compilador.

 

 

 

 

Este es sólo una partecita del tutorial, en breve lo iré actualizando.

Si vieron algo mal, o tienen dudas posteenlo aquí.

 

Saludos.

 

  • Usuario
Publicado

Es bueno aun el dini, pero sigo recomendando que aprendan a usar MySQL en samp no es tan dificil y es muy eficaz. Buen tutorial.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invitado
Responder a este tema...

×   Pegar como texto enriquecido.   Pegar como texto sin formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incrustado automáticamente..   Mostrar como un enlace en su lugar

×   Se ha restaurado el contenido anterior.   Limpiar editor

×   No se pueden pegar imágenes directamente. Carga o inserta imágenes desde la URL.

  • Explorando recientemente   0 miembros

    • No hay usuarios registrados viendo esta página.
×
×
  • Crear nuevo...