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.

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

+13
Snoow
Dooolly
lraniel
sushi123
math320
GustavoNunes
Pad;*
SsasuKeeUuchiHaa
Valentine
EdUaRdOo
St4rk
Sαkurαy
viniciushp
17 participantes

Página 1 de 2 1, 2  Seguinte

Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por viniciushp Qui 19 Abr 2012, 07:44

Fala galera!

esse é o meu primeiro tutorial, baseado no tutorial do @LythZerou.

Bem, o problema era o seguinte: Meu sistema de spells é um pouco mais complexo, com level nas spells, e a cada level que a spell aumenta, ela aumenta o dano, mas aumenta também o MP requerido para utilizá-la.
Com esse tutorial de spell Linear, além de não conseguir usar o MP, o dano permanecia o mesmo, independente do level da spell. Daí ficava meio sem sentido.

PS: Não me responsabilizo por instabilidades ou problemas no seu source após o tutorial aqui citado. A execução do código fica por sua conta e risco! (não estou dizendo que vá dar problemas, mas é para evitar reclamações infundadas).

Vamos ao código

Client Side

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

Após o procedimento acima, clique 2x na cmbType e procure o seguinte código:

Código:
Spell(EditorIndex).Type = cmbType.ListIndex

abaixo, adicione

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

abaixo, adicione

Código:
Public Const SPELL_TYPE_LINEAR As Byte = 5

Client terminado.

Server Side

No 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

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(Linha).MaxY 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 <= 0 Then Exit Sub
                                    If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), 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

ATENÇÃO: esse Sub é DIFERENTE do sub disponibilizado no outro tutorial. Não confunda as coisas, poderá ter problemas.

Bem, é isso, testem e qualquer dúvida, responder AQUI, assim que possível tentarei solucionar seu problema.

Créditos: LythZerou pelo tutorial, V-force pelo código inicial, e créditos a mim, por complementar o código.
viniciushp
viniciushp
Novato
Novato

Mensagens : 21

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por Sαkurαy Qui 19 Abr 2012, 10:10

Muito bom mano, ajudara muitas pessoas.
+ Crédito
Sαkurαy
Sαkurαy
Membro Veterano
Membro Veterano

Mensagens : 1386

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por St4rk Qui 19 Abr 2012, 11:56

Por que usar um Do em uma spell liner... ?
St4rk
St4rk
Membro de Honra
Membro de Honra

Mensagens : 2251

http://mylittledev.wordpress.com

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por viniciushp Qui 19 Abr 2012, 12:00

OmegaZero escreveu:Por que usar um Do em uma spell liner... ?

Para não criar uma linha infinita. Enquanto a linha for menor que o alcance da Spell, continuar, se não, para.
viniciushp
viniciushp
Novato
Novato

Mensagens : 21

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por EdUaRdOo Qui 19 Abr 2012, 12:07

viniciushp muito bom continui postando por q se nao foçem eu vc e thales isso aki continuaria mais morto q tudo
EdUaRdOo
EdUaRdOo
Novato
Novato

Mensagens : 14

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por viniciushp Qui 19 Abr 2012, 12:22

EdUaRdOo escreveu:viniciushp muito bom continui postando por q se nao foçem eu vc e thales isso aki continuaria mais morto q tudo

Confesso que fico meio desmotivado pela comunidade estar tão parada.
viniciushp
viniciushp
Novato
Novato

Mensagens : 21

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por Valentine Qui 19 Abr 2012, 12:33

Parece muito bom, estou torcendo para que realmente esteja completo, porque já vi esse tutorial sendo refeito e as pessoas corrigindo os bugs milhares de vezes em algo não tão complexo, de qualquer forma depois irei testá-lo e se ver que algo pode ser melhorado ou tiver algum bug eu irei postar aqui como corrigir, para contribuir.
avatar
Valentine
Membro de Honra
Membro de Honra

Mensagens : 472

http://www.aldeiarpgbr.com

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por SsasuKeeUuchiHaa Qui 19 Abr 2012, 12:42

Lindo tuto +1 Cred





Ta dando erro

IsUseLinear Index, SpellNum, vital, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index) - Linha


Última edição por SsasuKeeUuchiHaa em Qui 19 Abr 2012, 13:06, editado 1 vez(es)
SsasuKeeUuchiHaa
SsasuKeeUuchiHaa
Novato
Novato

Mensagens : 33

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por viniciushp Qui 19 Abr 2012, 12:44

Alguém já testou por aí?
viniciushp
viniciushp
Novato
Novato

Mensagens : 21

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por St4rk Qui 19 Abr 2012, 13:11

Seria melhor usar um For... Do é muito pesado, ao meu ver.
St4rk
St4rk
Membro de Honra
Membro de Honra

Mensagens : 2251

http://mylittledev.wordpress.com

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por viniciushp Sex 20 Abr 2012, 08:05

OmegaZero escreveu:Seria melhor usar um For... Do é muito pesado, ao meu ver.

Fiquei na dúvida e fui questionar o meu professor de programação ontem. Segundo ele, o do é levemente mais pesado ,mas que na prática nada se altera, pois a execução do código vai ser feita de forma linear, assim como for.
O For pode ser melhor na engine pois é mais padrão dentro do Eclipse, porém, na prática, a execução será feita da mesma forma.

Claro, meu professor pode estar enganado. Mas ele tem uns 20 anos de experiência em programação, de ve ser bom né?
viniciushp
viniciushp
Novato
Novato

