[MODULE] PlayNET
- shao
- Posts: 6048
- Joined: Wed Jun 17, 2009 4:51 pm
Re: [MODULE] PlayNET
Ok, solo espero no tener que esperar mucho para disponer de ella.
Contacto: romopua@gmail.com
- CicTec
- Posts: 16590
- Joined: Thu Jul 31, 2008 10:18 pm
Re: [MODULE] PlayNET
Resubida Version compatible con el update 7.0.5.
Link de descarga disponible al principio del thread.
Esta version corrige el bug presente que impide recibir correctamente los datos de los clientes en programas con mas de 2 jugadores.
El fix actualmente es disponible solo en la version para windows.
Un Saludo.
Link de descarga disponible al principio del thread.
Esta version corrige el bug presente que impide recibir correctamente los datos de los clientes en programas con mas de 2 jugadores.
El fix actualmente es disponible solo en la version para windows.
Un Saludo.
- Nightwolf
- Posts: 3032
- Joined: Tue Oct 07, 2008 3:26 pm
- Location: Aquí mismo.
- Contact:
Re: [MODULE] PlayNET
Qué genial CicTec
En serio, muchísimas gracias por tu esfuerzo!
- SimulatorOne
- Posts: 6626
- Joined: Tue Nov 17, 2009 2:52 pm
- Location: Barcelona
- Contact:
Re: [MODULE] PlayNET
aaahhh, ahora entiendo por que me bugeaba la version Multiplayer del Rosie, Servidor-Clientes.CicTec wrote:Resubida Version compatible con el update 7.0.5.
Link de descarga disponible al principio del thread.
Esta version corrige el bug presente que impide recibir correctamente los datos de los clientes en programas con mas de 2 jugadores.
El fix actualmente es disponible solo en la version para windows.
Un Saludo.
Me bugeaba a partir de mas de 2 jugadores, perdia informacion y no la mostraba en otros clientes. y daba fallo.
de momento no estoy programando nada modo net.
- CicTec
- Posts: 16590
- Joined: Thu Jul 31, 2008 10:18 pm
Re: [MODULE] PlayNET
Si, era para eso, con el fix te deberia funcionar correctamiente ahora.
- SimulatorOne
- Posts: 6626
- Joined: Tue Nov 17, 2009 2:52 pm
- Location: Barcelona
- Contact:
Re: [MODULE] PlayNET
aun no se que uso tiene estas 2 funciones tan curiosas.CicTec wrote:Subida nueva version:
...
- * Añadido: nuevas funciones para replicas de datos:
- NET_REPLICA_DECLARE, NET_REPLICA_UPDATE
necesitaria alguna explicacion logica y tambien si es recomendable y en que situaciones.
------------
en la DOC de REference.txt
me fijado que pone esto:
Code: Select all
* INT net_player_online[128] (= 0)
entonces.... net_player_online[0] es el server/jugador1
net_player_online[1] es el jugador 2 /cliente N.1
net_player_online[128] seria.... jugador 129 /cliente N.128..... no, no me cuadra.
si dices que maximos soportan 128 jugadores(el jugador1=servidor)....
contando con el 0 como el jugador 1, deberia ser de esta manera: 127
Code: Select all
* INT net_player_online[127] (= 0)
no esta bien documentada esa cifra y tiende a confundir.
- CicTec
- Posts: 16590
- Joined: Thu Jul 31, 2008 10:18 pm
Re: [MODULE] PlayNET
Hola Simulatorone,
La funciones replicas indican cuales bloques de datos replicar, la funcion DECLARE, declara el bloque de datos, y puede ser llamada da Server o clients, la funcion UPDATE, puede ser llamada solo dal server y actualiza las replicas, o sea, envia a todos los clients, execpto el que ha llamado la funcion DECLARE, en automatico para el numero de veces especificado en la funcion declare, el bloque de datos.
Las replicas son utiles, cuando se deben enviar varias veces los mismos datos, o datos importantes para ser seguros que lleguen, o para que se ejecuten en automatico.
Sobre el array, es 128, o sea 128 conexiones, 1 server y 127 clients (o 128 si el server es tambien player).
La funciones replicas indican cuales bloques de datos replicar, la funcion DECLARE, declara el bloque de datos, y puede ser llamada da Server o clients, la funcion UPDATE, puede ser llamada solo dal server y actualiza las replicas, o sea, envia a todos los clients, execpto el que ha llamado la funcion DECLARE, en automatico para el numero de veces especificado en la funcion declare, el bloque de datos.
Las replicas son utiles, cuando se deben enviar varias veces los mismos datos, o datos importantes para ser seguros que lleguen, o para que se ejecuten en automatico.
Sobre el array, es 128, o sea 128 conexiones, 1 server y 127 clients (o 128 si el server es tambien player).
- SimulatorOne
- Posts: 6626
- Joined: Tue Nov 17, 2009 2:52 pm
- Location: Barcelona
- Contact:
Re: [MODULE] PlayNET
gracias pro la aclaracion, esta bien explicada muy util, desconocia que DECLARE pueden usarlo el cliente tambien(no le veo sentido para el cliente aun).CicTec wrote:Hola Simulatorone,
La funciones replicas indican cuales bloques de datos replicar, la funcion DECLARE, declara el bloque de datos, y puede ser llamada da Server o clients, la funcion UPDATE, puede ser llamada solo dal server y actualiza las replicas, o sea, envia a todos los clients, execpto el que ha llamado la funcion DECLARE, en automatico para el numero de veces especificado en la funcion declare, el bloque de datos.
Las replicas son utiles, cuando se deben enviar varias veces los mismos datos, o datos importantes para ser seguros que lleguen, o para que se ejecuten en automatico.
se puede solamente enviar por ejemplo UPDATE nº 1 y 3, en el mismo fotograma, se envia en cola eso???
podria enviar todas las replicas de un tiron tambien?? usando un
from conta=0 to max_replicas;
UPDATE Nº conta
end
128 jugadores, contando con el server. como tope de max jugadores.CicTec wrote:Sobre el array, es 128, o sea 128 conexiones, 1 server y 127 clients (o 128 si el server es tambien player).
- SimulatorOne
- Posts: 6626
- Joined: Tue Nov 17, 2009 2:52 pm
- Location: Barcelona
- Contact:
Re: [MODULE] PlayNET
en el UPDATE...
int replica_id
A que se refiere??
es que no le encuentro sentido, intento decirle que haga un UPDATE del Nº1 de replica, es decir
[Codebox=gemix file=Untitled.gemix]
const
MaxReplicas=3; //datos de descarga,para clientes: Jugadores_part,
type ReplicaData;
byte gr_or_est_etc[3];//4-bytes //recive:[0] nºgrafico,[1] orientacion,[2] estado,[3]etc
WORD XY[1];//4-bytes //recive:cordenadas nuevas xy
end//2 elementos X Replica
GLOBAL
ReplicaData Replicas[MaxReplicas]; // create a player list
sizedata_Replica;//numero de elementos que descargara
[/Codebox]
deberia enviar la replica de este registro: Replicas[1]... (y todo lo que contega)
lo raro que si uso: UPDATE Nº0 que corresponde teoricamente a Replicas[0]....
me envia TODAS las replicas!!!
esta es una funcion que me hice, para enviar replicas, en algunas en concreto o todas.
[Codebox=gemix file=Untitled.gemix]
FUNCTION UPLOAD_REPLICA();//envia datos, solo Servidor
PRIVATE
i;
BEGIN
FOR(i=0 ; i<=MaxReplicas ; i=i+1);
if(enviar_replica or enviar_replica_com);enviar_replica=false;
IF(Cliente_ID);//si existe ese jugador...
Replicas.gr_or_est_etc[0]=Cliente_ID.graph;
Replicas.gr_or_est_etc[1]=Cliente_ID.orient_dir;
Replicas.XY[0]=Cliente_ID.X;
Replicas.XY[1]=Cliente_ID[i].Y;
END
NET_REPLICA_UPDATE(i);//envia los canvios a los clientes
end
END
enviar_replica_com=false;
END
[/Codebox]
en este caso, si solo esta activado enviar_replica[1]=true;
deberia enviar la replica del Nº1, solamente esa.
pero el cliente ni caso de eso, no recibe nada....
si funciona si se trata de la replica Nº0 y me envia todos los cambios a la vez, a todos los clientes.

