Suporte ao desenvolvimento de jogos!


    [GF]Spell Linear Avançada

    Compartilhe
    avatar
    Spooky
    Membro Ativo
    Membro Ativo

    Mensagens : 262
    Créditos : 23

    Re: [GF]Spell Linear Avançada

    Mensagem por Spooky em Sab Jan 17, 2015 3:38 pm

    @Dooolly escreveu:
    Bartolomeo escreveu:Você tem que 1 criar uma animation depois ir no editor spell criar uma spell ir no Type colocar em linear marcar uma caixa chamada Area off Effect Spell? e ir na scroll de baixo (tipo uma barra deitada)
    aumentar quantos números quiser (sugiro menos de 10) e depois aumentar o tamanho lateral e veja se funfa, se náo funfar [e a engine

    isso mesmo Bartolomeo!

    mas se não der certo oq ele falou, reveja o tutorial, principalmente nessa parte aqui:
    Eu escreveu:Nessa Mesma Sub Procure Por:
    Código:
       end select
    Case 2 ' targetted

    Acima Adicione:
    Código:
    Case SPELL_TYPE_LINEAR
                       '/// - MAGIA LINEAR AVANÇADA - ///
                      For linha = 1 To Spell(SpellNum).AoE
                       Select Case GetPlayerDir(Index)
                         Case DIR_UP
                          If Not GetPlayerY(Index) - linha < 0 Then
                            SendAnimation GetPlayerMap(Index), Spell(SpellNum).SpellAnim, GetPlayerX(Index), GetPlayerY(Index) - linha
                            UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index) - linha
                          End If
                         Case DIR_DOWN
                          If Not GetPlayerY(Index) + linha > Map(mapnum).MaxY Then
                            SendAnimation GetPlayerMap(Index), Spell(SpellNum).SpellAnim, GetPlayerX(Index), GetPlayerY(Index) + linha
                            UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index) + linha
                          End If
                         Case DIR_LEFT
                          If Not GetPlayerX(Index) - linha < 0 Then
                            SendAnimation GetPlayerMap(Index), Spell(SpellNum).SpellAnim, GetPlayerX(Index) - linha, GetPlayerY(Index)
                            UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) - linha, GetPlayerY(Index)
                          End If
                         Case DIR_RIGHT
                          If Not GetPlayerX(Index) + linha > Map(mapnum).MaxX Then
                            SendAnimation GetPlayerMap(Index), Spell(SpellNum).SpellAnim, GetPlayerX(Index) + linha, GetPlayerY(Index)
                            UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) + linha, GetPlayerY(Index)
                          End If
                       End Select

                       '/// - Animação Lateral - ///
                       If Spell(SpellNum).AnimL > 0 Then
                        AnimL = Spell(SpellNum).AnimL
                       Else
                        AnimL = Spell(SpellNum).SpellAnim
                       End If

                       '/// - Magia Lateral - ///
                       If Spell(SpellNum).Tamanho > 0 Then
                        If linha > 1 Then
                         For linha2 = 1 To Spell(SpellNum).Tamanho
                          Select Case GetPlayerDir(Index)
                            Case DIR_UP
                               If Not GetPlayerY(Index) - linha < 0 Then
                                 If Not GetPlayerX(Index) - linha2 < 0 Then
                                   SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) - linha2, GetPlayerY(Index) - linha
                                   UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) - linha2, GetPlayerY(Index) - linha
                                 End If
                              
                                 If Not GetPlayerX(Index) + linha2 > Map(mapnum).MaxX Then
                                   SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) + linha2, GetPlayerY(Index) - linha
                                   UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) + linha2, GetPlayerY(Index) - linha
                                 End If
                               End If
                            Case DIR_DOWN
                               If Not GetPlayerY(Index) + linha > Map(mapnum).MaxY Then
                                 If Not GetPlayerX(Index) - linha2 < 0 Then
                                   SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) + linha2, GetPlayerY(Index) + linha
                                   UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) + linha2, GetPlayerY(Index) + linha
                                 End If
                              
                                 If Not GetPlayerX(Index) + linha2 > Map(mapnum).MaxX Then
                                   SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) - linha2, GetPlayerY(Index) + linha
                                   UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) - linha2, GetPlayerY(Index) + linha
                                 End If
                               End If
                            Case DIR_LEFT
                               If Not GetPlayerX(Index) - linha < 0 Then
                                 If Not GetPlayerY(Index) - linha2 < 0 Then
                                   SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) - linha, GetPlayerY(Index) - linha2
                                   UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) - linha, GetPlayerY(Index) - linha2
                                 End If
                              
                                 If Not GetPlayerY(Index) + linha2 > Map(mapnum).MaxY Then
                                   SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) - linha, GetPlayerY(Index) + linha2
                                   UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) - linha, GetPlayerY(Index) + linha2
                                 End If
                               End If
                            Case DIR_RIGHT
                                If Not GetPlayerX(Index) + linha > Map(mapnum).MaxX Then
                                  If Not GetPlayerY(Index) + linha2 > Map(mapnum).MaxY Then
                                    SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) + linha, GetPlayerY(Index) + linha2
                                    UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) + linha, GetPlayerY(Index) + linha2
                                  End If
                                  
                                  If Not GetPlayerY(Index) - linha2 < 0 Then
                                    SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) + linha, GetPlayerY(Index) - linha2
                                    UsarMagiaLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) + linha, GetPlayerY(Index) - linha2
                                  End If
                                End If
                          End Select
                         Next
                        End If
                       End If
                      Next
                      
                      DidCast = True
    Sim, ele me falou que estava dando erro no case2 pelo skype, eu disse para ele colocar o código acima do end select. obrigado pelo sistema dooly :) 
    Mais teria como fazer um sistema de mar? tipo o player não pode andar pelo mar. só se tiver um barco e me mandar por pm ou skype?


    _________________
    Sign

    Sign¹:

    Sign²:
    avatar
    Dooolly
    Moderador Global
    Moderador Global

    Medalhas :
    Mensagens : 1239
    Créditos : 147

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [GF]Spell Linear Avançada

    Mensagem por Dooolly em Sab Jan 17, 2015 5:42 pm

    Bartolomeo escreveu:
    Sim, ele me falou que estava dando erro no case2 pelo skype, eu disse para ele colocar o código acima do end select. obrigado pelo sistema dooly :) 
    Mais teria como fazer um sistema de mar? tipo o player não pode andar pelo mar. só se tiver um barco e me mandar por pm ou skype?

    Vou ver oque posso fazer bartolomeu, mas agr não estou vendo aqui, tou pensando em postar alguns sistemas...
    avatar
    Spooky
    Membro Ativo
    Membro Ativo

    Mensagens : 262
    Créditos : 23

    Re: [GF]Spell Linear Avançada

    Mensagem por Spooky em Sab Jan 17, 2015 8:14 pm

    @Dooolly escreveu:
    Bartolomeo escreveu:
    Sim, ele me falou que estava dando erro no case2 pelo skype, eu disse para ele colocar o código acima do end select. obrigado pelo sistema dooly :) 
    Mais teria como fazer um sistema de mar? tipo o player não pode andar pelo mar. só se tiver um barco e me mandar por pm ou skype?

    Vou ver oque posso fazer bartolomeu, mas agr não estou vendo aqui, tou pensando em postar alguns sistemas...
    Ok, obrigado. assim que poder me mandar uma msg via skype ou pm. obrigado :)


    _________________
    Sign

    Sign¹:

    Sign²:
    avatar
    rockdeath
    Novato
    Novato

    Mensagens : 6
    Créditos : 2

    Re: [GF]Spell Linear Avançada

    Mensagem por rockdeath em Dom Jan 18, 2015 10:45 am

    Opa consegui era a engine que tava dando erro Successful


    _________________
    avatar
    Spooky
    Membro Ativo
    Membro Ativo

    Mensagens : 262
    Créditos : 23

    Re: [GF]Spell Linear Avançada

    Mensagem por Spooky em Dom Jan 18, 2015 7:17 pm

    Dooly, interessante também seria colocar um sistema parecido com esse: http://www.mmorpgbrasil.net/t14510-tutorialspell-linear-com-direcao
    Se você conseguir me diz como? tipo eu tentei mais deve ser diferente o linear desse com aquele (lembrando isso é só um complemento!!)


    _________________
    Sign

    Sign¹:

    Sign²:

    gui408
    Ocasional
    Ocasional

    Mensagens : 225
    Créditos : 10

    Re: [GF]Spell Linear Avançada

    Mensagem por gui408 em Dom Jan 25, 2015 1:48 pm

    Antes dessa correcao aqui funcionava legal,com essa aki da case spell,se muitas pessoas utilizar da over flow,depois vc rever ai,pois o antigo nao dava over flow.
    avatar
    Dooolly
    Moderador Global
    Moderador Global

    Medalhas :
    Mensagens : 1239
    Créditos : 147

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [GF]Spell Linear Avançada

    Mensagem por Dooolly em Dom Jan 25, 2015 3:13 pm

    @gui408 escreveu:Antes dessa correcao aqui funcionava legal,com essa aki da case spell,se muitas pessoas utilizar da over flow,depois vc rever ai,pois o antigo nao dava over flow.

    obrigado por reportar!
    mas poderia ver a linha onde esse bug está ocorrendo. não tenho muitas pessoas para utiliza-lá...

    gui408
    Ocasional
    Ocasional

    Mensagens : 225
    Créditos : 10

    Re: [GF]Spell Linear Avançada

    Mensagem por gui408 em Dom Jan 25, 2015 5:30 pm

    Ok,depois eu vejo aqui,pq eu ja alterei pro antigo,pois la coldow tudo certinho=esse so fui pra testar mesmo,pois no outro eu tinha arrumado,mas depois eu vejo,pq eu tirei e coloquei o outro antigo ai edit aki qualquer coisa.
    avatar
    Dooolly
    Moderador Global
    Moderador Global

    Medalhas :
    Mensagens : 1239
    Créditos : 147

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [GF]Spell Linear Avançada

    Mensagem por Dooolly em Ter Jan 27, 2015 12:44 pm

    Tópico Atualizado!

    Corrigido erro de overflow.

    Código Corrigido:
    Código:
    Case SPELL_TYPE_LINEAR
                      '/// - MAGIA LINEAR AVANÇADA - ///
                      For linha = 1 To Spell(spellNum).AoE
                      Select Case GetPlayerDir(Index)
                        Case DIR_UP
                          If Not GetPlayerY(Index) - linha < 0 Then
                            SendAnimation GetPlayerMap(Index), Spell(spellNum).SpellAnim, GetPlayerX(Index), GetPlayerY(Index) - linha
                            UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index) - linha
                          End If
                        Case DIR_DOWN
                          If Not GetPlayerY(Index) + linha > Map(mapnum).MaxY Then
                            SendAnimation GetPlayerMap(Index), Spell(spellNum).SpellAnim, GetPlayerX(Index), GetPlayerY(Index) + linha
                            UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index) + linha
                          End If
                        Case DIR_LEFT
                          If Not GetPlayerX(Index) - linha < 0 Then
                            SendAnimation GetPlayerMap(Index), Spell(spellNum).SpellAnim, GetPlayerX(Index) - linha, GetPlayerY(Index)
                            UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index) - linha, GetPlayerY(Index)
                          End If
                        Case DIR_RIGHT
                          If Not GetPlayerX(Index) + linha > Map(mapnum).MaxX Then
                            SendAnimation GetPlayerMap(Index), Spell(spellNum).SpellAnim, GetPlayerX(Index) + linha, GetPlayerY(Index)
                            UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index) + linha, GetPlayerY(Index)
                          End If
                      End Select

                      '/// - Animação Lateral - ///
                      If Spell(spellNum).AnimL > 0 Then
                        AnimL = Spell(spellNum).AnimL
                      Else
                        AnimL = Spell(spellNum).SpellAnim
                      End If

                      '/// - Magia Lateral - ///
                      If Spell(spellNum).Tamanho > 0 Then
                        If linha > 1 Then
                        For linha2 = 1 To Spell(spellNum).Tamanho
                          Select Case GetPlayerDir(Index)
                            Case DIR_UP
                              If Not GetPlayerY(Index) - linha < 0 Then
                                If Not GetPlayerX(Index) - linha2 < 0 Then
                                  SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) - linha2, GetPlayerY(Index) - linha
                                  UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index) - linha2, GetPlayerY(Index) - linha
                                End If
                             
                                If Not GetPlayerX(Index) + linha2 > Map(mapnum).MaxX Then
                                  SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) + linha2, GetPlayerY(Index) - linha
                                  UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index) + linha2, GetPlayerY(Index) - linha
                                End If
                              End If
                            Case DIR_DOWN
                              If Not GetPlayerY(Index) + linha > Map(mapnum).MaxY Then
                                If Not GetPlayerX(Index) + linha2 > Map(mapnum).MaxX Then
                                  SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) + linha2, GetPlayerY(Index) + linha
                                  UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index) + linha2, GetPlayerY(Index) + linha
                                End If
                             
                                If Not GetPlayerX(Index) - linha2 < 0 Then
                                  SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) - linha2, GetPlayerY(Index) + linha
                                  UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index) - linha2, GetPlayerY(Index) + linha
                                End If
                              End If
                            Case DIR_LEFT
                              If Not GetPlayerX(Index) - linha < 0 Then
                                If Not GetPlayerY(Index) - linha2 < 0 Then
                                  SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) - linha, GetPlayerY(Index) - linha2
                                  UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index) - linha, GetPlayerY(Index) - linha2
                                End If
                             
                                If Not GetPlayerY(Index) + linha2 > Map(mapnum).MaxY Then
                                  SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) - linha, GetPlayerY(Index) + linha2
                                  UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index) - linha, GetPlayerY(Index) + linha2
                                End If
                              End If
                            Case DIR_RIGHT
                                If Not GetPlayerX(Index) + linha > Map(mapnum).MaxX Then
                                  If Not GetPlayerY(Index) + linha2 > Map(mapnum).MaxY Then
                                    SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) + linha, GetPlayerY(Index) + linha2
                                    UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index) + linha, GetPlayerY(Index) + linha2
                                  End If
                                 
                                  If Not GetPlayerY(Index) - linha2 < 0 Then
                                    SendAnimation GetPlayerMap(Index), AnimL, GetPlayerX(Index) + linha, GetPlayerY(Index) - linha2
                                    UsarMagiaLinear Index, spellNum, Vital, GetPlayerMap(Index), GetPlayerX(Index) + linha, GetPlayerY(Index) - linha2
                                  End If
                                End If
                          End Select
                        Next
                        End If
                      End If
                      Next
                     
                      DidCast = True
    avatar
    Cavalo
    Iniciante
    Iniciante

    Mensagens : 72
    Créditos : 5

    Re: [GF]Spell Linear Avançada

    Mensagem por Cavalo em Sab Out 10, 2015 11:34 am

    Desculpem reviver o tópico, mas achei justo - visto que existem vários sistemas de magias lineares cheios de bugs e, pelo o que eu notei, o Doolly tá disposto a atualizar este -. Por isso, seguem alguns erros que encontrei:

    1°: A Magia não é parada por um bloqueio, o que deveria, afinal, elas não podem passam através das paredes do jogo

    2° ( Mais simples ): As animações estão bugando  de ordem



    _________________
    ...

    Conteúdo patrocinado

    Re: [GF]Spell Linear Avançada

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sex Nov 16, 2018 10:42 am