Universo Games
Ola , Convidado



Você ainda não e cadastrado então cadastre-se e veja todas as atualizações no mundo rpg!!!
Universo Games

Suporte e Desenvolvimento só no Universo Games

Ola Convidado, Seja Bem vindo a equipe lhe deseja boa sorte no seu projeto!

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

Sistema de Bank

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

1Tutorial Sistema de Bank em Qua 27 Nov 2013, 19:43

athos100


Membro
Membro
Aki Esta o Sistema de Banco 100% Completo
Agora Faça o que eu digo:
Entao agora vai FrmMapeditor, e crie debaixo da Arena um
OptionButton chamada o captiom "Banco"
e com nome "optBank"
entao

Procure no modtypes:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Public Const TILE_TYPE_NONE = 20
E debaixo

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Public Const TILE_TYPE_BANK = 21
Aghora procure por:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Type ChatBubble
    Text As String
    Created As Long
End Type
Abaixo coloque isso:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Type BankRec
    Num As Integer
    Value As Long
    Dur As Integer
End Type
Procure:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Spell(1 To MAX_PLAYER_SPELLS) As Long

Abaixo coloque:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Bank(1 To MAX_BANK) As BankRec

Procure:

   
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
For n = 1 To MAX_INV
        Player(Index).Inv(n).Num = 0
        Player(Index).Inv(n).Value = 0
        Player(Index).Inv(n).Dur = 0
    Next n
e Novamente abaixo coloque isso:


Code: -------------------------------------------------------------Selecionar conteúdo
Código:
For n = 1 To MAX_BANK
        Player(Index).Bank(n).Num = 0
        Player(Index).Bank(n).Value = 0
        Player(Index).Bank(n).Dur = 0
    Next n
Aghora Abaixo de toudo do modTypes coloque toudo isso:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Function GetPlayerBankItemNum(ByVal Index As Long, ByVal BankSlot As Long) As Long
    If BankSlot > MAX_BANK Then
        Exit Function
    End If
    GetPlayerBankItemNum = Player(Index).Bank(BankSlot).Num
End Function

Sub SetPlayerBankItemNum(ByVal Index As Long, ByVal BankSlot As Long, ByVal ItemNum As Long)
    Player(Index).Bank(BankSlot).Num = ItemNum
End Sub

Function GetPlayerBankItemValue(ByVal Index As Long, ByVal BankSlot As Long) As Long
    GetPlayerBankItemValue = Player(Index).Bank(BankSlot).Value
End Function

Sub SetPlayerBankItemValue(ByVal Index As Long, ByVal BankSlot As Long, ByVal ItemValue As Long)
    Player(Index).Bank(BankSlot).Value = ItemValue
End Sub

Function GetPlayerBankItemDur(ByVal Index As Long, ByVal BankSlot As Long) As Long
    GetPlayerBankItemDur = Player(Index).Bank(BankSlot).Dur
End Function

Sub SetPlayerBankItemDur(ByVal Index As Long, ByVal BankSlot As Long, ByVal ItemDur As Long)
    Player(Index).Bank(BankSlot).Dur = ItemDur
End Sub
No modGameLogic procure:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
' Visual Inventory
        Dim Q As Long
        Dim Qq As Long
        Dim IT As Long
              
       If GetTickCount > IT + 500 And frmMirage.picInv3.Visible = True Then
            For Q = 0 To MAX_INV - 1
                Qq = Player(MyIndex).Inv(Q + 1).Num
              
               If frmMirage.picInv(Q).Picture <> LoadPicture() Then
                    frmMirage.picInv(Q).Picture = LoadPicture()
                Else
                    If Qq = 0 Then
                        frmMirage.picInv(Q).Picture = LoadPicture()
                    Else
  
                      Call BitBlt(frmMirage.picInv(Q).hDC, 0, 0, PIC_X,
PIC_Y, frmMirage.picItems.hDC, (Item(Qq).Pic - Int(Item(Qq).Pic / 6) *
6) * PIC_X, Int(Item(Qq).Pic / 6) * PIC_Y, SRCCOPY)
                    End If
                End If
            Next Q
        End If
Abaixo Adicione isso:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
'Banco Visual

                If GetTickCount > IT + 500 And frmBanco.Visible = True Then
                    For Q = 0 To MAX_BANK - 1
                        Qq = GetPlayerBankItemNum(MyIndex, Q + 1)

                        If frmBanco.picBank(Q).Picture <> LoadPicture() Then
                            frmBanco.picBank(Q).Picture = LoadPicture()
                        Else
                            If Qq = 0 Then
                                frmBanco.picBank(Q).Picture = LoadPicture()
                            Else
  
                              Call BitBlt(frmBanco.picBank(Q).hDC, 0, 0,
 PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(Qq).Pic - Int(Item(Qq).Pic /
 6) * 6) * PIC_X, Int(Item(Qq).Pic / 6) * PIC_Y, SRCCOPY)
                            End If
                        End If
                    Next Q
                  
                   For Q = 0 To MAX_INV - 1
                        Qq = Player(MyIndex).Inv(Q + 1).Num

                        If frmBanco.picInvB(Q).Picture <> LoadPicture() Then
                            frmBanco.picInvB(Q).Picture = LoadPicture()
                        Else
                            If Qq = 0 Then
                                frmBanco.picInvB(Q).Picture = LoadPicture()
                            Else
  
                              Call BitBlt(frmBanco.picInvB(Q).hDC, 0, 0,
 PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(Qq).Pic - Int(Item(Qq).Pic /
 6) * 6) * PIC_X, Int(Item(Qq).Pic / 6) * PIC_Y, SRCCOPY)
                            End If
                        End If
                    Next Q
                End If
Procure isso:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
If
 .Light > 0 Then Call DrawText(TexthDC, x * PIC_X + sx + 18 -
(NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 14 - (NewPlayerY *
PIC_Y) - NewYOffset, "L", QBColor(Yellow))
Abaixo Adicione isso
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
If
 .Type = TILE_TYPE_BANK Then Call DrawText(TexthDC, x * PIC_X + sx + 8 -
 (NewPlayerX * PIC_X) - NewXOffset, y * PIC_Y + sx + 8 - (NewPlayerY *
PIC_Y) - NewYOffset, "BANK", QBColor(BrightRed))
Procure aghora isso:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
If .Type = TILE_TYPE_KILL Then frmMapEditor.optKill.Value = True

Abaixo coloque:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
If .Type = TILE_TYPE_BANK Then frmMapEditor.optBank.Value = True

Procure toudo isso:


Code: -------------------------------------------------------------Selecionar conteúdo
Código:
If frmMapEditor.optKill.Value = True Then
                                .Type = TILE_TYPE_KILL
                                .Data1 = 0
                                .Data2 = 0
                                .Data3 = 0
                                .String1 = ""
                                .String2 = ""
                                .String3 = ""
                            End If
Abaixo Adicione:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
If frmMapEditor.optBank.Value = True Then
                                .Type = TILE_TYPE_BANK
                                .Data1 = 0
                                .Data2 = 0
                                .Data3 = 0
                                .String1 = vbNullString
                                .String2 = vbNullString
                                .String3 = vbNullString
                            End If
Procure aghora:


Code: -------------------------------------------------------------Selecionar conteúdo
Código:
' :::::::::::::::::::::::::::::::::
    ' :: Login was successful packet ::
    ' :::::::::::::::::::::::::::::::::
    If Parse(0) = "loginok" Then
        ' Now we can receive game data
        MyIndex = Val(Parse(1))
        
        frmChars.Hide
        frmSendGetData.Show
        
        Call SetStatus("Recebendo Informações...")
        Exit Sub
    End If

Abaixo adicione:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
' ::::::::::::::::::::::::
    ' :: Player bank packet ::
    ' ::::::::::::::::::::::::
    If Parse(0) = "playerbanco" Then
        n = 1
        For I = 1 To MAX_BANK
            Call SetPlayerBankItemNum(MyIndex, I, Val(Parse(n)))
            Call SetPlayerBankItemValue(MyIndex, I, Val(Parse(n + 1)))
            Call SetPlayerBankItemDur(MyIndex, I, Val(Parse(n + 2)))

            n = n + 3
        Next I
        Exit Sub
        End If

  ' :::::::::::::::::::::::::::::::
    ' :: Player bank update packet ::
    ' :::::::::::::::::::::::::::::::
    If Parse(0) = "atualizarbanco" Then
        n = Val(Parse(1))

        Call SetPlayerBankItemNum(MyIndex, n, Val(Parse(2)))
        Call SetPlayerBankItemValue(MyIndex, n, Val(Parse(3)))
        Call SetPlayerBankItemDur(MyIndex, n, Val(Parse(4)))
        Exit Sub
        End If
    
    ' :::::::::::::::::::::::::::::::
    ' :: Player bank open packet ::
    ' :::::::::::::::::::::::::::::::

    If Parse(0) = "abrirbanco" Then
        frmBanco.Show
        Exit Sub
        End If

    If Parse(0) = "bancomsgg" Then
    Msg = Parse$(1)
        Call MsgBox(Msg, vbOKOnly, GAME_NAME)
        Exit Sub
        End If
Aghora procuramos por ultimo:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Public Const MAX_FRIENDS = 20

Abaixo Adicione:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Public Const MAX_BANK = 50
Agora a parte do Cliente ja Esta Pronta agora vamos para a pasta do servidor
Agora crie uma nova pasta e Mude o nome para "Bancos"
Bom agora abra a source do Servidor e procure no modDatabase

procure:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Sub LoadPlayer(ByVal Index As Long, _
Debaixo de:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
FileName = App.Path & "\Contas" & Trim$(Name) & ".ini"
de um Espaço e Coloque:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
FileNameB = App.Path & "\Bancos" & Trim$(Name) & ".ini"

Agora no:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Sub LoadPlayer(ByVal Index As Long, _

Abaixo tem umas linheas e procure:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Dim FileName As String
Abaixo adicione:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Dim FileNameB As String

no mesmo Sub LoadPlayer:

Abaixo de Password de 2 enter e coloque isso:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
For N = 1 To MAX_BANK
        Player(Index).Bank(N).num = Val(GetVar(FileNameB, "DADOS GERAIS", "BankItemNum" & N))
        Player(Index).Bank(N).Value = Val(GetVar(FileNameB, "DADOS GERAIS", "BankItemVal" & N))
        Player(Index).Bank(N).Dur = Val(GetVar(FileNameB, "DADOS GERAIS", "BankItemDur" & N))
    Next
Faz o mesmo em Sub SavePlayer(ByVal Index As Long):

procure por:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Sub SavePlayer(ByVal Index As Long)
Abaixo do Dim FileName coloque isso:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Dim FileNameB As String
Abaixo de Contas adicione abaixo:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
FileNameB = App.Path & "\Bancos" & Trim$(Player(Index).Login) & ".ini"
e Abaixo de Password adicione 2 enter e coloque:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
For N = 1 To MAX_BANK
        Call PutVar(FileNameB, "DADOS GERAIS", "BankItemNum" & N, STR(Player(Index).Bank(N).num))
        Call PutVar(FileNameB, "DADOS GERAIS", "BankItemVal" & N, STR(Player(Index).Bank(N).Value))
        Call PutVar(FileNameB, "DADOS GERAIS", "BankItemDur" & N, STR(Player(Index).Bank(N).Dur))
    Next
Aghora procure:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
' Check for shop
If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Type = TILE_TYPE_SHOP Then
        If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1 > 0 Then
            Call SendTrade(Index, Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1)
        Else
            Call PlayerMsg(Index, "There is no shop here.", BrightRed)
        End If
    End If
Abaixo Adicione:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
' Checar se pisou em um tile de banco
    If Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Type = TILE_TYPE_BANK Then
        Call SendDataTo(Index, "ABRIRBANCO" & END_CHAR)
    End If
Aghora vamos ao Fim do modGameLogic e colocamos isso:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Function FindOpenBankSlot(ByVal Index As Long, ByVal ItemNum As Long) As Long
    Dim i As Long

    ' Check for subscript out of range.
    If ItemNum < 1 Or ItemNum > MAX_ITEMS Then
        Exit Function
    End If

    ' Check for subscript out of range.
    If Not IsPlaying(Index) Then
        Exit Function
    End If

    ' Check to see if they already have the item.
    If Item(ItemNum).Type = ITEM_TYPE_CURRENCY Then
        For i = 1 To MAX_BANK
            If GetPlayerBankItemNum(Index, i) = ItemNum Then
                FindOpenBankSlot = i
                Exit Function
            End If
        Next i
    End If

    ' Try to find an open bank slot.
    For i = 1 To MAX_BANK
        If GetPlayerBankItemNum(Index, i) = 0 Then
            FindOpenBankSlot = i
            Exit Function
        End If
    Next i
End Function

Sub TakeBankItem(ByVal Index As Long, ByVal ItemNum As Long, ByVal ItemVal As Long)
    Dim i As Long, N As Long
    Dim TakeBankItem As Boolean

    TakeBankItem = False

    ' Check for subscript out of range
    If IsPlaying(Index) = False Or ItemNum <= 0 Or ItemNum > MAX_ITEMS Then
        Exit Sub
    End If

    For i = 1 To MAX_BANK
        ' Check to see if the player has the item
        If GetPlayerBankItemNum(Index, i) = ItemNum Then
            If Item(ItemNum).Type = ITEM_TYPE_CURRENCY Then
                ' Is what we are trying to take away more then what they have? If so just set it to zero
                If ItemVal >= GetPlayerBankItemValue(Index, i) Then
                    TakeBankItem = True
                Else
                    Call SetPlayerBankItemValue(Index, i, GetPlayerBankItemValue(Index, i) - ItemVal)
                    Call SendBankUpdate(Index, i)
                End If
            Else
                ' Check to see if its any sort of ArmorSlot/WeaponSlot
                Select Case Item(GetPlayerBankItemNum(Index, i)).Type
                    Case ITEM_TYPE_WEAPON
                        If GetPlayerWeaponSlot(Index) > 0 Then
                            If i = GetPlayerWeaponSlot(Index) Then
                                Call SetPlayerWeaponSlot(Index, 0)
                                Call SendWornEquipment(Index)
                                TakeBankItem = True
                            Else
                                ' Check if the item we are taking isn't already equipped
                                If ItemNum <> GetPlayerBankItemNum(Index, GetPlayerWeaponSlot(Index)) Then
                                    TakeBankItem = True
                                End If
                            End If
                        Else
                            TakeBankItem = True
                        End If

                    Case ITEM_TYPE_ARMOR
                        If GetPlayerArmorSlot(Index) > 0 Then
                            If i = GetPlayerArmorSlot(Index) Then
                                Call SetPlayerArmorSlot(Index, 0)
                                Call SendWornEquipment(Index)
                                TakeBankItem = True
                            Else
                                ' Check if the item we are taking isn't already equipped
                                If ItemNum <> GetPlayerBankItemNum(Index, GetPlayerArmorSlot(Index)) Then
                                    TakeBankItem = True
                                End If
                            End If
                        Else
                            TakeBankItem = True
                        End If

                    Case ITEM_TYPE_HELMET
                        If GetPlayerHelmetSlot(Index) > 0 Then
                            If i = GetPlayerHelmetSlot(Index) Then
                                Call SetPlayerHelmetSlot(Index, 0)
                                Call SendWornEquipment(Index)
                                TakeBankItem = True
                            Else
                                ' Check if the item we are taking isn't already equipped
                                If ItemNum <> GetPlayerBankItemNum(Index, GetPlayerHelmetSlot(Index)) Then
                                    TakeBankItem = True
                                End If
                            End If
                        Else
                            TakeBankItem = True
                        End If

                    Case ITEM_TYPE_SHIELD
                        If GetPlayerShieldSlot(Index) > 0 Then
                            If i = GetPlayerShieldSlot(Index) Then
                                Call SetPlayerShieldSlot(Index, 0)
                                Call SendWornEquipment(Index)
                                TakeBankItem = True
                            Else
                                ' Check if the item we are taking isn't already equipped
                                If ItemNum <> GetPlayerBankItemNum(Index, GetPlayerShieldSlot(Index)) Then
                                    TakeBankItem = True
                                End If
                            End If
                        Else
                            TakeBankItem = True
                        End If
                        
                        
                End Select


                N = Item(GetPlayerBankItemNum(Index, i)).Type
                ' Check if its not an equipable weapon, and if it isn't then take it away
  
              If (N <> ITEM_TYPE_WEAPON) And (N <>
ITEM_TYPE_ARMOR) And (N <> ITEM_TYPE_HELMET) And (N <>
ITEM_TYPE_SHIELD) Then
                    TakeBankItem = True
                End If
            End If

            If TakeBankItem = True Then
                Call SetPlayerBankItemNum(Index, i, 0)
                Call SetPlayerBankItemValue(Index, i, 0)
                Call SetPlayerBankItemDur(Index, i, 0)

                ' Send the Bank update
                Call SendBankUpdate(Index, i)
                Exit Sub
            End If
        End If
    Next i
End Sub

Sub GiveBankItem(ByVal Index As Long, ByVal ItemNum As Long, ByVal ItemVal As Long, ByVal BankSlot As Long)
    Dim i As Long

    ' Check for subscript out of range.
    If ItemNum < 1 Or ItemNum > MAX_ITEMS Then
        Exit Sub
    End If

    ' Check for subscript out of range.
    If Not IsPlaying(Index) Then
        Exit Sub
    End If

    i = BankSlot

    ' Check to see if Bankentory is full
    If i > 0 Then
        Call SetPlayerBankItemNum(Index, i, ItemNum)
        Call SetPlayerBankItemValue(Index, i, GetPlayerBankItemValue(Index, i) + ItemVal)

  
      If (Item(ItemNum).Type = ITEM_TYPE_ARMOR) Or (Item(ItemNum).Type =
 ITEM_TYPE_WEAPON) Or (Item(ItemNum).Type = ITEM_TYPE_HELMET) Or
(Item(ItemNum).Type = ITEM_TYPE_SHIELD) Then
            Call SetPlayerBankItemDur(Index, i, Item(ItemNum).Data1)
        End If
    Else
        Call BancoMsg(Index, "Banco Cheio!")
    End If
End Sub
Bom aghora procure isso:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
' Check if they have the item
            If HasItem(Index, Shop(i).TradeItem(N).Value(z).GiveItem) >= Shop(i).TradeItem(N).Value(z).GiveValue Then
                Call TakeItem(Index, Shop(i).TradeItem(N).Value(z).GiveItem, Shop(i).TradeItem(N).Value(z).GiveValue)
                Call GiveItem(Index, Shop(i).TradeItem(N).Value(z).GetItem, Shop(i).TradeItem(N).Value(z).GetValue)
                Call PlayerMsg(Index, "The trade was successful!", Yellow)
            Else
                Call PlayerMsg(Index, "Trade unsuccessful.", BrightRed)
            End If

            Exit Sub
E abaixo coloque:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Case "depositarbanco"
            Call BankDeposit(Index, Val(Parse(1)), Val(Parse(2)))
            Exit Sub
            
        
         Case "retirarbanco"
             Call bankwithdraw(Index, Val(Parse(1)), Val(Parse(2)))
        Exit Sub
Aghora ao Fim do modServerTCP coloque isso:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Sub SendBank(ByVal Index As Long)
    Dim Packet As String
    Dim i As Integer

    Packet = "playerbanco" & SEP_CHAR
    For i = 1 To MAX_BANK
  
      Packet = Packet & (GetPlayerBankItemNum(Index, i) &
SEP_CHAR & GetPlayerBankItemValue(Index, i) & SEP_CHAR &
GetPlayerBankItemDur(Index, i) & SEP_CHAR)
    Next i
    Packet = Packet & END_CHAR

    Call SendDataTo(Index, Packet)
End Sub

Sub SendBankUpdate(ByVal Index As Long, ByVal BankSlot As Long)
  
  Call SendDataTo(Index, "atualizarbanco" & SEP_CHAR & BankSlot
& SEP_CHAR & GetPlayerBankItemNum(Index, BankSlot) &
SEP_CHAR & GetPlayerBankItemValue(Index, BankSlot) & SEP_CHAR
& GetPlayerBankItemDur(Index, BankSlot) & END_CHAR)
End Sub

Sub BancoMsg(ByVal Index As Long, ByVal Msg As String)
    Dim Packet As String
    Packet = "bancomsgg" & SEP_CHAR & Msg & END_CHAR
    Call SendDataTo(Index, Packet)
End Sub

Public Sub BankDeposit(ByVal Index As Long, ByVal InvNum As Long, ByVal Amount As Long)
    Dim BankSlot As Long
    Dim ItemNum As Long
            ItemNum = GetPlayerInvItemNum(Index, InvNum)
        
            BankSlot = FindOpenBankSlot(Index, ItemNum)
            If BankSlot = 0 Then
                Call BancoMsg(Index, "Banco Cheio")
                Exit Sub
            End If
        
            If Amount > GetPlayerInvItemValue(Index, InvNum) Then
                Call BancoMsg(Index, "Você não tem esté valor para depositar!")
                Exit Sub
            End If
        
  
          If GetPlayerWeaponSlot(Index) = ItemNum Or
GetPlayerArmorSlot(Index) = ItemNum Or GetPlayerShieldSlot(Index) =
ItemNum Or GetPlayerHelmetSlot(Index) = ItemNum Then
                Call BancoMsg(Index, "Você não pode depositar itens equipados!")
                Exit Sub
            End If
        
            If Item(ItemNum).Type = ITEM_TYPE_CURRENCY Then
                If Amount = 0 Then
                    Call BancoMsg(Index, "0(zero) não é um valor válido para deposito!")
                    Exit Sub
                End If
            End If
        
            Call TakeItem(Index, ItemNum, Amount)
            Call GiveBankItem(Index, ItemNum, Amount, BankSlot)
        
            Call SendBank(Index)
            
End Sub
Sub bankwithdraw(ByVal Index As Long, ByVal BankInvNum As Long, ByVal Amount As Long)
    Dim BankItemNum As Long
    Dim BankInvSlot As Long
    BankItemNum = GetPlayerBankItemNum(Index, BankInvNum)
        
            BankInvSlot = FindOpenInvSlot(Index, BankItemNum)
            
            If BankInvSlot = 0 Then
                Call BancoMsg(Index, "Inventário cheio!")
                Exit Sub
            End If
        
            If Amount > GetPlayerBankItemValue(Index, BankInvNum) Then
                Call BancoMsg(Index, "Você não tem esse valor para retirá-lo!")
                Exit Sub
            End If
        
            If Item(BankItemNum).Type = ITEM_TYPE_CURRENCY Then
                If Amount = 0 Then
                    Call BancoMsg(Index, "0(Zero) é um valor inválido para se retirar!")
                    Exit Sub
                End If
            End If
        
            Call TakeBankItem(Index, BankItemNum, Amount)
            Call GiveItem(Index, BankItemNum, Amount)
        
            Call SendBank(Index)
End Sub

Aghora procure por:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Public Const MAX_FRIENDS = 20
De um enter e coloque isso:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Public Const MAX_BANK = 50

Aghora procure:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Public Const TILE_TYPE_NONE = 20

de um enter e coloque:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Public Const TILE_TYPE_BANK = 21

Aghora procure por :

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Type PlayerInvRec
    num As Long
    Value As Long
    Dur As Long
End Type

e de um enter e coloque:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Type BankRec
    num As Long
    Value As Long
    Dur As Long
End Type

procure por:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
' Conta
Abaixo de Password de um enter e adicione isso:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Bank(1 To MAX_BANK) As BankRec
Procure por:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
For N = 1 To MAX_INV
        Player(Index).Char(CharNum).Inv(N).num = 0
        Player(Index).Char(CharNum).Inv(N).Value = 0
        Player(Index).Char(CharNum).Inv(N).Dur = 0
    Next

de um enter i abaixo adicione:

Code: -------------------------------------------------------------Selecionar conteúdo
Código:
For N = 1 To MAX_BANK
            Player(Index).Bank(N).num = 0
            Player(Index).Bank(N).Value = 0
            Player(Index).Bank(N).Dur = 0
        Next
Aghora ao Fim do modTypes adicione:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Function GetPlayerBankItemNum(ByVal Index As Long, ByVal BankSlot As Long) As Long
    GetPlayerBankItemNum = Player(Index).Bank(BankSlot).num
End Function

Sub SetPlayerBankItemNum(ByVal Index As Long, ByVal BankSlot As Long, ByVal ItemNum As Long)
    Player(Index).Bank(BankSlot).num = ItemNum
    Call SendBankUpdate(Index, BankSlot)
End Sub

Function GetPlayerBankItemValue(ByVal Index As Long, ByVal BankSlot As Long) As Long
    GetPlayerBankItemValue = Player(Index).Bank(BankSlot).Value
End Function

Sub SetPlayerBankItemValue(ByVal Index As Long, ByVal BankSlot As Long, ByVal ItemValue As Long)
    Player(Index).Bank(BankSlot).Value = ItemValue
    Call SendBankUpdate(Index, BankSlot)
End Sub

Function GetPlayerBankItemDur(ByVal Index As Long, ByVal BankSlot As Long) As Long
    GetPlayerBankItemDur = Player(Index).Bank(BankSlot).Dur
End Function

Sub SetPlayerBankItemDur(ByVal Index As Long, ByVal BankSlot As Long, ByVal ItemDur As Long)
    Player(Index).Bank(BankSlot).Dur = ItemDur
End Sub
Procure por:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Call SendFriendListToNeeded(GetPlayerName(Index))
de um enter e coloque:
Code: -------------------------------------------------------------Selecionar conteúdo
Código:
Call SendBank(Index)
Ultilitario.
4shared.com /file/BOlt1i9g/frmbanco.html



Última edição por athos100 em Sex 29 Nov 2013, 12:07, editado 1 vez(es)

2Tutorial Re: Sistema de Bank em Sex 29 Nov 2013, 10:58

Felipee


Membro
Membro
sem ofensa athos100.. Mas como foi muito difícil de fazer, se você praticamente copiou esse tutorial da MMORPG?

3Tutorial Re: Sistema de Bank em Sex 29 Nov 2013, 12:11

athos100


Membro
Membro
Dificil o que? na boa Vei Umenos eu posto estes topicos pra ajuda a Galera,e você, ainda n vi nenhum topico seu,sem ofenças mano. Cool

4Tutorial Re: Sistema de Bank em Sex 29 Nov 2013, 17:55

Felipee


Membro
Membro
Eu não posto tópicos de outros foruns.. Se for pra postar um tutorial aqui, que seja um totalmente meu

5Tutorial Re: Sistema de Bank Hoje à(s) 14:15

Conteúdo patrocinado


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