int replica_id
A que se refiere??
es que no le encuentro sentido, intento decirle que haga un UPDATE del Nº1 de replica, es decir
[Codebox=gemix file=Untitled.gemix]
const
MaxReplicas=3; //datos de descarga,para clientes: Jugadores_part,
type ReplicaData;
byte gr_or_est_etc[3];//4-bytes //recive:[0] nºgrafico,[1] orientacion,[2] estado,[3]etc
WORD XY[1];//4-bytes //recive:cordenadas nuevas xy
end//2 elementos X Replica
GLOBAL
ReplicaData Replicas[MaxReplicas]; // create a player list
sizedata_Replica;//numero de elementos que descargara
[/Codebox]
deberia enviar la replica de este registro: Replicas[1]... (y todo lo que contega)
lo raro que si uso: UPDATE Nº0 que corresponde teoricamente a Replicas[0]....
me envia TODAS las replicas!!!
esta es una funcion que me hice, para enviar replicas, en algunas en concreto o todas.
[Codebox=gemix file=Untitled.gemix]
FUNCTION UPLOAD_REPLICA();//envia datos, solo Servidor
PRIVATE
i;
BEGIN
FOR(i=0 ; i<=MaxReplicas ; i=i+1);
if(enviar_replica or enviar_replica_com);enviar_replica=false;
IF(Cliente_ID);//si existe ese jugador...
Replicas.gr_or_est_etc[0]=Cliente_ID.graph;
Replicas.gr_or_est_etc[1]=Cliente_ID.orient_dir;
Replicas.XY[0]=Cliente_ID.X;
Replicas.XY[1]=Cliente_ID[i].Y;
END
NET_REPLICA_UPDATE(i);//envia los canvios a los clientes
end
END
enviar_replica_com=false;
END
[/Codebox]
en este caso, si solo esta activado enviar_replica[1]=true;
deberia enviar la replica del Nº1, solamente esa.
pero el cliente ni caso de eso, no recibe nada....
si funciona si se trata de la replica Nº0 y me envia todos los cambios a la vez, a todos los clientes.

![[RETO]: [MINI CONCURSO] Winter GAMES 2011 [JUEGO]: Rosie ~ The Rascal [RETO]: [MINI CONCURSO] Winter GAMES 2011 [JUEGO]: Rosie ~ The Rascal](../space/silver_medal.png)