їDiferencia entre stock y public?
#1

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.
Reply
#2

http://forum.sa-mp.com/showpost.php?...07&postcount=3

para que escribir si ya esta la respuesta ...
saludos.
Reply
#3

Quote:
Originally Posted by OTACON
Посмотреть сообщение
http://forum.sa-mp.com/showpost.php?...07&postcount=3

para que escribir si ya esta la respuesta ...
saludos.
Haha, Gracias
Reply
#4

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 )
Reply
#5

@bm0z Vale, Gracias
Reply
#6

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;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)