Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Adripsx en Mayo 24, 2010, 01:43:28 PM

Título: Problema con Instancias y Online
Publicado por: Adripsx en Mayo 24, 2010, 01:43:28 PM
Hello GM Fans  ;D

Tengo un problema muy grave... Resulta que tengo un sistema online con la libreria 39dll, y donde solo participan 2 jugadores...

Todo funciona de maravilla, salvo que cuando un jugador recoge una moneda del suelo, si bien al mismo player le aumenta +1 las monedas y la moneda desaparece, al jugador numero 2 NO le desaparece la moneda, y si yo sigo situado en el lugar, me figura como si estuviera recogiendola miles de veces, y mi dinero aumenta a millones (Desde la vista de el, claro)

Probe que cuando recojo la moneda, pasar la ID unica de la moneda, asi en la vista del jugador 2 la elimino tambien, pero no he podido hacerlo aun...

Mire el manual x200 veces y no lo he logrado hacer, probe con:

id*
object_index*
instance_id*


Pero a la hora de Eliminarla, no se que instruccion usar... Probe con 'object_delete(readshort());' pero me dice error porque intento borrar un objeto que no existe, le pase el parametro que le pase...

De que manera podria hacer esto que necesito?

Muchas GRACIAS!  ;)  ;)
Título: Re: Problema con Instancias y Online
Publicado por: Texic en Mayo 24, 2010, 08:00:13 PM
Puede funcionar con
with (readshort()) do instance_destroy()
O puedes simplemente eliminarlo desde la vista del player 2 en el evento de colision del player 1
Sino hay otra manera, q es lo q puedes enviar en el readshort()
De esta manera, cuando el jugador 1 toque la moneda, en el evento de colision, hace esto
ex=other.x
ey=other.y
Luego envias en 2 shorts las variables
Y cuando lo recibas en el otro jugador eliminar?s asi:
with (instance_position(readshort(),readshort(),obj_moneda)) do instance_destroy()
Fijate si te sirve y me avisas
Título: Re: Problema con Instancias y Online
Publicado por: Wadk en Mayo 25, 2010, 05:14:00 AM
Las IDs de las monedas en una ventana y otra no necesariamente son iguales. Tal vez deber?as hacer que el servidor cree las monedas manualmente y les asigne un ID y despu?s env?e al cliente la ID y la posici?n de cada moneda para que este las vaya creando.
Despu?s cuando uno tome una moneda, envi?s la ID y la borr?s as?:
msg=readshort();
with(all){
   if(variable_local_exists("ID")){
       if(ID==other.msg){
           instance_destroy();
       }
   }
}


La verdad no estoy seguro de que esto sea correcto, tal vez haya una soluci?n m?s simple, pero pod?s intentar a ver si sale.