MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!

Participe do fórum, é rápido e fácil

MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!
MMORPG Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[EE]CORREÇÃO ERRO ALEATÓRIO

3 participantes

Ir para baixo

[EE]CORREÇÃO ERRO ALEATÓRIO Empty [EE]CORREÇÃO ERRO ALEATÓRIO

Mensagem por Lendário Dom 18 Out 2009, 16:08

Aconteceu isso comigo um tempo atrás. Ao entrar num mapa, aparecia nele os NPCs do mapa anterior. Eu saia e voltava, e estava tudo bem.
Cavei o código e encontrei isso no servidor:
Código:
 Call SendMapItemsTo(index, GetPlayerMap(index))
Call SendMapNpcsTo(index, GetPlayerMap(index))
Call SendJoinMap(index)
Call SendDataTo(index, "MAPDONE" & END_CHAR)
Os dados do NPC é enviado antes do mapdone. Então eu entendi em uma ordem diferente? Bem-vindo ao mundo dos multi-core/multi-thread. WinSock estão em execução, separado do jogo e fazer as coisas em seu próprio ritmo.

Se você não tiver um processador multi-core ou não estiver muito pesado, isso provavelmente nunca vai acontecer com você. Aqui está a solução rápida e suja se você precisar ou quiser ...


No cliente - modHandleData.bas sub HandleData ()

Procure (CRTL+F)
Código:
If casestring = "mapitemdata" Then
n = 1

For i = 1 To MAX_MAP_ITEMS
SaveMapItem(i).Num = Val(parse(n))
SaveMapItem(i).Value = Val(parse(n + 1))
SaveMapItem(i).Dur = Val(parse(n + 2))
SaveMapItem(i).X = Val(parse(n + 3))
SaveMapItem(i).y = Val(parse(n + 4))


e inserira depois isso:

Código:
MapItem(i) = SaveMapItem(i)

Procure isso:
Código:
' :::::::::::::::::::::::::
' :: Map npc data packet ::
' :::::::::::::::::::::::::
If casestring = "mapnpcdata" Then
n = 1

For i = 1 To 30
SaveMapNpc(i).Num = Val(parse(n))
SaveMapNpc(i).X = Val(parse(n + 1))
SaveMapNpc(i).y = Val(parse(n + 2))
SaveMapNpc(i).Dir = Val(parse(n + 3))
e insira isso:
Código:
MapNpc(i) = SaveMapNpc(i)
Procure isso:
Código:
' :::::::::::::::::::::::::::::::
' :: Map send completed packet ::
' :::::::::::::::::::::::::::::::
If casestring = "mapdone" Then
' Map = SaveMap

e excluir ou comentar isso (como eu fiz aqui).


' For i = 1 To MAX_MAP_ITEMS
' MapItem(i) = SaveMapItem(i)
' Next i
'
' For i = 1 To MAX_MAP_NPCS
' MapNpc(i) = SaveMapNpc(i)
' Next i

È uma solução rápida e bruta, mas funciona. Eu não tive o problema desde que eu comecei a usar.

Créditos : Scorpious2k, tradução WillMaiaBR
Lendário
Lendário
Administrador Lendário
Administrador Lendário

Mensagens : 1958

Ir para o topo Ir para baixo

[EE]CORREÇÃO ERRO ALEATÓRIO Empty Re: [EE]CORREÇÃO ERRO ALEATÓRIO

Mensagem por Shirosaki5005 Sáb 23 Jun 2012, 15:48

Muito bom tava precisando
Shirosaki5005
Shirosaki5005
Membro
Membro

Mensagens : 236

Ir para o topo Ir para baixo

[EE]CORREÇÃO ERRO ALEATÓRIO Empty Re: [EE]CORREÇÃO ERRO ALEATÓRIO

Mensagem por Sαkurαy Sáb 23 Jun 2012, 16:10

Membro punido por reviver tópico u.u

Tópico trancado
Sαkurαy
Sαkurαy
Membro Veterano
Membro Veterano

Mensagens : 1386

Ir para o topo Ir para baixo

[EE]CORREÇÃO ERRO ALEATÓRIO Empty Re: [EE]CORREÇÃO ERRO ALEATÓRIO

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos