Quantcast
Channel: SA-MP Forums
Viewing all articles
Browse latest Browse all 18226

[Tutorial] Bucles]_ Aprende a dar ID´s y a facilitarte el trabajo con tus objetos.

$
0
0
Hola..!, esta guía te enseñará como generar bucles, en este caso muchos lo conoceran (for(new [...])
pero no saben como funcionan, o todas las funciones que se les puede dar, hoy, te enseñaré a aprovechar al máximo esta estupenda función.






Ejemplo de TextDraw




En esta ocasión, el bucle nos ayudará con la simplificación del trabajo, y mucho ahorro de tiempo y memoria.

Code:

Ejemplo sin bucles


new text:mistextdraw[12];


TextDrawShowForPlayer(playerid, mistextdraw[0]);
TextDrawShowForPlayer(playerid, mistextdraw[1]);
TextDrawShowForPlayer(playerid, mistextdraw[2]);
TextDrawShowForPlayer(playerid, mistextdraw[3]);
TextDrawShowForPlayer(playerid, mistextdraw[4]);

[.....]

Si la línea de TextDraws llega a ser más de 100(mistextdraw[100] o más) se deberían generar muchas líneas solo para mostrar el código entero.


Code:

Ejemplo con Bucle

new text:mistextdraw[99];

for(new i = 0; i < 99; i++)
{
TextDrawShowForPlayer(playerid, mistextdraw[i]);
}

Ese simple código realizado, mostrará al player el textdraw mistextdraw con la id "i", es decir, la i se repite, una vez, otra vez, y otra vez, el resultado es" i++ ", si i es menor a 99 sigue sumando "i", cuando llega a 99, se detiene.






Ejemplo de ID's


Si queremos realizar algún sistema, que lleve a cabo npc´s, playerid, o sistemas que se refieren a ids, los bucles te ayudaran a generar y simplificar el trabajo de las ids.


Code:

Ejemplo de Código con playerid
_Sin simplificación


public mandarmensaje(playerid)
{
SendClientMessage(playerid, -1, "Mensaje");
return 1;
}




_Con simplificacion


public mandarmensaje(playerid)
{
 
      for(new i = 0; i < MAX_PLAYERS; i++)
      SendClientMessage(i, -1, "Mensaje");
return 1;
}


En este caso la simplificación no combiene mucho, ya que generamos más líneas que antes, y la simplificación solo se da en un caso: en el SendClientMessage.


Lo que hace es obtener la id del jugador, va sumando "i++" , i es menor a Max players.


       
Code:

       
_Ejemplo código grande

#define MAX_ZOMBIES 1000 //Maximo de zombies es 1000
public MoveZombie(npcid, zombieid)
{

       for(new i = 0; i < MAX_ZOMBIES; i++)
       {
       new Float:x, Float:y, Float:z,  Float:x2, Float:y2, Float:z2;
       GetPlayerPos(i, x, y, z);
       GetPlayerPos(playerid, x2, y2, z2);
       if(IsPlayerInRangeOfPoint(i, x2, y2, z2))
       FCNPC_MeleeAttack(i, 1, 1);
       }
       return 1;    
}
     



[...]Guía En progreso


     for(new i = 0; i <




Viewing all articles
Browse latest Browse all 18226

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>