Todo sobre AO
 
ÍndiceFAQBuscarMiembrosGrupos de UsuariosRegistrarseConectarse

Comparte | 
 

 Hechizos para clases o razas exclusivas

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Agus
Admin


Mensajes : 69
Fecha de inscripción : 01/07/2008

MensajeTema: Hechizos para clases o razas exclusivas   Lun Ago 25, 2008 3:30 am

[SERVIDOR]Hechizos según la clase y/o raza.
Éste código sirve para implementar el sistema de hechizos según raza y/o clase del personaje. Soporta múltiples clases y múltiples razas.
CÓDIGO
Primero, buscamos:
Citación :

StaRequerido As Integer
Y debajo ponemos:
Citación :

ClasesExclusivas() As String
RazasExclusivas() As String
Luego, buscamos:
Citación :

Hechizos(Hechizo).StaRequerido = val(Leer.GetValue("Hechizo" & Hechizo, "StaRequerido"))
Y debajo ponemos:
Citación :

Dim tmpStr As String
Dim tmpInt As Byte
Dim i As Byte

'Se cargan las clases exclusivas:
tmpStr = Leer.GetValue("Hechizo" & Hechizo, "ClasesExclusivas")

If tmpStr = vbNullString Then
ReDim Hechizos(Hechizo).ClasesExclusivas(1 To 1)
Hechizos(Hechizo).ClasesExclusivas(1) = vbNullString
Else
tmpInt = val(ReadField(1, tmpStr, Asc("-")))
ReDim Hechizos(Hechizo).ClasesExclusivas(1 To tmpInt)
For i = 1 To tmpInt
Hechizos(Hechizo).ClasesExclusivas(i) = UCase$(ReadField(i + 1, tmpStr, Asc("-")))
Debug.Print "Cargada clase exclusiva " & i & " del hechizo " & Hechizo & ", val = " & Hechizos(Hechizo).ClasesExclusivas(i)
Next i
End If

'Se cargan las razas exclusivas:
tmpStr = Leer.GetValue("Hechizo" & Hechizo, "RazasExclusivas")

If tmpStr = vbNullString Then tmpInt = 0 Else tmpInt = val(ReadField(1, tmpStr, Asc("-")))

If tmpStr = vbNullString Then
ReDim Hechizos(Hechizo).RazasExclusivas(1 To 1)
Hechizos(Hechizo).RazasExclusivas(1) = vbNullString
Else
tmpInt = val(ReadField(1, tmpStr, Asc("-")))
ReDim Hechizos(Hechizo).RazasExclusivas(1 To tmpInt)
For i = 1 To tmpInt
Hechizos(Hechizo).RazasExclusivas(i) = UCase$(ReadField(i + 1, tmpStr, Asc("-")))
Next i
End If
Luego, buscamos:
Citación :

hIndex = ObjData(UserList(UserIndex).Invent.Object(Slot).ObjIndex).HechizoIndex
Y debajo ponemos:
Citación :

'Chequeamos si tiene una de las clases necesarias
If Hechizos(hIndex).ClasesExclusivas(1) <> vbNullString Then
For j = 1 To UBound(Hechizos(hIndex).ClasesExclusivas)
If UCase$(UserList(UserIndex).Clase) = UCase$(Hechizos(hIndex).ClasesExclusivas(j)) Then
Exit For
End If

If j = UBound(Hechizos(hIndex).ClasesExclusivas) Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Tu clase no puede aprender este hechizo." & FONTTYPE_INFO)
Exit Sub
End If
Next j
End If

'Chequeamos si tiene una de las razas necesarias
If Hechizos(hIndex).RazasExclusivas(1) <> vbNullString Then
For j = 1 To UBound(Hechizos(hIndex).RazasExclusivas)
If UCase$(UserList(UserIndex).Raza) = UCase$(Hechizos(hIndex).RazasExclusivas(j)) Then
Exit For
End If

If j = UBound(Hechizos(hIndex).RazasExclusivas) Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Tu raza no puede aprender este hechizo." & FONTTYPE_INFO)
Exit Sub
End If
Next j
End If
Luego, buscamos:
Citación :

Function PuedeLanzar(ByVal UserIndex As Integer, ByVal HechizoIndex As Integer) As Boolean
Y debajo ponemos:
Citación :

Dim i As Integer

'Chequeamos si tiene una de las clases necesarias
If Hechizos(HechizoIndex).ClasesExclusivas(1) <> vbNullString Then
For i = 1 To UBound(Hechizos(HechizoIndex).ClasesExclusivas)
If UCase$(UserList(UserIndex).Clase) = UCase$(Hechizos(HechizoIndex).ClasesExclusivas(i)) Then
Exit For
End If

If i = UBound(Hechizos(HechizoIndex).ClasesExclusivas) Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Tu clase no puede lanzar este hechizo." & FONTTYPE_INFO)
Exit Function
End If
Next i
End If

'Chequeamos si tiene una de las razas necesarias
If Hechizos(HechizoIndex).RazasExclusivas(1) <> vbNullString Then
For i = 1 To UBound(Hechizos(HechizoIndex).RazasExclusivas)
If UCase$(UserList(UserIndex).Raza) = UCase$(Hechizos(HechizoIndex).RazasExclusivas(i)) Then
Exit For
End If

If i = UBound(Hechizos(HechizoIndex).RazasExclusivas) Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Tu raza no puede lanzar este hechizo." & FONTTYPE_INFO)
Exit Function
End If
Next i
End If
Luego, buscamos:
Citación :

Case "INFS"
Y reemplazamos TODO ese Case "INFS" por el siguiente:
Citación :

Case "INFS" 'Informacion del hechizo
rData = Right$(rData, Len(rData) - 4)
If val(rData) > 0 And val(rData) < MAXUSERHECHIZOS + 1 Then
Dim H As Integer
H = UserList(UserIndex).Stats.UserHechizos(val(rData))
If H > 0 And H < NumeroHechizos + 1 Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||%%%%%%%%%%%% INFO DEL HECHIZO %%%%%%%%%%%%" & FONTTYPE_INFO)
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Nombre:" & Hechizos(H).Nombre & FONTTYPE_INFO)
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Descripcion:" & Hechizos(H).Desc & FONTTYPE_INFO)
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Skill requerido: " & Hechizos(H).MinSkill & " de magia." & FONTTYPE_INFO)
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Mana necesario: " & Hechizos(H).ManaRequerido & FONTTYPE_INFO)
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Stamina necesaria: " & Hechizos(H).StaRequerido & FONTTYPE_INFO)

If Hechizos(H).ClasesExclusivas(1) <> vbNullString Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Clases exclusivas: " & Join(Hechizos(H).ClasesExclusivas, ", ") & FONTTYPE_INFO)
Else
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Clases exclusivas: Todas." & FONTTYPE_INFO)
End If

If Hechizos(H).RazasExclusivas(1) <> vbNullString Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Razas exclusivas: " & Join(Hechizos(H).RazasExclusivas, ", ") & "." & FONTTYPE_INFO)
Else
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Razas exclusivas: Todas." & FONTTYPE_INFO)
End If

Call SendData(SendTarget.ToIndex, UserIndex, 0, "||%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" & FONTTYPE_INFO)
End If
Else
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||¡Primero selecciona el hechizo.!" & FONTTYPE_INFO)
End If
Exit Sub

Luego, en el Hechizos.DAT, al DAT del Hechizo al cual queremos implementar este sistema le agregamos las siguientes líneas:

Código:

ClasesExclusivas=3-Mago-Bardo-Clerigo         'Habilitamos las clases MAGO, BaRDO y CLERIGO para que puedan usar el hechizo
RazasExclusivas=4-Humano-Elfo-Elfo Oscuro-Gnomo      'Habilitamos todas las razas menos los Enanos.
ClasesExclusivas=               'Habilitamos todas las clases.
RazasExclusivas=               'Habilitamos todas las razas.
Volver arriba Ir abajo
Ver perfil de usuario http://recompilacionao.forosactivos.com
 
Hechizos para clases o razas exclusivas
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» SUBIDAS ESTANDARD PARA TODAS LAS RAZAS
» ¿Cuál de las 4 razas me recomiendan y por qué?
» En que te basaste para elegir tu raza preferida.
» CURSO DE CONDUCCION VW ESCARABAJOS CLASICOS DE COMPETICIÓN
» Destiny: Historia, Mundos, Clases y razas

Permisos de este foro:No puedes responder a temas en este foro.
 :: Argentum Online :: Programación :: 0.11.5-
Cambiar a: