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.

[EA]Spell Linear 100% Funcional

Ir para baixo

[EA]Spell Linear 100% Funcional Empty [EA]Spell Linear 100% Funcional

Mensagem por Dooolly Qua 20 Fev 2013, 18:09

Bom Pessoal Esse é Meu Segundo Tutorial
E o mais Util eu acho '-'

Bom Não foi eu que fiz o sistema mais eu Transferi para
Eclipse Advanced
E Decidi postar ai pois tem uns que n sabe =)
Se n for necessario desculpe ai pode mover para o bau
Esse Tuto é Baseado no do ViniciusHP e funciona 100%
por umas correções minhas e o melhor Subitrai MB, Casting ...

Aconselho Fazer Backup do Client e Server antes não me responsabilizo...

Vamo lá:

Client~Side

Primeiro, vá ao frmEditor_Spell e encontre a ComboBox chamada "cmbType", nas propriedades, vá até "list" e adicione "Linear".

Depois Clique 2x Na cmdType e procure o seguinte codigo:
Código:
Spell(EditorIndex).Type = cmbType.ListIndex

Abaixo ADD:
Código:
If cmbType.text = "Linear" Then
        scrlRange.Value = 0
        chkAOE.Value = 1
    End If

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

Em Seguida Add:
Código:
Public Const SPELL_TYPE_LINEAR As Byte = 5

Client Pronto o.O
Se Seu Client Tiver o Jogo Exclusivo para STAFF
e tiver duvidas comenta ai eu q eu respondo como fazer '-'

Server~Side

Aqui é onde muda um pouco '-'

Agora no ModEnumeration Procure por:
Código:
Public Enum SpellType

Abaixo de "SPELL_TYPE_WARP" add:
Código:
SPELL_TYPE_LINEAR

Agora, no sub CastSpell, procure por:
Código:
Dim x As Long, y As Long

abaixo, adicione:
Código:
Dim x2 As Long, y2 As Long
Dim Linha As Integer
Dim Calculate As Long

procure por:
Código:
End Select
        Case 2 ' targetted

acima disso, adicione:
Código:
                    Case SPELL_TYPE_LINEAR
                        DidCast = True
                        Linha = 1
                        Do While Linha < Spell(SpellNum).AoE
             
                            Select Case GetPlayerDir(Index)
             
                                Case DIR_UP
                                    Calculate = GetPlayerY(Index) - Linha
                                    If Calculate < 0 Then Exit Sub
                                    If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index) - Linha).Type = TILE_TYPE_BLOCKED Then Exit Sub
                                    SendAnimation GetPlayerMap(Index), Spell(SpellNum).SpellAnim, GetPlayerX(Index), GetPlayerY(Index) - Linha
                                    IsUseLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index) - Linha
                                 
                                Case DIR_DOWN
                                    Calculate = GetPlayerY(Index) + Linha
                                    If Calculate > Map(mapNum).MaxX Then Exit Sub
                                    If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index) + Linha).Type = TILE_TYPE_BLOCKED Then Exit Sub
                                    SendAnimation GetPlayerMap(Index), Spell(SpellNum).SpellAnim, GetPlayerX(Index), GetPlayerY(Index) + Linha
                                    IsUseLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index) + Linha
                                Case DIR_LEFT
                                    Calculate = GetPlayerX(Index) - Linha
                                    If Calculate < 0 Then Exit Sub
                                    If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index) - Linha, GetPlayerY(Index)).Type = TILE_TYPE_BLOCKED Then Exit Sub
                                    SendAnimation GetPlayerMap(Index), Spell(SpellNum).SpellAnim, GetPlayerX(Index) - Linha, GetPlayerY(Index)
                                    IsUseLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) - Linha, GetPlayerY(Index)
                                Case DIR_RIGHT
                                    Calculate = GetPlayerX(Index) + Linha
                                    If Calculate > Map(mapNum).MaxX Then Exit Sub
                                    If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index) + i, GetPlayerY(Index)).Type = TILE_TYPE_BLOCKED Then Exit Sub
                                    SendAnimation GetPlayerMap(Index), Spell(SpellNum).SpellAnim, GetPlayerX(Index) + Linha, GetPlayerY(Index)
                                    IsUseLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index) + Linha, GetPlayerY(Index)
                            End Select
                          Linha = Linha + 1
                        Loop

Agora, no final do modCombat, adicione:
Código:
Function IsUseLinear(ByVal Index As Integer, ByVal SpellNum As Integer, ByVal vital As Long, ByVal Mapa As Integer, 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 PlayerAttackNpc Index, i, vital, SpellNum
            Next

            'Loop Global Player
            For i = 1 To Player_HighIndex
   
              If GetPlayerMap(i) = Mapa And GetPlayerX(i) = x And GetPlayerY(i) = y Then PlayerAttackPlayer Index, i, vital, SpellNum
            Next
End Function
Creditos:
LythZerou pelo tutorial
V-force pelo código inicial
créditos a mim por complementar o código.
Velentine por corrigir alguns bug


Dooolly
Dooolly
Membro
Membro

Mensagens : 160

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