Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Explicit
- '@@@@@@@ AUTOR: LUCIANO
- '@@@@@@@ PRECIO: $100
- '@@@@@@@ IDEA NO APLICADA A LA VENTA.
- Private Const MAX_HECHIZOS As Byte = 35 'PONER LA CANTIDAD DE HECHIZOS QUE VAS A USAR.
- Private Type tClases
- clase As eClass
- raza As eRaza
- Vida As Integer
- Mana As Integer
- Objetos(1 To MAX_NORMAL_INVENTORY_SLOTS) As Obj
- Hechizos(1 To MAX_HECHIZOS) As Byte
- Atributos(1 To NUMATRIBUTOS) As Byte
- Cuerpo As Integer
- End Type
- Private Clases(1 To 8) As tClases
- Public Sub Cargar_Clases()
- Dim LoopC As Long
- Dim LoopX As Long
- Dim LoopI As Long
- Dim LoopZ As Long
- Dim Leer As clsIniReader
- Set Leer = New clsIniReader
- Call Leer.Initialize(App.Path & "\Dat\Clases.dat")
- For LoopC = 1 To 8
- With Clases(LoopC)
- .clase = Devolver_Clase(Leer.GetValue("CLASE" & LoopC, "Clase"))
- .Vida = CInt(Leer.GetValue("CLASE" & LoopC, "Vida"))
- .Mana = CInt(Leer.GetValue("CLASE" & LoopC, "Mana"))
- .raza = Devolver_Raza(Leer.GetValue("CLASE" & LoopC, "Raza"))
- .Cuerpo = Devolver_Cuerpo(.raza)
- '@@ CARGAMOS OBJETOS:
- For LoopX = 1 To MAX_NORMAL_INVENTORY_SLOTS
- .Objetos(LoopX).Amount = CInt(ReadField(1, Leer.GetValue("CLASE" & LoopC, "Objeto" & LoopX), Asc("-")))
- .Objetos(LoopX).objIndex = CInt(ReadField(2, Leer.GetValue("CLASE" & LoopC, "Objeto" & LoopX), Asc("-")))
- Next LoopX
- '@@ CARGAMOS LOS HECHIZOS:
- For LoopI = 1 To MAX_HECHIZOS
- .Hechizos(LoopI) = CByte(Leer.GetValue("CLASE" & LoopC, "Hechizo" & LoopI))
- Next LoopI
- '@@ CARGAMOS LOS ATRIBUTOS:
- For LoopZ = 1 To NUMATRIBUTOS
- .Atributos(LoopZ) = CByte(Leer.GetValue("CLASE" & LoopC, "Atributo" & LoopZ))
- Next LoopZ
- End With
- Next LoopC
- Set Leer = Nothing
- End Sub
- Private Function Devolver_Clase(ByVal name As String) As eClass
- name = UCase(name) '@@ LO PONEMOS EN MAYÚSCULA
- name = LTrim(name) '@@ LE SACAMOS LOS ESPACIOS DEL LADO IZQUIERDO
- name = RTrim(name) '@@ LE SACAMOS LOS ESPACIOS DEL LADO DERECHO
- Select Case name
- Case Is = "MAGO"
- Devolver_Clase = Mage
- Case Is = "BARDO"
- Devolver_Clase = Bard
- Case Is = "DRUIDA"
- Devolver_Clase = Druid
- Case Is = "CLERIGO"
- Devolver_Clase = Cleric
- Case Is = "PALADIN"
- Devolver_Clase = Paladin
- Case Is = "ASESINO"
- Devolver_Clase = Assasin
- Case Is = "GUERRERO"
- Devolver_Clase = Warrior
- Case Is = "CAZADOR"
- Devolver_Clase = Hunter
- End Select
- End Function
- Private Function Devolver_Raza(ByVal name As String) As eRaza
- name = UCase(name) '@@ LO PONEMOS EN MAYÚSCULA
- name = LTrim(name) '@@ LE SACAMOS LOS ESPACIOS DEL LADO IZQUIERDO
- name = RTrim(name) '@@ LE SACAMOS LOS ESPACIOS DEL LADO DERECHO
- Select Case name
- Case Is = "HUMANO"
- Devolver_Raza = Humano
- Case Is = "ELFO"
- Devolver_Raza = Elfo
- Case Is = "ELFO OSCURO"
- Devolver_Raza = Drow
- Case Is = "ENANO"
- Devolver_Raza = Enano
- Case Is = "GNOMO"
- Devolver_Raza = Gnomo
- End Select
- End Function
- Public Sub Cambiar_Clase(ByVal ID As Integer, ByVal clase As eClass)
- Dim uPath As String
- Dim LoopC As Long
- Dim LoopX As Long
- Dim LoopI As Long
- Dim Head As Integer
- With Userlist(ID)
- If .Pos.map <> 1 Then
- Call WriteConsoleMsg(ID, "Tenés que estar en Ullathorpe para poder cambiarte de clase", FontTypeNames.FONTTYPE_INFOBOLD)
- Exit Sub
- End If
- If .flags.EligioBando = 0 Then
- Call WriteConsoleMsg(ID, "Tienes que elegir tu bando.", FontTypeNames.FONTTYPE_INFOBOLD)
- Exit Sub
- End If
- Head = Dar_Cabeza(Clases(clase).raza)
- '@@ CHAR: MODIFICAMOS LA CLASE, LE DAMOS UN NUEVO CUERPO, LE SACAMOS LAS ANIMACIONES DE ESCUDOS, CASCOS Y ARMAS, LE CAMBIAMOS LA RAZA.
- 'Call ChangeUserChar(ID, 0, 0, .Char.heading, .Char.WeaponAnim, .Char.ShieldAnim, .Char.CascoAnim)
- 'Call UserDie(ID)
- 'Call ChangeUserChar(ID, Clases(clase).Cuerpo, Head, UserList(ID).Char.heading, NingunArma, NingunEscudo, NingunCasco)
- .OrigChar.Body = Clases(clase).Cuerpo
- .OrigChar.Head = Head
- Call UserDie(ID)
- .clase = Clases(clase).clase '@@ LE CAMBIAMOS LA CLASE
- .raza = Clases(clase).raza '@@ LE CAMBIAMOS LA RAZA.
- '@@ LE CAMBIAMOS LA MANA Y VIDA.
- With .Stats
- .MaxMAN = Clases(clase).Mana
- .MinMAN = 0
- .MaxHp = Clases(clase).Vida
- .MinHp = 0
- For LoopC = 1 To MAX_HECHIZOS
- .UserHechizos(LoopC) = Clases(clase).Hechizos(LoopC)
- Next LoopC
- For LoopI = 1 To NUMATRIBUTOS
- .UserAtributos(LoopI) = Clases(clase).Atributos(LoopI)
- Next LoopI
- End With
- For LoopX = 1 To MAX_NORMAL_INVENTORY_SLOTS
- .Invent.Object(LoopX).Equipped = 0
- .Invent.Object(LoopX).Amount = Clases(clase).Objetos(LoopX).Amount
- .Invent.Object(LoopX).objIndex = Clases(clase).Objetos(LoopX).objIndex
- Next LoopX
- Call UpdateUserInv(True, ID, 0)
- Call UpdateUserHechizos(True, ID, 0)
- Call WriteUpdateUserStats(ID)
- Call WriteAttributes(ID)
- End With
- End Sub
- Public Sub Elegir_Bando(ByVal ID As Integer, ByVal Bando As Byte)
- With Userlist(ID)
- '@@ LO VUELVO CRIMINAL, SINO QUEDA DE CIUDADANO.
- ' Exit Sub
- If .flags.EligioBando = 1 Then Exit Sub
- If Bando = 2 Then
- Call VolverCriminal(ID)
- End If
- .flags.EligioBando = 1
- Call WriteConsoleMsg(ID, "Has decidido ser " & IIf(Bando = 2, " un criminal.", " un ciudadano."), FontTypeNames.FONTTYPE_INFOBOLD)
- End With
- End Sub
- Private Function Dar_Cabeza(ByVal raza As eRaza) As Integer
- '@@ CABEZA ELEGIDA AL AZAR
- '@@ UTILICÉ LOS NÚMEROS DEL CÓDIGO QUE ME PASASTE.
- Select Case raza
- Case eRaza.Humano
- Dar_Cabeza = RandomNumber(1, 40)
- Case eRaza.Elfo
- Dar_Cabeza = RandomNumber(102, 112)
- Case eRaza.Drow
- Dar_Cabeza = RandomNumber(200, 210)
- Case eRaza.Gnomo
- Dar_Cabeza = RandomNumber(402, 407)
- Case eRaza.Enano
- Dar_Cabeza = RandomNumber(303, 307)
- End Select
- ' Dar_Cabeza = 0
- End Function
- Private Function Devolver_Cuerpo(ByVal raza As eRaza)
- '@@ CARGAR EL CUERPO
- '@@ UTILICÉ LOS NÚMEROS DEL CÓDIGO QUE ME PASASTE.
- Select Case raza
- Case eRaza.Humano
- Devolver_Cuerpo = 21
- Case eRaza.Drow
- Devolver_Cuerpo = 32
- Case eRaza.Elfo
- Devolver_Cuerpo = 210
- Case eRaza.Gnomo
- Devolver_Cuerpo = 222
- Case eRaza.Enano
- Devolver_Cuerpo = 53
- End Select
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement