їDiferencia entre stock y public? -
Johansitho - 17.05.2015
Buenas amigos, Hoy tengo un duda, їQue diferencia hay entre un stock y un public (con forward) o function que es el macro de un forward y public?.
Gracias desde ya.
Respuesta: їDiferencia entre stock y public? -
OTACON - 17.05.2015
http://forum.sa-mp.com/showpost.php?...07&postcount=3
para que escribir si ya esta la respuesta ... ![Tongue](images/smilies/razz.gif)
saludos.
Respuesta: їDiferencia entre stock y public? -
Johansitho - 17.05.2015
Quote:
Originally Posted by OTACON
|
Haha, Gracias
Re: їDiferencia entre stock y public? -
bm0z - 17.05.2015
Para mн la diferencia mбs importante es que si llenas un GM con public, se pierde eficiencia a la hora de usar CallLocalFunction y CallRemoteFunction, asн como todas las funciones que son llamadas desde la aplicaciуn o desde los plugins.
La razуn de esto es que todos los callback se guardan en un vector y a la hora de llamar a esas funciones se hace una bъsqueda con un loop (while, for, etc) y un strcmp, uno por uno hasta dar con el nombre de la funciуn.
Por eso si una funciуn va a ser usada asн:
PHP код:
forward algo();
public algo()
{
// ...
}
main()
{
algo();
}
Lo mejor es usar stock.
Por otra parte, tengo que decir que hay mucha manнa por aquн en optimizar cуdigo en cosas que quizбs tardan menos de 1ms en ejecutarse, cuando lo que mбs lag causa suelen ser las funciones fopen, fread, fwrite, etc...
Simplemente con tener el script optimizado para que esas funciones no se usen constantemente ya es suficiente para que un servidor pueda soportar 300 player fijos y sin lag (no he tenido la suerte de experimentar con mбs players
![Cheesy](images/smilies/biggrin.png)
)
Respuesta: їDiferencia entre stock y public? -
Johansitho - 17.05.2015
@bm0z Vale, Gracias
Re: їDiferencia entre stock y public? -
SickAttack - 17.05.2015
Cuando se utiliza un stock y un public?
Publics:- Cuando se crea un timer.
Код:
SetTimerEx("Function", 2000, true, "i", playerid);
forward Function(playerid);
public Function(playerid)
{
return 1;
}
- Cuando llamas a una funciуn localmente o remotamente.
Код:
CallLocalFunction("OnLookupComplete", "i", playerid);
forward OnLookupComplete(playerid);
public OnLookupComplete(playerid)
{
return 1;
}
Stocks:- Cuando se hace una librerнa que tiene funciones que tal vez o tal vez no se usa en el script principal.
- Cuando no utilizas una funciуn, array o variable en tu script.
Код:
stock st_function[MAX_STRING][MAX_STRING];
stock st_calcule[MAX_STRING][MAX_STRING];
Код:
static const stock ColorCharacters[MAX_COLOR_CHARACTERS] = "";
Код:
stock GetAdminLevelName(level)
{
return 1;
}
- Tambiйn el "stock" se utiliza como gestor de bъsqueda, osea, a la hora de buscar la funciуn se pone "stock funcion". Pero de igual forma puedes crear funciones sin ni una palabra clave.
Код:
GetAdminLevelName(level)
{
return 1;
}
Hay casos en donde se puede utilizar los dos:
pawn Код:
public OnGameModeInit()
{
Funcion_1();
Funcion_2();
return 1;
}
stock Funcion_1()
{
return 1;
}
forward Funcion_2();
public Funcion_2()
{
return 1;
}