InícioCalendárioFAQBuscarMembrosGruposRegistrar-seConectar-se
Os que mais criam tópicos
Sonart
 
Alenaldo
 
Over~
 
Warrior
 
Caio~
 
SSO
 
newbie123
 
Kaue
 
Jim
 
yuri godinho
 
Conectar-se
Nome de usuário:
Senha:
Conexão automática: 
:: Esqueci minha senha

Compartilhe | 
 

 Sistema de Vila

Ir em baixo 
AutorMensagem
Skÿwälkër
Membro
Membro


Mensagens : 5
Moeda : 18
Pontos : 5
Data de inscrição : 12/01/2013

MensagemAssunto: Sistema de Vila   Sab Jan 12, 2013 2:42 pm

Sistema de Vila


Ficha :
-Dificuldade : Dificil
-Aprovado : [ON]
-Download : [ON]

CLIENT SIDE :


Procure por :

Código:
Private Type PlayerRec



Abaixo de:

Código:
Pk as byte



Adicione:

Código:
Vila as byte


' Com isso, terá uma nova variavel na estrutura do player, onde será as vilas.

No frmMenu, na Private Sub Form_Load(), procure por:

Código:
For i = 0 To UBound(tmpArray)
        lblNews.Caption = lblNews.Caption & tmpArray(i) & vbNewLine
    Next


Abaixo adicione:

Código:
Vila = 1


' Com isso, ao carregar a frmMenu, o valor de vila será 1, isso evitara futuros erros..

no frmMenu, crie:
Uma picture chamada:
Código:

Nome: picVila
Caption: Konoha



E deixe sua propriedade igual a da foto abaixo:

Expandir esta imagem
[Você precisa estar registrado e conectado para ver esta imagem.]

Em seguinda, ainda na picVila, adicione esta imagem de Konoha como sua Picture padrão.
[Você precisa estar registrado e conectado para ver esta imagem.]

Uma label chamada:

Código:
Nome: lblVilaProx
Caption: >


Uma segunda label :

Código:
Nome: lblVilaAnt
Caption: <


E uma terceira label, chamada:

Código:
Nome: lblVila
Caption: Konoha


Ficará mais ou menos assim :

Expandir esta imagem
[Você precisa estar registrado e conectado para ver esta imagem.]

Após feito isso, dê 2 clicks na lblVilaProx, e adicione:

Código:
If Vila >= 5 Then
  Vila = 1
Else
  Vila = Vila + 1
End If
picVila.Picture = LoadPicture(App.Path & "\data files\graphics\Vilas" & Vila & ".jpg")
If Vila = 1 Then
lblVila.Caption = "Konohagakure"
ElseIf Vila = 2 Then
lblVila.Caption = "Sunagakure"
ElseIf Vila = 3 Then
lblVila.Caption = "Iwagakure"
ElseIf Vila = 4 Then
lblVila.Caption = "Kirigakure"
ElseIf Vila = 5 Then
lblVila.Caption = "Kumogakure"
End If


' Isso fará com que, você ao clicar na label, passara de vila, indo de 1 em 1, quando chegar na vila 5, voltará na 1.. Indo sempre pra frente ( avançando )

Na lblVilaAnt, adicione:

Código:
If Vila <= 1 Then
  Vila = 5
Else
  Vila = Vila - 1
End If

picVila.Picture = LoadPicture(App.Path & "\data files\graphics\Vilas" & Vila & ".jpg")

If Vila = 1 Then
lblVila.Caption = "Konohagakure"
ElseIf Vila = 2 Then
lblVila.Caption = "Sunagakure"
ElseIf Vila = 3 Then
lblVila.Caption = "Iwagakure"
ElseIf Vila = 4 Then
lblVila.Caption = "Kirigakure"
ElseIf Vila = 5 Then
lblVila.Caption = "Kumogakure"
End If


' Isso fará com que, você ao clicar na label, voltará de vila, voltando de 1 em 1, quando chegar na vila 1, voltará na 5.. Indo sempre pra trás ( retornando )


Em seguida, na Public Sub SendAddChar, troque ela toda por:

Código:
Public Sub SendAddChar(ByVal name As String, ByVal Sex As Long, ByVal ClassNum As Long, ByVal Sprite As Long, ByVal Vila 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 Vila
    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


' Isso fará com que, ao criar char, envie a packet para armazenar vila do jogador juntamente com os dados do player, para assim amarzenar no servidor a sua vila.

Em seguida, no final da modGlobals, adicione:

Código:
Public Vila As Byte


Em seguida, em modGeneral, na Public 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


Mude para:

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


' Isso fará com que envie o dado da vila ao você escolher ela no frmMenu

Depois, na modHandleData, procure por

Código:
Call SetPlayerPK(i, buffer.ReadLong)


Abaixo adicione:

Player(i).Vila = buffer.ReadByte


Caso queira que mostre a vila do jogador em uma LABEL, vá na frmMain, e crie uma label chamada:

Código:
lblVila


E procure na modHandledata, por:

Código:
For x = 1 To Stats.Stat_Count - 1
            frmMain.lblCharStat(x).Caption = GetPlayerStat(MyIndex, x)
        Next



E abaixo adicione:

Código:
Select Case Player(MyIndex).Vila
        Case 1
          frmMain.lblVila.Caption = "Konohagakure"
        Case 2
          frmMain.lblVila.Caption = "Sunagakure"
        Case 3
          frmMain.lblVila.Caption = "Iwagakure"
        Case 4
          frmMain.lblVila.Caption = "Kirigakure"
        Case 5
          frmMain.lblVila.Caption = "Kumogakure"
        End Select


'Isso fará com que acada valor de vila, tenha um nome, seguindo assim seus respectivos nomes dados no frmMenu.
Pronto, client side completo.. Vamos para o servidor agora.

SERVER SIDE :


Procure a Sub AddChar, e troque ela toda por:

Código:
Sub AddChar(ByVal index As Long, ByVal Name As String, ByVal Sex As Byte, ByVal ClassNum As Long, ByVal Sprite As Long, ByVal Vila 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).Vila = Vila
       
       
        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 = Player(index).Vila
        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


No final do modGlobals, para evitar erros, adicione:

Código:
Public Vila As Byte


Depois, na modHandleData, procure por:

Código:
Private Sub HandleAddChar(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)


Abaixo de:

Código:
Dim n as Long


Adicione:

Código:
Dim Vila As Byte


Ainda na mesma sub, procure por:

Código:
Sprite = buffer.ReadLong



Abaixo adicione:

Código:
Vila = buffer.ReadByte


Ainda na modHandleData, procure por:

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


E modifique para:

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


Depois, no modServerTCP, procure por:

Código:
buffer.WriteLong GetPlayerPK(index)


Abaixo adicione:

Código:
buffer.WriteByte Player(index).Vila


Depois, em ModTypes, na Private Type PlayerRec, procure por:

Código:
PK As Byte


Abaixo adicione:

Código:
Vila as byte

Aki estao as pastas das vilas
[Você precisa estar registrado e conectado para ver este link.]

Baixe a pasta: Vilas, e adicione na pasta "graphics" do seu Eclipse Origins, e pronto sistema concluído. Delete suas contas antes de testar, e crie uma nova conta.


E para aqueles que quiserem colocar acima da cabeça do jogador, o nome da vila, adicionem isso..

No final do modText, adicione:

Código:
Public Sub DrawPlayerVila(ByVal Index As Long)
If Player(Index).Vila < 0 Then Exit Sub

Dim VilaX As Long
Dim VilaY As Long
Dim VilaColor As Long
Dim VilaName As String

Select Case Player(Index).Vila
    Case 1
        VilaName = "Konohagakure"
        VilaColor = QBColor(BrightRed)
    Case 2 'Suna
        VilaName = "Sunagakure"
        VilaColor = QBColor(Brown)
    Case 3 'Iwa
        VilaName = "Iwagakure"
        VilaColor = QBColor(Brown)
    Case 4 'Kiri
        VilaName= "Kirigakure"
        VilaColor = QBColor(Cyan)
    Case 5 'Kumo
        VilaName = "Kumogakure"
        VilaColor = QBColor(Cyan)
    Case Else
      VilaName = vbNullString
End Select

    VilaX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(VilaName)))
    If GetPlayerSprite(Index) < 1 Or GetPlayerSprite(Index) > NumCharacters Then
        VilaY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - 18
    Else
        VilaY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - (DDSD_Character(GetPlayerSprite(Index)).lHeight / 4) + 2
    End If

   
    Call DrawText(TexthDC, VilaX, VilaY, VilaName, VilaColor)

Depois procurem por:

Código:
' draw player names
    For i = 1 To Player_HighIndex
        If IsPlaying(i) And GetPlayerMap(i) = GetPlayerMap(MyIndex) Then
            Call DrawPlayerName(i)


Abaixo de Call DrawPlayerName(i) adicionem:

Código:
DrawPlayerVila i


Créditos :
Créditos desconhesido
Eu por disponibilizar
Voltar ao Topo Ir em baixo
Ver perfil do usuário
 
Sistema de Vila
Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Sistema de registro e login por lists
» Simples sistema de menu 1.0
» Engine Sistema Solar (terra)
» pessoal aqui de vila verde/amares/braga e quem quiser
» Rota Dura Extreme Enduro - Vila Real - Mondrões - 15 Janeiro 2012

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
 :: Desenvolvimento de Jogos :: Engines :: Eclipse Origins :: Tutoriais-
Ir para: