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

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

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

SkyAway

SkyAway
Membro V
Membro V
[size=18pt]Client~Side[/size]

Procure por:

Código:
Public Const ITEM_TYPE_PET = 14

Abaixo adicione:

Código:
Public Const ITEM_TYPE_RING1 = 15
Public Const ITEM_TYPE_RING2 = 16
Public Const ITEM_TYPE_GLOVES = 17
Public Const ITEM_TYPE_LEGS = 18
Public Const ITEM_TYPE_AMULET = 19

Procure por:

Código:
Player worn equipment packet

Mude para:

Código:
' ::::::::::::::::::::::::::::::::::
    ' :: Player worn equipment packet ::
    ' ::::::::::::::::::::::::::::::::::
    If Parse(0) = "playerworneq" Then
        z = Val(Parse(1))
        If z <= 0 Then Exit Sub
     
        Call SetPlayerArmorSlot(z, Val(Parse(2)))
        Call SetPlayerWeaponSlot(z, Val(Parse(3)))
        Call SetPlayerHelmetSlot(z, Val(Parse(4)))
        Call SetPlayerShieldSlot(z, Val(Parse(5)))
        Call SetPlayerRing1Slot(z, Val(Parse(6)))
        Call SetPlayerRing2Slot(z, Val(Parse(7)))
        Call SetPlayerGlovesSlot(z, Val(Parse(8)))
        Call SetPlayerLegsSlot(z, Val(Parse(9)))
        Call SetPlayerAmuletSlot(z, Val(Parse(10)))
     
        If z = MyIndex Then
            Call UpdateVisInv
        End If
        Exit Sub
    End If

Procure por:

Código:
' Worn equipment
    ArmorSlot As Long
    WeaponSlot As Long
    HelmetSlot As Long
    ShieldSlot As Long

Mude tudo para:

Código:
' Worn equipment
    ArmorSlot As Long
    WeaponSlot As Long
    HelmetSlot As Long
    ShieldSlot As Long
    Ring1Slot As Long
    Ring2Slot As Long
    GlovesSlot As Long
    LegsSlot As Long
    AmuletSlot As Long

Procure na ModTypes, SubClearPlayer:

Código:
Player(Index).ArmorSlot = 0
    Player(Index).WeaponSlot = 0
    Player(Index).HelmetSlot = 0
    Player(Index).ShieldSlot = 0

Mude para:

Código:
Player(Index).ArmorSlot = 0
    Player(Index).WeaponSlot = 0
    Player(Index).HelmetSlot = 0
    Player(Index).ShieldSlot = 0
    Player(Index).Ring1Slot = 0
    Player(Index).Ring2Slot = 0
    Player(Index).GlovesSlot = 0
    Player(Index).LegsSlot = 0
    Player(Index).AmuletSlot = 0

No final do ModTypes adicione:

Código:
Function GetPlayerRing1Slot(ByVal Index As Long) As Long
    GetPlayerRing1Slot = Player(Index).Ring1Slot
End Function
 
Sub SetPlayerRing1Slot(ByVal Index As Long, InvNum As Long)
    Player(Index).Ring1Slot = InvNum
End Sub

Function GetPlayerRing2Slot(ByVal Index As Long) As Long
    GetPlayerRing2Slot = Player(Index).Ring2Slot
End Function
 
Sub SetPlayerRing2Slot(ByVal Index As Long, InvNum As Long)
    Player(Index).Ring2Slot = InvNum
End Sub

Function GetPlayerGlovesSlot(ByVal Index As Long) As Long
    GetPlayerGlovesSlot = Player(Index).GlovesSlot
End Function
 
Sub SetPlayerGlovsSlot(ByVal Index As Long, InvNum As Long)
    Player(Index).GlovesSlot = InvNum
End Sub

Function GetPlayerLegsSlot(ByVal Index As Long) As Long
    GetPlayerLegsSlot = Player(Index).LegsSlot
End Function
 
Sub SetPlayerLegsSlot(ByVal Index As Long, InvNum As Long)
    Player(Index).LegsSlot = InvNum
End Sub

Function GetPlayerAmuletSlot(ByVal Index As Long) As Long
    GetPlayerAmuletSlot = Player(Index).AmuletSlot
End Function
 
Sub SetPlayerAmuletSlot(ByVal Index As Long, InvNum As Long)
    Player(Index).AmuletSlot = InvNum
End Sub

Procure por:

Código:
    If (frmItemEditor.cmbType.ListIndex = ITEM_TYPE_PET) Then
        Item(EditorIndex).Data1 = frmItemEditor.scrlPet.Value
        Item(EditorIndex).Data2 = frmItemEditor.scrlPetLevel.Value
        Item(EditorIndex).Data3 = 0
        Item(EditorIndex).StrReq = 0
        Item(EditorIndex).DefReq = 0
        Item(EditorIndex).SpeedReq = 0
        Item(EditorIndex).MagicReq = 0
        Item(EditorIndex).ClassReq = 0
        Item(EditorIndex).AccessReq = 0
     
        Item(EditorIndex).AddHP = 0
        Item(EditorIndex).AddMP = 0
        Item(EditorIndex).AddSP = 0
        Item(EditorIndex).AddStr = 0
        Item(EditorIndex).AddDef = 0
        Item(EditorIndex).AddMagi = 0
        Item(EditorIndex).AddSpeed = 0
        Item(EditorIndex).AddEXP = 0
        Item(EditorIndex).AttackSpeed = 0
End If

Abaixo adicione:

Código:
      If (frmItemEditor.cmbType.ListIndex = ITEM_TYPE_RING1) Then
        Item(EditorIndex).Data2 = frmItemEditor.scrlStrength.Value
        Item(EditorIndex).StrReq = frmItemEditor.scrlStrReq.Value
        Item(EditorIndex).DefReq = frmItemEditor.scrlDefReq.Value
        Item(EditorIndex).SpeedReq = frmItemEditor.scrlSpeedReq.Value
        Item(EditorIndex).MagicReq = frmItemEditor.scrlMagicReq.Value
     
        Item(EditorIndex).ClassReq = frmItemEditor.scrlClassReq.Value
        Item(EditorIndex).AccessReq = frmItemEditor.scrlAccessReq.Value
     
        Item(EditorIndex).AddHP = frmItemEditor.scrlAddHP.Value
        Item(EditorIndex).AddMP = frmItemEditor.scrlAddMP.Value
        Item(EditorIndex).AddSP = frmItemEditor.scrlAddSP.Value
        Item(EditorIndex).AddStr = frmItemEditor.scrlAddStr.Value
        Item(EditorIndex).AddDef = frmItemEditor.scrlAddDef.Value
        Item(EditorIndex).AddMagi = frmItemEditor.scrlAddMagi.Value
        Item(EditorIndex).AddSpeed = frmItemEditor.scrlAddSpeed.Value
        Item(EditorIndex).AddEXP = frmItemEditor.scrlAddEXP.Value
        Item(EditorIndex).AttackSpeed = frmItemEditor.scrlAttackSpeed.Value
    End If

      If (frmItemEditor.cmbType.ListIndex = ITEM_TYPE_RING2) Then
        Item(EditorIndex).Data2 = frmItemEditor.scrlStrength.Value
        Item(EditorIndex).StrReq = frmItemEditor.scrlStrReq.Value
        Item(EditorIndex).DefReq = frmItemEditor.scrlDefReq.Value
        Item(EditorIndex).SpeedReq = frmItemEditor.scrlSpeedReq.Value
        Item(EditorIndex).MagicReq = frmItemEditor.scrlMagicReq.Value
     
        Item(EditorIndex).ClassReq = frmItemEditor.scrlClassReq.Value
        Item(EditorIndex).AccessReq = frmItemEditor.scrlAccessReq.Value
     
        Item(EditorIndex).AddHP = frmItemEditor.scrlAddHP.Value
        Item(EditorIndex).AddMP = frmItemEditor.scrlAddMP.Value
        Item(EditorIndex).AddSP = frmItemEditor.scrlAddSP.Value
        Item(EditorIndex).AddStr = frmItemEditor.scrlAddStr.Value
        Item(EditorIndex).AddDef = frmItemEditor.scrlAddDef.Value
        Item(EditorIndex).AddMagi = frmItemEditor.scrlAddMagi.Value
        Item(EditorIndex).AddSpeed = frmItemEditor.scrlAddSpeed.Value
        Item(EditorIndex).AddEXP = frmItemEditor.scrlAddEXP.Value
        Item(EditorIndex).AttackSpeed = frmItemEditor.scrlAttackSpeed.Value
    End If

      If (frmItemEditor.cmbType.ListIndex = ITEM_TYPE_GLOVES) Then
        Item(EditorIndex).Data2 = frmItemEditor.scrlStrength.Value
        Item(EditorIndex).StrReq = frmItemEditor.scrlStrReq.Value
        Item(EditorIndex).DefReq = frmItemEditor.scrlDefReq.Value
        Item(EditorIndex).SpeedReq = frmItemEditor.scrlSpeedReq.Value
        Item(EditorIndex).MagicReq = frmItemEditor.scrlMagicReq.Value
     
        Item(EditorIndex).ClassReq = frmItemEditor.scrlClassReq.Value
        Item(EditorIndex).AccessReq = frmItemEditor.scrlAccessReq.Value
     
        Item(EditorIndex).AddHP = frmItemEditor.scrlAddHP.Value
        Item(EditorIndex).AddMP = frmItemEditor.scrlAddMP.Value
        Item(EditorIndex).AddSP = frmItemEditor.scrlAddSP.Value
        Item(EditorIndex).AddStr = frmItemEditor.scrlAddStr.Value
        Item(EditorIndex).AddDef = frmItemEditor.scrlAddDef.Value
        Item(EditorIndex).AddMagi = frmItemEditor.scrlAddMagi.Value
        Item(EditorIndex).AddSpeed = frmItemEditor.scrlAddSpeed.Value
        Item(EditorIndex).AddEXP = frmItemEditor.scrlAddEXP.Value
        Item(EditorIndex).AttackSpeed = frmItemEditor.scrlAttackSpeed.Value
    End If

      If (frmItemEditor.cmbType.ListIndex = ITEM_TYPE_LEGS) Then
        Item(EditorIndex).Data2 = frmItemEditor.scrlStrength.Value
        Item(EditorIndex).StrReq = frmItemEditor.scrlStrReq.Value
        Item(EditorIndex).DefReq = frmItemEditor.scrlDefReq.Value
        Item(EditorIndex).SpeedReq = frmItemEditor.scrlSpeedReq.Value
        Item(EditorIndex).MagicReq = frmItemEditor.scrlMagicReq.Value
     
        Item(EditorIndex).ClassReq = frmItemEditor.scrlClassReq.Value
        Item(EditorIndex).AccessReq = frmItemEditor.scrlAccessReq.Value
     
        Item(EditorIndex).AddHP = frmItemEditor.scrlAddHP.Value
        Item(EditorIndex).AddMP = frmItemEditor.scrlAddMP.Value
        Item(EditorIndex).AddSP = frmItemEditor.scrlAddSP.Value
        Item(EditorIndex).AddStr = frmItemEditor.scrlAddStr.Value
        Item(EditorIndex).AddDef = frmItemEditor.scrlAddDef.Value
        Item(EditorIndex).AddMagi = frmItemEditor.scrlAddMagi.Value
        Item(EditorIndex).AddSpeed = frmItemEditor.scrlAddSpeed.Value
        Item(EditorIndex).AddEXP = frmItemEditor.scrlAddEXP.Value
        Item(EditorIndex).AttackSpeed = frmItemEditor.scrlAttackSpeed.Value
    End If

      If (frmItemEditor.cmbType.ListIndex = ITEM_TYPE_AMULET) Then
        Item(EditorIndex).Data2 = frmItemEditor.scrlStrength.Value
        Item(EditorIndex).StrReq = frmItemEditor.scrlStrReq.Value
        Item(EditorIndex).DefReq = frmItemEditor.scrlDefReq.Value
        Item(EditorIndex).SpeedReq = frmItemEditor.scrlSpeedReq.Value
        Item(EditorIndex).MagicReq = frmItemEditor.scrlMagicReq.Value
     
        Item(EditorIndex).ClassReq = frmItemEditor.scrlClassReq.Value
        Item(EditorIndex).AccessReq = frmItemEditor.scrlAccessReq.Value
     
        Item(EditorIndex).AddHP = frmItemEditor.scrlAddHP.Value
        Item(EditorIndex).AddMP = frmItemEditor.scrlAddMP.Value
        Item(EditorIndex).AddSP = frmItemEditor.scrlAddSP.Value
        Item(EditorIndex).AddStr = frmItemEditor.scrlAddStr.Value
        Item(EditorIndex).AddDef = frmItemEditor.scrlAddDef.Value
        Item(EditorIndex).AddMagi = frmItemEditor.scrlAddMagi.Value
        Item(EditorIndex).AddSpeed = frmItemEditor.scrlAddSpeed.Value
        Item(EditorIndex).AddEXP = frmItemEditor.scrlAddEXP.Value
        Item(EditorIndex).AttackSpeed = frmItemEditor.scrlAttackSpeed.Value
    End If

Procure por:

Código:
Public Sub UpdateTradeInventory()

Mude para:

Código:
Public Sub UpdateTradeInventory()
Dim I As Long

    frmPlayerTrade.PlayerInv1.Clear
 
For I = 1 To MAX_INV
    If GetPlayerInvItemNum(MyIndex, I) > 0 And GetPlayerInvItemNum(MyIndex, I) <= MAX_ITEMS Then
        If Item(GetPlayerInvItemNum(MyIndex, I)).Type = ITEM_TYPE_CURRENCY Then
            frmPlayerTrade.PlayerInv1.AddItem I & ": " & Trim(Item(GetPlayerInvItemNum(MyIndex, I)).Name) & " (" & GetPlayerInvItemValue(MyIndex, I) & ")"
        Else
            If GetPlayerWeaponSlot(MyIndex) = I Or GetPlayerArmorSlot(MyIndex) = I Or GetPlayerHelmetSlot(MyIndex) = I Or GetPlayerShieldSlot(MyIndex) = I Or GetPlayerRing1Slot(MyIndex) = I Or GetPlayerRing2Slot(MyIndex) = I Or GetPlayerGlovesSlot(MyIndex) = I Or GetPlayerLegsSlot(MyIndex) = I Or GetPlayerAmuletSlot(MyIndex) = I Then
                frmPlayerTrade.PlayerInv1.AddItem I & ": " & Trim(Item(GetPlayerInvItemNum(MyIndex, I)).Name) & " (equipado)"
            Else
                frmPlayerTrade.PlayerInv1.AddItem I & ": " & Trim(Item(GetPlayerInvItemNum(MyIndex, I)).Name)
            End If
        End If
    Else
        frmPlayerTrade.PlayerInv1.AddItem "<Nada>"
    End If
Next I
 
    frmPlayerTrade.PlayerInv1.ListIndex = 0
End Sub

Procure por:

Código:
Public Sub UpdateVisInv()
Dim Index As Long
Dim d As Long
 
    For Index = 1 To MAX_INV
        If GetPlayerShieldSlot(MyIndex) <> Index Then frmMirage.ShieldImage.Picture = LoadPicture()
        If GetPlayerWeaponSlot(MyIndex) <> Index Then frmMirage.WeaponImage.Picture = LoadPicture()
        If GetPlayerHelmetSlot(MyIndex) <> Index Then frmMirage.HelmetImage.Picture = LoadPicture()
        If GetPlayerArmorSlot(MyIndex) <> Index Then frmMirage.ArmorImage.Picture = LoadPicture()
    Next Index
 
    For Index = 1 To MAX_INV
        If GetPlayerShieldSlot(MyIndex) = Index Then Call BitBlt(frmMirage.ShieldImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerWeaponSlot(MyIndex) = Index Then Call BitBlt(frmMirage.WeaponImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerHelmetSlot(MyIndex) = Index Then Call BitBlt(frmMirage.HelmetImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerArmorSlot(MyIndex) = Index Then Call BitBlt(frmMirage.ArmorImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
   
    Next Index
     
    frmMirage.EquipS(0).Visible = False
    frmMirage.EquipS(1).Visible = False
    frmMirage.EquipS(2).Visible = False
    frmMirage.EquipS(3).Visible = False
    For d = 0 To MAX_INV - 1
        If Player(MyIndex).Inv(d + 1).Num > 0 Then
            If Item(GetPlayerInvItemNum(MyIndex, d + 1)).Type <> ITEM_TYPE_CURRENCY Then
                'frmMirage.descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (" & GetPlayerInvItemValue(MyIndex, d + 1) & ")"
            'Else
                If GetPlayerWeaponSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(0).Visible = True
                    frmMirage.EquipS(0).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(0).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerArmorSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(1).Visible = True
                    frmMirage.EquipS(1).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(1).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerHelmetSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(2).Visible = True
                    frmMirage.EquipS(2).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(2).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerShieldSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(3).Visible = True
                    frmMirage.EquipS(3).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(3).Left = frmMirage.picInv(d).Left - 2
                Else
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name)
                End If
            End If
        End If
    Next d
End Sub

Mude para:

Código:
Public Sub UpdateVisInv()
Dim Index As Long
Dim d As Long
 
    For Index = 1 To MAX_INV
        If GetPlayerShieldSlot(MyIndex) <> Index Then frmMirage.ShieldImage.Picture = LoadPicture()
        If GetPlayerWeaponSlot(MyIndex) <> Index Then frmMirage.WeaponImage.Picture = LoadPicture()
        If GetPlayerHelmetSlot(MyIndex) <> Index Then frmMirage.HelmetImage.Picture = LoadPicture()
        If GetPlayerArmorSlot(MyIndex) <> Index Then frmMirage.ArmorImage.Picture = LoadPicture()
        If GetPlayerRing1Slot(MyIndex) <> Index Then frmMirage.Ring1Image.Picture = LoadPicture()
        If GetPlayerRing2Slot(MyIndex) <> Index Then frmMirage.Ring2Image.Picture = LoadPicture()
        If GetPlayerGlovesSlot(MyIndex) <> Index Then frmMirage.GlovesImage.Picture = LoadPicture()
        If GetPlayerLegsSlot(MyIndex) <> Index Then frmMirage.LegsImage.Picture = LoadPicture()
        If GetPlayerAmuletSlot(MyIndex) <> Index Then frmMirage.AmuletImage.Picture = LoadPicture()
    Next Index
 
    For Index = 1 To MAX_INV
        If GetPlayerShieldSlot(MyIndex) = Index Then Call BitBlt(frmMirage.ShieldImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerWeaponSlot(MyIndex) = Index Then Call BitBlt(frmMirage.WeaponImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerHelmetSlot(MyIndex) = Index Then Call BitBlt(frmMirage.HelmetImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerArmorSlot(MyIndex) = Index Then Call BitBlt(frmMirage.ArmorImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerRing1Slot(MyIndex) = Index Then Call BitBlt(frmMirage.Ring1Image.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerRing2Slot(MyIndex) = Index Then Call BitBlt(frmMirage.Ring2Image.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerGlovesSlot(MyIndex) = Index Then Call BitBlt(frmMirage.GlovesImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerLegsSlot(MyIndex) = Index Then Call BitBlt(frmMirage.LegsImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
        If GetPlayerAmuletSlot(MyIndex) = Index Then Call BitBlt(frmMirage.AmuletImage.hDC, 0, 0, PIC_X, PIC_Y, frmMirage.picItems.hDC, (Item(GetPlayerInvItemNum(MyIndex, Index)).Pic - Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * 6) * PIC_X, Int(Item(GetPlayerInvItemNum(MyIndex, Index)).Pic / 6) * PIC_Y, SRCCOPY)
    Next Index
     
    frmMirage.EquipS(0).Visible = False
    frmMirage.EquipS(1).Visible = False
    frmMirage.EquipS(2).Visible = False
    frmMirage.EquipS(3).Visible = False
    frmMirage.EquipS(4).Visible = False
    frmMirage.EquipS(5).Visible = False
    frmMirage.EquipS(6).Visible = False
    frmMirage.EquipS(7).Visible = False
    frmMirage.EquipS(8).Visible = False
 
    For d = 0 To MAX_INV - 1
        If Player(MyIndex).Inv(d + 1).Num > 0 Then
            If Item(GetPlayerInvItemNum(MyIndex, d + 1)).Type <> ITEM_TYPE_CURRENCY Then
                'frmMirage.descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (" & GetPlayerInvItemValue(MyIndex, d + 1) & ")"
            'Else
                If GetPlayerWeaponSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(0).Visible = True
                    frmMirage.EquipS(0).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(0).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerArmorSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(1).Visible = True
                    frmMirage.EquipS(1).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(1).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerHelmetSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(2).Visible = True
                    frmMirage.EquipS(2).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(2).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerShieldSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(3).Visible = True
                    frmMirage.EquipS(3).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(3).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerRing1Slot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(4).Visible = True
                    frmMirage.EquipS(4).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(4).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerRing2Slot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(5).Visible = True
                    frmMirage.EquipS(5).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(5).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerGlovesSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(6).Visible = True
                    frmMirage.EquipS(6).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(6).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerLegsSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(7).Visible = True
                    frmMirage.EquipS(7).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(7).Left = frmMirage.picInv(d).Left - 2
                ElseIf GetPlayerAmuletSlot(MyIndex) = d + 1 Then
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                    frmMirage.EquipS(8).Visible = True
                    frmMirage.EquipS(8).Top = frmMirage.picInv(d).Top - 2
                    frmMirage.EquipS(8).Left = frmMirage.picInv(d).Left - 2
                    'frmMirage.picInv(d).ToolTipText = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name)
                End If
            End If
        End If
    Next d
End Sub

Na HandleData procure por:

Código:
If GetPlayerHelmetSlot(MyIndex) > 0 Then
            SubStr = SubStr + Item(GetPlayerInvItemNum(MyIndex, GetPlayerHelmetSlot(MyIndex))).AddStr
            SubDef = SubDef + Item(GetPlayerInvItemNum(MyIndex, GetPlayerHelmetSlot(MyIndex))).AddDef
            SubMagi = SubMagi + Item(GetPlayerInvItemNum(MyIndex, GetPlayerHelmetSlot(MyIndex))).AddMagi
            SubSpeed = SubSpeed + Item(GetPlayerInvItemNum(MyIndex, GetPlayerHelmetSlot(MyIndex))).AddSpeed
        End If

Abaixo adicione:

Código:
  If GetPlayerRing1Slot(MyIndex) > 0 Then
            SubStr = SubStr + Item(GetPlayerInvItemNum(MyIndex, GetPlayerRing1Slot(MyIndex))).AddStr
            SubDef = SubDef + Item(GetPlayerInvItemNum(MyIndex, GetPlayerRing1Slot(MyIndex))).AddDef
            SubMagi = SubMagi + Item(GetPlayerInvItemNum(MyIndex, GetPlayerRing1Slot(MyIndex))).AddMagi
            SubSpeed = SubSpeed + Item(GetPlayerInvItemNum(MyIndex, GetPlayerRing1Slot(MyIndex))).AddSpeed
        End If
        If GetPlayerRing2Slot(MyIndex) > 0 Then
            SubStr = SubStr + Item(GetPlayerInvItemNum(MyIndex, GetPlayerRing2Slot(MyIndex))).AddStr
            SubDef = SubDef + Item(GetPlayerInvItemNum(MyIndex, GetPlayerRing2Slot(MyIndex))).AddDef
            SubMagi = SubMagi + Item(GetPlayerInvItemNum(MyIndex, GetPlayerRing2Slot(MyIndex))).AddMagi
            SubSpeed = SubSpeed + Item(GetPlayerInvItemNum(MyIndex, GetPlayerRing2Slot(MyIndex))).AddSpeed
        End If
        If GetPlayerGlovesSlot(MyIndex) > 0 Then
            SubStr = SubStr + Item(GetPlayerInvItemNum(MyIndex, GetPlayerGlovesSlot(MyIndex))).AddStr
            SubDef = SubDef + Item(GetPlayerInvItemNum(MyIndex, GetPlayerGlovesSlot(MyIndex))).AddDef
            SubMagi = SubMagi + Item(GetPlayerInvItemNum(MyIndex, GetPlayerGlovesSlot(MyIndex))).AddMagi
            SubSpeed = SubSpeed + Item(GetPlayerInvItemNum(MyIndex, GetPlayerGlovesSlot(MyIndex))).AddSpeed
        End If
        If GetPlayerLegsSlot(MyIndex) > 0 Then
            SubStr = SubStr + Item(GetPlayerInvItemNum(MyIndex, GetPlayerLegsSlot(MyIndex))).AddStr
            SubDef = SubDef + Item(GetPlayerInvItemNum(MyIndex, GetPlayerLegsSlot(MyIndex))).AddDef
            SubMagi = SubMagi + Item(GetPlayerInvItemNum(MyIndex, GetPlayerLegsSlot(MyIndex))).AddMagi
            SubSpeed = SubSpeed + Item(GetPlayerInvItemNum(MyIndex, GetPlayerLegsSlot(MyIndex))).AddSpeed
        End If
        If GetPlayerAmuletSlot(MyIndex) > 0 Then
            SubStr = SubStr + Item(GetPlayerInvItemNum(MyIndex, GetPlayerAmuletSlot(MyIndex))).AddStr
            SubDef = SubDef + Item(GetPlayerInvItemNum(MyIndex, GetPlayerAmuletSlot(MyIndex))).AddDef
            SubMagi = SubMagi + Item(GetPlayerInvItemNum(MyIndex, GetPlayerAmuletSlot(MyIndex))).AddMagi
            SubSpeed = SubSpeed + Item(GetPlayerInvItemNum(MyIndex, GetPlayerAmuletSlot(MyIndex))).AddSpeed
        End If

Subistitua a Sub cmbType por:

Código:
Private Sub cmbType_Click()
    If (cmbType.ListIndex >= ITEM_TYPE_WEAPON) And (cmbType.ListIndex <= ITEM_TYPE_SHIELD) Or (cmbType.ListIndex <= ITEM_TYPE_RING1) Or (cmbType.ListIndex <= ITEM_TYPE_RING2) Or (cmbType.ListIndex <= ITEM_TYPE_GLOVES) Or (cmbType.ListIndex <= ITEM_TYPE_LEGS) Or (cmbType.ListIndex <= ITEM_TYPE_AMULET) Then
        If cmbType.ListIndex = ITEM_TYPE_WEAPON Then
            Label3.Caption = "Dano:"
        Else
            Label3.Caption = "Defesa:"
        End If
        fraEquipment.Visible = True
        fraPet.Visible = False
        fraAttributes.Visible = True
        fraBow.Visible = True
    Else
        fraEquipment.Visible = False
        fraAttributes.Visible = False
        fraBow.Visible = False
    End If
     
    If (cmbType.ListIndex >= ITEM_TYPE_POTIONADDHP) And (cmbType.ListIndex <= ITEM_TYPE_POTIONSUBSP) Then
        fraVitals.Visible = True
        fraPet.Visible = False
        fraAttributes.Visible = False
        fraEquipment.Visible = False
        fraBow.Visible = False
    Else
        fraVitals.Visible = False
    End If
 
    If (cmbType.ListIndex = ITEM_TYPE_SPELL) Then
        fraSpell.Visible = True
        fraPet.Visible = False
        fraAttributes.Visible = False
        fraEquipment.Visible = False
        fraBow.Visible = False
    Else
        fraSpell.Visible = False
    End If
 
    If (cmbType.ListIndex = ITEM_TYPE_PET) Then
        fraSpell.Visible = False
        fraPet.Visible = True
        fraAttributes.Visible = False
        fraEquipment.Visible = False
        fraBow.Visible = False
    Else
        fraPet.Visible = False
    End If
End Sub





Subistitua a Sub cmdUpdate_Click() por:

Código:
Private Sub cmdUpdate_Click()
Dim Index As Long, I As Long, ItemNum As Long
 
    Index = lstTradeItem(SSTab1.Tab).ListIndex + 1
    I = SSTab1.Tab + 1
    ItemNum = cmbItemGet.ListIndex
 
    If ItemNum > 0 Then
        If I = 1 Then
            If Item(ItemNum).Type = ITEM_TYPE_WEAPON Then
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SHIELD Then
                MsgBox "Please click the tab that says shield to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_ARMOR Then
                MsgBox "Please click the tab that says armor to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_HELMET Then
                MsgBox "Please click the tab that says helmet to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SPELL Then
                MsgBox "Please click the tab that says spell to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_RING1 Then
                MsgBox "Please click the tab that says ring1 to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_RING2 Then
                MsgBox "Please click the tab that says ring2 to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_GLOVES Then
                MsgBox "Please click the tab that says gloves to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_LEGS Then
                MsgBox "Please click the tab that says legs to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_AMULET Then
                MsgBox "Please click the tab that says amulet to add this!"
                Exit Sub
            Else
                MsgBox "Please click the tab that says other to add this!"
                Exit Sub
            End If
        ElseIf I = 2 Then
            If Item(ItemNum).Type = ITEM_TYPE_WEAPON Then
                MsgBox "Please click the tab that says weapon to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SHIELD Then
            ElseIf Item(ItemNum).Type = ITEM_TYPE_ARMOR Then
                MsgBox "Please click the tab that says armor to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_HELMET Then
                MsgBox "Please click the tab that says helmet to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SPELL Then
                MsgBox "Please click the tab that says spell to add this!"
                Exit Sub
            Else
                MsgBox "Please click the tab that says other to add this!"
                Exit Sub
            End If
        ElseIf I = 3 Then
            If Item(ItemNum).Type = ITEM_TYPE_WEAPON Then
                MsgBox "Please click the tab that says weapon to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SHIELD Then
                MsgBox "Please click the tab that says shield to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_ARMOR Then
            ElseIf Item(ItemNum).Type = ITEM_TYPE_HELMET Then
                MsgBox "Please click the tab that says helmet to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SPELL Then
                MsgBox "Please click the tab that says spell to add this!"
                Exit Sub
            Else
                MsgBox "Please click the tab that says other to add this!"
                Exit Sub
            End If
        ElseIf I = 4 Then
            If Item(ItemNum).Type = ITEM_TYPE_WEAPON Then
                MsgBox "Please click the tab that says weapon to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SHIELD Then
                MsgBox "Please click the tab that says shield to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_ARMOR Then
                MsgBox "Please click the tab that says armor to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_HELMET Then
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SPELL Then
                MsgBox "Please click the tab that says spell to add this!"
                Exit Sub
            Else
                MsgBox "Please click the tab that says other to add this!"
                Exit Sub
            End If
        ElseIf I = 5 Then
            If Item(ItemNum).Type = ITEM_TYPE_WEAPON Then
                MsgBox "Please click the tab that says weapon to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SHIELD Then
                MsgBox "Please click the tab that says shield to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_ARMOR Then
                MsgBox "Please click the tab that says armor to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_HELMET Then
                MsgBox "Please click the tab that says helmet to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SPELL Then
            Else
                MsgBox "Please click the tab that says other to add this!"
                Exit Sub
            End If
        ElseIf I = 6 Then
            If Item(ItemNum).Type = ITEM_TYPE_WEAPON Then
                MsgBox "Please click the tab that says weapon to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SHIELD Then
                MsgBox "Please click the tab that says shield to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_ARMOR Then
                MsgBox "Please click the tab that says armor to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_HELMET Then
                MsgBox "Please click the tab that says helmet to add this!"
                Exit Sub
            ElseIf Item(ItemNum).Type = ITEM_TYPE_SPELL Then
                MsgBox "Please click the tab that says spell to add this!"
                Exit Sub
            Else
            End If
        End If
    End If
 
    Shop(EditorIndex).TradeItem(SSTab1.Tab + 1).Value(Index).GiveItem = cmbItemGive.ListIndex
    Shop(EditorIndex).TradeItem(SSTab1.Tab + 1).Value(Index).GiveValue = Val(txtItemGiveValue.Text)
    Shop(EditorIndex).TradeItem(SSTab1.Tab + 1).Value(Index).GetItem = cmbItemGet.ListIndex
    Shop(EditorIndex).TradeItem(SSTab1.Tab + 1).Value(Index).GetValue = Val(txtItemGetValue.Text)

    Call UpdateShopTrade
End Sub

Na sub Private Sub picInv_MouseMove mude para:

Código:
Private Sub picInv_MouseMove(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
Dim d As Long
d = Index

    If Player(MyIndex).Inv(d + 1).Num > 0 Then
        If Item(GetPlayerInvItemNum(MyIndex, d + 1)).Type = ITEM_TYPE_CURRENCY Then
            descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (" & GetPlayerInvItemValue(MyIndex, d + 1) & ")"
        Else
            If GetPlayerWeaponSlot(MyIndex) = d + 1 Then
                descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (equipado)"
            ElseIf GetPlayerArmorSlot(MyIndex) = d + 1 Then
                descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (equipado)"
            ElseIf GetPlayerHelmetSlot(MyIndex) = d + 1 Then
                descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (equipado)"
            ElseIf GetPlayerShieldSlot(MyIndex) = d + 1 Then
                descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (equipado)"
            ElseIf GetPlayerRing1Slot(MyIndex) = d + 1 Then
                descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (equipado)"
            ElseIf GetPlayerRing2Slot(MyIndex) = d + 1 Then
                descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (equipado)"
            ElseIf GetPlayerGlovesSlot(MyIndex) = d + 1 Then
                descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (equipado)"
            ElseIf GetPlayerLegsSlot(MyIndex) = d + 1 Then
                descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (equipado)"
            ElseIf GetPlayerAmuletSlot(MyIndex) = d + 1 Then
                descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (equipado)"
            Else
                descName.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name)
            End If
        End If
        descStr.Caption = Item(GetPlayerInvItemNum(MyIndex, d + 1)).StrReq & " Força"
        descDef.Caption = Item(GetPlayerInvItemNum(MyIndex, d + 1)).DefReq & " Defesa"
        descSpeed.Caption = Item(GetPlayerInvItemNum(MyIndex, d + 1)).SpeedReq & " Agilidade"
        descMagic.Caption = Item(GetPlayerInvItemNum(MyIndex, d + 1)).MagicReq & " Inteligência"
        descHpMp.Caption = "HP: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddHP & " MP: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddMP & " SP: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddSP
        descSD.Caption = "For: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddStr & " Def: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddDef
        descMS.Caption = "Int: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddMagi & " Agi: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddSpeed
        desc.Caption = Trim(Item(GetPlayerInvItemNum(MyIndex, d + 1)).desc)
     
        itmDesc.Visible = True
        Call itmDesc.ZOrder(0)
    Else
        itmDesc.Visible = False
    End If
End Sub

Na frmItemEditor, no cmbTypes vá na propriedades e procure por List e adicione Ring1

[size=18pt]Server~Side[/size]

Procure por:

Código:
' Equipamentos
        Player(Index).Char(i).ArmorSlot = Val(GetVar(FileName, "CHAR" & i, "ArmorSlot"))
        Player(Index).Char(i).WeaponSlot = Val(GetVar(FileName, "CHAR" & i, "WeaponSlot"))
        Player(Index).Char(i).HelmetSlot = Val(GetVar(FileName, "CHAR" & i, "HelmetSlot"))
        Player(Index).Char(i).ShieldSlot = Val(GetVar(FileName, "CHAR" & i, "ShieldSlot"))

Mude tudo para:

Código:
' Equipamentos
        Player(Index).Char(i).ArmorSlot = Val(GetVar(FileName, "CHAR" & i, "ArmorSlot"))
        Player(Index).Char(i).WeaponSlot = Val(GetVar(FileName, "CHAR" & i, "WeaponSlot"))
        Player(Index).Char(i).HelmetSlot = Val(GetVar(FileName, "CHAR" & i, "HelmetSlot"))
        Player(Index).Char(i).ShieldSlot = Val(GetVar(FileName, "CHAR" & i, "ShieldSlot"))
        Player(Index).Char(i).Ring1Slot = Val(GetVar(FileName, "CHAR" & i, "Ring1Slot"))
        Player(Index).Char(i).Ring2Slot = Val(GetVar(FileName, "CHAR" & i, "Ring2Slot"))
        Player(Index).Char(i).GlovesSlot = Val(GetVar(FileName, "CHAR" & i, "GlovesSlot"))
        Player(Index).Char(i).LegsSlot = Val(GetVar(FileName, "CHAR" & i, "LegsSlot"))
        Player(Index).Char(i).AmuletSlot = Val(GetVar(FileName, "CHAR" & i, "AmuletSlot"))

Procure por:

Código:
' Equipamentos
Call PutVar(FileName, "CHAR" & i, "ArmorSlot", STR(Player(Index).Char(i).ArmorSlot))
Call PutVar(FileName, "CHAR" & i, "WeaponSlot", STR(Player(Index).Char(i).WeaponSlot))
Call PutVar(FileName, "CHAR" & i, "HelmetSlot", STR(Player(Index).Char(i).HelmetSlot))
Call PutVar(FileName, "CHAR" & i, "ShieldSlot", STR(Player(Index).Char(i).ShieldSlot))

Mude para:

Código:
' Equipamentos
        Call PutVar(FileName, "CHAR" & i, "ArmorSlot", STR(Player(Index).Char(i).ArmorSlot))
        Call PutVar(FileName, "CHAR" & i, "WeaponSlot", STR(Player(Index).Char(i).WeaponSlot))
        Call PutVar(FileName, "CHAR" & i, "HelmetSlot", STR(Player(Index).Char(i).HelmetSlot))
        Call PutVar(FileName, "CHAR" & i, "ShieldSlot", STR(Player(Index).Char(i).ShieldSlot))
        Call PutVar(FileName, "CHAR" & i, "Ring1Slot", STR(Player(Index).Char(i).Ring1Slot))
        Call PutVar(FileName, "CHAR" & i, "Ring1Slot", STR(Player(Index).Char(i).Ring2Slot))
        Call PutVar(FileName, "CHAR" & i, "GlovesSlot", STR(Player(Index).Char(i).GlovesSlot))
        Call PutVar(FileName, "CHAR" & i, "LegsSlot", STR(Player(Index).Char(i).LegsSlot))
        Call PutVar(FileName, "CHAR" & i, "AmuletSlot", STR(Player(Index).Char(i).AmuletSlot))

Procure por:

Código:
' Constantes de itens
Public Const ITEM_TYPE_NONE = 0
Public Const ITEM_TYPE_WEAPON = 1
Public Const ITEM_TYPE_ARMOR = 2
Public Const ITEM_TYPE_HELMET = 3
Public Const ITEM_TYPE_SHIELD = 4
Public Const ITEM_TYPE_POTIONADDHP = 5
Public Const ITEM_TYPE_POTIONADDMP = 6
Public Const ITEM_TYPE_POTIONADDSP = 7
Public Const ITEM_TYPE_POTIONSUBHP = 8
Public Const ITEM_TYPE_POTIONSUBMP = 9
Public Const ITEM_TYPE_POTIONSUBSP = 10
Public Const ITEM_TYPE_KEY = 11
Public Const ITEM_TYPE_CURRENCY = 12
Public Const ITEM_TYPE_SPELL = 13
Public Const ITEM_TYPE_PET = 14

Abaixo adicione:

Código:
Public Const ITEM_TYPE_RING1 = 15
Public Const ITEM_TYPE_RING2 = 16
Public Const ITEM_TYPE_GLOVES = 17
Public Const ITEM_TYPE_LEGS = 18
Public Const ITEM_TYPE_AMULET = 19

Procure por:

Código:
' Equipamento
    ArmorSlot As Long
    WeaponSlot As Long
    HelmetSlot As Long
    ShieldSlot As Long

Mude para:

Código:
    ' Equipamento
        ArmorSlot As Long
        WeaponSlot As Long
        HelmetSlot As Long
        ShieldSlot As Long
        Ring1Slot As Long
        Ring2Slot As Long
        GlovesSlot As Long
        LegsSlot As Long
        AmuletSlot As Long

Na subClearChar procure por:

Código:
Player(Index).Char(CharNum).ShieldSlot = 0

Abaixo adicione:

Código:
Player(Index).Char(CharNum).Ring1Slot = 0
    Player(Index).Char(CharNum).Ring2Slot = 0
    Player(Index).Char(CharNum).GlovesSlot = 0
    Player(Index).Char(CharNum).LegsSlot = 0
    Player(Index).Char(CharNum).AmuletSlot = 0

Na mesma sub procure por:

Player(Index).Char(i).ShieldSlot = 0

Código:
Player(Index).Char(i).Ring1Slot = 0
        Player(Index).Char(i).Ring2Slot = 0
        Player(Index).Char(i).GlovesSlot = 0
        Player(Index).Char(i).LegsSlot = 0
        Player(Index).Char(i).AmuletSlot = 0

Procure por:

Código:
Function GetPlayerArmorSlot(ByVal Index As Long) As Long
    GetPlayerArmorSlot = Player(Index).Char(Player(Index).CharNum).ArmorSlot
End Function

Abaixo adicione:

Código:
Function GetPlayerRing1Slot(ByVal Index As Long) As Long
    GetPlayerRing1Slot = Player(Index).Char(Player(Index).CharNum).Ring1Slot
End Function

Function GetPlayerRing2Slot(ByVal Index As Long) As Long
    GetPlayerRing2Slot = Player(Index).Char(Player(Index).CharNum).Ring2Slot
End Function

Function GetPlayerGlovesSlot(ByVal Index As Long) As Long
    GetPlayerGlovesSlot = Player(Index).Char(Player(Index).CharNum).GlovesSlot
End Function

Function GetPlayerLegsSlot(ByVal Index As Long) As Long
    GetPlayerLegsSlot = Player(Index).Char(Player(Index).CharNum).LegsSlot
End Function

Function GetPlayerAmuletSlot(ByVal Index As Long) As Long
    GetPlayerAmuletSlot = Player(Index).Char(Player(Index).CharNum).AmuletSlot
End Function

Procure por:

Código:
Function GetPlayerDEF

Mude tudo para:

Código:
Function GetPlayerDEF(ByVal Index As Long) As Long
Dim add As Long

add = 0

If GetPlayerWeaponSlot(Index) > 0 Then
add = Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).AddDef
End If

If GetPlayerArmorSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerArmorSlot(Index))).AddDef
End If

If GetPlayerShieldSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerShieldSlot(Index))).AddDef
End If

If GetPlayerHelmetSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerHelmetSlot(Index))).AddDef
End If

If GetPlayerRing1Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing1Slot(Index))).AddDef
End If

If GetPlayerRing2Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing2Slot(Index))).AddDef
End If

If GetPlayerGlovesSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerGlovesSlot(Index))).AddDef
End If

If GetPlayerLegsSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerLegsSlot(Index))).AddDef
End If

If GetPlayerAmuletSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerAmuletSlot(Index))).AddDef
End If

GetPlayerDEF = Player(Index).Char(Player(Index).CharNum).DEF + add
End Function


Continua .......

SkyAway

SkyAway
Membro V
Membro V
[...] Continuação



Procure por:

Código:
Function GetPlayerMAGI

Mude tudo para:

Código:
Function GetPlayerMAGI(ByVal Index As Long) As Long
Dim add As Long

add = 0

If GetPlayerWeaponSlot(Index) > 0 Then
add = Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).AddMagi
End If

If GetPlayerArmorSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerArmorSlot(Index))).AddMagi
End If

If GetPlayerShieldSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerShieldSlot(Index))).AddMagi
End If

If GetPlayerHelmetSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerHelmetSlot(Index))).AddMagi
End If

If GetPlayerRing1Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing1Slot(Index))).AddMagi
End If

If GetPlayerRing2Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing2Slot(Index))).AddMagi
End If

If GetPlayerGlovesSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerGlovesSlot(Index))).AddMagi
End If

If GetPlayerLegsSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerLegsSlot(Index))).AddMagi
End If

If GetPlayerAmuletSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerAmuletSlot(Index))).AddMagi
End If

GetPlayerMAGI = Player(Index).Char(Player(Index).CharNum).Magi + add
End Function

Procure por:

Código:
Function GetPlayerMaxHP

Mude tudo para:

Código:
Function GetPlayerMaxHP(ByVal Index As Long) As Long
Dim CharNum As Long
Dim add As Long

add = 0

If GetPlayerWeaponSlot(Index) > 0 Then
add = Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).AddHP
End If

If GetPlayerArmorSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerArmorSlot(Index))).AddHP
End If

If GetPlayerShieldSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerShieldSlot(Index))).AddHP
End If

If GetPlayerHelmetSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerHelmetSlot(Index))).AddHP
End If

If GetPlayerRing1Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing1Slot(Index))).AddHP
End If

If GetPlayerRing2Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing2Slot(Index))).AddHP
End If

If GetPlayerGlovesSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerGlovesSlot(Index))).AddHP
End If

If GetPlayerAmuletSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerAmuletSlot(Index))).AddHP
End If

CharNum = Player(Index).CharNum

'GetPlayerMaxHP = ((Player(index).Char(CharNum).Level + Int(GetPlayerstr(index) / 2) + Class(Player(index).Char(CharNum).Class).str) * 2) + add
GetPlayerMaxHP = (GetPlayerLevel(Index) * AddHP.Level) + (GetPlayerstr(Index) * AddHP.STR) + (GetPlayerDEF(Index) * AddHP.DEF) + (GetPlayerMAGI(Index) * AddHP.Magi) + (GetPlayerSPEED(Index) * AddHP.Speed) + add
End Function

Procure por:

Código:
Function GetPlayerMaxMP

Mude tudo para:

Código:
Function GetPlayerMaxMP(ByVal Index As Long) As Long
Dim CharNum As Long
Dim add As Long

add = 0

If GetPlayerWeaponSlot(Index) > 0 Then
add = Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).AddMP
End If

If GetPlayerArmorSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerArmorSlot(Index))).AddMP
End If

If GetPlayerShieldSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerShieldSlot(Index))).AddMP
End If

If GetPlayerHelmetSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerHelmetSlot(Index))).AddMP
End If

If GetPlayerRing1Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing1Slot(Index))).AddMP
End If

If GetPlayerRing2Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing2Slot(Index))).AddMP
End If

If GetPlayerGlovesSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerGlovesSlot(Index))).AddMP
End If

If GetPlayerLegsSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerLegsSlot(Index))).AddMP
End If

If GetPlayerAmuletSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerAmuletSlot(Index))).AddMP
End If

CharNum = Player(Index).CharNum

GetPlayerMaxMP = ((Player(Index).Char(CharNum).Level + Int(GetPlayerMAGI(Index) / 2) + Class(Player(Index).Char(CharNum).Class).Magi) * 2) + add
'GetPlayerMaxMP = (GetPlayerLevel(Index) * AddMP.Level) + (GetPlayerstr(Index) * AddMP.STR) + (GetPlayerDEF(Index) * AddMP.DEF) + (GetPlayerMAGI(Index) * AddMP.Magi) + (GetPlayerSPEED(Index) * AddMP.Speed) + add
End Function

Procure por:

Código:
Function GetPlayerMaxSP

Mude tudo para:

Código:
Function GetPlayerMaxSP(ByVal Index As Long) As Long
Dim CharNum As Long
Dim add As Long

add = 0

If GetPlayerWeaponSlot(Index) > 0 Then
add = Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).AddSP
End If

If GetPlayerArmorSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerArmorSlot(Index))).AddSP
End If

If GetPlayerShieldSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerShieldSlot(Index))).AddSP
End If

If GetPlayerHelmetSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerHelmetSlot(Index))).AddSP
End If

If GetPlayerRing1Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing1Slot(Index))).AddSP
End If

If GetPlayerRing2Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing2Slot(Index))).AddSP
End If

If GetPlayerGlovesSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerGlovesSlot(Index))).AddSP
End If

If GetPlayerLegsSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerLegsSlot(Index))).AddSP
End If

If GetPlayerAmuletSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerAmuletSlot(Index))).AddSP
End If

CharNum = Player(Index).CharNum

'GetPlayerMaxSP = ((Player(index).Char(CharNum).Level + Int(GetPlayerSPEED(index) / 2) + Class(Player(index).Char(CharNum).Class).SPEED) * 2) + add
GetPlayerMaxSP = (GetPlayerLevel(Index) * AddSP.Level) + (GetPlayerstr(Index) * AddSP.STR) + (GetPlayerDEF(Index) * AddSP.DEF) + (GetPlayerMAGI(Index) * AddSP.Magi) + (GetPlayerSPEED(Index) * AddSP.Speed) + add
End Function

Procure por:

Código:
Function GetPlayerSPEED(ByVal Index As Long) As Long
Dim add As Long

Mude tudo para:

Código:
Function GetPlayerSPEED(ByVal Index As Long) As Long
Dim add As Long

add = 0

If GetPlayerWeaponSlot(Index) > 0 Then
add = Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).AddSpeed
End If

If GetPlayerArmorSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerArmorSlot(Index))).AddSpeed
End If

If GetPlayerShieldSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerShieldSlot(Index))).AddSpeed
End If

If GetPlayerHelmetSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerHelmetSlot(Index))).AddSpeed
End If

If GetPlayerRing1Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing1Slot(Index))).AddSpeed
End If

If GetPlayerRing2Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing2Slot(Index))).AddSpeed
End If

If GetPlayerGlovesSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerGlovesSlot(Index))).AddSpeed
End If

If GetPlayerLegsSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerLegsSlot(Index))).AddSpeed
End If

If GetPlayerAmuletSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerAmuletSlot(Index))).AddSpeed
End If

GetPlayerSPEED = Player(Index).Char(Player(Index).CharNum).Speed + add
End Function

Procure por:

Código:
Function GetPlayerstr

Mude tudo para:

Código:
Function GetPlayerstr(ByVal Index As Long) As Long
Dim add As Long

add = 0

If GetPlayerWeaponSlot(Index) > 0 Then
add = Item(GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))).AddStr
End If

If GetPlayerArmorSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerArmorSlot(Index))).AddStr
End If

If GetPlayerShieldSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerShieldSlot(Index))).AddStr
End If

If GetPlayerHelmetSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerHelmetSlot(Index))).AddStr
End If

If GetPlayerRing1Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing1Slot(Index))).AddStr
End If

If GetPlayerRing2Slot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerRing2Slot(Index))).AddStr
End If

If GetPlayerGlovesSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerGlovesSlot(Index))).AddStr
End If

If GetPlayerAmuletSlot(Index) > 0 Then
add = add + Item(GetPlayerInvItemNum(Index, GetPlayerAmuletSlot(Index))).AddStr
End If

GetPlayerstr = Player(Index).Char(Player(Index).CharNum).STR + add
End Function

Procure por:

Código:
Sub SetPlayerArmorSlot(ByVal Index As Long, _InvNum As Long)
    Player(Index).Char(Player(Index).CharNum).ArmorSlot = InvNum
End Sub

Abaixo adicione:

Código:
Sub SetPlayerRing1Slot(ByVal Index As Long, _
  InvNum As Long)
    Player(Index).Char(Player(Index).CharNum).Ring1Slot = InvNum
End Sub

Sub SetPlayerRing2Slot(ByVal Index As Long, _
  InvNum As Long)
    Player(Index).Char(Player(Index).CharNum).Ring2Slot = InvNum
End Sub

Sub SetPlayerGlovesSlot(ByVal Index As Long, _
  InvNum As Long)
    Player(Index).Char(Player(Index).CharNum).GlovesSlot = InvNum
End Sub

Sub SetPlayerLegsSlot(ByVal Index As Long, _
  InvNum As Long)
    Player(Index).Char(Player(Index).CharNum).LegsSlot = InvNum
End Sub

Sub SetPlayerAmuletSlot(ByVal Index As Long, _
  InvNum As Long)
    Player(Index).Char(Player(Index).CharNum).AmuletSlot = InvNum
End Sub




Procure por:

Código:
  If GetPlayerHelmetSlot(Attacker) > 0 Then
            add = add + Item(GetPlayerInvItemNum(Attacker, GetPlayerHelmetSlot(Attacker))).AddEXP
        End If

Abaixo Adicione:

Código:
If GetPlayerRing1Slot(Attacker) > 0 Then
add = add + Item(GetPlayerInvItemNum(Attacker, GetPlayerRing1Slot(Attacker))).AddEXP
End If

If GetPlayerRing2Slot(Attacker) > 0 Then
add = add + Item(GetPlayerInvItemNum(Attacker, GetPlayerRing2Slot(Attacker))).AddEXP
End If

If GetPlayerGlovesSlot(Attacker) > 0 Then
add = add + Item(GetPlayerInvItemNum(Attacker, GetPlayerGlovesSlot(Attacker))).AddEXP
End If

If GetPlayerLegsSlot(Attacker) > 0 Then
add = add + Item(GetPlayerInvItemNum(Attacker, GetPlayerLegsSlot(Attacker))).AddEXP
End If

If GetPlayerAmuletSlot(Attacker) > 0 Then
add = add + Item(GetPlayerInvItemNum(Attacker, GetPlayerAmuletSlot(Attacker))).AddEXP
End If

Procure por:

Código:
If GetPlayerShieldSlot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerShieldSlot(Victim), 0)
End If

Abaixo adicione:

Código:
If GetPlayerRing1Slot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerRing1Slot(Victim), 0)
End If

If GetPlayerRing2Slot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerRing2Slot(Victim), 0)
End If

If GetPlayerGlovesSlot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerGlovesSlot(Victim), 0)
End If

If GetPlayerLegsSlot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerLegsSlot(Victim), 0)
End If

If GetPlayerAmuletSlot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerAmuletSlot(Victim), 0)
End If

Procure por:

Código:
Slot = GetPlayerShieldSlot(Index)

If Slot > 0 Then
ItemNum = GetPlayerInvItemNum(Index, Slot)

If ItemNum > 0 Then
If Item(ItemNum).Type <> ITEM_TYPE_SHIELD Then
Call SetPlayerShieldSlot(Index, 0)
End If

Else
Call SetPlayerShieldSlot(Index, 0)
End If
End If

Abaixo adicione:

Código:
 Slot = GetPlayerRing1Slot(Index)

If Slot > 0 Then
ItemNum = GetPlayerInvItemNum(Index, Slot)

If ItemNum > 0 Then
If Item(ItemNum).Type <> ITEM_TYPE_RING1 Then
Call SetPlayerRing1Slot(Index, 0)
End If

Else
Call SetPlayerRing1Slot(Index, 0)
End If
End If

Slot = GetPlayerRing2Slot(Index)

If Slot > 0 Then
ItemNum = GetPlayerInvItemNum(Index, Slot)

If ItemNum > 0 Then
If Item(ItemNum).Type <> ITEM_TYPE_RING2 Then
Call SetPlayerRing2Slot(Index, 0)
End If

Else
Call SetPlayerRing2Slot(Index, 0)
End If
End If

Slot = GetPlayerGlovesSlot(Index)

If Slot > 0 Then
ItemNum = GetPlayerInvItemNum(Index, Slot)

If ItemNum > 0 Then
If Item(ItemNum).Type <> ITEM_TYPE_GLOVES Then
Call SetPlayerGlovesSlot(Index, 0)
End If

Else
Call SetPlayerGlovesSlot(Index, 0)
End If
End If

Slot = GetPlayerLegsSlot(Index)

If Slot > 0 Then
ItemNum = GetPlayerInvItemNum(Index, Slot)

If ItemNum > 0 Then
If Item(ItemNum).Type <> ITEM_TYPE_LEGS Then
Call SetPlayerLegsSlot(Index, 0)
End If

Else
Call SetPlayerLegsSlot(Index, 0)
End If
End If

Slot = GetPlayerAmuletSlot(Index)

If Slot > 0 Then
ItemNum = GetPlayerInvItemNum(Index, Slot)

If ItemNum > 0 Then
If Item(ItemNum).Type <> ITEM_TYPE_AMULET Then
Call SetPlayerAmuletSlot(Index, 0)
End If

Else
Call SetPlayerAmuletSlot(Index, 0)
End If
End If

Procure por:

Código:
Sub GiveItem

Mude tudo para:

Código:
Sub GiveItem(ByVal Index As Long, _
ByVal ItemNum As Long, _
ByVal ItemVal As Long)
Dim i As Long

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

i = FindOpenInvSlot(Index, ItemNum)

' Checar se o inventário está cheio
If i <> 0 Then
Call SetPlayerInvItemNum(Index, i, ItemNum)
Call SetPlayerInvItemValue(Index, i, GetPlayerInvItemValue(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) Or (Item(ItemNum).Type = ITEM_TYPE_RING1) Or (Item(ItemNum).Type = ITEM_TYPE_RING2) Or (Item(ItemNum).Type = ITEM_TYPE_GLOVES) Or (Item(ItemNum).Type = ITEM_TYPE_LEGS) Or (Item(ItemNum).Type = ITEM_TYPE_AMULET) Then
Call SetPlayerInvItemDur(Index, i, Item(ItemNum).Data1)
End If

Call SendInventoryUpdate(Index, i)
Else
Call PlayerMsg(Index, "Seu inventário está cheio.", BrightRed)
End If

End Sub

Procure por:

Código:
If GetPlayerShieldSlot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerShieldSlot(Victim), 0)
End If

Abaixo adicione:

Código:
If GetPlayerRing1Slot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerRing1Slot(Victim), 0)
End If

If GetPlayerRing2Slot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerRing2Slot(Victim), 0)
End If

If GetPlayerGlovesSlot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerGlovesSlot(Victim), 0)
End If

If GetPlayerLegsSlot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerLegsSlot(Victim), 0)
End If

If GetPlayerAmuletSlot(Victim) > 0 Then
Call PlayerMapDropItem(Victim, GetPlayerAmuletSlot(Victim), 0)
End If

Procure por:

Código:
Case ITEM_TYPE_SHIELD

If GetPlayerShieldSlot(Index) > 0 Then
If i = GetPlayerShieldSlot(Index) Then
Call SetPlayerShieldSlot(Index, 0)
Call SendWornEquipment(Index)
TakeItem = True
Else

' Ver se o item que estamos pegando já está equipado
If ItemNum <> GetPlayerInvItemNum(Index, GetPlayerShieldSlot(Index)) Then
TakeItem = True
End If
End If

Else
TakeItem = True
End If

Abaixo adicione:

Código:
Case ITEM_TYPE_RING1

If GetPlayerRing1Slot(Index) > 0 Then
If i = GetPlayerRing1Slot(Index) Then
Call SetPlayerRing1Slot(Index, 0)
Call SendWornEquipment(Index)
TakeItem = True
Else

' Ver se o item que estamos pegando já está equipado
If ItemNum <> GetPlayerInvItemNum(Index, GetPlayerRing1Slot(Index)) Then
TakeItem = True
End If
End If

Else
TakeItem = True
End If

Case ITEM_TYPE_RING2

If GetPlayerRing1Slot(Index) > 0 Then
If i = GetPlayerRing2Slot(Index) Then
Call SetPlayerRing2Slot(Index, 0)
Call SendWornEquipment(Index)
TakeItem = True
Else

' Ver se o item que estamos pegando já está equipado
If ItemNum <> GetPlayerInvItemNum(Index, GetPlayerRing2Slot(Index)) Then
TakeItem = True
End If
End If

Else
TakeItem = True
End If

Case ITEM_TYPE_GLOVES

If GetPlayerRing1Slot(Index) > 0 Then
If i = GetPlayerGlovesSlot(Index) Then
Call SetPlayerGlovesSlot(Index, 0)
Call SendWornEquipment(Index)
TakeItem = True
Else

' Ver se o item que estamos pegando já está equipado
If ItemNum <> GetPlayerInvItemNum(Index, GetPlayerGlovesSlot(Index)) Then
TakeItem = True
End If
End If

Else
TakeItem = True
End If

Case ITEM_TYPE_LEGS

If GetPlayerRing1Slot(Index) > 0 Then
If i = GetPlayerLegsSlot(Index) Then
Call SetPlayerLegsSlot(Index, 0)
Call SendWornEquipment(Index)
TakeItem = True
Else

' Ver se o item que estamos pegando já está equipado
If ItemNum <> GetPlayerInvItemNum(Index, GetPlayerLegsSlot(Index)) Then
TakeItem = True
End If
End If

Else
TakeItem = True
End If

Case ITEM_TYPE_AMULET

If GetPlayerRing1Slot(Index) > 0 Then
If i = GetPlayerAmuletSlot(Index) Then
Call SetPlayerAmuletSlot(Index, 0)
Call SendWornEquipment(Index)
TakeItem = True
Else

' Ver se o item que estamos pegando já está equipado
If ItemNum <> GetPlayerInvItemNum(Index, GetPlayerAmuletSlot(Index)) Then
TakeItem = True
End If
End If

Else
TakeItem = True
End If

Procure por:

Código:
' Checar se já não é uma arma equipavel, caso sim, não pegar ela.
If (N <> ITEM_TYPE_WEAPON) And (N <> ITEM_TYPE_ARMOR) And (N <> ITEM_TYPE_HELMET) And (N <> ITEM_TYPE_SHIELD) Then

Mude para:

Código:
' Checar se já não é uma arma equipavel, caso sim, não pegar ela.
If (N <> ITEM_TYPE_WEAPON) And (N <> ITEM_TYPE_ARMOR) And (N <> ITEM_TYPE_HELMET) And (N <> ITEM_TYPE_SHIELD) And (N <> ITEM_TYPE_RING1) And (N <> ITEM_TYPE_RING2) And (N <> ITEM_TYPE_GLOVES) And (N <> ITEM_TYPE_LEGS) And (N <> ITEM_TYPE_AMULET) Then

Procure por:

Código:
Case ITEM_TYPE_SHIELD

If InvNum <> GetPlayerShieldSlot(Index) Then
If n4 > 0 Then
If GetPlayerClass(Index) <> n4 Then
Call PlayerMsg(Index, "Você precisa ser classe " & GetClassName(n4) & " para usar esse item!", BrightRed)
Exit Sub
End If
End If

If GetPlayerAccess(Index) < n5 Then
Call PlayerMsg(Index, "Seu acesso precisa ser maior que " & n5 & "!", BrightRed)
Exit Sub
End If

If Int(GetPlayerstr(Index)) < n1 Then
Call PlayerMsg(Index, "Sua força é muito baixa para equipar esse item! Força requerida:(" & n1 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerDEF(Index)) < n2 Then
Call PlayerMsg(Index, "Sua defesa é muito baixa para equipar esse item! Defesa requerida: (" & n2 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerSPEED(Index)) < n3 Then
Call PlayerMsg(Index, "Sua velocidade é muito baixa para equipar esse item! Velocidade requerida: (" & n3 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerMAGI(Index)) < n6 Then
Call PlayerMsg(Index, "Sua magia é muito baixa para equipar esse item! Magia requerida: (" & n6 & ")", BrightRed)
Exit Sub
End If

Call SetPlayerShieldSlot(Index, InvNum)
Else
Call SetPlayerShieldSlot(Index, 0)
End If

Call SendWornEquipment(Index)

Abaixo adicione:

Código:
Case ITEM_TYPE_RING1

If InvNum <> GetPlayerRing1Slot(Index) Then
If n4 > 0 Then
If GetPlayerClass(Index) <> n4 Then
Call PlayerMsg(Index, "Você precisa ser classe " & GetClassName(n4) & " para usar esse item!", BrightRed)
Exit Sub
End If
End If

If GetPlayerAccess(Index) < n5 Then
Call PlayerMsg(Index, "Seu acesso precisa ser maior que " & n5 & "!", BrightRed)
Exit Sub
End If

If Int(GetPlayerstr(Index)) < n1 Then
Call PlayerMsg(Index, "Sua força é muito baixa para equipar esse item! Força requerida:(" & n1 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerDEF(Index)) < n2 Then
Call PlayerMsg(Index, "Sua defesa é muito baixa para equipar esse item! Defesa requerida: (" & n2 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerSPEED(Index)) < n3 Then
Call PlayerMsg(Index, "Sua velocidade é muito baixa para equipar esse item! Velocidade requerida: (" & n3 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerMAGI(Index)) < n6 Then
Call PlayerMsg(Index, "Sua magia é muito baixa para equipar esse item! Magia requerida: (" & n6 & ")", BrightRed)
Exit Sub
End If

Call SetPlayerRing1Slot(Index, InvNum)
Else
Call SetPlayerRing1Slot(Index, 0)
End If

Call SendWornEquipment(Index)

Case ITEM_TYPE_RING2

If InvNum <> GetPlayerRing1Slot(Index) Then
If n4 > 0 Then
If GetPlayerClass(Index) <> n4 Then
Call PlayerMsg(Index, "Você precisa ser classe " & GetClassName(n4) & " para usar esse item!", BrightRed)
Exit Sub
End If
End If

If GetPlayerAccess(Index) < n5 Then
Call PlayerMsg(Index, "Seu acesso precisa ser maior que " & n5 & "!", BrightRed)
Exit Sub
End If

If Int(GetPlayerstr(Index)) < n1 Then
Call PlayerMsg(Index, "Sua força é muito baixa para equipar esse item! Força requerida:(" & n1 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerDEF(Index)) < n2 Then
Call PlayerMsg(Index, "Sua defesa é muito baixa para equipar esse item! Defesa requerida: (" & n2 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerSPEED(Index)) < n3 Then
Call PlayerMsg(Index, "Sua velocidade é muito baixa para equipar esse item! Velocidade requerida: (" & n3 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerMAGI(Index)) < n6 Then
Call PlayerMsg(Index, "Sua magia é muito baixa para equipar esse item! Magia requerida: (" & n6 & ")", BrightRed)
Exit Sub
End If

Call SetPlayerRing2Slot(Index, InvNum)
Else
Call SetPlayerRing2Slot(Index, 0)
End If

Call SendWornEquipment(Index)

Case ITEM_TYPE_GLOVES

If InvNum <> GetPlayerGlovesSlot(Index) Then
If n4 > 0 Then
If GetPlayerClass(Index) <> n4 Then
Call PlayerMsg(Index, "Você precisa ser classe " & GetClassName(n4) & " para usar esse item!", BrightRed)
Exit Sub
End If
End If

If GetPlayerAccess(Index) < n5 Then
Call PlayerMsg(Index, "Seu acesso precisa ser maior que " & n5 & "!", BrightRed)
Exit Sub
End If

If Int(GetPlayerstr(Index)) < n1 Then
Call PlayerMsg(Index, "Sua força é muito baixa para equipar esse item! Força requerida:(" & n1 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerDEF(Index)) < n2 Then
Call PlayerMsg(Index, "Sua defesa é muito baixa para equipar esse item! Defesa requerida: (" & n2 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerSPEED(Index)) < n3 Then
Call PlayerMsg(Index, "Sua velocidade é muito baixa para equipar esse item! Velocidade requerida: (" & n3 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerMAGI(Index)) < n6 Then
Call PlayerMsg(Index, "Sua magia é muito baixa para equipar esse item! Magia requerida: (" & n6 & ")", BrightRed)
Exit Sub
End If

Call SetPlayerGlovesSlot(Index, InvNum)
Else
Call SetPlayerGlovesSlot(Index, 0)
End If

Call SendWornEquipment(Index)

Case ITEM_TYPE_LEGS

If InvNum <> GetPlayerLegsSlot(Index) Then
If n4 > 0 Then
If GetPlayerClass(Index) <> n4 Then
Call PlayerMsg(Index, "Você precisa ser classe " & GetClassName(n4) & " para usar esse item!", BrightRed)
Exit Sub
End If
End If

If GetPlayerAccess(Index) < n5 Then
Call PlayerMsg(Index, "Seu acesso precisa ser maior que " & n5 & "!", BrightRed)
Exit Sub
End If

If Int(GetPlayerstr(Index)) < n1 Then
Call PlayerMsg(Index, "Sua força é muito baixa para equipar esse item! Força requerida:(" & n1 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerDEF(Index)) < n2 Then
Call PlayerMsg(Index, "Sua defesa é muito baixa para equipar esse item! Defesa requerida: (" & n2 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerSPEED(Index)) < n3 Then
Call PlayerMsg(Index, "Sua velocidade é muito baixa para equipar esse item! Velocidade requerida: (" & n3 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerMAGI(Index)) < n6 Then
Call PlayerMsg(Index, "Sua magia é muito baixa para equipar esse item! Magia requerida: (" & n6 & ")", BrightRed)
Exit Sub
End If

Call SetPlayerLegsSlot(Index, InvNum)
Else
Call SetPlayerLegsSlot(Index, 0)
End If

Call SendWornEquipment(Index)

Case ITEM_TYPE_AMULET

If InvNum <> GetPlayerAmuletSlot(Index) Then
If n4 > 0 Then
If GetPlayerClass(Index) <> n4 Then
Call PlayerMsg(Index, "Você precisa ser classe " & GetClassName(n4) & " para usar esse item!", BrightRed)
Exit Sub
End If
End If

If GetPlayerAccess(Index) < n5 Then
Call PlayerMsg(Index, "Seu acesso precisa ser maior que " & n5 & "!", BrightRed)
Exit Sub
End If

If Int(GetPlayerstr(Index)) < n1 Then
Call PlayerMsg(Index, "Sua força é muito baixa para equipar esse item! Força requerida:(" & n1 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerDEF(Index)) < n2 Then
Call PlayerMsg(Index, "Sua defesa é muito baixa para equipar esse item! Defesa requerida: (" & n2 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerSPEED(Index)) < n3 Then
Call PlayerMsg(Index, "Sua velocidade é muito baixa para equipar esse item! Velocidade requerida: (" & n3 & ")", BrightRed)
Exit Sub
ElseIf Int(GetPlayerMAGI(Index)) < n6 Then
Call PlayerMsg(Index, "Sua magia é muito baixa para equipar esse item! Magia requerida: (" & n6 & ")", BrightRed)
Exit Sub
End If

Call SetPlayerAmuletSlot(Index, InvNum)
Else
Call SetPlayerAmuletSlot(Index, 0)
End If

Call SendWornEquipment(Index)

Procure por:

Código:
If GetPlayerWeaponSlot(Index) <> i And GetPlayerArmorSlot(Index) <> i And GetPlayerShieldSlot(Index) <> i And GetPlayerHelmetSlot(Index) <> i Then
Call SetPlayerInvItemNum(Index, i, 0)
Call PlayerMsg(Index, "You have bought a new sprite!", BrightGreen)
Call SetPlayerSprite(Index, Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1)
Call SendDataToMap(GetPlayerMap(Index), "checksprite" & SEP_CHAR & Index & SEP_CHAR & GetPlayerSprite(Index) & END_CHAR)
Call SendInventory(Index)
End If
End If

If GetPlayerWeaponSlot(Index) <> i And GetPlayerArmorSlot(Index) <> i And GetPlayerShieldSlot(Index) <> i And GetPlayerHelmetSlot(Index) <> i Then
Exit Sub
End If
End If

Mude tudo para:

Código:
If GetPlayerWeaponSlot(Index) <> i And GetPlayerArmorSlot(Index) <> i And GetPlayerShieldSlot(Index) <> i And GetPlayerHelmetSlot(Index) <> i And GetPlayerRing1Slot(Index) <> i And GetPlayerRing2Slot(Index) <> i And GetPlayerGlovesSlot(Index) <> i And GetPlayerLegsSlot(Index) <> i And GetPlayerAmuletSlot(Index) <> i Then
Call SetPlayerInvItemNum(Index, i, 0)
Call PlayerMsg(Index, "You have bought a new sprite!", BrightGreen)
Call SetPlayerSprite(Index, Map(GetPlayerMap(Index)).Tile(GetPlayerX(Index), GetPlayerY(Index)).Data1)
Call SendDataToMap(GetPlayerMap(Index), "checksprite" & SEP_CHAR & Index & SEP_CHAR & GetPlayerSprite(Index) & END_CHAR)
Call SendInventory(Index)
End If
End If

If GetPlayerWeaponSlot(Index) <> i And GetPlayerArmorSlot(Index) <> i And GetPlayerShieldSlot(Index) <> i And GetPlayerHelmetSlot(Index) <> i And GetPlayerRing1Slot(Index) <> i And GetPlayerRing2Slot(Index) <> i And GetPlayerGlovesSlot(Index) <> i And GetPlayerLegsSlot(Index) <> i And GetPlayerAmuletSlot(Index) <> i Then
Exit Sub
End If
End If

Procure por:

Código:
Sub SendWornEquipment

Mude tudo para:

Código:
Sub SendWornEquipment(ByVal Index As Long)
Dim Packet As String

If IsPlaying(Index) Then
Packet = "PLAYERWORNEQ" & SEP_CHAR & Index & SEP_CHAR & GetPlayerArmorSlot(Index) & SEP_CHAR & GetPlayerWeaponSlot(Index) & SEP_CHAR & GetPlayerHelmetSlot(Index) & SEP_CHAR & GetPlayerShieldSlot(Index) & SEP_CHAR & GetPlayerRing1Slot(Index) & SEP_CHAR & GetPlayerRing2Slot(Index) & SEP_CHAR & GetPlayerGlovesSlot(Index) & SEP_CHAR & GetPlayerLegsSlot(Index) & SEP_CHAR & GetPlayerAmuletSlot(Index) & END_CHAR
Call SendDataToMap(GetPlayerMap(Index), Packet)
End If

End Sub

Procure por:

Código:
Function GetPlayerArmorSlot(ByVal Index As Long) As Long
GetPlayerArmorSlot = Player(Index).Char(Player(Index).CharNum).ArmorSlot
End Function

Sub SetPlayerArmorSlot(ByVal Index As Long, InvNum As Long)
Player(Index).Char(Player(Index).CharNum).ArmorSlot = InvNum
End Sub

Abaixo adicione:

Código:
Function GetPlayerRing1Slot(ByVal Index As Long) As Long
GetPlayerRing1Slot = Player(Index).Char(Player(Index).CharNum).Ring1Slot
End Function

Sub SetPlayerRing1Slot(ByVal Index As Long, InvNum As Long)
Player(Index).Char(Player(Index).CharNum).Ring1Slot = InvNum
End Sub

Function GetPlayerRing2Slot(ByVal Index As Long) As Long
GetPlayerRing2Slot = Player(Index).Char(Player(Index).CharNum).Ring2Slot
End Function

Sub SetPlayerRing2Slot(ByVal Index As Long, InvNum As Long)
Player(Index).Char(Player(Index).CharNum).Ring2Slot = InvNum
End Sub

Function GetPlayerGlovesSlot(ByVal Index As Long) As Long
GetPlayerGlovesSlot = Player(Index).Char(Player(Index).CharNum).GlovesSlot
End Function

Sub SetPlayerGlovesSlot(ByVal Index As Long, InvNum As Long)
Player(Index).Char(Player(Index).CharNum).GlovesSlot = InvNum
End Sub

Function GetPlayerLegsSlot(ByVal Index As Long) As Long
GetPlayerLegsSlot = Player(Index).Char(Player(Index).CharNum).LegsSlot
End Function

Sub SetPlayerLegsSlot(ByVal Index As Long, InvNum As Long)
Player(Index).Char(Player(Index).CharNum).LegsSlot = InvNum
End Sub

Function GetPlayerAmuletSlot(ByVal Index As Long) As Long
GetPlayerAmuletSlot = Player(Index).Char(Player(Index).CharNum).AmuletSlot
End Function

Sub SetPlayerAmuletSlot(ByVal Index As Long, InvNum As Long)
Player(Index).Char(Player(Index).CharNum).AmuletSlot = InvNum
End Sub

Procure por:

Código:
Case ITEM_TYPE_SHIELD

If InvNum = GetPlayerShieldSlot(Index) Then
Call SetPlayerShieldSlot(Index, 0)
Call SendWornEquipment(Index)
End If

MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Abaixo adicione:

Código:
Case ITEM_TYPE_RING1

If InvNum = GetPlayerRing1Slot(Index) Then
Call SetPlayerRing1Slot(Index, 0)
Call SendWornEquipment(Index)
End If

MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Case ITEM_TYPE_RING2

If InvNum = GetPlayerRing2Slot(Index) Then
Call SetPlayerRing2Slot(Index, 0)
Call SendWornEquipment(Index)
End If

MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Case ITEM_TYPE_GLOVES

If InvNum = GetPlayerGlovesSlot(Index) Then
Call SetPlayerGlovesSlot(Index, 0)
Call SendWornEquipment(Index)
End If

MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Case ITEM_TYPE_LEGS

If InvNum = GetPlayerLegsSlot(Index) Then
Call SetPlayerLegsSlot(Index, 0)
Call SendWornEquipment(Index)
End If

MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Case ITEM_TYPE_AMULET

If InvNum = GetPlayerAmuletSlot(Index) Then
Call SetPlayerAmuletSlot(Index, 0)
Call SendWornEquipment(Index)
End If

MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Procure por:

Código:
Sub SendWornEquipment

Mude para:

Código:
Sub SendWornEquipment(ByVal Index As Long)
Dim Packet As String

If IsPlaying(Index) Then
Packet = "PLAYERWORNEQ" & SEP_CHAR & Index & SEP_CHAR & GetPlayerArmorSlot(Index) & SEP_CHAR & GetPlayerWeaponSlot(Index) & SEP_CHAR & GetPlayerHelmetSlot(Index) & SEP_CHAR & GetPlayerShieldSlot(Index) & SEP_CHAR & GetPlayerRing1Slot(Index) & SEP_CHAR & GetPlayerRing2Slot(Index) & SEP_CHAR & GetPlayerGlovesSlot(Index) & SEP_CHAR & GetPlayerLegsSlot(Index) & SEP_CHAR & GetPlayerAmuletSlot(Index) & END_CHAR
Call SendDataToMap(GetPlayerMap(Index), Packet)
End If

End Sub

Procure por:

Código:
Sub PlayerMapDropItem(ByVal Index As Long, ByVal InvNum As Long, ByVal Amount As Long)

Mude a Sub toda para:


Código:
Sub PlayerMapDropItem(ByVal Index As Long, ByVal InvNum As Long, ByVal Amount As Long)
    Dim i As Long

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

    If (GetPlayerInvItemNum(Index, InvNum) > 0) And (GetPlayerInvItemNum(Index, InvNum) <= MAX_ITEMS) Then
        i = FindOpenMapItemSlot(GetPlayerMap(Index))

        If i <> 0 Then
            MapItem(GetPlayerMap(Index), i).Dur = 0

            ' Check to see if its any sort of ArmorSlot/WeaponSlot
            Select Case Item(GetPlayerInvItemNum(Index, InvNum)).Type

                Case ITEM_TYPE_ARMOR

                    If InvNum = GetPlayerArmorSlot(Index) Then
                        Call SetPlayerArmorSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

                Case ITEM_TYPE_WEAPON

                    If InvNum = GetPlayerWeaponSlot(Index) Then
                        Call SetPlayerWeaponSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

                Case ITEM_TYPE_HELMET

                    If InvNum = GetPlayerHelmetSlot(Index) Then
                        Call SetPlayerHelmetSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

                Case ITEM_TYPE_SHIELD

                    If InvNum = GetPlayerShieldSlot(Index) Then
                        Call SetPlayerShieldSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Case ITEM_TYPE_RING1

                    If InvNum = GetPlayerRing1Slot(Index) Then
                        Call SetPlayerRing1Slot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Case ITEM_TYPE_RING2

                    If InvNum = GetPlayerRing2Slot(Index) Then
                        Call SetPlayerRing2Slot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Case ITEM_TYPE_GLOVES

                    If InvNum = GetPlayerGlovesSlot(Index) Then
                        Call SetPlayerGlovesSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Case ITEM_TYPE_LEGS

                    If InvNum = GetPlayerLegsSlot(Index) Then
                        Call SetPlayerLegsSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)

Case ITEM_TYPE_AMULET

                    If InvNum = GetPlayerAmuletSlot(Index) Then
                        Call SetPlayerAmuletSlot(Index, 0)
                        Call SendWornEquipment(Index)
                    End If

                    MapItem(GetPlayerMap(Index), i).Dur = GetPlayerInvItemDur(Index, InvNum)
            End Select

            MapItem(GetPlayerMap(Index), i).num = GetPlayerInvItemNum(Index, InvNum)
            MapItem(GetPlayerMap(Index), i).x = GetPlayerX(Index)
            MapItem(GetPlayerMap(Index), i).y = GetPlayerY(Index)

            If Item(GetPlayerInvItemNum(Index, InvNum)).Type = ITEM_TYPE_CURRENCY Then

                ' Check if its more then they have and if so drop it all
                If Amount >= GetPlayerInvItemValue(Index, InvNum) Then
                    MapItem(GetPlayerMap(Index), i).Value = GetPlayerInvItemValue(Index, InvNum)
                    Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops " & GetPlayerInvItemValue(Index, InvNum) & " " & Trim(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & ".", Yellow)
                    Call SetPlayerInvItemNum(Index, InvNum, 0)
                    Call SetPlayerInvItemValue(Index, InvNum, 0)
                    Call SetPlayerInvItemDur(Index, InvNum, 0)
                Else
                    MapItem(GetPlayerMap(Index), i).Value = Amount
                    Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops " & Amount & " " & Trim(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & ".", Yellow)
                    Call SetPlayerInvItemValue(Index, InvNum, GetPlayerInvItemValue(Index, InvNum) - Amount)
                End If

            Else

                ' Its not a currency object so this is easy
                MapItem(GetPlayerMap(Index), i).Value = 0

                If Item(GetPlayerInvItemNum(Index, InvNum)).Type >= ITEM_TYPE_WEAPON And Item(GetPlayerInvItemNum(Index, InvNum)).Type <= ITEM_TYPE_SHIELD Then
                    If Item(GetPlayerInvItemNum(Index, InvNum)).Data1 <= -1 Then
                        Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops a " & Trim(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & " - Ind.", Yellow)
                    Else
                        Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops a " & Trim(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & " - " & GetPlayerInvItemDur(Index, InvNum) & "/" & Item(GetPlayerInvItemNum(Index, InvNum)).Data1 & ".", Yellow)
                    End If

                Else
                    Call MapMsg(GetPlayerMap(Index), GetPlayerName(Index) & " drops a " & Trim(Item(GetPlayerInvItemNum(Index, InvNum)).Name) & ".", Yellow)
                End If

                Call SetPlayerInvItemNum(Index, InvNum, 0)
                Call SetPlayerInvItemValue(Index, InvNum, 0)
                Call SetPlayerInvItemDur(Index, InvNum, 0)
            End If

            ' Send inventory update
            Call SendInventoryUpdate(Index, InvNum)

            ' Spawn the item before we set the num or we'll get a different free map item slot
            Call SpawnItemSlot(i, MapItem(GetPlayerMap(Index), i).num, Amount, MapItem(GetPlayerMap(Index), i).Dur, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
        Else
            Call PlayerMsg(Index, "Já há muitos itens no chão.", BrightRed)
        End If
    End If

End Sub


Creditos :
LosT StyLe e Guilherme Por fazer
SkyAway , Por Postar Aqui pra vocês





GOSTOU DA + 1 CRED Só CLICAR NO + ALI DO LADO >>>>>

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

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