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.

Erro complicado com Sprite

2 participantes

Ir para baixo

Erro complicado com Sprite Empty Erro complicado com Sprite

Mensagem por jonny157 Ter 12 Fev 2013, 21:21

Um dúvida para programadores intermediários..

Seguinte galera, eu fiz este tutorial para o meu jogo http://www.mmorpgbr.com/t12071-eo-spell-copiar-sprite-npc-player-v10.

Até ai tudo bem...

MAS... TODAVIA... PORÉM

Tem uma parte do tutorial que é a OldSprite, ela leva ao jogador a sprite antiga depois que o tempo da cópia acabar. Sendo que.. no meu jogo eu tenho um item que muda a aparência do jogador. Agora vou explicar o que acontece.. Vou dar um exemplo.

O jogador iniciou com a Sprite 1, quando ele equipa o item ele fica com a Sprite 20. Ai vai ele bonitão na rua das aldeias, vilarejos, com seu novo item nova aparência... quando derrepente CHAMMM... APARECEM OS SEUS INIMIGOS.

Para se esconder deles ele resolve usar a sua magia de COPIAR SPRITE PLAYER OR NPC, e então ele muda para a sprite 5 que é a Sprite do inimigo. Assim ele se disfarça o tempo necessário e foge da luta.

Quando ele está longe.. o tempo de sua magia copiar termina e então ele volta sua Sprite normal. Só que ele acaba levando um susto, pois ao invés de voltar a sprite 20 ele retornou a sprite 1 mesmo carregando o item. '-'




Agora vou mostrar o meu Old Sprite, pra quem não entende, por favor olhar o tutorial da magia copiar que eu deixei no começo do tópico.


Código:
Sub OldSprite(ByVal index As Long)
Dim itemnum As Long
Dim invNum As Long

itemnum = GetPlayerInvItemNum(index, invNum)
 
    'Cada Case é o número de cada classe, e é a Sprite que a classe indicada voltará quando o tempo da cópia acabar

 Select Case GetPlayerClass(index)
    Case 0
      Player(index).sprite = 1
      Call SendPlayerData(index)
    'knight
    Case 1
      If Player(index).Sex = SEX_MALE Then
        Player(index).sprite = 1
      Else
        Player(index).sprite = 2
      End If
      Call SendPlayerData(index)
   
    'Samurai
    Case 2
    If Player(index).Sex = SEX_MALE Then
        Player(index).sprite = 3
    Else
        Player(index).sprite = 4
    End If
    Call SendPlayerData(index)
     
    'Paladin
    Case 3
      If Player(index).Sex = SEX_MALE Then
        Player(index).sprite = 5
      Else
        Player(index).sprite = 6
      End If
      Call SendPlayerData(index)
     
    'Black Mage
    Case 4
      If Player(index).Sex = SEX_MALE Then
        Player(index).sprite = 7
      Else
        Player(index).sprite = 8
      End If
      Call SendPlayerData(index)
     
    'White Mage
    Case 5
      If Player(index).Sex = SEX_MALE Then
        Player(index).sprite = 9
      Else
        Player(index).sprite = 10
      End If
      Call SendPlayerData(index)
     
     
    'Blue Mage
    Case 6
      If Player(index).Sex = SEX_MALE Then
        Player(index).sprite = 11
      Else
        Player(index).sprite = 12
      End If
      Call SendPlayerData(index)
   
    'Hunter
    Case 7
      If Player(index).Sex = SEX_MALE Then
        Player(index).sprite = 13
      Else
        Player(index).sprite = 14
      End If
      Call SendPlayerData(index)
   
    'Ninja
    Case 8
      If Player(index).Sex = SEX_MALE Then
        Player(index).sprite = 15
      Else
        Player(index).sprite = 16
      End If
      Call SendPlayerData(index)
     
   
    'Assassin
    Case 9
      If Player(index).Sex = SEX_MALE Then
        Player(index).sprite = 17
      Else
        Player(index).sprite = 18
      End If
      Call SendPlayerData(index)
   
   
    Case Else
      Player(index).sprite = 0
      Call SendPlayerData(index)
   
    End Select
   
 If GetPlayerEquipment(index, sprite) > 0 Then
        If Player(index).Sex = SEX_MALE Then
            Call SetPlayerSprite(index, Item(itemnum).sprite)
            Call SendPlayerData(index)
        Else
            Call SetPlayerSprite(index, Item(itemnum).sprite + 1)
            Call SendPlayerData(index)
        End If
 End If

End Sub

Esta dando erro no final da sub no GetplayerEquipament...

A linha que está dando erro é esta... " Call SetPlayerSprite(index, Item(itemnum).sprite)", essa é a linha infeliz que não deixa o meu personagem voltar para a Sprite normal dele.

O erro é "Subscript of range" referente ao item(itemnum).sprite.
jonny157
jonny157
Membro Sênior
Membro Sênior

Mensagens : 406

Ir para o topo Ir para baixo

Erro complicado com Sprite Empty Re: Erro complicado com Sprite

Mensagem por jonny157 Dom 03 Mar 2013, 21:47

Estou Upando o tópico porque ainda preciso de ajuda e ninguém se pronunciou... =/

Desde
este dia que eu ainda não achei um modo de resolver, algum programador
experiente me ajude a encontrar em que eu estou errando.
jonny157
jonny157
Membro Sênior
Membro Sênior

Mensagens : 406

Ir para o topo Ir para baixo

Erro complicado com Sprite Empty Re: Erro complicado com Sprite

Mensagem por KURIZZARD² Seg 04 Mar 2013, 15:07

Veja bem esse codigo aew


Código:
[b]Call SetPlayerSprite(index, Item(itemnum).sprite + 1)[/b]
Tente muda onde ta escrito .sprite+1 para. sprite+20 mais vc tera que coloca varios para ter que volta a spriter com o item
KURIZZARD²
KURIZZARD²
Membro
Membro

Mensagens : 238

Ir para o topo Ir para baixo

Erro complicado com Sprite Empty Re: Erro complicado com Sprite

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