Argentum Online
02/07/2014, 21:20
Originalmente publicado por DarkBlood.-
En un ladrón los skill points en wrestling dan % de poder desequiparle un item a un usuario, por eso mismo la denomine "Skill Desequipar", despues le podes pegar con arco, espada plata, puño o lo que sea da igual.
Al atacar efectivamente a un usuario produce un random para ver si tuviste suerte de desarmar.
Luego si tuviste suerte y vas a desarmar al oponente empieza desarmando por el Arma, si no tiene equipada ninguna sigue por Herramienta, etc.
Arma > Flechas > Herramienta > Armadura > Casco > Escudo.
Atencion: si sos lvl 20 o mas NO TE DICE: "Tu oponente te ha desarmado!"
(91=100 en Wrestling usado para Desarmar, para la posibilidad golpear con puño normalmente cada skill point hace diferencia).
codigo:
Public Sub Desarmar(ByVal UserIndex As Integer, ByVal VictimIndex As Integer)
Dim Suerte As Integer
Dim res As Integer
If UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 10 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= -1 Then
Suerte = 35
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 20 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 11 Then
Suerte = 30
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 30 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 21 Then
Suerte = 28
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 40 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 31 Then
Suerte = 24
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 50 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 41 Then
Suerte = 22
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 60 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 51 Then
Suerte = 20
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 70 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 61 Then
Suerte = 18
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 80 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 71 Then
Suerte = 15
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 90 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 81 Then
Suerte = 10
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 100 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 91 Then
Suerte = 5
End If
res = RandomNumber(1, Suerte)
If res <= 2 Then
Call Desequipar(VictimIndex, UserList(VictimIndex).Invent.WeaponEqpSlot)
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Has logrado desarmar a tu oponente!" & FONTTYPE_FIGHT)
If UserList(VictimIndex).Stats.ELV < 20 Then Call SendData(SendTarget.ToIndex, VictimIndex, 0, "||Tu oponente te ha desarmado!" & FONTTYPE_FIGHT)
End If
End Sub
Sub Desequipar(ByVal UserIndex As Integer, ByVal Slot As Byte)
'Desequipa el item slot del inventario
Dim Obj As ObjData
If (Slot < LBound(UserList(UserIndex).Invent.Object)) Or (Slot > UBound(UserList(UserIndex).Invent.Object)) Then
Exit Sub
ElseIf UserList(UserIndex).Invent.Object(Slot).ObjIndex = 0 Then
Exit Sub
End If
Obj = ObjData(UserList(UserIndex).Invent.Object(Slot).Ob jIndex)
Select Case Obj.OBJType
Case eOBJType.otWeapon
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.WeaponEqpObjIndex = 0
UserList(UserIndex).Invent.WeaponEqpSlot = 0
If Not UserList(UserIndex).flags.Mimetizado = 1 Then
UserList(UserIndex).Char.WeaponAnim = NingunArma
Call ChangeUserChar(SendTarget.ToMap, 0, UserList(UserIndex).Pos.Map, UserIndex, UserList(UserIndex).Char.Body, UserList(UserIndex).Char.Head, UserList(UserIndex).Char.Heading, UserList(UserIndex).Char.WeaponAnim, UserList(UserIndex).Char.ShieldAnim, UserList(UserIndex).Char.CascoAnim)
End If
Case eOBJType.otFlechas
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.MunicionEqpObjIndex = 0
UserList(UserIndex).Invent.MunicionEqpSlot = 0
Case eOBJType.otHerramientas
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.HerramientaEqpObjIndex = 0
UserList(UserIndex).Invent.HerramientaEqpSlot = 0
Case eOBJType.otArmadura
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.ArmourEqpObjIndex = 0
UserList(UserIndex).Invent.ArmourEqpSlot = 0
Call DarCuerpoDesnudo(UserIndex, UserList(UserIndex).flags.Mimetizado = 1)
Call ChangeUserChar(SendTarget.ToMap, 0, UserList(UserIndex).Pos.Map, UserIndex, UserList(UserIndex).Char.Body, UserList(UserIndex).Char.Head, UserList(UserIndex).Char.Heading, UserList(UserIndex).Char.WeaponAnim, UserList(UserIndex).Char.ShieldAnim, UserList(UserIndex).Char.CascoAnim)
Case eOBJType.otCASCO
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.CascoEqpObjIndex = 0
UserList(UserIndex).Invent.CascoEqpSlot = 0
If Not UserList(UserIndex).flags.Mimetizado = 1 Then
UserList(UserIndex).Char.CascoAnim = NingunCasco
Call ChangeUserChar(SendTarget.ToMap, 0, UserList(UserIndex).Pos.Map, UserIndex, UserList(UserIndex).Char.Body, UserList(UserIndex).Char.Head, UserList(UserIndex).Char.Heading, UserList(UserIndex).Char.WeaponAnim, UserList(UserIndex).Char.ShieldAnim, UserList(UserIndex).Char.CascoAnim)
End If
Case eOBJType.otESCUDO
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.EscudoEqpObjIndex = 0
UserList(UserIndex).Invent.EscudoEqpSlot = 0
If Not UserList(UserIndex).flags.Mimetizado = 1 Then
UserList(UserIndex).Char.ShieldAnim = NingunEscudo
Call ChangeUserChar(SendTarget.ToMap, 0, UserList(UserIndex).Pos.Map, UserIndex, UserList(UserIndex).Char.Body, UserList(UserIndex).Char.Head, UserList(UserIndex).Char.Heading, UserList(UserIndex).Char.WeaponAnim, UserList(UserIndex).Char.ShieldAnim, UserList(UserIndex).Char.CascoAnim)
End If
End Select
Call SendUserStatsBox(UserIndex)
Call UpdateUserInv(False, UserIndex, Slot)
End Sub
En un ladrón los skill points en wrestling dan % de poder desequiparle un item a un usuario, por eso mismo la denomine "Skill Desequipar", despues le podes pegar con arco, espada plata, puño o lo que sea da igual.
Al atacar efectivamente a un usuario produce un random para ver si tuviste suerte de desarmar.
Luego si tuviste suerte y vas a desarmar al oponente empieza desarmando por el Arma, si no tiene equipada ninguna sigue por Herramienta, etc.
Arma > Flechas > Herramienta > Armadura > Casco > Escudo.
Atencion: si sos lvl 20 o mas NO TE DICE: "Tu oponente te ha desarmado!"
(91=100 en Wrestling usado para Desarmar, para la posibilidad golpear con puño normalmente cada skill point hace diferencia).
codigo:
Public Sub Desarmar(ByVal UserIndex As Integer, ByVal VictimIndex As Integer)
Dim Suerte As Integer
Dim res As Integer
If UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 10 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= -1 Then
Suerte = 35
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 20 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 11 Then
Suerte = 30
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 30 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 21 Then
Suerte = 28
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 40 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 31 Then
Suerte = 24
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 50 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 41 Then
Suerte = 22
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 60 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 51 Then
Suerte = 20
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 70 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 61 Then
Suerte = 18
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 80 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 71 Then
Suerte = 15
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 90 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 81 Then
Suerte = 10
ElseIf UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) <= 100 _
And UserList(UserIndex).Stats.UserSkills(eSkill.Wreste rling) >= 91 Then
Suerte = 5
End If
res = RandomNumber(1, Suerte)
If res <= 2 Then
Call Desequipar(VictimIndex, UserList(VictimIndex).Invent.WeaponEqpSlot)
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Has logrado desarmar a tu oponente!" & FONTTYPE_FIGHT)
If UserList(VictimIndex).Stats.ELV < 20 Then Call SendData(SendTarget.ToIndex, VictimIndex, 0, "||Tu oponente te ha desarmado!" & FONTTYPE_FIGHT)
End If
End Sub
Sub Desequipar(ByVal UserIndex As Integer, ByVal Slot As Byte)
'Desequipa el item slot del inventario
Dim Obj As ObjData
If (Slot < LBound(UserList(UserIndex).Invent.Object)) Or (Slot > UBound(UserList(UserIndex).Invent.Object)) Then
Exit Sub
ElseIf UserList(UserIndex).Invent.Object(Slot).ObjIndex = 0 Then
Exit Sub
End If
Obj = ObjData(UserList(UserIndex).Invent.Object(Slot).Ob jIndex)
Select Case Obj.OBJType
Case eOBJType.otWeapon
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.WeaponEqpObjIndex = 0
UserList(UserIndex).Invent.WeaponEqpSlot = 0
If Not UserList(UserIndex).flags.Mimetizado = 1 Then
UserList(UserIndex).Char.WeaponAnim = NingunArma
Call ChangeUserChar(SendTarget.ToMap, 0, UserList(UserIndex).Pos.Map, UserIndex, UserList(UserIndex).Char.Body, UserList(UserIndex).Char.Head, UserList(UserIndex).Char.Heading, UserList(UserIndex).Char.WeaponAnim, UserList(UserIndex).Char.ShieldAnim, UserList(UserIndex).Char.CascoAnim)
End If
Case eOBJType.otFlechas
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.MunicionEqpObjIndex = 0
UserList(UserIndex).Invent.MunicionEqpSlot = 0
Case eOBJType.otHerramientas
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.HerramientaEqpObjIndex = 0
UserList(UserIndex).Invent.HerramientaEqpSlot = 0
Case eOBJType.otArmadura
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.ArmourEqpObjIndex = 0
UserList(UserIndex).Invent.ArmourEqpSlot = 0
Call DarCuerpoDesnudo(UserIndex, UserList(UserIndex).flags.Mimetizado = 1)
Call ChangeUserChar(SendTarget.ToMap, 0, UserList(UserIndex).Pos.Map, UserIndex, UserList(UserIndex).Char.Body, UserList(UserIndex).Char.Head, UserList(UserIndex).Char.Heading, UserList(UserIndex).Char.WeaponAnim, UserList(UserIndex).Char.ShieldAnim, UserList(UserIndex).Char.CascoAnim)
Case eOBJType.otCASCO
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.CascoEqpObjIndex = 0
UserList(UserIndex).Invent.CascoEqpSlot = 0
If Not UserList(UserIndex).flags.Mimetizado = 1 Then
UserList(UserIndex).Char.CascoAnim = NingunCasco
Call ChangeUserChar(SendTarget.ToMap, 0, UserList(UserIndex).Pos.Map, UserIndex, UserList(UserIndex).Char.Body, UserList(UserIndex).Char.Head, UserList(UserIndex).Char.Heading, UserList(UserIndex).Char.WeaponAnim, UserList(UserIndex).Char.ShieldAnim, UserList(UserIndex).Char.CascoAnim)
End If
Case eOBJType.otESCUDO
UserList(UserIndex).Invent.Object(Slot).Equipped = 0
UserList(UserIndex).Invent.EscudoEqpObjIndex = 0
UserList(UserIndex).Invent.EscudoEqpSlot = 0
If Not UserList(UserIndex).flags.Mimetizado = 1 Then
UserList(UserIndex).Char.ShieldAnim = NingunEscudo
Call ChangeUserChar(SendTarget.ToMap, 0, UserList(UserIndex).Pos.Map, UserIndex, UserList(UserIndex).Char.Body, UserList(UserIndex).Char.Head, UserList(UserIndex).Char.Heading, UserList(UserIndex).Char.WeaponAnim, UserList(UserIndex).Char.ShieldAnim, UserList(UserIndex).Char.CascoAnim)
End If
End Select
Call SendUserStatsBox(UserIndex)
Call UpdateUserInv(False, UserIndex, Slot)
End Sub