Advertisement
Luciano_fuentes

Cambiar_Clase

Nov 22nd, 2016
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 7.51 KB | None | 0 0
  1. Option Explicit
  2.  
  3. '@@@@@@@ AUTOR: LUCIANO
  4. '@@@@@@@ PRECIO: $100
  5. '@@@@@@@ IDEA NO APLICADA A LA VENTA.
  6.  
  7. Private Const MAX_HECHIZOS As Byte = 35 'PONER LA CANTIDAD DE HECHIZOS QUE VAS A USAR.
  8.  
  9. Private Type tClases
  10.     clase As eClass
  11.     raza As eRaza
  12.     Vida As Integer
  13.     Mana As Integer
  14.     Objetos(1 To MAX_NORMAL_INVENTORY_SLOTS) As Obj
  15.     Hechizos(1 To MAX_HECHIZOS) As Byte
  16.     Atributos(1 To NUMATRIBUTOS) As Byte
  17.     Cuerpo As Integer
  18. End Type
  19.  
  20. Private Clases(1 To 8) As tClases
  21.  
  22. Public Sub Cargar_Clases()
  23.  
  24.     Dim LoopC As Long
  25.     Dim LoopX As Long
  26.     Dim LoopI As Long
  27.     Dim LoopZ As Long
  28.    
  29.     Dim Leer As clsIniReader
  30.     Set Leer = New clsIniReader
  31.    
  32.     Call Leer.Initialize(App.Path & "\Dat\Clases.dat")
  33.        
  34.     For LoopC = 1 To 8
  35.         With Clases(LoopC)
  36.             .clase = Devolver_Clase(Leer.GetValue("CLASE" & LoopC, "Clase"))
  37.             .Vida = CInt(Leer.GetValue("CLASE" & LoopC, "Vida"))
  38.             .Mana = CInt(Leer.GetValue("CLASE" & LoopC, "Mana"))
  39.             .raza = Devolver_Raza(Leer.GetValue("CLASE" & LoopC, "Raza"))
  40.             .Cuerpo = Devolver_Cuerpo(.raza)
  41.             '@@ CARGAMOS OBJETOS:
  42.             For LoopX = 1 To MAX_NORMAL_INVENTORY_SLOTS
  43.                 .Objetos(LoopX).Amount = CInt(ReadField(1, Leer.GetValue("CLASE" & LoopC, "Objeto" & LoopX), Asc("-")))
  44.                 .Objetos(LoopX).objIndex = CInt(ReadField(2, Leer.GetValue("CLASE" & LoopC, "Objeto" & LoopX), Asc("-")))
  45.             Next LoopX
  46.             '@@ CARGAMOS LOS HECHIZOS:
  47.             For LoopI = 1 To MAX_HECHIZOS
  48.                 .Hechizos(LoopI) = CByte(Leer.GetValue("CLASE" & LoopC, "Hechizo" & LoopI))
  49.             Next LoopI
  50.             '@@ CARGAMOS LOS ATRIBUTOS:
  51.             For LoopZ = 1 To NUMATRIBUTOS
  52.                 .Atributos(LoopZ) = CByte(Leer.GetValue("CLASE" & LoopC, "Atributo" & LoopZ))
  53.             Next LoopZ
  54.         End With
  55.     Next LoopC
  56.        
  57.     Set Leer = Nothing
  58.  
  59. End Sub
  60.  
  61. Private Function Devolver_Clase(ByVal name As String) As eClass
  62.  
  63.     name = UCase(name) '@@ LO PONEMOS EN MAYÚSCULA
  64.     name = LTrim(name) '@@ LE SACAMOS LOS ESPACIOS DEL LADO IZQUIERDO
  65.     name = RTrim(name) '@@ LE SACAMOS LOS ESPACIOS DEL LADO DERECHO
  66.    
  67.     Select Case name
  68.         Case Is = "MAGO"
  69.             Devolver_Clase = Mage
  70.            
  71.         Case Is = "BARDO"
  72.             Devolver_Clase = Bard
  73.            
  74.         Case Is = "DRUIDA"
  75.             Devolver_Clase = Druid
  76.            
  77.         Case Is = "CLERIGO"
  78.             Devolver_Clase = Cleric
  79.            
  80.         Case Is = "PALADIN"
  81.             Devolver_Clase = Paladin
  82.            
  83.         Case Is = "ASESINO"
  84.             Devolver_Clase = Assasin
  85.            
  86.         Case Is = "GUERRERO"
  87.             Devolver_Clase = Warrior
  88.        
  89.         Case Is = "CAZADOR"
  90.             Devolver_Clase = Hunter
  91.     End Select
  92.    
  93. End Function
  94.  
  95. Private Function Devolver_Raza(ByVal name As String) As eRaza
  96.  
  97.     name = UCase(name) '@@ LO PONEMOS EN MAYÚSCULA
  98.     name = LTrim(name) '@@ LE SACAMOS LOS ESPACIOS DEL LADO IZQUIERDO
  99.     name = RTrim(name) '@@ LE SACAMOS LOS ESPACIOS DEL LADO DERECHO
  100.    
  101.     Select Case name
  102.         Case Is = "HUMANO"
  103.             Devolver_Raza = Humano
  104.            
  105.         Case Is = "ELFO"
  106.             Devolver_Raza = Elfo
  107.            
  108.         Case Is = "ELFO OSCURO"
  109.             Devolver_Raza = Drow
  110.            
  111.         Case Is = "ENANO"
  112.             Devolver_Raza = Enano
  113.            
  114.         Case Is = "GNOMO"
  115.             Devolver_Raza = Gnomo
  116.     End Select
  117.    
  118. End Function
  119.  
  120. Public Sub Cambiar_Clase(ByVal ID As Integer, ByVal clase As eClass)
  121.  
  122.     Dim uPath As String
  123.     Dim LoopC As Long
  124.     Dim LoopX As Long
  125.     Dim LoopI As Long
  126.     Dim Head As Integer
  127.    
  128.     With Userlist(ID)
  129.    
  130.         If .Pos.map <> 1 Then
  131.             Call WriteConsoleMsg(ID, "Tenés que estar en Ullathorpe para poder cambiarte de clase", FontTypeNames.FONTTYPE_INFOBOLD)
  132.             Exit Sub
  133.         End If
  134.    
  135.         If .flags.EligioBando = 0 Then
  136.             Call WriteConsoleMsg(ID, "Tienes que elegir tu bando.", FontTypeNames.FONTTYPE_INFOBOLD)
  137.             Exit Sub
  138.         End If
  139.    
  140.         Head = Dar_Cabeza(Clases(clase).raza)
  141.    
  142.         '@@ CHAR: MODIFICAMOS LA CLASE, LE DAMOS UN NUEVO CUERPO, LE SACAMOS LAS ANIMACIONES DE ESCUDOS, CASCOS Y ARMAS, LE CAMBIAMOS LA RAZA.
  143.         'Call ChangeUserChar(ID, 0, 0, .Char.heading, .Char.WeaponAnim, .Char.ShieldAnim, .Char.CascoAnim)
  144.         'Call UserDie(ID)
  145.        
  146.         'Call ChangeUserChar(ID, Clases(clase).Cuerpo, Head, UserList(ID).Char.heading, NingunArma, NingunEscudo, NingunCasco)
  147.         .OrigChar.Body = Clases(clase).Cuerpo
  148.         .OrigChar.Head = Head
  149.         Call UserDie(ID)
  150.        
  151.         .clase = Clases(clase).clase '@@ LE CAMBIAMOS LA CLASE
  152.         .raza = Clases(clase).raza  '@@ LE CAMBIAMOS LA RAZA.
  153.        
  154.         '@@ LE CAMBIAMOS LA MANA Y VIDA.
  155.         With .Stats
  156.             .MaxMAN = Clases(clase).Mana
  157.             .MinMAN = 0
  158.             .MaxHp = Clases(clase).Vida
  159.             .MinHp = 0
  160.             For LoopC = 1 To MAX_HECHIZOS
  161.                 .UserHechizos(LoopC) = Clases(clase).Hechizos(LoopC)
  162.             Next LoopC
  163.            
  164.             For LoopI = 1 To NUMATRIBUTOS
  165.                 .UserAtributos(LoopI) = Clases(clase).Atributos(LoopI)
  166.             Next LoopI
  167.         End With
  168.        
  169.         For LoopX = 1 To MAX_NORMAL_INVENTORY_SLOTS
  170.             .Invent.Object(LoopX).Equipped = 0
  171.             .Invent.Object(LoopX).Amount = Clases(clase).Objetos(LoopX).Amount
  172.             .Invent.Object(LoopX).objIndex = Clases(clase).Objetos(LoopX).objIndex
  173.         Next LoopX
  174.    
  175.         Call UpdateUserInv(True, ID, 0)
  176.         Call UpdateUserHechizos(True, ID, 0)
  177.         Call WriteUpdateUserStats(ID)
  178.         Call WriteAttributes(ID)
  179.     End With
  180. End Sub
  181.  
  182. Public Sub Elegir_Bando(ByVal ID As Integer, ByVal Bando As Byte)
  183.     With Userlist(ID)
  184.         '@@ LO VUELVO CRIMINAL, SINO QUEDA DE CIUDADANO.
  185.       '  Exit Sub
  186.         If .flags.EligioBando = 1 Then Exit Sub
  187.        
  188.         If Bando = 2 Then
  189.             Call VolverCriminal(ID)
  190.         End If
  191.        
  192.         .flags.EligioBando = 1
  193.        
  194.         Call WriteConsoleMsg(ID, "Has decidido ser " & IIf(Bando = 2, " un criminal.", " un ciudadano."), FontTypeNames.FONTTYPE_INFOBOLD)
  195.        
  196.     End With
  197. End Sub
  198.  
  199. Private Function Dar_Cabeza(ByVal raza As eRaza) As Integer
  200.  
  201.     '@@ CABEZA ELEGIDA AL AZAR
  202.     '@@ UTILICÉ LOS NÚMEROS DEL CÓDIGO QUE ME PASASTE.
  203.    
  204.   Select Case raza
  205.         Case eRaza.Humano
  206.         Dar_Cabeza = RandomNumber(1, 40)
  207.        
  208.         Case eRaza.Elfo
  209.         Dar_Cabeza = RandomNumber(102, 112)
  210.        
  211.         Case eRaza.Drow
  212.         Dar_Cabeza = RandomNumber(200, 210)
  213.        
  214.         Case eRaza.Gnomo
  215.         Dar_Cabeza = RandomNumber(402, 407)
  216.        
  217.         Case eRaza.Enano
  218.         Dar_Cabeza = RandomNumber(303, 307)
  219.   End Select
  220.  '   Dar_Cabeza = 0
  221. End Function
  222.  
  223. Private Function Devolver_Cuerpo(ByVal raza As eRaza)
  224.    
  225.     '@@ CARGAR EL CUERPO
  226.     '@@ UTILICÉ LOS NÚMEROS DEL CÓDIGO QUE ME PASASTE.
  227.    
  228.     Select Case raza
  229.         Case eRaza.Humano
  230.             Devolver_Cuerpo = 21
  231.            
  232.         Case eRaza.Drow
  233.             Devolver_Cuerpo = 32
  234.            
  235.         Case eRaza.Elfo
  236.             Devolver_Cuerpo = 210
  237.            
  238.         Case eRaza.Gnomo
  239.             Devolver_Cuerpo = 222
  240.            
  241.         Case eRaza.Enano
  242.             Devolver_Cuerpo = 53
  243.     End Select
  244.    
  245. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement