Lнneas, saltos y movimientos del pawn -
Orei - 07.08.2014
Hola,
Yo siempre tenнa en mente que en la programaciуn va de lнnea en lнnea, una a una (hay veces que una lнnea hace que vuelva a subir pero normalmente es asн). Por mi sentido comъn, veo que SAMP no es asн, mбs bien segъn los Callbacks harб una determinada cosa y claro entonces uno si ve йsto usa la lуgica...
Si aparece el
OnPlayerConnect "Cuando un usuario se conecta al servidor"... (yo de momento no tengo mucha idea solamente uso la lуgica). La lуgica me dice que ahн podrнa haber cosas como registros de usuario, tutoriales, ayudas para ingresar al servidor...
Pero claro, quй pasa cuando en ese Callback hay mбs cosas... por ejemplo:
OnPlayerConnect
1. Sistema de registro
3. Logueo
2. Tutorial...
etcйtera
En ese caso, їSe ejecutarнa primero el sistema de registro y luego lнnea por lнnea hasta que finalmente spawneas y pasa al Callback (OnPlayerSpawn) y ahн hace otras cosas...?
Yo pregunto йsto porque quiero saber como se mueve el salto de lнneas y el funcionamiento general del pawn cuando se estб ejecutando. Alomejor lo que he dicho es la tonterнa mбs grande del mundo pero yo creo que es lуgico.
Respuesta: Lнneas, saltos y movimientos del pawn -
Zume - 07.08.2014
SA:MP corre en un sуlo hilo. El interior de las callback se ejecuta en orden descendente.
Respuesta: Lнneas, saltos y movimientos del pawn -
Orei - 07.08.2014
Vamos como como prбcticamente todo los sistemas de programaciуn no?
Pero por ejemplo їSi estб OnPlayerSpawn encima de OnPlayerConnect?.
Gracias Zume.
Respuesta: Lнneas, saltos y movimientos del pawn -
Zume - 07.08.2014
Ese orden es irrelevante, nada mбs en el interior de las callback ejecutarб el cуdigo en orden descendente
Respuesta: Lнneas, saltos y movimientos del pawn -
Orei - 07.08.2014
Vale, entonces a lo que yo me refierнa no? se ejecutarб primero segъn el callback y dentro de ahн lнnea por lнnea.
Respuesta: Lнneas, saltos y movimientos del pawn -
Adoniiz - 07.08.2014
pawn Код:
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, Rojo, "Hola, soy la primera funciуn en ejecutar");
funcion_que_sigue_despues_del_mensaje(playerid);
SendClientMessage(playerid, -1, "Hola, soy la tercera funciуn en ejecutar");
// y asн sucesivamente hasta llegar al retorno que finaliza la funciуn
return 1;
}
stock funcion_que_sigue_despues_del_mensaje(playerid)
{
SendClientMessage(playerid, -1, "Soy el segundo mensaje en ejecutar");
return 1;
}
Como te dijeron, corre en un solo hilo, en forma descendiente (es algo obvio, no?)
Tambiйn hay funciones que teleportan una funciуn hacнa donde tu quieras dentro de esa funciуn,con [blue]goto[/blue]
Respuesta: Lнneas, saltos y movimientos del pawn -
JustBored - 07.08.2014
Los callbacks que vienen por default de SA-MP son llamados de acuerdo al tipo de evento que ocurra, por ejemplo un jugador clickea en el boton Connect en la interfaz de SA-MP el juego se inicia y muchas cosas mбs y se envнa un paquete al servidor informando que un jugador proveniente de la IP 'x' se esta conectando al servidor, en ese momento el servidor llama a la callback OnIncomingConnection con ciertos parбmetros luego una ves que se confirma la conexiуn el servidor llama a la callback OnPlayerConnect y asн sucesivamente osea son eventos uqe ocurren en un orden.
Ahora hay otros tipos de eventos osea por ejemplo OnPlayerWeaponShot es llamado de esta manera: el CLIENTE detecta accediendo a una direcciуn de memoria que nosotros disparamos a una posiciуn esto accede a estas direcciones de memoria (
http://www.gtamodding.com/?title=Mem...s_(SA)#Bullets) y luego de eso el cliente envнa un paquete al servidor diciendo que el CLIENTE disparo a cierta posiciуn con (ademбs de que se pasan otros parбmetros como el arma y esas cosas) el servidor recibe ese paquete y llama a la callback OnPlayerWeaponShot algo parecido pasa con otros callbacks como OnPlayerEnterVehicle, OnPlayerStateChange y eso
Respuesta: Lнneas, saltos y movimientos del pawn -
Orei - 07.08.2014
Yo ahora me estoy liando un poco xD.
Entonces simplemente es lo que digo yo їNo?. Yo se que va de forma descendente, pero no va a empezar asн:
Si el usuario se conecta y en el gamemode estб йsto asн...
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
lo que sea
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
No puede ejecutarse primero OnPlayerDeath їNo? sino OnPlayerConnect es lуgico creo xd, despuйs de ir de forma descendente por OnPlayerConnect salta a otro callback segъn lo que haga el usuario (lo suyo serнa el callback de spawn aunque puede ser cualquier otra cosa.
Respuesta: Lнneas, saltos y movimientos del pawn -
xTexTx - 07.08.2014
No importa en que ubicaciуn estйn, solo deben ser ejecutadas por el jugador.
EDIT: A lo que se referнa zume era que los cуdigos que estбn dentro de la callback se ejecutan en forma descendiente.
Respuesta: Lнneas, saltos y movimientos del pawn -
chusothe41 - 07.08.2014
pawn Код:
public OnPlayerVaAlRetrete(playerid)// cuando la funcion es llamada
{
AbreLaTapa(playerid);
Caga(playerid);
return 1;
}
public OnPlyaerVaAlComedor(playerid)//cuando la funcion es llamada
{
TomaLaComida(playerid);
LaCome(playerid)
return 1;
}
El orden no es que cage y luego coma sino que cuando va al retrete caga y cuadno va al comedor come pero no quiere decir que haya un orden sino una llamada, la llamada de la naturaleza XD