MMORPG Brasil - Suporte e recursos para desenvolvedores de MMORPGs.

Forum destinado a criação de MMORPGs e abrindo espaço para todas engines MMORPG maker.

Bem vindo ao MMORPGBR Fórum
Visite nossa Faq, crie tópicos, seja ativo para participar de nossa comunidade, faça a diferença e não seja um sangue suga, se gostar de um tópico não custa reputar, veja nossas Regras para não se prejudicar.

Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

#1 Add-On - Transformação por Foto em Ter Out 17, 2017 7:32 pm

Se trata de um "add-on", uma modificação, do sistema de Transformação que fora postado aqui por mim.
O Link para a Treta vai estar disponível abaixo uma vez que para ser posto isso aqui, será necessária a perfeita colocação do meu sistema passado.

Vamos lá.

##########
Ficha Técnica
##########

Nome do Sistema: Incremento de Sistema de Transformação - Agora por "Foto".
Nível de Dificuldade: Nenhum, já que basta você ler e copiar e colar ~~
Compatibilidade: QUALQUER EO ou CrystalShire.
Programas Necessários: Visual Basic 6
Sistemas necessários: http://mmorpgsbrasil.forumeiros.com/t13-sistema-de-transformacao

#######
Função
#######

Do que se trata de fato essa modificação? Bem, você irá permitir a "transformação", decorrente o Clique de uma Imagem.
"Ah mas eu tenho medo...";
não tenha, vai ser fácil, verás!!!

########
Abaoti
########

-> Como vai funcionar?;
Você irá criar a Spell como normal, porém usando o "click" em uma das imagens, a spell será processada porém será extraido e usado apenas o valor da Transformação, para dar os fatores ao rapaz piruleta que usar.

-> Ah mas eu quero restrição, por classe Naruto, Saskure, Power Ranger.
Isso ai já é com você meu pequeno sucker of jaruto, dê seu jeito, monte a threat e tentaremos ajudar sempre que possibles.

-> Ah mas Profane responde ai no face, no discord, no skype, acessa aqui pra ver...
Ow god, assim nau. Monta a dúvida, que quem puder ajudar e auxiliar irá auxiliar se puder ué.

########
Observação
########

Este Sistema será montado em uma tela "grossa", um componente de Imagem qualquer, com outras imagens dentro para simular a área de "foto".

Eu sou usuária fervorosa de Dx8, e por ser uma modificação que estou disponibilizando a qualquer engine, então será feita de forma comum. Se você é usuário de Dx8, procure os tópicos a qual ensinam a montar telas, gui, buttons em dx8, e assim aplique o sistema.

########
Ao Sistema
########



  • Client Side



[1] Criação da Tela de Imagens
- Indo ao FrmMain, onde rola o game, procure um Componente de Picture, e faça a telinha.

#Obs: Inicialmente é interessante que você, como sujeito malino e muitas vezes afobado, porém inexperiente, não tente de antemão se jogar num precipício que é querer fazer de uma vez só 10000 transformações e o carai a 4.
Porque? Porque ai você por não saber o que está fazendo ainda, vai acabar fazendo tudo errado como sempre. Tenha calma e entenda o que está fazendo.

- Deixe a Telinha mais o menos assim :
http://prntscr.com/fta0ip



Ai temos, coisas a mais como Labels para descrição e sinalização, mas como você provavelmente irá usar "Imagens", então fica a seu critério.

O Importante é saber que trataremos aqui de 3 Trans por "Foto", são elas, Oin, Ululu e Bjus (na boka)

[2] Nomeando os Componentes

#Pic de Fundo - Transformação
Name:picTrans

#Pic da Oin
Name: picTrans_1

#Pic da Ululu
Name: picTrans_2

#Pic da Bjus
Name: picTrans_3

#Obs: Ah formas mais decentes de se trabalhar com componentes, ainda mais quem irá usar muitos, e para variar. Mas isso você terá de tentar estudar sozinho, se é aplicar uma copia por index ao Componente; Mas como eu tenho que ensinar o básico e funcional, esteja por satisfeito amore < 3

[3] Parte Boa ;3 The logic
- Abra cada um dos picTrans_1/2/3; E dentro deles adicione:

Código:
Call ProcessTransByPic(X)

Onde se tem o (x), substitua o X pelo numero da Imagem de transformação.

#Obs: NÃO é ainda a Transformação, e sim, apenas o Numero da Imagem do Botão. Trabalharemos Casos. Então se atente a isso.

- Agora vá ao ModGameLogic, e no final dele adicione:
Código:
'Sub que processará e pedirá o envio da Transformação
Public Sub ProcessTransByPic(ByVal PicTrans As Byte) 'Usando Byte que vai até 255, 255 ta bom não?
Dim SpellNum As Long    'Vai Guardar o Valor da Spell

    'Hora de Brincar.
    Select Case PicTrans 'Vai pegar o Numero substituido pelo X e aplicar aqui
        Case 1  'oin
            SpellNum = 1 'Numero da Spell a qual Clicando na Caixinha 1 irá processar a Trans
        Case 2  'ululul
            SpellNum = 2 'Numero da Spell a qual Clicando na Caixinha 2 irá processar a Trans
        Case 3  'bju na boka
            SpellNum = 3 'Numero da Spell a qual Clicando na Caixinha 3 irá processar a Trans
        Case Else
            SpellNum = 0
    End Select
   
    'SpellNum assumirá o numero da Spell que está guardada a Trans, então você so precisa substituir pelo numero
    'da Spell no Editor.
   
    'Enviar pedido de Transformação, porém analisando antes os limites!!!
    'Caso Exista (Não seja zero ou menor), e também não seja maior que o limite então ~
    If SpellNum > 0 And SpellNum < MAX_SPELLS Then
        Call RequestTransByPic(SpellNum)    'Enviará o pedido da Trans
    End If

End Sub

[4] Empacotando
- Nossa sub de processamento está criada, e ela passará a fazer o pedido, mas esse pedido ainda não existe, vamos criar ele e mandar empacotar para sorrir.

Vá ao modClientTCP, no final dele adicione:

Código:
Public Sub RequestTransByPic(ByVal SpellNum 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 CRequestTransPic        'Enumeração do Pacote!
    Buffer.WriteLong SpellNum              'Numero da Spell que saiu lá do Processamento
   
    SendData Buffer.ToArray()
    Set Buffer = Nothing
   
    ' Error handler
    Exit Sub
errorhandler:
    HandleError "RequestTransByPic", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub

End Sub

Agora, vá ao ModEnumerations e procure por:

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

Essa área de enumerations lista todos os pacotes possíveis, lançadas pelo cliente, então acima disso ai, adicione nosso pacote:

Código:
 CRequestTransPic

Ficaria assim: http://prntscr.com/fta7v4
Código:
https://image.prntscr.com/image/so-6OIK3QgWnR9Snija-aQ.png
Cliente pronto, agora vamos ao Servidor.

  • Server Side


[5] Recebendo esse pacote de delicias.
- Primeiro temos de deixar o ModEnumarations de acordo, ambos tem de estar na mesma ordem, é uma enumeração. Você embaralhar isso aqui, você terá uma vasta dor de cabeça. Então no server, modEnumerations adicione:

Código:
CRequestTransPic

Acima do:

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

Vai ficar igual ao que fizemos no ModEnumerations do Client.

Agora vamos ao modHandleData, no Servidor.

Procure por isso aqui (estará bem no começo do Modulo);

Código:
Public Sub InitMessages()

No Fim dessa SUB, antes do END SUB; adicione:
Código:
'Trans Pic vinda do Client
    HandleDataSub(CRequestTransPic) = GetAddress(AddressOf HandleTransPic)

Quando chegar o pacote do Cliente, relacionada ao nosso RequestTransPic, então ele vai mandar a leitura ser processada na sub do HandleTransPic.
Vamos agora Criar e trabalhar no HandleTransPic; No fim do ModHandleData, adicione:

Código:

'Processamento do Pacote de Trans, vindo do Client.
Private Sub HandleTransPic(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Dim SpellNum As Long
Dim Buffer As clsBuffer

    Set Buffer = New clsBuffer
    Buffer.WriteBytes Data()
   
    SpellNum = Buffer.ReadLong      'Alargada a Leitura - Numero da Spell que veio do Client
   
    'Passar nos Limites do Servidor:
    If SpellNum <= 0 Or SpellNum > MAX_SPELLS Then Exit Sub 'Exitar se for causar um Script out of Range
    'O Numero é viavel, então vamos trabalhar ele.
   
    Set Buffer = Nothing 'Encerrado o Pacote;
   
    'Enviar transformaçãu (ih FIM!)
    If Spell(SpellNum).Transform.HasTransform > 0 Then  'Verifica se a Spell tem Transformação Habilitada
        Call ProcessSpellTransform(Index, SpellNum, True)    'Processar Transformação
    End If

End Sub

Encerrado.

##############
Considerações Finais
##############

O Valor irá passar da caixa, para o select case do client, dps empacotado e enviado para o servidor analisar e processar a Trans de acordo com a Spell registrada com tal numero.

No mais é isso, continua ai o sistema de trans + buff;

Val val vai fazer um bom uso disso! < 3

Att

Créditos : Profane ~


_________________
Juntos Por Só Um Motivo.
Ver perfil do usuário http://mmorpgsbrasil.forumeiros.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum