Suporte ao desenvolvimento de jogos!


    [Naruto System] Sistema de Elementos

    Compartilhe
    avatar
    XWlash
    Semi-Experiente
    Semi-Experiente

    Mensagens : 88
    Créditos : 23

    [Naruto System] Sistema de Elementos

    Mensagem por XWlash em Dom Dez 28, 2014 5:47 pm

    Bom não é de hoje que muitos novatos e" já iniciados" pedem o sistema de elementos, e ele está bem a frente do mesmos e não percebem, o sistema de vila, pode ser usado como uma boa base para este, desde já dou os créditos a Thales12, por ter feito o sistema de vilas.

    Chega de papo agora irei explicar como o tutorial será feito, será dividido em partes a primeira parte será postada agora e depois será editada com a segunda parte e em seguida com a terceira.


    1º Parte: Base do sistema, ao player se registrar já tem os 3 elementos porém só o 1º a escolha ao criar o char e a mostra por comando(opcional)

    2º Parte: Item Requer Elemento e ganha elemento (só ganha o segundo)

    3º Parte: Spell Requer Elemento e mais coisas que irei decidir.

    4º Parte: Terceiro elemento ganho da junção do 1º e 2º (ao ganhar o 2º, o terceiro é ganho como se fosse uma kekkei genkai)

    - 1º Parte(Créditos á Thales12) -


    Client-Side:


    Vá na Sub PlayerRec  e abaixo de:
    Código:
    PK As Byte

    Adicione:
    Código:
    Elemento1 As Byte
    Elemento2 As Byte
    Elemento3 As Byte

    Na frmMenu, na Sub Form_Load() abaixo de:
    Código:
    For i = 0 To UBound(tmpArray)
            lblNews.Caption = lblNews.Caption & tmpArray(i) & vbNewLine
        Next

    Adicione:

    Código:
    Elemento1 = 1
    Elemento2 = 1
    Elemento3 = 1

    Pronto agora faremos a parte no qual o player escolherá o elemento.

    Na frmMenu, na picCharacter adicione 3 Labels e 1 picturebox com as seguintes propriedades:
    Código:

    PictureBox:

    Name: picElemento
    Appearence: 0 - Flat
    Autosize: True
    BorderStyle: 0 - None

    1º Label:

    Name: lblElemento
    Caption: Katon

    2 Label

    Name:lblElementoAnt
    Caption: <

    3º Label

    Name:lblElementoProx
    Caption: >


    Organize da forma que desejar a minha ficou da seguinte maneira:

    Dê dois clicks na lblElementoProx e adicione:
    Código:
    If Elemento1 >= 5 Then
      Elemento1 = 1
    Else
      Elemento1 = Elemento1 + 1
    End If
    picElemento.Picture = LoadPicture(App.Path & "\data files\graphics\elementos\Elementos" & Elemento1 & ".jpg")
    If Elemento1 = 1 Then
    lblElemento.Caption = "Katon"
    ElseIf Elemento1 = 2 Then
    lblElemento.Caption = "Doton"
    ElseIf Elemento1 = 3 Then
    lblElemento.Caption = "Suiton"
    ElseIf Elemento1 = 4 Then
    lblElemento.Caption = "Fuuton"
    ElseIf Elemento1 = 5 Then
    lblElemento.Caption = "Raiton"
    End If
    Agora volte a frmMenu, dê dois clicks na lblElementoAnt e adicione:
    Código:
    If Elemento1 <= 1 Then
      Elemento1 = 5
    Else
      Elemento1 = Elemento1 - 1
    End If

    picElemento.Picture = LoadPicture(App.Path & "\data files\graphics\elementos\Elementos" & Elemento1 & ".jpg")

    If Elemento1 = 1 Then
    lblElemento.Caption = "Katon"
    ElseIf Elemento1 = 2 Then
    lblElemento.Caption = "Doton"
    ElseIf Elemento1 = 3 Then
    lblElemento.Caption = "Suiton"
    ElseIf Elemento1 = 4 Then
    lblElemento.Caption = "Fuuton"
    ElseIf Elemento1 = 5 Then
    lblElemento.Caption = "Raiton"
    End If

    Troque a Sub SendAddChar por:
    Public Sub SendAddChar(ByVal name As String, ByVal Sex As Long, ByVal ClassNum As Long, ByVal Sprite As Long, ByVal Elemento1 As Byte, Elemento2 As Byte, Elemento3 As Byte)
    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 CAddChar
        buffer.WriteString name
        buffer.WriteLong Sex
        buffer.WriteLong ClassNum
        buffer.WriteLong Sprite
        buffer.WriteByte Elemento1
        buffer.WriteByte Elemento2
        buffer.WriteByte Elemento3

        SendData buffer.ToArray()
        Set buffer = Nothing
      
        ' Error handler
        Exit Sub
    errorhandler:
        HandleError "SendAddChar", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext
        Err.Clear
        Exit Sub
       End Sub

    Obs: Caso tenha sistemas adicionados que mexem com a sub, é somente adicionar as partes que estão em vermelho, por isso não coloquei em code.
    Procure por:

    Código:
    Call SetPlayerPK(i, buffer.ReadLong)
    Abaixo adicione:
    Código:
    Player(i).Elemento1 = buffer.ReadByte
    Player(i).Elemento2 = buffer.ReadByte
    Player(i).Elemento3 = buffer.ReadByte

    Na Sub MenuState procure por:

    Código:
    If frmMenu.optMale.Value Then
                        Call SendAddChar(frmMenu.txtCName, SEX_MALE, frmMenu.cmbClass.ListIndex + 1, newCharSprite)
                    Else
                        Call SendAddChar(frmMenu.txtCName, SEX_FEMALE, frmMenu.cmbClass.ListIndex + 1, newCharSprite)
                    End If

    Troque para:
    If frmMenu.optMale.Value Then
                        Call SendAddChar(frmMenu.txtCName, SEX_MALE, frmMenu.cmbClass.ListIndex + 1, newCharSprite, Elemento1, Elemento2, Elemento3)
                    Else
                        Call SendAddChar(frmMenu.txtCName, SEX_FEMALE, frmMenu.cmbClass.ListIndex + 1, newCharSprite, Elemento1, Elemento2, Elemento3)
                    End If
    Obs: Caso tenha sistemas que mexa com tal código, é somente adicionar as partes que coloquei em vermelho.

    E para finalizar o Client, no final do ModGlobals, Adicione:

    Código:
    Public Elemento1 As Byte
    Public Elemento2 As Byte
    Public Elemento3 As Byte


    Server-Side:

     
    Troque a Sub AddChar por:
    Sub AddChar(ByVal index As Long, ByVal Name As String, ByVal Sex As Byte, ByVal ClassNum As Long, ByVal Sprite As Long, ByVal Elemento1 As Byte, Elemento2 As Byte, Elemento3 As Byte)
        Dim f As Long
        Dim n As Long
        Dim spritecheck As Boolean

        If LenB(Trim$(Player(index).Name)) = 0 Then
          
            spritecheck = False
          
            Player(index).Name = Name
            Player(index).Sex = Sex
            Player(index).Class = ClassNum
            Player(index).Elemento1 = Elemento1
            Player(index).Elemento2 = Elemento2
            Player(index).Elemento3 = Elemento3

          
            If Player(index).Sex = SEX_MALE Then
                Player(index).Sprite = Class(ClassNum).MaleSprite(Sprite)
            Else
                Player(index).Sprite = Class(ClassNum).FemaleSprite(Sprite)
            End If

            Player(index).Level = 1

            For n = 1 To Stats.Stat_Count - 1
                Player(index).stat(n) = Class(ClassNum).stat(n)
            Next n

            Player(index).Dir = DIR_DOWN
            Player(index).Map = START_MAP
            Player(index).x = START_X
            Player(index).y = START_Y
            Player(index).Dir = DIR_DOWN
            Player(index).Vital(Vitals.HP) = GetPlayerMaxVital(index, Vitals.HP)
            Player(index).Vital(Vitals.MP) = GetPlayerMaxVital(index, Vitals.MP)
          
            ' set starter equipment
            If Class(ClassNum).startItemCount > 0 Then
                For n = 1 To Class(ClassNum).startItemCount
                    If Class(ClassNum).StartItem(n) > 0 Then
                        ' item exist?
                        If Len(Trim$(Item(Class(ClassNum).StartItem(n)).Name)) > 0 Then
                            Player(index).Inv(n).Num = Class(ClassNum).StartItem(n)
                            Player(index).Inv(n).Value = Class(ClassNum).StartValue(n)
                        End If
                    End If
                Next
            End If
          
            ' set start spells
            If Class(ClassNum).startSpellCount > 0 Then
                For n = 1 To Class(ClassNum).startSpellCount
                    If Class(ClassNum).StartSpell(n) > 0 Then
                        ' spell exist?
                        If Len(Trim$(Spell(Class(ClassNum).StartSpell(n)).Name)) > 0 Then
                            Player(index).Spell(n) = Class(ClassNum).StartSpell(n)
                        End If
                    End If
                Next
            End If
          
            ' Append name to file
            f = FreeFile
            Open App.path & "\data\accounts\charlist.txt" For Append As #f
            Print #f, Name
            Close #f
            Call SavePlayer(index)
            Exit Sub
        End If

    End Sub

    Obs: Caso tenha algum sistema envolvendo o código citado, somente adicionar a parte em vermelho.

    No final da ModGlobals adicione:
    Código:
    Public Elemento1 As Byte
    Public Elemento2 As Byte
    Public Elemento3 As Byte

    Na Sub HandleAddChar procure por:
    Código:
    Dim n as Long

    Abaixo adicione:
    Código:
    Dim Elemento1 As Byte
    Dim Elemento2 As Byte
    Dim Elemento3 As Byte

    Ainda na sub, procure por:

    Código:
    Sprite = buffer.ReadLong

    Abaixo adicione:

    Código:
    Elemento1 = buffer.ReadByte
    Elemento2 = buffer.ReadByte
    Elemento3 = buffer.ReadByte

    No modHandleData procure por:
    Código:
    ' Everything went ok, add the character
            Call AddChar(index, Name, Sex, Class, Sprite)

    Troque para:

    ' Everything went ok, add the character
            Call AddChar(index, Name, Sex, Class, Sprite, Elemento1, Elemento2, Elemento3)
    Obs: Caso tenha algum sistema que envolva o código mostrado, somente adicionar as partes em vermelho.

    No modServerTCP procure por:
    Código:
    buffer.WriteLong GetPlayerPK(index)

    Abaixo adicione:
    Código:
    buffer.WriteByte Player(index).Elemento1
    buffer.WriteByte Player(index).Elemento2
    buffer.WriteByte Player(index).Elemento3

    Na Type PlayerRec abaixo de
    PK As Byte adicione:

    Código:
    Elemento1 As Byte
    Elemento2 As Byte
    Elemento3 As Byte
    Pronto, baixe o winrar da pasta elementos Aqui e extraia na graphics do seu projeto e creio que estará tudo certo.

    Créditos da primeira parte:

    Thales12 (Por fazer o sistema de vila)
    Kross (Por simplesmente passar pra 3 elementos)

    Ah quando virá a próxima parte?

    R= Pode vir de hoje à 8 dias.

    Esse tutorial foi testado?
    R= Sim, na EO 2.0 zerada e com correções de bugs encontrada em outro fórum.

    Off: Caso eu tenha errado, por favor me informar. Ou se tiver algum pedido pode falar também.


    _________________

    Tente novamente.
    avatar
    Spooky
    Membro Ativo
    Membro Ativo

    Mensagens : 262
    Créditos : 23

    Re: [Naruto System] Sistema de Elementos

    Mensagem por Spooky em Dom Dez 28, 2014 5:50 pm

    Depois testo, mais antes toma +1 cred :v

    Qualquer coisa, eu tiro meu +1 cred huhu3hu3h


    _________________
    Sign

    Sign¹:

    Sign²:
    avatar
    GalaxyHells
    Ocasional
    Ocasional

    Mensagens : 179
    Créditos : 10

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [Naruto System] Sistema de Elementos

    Mensagem por GalaxyHells em Seg Dez 29, 2014 12:35 pm

    Bartolomeo escreveu:Depois testo, mais antes toma +1 cred :v

    Qualquer coisa, eu tiro meu +1 cred huhu3hu3h

    '-'
    avatar
    Spooky
    Membro Ativo
    Membro Ativo

    Mensagens : 262
    Créditos : 23

    Re: [Naruto System] Sistema de Elementos

    Mensagem por Spooky em Seg Dez 29, 2014 2:32 pm

    GamerHells014 escreveu:
    Bartolomeo escreveu:Depois testo, mais antes toma +1 cred :v

    Qualquer coisa, eu tiro meu +1 cred huhu3hu3h

    '-'
    Cara, sabia que isso é spam (algo assim)?
    Leia as regras véy e.e isso pdoe dar em banimento eu acho '-'


    _________________
    Sign

    Sign¹:

    Sign²:
    avatar
    GalaxyHells
    Ocasional
    Ocasional

    Mensagens : 179
    Créditos : 10

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [Naruto System] Sistema de Elementos

    Mensagem por GalaxyHells em Qui Jan 01, 2015 5:01 pm

    caraca sempre tem erro vey.Error:

    Client

    [code/code]
     picElemento.Picture = LoadPicture(App.Path & "\data files\graphics\elementos\Elementos" & Elemento1 & ".jpg")

    variable not defieded


    _________________
    avatar
    Spooky
    Membro Ativo
    Membro Ativo

    Mensagens : 262
    Créditos : 23

    Re: [Naruto System] Sistema de Elementos

    Mensagem por Spooky em Sex Jan 02, 2015 9:12 pm

    GamerHells014 escreveu:caraca sempre tem erro vey.Error:

    Client

    [code/code]
     picElemento.Picture = LoadPicture(App.Path & "\data files\graphics\elementos\Elementos" & Elemento1 & ".jpg")

    variable not defieded
    Já tentou criar uma pasta chamada "elementos" dentro da pasta graphics
    e criar um arquivo chamado Elemento1.jpg? boa sorte.


    _________________
    Sign

    Sign¹:

    Sign²:
    avatar
    GalaxyHells
    Ocasional
    Ocasional

    Mensagens : 179
    Créditos : 10

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [Naruto System] Sistema de Elementos

    Mensagem por GalaxyHells em Sab Jan 03, 2015 12:51 am

    thiago no tuto tem o bang pra baixa e por na pastaeu puis e nd de funfar


    _________________
    avatar
    Spooky
    Membro Ativo
    Membro Ativo

    Mensagens : 262
    Créditos : 23

    Re: [Naruto System] Sistema de Elementos

    Mensagem por Spooky em Sab Jan 03, 2015 3:52 pm

    GamerHells014 escreveu:thiago no tuto tem o bang pra baixa e por na pastaeu puis e nd de funfar
    Seguinte, vou tentar te ajudar...

    Podem ser duas coisas (Você pode ter que deixar os arquivos em 2 lugares...)

    1°: Tente baixar a pasta que ele manda... veja se ta em .jpg se não estiver abra um editor e coloque-a...
    Aí você copia todos os arquivos que baixou (.jpg)

    Vai em client>data files>graphics e Cola lá, em nenhuma pasta!

    2°: Tente baixar a pasta que ele manda... veja se ta em .jpg se não estiver abra um editor e coloque-a...
    Aí você copia todos os arquivos que baixou (.jpg)

    Aí você vai em client>data files>graphics. crie uma pasta chamada Elementos 
    e cole lá, certifique-se de que esteja Elemento1,Elemento2 e assim por diante... (EM ORDEM!)

    Se não funcionar ou tem algo errado no código ou Você fez algo errado.


    Mais Creio que tu fez algo errado... então tente refazer ...

    Também pode ser que tu já tem o sistema de elementos na tua engine e esteja dando conflito .


    _________________
    Sign

    Sign¹:

    Sign²:
    avatar
    GalaxyHells
    Ocasional
    Ocasional

    Mensagens : 179
    Créditos : 10

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [Naruto System] Sistema de Elementos

    Mensagem por GalaxyHells em Sab Jan 03, 2015 7:32 pm

    vou tentar colocar em nenhuma pasta...

    foda é ter que fazer esse tuto que n foi muito facil pra min '-',

    thiago sabe que eu sou o fabricio neh


    _________________
    avatar
    GalaxyHells
    Ocasional
    Ocasional

    Mensagens : 179
    Créditos : 10

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: [Naruto System] Sistema de Elementos

    Mensagem por GalaxyHells em Sab Jan 03, 2015 7:32 pm

    vou tentar colocar em nenhuma pasta...

    foda é ter que fazer esse tuto que n foi muito facil pra min '-',

    thiago sabe que eu sou o fabricio neh


    _________________

    Conteúdo patrocinado

    Re: [Naruto System] Sistema de Elementos

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sex Set 21, 2018 6:58 am