Suporte ao desenvolvimento de jogos!


    [GL]Magia Direcional - Complemento

    Compartilhe
    avatar
    Dooolly
    Moderador Global
    Moderador Global

    Medalhas :
    Mensagens : 1237
    Créditos : 147

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

    [GL]Magia Direcional - Complemento

    Mensagem por Dooolly em Ter Jan 20, 2015 12:39 pm



    Informações

    Nome: Sistema de Magia Direcional
    Versão: 0.1.0
    Criador: GameLoop
    Creditos: Dooolly, Thales12
    Requerimento: Magia Linear Avançada

    Esse Sistema é apenas um complemento para o sistema de Magia linear avançada. Por isso ele requer o sistema. Qualquer erro informar no tópico.

    Tutorial

    Client-Side

    Vamos começar no frmEditor_Spell

    Primeiro você terá que cria:
    - 4 Scrollbars
    - 4 Labeis

    Vai ter que renomear todas as scrolls com o mesmo nome: scrlDirSpell
    Também terá que renomear as labeis com o mesmo nome: lblDirSpell

    Lembre de por em ordem as Index
    0 = Cima/DIR_UP
    1 = Baixo/DIR_DOWN
    2 = Esquerda/DIR_LEFT
    3 = Direita/DIR_RIGHT

    * Essa parte da Index é muito importante.

    Aqui um exemplo de como ficou o meu:
    Spoiler:

    Clique em qualquer uma dessa scrolls e ponha o seguinte código:
    Código:
        ' If debug mode, handle error then exit out
        If Options.Debug = 1 Then On Error GoTo errorhandler

        If scrlDirSpell(Index).Value > 0 Then
           lblDirSpell(Index).Caption = Trim$(Animation(scrlDirSpell(Index).Value).Name)
        Else
           lblDirSpell(Index).Caption = "Nenhuma"
        End If
        
        Spell(EditorIndex).Anim(Index) = scrlDirSpell(Index).Value
        
        ' Error handler
        Exit Sub
    errorhandler:
        HandleError "scrlDirSpell_Change", "frmEditor_Spell", Err.Number, Err.Description, Err.Source, Err.HelpContext
        Err.Clear
        Exit Sub

    Ainda na frmEditor_Spell procure pela cmbType
    Vá em List nas propriedades da cmbType e adicione: Direcional

    Exemplo:

    Vou deixa o link da minha frmEditor_Spell para você ver. Se Quiser pode até usar, mas nela você só encontra o sistema de Magia Linear Avançada, e Magia Direcional.
    frmEditor_Spell Files

    CODIGO

    Em modGameEditors procure por:
    Código:
    .scrlStun.Value = Spell(EditorIndex).StunDuration

    Abaixo adicione:
    Código:
    ' Magia Direcional
            For i = 0 To 3
               .scrlDirSpell(i).Value = Spell(EditorIndex).Anim(i)
            Next

    Em modConstants procure por:
    Código:
    Public Const SPELL_TYPE_WARP As Byte = 4

    Abaixo adicione:
    Código:
    Public Const SPELL_TYPE_DIR As Byte = 5
    * Onde tem o numero 5 mude para a Spell_Type Final
    Se o ultimo numero for 5 você bota 6. Nunca deixe repetir o valor da SPELL_TYPE


    Em modTypes procure por:
    Código:
    StunDuration As Long

    Abaixo adicione:
    Código:
    ' Magia Direcional
        Anim(0 To 3) As Long
    * Outra coisa importante é: Sempre coloque antes da EndType.
    Exemplo:

    Código:
    Private Type SpellRec
        Name As String * NAME_LENGTH
        Desc As String * 255
        Sound As String * NAME_LENGTH
        
        Type As Byte
        MPCost As Long
        LevelReq As Long
        AccessReq As Long
        ClassReq As Long
        CastTime As Long
        CDTime As Long
        Icon As Long
        Map As Long
        x As Long
        y As Long
        Dir As Byte
        Vital As Long
        Duration As Long
        Interval As Long
        Range As Byte
        IsAoE As Boolean
        AoE As Long
        CastAnim As Long
        SpellAnim As Long
        StunDuration As Long
        
        ' Magia Linear Avançada
        Tamanho As Long
        AnimL As Long
        
        ' Magia Direcional
        Anim(0 To 3) As Long
    End Type

    Cliente Terminado!

    Server-Side

    Em modConstants procure por:
    Código:
    Public Const SPELL_TYPE_WARP As Byte = 4

    Abaixo adicione:
    Código:
    Public Const SPELL_TYPE_DIR As Byte = 5
    * Onde tem o numero 5 mude para a Spell_Type Final
    Se o ultimo numero for 5 você bota 6. Nunca deixe repetir o valor da SPELL_TYPE


    Em modTypes procure por:
    Código:
    StunDuration As Long

    Abaixo adicione:
    Código:
    ' Magia Direcional
        Anim(0 To 3) As Long
    * Outra coisa importante é: Sempre coloque antes da EndType.
    Siga o exemplo anterior.


    Em modCombat na Sub CastSpell procure por:
    Código:
    End Select
            Case 2 ' targetted

    Acima adicione:
    Código:
    Case SPELL_TYPE_DIR

                      ' Ativar Animação
                      Select Case GetPlayerDir(index)
                         Case DIR_UP
                           SendAnimation GetPlayerMap(index), Spell(SpellNum).Anim(GetPlayerDir(index)), GetPlayerX(index), GetPlayerY(index) - 1
                         Case DIR_DOWN
                           SendAnimation GetPlayerMap(index), Spell(SpellNum).Anim(GetPlayerDir(index)), GetPlayerX(index), GetPlayerY(index) + 1
                         Case DIR_LEFT
                           SendAnimation GetPlayerMap(index), Spell(SpellNum).Anim(GetPlayerDir(index)), GetPlayerX(index) - 1, GetPlayerY(index)
                         Case DIR_RIGHT
                           SendAnimation GetPlayerMap(index), Spell(SpellNum).Anim(GetPlayerDir(index)), GetPlayerX(index) + 1, GetPlayerY(index)
                      End Select
                    
                      ' Dano Linear
                      For linha = 1 To Spell(SpellNum).AoE
                       Select Case GetPlayerDir(index)
                         Case DIR_UP
                          If Not GetPlayerY(index) - linha < 0 Then
                            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
                            UsarMagiaLinear index, SpellNum, Vital, GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index) + linha
                          End If
                         Case DIR_LEFT
                          If Not GetPlayerX(index) - linha < 0 Then
                            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
                            UsarMagiaLinear index, SpellNum, Vital, GetPlayerMap(index), GetPlayerX(index) + linha, GetPlayerY(index)
                          End If
                       End Select

                       '/// - Dano Lateral - ///
                       If Spell(SpellNum).Tamanho > 0 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
                                   UsarMagiaLinear index, SpellNum, Vital, GetPlayerMap(index), GetPlayerX(index) - linha2, GetPlayerY(index) - linha
                                 End If
                              
                                 If Not GetPlayerX(index) + linha2 > Map(mapnum).MaxX Then
                                   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
                                   UsarMagiaLinear index, SpellNum, Vital, GetPlayerMap(index), GetPlayerX(index) + linha2, GetPlayerY(index) + linha
                                 End If
                              
                                 If Not GetPlayerX(index) + linha2 > Map(mapnum).MaxX Then
                                   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
                                   UsarMagiaLinear index, SpellNum, Vital, GetPlayerMap(index), GetPlayerX(index) - linha, GetPlayerY(index) - linha2
                                 End If
                              
                                 If Not GetPlayerY(index) + linha2 > Map(mapnum).MaxY Then
                                   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
                                    UsarMagiaLinear index, SpellNum, Vital, GetPlayerMap(index), GetPlayerX(index) + linha, GetPlayerY(index) + linha2
                                  End If
                                  
                                  If Not GetPlayerY(index) - linha2 < 0 Then
                                    UsarMagiaLinear index, SpellNum, Vital, GetPlayerMap(index), GetPlayerX(index) + linha, GetPlayerY(index) - linha2
                                  End If
                                End If
                          End Select
                         Next
                        End If
                      Next
                      
                      DidCast = True
    * Lembre de checar se você colocou acima do End Select, se você colocar depois não irá funcionar!

    Servidor Terminado!

    Com funciona?
    O Sistema funciona igual ao meu sistema de Magia Linear, Você escolhe o tamanho em Linha e o tamanho em que ele se expande, depois é só escolher uma animação para cada direção...


    Última edição por Dooolly em Sex Mar 18, 2016 10:22 pm, editado 5 vez(es)
    avatar
    Spooky
    Membro Ativo
    Membro Ativo

    Mensagens : 262
    Créditos : 23

    Re: [GL]Magia Direcional - Complemento

    Mensagem por Spooky em Ter Jan 20, 2015 3:26 pm

    Dooly, uma pergunta. se eu quiser usar junto ao linear como vou fazer? '-' tipo na cmb vai ter linear e direcional, vou ter que escolher 1 dos 2, resumindo se eu escolher linear n vai ter o direcional e se escolher direcional n vai ter linear?


    _________________
    Sign

    Sign¹:

    Sign²:
    avatar
    Dooolly
    Moderador Global
    Moderador Global

    Medalhas :
    Mensagens : 1237
    Créditos : 147

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

    Re: [GL]Magia Direcional - Complemento

    Mensagem por Dooolly em Ter Jan 20, 2015 5:59 pm

    Bartolomeo escreveu:Dooly, uma pergunta. se eu quiser usar junto ao linear como vou fazer? '-' tipo na cmb vai ter linear e direcional, vou ter que escolher 1 dos 2, resumindo se eu escolher linear n vai ter o direcional e se escolher direcional n vai ter linear?

    Não entendi, pra que você quer usar os 2 ao mesmo tempo?
    já que eles tem a mesma função? só muda a forma que exibe a animação...
    avatar
    Spooky
    Membro Ativo
    Membro Ativo

    Mensagens : 262
    Créditos : 23

    Re: [GL]Magia Direcional - Complemento

    Mensagem por Spooky em Ter Jan 20, 2015 8:06 pm

    @Dooolly escreveu:
    Bartolomeo escreveu:Dooly, uma pergunta. se eu quiser usar junto ao linear como vou fazer? '-' tipo na cmb vai ter linear e direcional, vou ter que escolher 1 dos 2, resumindo se eu escolher linear n vai ter o direcional e se escolher direcional n vai ter linear?

    Não entendi, pra que você quer usar os 2 ao mesmo tempo?
    já que eles tem a mesma função? só muda a forma que exibe a animação...
    Então quer dizer que isto serve como sistema linear também ? :o



    _________________
    Sign

    Sign¹:

    Sign²:
    avatar
    Dooolly
    Moderador Global
    Moderador Global

    Medalhas :
    Mensagens : 1237
    Créditos : 147

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

    Re: [GL]Magia Direcional - Complemento

    Mensagem por Dooolly em Ter Jan 20, 2015 9:39 pm

    Bartolomeo escreveu:
    @Dooolly escreveu:
    Bartolomeo escreveu:Dooly, uma pergunta. se eu quiser usar junto ao linear como vou fazer? '-' tipo na cmb vai ter linear e direcional, vou ter que escolher 1 dos 2, resumindo se eu escolher linear n vai ter o direcional e se escolher direcional n vai ter linear?

    Não entendi, pra que você quer usar os 2 ao mesmo tempo?
    já que eles tem a mesma função? só muda a forma que exibe a animação...
    Então quer dizer que isto serve como sistema linear também ? :o

    Basicamente, essa ai é uma Spell linear avançada, só que com apenas uma animação, e utiliza animações diferentes para cada direção..
    avatar
    Spooky
    Membro Ativo
    Membro Ativo

    Mensagens : 262
    Créditos : 23

    Re: [GL]Magia Direcional - Complemento

    Mensagem por Spooky em Ter Jan 20, 2015 11:33 pm

    @Dooolly escreveu:
    Bartolomeo escreveu:
    @Dooolly escreveu:
    Bartolomeo escreveu:Dooly, uma pergunta. se eu quiser usar junto ao linear como vou fazer? '-' tipo na cmb vai ter linear e direcional, vou ter que escolher 1 dos 2, resumindo se eu escolher linear n vai ter o direcional e se escolher direcional n vai ter linear?

    Não entendi, pra que você quer usar os 2 ao mesmo tempo?
    já que eles tem a mesma função? só muda a forma que exibe a animação...
    Então quer dizer que isto serve como sistema linear também ? :o

    Basicamente, essa ai é uma Spell linear avançada, só que com apenas uma animação, e utiliza animações diferentes para cada direção..
    E se eu não usar o linear? e só usar esse que vc mandou, vai funcionar?


    _________________
    Sign

    Sign¹:

    Sign²:
    avatar
    Dooolly
    Moderador Global
    Moderador Global

    Medalhas :
    Mensagens : 1237
    Créditos : 147

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

    Re: [GL]Magia Direcional - Complemento

    Mensagem por Dooolly em Ter Jan 20, 2015 11:38 pm

    Bartolomeo escreveu:
    @Dooolly escreveu:
    Bartolomeo escreveu:
    @Dooolly escreveu:
    Bartolomeo escreveu:Dooly, uma pergunta. se eu quiser usar junto ao linear como vou fazer? '-' tipo na cmb vai ter linear e direcional, vou ter que escolher 1 dos 2, resumindo se eu escolher linear n vai ter o direcional e se escolher direcional n vai ter linear?

    Não entendi, pra que você quer usar os 2 ao mesmo tempo?
    já que eles tem a mesma função? só muda a forma que exibe a animação...
    Então quer dizer que isto serve como sistema linear também ? :o

    Basicamente, essa ai é uma Spell linear avançada, só que com apenas uma animação, e utiliza animações diferentes para cada direção..
    E se eu não usar o linear? e só usar esse que vc mandou, vai funcionar?

    O sistema de spell linear é necessário para usar esse ai... pois exigem alguns codigos da spell linear.
    avatar
    Hashirama
    Experiente
    Experiente

    Mensagens : 408
    Créditos : 130

    Re: [GL]Magia Direcional - Complemento

    Mensagem por Hashirama em Qua Jan 21, 2015 11:50 am

    Este complemento ficou bem melhor.. bom que ainda tem alguém para movimentar a parte do Eclipse Origins..
    1+Crédito


    _________________
    Apoia nosso projeto? use nossa assinatura

    Código:
    [color=#ff9900][size=10]Eu Apoio Esse Projeto![/size][/color]
    [url=http://www.aldeiarpg.com/t11184-naruto-shinobi-online][img]http://i.imgur.com/B9M26iU.png[/img][/url]


    gui408
    Ocasional
    Ocasional

    Mensagens : 225
    Créditos : 10

    Re: [GL]Magia Direcional - Complemento

    Mensagem por gui408 em Qui Jan 22, 2015 12:44 am

    Muito Bom 100% Funcional!Execelente Sistema,Vlw Dolly!
    avatar
    Motodark
    Ocasional
    Ocasional

    Mensagens : 168
    Créditos : 4

    Re: [GL]Magia Direcional - Complemento

    Mensagem por Motodark em Qui Fev 12, 2015 12:48 am

    Muito bom dooolly ainda bem que nós novatos temos você para nos ajudar muito obrigado +1 Crédito.

    Conteúdo patrocinado

    Re: [GL]Magia Direcional - Complemento

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg Out 22, 2018 9:41 pm