Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
[GF]Spell Linear Avançada
+10
Raizen
evokke
Pablo Kawan
kiritor
Himinato
Lord Pegason
gui408
Cavalo
Valentine
Dooolly
14 participantes
Página 1 de 5
Página 1 de 5 • 1, 2, 3, 4, 5
[GF]Spell Linear Avançada
MAGIA LINEAR AVANÇADA
Como Funciona
Sistema de Magia que funciona em uma só direção e que se expande em suas laterais.
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
Na frmEditor_Spell Adicione:
- Spoiler:
- Scroll_Bar - (scrlTamanho)
Dentro Dela Adicione:- Código:
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
lblTamanho.Caption = " Tamanho Lateral: " & scrlTamanho.Value
Spell(EditorIndex).Tamanho = scrlTamanho.Value
' Error handler
Exit Sub
errorhandler:
HandleError "scrlTamanho_Change", "frmEditor_Spell", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
- Spoiler:
- Scroll_Bar - (scrlAnimL)
Dentro Dela Adicione:- Código:
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
If scrlAnimL.Value > 0 Then
lblAnimL.Caption = "Anim Lateral: " & Trim$(Animation(scrlAnimL.Value).Name)
Else
lblAnimL.Caption = "Anim Lateral: Nenhum"
End If
Spell(EditorIndex).AnimL = scrlAnimL.Value
' Error handler
Exit Sub
errorhandler:
HandleError "scrlAnimL_Change", "frmEditor_Spell", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
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)
Re: [GF]Spell Linear Avançada
Em qual E.O vai funcionar? Eu uso uma dx8 mas não é a 4.0
_________________
...
Cavalo- Iniciante
- Mensagens : 67
Créditos : 5
Re: [GF]Spell Linear Avançada
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...
gui408- Ocasional
- Mensagens : 227
Créditos : 10
Re: [GF]Spell Linear Avançada
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"
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"
Lord Pegason- Novato
- Mensagens : 5
Créditos : 1
Re: [GF]Spell Linear Avançada
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
Re: [GF]Spell Linear Avançada
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
tipo eu crio a linear e salvo quando abre de novo volta tudo ao 0
Himinato- Novato
- Mensagens : 19
Créditos : 0
Re: [GF]Spell Linear Avançada
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;
Re: [GF]Spell Linear Avançada
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.,,
gui408- Ocasional
- Mensagens : 227
Créditos : 10
Página 1 de 5 • 1, 2, 3, 4, 5
Tópicos semelhantes
» [E.O]Spell Linear 100% Funcional (verdadeiro) [FIX]
» Spell Linear
» Spell linear
» (?) Spell Linear com flecha
» [E.O]Spell Linear 100% Funcional (verdadeiro)
» Spell Linear
» Spell linear
» (?) Spell Linear com flecha
» [E.O]Spell Linear 100% Funcional (verdadeiro)
Página 1 de 5
Permissões neste sub-fórum
Não podes responder a tópicos