SA-MP Forums Archive
[Pregunta] Diferencias - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Pregunta] Diferencias (/showthread.php?tid=623617)



[Pregunta] Diferencias - Doniczzz - 02.12.2016

Hola compaсeros scripters! Tengo una duda y tal vez alguno de ustedes me pueda explicar sencillamente!

Esto es algo que aъn no me queda muy claro.

їQue diferencias hay entre un forward y un callback? y que relaciуn tienen con SetTimerEx y SetTimer

Gracias!


Re: [Pregunta] Diferencias - BrianFaria - 02.12.2016

forward y public: Si tiene errores, los mostrarб y no dejarб compilar!

SetTimer es para llamar a funciones sin parбmetros. https://sampwiki.blast.hk/wiki/SetTimer
SetTimerEx es para llamar a funciones con parametros. https://sampwiki.blast.hk/wiki/SetTimerEx


Re: [Pregunta] Diferencias - Swedky - 02.12.2016

Forward se declara como cabecera de la callback/public, asн evitamos errores lуgicos al usar nuestras callbacks.


Respuesta: [Pregunta] Diferencias - GranaT3 - 03.12.2016

con el Forward declaras tъ nuevo callback.

pawn Код:
forward MiCallback();
public MiCallback()
{
    print("sooo");
}
porque sino es como si utilizaras una variable que aъn no creas xd


Re: [Pregunta] Diferencias - lucesita - 03.12.2016

Los public son funciones que el archivo AMX exporta, es decir, se puede usar desde afuera (por ejemplo, lo puede llamar otro script).
Forward lo ъnico que hace es enviar un warning si se declara un public sin un forward.
Se usa para detectar errores de tipado en un public. Supongo que funciona a nivel compilador nada mas.
El concepto de "callback" es algo que se llama cuando ocurre un evento. No tiene que ver con pawn, es un concepto de programaciуn en general.

Para que el samp-server pueda llamar a las funciones, йstas deben ser exportadas. Y es por eso que se declaran en public. Todo bloque de cуdigo que se deba llamar en tiempo de ejecuciуn, debe ser declarado como public. Es mбs, si declaras un public , compilas el archivo y abrнs el .amx con block de notas, y buscas por tu funciуn la vas a encontrar. Por supuesto que sуlo se va a ver el nombre de la funciуn, dado que el cuerpo estб compilado en bytecode para poder ser interpretado posteriormente por la mбquina abstracta AMX.