Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
[EO] Distribuidor de pontos
5 participantes
Página 1 de 1
[EO] Distribuidor de pontos
Bem a logica desse sistema de ajuda o player a adicionar uma quantia de pontos bem mais rápido
Vamos ao tutorial
Cliente
Vá ate a modEnumerations e aperte ctrl + f e procure por:
- Código:
CUseStatPoint
E ABAIXO você coloca:
- Código:
CCommandStatPoint
Agora na modClientTCP procure pela sub:
- Código:
Sub SendTrainStat(ByVal StatNum As Byte)
ABAIXO do End Sub voce coloca
- Código:
Sub SendCommandTrainStat(ByVal StatNum As Byte, ByVal Quantity As Long)
Dim Buffer As clsBuffer
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
If Val(Quantity) > MAX_LONG Then
Exit Sub
End If
Set Buffer = New clsBuffer
Buffer.WriteLong CCommandStatPoint
Buffer.WriteByte StatNum
Buffer.WriteLong Quantity
SendData Buffer.ToArray()
Set Buffer = Nothing
' Error handler
Exit Sub
errorhandler:
HandleError "SendCommandTrainStat", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
Agora vamos criar o Distribuidor rsrs
Crie uma picture na frmMain com o nome de picDistribuidor e deixe o visible False
Dentro da picture você cria 5 commandbuttons, 1 textbox, 2 labels
vamos as propriedades de cada uma:
as 5 commandButton você poe o nome de cmdAddPontos você poe o nome deles de acordo com seu index
Index 0 name: Strength
Index 1 name: Endurance
Index 2 name: Intelligence
Index 3 name: Agility
Index 4 name: Willpower
depois dê dois clicks no cmdAddPontos, pode ser qualquer um dos 5 e coloque isso dentro
a textbox você poe o nome de txtAddPontos
a text dele voce deixa ou 0 ou limpo fica a tua escolha
as 2 labels uma com o nome de lblPontos e outra com o nome de lblFechar
label 1
Name:lblFechar
Caption:Fechar
label 2
name:lblPontos
Caption:Pontos:
Index 1 name: Endurance
Index 2 name: Intelligence
Index 3 name: Agility
Index 4 name: Willpower
depois dê dois clicks no cmdAddPontos, pode ser qualquer um dos 5 e coloque isso dentro
- Código:
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
Select Case Index
Case 0
If IsNumeric(txtAddPontos.text) Then
SendCommandTrainStat 1, txtAddPontos.text
Else
Call AddText("coloque somente numeros na caixa", BrightBlue)
End If
Case 1
If IsNumeric(txtAddPontos.text) Then
SendCommandTrainStat 2, txtAddPontos.text
Else
Call AddText("coloque somente numeros na caixa", BrightBlue)
End If
Case 2
If IsNumeric(txtAddPontos.text) Then
SendCommandTrainStat 3, txtAddPontos.text
Else
Call AddText("coloque somente numeros na caixa", BrightBlue)
End If
Case 3
If IsNumeric(txtAddPontos.text) Then
SendCommandTrainStat 4, txtAddPontos.text
Else
Call AddText("coloque somente numeros na caixa", BrightBlue)
End If
Case 4
If IsNumeric(txtAddPontos.text) Then
SendCommandTrainStat 5, txtAddPontos.text
Else
Call AddText("coloque somente numeros na caixa", BrightBlue)
End If
End Select
' Error handler
Exit Sub
errorhandler:
HandleError "cmdLevel_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
a textbox você poe o nome de txtAddPontos
a text dele voce deixa ou 0 ou limpo fica a tua escolha
as 2 labels uma com o nome de lblPontos e outra com o nome de lblFechar
label 1
Name:lblFechar
Caption:Fechar
label 2
name:lblPontos
Caption:Pontos:
dê dois clicks na lblFechar e coloque
- Código:
picDistribuidor.visible = false
Bem no fim é pra ficar mais ou menos assim ó
na modHandleData procure por:
- Código:
frmMain.lblPoints.Caption = GetPlayerPOINTS(MyIndex)
e ABAIXO coloque:
- Código:
frmMain.lblPontos.Caption = "Pontos: " & GetPlayerPOINTS(MyIndex)
Agora vamos ate modInput e procurar por:
- Código:
' Banning a player
Case "/ban"
e ACIMA disto você poe:
- Código:
Case "/distribuir"
frmMain.picDistribuidor.Visible = True
Cliente terminado kk agora vamos ao servidor
Server
Va ate a modEnumerations e aperte ctrl + f e procure por:
- Código:
CUseStatPoint
ABAIXO você coloca:
- Código:
CCommandStatPoint
depois na modHandleData procure por:
- Código:
HandleDataSub(CUseStatPoint) = GetAddress(AddressOf HandleUseStatPoint)
e ABAIXO você coloca
- Código:
HandleDataSub(CCommandStatPoint) = GetAddress(AddressOf HandleCommandStatPoint)
depois procure pela sub:
- Código:
Sub HandleUseStatPoint(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
e ABAIXO do end sub coloque:
- Código:
' ::::::::::::::::::::::::::
' :: Command stats packet ::
' ::::::::::::::::::::::::::
Sub HandleCommandStatPoint(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Dim PointType As Byte
Dim Val As Long
Dim Buffer As clsBuffer
Dim sMes As String
Dim i As Long
Set Buffer = New clsBuffer
Buffer.WriteBytes Data()
PointType = Buffer.ReadByte 'CLng(Parse(1))
Val = Buffer.ReadLong
Set Buffer = Nothing
' Prevent hacking
If (PointType < 0) Or (PointType > Stats.Stat_Count) Then
Exit Sub
End If
' Check if player has the indicated value
If Val > GetPlayerPOINTS(index) Or Val <= 0 Then
PlayerMsg index, "Você não tem essa quantidade de pontos.", Red
Exit Sub
End If
' Check to not overflow the value
If Val > 100000000 Then
PlayerMsg index, "Você não pode adicionar tamanha quantidade(Máx 100000000).", Red
Exit Sub
End If
' Make sure they have points
If GetPlayerPOINTS(index) > 0 Then
' make sure they're not maxed#
If GetPlayerRawStat(index, PointType) >= 100000000 Then
PlayerMsg index, "Máximo Obtido.", BrightRed
Exit Sub
End If
' Take away a stat point
Call SetPlayerPOINTS(index, GetPlayerPOINTS(index) - Val)
' Everything is ok
Select Case PointType
Case Stats.Strength
Call SetPlayerStat(index, Stats.Strength, GetPlayerRawStat(index, Stats.Strength) + Val)
Call PlayerMsg(index, "Você adicionou +" & Val & " pontos em Strength!", White)
sMes = " Strength"
Case Stats.Endurance
Call SetPlayerStat(index, Stats.Endurance, GetPlayerRawStat(index, Stats.Endurance) + Val)
Call PlayerMsg(index, "Você adicionou +" & Val & " pontos em Endurance!", White)
sMes = " Endurance"
Case Stats.Intelligence
Call SetPlayerStat(index, Stats.Intelligence, GetPlayerRawStat(index, Stats.Intelligence) + Val)
Call PlayerMsg(index, "Você adicionou +" & Val & " pontos em Intelligence!", White)
sMes = " Intelligence"
Case Stats.Agility
Call SetPlayerStat(index, Stats.Agility, GetPlayerRawStat(index, Stats.Agility) + Val)
Call PlayerMsg(index, "Você adicionou +" & Val & " pontos em Agility!", White)
sMes = " Agility"
Case Stats.Willpower
Call SetPlayerStat(index, Stats.Willpower, GetPlayerRawStat(index, Stats.Willpower) + Val)
Call PlayerMsg(index, "Você adicionou +" & Val & " pontos em Willpower!", White)
sMes = " Willpower"
End Select
SendActionMsg GetPlayerMap(index), "+" & Val & sMes, White, 1, (GetPlayerX(index) * 32), (GetPlayerY(index) * 32)
Else
Exit Sub
End If
' Send the update
SendPlayerData index
For i = 1 To Vitals.Vital_Count - 1
SendVital index, i
Next
End Sub
Sistema Pronto rsrs agora é só testa, qualquer erro podem falar ai pois é meu primeiro tutorial rsrs
Creditos: Bem eu peguei esse código do SendCommandTrainStat do sistema de Adicionar pontos por comando e não sei quem que fez,mas o resto é meu rsrs
OBS:
Esse é meu primeiro tutorial então peço a ajuda de vocês pra me fala em que errei caso tenha errado kk
qualquer erro me avisem ai
Takabe- Novato
- Mensagens : 22
Créditos : 6
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
DragonicK- Experiente
- Mensagens : 543
Créditos : 81
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: [EO] Distribuidor de pontos
DragonicK escreveu:Sistema de gente pobre.
Bom que agora você vai poder por no seu jogo/engine tbm @Dragonick .
Bom @Takabex c.c ao ler eu já imaginava que não seria seu os codigos UAHSuhsa porque estavam em ingrês ashushasa, mas bom conteúdo, passei a leitura rápida e até onde vi estaria Ok, so testando mais a fundo.
Aprenda que não é nada necessário estar sempre colocando "subs" ou algo assim embaixo de um "local" exato. Pode ser em qualquer lugar, até mesmo no final c.c ~ Desde que não se ponha a ferir estruturas de organização que estão ali para fazer o trabalho delas.. organizar e nos ajudar a achar coisas...
Agradecemos por trazer e MUITA gente vai fazer uso. UHASUHS
_________________
"Mistress of shattered hopes and forever broken dreams"
Profane ~- Colaborador
- Mensagens : 818
Créditos : 130
Re: [EO] Distribuidor de pontos
chato rsrs, obrigadaProfane ~ escreveu:DragonicK escreveu:Sistema de gente pobre.
Bom que agora você vai poder por no seu jogo/engine tbm @Dragonick .
Bom @Takabex c.c ao ler eu já imaginava que não seria seu os codigos UAHSuhsa porque estavam em ingrês ashushasa, mas bom conteúdo, passei a leitura rápida e até onde vi estaria Ok, so testando mais a fundo.
Aprenda que não é nada necessário estar sempre colocando "subs" ou algo assim embaixo de um "local" exato. Pode ser em qualquer lugar, até mesmo no final c.c ~ Desde que não se ponha a ferir estruturas de organização que estão ali para fazer o trabalho delas.. organizar e nos ajudar a achar coisas...
Agradecemos por trazer e MUITA gente vai fazer uso. UHASUHS
Takabe- Novato
- Mensagens : 22
Créditos : 6
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: [EO] Distribuidor de pontos
Olá! Eu acabei de por o sistema na minha engine, mas tem uma coisa.
Não sei era pra aparecer, mas qual é o jeito de fazer a Janela de adicionar pontos aparecer?
_________________
Alleg;
oqbendis- Iniciante
- Mensagens : 32
Créditos : 0
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: [EO] Distribuidor de pontos
Se tiver seguido todo o tutorial, note essa parte:
Logo, em seu chat digite "/distribuir" que ela possivelmente vá aparecer.
Att
Logo, em seu chat digite "/distribuir" que ela possivelmente vá aparecer.
Att
_________________
"Mistress of shattered hopes and forever broken dreams"
Profane ~- Colaborador
- Mensagens : 818
Créditos : 130
Re: [EO] Distribuidor de pontos
oqbendis escreveu:Olá! Eu acabei de por o sistema na minha engine, mas tem uma coisa.Não sei era pra aparecer, mas qual é o jeito de fazer a Janela de adicionar pontos aparecer?
Da /distribuir ou então cria um Botão na picCharacter com o seguinte código:
- Código:
picDistribuidor.Visible = Not picDistribuidor.Visible
Espero resolver seu problema, qualquer coisa só fala
Takabe- Novato
- Mensagens : 22
Créditos : 6
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Tópicos semelhantes
» LimitBreak pegar com Distribuidor
» Distribuidor de Pontos modificado, agora aumenta tbm o HP e o MP
» [Pedido] Como faço um distribuidor de pontos
» Distribuidor de Pontos modificado, agora aumenta tbm o HP e o MP
» [Pedido] Como faço um distribuidor de pontos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|