Não lembro de ver este tutorial por aqui, já que não tem como pesquisar, e eu li pessoas procurando esta modificação na seção de "Dúvidas e pedidos", então vamos lá.
Começaremos pelo server.
Procure por:
E substitua por:
Basicamente, esta parte é a do servidor que checa se você se move enquanto tenta ou faz magia.
Procure por:
E substitua por:
Agora, ainda em "ModGameLogic", procure por esta "Function":
E nesta function, procure por isto:
E substitua por isto:
E está feito!
Resumindo, raramente algo será criado originalmente se for se ver a fundo. Na maioria das coisas da programação, ironicamente "nada se cria, tudo se transforma" , e o poder de transformar é nosso, aproveitem isso!
Começaremos pelo server.
Server~Side
Primeiramente, abra seu "Server.Vbp", e então, em "ModHandleData", na sub:
- Código:
Sub HandlePlayerMove(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Procure por:
- Código:
' Prevent player from moving if they have casted a spell
If TempPlayer(Index).spellBuffer.Spell > 0 Then
Call SendPlayerXY(Index)
Exit Sub
End If
E substitua por:
- Código:
' Prevent player from moving if they have casted a spell
'If TempPlayer(Index).spellBuffer.Spell > 0 Then
' Call SendPlayerXY(Index)
' Exit Sub
'End If
'Não apague, só comente, não se sabe quando vai precisar
Basicamente, esta parte é a do servidor que checa se você se move enquanto tenta ou faz magia.
OBS: Deixe sempre alguma modificação de sua máquina em comentários, nunca se sabe quando você irá precisar. Nunca apague um sistema (se possível).
Hora do "Client.Vbp".
Client~Side
Agora, em "ModGameLogic", na "Sub":
- Código:
Public Sub CastSpell(ByVal spellslot As Long)
Procure por:
- Código:
If PlayerSpells(spellslot) > 0 Then
If GetTickCount > Player(MyIndex).AttackTimer + 1000 Then
If Player(MyIndex).Moving = 0 Then
Set Buffer = New clsBuffer
Buffer.WriteLong CCast
Buffer.WriteLong spellslot
SendData Buffer.ToArray()
Set Buffer = Nothing
SpellBuffer = spellslot
SpellBufferTimer = GetTickCount
Else
Call AddText("Cannot cast while walking!", BrightRed)
End If
End If
Else
Call AddText("No spell here.", BrightRed)
End If
E substitua por:
- Código:
If PlayerSpells(spellslot) > 0 Then
If GetTickCount > Player(MyIndex).AttackTimer + 1000 Then
'If Player(MyIndex).Moving = 0 Then
Set Buffer = New clsBuffer
Buffer.WriteLong CCast
Buffer.WriteLong spellslot
SendData Buffer.ToArray()
Set Buffer = Nothing
SpellBuffer = spellslot
SpellBufferTimer = GetTickCount
'Else
' Call AddText("Cannot cast while walking!", BrightRed)
'End If
End If
Else
Call AddText("No spell here.", BrightRed)
End If
Agora, ainda em "ModGameLogic", procure por esta "Function":
- Código:
Function CanMove() As Boolean
E nesta function, procure por isto:
- Código:
' Make sure they haven't just casted a spell
If SpellBuffer > 0 Then
CanMove = False
Exit Function
End If
E substitua por isto:
- Código:
' Make sure they haven't just casted a spell
'If SpellBuffer > 0 Then
' CanMove = False
' Exit Function
'End If
E está feito!
Amigos, por que não simplesmente apagar o que está escrito ao invés de comentar?
Simples, muita das vezes, os sistemas que vocês querem, são simplesmente já existentes na própria máquina que vocês programam....isso mesmo!
Basta saber onde fazer as modificações.
Por exemplo, a E.O vem com esse sistema de magias bloqueando o jogador de movimentar quando está fazendo uma magia.
Pense se você quisesse fazer um sistema de criação de itens, o english "Crafting System".
Sistemas que existem das magias:
- Código:
Cliente: Barra visual de casting = copiar e modificar para o craft time
Cliente:"bloqueio visual" o jogador de não andar com mensagem = o mesmo para o craft
Server: Bloqueio real de movimento na magia = bloqueia andar enquanto crafta
Server: Restrições de duplo conjuramento enquanto se conjura uma magia = restringir duplo casting de craft
Server: Sistema de Chance de critico = Adaptar pra fazer a probabilidade
Server: Sistema de evoluir nivel jogador = adaptar pra nivel de craft
Server: sistema de dar itens = adaptar pra ser o item dado quando craft
E muitos outros...
Resumindo, raramente algo será criado originalmente se for se ver a fundo. Na maioria das coisas da programação, ironicamente "nada se cria, tudo se transforma" , e o poder de transformar é nosso, aproveitem isso!