Mensagens : 21

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por Pad;* Sex 20 Abr 2012, 09:02

Vinicius , eu tbm tenho um professor de programação mais se você pensar um pouco mais atualizado você ira ver , que a execução pode ocorrer de 2 maneiras, pois os packets do EO , são compilados em numeros binarios .

Pad;*
Pad;*
Pad;*
Membro
Membro

Mensagens : 213

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por viniciushp Sex 20 Abr 2012, 09:07

Pad;* escreveu:Vinicius , eu tbm tenho um professor de programação mais se você pensar um pouco mais atualizado você ira ver , que a execução pode ocorrer de 2 maneiras, pois os packets do EO , são compilados em numeros binarios .

Pad;*

Bem, vamos exemplificar:

Código:
For i = 1 to MAX_NPC_SPELL

Ou seja, ele vai fazer o código enquanto de 1 até o MAX_NPC_SPELL. Como o programa reconhece isso?
Ele faz, e verifica

i => Max_npc_spell? Não
executa de novo

No caso do Do, a função prática será a mesma:

Código:
Do While Linha < Spell(SpellNum).AoE

Enquanto a linha for menor que a AoE, fazer o código de novo.

ele vai executar o código e no final, verificar. Se a linha for menor que a AoE, executa de novo.

Isso não envolve os packets, pois de uma forma ou de outra, o número de packets enviados será o mesmo.

O grande "x" da questão aqui seria a quantidade de processamento que o server iria fazer.

É a mesma coisa que Select Case e Else If, com select case fica um código mais limpo e mais fácil de ser entendido, mas na função prática, tanto elseIf quanto Select Case tem a mesma velocidade de execução.
viniciushp
viniciushp
Novato
Novato

Mensagens : 21

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por St4rk Sex 20 Abr 2012, 11:11

Se você parar e pensar, tem o Do do Loop, eu acho que usando outro do e varios executando isso ao mesmo tempo poderia causar problemas.


Pare e pense, se o código fose executado por 1 ~~ 3 pessoas no máximo seria ótimo, agora com 50 ~~ 100 players usando a skill ao mesmo tempo... ao me ver traz problemas.
St4rk
St4rk
Membro de Honra
Membro de Honra

Mensagens : 2251

http://mylittledev.wordpress.com

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por GustavoNunes Sáb 28 Abr 2012, 10:01

agora to em duvida se ponho ou não esse, speel linear completo...
GustavoNunes
GustavoNunes
Membro Sênior
Membro Sênior

Mensagens : 345

http://PHANTOMWAR.webnode.com

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por viniciushp Sáb 28 Abr 2012, 12:23

GustavoNunes escreveu:agora to em duvida se ponho ou não esse, speel linear completo...

Coloque e faça o teste oras.
viniciushp
viniciushp
Novato
Novato

Mensagens : 21

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por math320 Dom 06 maio 2012, 19:12

o vinicius como edita um anim pra faser um kamehameha?
math320
math320
Membro Sênior
Membro Sênior

Mensagens : 255

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por sushi123 Sex 25 maio 2012, 16:03

aki não lança!
sushi123
sushi123
Banido
Banido

Mensagens : 188

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por lraniel Dom 27 maio 2012, 05:46

Cara muito bom mesmo, te agradeço muito! Só uma dúvida dá para usar skill AoE e a linear ?
lraniel
lraniel
Membro
Membro

Mensagens : 240

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por lraniel Dom 27 maio 2012, 08:08

Na hora que vou compilar no client dá um erro - Compile error method or data member not found. E seleciona automaticamente - ".text". Ajuda ai galera?
EDIT: Não é mais preciso, consegui, mas agora estou com outro problema no serve não consigo achar isto
: End Select
Case 2 ' targetted. dei ctrl+f e não foi de forma alguma
EDIT³: Deu tudo certo, desculpem pela minha idiotice e valeu +cred.

PS: Dei double post sem querer, havia esquecido que anteriormente eu postei. Sorry
lraniel
lraniel
Membro
Membro

Mensagens : 240

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por Dooolly Ter 05 Jun 2012, 12:22

Aki deu tudo certo mais achei um bug q todos os tutoriais tem q é quando o char está em um mapa maios q a pic q mostra o mapa a spells so funciona em um quadrado [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) 881399
Dooolly
Dooolly
Membro
Membro

Mensagens : 160

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por Dooolly Dom 10 Jun 2012, 15:51

Niguem vai responder n é alguem me ajuda ali [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) 881399
Dooolly
Dooolly
Membro
Membro

Mensagens : 160

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por SsasuKeeUuchiHaa Dom 10 Jun 2012, 20:07

olha cara vou tentar resolver seu caso espere um poko
SsasuKeeUuchiHaa
SsasuKeeUuchiHaa
Novato
Novato

Mensagens : 33

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por Dooolly Seg 11 Jun 2012, 14:04

Vlw e desculpa ai o double poste pessoal é q eu tou desesperado por esse sistema e n sou muito bom em VB mais mesmo assim vlw a todos [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) 535201
Dooolly
Dooolly
Membro
Membro

Mensagens : 160

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por Snoow Sex 29 Jun 2012, 13:04

aki nao funcionou ¬¬
Snoow
Snoow
Novato
Novato

Mensagens : 22

Ir para o topo Ir para baixo

[EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc) Empty Re: [EO] Spell Linear Completo (Subtrair MP, CastTime, Cooldown e etc)

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Página 1 de 2 1, 2  Seguinte

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos