Entrar
Últimos assuntos
» Servidor de Discord do fórum?por Super Games Ontem à(s) 01:27
» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentro
por Rukasu777 Qui 16 maio 2024, 18:10
» Problemas com particulas
por RastaMaan Dom 12 maio 2024, 17:03
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
como faço para o outro jogador ver que mudei de sprite (39dll).
3 participantes
Página 1 de 1
como faço para o outro jogador ver que mudei de sprite (39dll).
Eu procurei vários tutorias,porem os que eu encontrei ou é só pro cara entrar / chat,ou é pra criar sala,e no meu caso eu quero um sistema de loguim,eu achei uns ai tbm no forum,porem são offline,não é online,ai consegui achar essa engine.
mediafire: mediafire.com bafgd09fgdc77ly
4share:http://www.4shared.com/file/qOpk_mki/MMO_Example_v31.html
eu entendi algumas coisas,mas ainda sim não consegui enviar a mensagem falando que eu mudei de sprite,ou que o outro jogador mudou,já tentei:
sprite_index = sprite10
writebyte (sprite_index = sprite10 );// ja colokei só writebyte (sprite_index) tbm nao deu em nada
send_game_server();
//
sprite_index = sprite10
writebyte (sprite_index = sprite10 ); // ja colokei só writebyte (sprite_index) tbm nao deu em nada
sendmessage(global._game_socket);
//
já tentei não usar o fator online,por exemplo,fui no objeto que representa o outro jogador e colokei “if hspeed >= 1 {sprite_index}” na tentativa de que se ele se mexesse la no outro lado,ao objeto andar aki no meu cliente,mudasse de sprite,mas tbm não deu em nada
creio eu que na engine acontece o seguinte,quando um jogador entra na room,um objeto é criado e é atribuído a ele um id,conforme o id do personagem que entro,a partir dai sempre que no meu cliente eu me movo,é enviado a minha posição para o objeto com o meu id para outros clientes fazendo assim o objeto que me representa em outro cliente se mexer conforme minha posição X.Y,mas não sei como fazer isso...
resumindo,eu sei na teoria,mas em códigos,não consigo mandar a minha sprite atual para os outros jogadores =/
alguém consegue me ajudar ???
VLWs!!!
mediafire: mediafire.com bafgd09fgdc77ly
4share:http://www.4shared.com/file/qOpk_mki/MMO_Example_v31.html
eu entendi algumas coisas,mas ainda sim não consegui enviar a mensagem falando que eu mudei de sprite,ou que o outro jogador mudou,já tentei:
sprite_index = sprite10
writebyte (sprite_index = sprite10 );// ja colokei só writebyte (sprite_index) tbm nao deu em nada
send_game_server();
//
sprite_index = sprite10
writebyte (sprite_index = sprite10 ); // ja colokei só writebyte (sprite_index) tbm nao deu em nada
sendmessage(global._game_socket);
//
já tentei não usar o fator online,por exemplo,fui no objeto que representa o outro jogador e colokei “if hspeed >= 1 {sprite_index}” na tentativa de que se ele se mexesse la no outro lado,ao objeto andar aki no meu cliente,mudasse de sprite,mas tbm não deu em nada
creio eu que na engine acontece o seguinte,quando um jogador entra na room,um objeto é criado e é atribuído a ele um id,conforme o id do personagem que entro,a partir dai sempre que no meu cliente eu me movo,é enviado a minha posição para o objeto com o meu id para outros clientes fazendo assim o objeto que me representa em outro cliente se mexer conforme minha posição X.Y,mas não sei como fazer isso...
resumindo,eu sei na teoria,mas em códigos,não consigo mandar a minha sprite atual para os outros jogadores =/
alguém consegue me ajudar ???
VLWs!!!
lordjeck- Data de inscrição : 03/06/2010
Reputação : 0
Número de Mensagens : 54
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
Você está usando a rotina de clearbuffer() "limpar o buffer") antes de enviar uma nova informação?
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
to usando,ta asim o
scr_movement_update(1);
clearbuffer()
sprite_index = sprite10
writebyte (sprite_index = sprite10 );
sendmessage(global._game_socket);
scr_movement_update(1);
clearbuffer()
sprite_index = sprite10
writebyte (sprite_index = sprite10 );
sendmessage(global._game_socket);
lordjeck- Data de inscrição : 03/06/2010
Reputação : 0
Número de Mensagens : 54
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
E qual a rotina de leitura de mensagens q vc está usando? [mostre o código]
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
tem um scripti chamado :
scr_brod_platform_engine
ai no obj que simbolisa o outro jogador
obj_obj_dummy_player
step: scr_brod_platform_engine(right, jump, left);
tem o draw tbm,mas acho ke nao tem emportancia
scr_brod_platform_engine
- Spoiler:
- Código:
// CONTROLS
/////////////
if(argument0-argument2==1) {
spr_dir = 1;
hsp = min(max_spd,hsp+acc_spd);
}
if(argument1==1) {
if(free==0 && hold==0) {
vsp = jmp_spd;
jump = 1;
}
hold = 1;
} else {hold = 0;}
if(argument2-argument0==1) {
spr_dir =-1;
hsp = max(-max_spd,hsp-acc_spd);
}
// HORIZONTAL MOVEMENT
////////////////////////
repeat(round(abs(hsp))) {
var blk, mov;
blk = place_meeting(x+lengthdir_x(1,grv_dir+(sign(hsp)*90)),y+lengthdir_y(1,grv_dir+(sign(hsp)*90)),par_solid);
mov = 0;
if(blk==1) {
for(a=1;a<=max_slp;a+=1) {
if(place_meeting(x+lengthdir_x(1,grv_dir+(sign(hsp)*90))-lengthdir_x(a,grv_dir),y+lengthdir_y(1,grv_dir+(sign(hsp)*90))-lengthdir_y(a,grv_dir),par_solid)==0) {
x += lengthdir_x(1,grv_dir+(sign(hsp)*90))-lengthdir_x(a,grv_dir);
y += lengthdir_y(1,grv_dir+(sign(hsp)*90))-lengthdir_y(a,grv_dir);
mov = 1;
break;
}
}
if(mov==0) {
hsp = 0;
break;
}
} else {
var jt;
jt = instance_place(x+lengthdir_x(1,grv_dir+(sign(hsp)*90)),y+lengthdir_y(1,grv_dir+(sign(hsp)*90)),par_jump_through);
if(jt!=noone) {
if(place_meeting(x,y,jt)==0) {
for(a=1;a<=max_slp;a+=1) {
if(place_meeting(x+lengthdir_x(1,grv_dir+(sign(hsp)*90))-lengthdir_x(a,grv_dir),y+lengthdir_y(1,grv_dir+(sign(hsp)*90))-lengthdir_y(a,grv_dir),par_jump_through)==0) {
x += lengthdir_x(1,grv_dir+(sign(hsp)*90))-lengthdir_x(a,grv_dir);
y += lengthdir_y(1,grv_dir+(sign(hsp)*90))-lengthdir_y(a,grv_dir);
mov = 1;
break;
}
}
}
}
if(mov==0) {
for(a=max_slp;a>=1;a-=1) {
if(place_meeting(x+lengthdir_x(1,grv_dir+(sign(hsp)*90))+lengthdir_x(a,grv_dir),y+lengthdir_y(1,grv_dir+(sign(hsp)*90))+lengthdir_y(a,grv_dir),par_solid)==0 && (place_meeting(x+lengthdir_x(1,grv_dir+(sign(hsp)*90))+lengthdir_x(a,grv_dir),y+lengthdir_y(1,grv_dir+(sign(hsp)*90))+lengthdir_y(a,grv_dir),par_jump_through)==0 && sign(vsp)>-1)) {
if(place_meeting(x+lengthdir_x(1,grv_dir+(sign(hsp)*90))+lengthdir_x(a+1,grv_dir),y+lengthdir_y(1,grv_dir+(sign(hsp)*90))+lengthdir_y(a+1,grv_dir),par_solid)==1 || place_meeting(x+lengthdir_x(1,grv_dir+(sign(hsp)*90))+lengthdir_x(a+1,grv_dir),y+lengthdir_y(1,grv_dir+(sign(hsp)*90))+lengthdir_y(a+1,grv_dir),par_jump_through)==1) {
x += lengthdir_x(1,grv_dir+(sign(hsp)*90))+lengthdir_x(a,grv_dir);
y += lengthdir_y(1,grv_dir+(sign(hsp)*90))+lengthdir_y(a,grv_dir);
mov = 1;
break;
}
}
}
}
if(mov==0) {
x+= lengthdir_x(1,grv_dir+(sign(hsp)*90));
y+= lengthdir_y(1,grv_dir+(sign(hsp)*90));
}
}
}
// VERTICAL MOVEMENT
//////////////////////
repeat(round(abs(vsp))) {
if(place_meeting(x+lengthdir_x(1,grv_dir-90+(sign(vsp)*90)),y+lengthdir_y(1,grv_dir-90+(sign(vsp)*90)),par_solid)==1) {
vsp = 0;
landed = 1;
break;
}
var jt;
jt = instance_place(x+lengthdir_x(1,grv_dir),y+lengthdir_y(1,grv_dir),par_jump_through);
jt = collision_line(bbox_left,bbox_bottom+1,bbox_right,bbox_bottom+1,par_jump_through,1,1);
if(jt!=noone && sign(vsp)>-1) {
if(place_meeting(x,y,jt)==0) {
vsp = 0;
landed = 1;
break;
}
}
x+= lengthdir_x(1,grv_dir-90+(sign(vsp)*90));
y+= lengthdir_y(1,grv_dir-90+(sign(vsp)*90));
}
free = 1;
if(place_meeting(x+lengthdir_x(1,grv_dir),y+lengthdir_y(1,grv_dir),par_solid)==1) {
free = 0;
}
var jt;
jt = instance_place(x+lengthdir_x(1,grv_dir),y+lengthdir_y(1,grv_dir),par_jump_through);
jt = collision_line(bbox_left,bbox_bottom+1,bbox_right,bbox_bottom+1,par_jump_through,1,1);
if(jt!=noone && sign(vsp)>-1) {
if(place_meeting(x,y,jt)==0)free=0;
}
// GRAVITY & FRICTION
///////////////////////
if(free==1) {
vsp+= grv_spd;
if(argument0-argument2==0){hsp=max(0,abs(hsp)-air_frc)*sign(hsp);}
} else {
jump = 0;
if(argument0-argument2==0){hsp=max(0,abs(hsp)-gnd_frc)*sign(hsp);}
}
ai no obj que simbolisa o outro jogador
obj_obj_dummy_player
step: scr_brod_platform_engine(right, jump, left);
tem o draw tbm,mas acho ke nao tem emportancia
- Spoiler:
- Código:
draw_sprite_ext(sprite_index, image_index, x, y, 1, 1, 0, c_white, 1);
draw_set_halign(fa_center);
draw_set_valign(fa_center);
draw_set_color(c_black);
// Make the rectangle alpha
draw_set_alpha(0.6);
// Draw the rectangle under the name
draw_set_font(font_player_name);
draw_rectangle(x - string_width(name) / 2 - 2, y + 45 - string_height(name) - 7, x + string_width(name) / 2 + 2, y + 45 - 8, 0);
draw_set_color(c_white);
// Set alpha back to 1
draw_set_alpha(1);
// Draw name
draw_set_font(font_player_name);
draw_text(x, y + 30, name);
lordjeck- Data de inscrição : 03/06/2010
Reputação : 0
Número de Mensagens : 54
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
Nenhum dos 2 códigos apresenta algo relacionado à leitura de mensagens recebidas[algo crucial para o funcionamento de um jogo online, pois sem isso não há comunicação ._.]
Tente encontrar algo como "obj_onlinecontrol" ou coisa do tipo.
ALGUM deve realizar essa função.
[Minha net tá com um problema aqui e eu não to conseguindo baixar nada, assim que eu puder baixar a engine eu tento ajudar melhor, do contrario, só poderei ajudar desse modo: às cegas]
Tente encontrar algo como "obj_onlinecontrol" ou coisa do tipo.
ALGUM deve realizar essa função.
[Minha net tá com um problema aqui e eu não to conseguindo baixar nada, assim que eu puder baixar a engine eu tento ajudar melhor, do contrario, só poderei ajudar desse modo: às cegas]
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
obj_online_controller
step:
case_enter
case_get_position
case_leave();
step:
- Spoiler:
- Código:
while(1)
{
size = receivemessage(global._game_socket);
if (size <= 0)
{
break;
}
if (size == 0)
{
scr_message("Lost connection with game server. Please press ESC to quit.");
}
switch(readbyte())
{
case ENTER:
{
case_enter();
break;
}
case GET_POSITION:
{
case_get_position();
break;
}
case LEAVE:
{
case_leave();
break;
}
case MOVEMENT:
{
case_movement();
break;
}
case CHAT:
{
case_chat();
break;
}
}
}
- Spoiler:
- Código:
// scr_message(the message here);
if (!instance_exists(obj_fullscreen_message))
{
i = instance_create(0, 0, obj_fullscreen_message);
i.message = argument0;
}
case_enter
- Spoiler:
- Código:
switch(readbyte())
{
case 1:
{
// Add new come player to database
var name, i;
i = instance_create(readshort(), readshort(), obj_dummy_player);
ds_map_add(global._player_map, readshort(), i);
i.name = readstring();
break;
}
case 2:
{
// Add all other players to your database
var name, i;
i = instance_create(readshort(), readshort(), obj_dummy_player);
ds_map_add(global._player_map, readshort(), i);
i.name = readstring();
break;
}
}
case_get_position
- Spoiler:
- Código:
var _other;
_other = readshort();
clearbuffer();
writebyte(GET_POSITION);
writebyte(1);
writeshort(obj_local_player.x);
writeshort(obj_local_player.y);
writeshort(_other);
send_game_server();
// Check server case_enter script
// This is to tell everyone your position
case_leave();
- Spoiler:
- Código:
with(get_player())
{
instance_destroy();
}
case_movement();
switch(readbyte())
{
case 1:
{
// Go left
with(get_player())
{
x = readshort();
y = readshort();
left = 1;
break;
}
}
case 2:
{
// Jump
with(get_player())
{
x = readshort();
y = readshort();
jump = 1;
break;
}
}
case 3:
{
// Go right
with(get_player())
{
x = readshort();
y = readshort();
right = 1;
break;
}
}
case 4:
{
// Release left
with(get_player())
{
left = 0;
break;
}
}
case 5:
{
// Release jump
with(get_player())
{
jump = 0;
break;
}
}
case 6:
{
// Release right
with(get_player())
{
right = 0;
break;
}
}
}
case_chat();
with (obj_speech_bubble)
{
instance_destroy();
}
var _p;
_p = get_player();
with (_p)
{
i = instance_create(x, y - 48, obj_speech_bubble);
i._message = readstring();
i._target = _p;
}
lordjeck- Data de inscrição : 03/06/2010
Reputação : 0
Número de Mensagens : 54
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
Então você fez o script de envio de sprite à parte.
Desse modo você está apenas...enviando mensagens e elas se perdem.
Você tem que criar uma rotina de leitura para ler a mensagem contendo a sprite OU inclua o envio de sprite no trecho onde são enviadas as coordenadas (case_get_position)
Desse modo você está apenas...enviando mensagens e elas se perdem.
Você tem que criar uma rotina de leitura para ler a mensagem contendo a sprite OU inclua o envio de sprite no trecho onde são enviadas as coordenadas (case_get_position)
- Código:
var _other;
_other = readshort();
clearbuffer();
writebyte(GET_POSITION);
writebyte(1);
writeshort(obj_local_player.x);
writeshort(obj_local_player.y);
writeshort(obj_local_player.sprite_index);
writeshort(_other);
send_game_server();
// Check server case_enter script
// This is to tell everyone your position
- Código:
with(get_player())
{
instance_destroy();
}
case_movement();
switch(readbyte())
{
case 1:
{
// Go left
with(get_player())
{
x = readshort();
y = readshort();
sprite_index = readshort();
left = 1;
break;
}
}
case 2:
{
// Jump
with(get_player())
{
x = readshort();
y = readshort();
sprite_index = readshort();
jump = 1;
break;
}
}
case 3:
{
// Go right
with(get_player())
{
x = readshort();
y = readshort();
sprite_index = readshort();
right = 1;
break;
}
}
case 4:
{
// Release left
with(get_player())
{
left = 0;
break;
}
}
case 5:
{
// Release jump
with(get_player())
{
jump = 0;
break;
}
}
case 6:
{
// Release right
with(get_player())
{
right = 0;
break;
}
}
}
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
Só deu pra responder agora pq acabei de chegar da escola =/...
deu esse erro aqui olha
no draw do obj_dummy_player
deu esse erro aqui olha
- Código:
ERROR in
action number 1
of Draw Event
for object obj_dummy_player:
Trying to draw non-existing sprite.
no draw do obj_dummy_player
- Spoiler:
- Código:
draw_sprite_ext(sprite_index, image_index, x, y, 1, 1, 0, c_white, 1);
draw_set_halign(fa_center);
draw_set_valign(fa_center);
draw_set_color(c_black);
// Make the rectangle alpha
draw_set_alpha(0.6);
// Draw the rectangle under the name
draw_set_font(font_player_name);
draw_rectangle(x - string_width(name) / 2 - 2, y + 45 - string_height(name) - 7, x + string_width(name) / 2 + 2, y + 45 - 8, 0);
draw_set_color(c_white);
// Set alpha back to 1
draw_set_alpha(1);
// Draw name
draw_set_font(font_player_name);
draw_text(x, y + 30, name);
lordjeck- Data de inscrição : 03/06/2010
Reputação : 0
Número de Mensagens : 54
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
Basta interpretar o erro: ele diz que está tentando desenhar uma sprite inexistente.
Para concertar isso, ponha como sprite inicial do objeto dummy player qualquer uma.
Sim! QUALQUER uma. provavelmente esse objeto inicia com sprite: "undefined".
E quando você tenta desenhar isso, ele não consegue por que não há.
Apenas ponha uma sprite qualquer, pois assim o erro some.
Para concertar isso, ponha como sprite inicial do objeto dummy player qualquer uma.
Sim! QUALQUER uma. provavelmente esse objeto inicia com sprite: "undefined".
E quando você tenta desenhar isso, ele não consegue por que não há.
Apenas ponha uma sprite qualquer, pois assim o erro some.
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
O erro sumiu,mas agora o segundo jogador a logar fica sem sprite pro primeiro jogador,por exemplo,se “usuario1” loga e fica esperando na room,quando o “usuari2” loga,o cliente do usuario1 não vê o sprite do usuario2,só o nome ,e o cliente do usuário 2 não ve nem o nome,nem o sprite do usuario1 na room,mas ambos os clientes vêem o seu próprio sprite.
lordjeck- Data de inscrição : 03/06/2010
Reputação : 0
Número de Mensagens : 54
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: como faço para o outro jogador ver que mudei de sprite (39dll).
No meu caso a dica funcionou perfeitamente.
VALEU!!!!!!!!!!!
VALEU!!!!!!!!!!!
ekuhnen- Data de inscrição : 05/10/2012
Reputação : 3
Número de Mensagens : 47
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» como faço para o outro jogador ver que mudei de sprite (39dll).
» como faço para um objeto atirar nos inimigos sem a interferencia do jogador?
» Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?
» [Resolvido]como fazer que quando o objeto vá para cima ele mude de sprite e quando ele caia ele mude para outro sprite ?
» HELP ! como eu faço um inimigo que fique se mechendo de um lado para o outro?
» como faço para um objeto atirar nos inimigos sem a interferencia do jogador?
» Como faço para que quando a imagem de um sprite chegar no final, ela para no último quadro?
» [Resolvido]como fazer que quando o objeto vá para cima ele mude de sprite e quando ele caia ele mude para outro sprite ?
» HELP ! como eu faço um inimigo que fique se mechendo de um lado para o outro?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos