Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Item consume com cooldown
+3
Profane ~
Valentine
Hashirama
7 participantes
Página 1 de 1
Item consume com cooldown
Sei que já existe um sistema de item com cooldown, mas fiz este mais completo, vc pode editar o tempo de cooldown de cada item no editor. Vamos lá
Client Side
Client Side
Primeiramente vamos criar nossa scrl que vai indicar o tempo de cooldown do nosso item do tipo consume
no editor de item dentro da fraVitals adicione uma scrl e uma label segue o exemplo
na proprietie Name da label mude para lblCD e na caption coloque Cooldown Time:
na proprietie Name da scrlBar mude para scrlCD
feito isso vamos declar a variavel que vai armazenar nosso valor que usaremos no evento Value da nossa scrl
em modTypes procure por:
dentro da scrl que criamos scrlCD de 2 clicks nela e adicione
Feito isso vamos ao servidor.
Server side
no editor de item dentro da fraVitals adicione uma scrl e uma label segue o exemplo
na proprietie Name da label mude para lblCD e na caption coloque Cooldown Time:
na proprietie Name da scrlBar mude para scrlCD
feito isso vamos declar a variavel que vai armazenar nosso valor que usaremos no evento Value da nossa scrl
em modTypes procure por:
- Código:
Private Type ItemRec
- Código:
CDTime As Long
dentro da scrl que criamos scrlCD de 2 clicks nela e adicione
- Código:
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
lblCD.Caption = "Cooldown Time: " & scrlCD.Value & "s"
Item(EditorIndex).CDTime = scrlCD.Value
' Error handler
Exit Sub
errorhandler:
HandleError "scrlCD_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
Feito isso vamos ao servidor.
Server side
Em modTypes procure por
- Código:
Public Type TempPlayerRec
- Código:
ConsumeCD(1 To MAX_INV) As Long
- Código:
Private Type ItemRec
- Código:
CDTime As Long
ja declarada nossas variaveis vamos em frente.
agora em ModPlayer na procedure Useitem procure por
- Código:
Case ITEM_TYPE_CONSUME
- Código:
' add hp
If Item(itemnum).AddHP > 0 Then
adicione :
- Código:
' see if cooldown has finished
If TempPlayer(index).ConsumeCD(itemnum) > GetTickCount Then
PlayerMsg index, "Item está em recarga", BrightRed
Exit Sub
End If
TempPlayer(index).ConsumeCD(itemnum) = GetTickCount + (Item(itemnum).CDTime * 1000)
agora em ModHandleData procure pela Sub HandleSwapInvSlots
em baixo de
- Código:
If TempPlayer(index).InTrade > 0 Or TempPlayer(index).InBank Or TempPlayer(index).InShop Then Exit Sub
adicione:
- Código:
For n = 1 To MAX_INV
If TempPlayer(index).ConsumeCD(n) > GetTickCount Then
PlayerMsg index, "Não pode mover itens em recarga", BrightRed
Exit Sub
End If
Pronto feito isso você pode criar seus itens de consume e indicar seu tempo de recarga
sistema eu fiz na EO 2.0 e n encontrei nenhum bug, caso encontre ou alguma melhora comente
sistema eu fiz na EO 2.0 e n encontrei nenhum bug, caso encontre ou alguma melhora comente
Última edição por Hashirama em Ter Mar 27, 2018 2:24 pm, editado 2 vez(es)
_________________
Apoia nosso projeto? use nossa assinatura
Hashirama- Membro de Honra
- Mensagens : 413
Créditos : 133
Re: Item consume com cooldown
Pelo Lido, a estrutura ta certinha >
Muito bom, seu primeiro sistema é?! Naisu!!!!!
E sobre o que comentou do " Byte ", ainda bem que optou por long, ainda mais na cadeia usada, algums jogos podem ter itens que levam até sei lá 1h para poderem ser usados novamente.
Mas lembrem-se que por ter sido posto no "TempPlayerRec" é um valor temporário. O jogador deslogando, ele resetará este valor.
Lembre-se também de fazer a limpeza do valor no LeftGame, por parte do jogador no Servidor.
Fora isso tudo ok <3
Muito bom, seu primeiro sistema é?! Naisu!!!!!
E sobre o que comentou do " Byte ", ainda bem que optou por long, ainda mais na cadeia usada, algums jogos podem ter itens que levam até sei lá 1h para poderem ser usados novamente.
Mas lembrem-se que por ter sido posto no "TempPlayerRec" é um valor temporário. O jogador deslogando, ele resetará este valor.
Lembre-se também de fazer a limpeza do valor no LeftGame, por parte do jogador no Servidor.
Fora isso tudo ok <3
_________________
"Mistress of shattered hopes and forever broken dreams"
Profane ~- Colaborador
- Mensagens : 818
Créditos : 130
Re: Item consume com cooldown
Profane ~ escreveu:Pelo Lido, a estrutura ta certinha ><!
Muito bom, seu primeiro sistema é?! Naisu!!!!!
E sobre o que comentou do " Byte ", ainda bem que optou por long, ainda mais na cadeia usada, algums jogos podem ter itens que levam até sei lá 1h para poderem ser usados novamente.
Mas lembrem-se que por ter sido posto no "TempPlayerRec" é um valor temporário. O jogador deslogando, ele resetará este valor.
Lembre-se também de fazer a limpeza do valor no LeftGame, por parte do jogador no Servidor.
Fora isso tudo ok <3
Por ser no TempPlayer, eu recomendária usar um byte mesmo, e dentro da função usar um multiplicador.
@Topic:
Otimo tutorial, estava realmente precisando de um tuto como esse, obrigador por compartilhar... +1 <3
Re: Item consume com cooldown
Muito bom isso ajuda mt, ate pq existem consumes uma mais "roubada" q a outra assim da pra fazer com q ela tenha um tempo de recarga maior que uma simples pot de hp por exemplo!
nessa parte que manda procurar por isso "Public Type ItemRec" não seria: Private Type ItemRec?
nessa parte que manda procurar por isso "Public Type ItemRec" não seria: Private Type ItemRec?
silipinho- Semi-Experiente
- Mensagens : 97
Créditos : 14
Re: Item consume com cooldown
vlw galera, corrigi algumas coisas no tópico, ainda hoje posto o tutorial NPC de teleporte que eu vi que alguns pediram. abraços
_________________
Apoia nosso projeto? use nossa assinatura
Hashirama- Membro de Honra
- Mensagens : 413
Créditos : 133
Re: Item consume com cooldown
Muito bom velho, +1 cred
_________________
using C# and import Python developer || Expert in Unity Engine IDE. || 2D pixel games.
Re: Item consume com cooldown
For n = 1 To MAX_INV
If TempPlayer(index).ConsumeCD(n) > GetTickCount Then
PlayerMsg index, "Não pode mover itens em recarga", BrightRed
Exit Sub
End If
Next
Faltou um "Next" Ali.
Nice sistema.
_________________
GalaxyHells- Ocasional
- Mensagens : 196
Créditos : 22
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Tópicos semelhantes
» Cooldown em Consume!
» [GF]Consume em Currency
» Trocar sprite por item em modo consume
» como crio um cooldown para um determinado item? (NP 4.9)
» Movido: [Correção] Erros no código do sistema de Consume em Currency
» [GF]Consume em Currency
» Trocar sprite por item em modo consume
» como crio um cooldown para um determinado item? (NP 4.9)
» Movido: [Correção] Erros no código do sistema de Consume em Currency
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos