[Tutorial]Sistema de buff
2 participantes
Página 1 de 1
[Tutorial]Sistema de buff
Olá galerinha, venho através desse tópico trazer o tão desejado sistema de buff que todos querem, bom esse é só um protótico do verdadeiro isso é só pra vocês tirarem como base de como fazer o sistema da forma de vocês.
Então vamos lá.
[size=14pt]Client ~ Side[/size]
Na frmMirage, crie um Timer com as seguintes propriedades:
Dê dois clicks e adicione isso:
Vamos iniciar as Constantes procure por ' Spell constants e então adicione:
Na frmSpellEditor faça o seguinte:
Nas propriedades procure por List e adicione isso:
Depois
Crie 1 label, 1 text:
Na Label dê a caption de : Tempo de Buff (em Segundos)
Na text dê o nome de : Text1
Então procure por Type SpellRec e abaixo de Range As Byte adicione:
Após isso procure por, Sub SendSaveSpell(ByVal SpellNum As Long) e então depois de Spell(SpellNum).Element adicione :
No inicio do modGameLogic adicione :
Vamos procurar por:
logo abaixo do código vamos adicionar:
Procure agora por:
Abaixo adicione:
Procure por Edit spell packet e abaixo de :
Adicione:
Procure por Public Sub SpellEditorInit() e adicione:
Depois procure por Public Sub SpellEditorOk() e então adicione:
Dê dois clicks na Private Sub cmbType_Click() e então adicione no inicio:
Acho que a parte do cliente está completa agora vamos para o servidor.
[size=14pt]Server ~ Side[/size]
Procure por ' Spell Constants e então adicione :
Depois procure por ' MENUS e então adicione :
Procure por Public Sub LeftGame(ByVal Index As Long) e então adicione no final:
Procure por Sub CastSpell(ByVal Index As Long, ByVal SpellSlot As Long) adicione:
Procure por :
Abaixo adicione :
Procure por Sub SendEditSpellTo(ByVal Index As Long, ByVal SpellNum As Long) e então adicione :
Procure Sub HandleData(ByVal Index As Long, ByVal Data As String) e adicione :
Procure por Public Sub Packet_SaveSpell(ByVal Index As Long, ByRef SpellData() As String) e adicione :
No final da modHandleData adicione :
Pronto se não me esqueci de nada acho que é só isso '-' qualquer coisa me comuniquem.
Obs: Esse sistema eu fiz apenas para Força, se quiserem para outros status só fazerem igual.
Tem que ter spell level no seu cliente!
Créditos : Lucas Lôpo
Postar: Teteu(eu)
Então vamos lá.
[size=14pt]Client ~ Side[/size]
Na frmMirage, crie um Timer com as seguintes propriedades:
Nome : bufftempo5
Interval : 1000
Enable : True
Dê dois clicks e adicione isso:
- Código:
If buffTempo = 0 Then
Call SendData("debuff" & SEP_CHAR & END_CHAR)
bufftempo5.Enabled = False
Else
buffTempo = buffTempo - 1
End If
Vamos iniciar as Constantes procure por ' Spell constants e então adicione:
- Código:
Public Const SPELL_TYPE_BUFF = 8
Na frmSpellEditor faça o seguinte:
Nas propriedades procure por List e adicione isso:
- Código:
Buff de Força
Depois
Crie 1 label, 1 text:
Na Label dê a caption de : Tempo de Buff (em Segundos)
Na text dê o nome de : Text1
Então procure por Type SpellRec e abaixo de Range As Byte adicione:
buffTempo As Long
Após isso procure por, Sub SendSaveSpell(ByVal SpellNum As Long) e então depois de Spell(SpellNum).Element adicione :
- Código:
& SEP_CHAR & Spell(SpellNum).buffTempo
No inicio do modGameLogic adicione :
- Código:
Public buffTempo As Integer
Public BuffNome As String
Vamos procurar por:
- Código:
' draw FPS
logo abaixo do código vamos adicionar:
- Código:
If frmMirage.bufftempo5.Enabled = True Then
Call DrawText(TexthDC, 10 + sx, 460 + sx, "Tempo Restante: " & buffTempo & " Segundos", QBColor(WHITE))
Call DrawText(TexthDC, 10 + sx, 440 + sx, BuffNome, QBColor(WHITE))
End If
Procure agora por:
- Código:
If casestring = "leaveparty211" Then
Abaixo adicione:
- Código:
If casestring = "buff" Then
buffTempo = parse(1)
BuffNome = parse(2)
frmMirage.bufftempo5.Enabled = True
End If
Procure por Edit spell packet e abaixo de :
- Código:
Spell(n).Element = Val(parse(17))
Adicione:
- Código:
Spell(n).buffTempo = Val(parse(18))
Procure por Public Sub SpellEditorInit() e adicione:
- Código:
frmSpellEditor.Text1.Text = Spell(EditorIndex).buffTempo
Depois procure por Public Sub SpellEditorOk() e então adicione:
- Código:
Spell(EditorIndex).buffTempo = frmSpellEditor.Text1.Text
Dê dois clicks na Private Sub cmbType_Click() e então adicione no inicio:
- Código:
If (cmbType.ListIndex = SPELL_TYPE_BUFF) Then
Label11.Visible = True
Text1.Visible = True
Else
Acho que a parte do cliente está completa agora vamos para o servidor.
[size=14pt]Server ~ Side[/size]
Procure por ' Spell Constants e então adicione :
- Código:
Public Const SPELL_TYPE_BUFF = 8
Depois procure por ' MENUS e então adicione :
- Código:
BuffNum As Long
BuffAtiva As Boolean
BuffSlot As Byte
Procure por Public Sub LeftGame(ByVal Index As Long) e então adicione no final:
- Código:
If Player(Index).BuffAtiva = True Then
Call Packet_Debuff(Index)
End If
Call SavePlayer(Index)
Call SendLeftGame(Index)
Call ClearPlayer(Index)
End If
Procure por Sub CastSpell(ByVal Index As Long, ByVal SpellSlot As Long) adicione:
- Código:
Dim SpellDano As Long
Dim SpellDanoTirar As Long
Dim BuffTempo As Long
Procure por :
' Check if timer is ok
If GetTickCount < Player(Index).AttackTimer + 1000 Then
Exit Sub
End If
Abaixo adicione :
- Código:
If Spell(SpellNum).Type = SPELL_TYPE_BUFF Then
If Player(Index).BuffAtiva = True Then
If Player(Index).BuffNum = SpellNum Then
Call SendDataTo(Index, "buff" & SEP_CHAR & BuffTempo & SEP_CHAR & Spell(SpellNum).name & END_CHAR)
Else
Select Case Spell(Player(Index).BuffNum).Type
Case 8
Call SetPlayerSTR(Index, GetPlayerSTR(Index) - SpellDanoTirar)
End Select
Call SetPlayerSTR(Index, GetPlayerSTR(Index) + SpellDano)
Call SendStats(Index)
SendHP Index
SendMP Index
SendSP Index
Player(Index).BuffNum = SpellNum
Player(Index).BuffSlot = SpellSlot
Call SendDataTo(Index, "buff" & SEP_CHAR & BuffTempo & SEP_CHAR & Spell(SpellNum).name & END_CHAR)
End If
Else
Call SetPlayerSTR(Index, GetPlayerSTR(Index) + SpellDano)
Call SendStats(Index)
SendHP Index
SendMP Index
SendSP Index
Player(Index).BuffNum = SpellNum
Player(Index).BuffSlot = SpellSlot
Player(Index).BuffAtiva = True
Call SendDataTo(Index, "buff" & SEP_CHAR & BuffTempo & SEP_CHAR & Spell(SpellNum).name & END_CHAR)
End If
Call SendDataToMap(GetPlayerMap(Index), "sound" & SEP_CHAR & "Jutsu" & SEP_CHAR & Spell(SpellNum).Sound & END_CHAR)
End If
Procure por Sub SendEditSpellTo(ByVal Index As Long, ByVal SpellNum As Long) e então adicione :
- Código:
& SEP_CHAR & Spell(SpellNum).BuffTempo
Procure Sub HandleData(ByVal Index As Long, ByVal Data As String) e adicione :
- Código:
Case "debuff"
Call Packet_Debuff(Index)
Exit Sub
Procure por Public Sub Packet_SaveSpell(ByVal Index As Long, ByRef SpellData() As String) e adicione :
- Código:
Spell(SpellNum).BuffTempo = Val(SpellData(18))
No final da modHandleData adicione :
- Código:
Public Sub Packet_Debuff(ByVal Index As Long)
Dim SpellDano As Long
SpellDano = Spell(Player(Index).BuffNum).Data1 + (Player(Index).Char(Player(Index).CharNum).Spell(Player(Index).BuffSlot).LEVEL)
Select Case Spell(Player(Index).BuffNum).Type
Case 8
Call SetPlayerSTR(Index, GetPlayerSTR(Index) - SpellDano)
End Select
SendStats Index
SendHP Index
SendMP Index
SendSP Index
Player(Index).BuffAtiva = False
Player(Index).BuffNum = 0
Player(Index).BuffSlot = 0
End Sub
Pronto se não me esqueci de nada acho que é só isso '-' qualquer coisa me comuniquem.
Obs: Esse sistema eu fiz apenas para Força, se quiserem para outros status só fazerem igual.
Tem que ter spell level no seu cliente!
Créditos : Lucas Lôpo
Postar: Teteu(eu)
teteu- Modelador
- Mensagens : 4
Estrelas Makers : 8
Creditos : 2
Data de inscrição : 03/07/2011
Re: [Tutorial]Sistema de buff
Muito bom! + 1 CRED pelo TUtorial!
spectrus- Administrador
- Mensagens : 299
Estrelas Makers : 1466
Creditos : 49
Data de inscrição : 01/01/2011
Idade : 30
Localização : V.da conquista bahia
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Sex Dez 05, 2014 10:00 am por Fabio-3dgames
» Lost In Dreams chapter 01
Seg Nov 24, 2014 7:22 pm por slipknot
» A Makers Brasil ressuscitara em breve!!
Sáb Nov 01, 2014 2:26 pm por Francisco Souza
» Elysium Diamond 3.3.2
Sáb Nov 01, 2014 2:17 pm por Francisco Souza
» personagens e objetos 3d game builder
Seg Jul 28, 2014 2:33 pm por Reginaldo Aparecido Zanus
» fala galera \o obs auhsaush digita galera asygasyga
Dom Jul 06, 2014 1:40 am por anastiel
» tutorial headshot fps creator
Seg Jun 09, 2014 6:08 pm por EspinhosoGamer
» SnakeMod fps creator
Seg Jun 09, 2014 5:55 pm por EspinhosoGamer
» serial fps creator
Seg maio 26, 2014 7:35 pm por slipknot