Universo Games
Ola , Convidado



Você ainda não e cadastrado então cadastre-se e veja todas as atualizações no mundo rpg!!!
Universo Games

Suporte e Desenvolvimento só no Universo Games

Ola Convidado, Seja Bem vindo a equipe lhe deseja boa sorte no seu projeto!

Você não está conectado. Conecte-se ou registre-se

Ajuda Arrow

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1Pedido Ajuda Arrow em Sab 18 Jun 2011, 22:00

orochymaru67


Membro
Membro
Ola makers da universegames!

meu problema e o seguinte:
Minha engine e uma modificada pelo Dsh
tem sistema de pet, arrow, guild, pk etre outros!
ai ela veio com a picsceen padrão do Eclipse Origins e eu queria modificar o tamanho
ai segui o tutorial daqui de almentar a picscreen e funcionou perfeitamente
Ficou:
Public Const MAX_MAPX As Byte = 22
Public Const MAX_MAPY As Byte = 16

dai
entrei no jogo pra testar so que quando solto agora uma arrow ela nao
sai do player, ela sai como se o player estivesse um pouco atraz!
CURIOSIDADE:
se eu por o tamanho do mapa la na propriedades do painel admin como 22 x
16 a arrow sai perfeitamente so que se eu por um mapa maior ela sai
errado denovo!



Ajudem ae gente por favor

2Pedido Re: Ajuda Arrow em Sab 18 Jun 2011, 22:08

Luucas Robeerto


Fundador
Fundador
Procure e mude:
' set values for directional blocking arrows
DirArrowX(1) = 12 ' up
DirArrowY(1) = 0
DirArrowX(2) = 12 ' down
DirArrowY(2) = 23
DirArrowX(3) = 0 ' left
DirArrowY(3) = 12
DirArrowX(4) = 23 ' right
DirArrowY(4) = 12

Procure e mude:

' see if it hits an arrow
For i = 1 To 4
If x >= DirArrowX(i) And x <= DirArrowX(i) + 8 Then
If y >= DirArrowY(i) And y <= DirArrowY(i) + 8 Then
' flip the value.
setDirBlock Map.Tile(CurX, CurY).DirBlock, CByte(i), Not isDirBlocked(Map.Tile(CurX, CurY).DirBlock, CByte(i))
Exit Sub
End If
End If
Next
End If
End If

procure e mude:

' render dir blobs
For i = 1 To 4
rec.Left = (i - 1) * 8
rec.Right = rec.Left + 8
' find out whether render blocked or not
If Not isDirBlocked(Map.Tile(x, y).DirBlock, CByte(i)) Then
rec.top = 8
Else
rec.top = 16
End If
rec.Bottom = rec.top + 8
'render!
Call Engine_BltFast(ConvertMapX(x * PIC_X) + DirArrowX(i), ConvertMapY(y * PIC_Y) + DirArrowY(i), DDS_Direction, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
Next

procure e mude:

Código:
Sub BltArrow(ByVal Index As Long) 'dshfox
Dim rec As RECT

    Dim x As Long
    Dim y As Long
    Dim i As Long
    Dim z As Long

    For z = 1 To MAX_PLAYER_ARROWS
        If Player(Index).Arrow(z).Arrow > 0 Then
            rec.top = Player(Index).Arrow(z).ArrowAnim * PIC_Y
            rec.Bottom = rec.top + PIC_Y
            rec.Left = Player(Index).Arrow(z).ArrowPosition * PIC_X
            rec.Right = rec.Left + PIC_X

            If GetTickCount > Player(Index).Arrow(z).ArrowTime + 30 Then
                Player(Index).Arrow(z).ArrowTime = GetTickCount
                Player(Index).Arrow(z).ArrowVarX = Player(Index).Arrow(z).ArrowVarX + 10
                Player(Index).Arrow(z).ArrowVarY = Player(Index).Arrow(z).ArrowVarY + 10
            End If

            If Player(Index).Arrow(z).ArrowPosition = 0 Then
                x = Player(Index).Arrow(z).ArrowX
                y = Player(Index).Arrow(z).ArrowY + Int(Player(Index).Arrow(z).ArrowVarY / 32)

                If y > Player(Index).Arrow(z).ArrowY + Arrows(Player(Index).Arrow(z).ArrowNum).Range - 2 Then
                    Player(Index).Arrow(z).Arrow = 0
                End If

                If y <= MAX_MAPY Then
                    Call Engine_BltFast((Player(Index).Arrow(z).ArrowX + 0.8 - NewPlayerX) * PIC_X + sx - NewXOffset, (Player(Index).Arrow(z).ArrowY - NewPlayerY) * PIC_Y + sx - NewYOffset + Player(Index).Arrow(z).ArrowVarY, DD_ArrowAnim, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
                    'Call DD_BackBuffer.BltFast((Player(Index).Arrow(z).ArrowX - NewPlayerX) * PIC_X + sx - NewXOffset, (Player(Index).Arrow(z).ArrowY - NewPlayerY) * PIC_Y + sx - NewYOffset + Player(Index).Arrow(z).ArrowVarY, DD_ArrowAnim, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
                End If
            End If

            If Player(Index).Arrow(z).ArrowPosition = 1 Then
                x = Player(Index).Arrow(z).ArrowX
                y = Player(Index).Arrow(z).ArrowY - Int(Player(Index).Arrow(z).ArrowVarY / 32)

                If y < Player(Index).Arrow(z).ArrowY - Arrows(Player(Index).Arrow(z).ArrowNum).Range + 2 Then
                    Player(Index).Arrow(z).Arrow = 0
                End If

                If y >= 0 Then
                    Call Engine_BltFast((Player(Index).Arrow(z).ArrowX + 0.8 - NewPlayerX) * PIC_X + sx - NewXOffset, (Player(Index).Arrow(z).ArrowY - NewPlayerY) * PIC_Y + sx - NewYOffset - Player(Index).Arrow(z).ArrowVarY, DD_ArrowAnim, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
                    'Call DD_BackBuffer.BltFast((Player(Index).Arrow(z).ArrowX - NewPlayerX) * PIC_X + sx - NewXOffset, (Player(Index).Arrow(z).ArrowY - NewPlayerY) * PIC_Y + sx - NewYOffset - Player(Index).Arrow(z).ArrowVarY, DD_ArrowAnim, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
                End If
            End If

            If Player(Index).Arrow(z).ArrowPosition = 2 Then
                x = Player(Index).Arrow(z).ArrowX + Int(Player(Index).Arrow(z).ArrowVarX / 32)
                y = Player(Index).Arrow(z).ArrowY

                If x > Player(Index).Arrow(z).ArrowX + Arrows(Player(Index).Arrow(z).ArrowNum).Range - 2 Then
                    Player(Index).Arrow(z).Arrow = 0
                End If

                If x <= MAX_MAPX Then
                    Call Engine_BltFast((Player(Index).Arrow(z).ArrowX + 0.7 - NewPlayerX) * PIC_X + sx - NewXOffset + Player(Index).Arrow(z).ArrowVarX, (Player(Index).Arrow(z).ArrowY + 0.8 - NewPlayerY) * PIC_Y + sx - NewYOffset, DD_ArrowAnim, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
                    'Call DD_BackBuffer.BltFast((Player(Index).Arrow(z).ArrowX - NewPlayerX) * PIC_X + sx - NewXOffset + Player(Index).Arrow(z).ArrowVarX, (Player(Index).Arrow(z).ArrowY - NewPlayerY) * PIC_Y + sx - NewYOffset, DD_ArrowAnim, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
                End If
            End If

            If Player(Index).Arrow(z).ArrowPosition = 3 Then
                x = Player(Index).Arrow(z).ArrowX - Int(Player(Index).Arrow(z).ArrowVarX / 32)
                y = Player(Index).Arrow(z).ArrowY

                If x < Player(Index).Arrow(z).ArrowX - Arrows(Player(Index).Arrow(z).ArrowNum).Range + 2 Then
                    Player(Index).Arrow(z).Arrow = 0
                End If

                If x >= 0 Then
                    Call Engine_BltFast((Player(Index).Arrow(z).ArrowX + 1.2 - NewPlayerX) * PIC_X + sx - NewXOffset - Player(Index).Arrow(z).ArrowVarX, (Player(Index).Arrow(z).ArrowY + 0.8 - NewPlayerY) * PIC_Y + sx - NewYOffset, DD_ArrowAnim, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
                    'Call DD_BackBuffer.BltFast((Player(Index).Arrow(z).ArrowX - NewPlayerX) * PIC_X + sx - NewXOffset - Player(Index).Arrow(z).ArrowVarX, (Player(Index).Arrow(z).ArrowY - NewPlayerY) * PIC_Y + sx - NewYOffset, DD_ArrowAnim, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
                End If
            End If

            If x >= 0 And x <= MAX_MAPX Then
                If y >= 0 And y <= MAX_MAPY Then
                    If Map.Tile(x, y).Type = TILE_TYPE_BLOCKED Then
                    'If Map(GetPlayerMap(MyIndex)).Tile(X, Y).Type = TILE_TYPE_BLOCKED Then
                        Player(Index).Arrow(z).Arrow = 0
                    End If
                End If
            End If

            For i = 1 To MAX_PLAYERS
                If IsPlaying(i) Then
                    If GetPlayerMap(i) = GetPlayerMap(MyIndex) Then
                        If GetPlayerX(i) = x Then
                            If GetPlayerY(i) = y Then
                                If Index = MyIndex Then
                                    Call SendArrowHit(Index, 0, i, x, y)
                                    'Call SendData("arrowhit" & SEP_CHAR & 0 & SEP_CHAR & I & SEP_CHAR & X & SEP_CHAR & Y & END_CHAR)
                                End If

                                If Index <> i Then
                                    Player(Index).Arrow(z).Arrow = 0
                                End If

                                Exit Sub
                            End If
                        End If
                    End If
                End If
            Next i

            For i = 1 To MAX_MAP_NPCS
                If MapNpc(i).num > 0 Then
                    If MapNpc(i).x = x Then
                        If MapNpc(i).y = y Then
                            If Index = MyIndex Then
                                Call SendArrowHit(Index, 1, i, x, y)
                                'Call SendData("arrowhit" & SEP_CHAR & 1 & SEP_CHAR & I & SEP_CHAR & X & SEP_CHAR & Y & END_CHAR)
                            End If

                            Player(Index).Arrow(z).Arrow = 0

                            Exit Sub
                        End If
                    End If
                End If
            Next i
        End If
    Next z
End Sub

Pronto isto resolve seu problema!!!

CURIOSIDADE:
se eu por o tamanho do mapa la na propriedades do painel admin como 22 x
16 a arrow sai perfeitamente so que se eu por um mapa maior ela sai
errado denovo!

Normal e so você atualizar o mapa na propriedade que ele volta ao normal...


_______________________________________________________________________________________________________

[Você precisa estar registrado e conectado para ver esta imagem.]
Spoiler:
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]

[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]
http://universogamesmmo.forumeiros.com

3Pedido Re: Ajuda Arrow em Sab 18 Jun 2011, 22:20

orochymaru67


Membro
Membro
Não funcionou!
Modifiquei para oque vc pediu mais continua com o erro
atualizo o mapa mais continua com erro!
ajuda ae pliss

4Pedido Re: Ajuda Arrow em Sab 18 Jun 2011, 22:23

Luucas Robeerto


Fundador
Fundador
Mostra um screnn do geito que está ai
Porque o que eu entendi era erro de direção do Arrow
Isto arrumava

mostra ai um scren


_______________________________________________________________________________________________________

[Você precisa estar registrado e conectado para ver esta imagem.]
Spoiler:
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]

[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]
http://universogamesmmo.forumeiros.com

5Pedido Re: Ajuda Arrow em Sab 18 Jun 2011, 22:34

orochymaru67


Membro
Membro
Seguinte
Veja quando eu uso o Sistema com o mapa tamanho 22x16 (tamanho da minha picsceen)
[Você precisa estar registrado e conectado para ver esta imagem.]
A Arrow sai perfeitamente

Agora veja quando eu almento o tamanho do mapa nas propriedades
[Você precisa estar registrado e conectado para ver esta imagem.]
Ela sai a baixo do player!!!

Se eu andar e atirar com a arrow fica parecendo como se tivesse um playe invisivel atraz de mim me acertando!

ajuda ae!

6Pedido Re: Ajuda Arrow em Dom 19 Jun 2011, 17:14

Luucas Robeerto


Fundador
Fundador
Então Amigo você tem que mudar
esta linhas aqui

Procure e mude:
' set values for directional blocking arrows
DirArrowX(1) = 12 ' up
DirArrowY(1) = 0
DirArrowX(2) = 12 ' down
DirArrowY(2) = 23
DirArrowX(3) = 0 ' left
DirArrowY(3) = 12
DirArrowX(4) = 23 ' right
DirArrowY(4) = 12

Explicando Onde esta o 12 e 23 você tem que mudar até deixar no lugar certo...
Cada vez que você for mudar o tamanho do mapa você tem que muda o Lugas onde o arrow Vai!!!

Pronto...

So não vou fazer para você porque o meu esta ja no projeto correto se eu for mudar ai zika tudo mais boa sorte ai...


_______________________________________________________________________________________________________

[Você precisa estar registrado e conectado para ver esta imagem.]
Spoiler:
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]

[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]
http://universogamesmmo.forumeiros.com

7Pedido Re: Ajuda Arrow em Dom 19 Jun 2011, 21:04

orochymaru67


Membro
Membro
Tipo eu modifiquei ele assim:
Código:
    ' set values for directional blocking arrows
    DirArrowX(1) = 32 ' up
    DirArrowY(1) = 0
    DirArrowX(2) = 32 ' down
    DirArrowY(2) = 43
    DirArrowX(3) = 0 ' left
    DirArrowY(3) = 32
    DirArrowX(4) = 43 ' right
    DirArrowY(4) = 32

Nao mudou nada [Você precisa estar registrado e conectado para ver esta imagem.]
Vou mandar algumas informações a respeito do meu projeto pra ajudar
picScreen tamanho: 544 x 736
picScreen tamanho pelo codigo do tutorial de almentar tela:22 x 16
picScreen codigo depois de alterado:
Código:
' Map constants
Public Const MAX_MAPS As Long = 100
Public Const MAX_MAPX As Byte = 22
Public Const MAX_MAPY As Byte = 16
Public Const MAP_MORAL_NONE As Byte = 0
Public Const MAP_MORAL_SAFE As Byte = 1

ajuda ae pessoal!

8Pedido Re: Ajuda Arrow em Sex 24 Jun 2011, 16:23

arkanjo


Membro
Membro
Aff este forum so fica dando offtopic
Kd os programadores daqui??? o cara ai explicou o erro como se fosse um tutorial e nd dos caras resolverem
lol

9Pedido Re: Ajuda Arrow em Sab 25 Jun 2011, 09:11

GameOver


Administrador
Administrador
arkanjo escreveu:Aff este forum so fica dando offtopic
Kd os programadores daqui??? o cara ai explicou o erro como se fosse um tutorial e nd dos caras resolverem
lol

arkanjo não e bem assim não e você que esta dando offtopic porque esta engine você não tem...
e este suposto bug estou procurando porque o Lucas deu todas as alternativa que daria este bug mais esta complicado de achar

como não foi eu que fiz o sistema não sei como esta mais vou procurar e logo aposto aqui paciencia por favor

Obrigado pela atenção

10Pedido Re: Ajuda Arrow em Sab 25 Jun 2011, 14:10

arkanjo


Membro
Membro
mals ae brother
mais me parece que esse foi um sistema copiado da EE 2.7 e nao criado do 0 entao creio que tenha alguma coisa faltando! pra quando almentar o tamanho do mapa a arrow se posicionar no jogador

pelomenos e oque eu acho

11Pedido Re: Ajuda Arrow em Sab 25 Jun 2011, 14:35

GameOver


Administrador
Administrador
então arkanjo eu vou rever para ver...

Obrigado pela sugestão

12Pedido Re: Ajuda Arrow em Sab 25 Jun 2011, 15:57

arkanjo


Membro
Membro
De nada brother!

13Pedido Re: Ajuda Arrow em Dom 26 Jun 2011, 11:30

GameOver


Administrador
Administrador
Topico Trancado e Movido

14Pedido Re: Ajuda Arrow Hoje à(s) 03:07

Conteúdo patrocinado


Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum