їPorque no usar stock?
#1

Hoy estaba leyendo un post de el porquй no usar los stock, pero no me quedo del todo claro. Entendi todo lo que quizo decir pero lo que no me quedo claro es que si no uso el stock, їentonces que uso? un public con un forward?, o que?

https://sampforum.blast.hk/showthread.php?tid=570635
Reply
#2

El stock es un conjunto de funciones...

Si vos estas haciendo por ejemplo que cuando el spawnea le de 100 de vida y una escopeta podes poner eso en el OnPlayerSpawn o podes hacer un stock que sea por ejemplo "Spawnear" y que dentro del stock este la funciуn de dar vida y la escopeta, entonces en OnPlayerSpawn pondrнas el "spawnear".

їSe entiende?
Reply
#3

Claro, la alternativa serнa usar:
Код:
forward Function();
public Function()
Reply
#4

Quote:
Originally Posted by Goncho28
Посмотреть сообщение
El stock es un conjunto de funciones...

Si vos estas haciendo por ejemplo que cuando el spawnea le de 100 de vida y una escopeta podes poner eso en el OnPlayerSpawn o podes hacer un stock que sea por ejemplo "Spawnear" y que dentro del stock este la funciуn de dar vida y la escopeta, entonces en OnPlayerSpawn pondrнas el "spawnear".

їSe entiende?
De lo que tu hablas se llaman funciones, existe una muy mala costumbre de llamarle stock a las funciones.


Para el creador del tema, se usa stock antes de declarar una funciуn o variable en caso de no estar seguro de que la vallas a utilizar (normalmente se suele usar en los .inc), si estas seguro que vas a utilizar la funciуn o variable simplemente no coloques el stock (ojo me me refiero a la palabra reservada stock no confundir con funciones)

pawn Код:
stock Mi_Variable[MAX_PLAYERS]; //En caso de que la variable no se use no dara warning al compilar

stock Funcion() {   //En caso de que la funcion no se use no dara warning al compilar

}
Reply
#5

Quote:
Originally Posted by Ghost112397
Посмотреть сообщение
Claro, la alternativa serнa usar:
Код:
forward Function();
public Function()
No tienes que hacer eso, simplemente puedes hacer:
pawn Код:
Function()
{
    //cosas
}
Creo que un public si es diferente a un stock..
Reply
#6

http://forum.sa-mp.com/showthread.ph...20#post3533720

Mбs claro imposible, un saludo.
Reply
#7

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

Mбs claro imposible, un saludo.
Reply
#8

Gracias a todos por sus respuesta, ya me quedo claro
Reply
#9

Nadie da una respuesta fija porque no hay uno. Teoricamente, no es necesario y es incorrecto; pero a la vez, nada es alterado si utilizas la palabra clave stock y creas un stock function (porque asi se le dice, hasta en el pawn-lang.pdf) o no. El tema que mencionaste fue al extremo y es puro teoria; osea, de como se usa, no como lo podrias usar para beneficiarte - porque son dos cosas totalmente distintos.

La palabra clave stock (en prefijo de una funcion) define la posibilidad de que una funcion no sera utilizada, y si no es usada, no te dara un warning al momento de compilar. Recuerda que calquier stock function que no es referido a, no sera incluido al amx y sera totalmente ignorado por el compilador.

Los public functions utilizan mas memoria y deberian ser utilizadas en casos especiales (sus nombres son guardados en el amx).

La mayoria utiliza la palabra clave stock al crear funciones porque les da accesibilidad (menos batallo para encontrar la funcion que hace todo el procedimiento). Y tambien es por eso que la utilizo yo personalmente.

El uso de la palabra clave stock (en prefijo de una funcion) depende del programador y su comodidad. No es necesario (para nada) utilizarlo, pero no pasa nada si lo usas, y con mas razon por las limitaciones del IDE que tenemos. Muchos se acostumbraron al uso del stock al crear una funcion y para cambiar eso, tendriamos que acostumbrarnos al nuevo prefijo o hacernos la vida mas dificil de lo que ya es (usar funciones planas y batallar al buscarlos) simplemente por ese tema del abuso de la palabra clave (yo estoy en contra de eso). La podrias cambiar por una declaracion nula para tener ese aspecto de accesibilidad pero si no hay ningun cambio entre el uso del stock y un macro al crear funciones (tomando en cuenta ese beneficio de la busqueda), entonces no te forces a hacer algo totalmente innecesario con ningun beneficio.

En todo caso, puedes crear funciones desnudas y no pasa nada. Nomas que no tendrias ese aspecto de busqueda (beneficio).

e.g.
pawn Код:
function
{
    return 1;
}
Informacion Adicional:

https://sampwiki.blast.hk/wiki/Function
http://www.compuphase.com/pawn/Pawn_Language_Guide.pdf
Reply
#10

SickAttack, es bastante irуnico que tambiйn se puedan declarar variables con la palabra clave "stock".

No le llaman "stock function" a los "stocks", si no a las funciones que son declaradas con esta palabra clave. Por lo que las variables con dicha palabra, son llamadas "stock variable".
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)