Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


+10
Raizen
evokke
Pablo Kawan
kiritor
Himinato
Lord Pegason
gui408
Cavalo
Valentine
Dooolly
14 participantes

    [GF]Spell Linear Avançada

    Dooolly
    Dooolly
    Colaborador
    Colaborador


    Medalhas : [GF]Spell Linear Avançada Trophy12
    Mensagens : 1227
    Créditos : 153

    Ficha do personagem
    Nível: 1
    Experiência:
    [GF]Spell Linear Avançada Left_bar_bleue0/0[GF]Spell Linear Avançada Empty_bar_bleue  (0/0)
    Vida:
    [GF]Spell Linear Avançada Left_bar_bleue30/30[GF]Spell Linear Avançada Empty_bar_bleue  (30/30)

    [GF]Spell Linear Avançada Empty [GF]Spell Linear Avançada

    Mensagem por Dooolly Qua Fev 05, 2014 5:41 pm

    [GF]Spell Linear Avançada IqgS6x8BSTKQT

    MAGIA LINEAR AVANÇADA


    Como Funciona

    Sistema de Magia que funciona em uma só direção e que se expande em suas laterais.

    [GF]Spell Linear Avançada IblLLzdlgXYQXO

    Server~Side

    Em ModConstants Procure Por:
    Código:
    Public Const SPELL_TYPE_WARP As Byte = 4

    Abaixo Adicione:
    Código:
    Public Const SPELL_TYPE_LINEAR As Byte = 5

    Em ModCombat Procure Por:
    Código:
    Dim Buffer As clsBuffer, spellCastType As Long

    Abaixo Adicione:
    Código:
    Dim linha As Long, linha2 As Long, AnimL As Long

    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 > 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

    NO Final do Modulo adicione
    Código:
    Function UsarMagiaLinear(ByVal Index As Integer, ByVal SpellNum As Integer, ByVal vital As Long, ByVal Mapa As Long, ByVal x As Byte, ByVal y As Byte)
    Dim i As Long


     
        'Loop Global Npc
        For i = 1 To MAX_MAP_NPCS
          If MapNpc(Mapa).NPC(i).Num > 0 And MapNpc(Mapa).NPC(i).x = x And MapNpc(Mapa).NPC(i).y = y And MapNpc(Mapa).NPC(i).vital(HP) > 0 Then
            If CanPlayerAttackNpc(Index, i, True) Then
              PlayerAttackNpc Index, i, vital, SpellNum
            End If
          End If
        Next


        
        'Loop Global Player
        For i = 1 To Player_HighIndex
          If IsPlaying(i) Then
            If GetPlayerMap(i) = Mapa And GetPlayerX(i) = x And GetPlayerY(i) = y Then
              If CanPlayerAttackPlayer(Index, i, True) Then
                PlayerAttackPlayer Index, i, vital, SpellNum
              End If
            End If
          End If
        Next
    End Function

    Em modtypes procure por:
    Código:
    AoE As Long

    Abaixo adicione:
    Código:
    Tamanho As Long
    AnimL As Long

    DELETE TODAS AS MAGIAS ANTES DE INICIAR O SERVIDOR!
    SERVIDOR PRONTO!

    Client~Side

    [GF]Spell Linear Avançada ILzLShC1UKcEy
    Na frmEditor_Spell Adicione:
    Spoiler:

    Spoiler:

    Label - (lblTamanho) - (Caption: Tamanho Lateral: 0)
    Label - (lblAnimL) - (Caption: Anim Lateral: Nenhuma)

    Ainda na frmEditor_Spell, na cmbType, em Propriedades procure por "List" e adicione: Linear
    Depois dê um duplo Clique na cmbType e Adicione:
    Código:
    If cmbType.text = "Linear" Then
          chkAOE.Value = 1
        Else
          chkAOE.Value = 0
        End If

    na mobGameEditors, Procure:
    Código:
    .scrlStun.Value = Spell(EditorIndex).StunDuration

    Abaixo Adicione:
    Código:
    .scrlTamanho.Value = Spell(EditorIndex).Tamanho
    .scrlAnimL.Value = Spell(EditorIndex).AnimL


    Em ModTypes procure por:
    Código:
    AoE As Long

    Abaixo adicione:
    Código:
    Tamanho As Long
    AnimL As Long

    Em ModConstants Procure Por:
    Código:
    Public Const SPELL_TYPE_WARP As Byte = 4

    Abaixo Adicione:
    Código:
    Public Const SPELL_TYPE_LINEAR As Byte = 5

    Client Pronto!


    Última edição por Dooolly em Ter Jan 27, 2015 12:43 pm, editado 5 vez(es)
    Valentine
    Valentine
    Administrador
    Administrador


    Medalhas : [GF]Spell Linear Avançada ZgLkiRU
    Mensagens : 5345
    Créditos : 1164

    [GF]Spell Linear Avançada Empty Re: [GF]Spell Linear Avançada

    Mensagem por Valentine Qua Fev 05, 2014 6:45 pm

    Muito bem Dooolly

    + 1 crédito
    Cavalo
    Cavalo
    Iniciante
    Iniciante


    Mensagens : 67
    Créditos : 5

    [GF]Spell Linear Avançada Empty Re: [GF]Spell Linear Avançada

    Mensagem por Cavalo Ter Mar 25, 2014 9:59 pm

    Em qual E.O vai funcionar? Eu uso uma dx8 mas não é a 4.0


    _________________
    ...
    [GF]Spell Linear Avançada Qzggn6
    Dooolly
    Dooolly
    Colaborador
    Colaborador


    Medalhas : [GF]Spell Linear Avançada Trophy12
    Mensagens : 1227
    Créditos : 153

    Ficha do personagem
    Nível: 1
    Experiência:
    [GF]Spell Linear Avançada Left_bar_bleue0/0[GF]Spell Linear Avançada Empty_bar_bleue  (0/0)
    Vida:
    [GF]Spell Linear Avançada Left_bar_bleue30/30[GF]Spell Linear Avançada Empty_bar_bleue  (30/30)

    [GF]Spell Linear Avançada Empty Re: [GF]Spell Linear Avançada

    Mensagem por Dooolly Qua Abr 02, 2014 12:12 pm

    Funciona em todas as EO e CSDE, desculpa a demora, tou sem net
    avatar
    gui408
    Ocasional
    Ocasional


    Mensagens : 227
    Créditos : 10

    [GF]Spell Linear Avançada Empty Re: [GF]Spell Linear Avançada

    Mensagem por gui408 Seg Abr 14, 2014 6:43 pm

    rsrs n conscigo fazer um tuto seu,esse ai scrol anim e tamanho n salva,spell n tem coldow e tb nao sai nada,n funfo aki,se alguem consceguiu ja refiz e continua o msm...
    Lord Pegason
    Lord Pegason
    Novato
    Novato


    Mensagens : 5
    Créditos : 1

    [GF]Spell Linear Avançada Empty Re: [GF]Spell Linear Avançada

    Mensagem por Lord Pegason Ter maio 06, 2014 12:03 pm

    Creio que você poderia ser mais "detalhista" e dizer em qual rotina deve encaixar as partes do código.

    Não ficaria mais fácil? "Na sub bla bla bla, adicionar tal coisa".

    Pois me parece bem confuso, tive dificuldade ao interpretar o que você quis dizer.

    Mas excelente conteúdo. Parabéns.







    "Dooooly, tome guaraná, Dooooly"

    "Doooly guaraná, o sabor brasileiro"
    Dooolly
    Dooolly
    Colaborador
    Colaborador


    Medalhas : [GF]Spell Linear Avançada Trophy12
    Mensagens : 1227
    Créditos : 153

    Ficha do personagem
    Nível: 1
    Experiência:
    [GF]Spell Linear Avançada Left_bar_bleue0/0[GF]Spell Linear Avançada Empty_bar_bleue  (0/0)
    Vida:
    [GF]Spell Linear Avançada Left_bar_bleue30/30[GF]Spell Linear Avançada Empty_bar_bleue  (30/30)

    [GF]Spell Linear Avançada Empty Re: [GF]Spell Linear Avançada

    Mensagem por Dooolly Qua Jul 02, 2014 10:17 am

    Topico Atualizado, tava olhando aki hj e vi que esqueci de adicionar o Linear ao cmbType. bom ja está arrumado, qualquer erro só falar :3
    avatar
    Himinato
    Novato
    Novato


    Mensagens : 19
    Créditos : 0

    [GF]Spell Linear Avançada Empty Re: [GF]Spell Linear Avançada

    Mensagem por Himinato Sex Jul 11, 2014 10:23 am

    alguem ajuda fiz tudo direitinho mais quando vou colocar a magia não salva
    tipo eu crio a linear e salvo quando abre de novo volta tudo ao 0
    Dooolly
    Dooolly
    Colaborador
    Colaborador


    Medalhas : [GF]Spell Linear Avançada Trophy12
    Mensagens : 1227
    Créditos : 153

    Ficha do personagem
    Nível: 1
    Experiência:
    [GF]Spell Linear Avançada Left_bar_bleue0/0[GF]Spell Linear Avançada Empty_bar_bleue  (0/0)
    Vida:
    [GF]Spell Linear Avançada Left_bar_bleue30/30[GF]Spell Linear Avançada Empty_bar_bleue  (30/30)

    [GF]Spell Linear Avançada Empty Re: [GF]Spell Linear Avançada

    Mensagem por Dooolly Sex Jul 11, 2014 2:04 pm

    Himinato escreveu:alguem ajuda fiz tudo direitinho mais quando vou colocar a magia não salva
    tipo eu crio a linear e salvo quando abre de novo volta tudo ao 0


    na mobGameEditors, Procure:
    Código:
    .scrlStun.Value = Spell(EditorIndex).StunDuration

    Abaixo Adicione:
    Código:
    .scrlTamanho.Value = Spell(EditorIndex).Tamanho
    .scrlAnimL.Value = Spell(EditorIndex).AnimL

    Desculpe o erro eu tinha esquecido de por essa parte no tutorial e só agr vim ver no meu jogo tb ta com isso.. mas ja arrumei;
    avatar
    gui408
    Ocasional
    Ocasional


    Mensagens : 227
    Créditos : 10

    [GF]Spell Linear Avançada Empty Re: [GF]Spell Linear Avançada

    Mensagem por gui408 Ter Ago 19, 2014 2:05 am

    Fiz tudo certinho,ai deu certo saiu tudo certo fui testando até achar um erro,bem o erro aconte quando vc utiliza a spell linear perto da tela,exemplo tela onde vc vai passa pro outro map,ai vc usa a spell ali e nao tem CD pode usar infinitas vezes,mas quando a spell nao bate na lateral da tela fik numa boa certinha,mas quando bate vc pode usar varias vezes sem o CD,eu queria deixar esse CD da spell linear= a do spell aoe q ja vem no origins ai fikaria perfeita,muito bom esse sistema seu,so falta arruma isto q te flei,se puder me ajudar xD,vlw.,,

    Conteúdo patrocinado


    [GF]Spell Linear Avançada Empty Re: [GF]Spell Linear Avançada

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qua Dez 04, 2024 9:07 pm