hola amigo tengo una pregunta. estoy creando un juego online y ya cree las cosa y todo pero tengo un problema con el enemigo. yo eh creado un enemigo pero solo yo veo que me persigue y a mi amigo se le ve diferente jugador que le persigue. me explico el Other no ve el enemigo que me sigue yo quiero que el enemigo sea como el other porque como el other porque el other se mueve y yo lo veo donde esta pero con el enemigo es diferente quiero que el other vea cuando el enemigo me persigue
le dejare el archivo rar para que lo descarguen y me ayuden con ese problema :)
Repito lo que puse en el post que cerraron:
Para hacer eso tenes que enviar al servidor todos los datos de todos los enemigos, es decir posición x, y, vida, si está atacando, dirección del sprite, etc. Es como si crearas un nuevo personaje (es decir como el other) pero autómata.
Cita de: Iros en Julio 12, 2014, 05:40:54 PM
Repito lo que puse en el post que cerraron:
Para hacer eso tenes que enviar al servidor todos los datos de todos los enemigos, es decir posición x, y, vida, si está atacando, dirección del sprite, etc. Es como si crearas un nuevo personaje (es decir como el other) pero autómata.
gracias por decirmelo en el otro post pero es que con este engine es diferente a los demas en el server no esta el other me ayudas ehhh dejado el engine para que me ayudes a editarlo y me enseñes donde esta para copiarme de ese engine y poner celo a mi juego real y muchas gracias iros eres el mejor XD :'(
Te voy a ser sincero, si descargas un engine directamente de internet y lo queres tratar de editar vas a ir por mal camino, te recomiendo estudiar el código y tratar de replicarlo para que llegues a entender como funciona esa librería, una vez que podas hacer eso mismo pero por tu cuenta todo desde cero, vas a poder comprender como recibir y enviar datos en general a todos los clientes.
Te doy una idea si queres editarlo, pero como te dije, no es bueno. En el objeto de tu enemigo enviá las coordenadas al servidor, en el servidor procesalas y devolvelas a todos tus clientes activos, en los demás clientes cuando recibe las coordenadas asignalas al enemigo y ya.
Soy de la opinión de Iros. No se empieza en el colegio primario a aprender cálculo ni álgebra. Pero pareciera que ahora todo mundo quiere iniciarse haciendo un juego completo sin perder tiempo en comprender de qué va el GML y las bases de GM. Por eso estoy tan en contra de los engines, la mayoría copia y pega código sin entender cómo funciona, y si no les funciona, a pedir que alguien más lo modifique. :-X
T_T muchas gracias amigos. yo quiero aprender de gml pero el problema es que nose donde y mas de 39dll gracias a ustedes aprendo un poquito mas porque antes estaba buscando una engine completa pero veo que solo era un sueño. pero mi juego no es una engine que ehh descargado ese juego lo echo yo sólito con ayuda de ustedes cuando lo termine al máximo les pondré su nombre a unos nps importante como agradecimiento :'( :D
Si lo hiciste vos entonces sabes como funciona el envío de datos del cliente al servidor y como no, como esos datos son procesados en el servidor para distribuirlos a todos los usuarios conectados. Para el enemigo es lo mismo.
XD iros gracias. pero no se donde lo busco en el proyecto=cliente O proyecto=servidor eso de manda y resibir los datos es que 39dll que tome fue el de una engina y nose donde esta eso sorry si te molesto mucho pero tengo gana de aprender T_T
Videocomo lo quisiera :P
http://www.youtube.com/watch?v=AUJ8G4RcAmQ
1° Tratá de evitar el doble post, está en las reglas, para eso editá tu mensaje anterior.
2° Buscá en el evento Step de tu objeto que recibe todo, ahí tenes para agregar lo que queres que se reciba y envíe (va a salir como los datos del personaje Other). En tu juego (cliente) creá el enemigo y enviá estos 3 parámetros base al engine: ID del objeto, posición X y posición Y. Con esos tres valores ya tendrías que poder hacerlo funcionar perfectamente. Buscá algún tutorial de 39dll si no, yo ahora ando demasiado ocupado con varios proyectos para tratar de hacerlo. Si me desocupo trato de hacerlo.
PD: Pedir que alguien haga algo también va en contra de las reglas, se pueden pedir consejos o ayudas, pero no que modifiquen un engine con lo que uno quiere. En mi época pasábamos horas en la sección de reglas y normas xD
Cita de: Iros en Julio 13, 2014, 04:31:15 AM
1° Tratá de evitar el doble post, está en las reglas, para eso editá tu mensaje anterior.
2° Buscá en el evento Step de tu objeto que recibe todo, ahí tenes para agregar lo que queres que se reciba y envíe (va a salir como los datos del personaje Other). En tu juego (cliente) creá el enemigo y enviá estos 3 parámetros base al engine: ID del objeto, posición X y posición Y. Con esos tres valores ya tendrías que poder hacerlo funcionar perfectamente. Buscá algún tutorial de 39dll si no, yo ahora ando demasiado ocupado con varios proyectos para tratar de hacerlo. Si me desocupo trato de hacerlo.
PD: Pedir que alguien haga algo también va en contra de las reglas, se pueden pedir consejos o ayudas, pero no que modifiquen un engine con lo que uno quiere. En mi época pasábamos horas en la sección de reglas y normas xD
gracias ahora estoy mucho mas informado. en el objeto cliente =step tengo esto y nose como entrarle el codigo del enemigo
var msgSize, msgId;
while(1)
{
msgSize = receivemessage(global.clienttcp)
if msgSize <= 0 break
msgId = readbyte()
ping = 0
switch(msgId)
{
case 1:
global.myid = readbyte()
if end_game = true
{
clearbuffer()
writebyte(4)
writestring(global.username+" no puede unirse.",true)
sendmessage(global.clienttcp)
scr_online_gameend();
exit;
}
else
{
objPlayer.alarm[0]=1
}
break
////////////////////////////22222222
case 2:
show_message("¡Lo siento! el servidor está lleno.")
if end_game = true
{
scr_online_gameend()
exit
}
break
////////////////////////////33333333
case 3:
var userid, name, user;
userid = readbyte()
user = instance_create(objPlayer.xstart , objPlayer.ystart , Other)
user.pid = userid
name = readstring()
user.username = name
players[userid] = user
script_addline(name + " se ha unido a la salaPrincipal.",c_black)
break
////////////////////////////444444444
case 4:
var name, userid;
userid = readbyte()
name = readstring()
user = players[userid]
user.username = name
script_addline(name + " se ha unido a hubi.",c_black)
break
///////////////////////////55555555555
case 5:
value = readbyte()
player = players[value]
player.x = readshort()
player.y = readshort()
player.direction = readshort()
player.image_blend = readdouble()
break
/////////////////////////666666666666
case 6 :
var playerid, username;
playerid = readbyte()
username = readstring()
script_addline(username + ' ha dejado el juego.',c_red)
with(players[playerid])
{
instance_destroy()
}
players[playerid] = -1;
break
///////////////////////////777777777777
case 7:
show_message('El servidor esta apagado.')
game_end()
break
/////////////////////////8888888888888
case 8:
script_addline(readstring(),c_black)
break
////////////////////////9999999999999
case 9:
script_addline("Server: "+readstring(),c_fuchsia)
}
}
ping+= current_time - deltatime
deltatime = current_time
if ping>timeout
{
show_message("Usted ha caducado.");
game_end();
}
Cita de: am3500 en Julio 13, 2014, 05:49:50 AM
gracias ahora estoy mucho mas informado. en el objeto cliente =step tengo esto y nose como entrarle el codigo del enemigo
¿Y entonces cómo hiciste todo ese código? :-[? Si me explicas línea por línea cómo funciona el código anterior, te ayudo a terminar el engine online.
jejejeeje el engine yo no lo ise yo solo le tome prestados los scripts de la 39dll para crearlo
oK tedejare el link para que lo descargue y me digas como puedo crear cosas