Advertisement
Guest User

Untitled

a guest
Jul 17th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. Public Sub DarExpGlobal(ByVal UserIndex As Integer, Optional NpcIndex As Integer, Optional Damage As Long, Optional Experience As Long)
  2. 'This module replaces CalcularDarExp's module and can be used to give raw exp too
  3.  
  4. Dim Experiencia As Long
  5.  
  6. With UserList(UserIndex)
  7.  
  8. If .Stats.ELV >= 18 And .AlineacionDisponible = 1 Then
  9. Call WriteConsoleMsg(UserIndex, "Debes elegir una alineación para poder seguir obtieniendo experiencia.", FontTypeNames.FONTTYPE_INFO)
  10. Exit Sub
  11. Else
  12. If NpcIndex > 0 Then
  13.  
  14. If Damage <= 0 Then Damage = 0
  15.  
  16. If Npclist(NpcIndex).Stats.MaxHP <= 0 Then Exit Sub
  17.  
  18. If Damage > Npclist(NpcIndex).Stats.MinHP Then Damage = Npclist(NpcIndex).Stats.MinHP
  19.  
  20. Experiencia = CLng(Damage * (Npclist(NpcIndex).GiveEXP / Npclist(NpcIndex).Stats.MaxHP))
  21.  
  22. If Experiencia <= 0 Then Exit Sub
  23.  
  24. If Experiencia > Npclist(NpcIndex).flags.ExpCount Then
  25. Experiencia = Npclist(NpcIndex).flags.ExpCount
  26. Npclist(NpcIndex).flags.ExpCount = 0
  27. Else
  28. Npclist(NpcIndex).flags.ExpCount = Npclist(NpcIndex).flags.ExpCount - Experiencia
  29. End If
  30.  
  31. If Experiencia > 0 Then
  32. If .PartyIndex > 0 Then
  33. Call mdParty.ObtenerExito(UserIndex, Experiencia, Npclist(NpcIndex).Pos.map, Npclist(NpcIndex).Pos.X, Npclist(NpcIndex).Pos.Y)
  34. Else
  35. .Stats.Exp = .Stats.Exp + Experiencia
  36.  
  37. If .Stats.Exp > MAXEXP Then
  38. .Stats.Exp = MAXEXP
  39. End If
  40.  
  41. Call WriteConsoleMsg(UserIndex, "Has ganado " & Experiencia & " puntos de experiencia.", FontTypeNames.FONTTYPE_FIGHT)
  42. End If
  43.  
  44. Call CheckUserLevel(UserIndex)
  45. End If
  46.  
  47. Else
  48.  
  49. Experiencia = Experience
  50.  
  51. If Experiencia <= 0 Then Exit Sub
  52.  
  53. If Experiencia > 0 Then
  54. .Stats.Exp = .Stats.Exp + Experiencia
  55.  
  56. If .Stats.Exp > MAXEXP Then
  57. .Stats.Exp = MAXEXP
  58. End If
  59.  
  60. Call WriteConsoleMsg(UserIndex, "Has ganado " & Experiencia & " puntos de experiencia.", FontTypeNames.FONTTYPE_FIGHT)
  61.  
  62. Call CheckUserLevel(UserIndex)
  63.  
  64. End If
  65. End If
  66. End If
  67.  
  68. End With
  69.  
  70. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement