[Complemento]Missão por botão Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

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

[Complemento]Missão por botão

5 participantes

Ir para baixo

[Complemento]Missão por botão Empty [Complemento]Missão por botão

Mensagem por Dooolly Ter Ago 28, 2018 11:34 pm

Missão por Botão


A pedido de um membro fiz esse sistema super básico onde o jogador pode solicitar um nova missão a partir de um botão sem precisar interagir com algum NPC, é um sistema razoavelmente simples e requer o sistema de quests do alatar(Link do Sistema). Bom vamos ao sistema!


Client-Side


Primeiro vamos adicionar em modEnumerations, procure por:

Código:
' Make sure CMSG_COUNT is below everything else
    CMSG_COUNT

Acima adicione:

Código:
CQuestID

Agora em modClientTCP, no final adicione:

Código:
' Função que solicita ao servidor a missão
Sub SendPlayerQuest(ByVal QuestId As Long)
    Dim Buffer As clsBuffer

    ' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo errorhandler
    
    Set Buffer = New clsBuffer
    Buffer.WriteLong CQuestID ' Identificador do pacote
    Buffer.WriteLong QuestId ' Identificador da missão
    SendData Buffer.ToArray() ' Envia para o servidor o pacote
    Set Buffer = Nothing

    ' Error handler
    Exit Sub
errorhandler:
    HandleError "SendPlayerQuest", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub
End Sub

Cliente finalizado!
Sempre que quiser solicitar uma nova missão, dentro do botão ou label adicione:

Código:
SendPlayerQuest QuestId

onde esse QuestId será o índice da missão la no editor, tipo, caso queira colocar a primeira missão, você usar
SendPlayerQuest 1


__________________________________________________________________________________

Server-Side




Em modEnumerations, procure por:
Código:
' Make sure CMSG_COUNT is below everything else
    CMSG_COUNT

Acima adicione:
Código:
CQuestID

Em modHandleData, procure por:
Código:
HandleDataSub(CQuestLogUpdate) = GetAddress(AddressOf HandleQuestLogUpdate)

Abaixo adicione:
Código:
HandleDataSub(CQuestID) = GetAddress(AddressOf HandlePlayerQuest)

Agora no final de modHandleData, adicione:
Código:
' Função que recebe os dados do cliente
Sub HandlePlayerQuest(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
    Dim Buffer As clsBuffer
    Dim QuestId As Long
    
    Set Buffer = New clsBuffer ' Cria um novo objeto do tipo pacote buffer
    Buffer.WriteBytes Data() ' Grava o dados do pacote no buffer
    QuestId = Buffer.ReadLong ' Recebe o indice da missão
      
    ' Verifica se a missão pode ser iniciada
    If CanStartQuest(index, QuestId) Then
        ' Envia para o cliente que a nova missão
        QuestMessage index, QuestId, Trim$(Quest(QuestId).Chat(1)), QuestId
        Exit Sub
    End If
    
    ' Verificar se a missão está em progresso
    If QuestInProgress(index, QuestId) Then
        ' Envia uma mensagem para o jogador
        QuestMessage index, QuestId, Trim$(Quest(QuestId).Chat(2)), 0
        Exit Sub
    End If
End Sub

Pronto, agora só testar!


Última edição por Dooolly em Qua Ago 29, 2018 1:36 am, editado 2 vez(es)
Dooolly
Dooolly
Colaborador
Colaborador

Medalhas : [Complemento]Missão por botão Trophy12
Mensagens : 1227
Créditos : 153

Ficha do personagem
Nível: 1
Experiência:
[Complemento]Missão por botão Left_bar_bleue0/0[Complemento]Missão por botão Empty_bar_bleue  (0/0)
Vida:
[Complemento]Missão por botão Left_bar_bleue30/30[Complemento]Missão por botão Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

[Complemento]Missão por botão Empty Re: [Complemento]Missão por botão

Mensagem por Akio Ter Ago 28, 2018 11:48 pm

Show! Vlw dolly   I love you +1cred
Akio
Akio
Membro Ativo
Membro Ativo

Mensagens : 353
Créditos : 35

Ficha do personagem
Nível: 1
Experiência:
[Complemento]Missão por botão Left_bar_bleue0/0[Complemento]Missão por botão Empty_bar_bleue  (0/0)
Vida:
[Complemento]Missão por botão Left_bar_bleue30/30[Complemento]Missão por botão Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

[Complemento]Missão por botão Empty Re: [Complemento]Missão por botão

Mensagem por Valentine Qua Ago 29, 2018 10:46 am

Missão por botão? Que?
Valentine
Valentine
Administrador
Administrador

Medalhas : [Complemento]Missão por botão ZgLkiRU
Mensagens : 5341
Créditos : 1164

https://www.aldeiarpg.com/

Ir para o topo Ir para baixo

[Complemento]Missão por botão Empty Re: [Complemento]Missão por botão

Mensagem por GalaxyHells Qua Ago 29, 2018 11:17 am

Muito Bom, fazia um tempo que eu queria algo assim +1Cred


Última edição por GalaxyHells em Qua Ago 29, 2018 11:20 am, editado 1 vez(es)

_________________
[Complemento]Missão por botão 90yel0
GalaxyHells
GalaxyHells
Ocasional
Ocasional

Mensagens : 196
Créditos : 22

Ficha do personagem
Nível: 1
Experiência:
[Complemento]Missão por botão Left_bar_bleue0/0[Complemento]Missão por botão Empty_bar_bleue  (0/0)
Vida:
[Complemento]Missão por botão Left_bar_bleue30/30[Complemento]Missão por botão Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

[Complemento]Missão por botão Empty Re: [Complemento]Missão por botão

Mensagem por Corrupted Qua Ago 29, 2018 11:18 am

lindo de bonito hein

Corrupted
Semi-Experiente
Semi-Experiente

Mensagens : 128
Créditos : 8

Ir para o topo Ir para baixo

[Complemento]Missão por botão Empty Re: [Complemento]Missão por botão

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos