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.

Definir Index como apenas do player

3 participantes

Ir para baixo

Definir Index como apenas do player Empty Definir Index como apenas do player

Mensagem por nicouba Dom 26 Ago 2012, 18:41

Tenho um sistema aqui de "Montaria" que faz com que o player troque de sprite quando aperta uma tecla, mas quando fui testar com outros char fui ver que todos mudam não apenas o char que apertou, como faço pra atribuir esse valor "index" apenas para o player?

Código:
Call SetMont(MyIndex, 1)
O código para atribuir é esse ai, sei que o problema esta neste MyIndex, mas não sei o que colocar pra ficar só pra ele.

Código:
Sub SetMont(ByVal Index As Long, ByVal Mont As Long)
    ' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo errorhandler


    If Index > MAX_PLAYERS Then Exit Sub
    Player(Index).Mont = Mont
   
    ' Error handler
    Exit Sub
errorhandler:
    HandleError "SetMont", "modDatabase", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub
End Sub
E esse é o código pra atribuir. Depois eu uso um Get pra pegar o valor e jogo num If pra setar a sprite.
nicouba
nicouba
Novato
Novato

Mensagens : 9

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por caiozinho100 Dom 26 Ago 2012, 19:12

Troque esse:
Call SetMont(MyIndex,1)
Por:
Call SetMont(MyIndex)

Explicaçao:
Vc especificou no codigo acima qual seria o player que pudesse fazer a montaria(no caso o player com index #1)

PS: Nem testei... se der errado nao sei como fazer entao pq eu nao sei mecher em origins
caiozinho100
caiozinho100
Novato
Novato

Mensagens : 24

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por nicouba Dom 26 Ago 2012, 19:21

Acho que não é isso, porque olha só':

Código:
Sub SetMont(ByVal Index As Long, ByVal Mont As Long)
Player(Index).Mont = Mont

O primeiro valor é pra indicar qual player seria, e o numero depois da virgula seria o valor que estou atribuindo a ele.
nicouba
nicouba
Novato
Novato

Mensagens : 9

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por caiozinho100 Dom 26 Ago 2012, 19:26

Ah sim
Entao o erro ta no codigo msm e nao na chamada.
Vou ver aqui

-------
EDIT

Cara, eu acho que o erro ta numa parte que ta escrita alguma coisa e entre parentese index.
Vo copiar e colar aqui '-'
Player(Index).Mont = Mont


Última edição por caiozinho100 em Dom 26 Ago 2012, 19:29, editado 1 vez(es)
caiozinho100
caiozinho100
Novato
Novato

Mensagens : 24

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por nicouba Dom 26 Ago 2012, 19:29

taOk, se precisar de mais alguma informação só falar.
nicouba
nicouba
Novato
Novato

Mensagens : 9

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por caiozinho100 Dom 26 Ago 2012, 19:31

Pronto dei edit no post acima na hora que vc postou esse '-'
caiozinho100
caiozinho100
Novato
Novato

Mensagens : 24

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por nicouba Dom 26 Ago 2012, 19:37

Então, tipo essa parte ai indica qual player seria, mas pelas funções que conheço tem o MyIndex que acho que define pro seu cliente, e tem como fazer que dei uma olhada aqui pra jogar um "For i = 1 To Player_HighIndex" que é usado no bltplayer por exemplo só que ai ele atribui a todo mundo, ou seja creio eu que tenho que sabe como saber qual é o "i" desse player pra poder atribuir a ele
nicouba
nicouba
Novato
Novato

Mensagens : 9

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por caiozinho100 Dom 26 Ago 2012, 19:54

Se eu tivesse com o origins aqui eu tentaria modificar e fazer funfar, mas eu n tenho mals
caiozinho100
caiozinho100
Novato
Novato

Mensagens : 24

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por nicouba Dom 26 Ago 2012, 20:18

Tranquilo, vou ver oque eu faço aqui e posto novidades depois'
nicouba
nicouba
Novato
Novato

Mensagens : 9

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por Guardian Dom 26 Ago 2012, 20:23

Nicouba, poderia por favor postar o código da parte que você usa o For i = 1 to player_highindex ? Tenho quase certeza que o erro se encontra ai kkk'

E também, poste o código onde você utiliza isso :

Código:
Call SetMont(MyIndex, 1)

Aguardando a resposta...
Guardian
Guardian
Membro de Honra
Membro de Honra

Mensagens : 781

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por nicouba Dom 26 Ago 2012, 20:30

Eu não uso o "For i = 1 to player_highindex" só dei de exemplo como usa o Bltplayer.

Código:
Public Sub montaria(ByVal Index As Byte)
    If GetPlayerEquipment(Index, Weapon) > 0 Then
        If GetMont(Index) = 0 Then
            Call SetMont(Index, 1)
            Velocidade = 10
        Else
            Call SetMont(Index, 0)
            Velocidade = 7
        End If
        Else
        AddText "Você não tem equipe necessario", BrightRed
        End If
End Sub

É esse código ai, ele é chamado quando aperta um botão :
Código:
If chaton = False Then
        If KeyCode = 85 Then
        Call montaria('Não sei oque colocar aqui')
      End If
    End If
nicouba
nicouba
Novato
Novato

Mensagens : 9

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por Guardian Dom 26 Ago 2012, 20:34

Hum...

Código:
If chaton = false then
If KeyCode = 85 then
Call Montaria(MyIndex)
End if
End if

Lembrando que como isso ta no cliente, Somente o cliente de quem usou a montaria vai mudar o Valor do Player(Index).Mont

Então os outros players não vão poder ver se ele ta em uma montaria se você utilizar um If com o Player(index).Mont

Smile
Guardian
Guardian
Membro de Honra
Membro de Honra

Mensagens : 781

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por nicouba Dom 26 Ago 2012, 20:46

Como eu devo fazer então para corrigir isso?
nicouba
nicouba
Novato
Novato

Mensagens : 9

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por Guardian Dom 26 Ago 2012, 21:00

Eu vou te passar a lógica, ai vc faz ai. No cliente ao apertar um botão, ele envia um Packet para o Servidor... Então no servidor, ele muda o Player(Index).Mont para o valor definido.

Então la você cria uma Sub com qualquer nome... Que envia para todos os jogadores online o Valor do Mont de certo Player. (SendDataToAll)

Ai na Handle que você vai criar para receber a packet no servidor, você no final adiciona :
call Nome da Sub.

Porque ai envia pro cliente de todos os jogadores o Valor da Montaria dele. Smile
Ai você pode usar no cliente de qualquer um o :

Código:
For i = 1 to player_highindex
If Player(i).Mont Then
...

Porque ele vai reconhecer. tongue

Espero que tenha entendido...
Se não entendeu, tenta ler dnv e dnv... Pergunte á alguem, sei la kkk'
Guardian
Guardian
Membro de Honra
Membro de Honra

Mensagens : 781

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

Mensagem por nicouba Dom 26 Ago 2012, 21:05

Entendi sim, brigadão. Só tenho que descobrir como faz agora.
Teria como você me indicar algum sistema já incluso no jogo para que eu posso me basear para fazer o meu?


Edit.

Me tira essa duvida se possível, estou no trabalho e não da pra testar aqui, mas tipo assim:
Se eu usar o Player(Index).Mont com a conexão com o servidor e então usar ele nos If's do client para mudar os .step do player no processo de movimento, sera possível os outros players verem?
nicouba
nicouba
Novato
Novato

Mensagens : 9

Ir para o topo Ir para baixo

Definir Index como apenas do player Empty Re: Definir Index como apenas do player

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