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


5 participantes

    [EO] Distribuidor de pontos

    Takabe
    Takabe
    Novato
    Novato


    Mensagens : 22
    Créditos : 6

    Ficha do personagem
    Nível: 1
    Experiência:
    [EO] Distribuidor de pontos Left_bar_bleue0/0[EO] Distribuidor de pontos Empty_bar_bleue  (0/0)
    Vida:
    [EO] Distribuidor de pontos Left_bar_bleue30/30[EO] Distribuidor de pontos Empty_bar_bleue  (30/30)

    [EO] Distribuidor de pontos Empty [EO] Distribuidor de pontos

    Mensagem por Takabe Seg Abr 16, 2018 4:41 pm

    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
    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 ó

    [EO] Distribuidor de pontos Distri10

    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  Very Happy

    DragonicK
    DragonicK
    Experiente
    Experiente


    Mensagens : 543
    Créditos : 81

    Ficha do personagem
    Nível: 1
    Experiência:
    [EO] Distribuidor de pontos Left_bar_bleue0/0[EO] Distribuidor de pontos Empty_bar_bleue  (0/0)
    Vida:
    [EO] Distribuidor de pontos Left_bar_bleue30/30[EO] Distribuidor de pontos Empty_bar_bleue  (30/30)

    [EO] Distribuidor de pontos Empty Re: [EO] Distribuidor de pontos

    Mensagem por DragonicK Seg Abr 16, 2018 6:11 pm

    Sistema de gente pobre.
    Profane ~
    Profane ~
    Colaborador
    Colaborador


    Mensagens : 818
    Créditos : 130

    [EO] Distribuidor de pontos Empty Re: [EO] Distribuidor de pontos

    Mensagem por Profane ~ Seg Abr 16, 2018 7:55 pm

    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"
    Takabe
    Takabe
    Novato
    Novato


    Mensagens : 22
    Créditos : 6

    Ficha do personagem
    Nível: 1
    Experiência:
    [EO] Distribuidor de pontos Left_bar_bleue0/0[EO] Distribuidor de pontos Empty_bar_bleue  (0/0)
    Vida:
    [EO] Distribuidor de pontos Left_bar_bleue30/30[EO] Distribuidor de pontos Empty_bar_bleue  (30/30)

    [EO] Distribuidor de pontos Empty Re: [EO] Distribuidor de pontos

    Mensagem por Takabe Seg Abr 16, 2018 8:09 pm

    Profane ~ 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
    :love: :love:  chato rsrs, obrigada
    oqbendis
    oqbendis
    Iniciante
    Iniciante


    Mensagens : 32
    Créditos : 0

    Ficha do personagem
    Nível: 1
    Experiência:
    [EO] Distribuidor de pontos Left_bar_bleue0/0[EO] Distribuidor de pontos Empty_bar_bleue  (0/0)
    Vida:
    [EO] Distribuidor de pontos Left_bar_bleue30/30[EO] Distribuidor de pontos Empty_bar_bleue  (30/30)

    [EO] Distribuidor de pontos Empty Re: [EO] Distribuidor de pontos

    Mensagem por oqbendis Sex Abr 27, 2018 4:45 pm

    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?


    _________________
    [EO] Distribuidor de pontos Temari_forum_signature_by_cosmicwolfwarrior-d8gbn72
    Alleg;
    Profane ~
    Profane ~
    Colaborador
    Colaborador


    Mensagens : 818
    Créditos : 130

    [EO] Distribuidor de pontos Empty Re: [EO] Distribuidor de pontos

    Mensagem por Profane ~ Sex Abr 27, 2018 10:37 pm

    Se tiver seguido todo o tutorial, note essa parte:

    [EO] Distribuidor de pontos Fvto7Ig

    Logo, em seu chat digite "/distribuir" que ela possivelmente vá aparecer.

    Att


    _________________
    "Mistress of shattered hopes and forever broken dreams"
    Takabe
    Takabe
    Novato
    Novato


    Mensagens : 22
    Créditos : 6

    Ficha do personagem
    Nível: 1
    Experiência:
    [EO] Distribuidor de pontos Left_bar_bleue0/0[EO] Distribuidor de pontos Empty_bar_bleue  (0/0)
    Vida:
    [EO] Distribuidor de pontos Left_bar_bleue30/30[EO] Distribuidor de pontos Empty_bar_bleue  (30/30)

    [EO] Distribuidor de pontos Empty Re: [EO] Distribuidor de pontos

    Mensagem por Takabe Sáb Abr 28, 2018 2:45 pm

    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
    Dryan
    Dryan
    Novato
    Novato


    Mensagens : 2
    Créditos : 0

    [EO] Distribuidor de pontos Empty Re: [EO] Distribuidor de pontos

    Mensagem por Dryan Qui Jul 11, 2019 12:10 am

    Debochado de mais amei Wink

    [EO] Distribuidor de pontos Eblema10

    Conteúdo patrocinado


    [EO] Distribuidor de pontos Empty Re: [EO] Distribuidor de pontos

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sex Nov 22, 2024 8:28 am