Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


+3
Profane ~
Valentine
Hashirama
7 participantes

    Item consume com cooldown

    Hashirama
    Hashirama
    Membro de Honra
    Membro de Honra


    Mensagens : 413
    Créditos : 133

    Item consume com cooldown Empty Item consume com cooldown

    Mensagem por Hashirama Ter Mar 27, 2018 4:10 am

    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


    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

    Item consume com cooldown Unknown

    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
    no final antes do End type adicione
    Código:
    CDTime As Long
    feito isso vamos voltar para nossa frmEditorItem
    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
    no final antes do end types adicione:
    Código:
    ConsumeCD(1 To MAX_INV) As Long
    agora ainda em modTypes procure por
    Código:
    Private Type ItemRec
    dentro dela, no final antes do end type adicione:
    Código:
    CDTime As Long
    poderíamos trabalhar com Byte ja que provavelmente vc não vai adicionar mais que 255 segundos de cooldown no item D:

    ja declarada nossas variaveis vamos em frente.
    agora em ModPlayer na procedure Useitem procure por 
    Código:
    Case ITEM_TYPE_CONSUME
    acima de :
    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








    Última edição por Hashirama em Ter Mar 27, 2018 2:24 pm, editado 2 vez(es)


    _________________
    Apoia nosso projeto? use nossa assinatura
    Valentine
    Valentine
    Administrador
    Administrador


    Medalhas : Item consume com cooldown ZgLkiRU
    Mensagens : 5345
    Créditos : 1164

    Item consume com cooldown Empty Re: Item consume com cooldown

    Mensagem por Valentine Ter Mar 27, 2018 7:56 am

    Boa, Hashirama.

    + 1 crédito.
    Profane ~
    Profane ~
    Colaborador
    Colaborador


    Mensagens : 818
    Créditos : 130

    Item consume com cooldown Empty Re: Item consume com cooldown

    Mensagem por Profane ~ Ter Mar 27, 2018 12:50 pm

    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


    _________________
    "Mistress of shattered hopes and forever broken dreams"
    Dooolly
    Dooolly
    Colaborador
    Colaborador


    Medalhas : Item consume com cooldown Trophy12
    Mensagens : 1227
    Créditos : 153

    Ficha do personagem
    Nível: 1
    Experiência:
    Item consume com cooldown Left_bar_bleue0/0Item consume com cooldown Empty_bar_bleue  (0/0)
    Vida:
    Item consume com cooldown Left_bar_bleue30/30Item consume com cooldown Empty_bar_bleue  (30/30)

    Item consume com cooldown Empty Re: Item consume com cooldown

    Mensagem por Dooolly Ter Mar 27, 2018 1:06 pm

    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
    silipinho
    silipinho
    Semi-Experiente
    Semi-Experiente


    Mensagens : 97
    Créditos : 14

    Item consume com cooldown Empty Re: Item consume com cooldown

    Mensagem por silipinho Ter Mar 27, 2018 1:11 pm

    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?
    Hashirama
    Hashirama
    Membro de Honra
    Membro de Honra


    Mensagens : 413
    Créditos : 133

    Item consume com cooldown Empty Re: Item consume com cooldown

    Mensagem por Hashirama Ter Mar 27, 2018 1:53 pm

    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
    GallighanMaker
    GallighanMaker
    Colaborador
    Colaborador


    Medalhas : Item consume com cooldown ZgLkiRU
    Mensagens : 985
    Créditos : 102

    Ficha do personagem
    Nível: 1
    Experiência:
    Item consume com cooldown Left_bar_bleue0/0Item consume com cooldown Empty_bar_bleue  (0/0)
    Vida:
    Item consume com cooldown Left_bar_bleue30/30Item consume com cooldown Empty_bar_bleue  (30/30)

    Item consume com cooldown Empty Re: Item consume com cooldown

    Mensagem por GallighanMaker Ter Mar 27, 2018 7:30 pm

    Muito bom velho, +1 cred


    _________________
    Item consume com cooldown 8dVK0ku
    using C# and import Python developer || Expert in Unity Engine IDE. || Item consume com cooldown 769_heart 2D pixel games.
    GalaxyHells
    GalaxyHells
    Ocasional
    Ocasional


    Mensagens : 196
    Créditos : 22

    Ficha do personagem
    Nível: 1
    Experiência:
    Item consume com cooldown Left_bar_bleue0/0Item consume com cooldown Empty_bar_bleue  (0/0)
    Vida:
    Item consume com cooldown Left_bar_bleue30/30Item consume com cooldown Empty_bar_bleue  (30/30)

    Item consume com cooldown Empty Re: Item consume com cooldown

    Mensagem por GalaxyHells Qua maio 02, 2018 5:57 pm

    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.


    _________________
    Item consume com cooldown 90yel0

    Conteúdo patrocinado


    Item consume com cooldown Empty Re: Item consume com cooldown

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sáb Nov 23, 2024 11:20 pm