Agus Admin
Mensajes : 69 Fecha de inscripción : 01/07/2008
| Tema: 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ÓDIGOPrimero, 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.
| |
|