É bem simples o sistema, não há interações entre cliente~server, somente servidor.
O que faz?
-Este sistema fará que a sua magia designada faça o jogador perder o status definido a cada segundo.
E antes de "End Type" adicione isto:
Vamos considerar como:
MinusStat = 0 , para nada
MinusStat = 1 , para HP
MinusStat = 2 , para MP
E na *spell designada* você adiciona um destes dois exemplos de código:
Ou também:
Isso vai fazer com que se o jogador já estiver com a magia de PERDER MP ativada, ele vai desativar, senão vai ativar...
Então, vamos continuar, você adicionou simplesmente valores que indiquem que o jogador está em uma situação particular ou não...mas isto ainda não fará com que ele perca MP ou o status citado...
Portanto, ainda no servidor, Vá até seu serverLoop e procure pela:
e declare:
Agora, nesta sub procure por isto:
E adicione isto logo abaixo:
A contagem está mais que perfeitamente pronta pra ser usada em sua máquina...
**Adições como esta seriam boas também:
No Server ainda, procure por:
E nesta sub, abaixo de:
Adicione isto:
OBS: A quem não entendeu "spell designada", aqui vai um exemplo:
No server, procure por:
E dentro desta sub procure pela magia que quiser e adicione o código de ativação de diminuição do status...
Exemplo:
Quero adicionar para a magia de cura de MP SEM MIRA...então eu coloco abaixo de:
o código:
E está aí um exemplo de uso...
E pronto! Está aí seu sistema!
O que faz?
-Este sistema fará que a sua magia designada faça o jogador perder o status definido a cada segundo.
SERVER~SIDE
Abra seu server.vbp, e procure por:- Código:
TempPlayerRec
E antes de "End Type" adicione isto:
- Código:
MinusStat as Byte
Vamos considerar como:
MinusStat = 0 , para nada
MinusStat = 1 , para HP
MinusStat = 2 , para MP
E na *spell designada* você adiciona um destes dois exemplos de código:
- Código:
'Exemplo de ativação sem desativação
TempPlayer(Index).MinusStat = 2 'para o MP no seu caso
Ou também:
- Código:
'Usando como Ativação~Desativação:
If TempPlayer(index).MinusStat = 2 then 'checa se já está ativado
TempPlayer(index).MinusStat = 0
Call PlayerMsg(Index,"Uma técnica sua foi desativada...", Red)
else 'Não está ativado, vamos ativar então
TempPlayer(index).MinusStat = 2
Call PlayerMsg(Index,"Uma técnica sua foi ativada...", Grey)
End if
Isso vai fazer com que se o jogador já estiver com a magia de PERDER MP ativada, ele vai desativar, senão vai ativar...
Então, vamos continuar, você adicionou simplesmente valores que indiquem que o jogador está em uma situação particular ou não...mas isto ainda não fará com que ele perca MP ou o status citado...
Portanto, ainda no servidor, Vá até seu serverLoop e procure pela:
- Código:
Sub ServerLoop()
e declare:
- Código:
Dim MinusTimer as Long
Agora, nesta sub procure por isto:
- Código:
' HoT and DoT logic
For x = 1 To MAX_DOTS
HandleDoT_Player i, x
HandleHoT_Player i, x
Next
E adicione isto logo abaixo:
- Código:
'Vamos contar, certo?
If Tick > MinusTimer Then
If TempPlayer(i).MinusStat = 1 Then 'Para o HP
Call SetPlayerVital(i, HP, GetPlayerVital(i, HP) - 10) '10 = valor a ser retirado
Call SendVital(i, HP)
TempPlayer(i).MinusStat = 0
'Isso vai matar caso o HP seja menor ou igual a 0
If GetPlayerVital(index, HP) <= 0 Then KillPlayer i
End If
If TempPlayer(i).MinusStat = 2 Then 'Para o MP
If GetPlayerVital(i, MP) >= 10 Then 'Checa pra ver se o jogador tem a quantidade de MP
Call SetPlayerVital(i, MP, GetPlayerVital(i, MP) - 10) '10 = valor a ser retirado
Call SendVital(i, MP)
Else
TempPlayer(i).MinusStat = 0
Call PlayerMsg(i, "Sua técnica foi desativada por falta de mana...", Red)
End If
End If
MinusTimer = GetTickCount + 1000 '1000 = 1 segundo
End If
A contagem está mais que perfeitamente pronta pra ser usada em sua máquina...
**Adições como esta seriam boas também:
No Server ainda, procure por:
- Código:
Sub OnDeath
E nesta sub, abaixo de:
- Código:
' Clear spell casting
TempPlayer(index).spellBuffer.Spell = 0
TempPlayer(index).spellBuffer.timer = 0
TempPlayer(index).spellBuffer.Target = 0
TempPlayer(index).spellBuffer.tType = 0
Call SendClearSpellBuffer(index)
Adicione isto:
- Código:
'Caso o Player morra, desative sua técnica
TempPlayer(Index).MinusStat = 0
OBS: A quem não entendeu "spell designada", aqui vai um exemplo:
No server, procure por:
- Código:
Public Sub CastSpell
E dentro desta sub procure pela magia que quiser e adicione o código de ativação de diminuição do status...
Exemplo:
Quero adicionar para a magia de cura de MP SEM MIRA...então eu coloco abaixo de:
- Código:
SpellPlayer_Effect Vitals.MP, True, index, Vital, SpellNum
o código:
- Código:
TempPlayer(Index).MinusStat = 2 'no caso do MP
E está aí um exemplo de uso...
E pronto! Está aí seu sistema!
~Créditos~
Lucas Dantas(~eu)
Última edição por lucas100vzs em Qua Set 03, 2014 1:49 am, editado 1 vez(es)