[Aportes indexados] Magias Expansivas (AO-Yind)

Estado
Cerrado para nuevas respuestas.

MrMan

Associate Director @ Wayfair
Miembro del equipo
Magias Expansivas:

Código:
 
Sub HandleHechizoTerreno(ByVal UserIndex As Integer, ByVal uh As Integer) 
 
Dim b As Boolean 
 
Select Case Hechizos(uh).Tipo 
Case uInvocacion ' 
Call HechizoInvocacion(UserIndex, b) 
Case uTerr 
Dim y, x As Integer 
For y = UserList(UserIndex).Pos.y - MinYBorder + 1 To UserList(UserIndex).Pos.y + MinYBorder - 1 
For x = UserList(UserIndex).Pos.x - MinXBorder + 1 To UserList(UserIndex).Pos.x + MinXBorder - 1 
If x > 0 And y > 0 And x < 101 And y < 101 Then 
If MapData(UserList(UserIndex).Pos.Map, x, y).UserIndex > 0 Then 
Call HechizoAllUsuario(UserIndex, MapData(UserList(UserIndex).Pos.Map, x, y).UserIndex, uh) 
End If 
End If 
Next x 
Next y 
b = True 
End Select 
 
If b Then 
Call SubirSkill(UserIndex, Magia) 
'If Hechizos(uh).Resis = 1 Then Call SubirSkill(UserList(UserIndex).Flags.TargetUser, Resis) 
UserList(UserIndex).Stats.MinMAN = UserList(UserIndex).Stats.MinMAN - Hechizos(uh).ManaRequerido 
If UserList(UserIndex).Stats.MinMAN < 0 Then UserList(UserIndex).Stats.MinMAN = 0 
Call SendUserStatsBox(UserIndex) 
End If 
 
 
End Sub 
 
Sub HechizoAllUsuario(UserIndex As Integer, TargetIndex As Integer, H As Integer) 
Dim tempchr As Integer 
Dim daño As Integer 
tempchr = TargetIndex 
If Hechizos(H).SubeHP = 1 Then 
daño = RandomNumber(Hechizos(H).MinHP, Hechizos(H).MaxHP) 
daño = daño + Porcentaje(daño, 3 * UserList(UserIndex).Stats.ELV) 
 
Call InfoHechizo(UserIndex) 
 
Call AddtoVar(UserList(tempchr).Stats.MinHP, daño, _ 
UserList(tempchr).Stats.MaxHP) 
If UserIndex <> tempchr Then 
Call SendData(ToIndex, UserIndex, 0, "||Le has restaurado " & daño & " puntos de vida a " & UserList(tempchr).Name & FONTTYPE_FIGHT) 
Call SendData(ToIndex, tempchr, 0, "||" & UserList(UserIndex).Name & " te ha restaurado " & daño & " puntos de vida." & FONTTYPE_FIGHT) 
Else 
Call SendData(ToIndex, UserIndex, 0, "||Te has restaurado " & daño & " puntos de vida." & FONTTYPE_FIGHT) 
End If 
 
 
ElseIf Hechizos(H).SubeHP = 2 Then 
 
If UserIndex = tempchr Then 
Call SendData(ToIndex, UserIndex, 0, "||No podes atacarte a vos mismo." & FONTTYPE_FIGHT) 
Exit Sub 
End If 
 
daño = RandomNumber(Hechizos(H).MinHP, Hechizos(H).MaxHP) 
daño = daño + Porcentaje(daño, 3 * UserList(UserIndex).Stats.ELV) 
 
If Not PuedeAtacar(UserIndex, tempchr) Then Exit Sub 
 
If UserIndex <> tempchr Then 
Call UsuarioAtacadoPorUsuario(UserIndex, tempchr) 
End If 
 
Call InfoHechizo(UserIndex) 
UserList(tempchr).Stats.MinHP = UserList(tempchr).Stats.MinHP - daño 
 
Call SendData(ToIndex, UserIndex, 0, "||Le has quitado " & daño & " puntos de vida a " & UserList(tempchr).Name & FONTTYPE_FIGHT) 
Call SendData(ToIndex, tempchr, 0, "||" & UserList(UserIndex).Name & " te ha quitado " & daño & " puntos de vida." & FONTTYPE_FIGHT) 
 
'Muere 
If UserList(tempchr).Stats.MinHP < 1 Then 
Call ContarMuerte(tempchr, UserIndex) 
UserList(tempchr).Stats.MinHP = 0 
Call ActStats(tempchr, UserIndex) 
Call UserDie(tempchr) 
End If 
 
 
End If 
If Hechizos(H).Envenena = 1 Then 
If Not PuedeAtacar(UserIndex, tempchr) Then Exit Sub 
If UserIndex <> tempchr Then 
Call UsuarioAtacadoPorUsuario(UserIndex, tempchr) 
End If 
UserList(tempchr).flags.Envenenado = 1 
Call InfoHechizo(UserIndex) 
End If 
 
If Hechizos(H).CuraVeneno = 1 Then 
UserList(tempchr).flags.Envenenado = 0 
Call InfoHechizo(UserIndex) 
End If 
If Hechizos(H).Revivir = 1 Then 
If UserList(tempchr).flags.Muerto = 1 Then 
If Not Criminal(tempchr) Then 
If tempchr <> UserIndex Then 
Call AddtoVar(UserList(UserIndex).Reputacion.NobleRep, 500, MAXREP) 
Call SendData(ToIndex, UserIndex, 0, "||¡Los Dioses te sonrien, has ganado 500 puntos de nobleza!." & FONTTYPE_INFO) 
End If 
End If 
 
Call RevivirUsuario(tempchr) 
End If 
Call InfoHechizo(UserIndex) 
End If 
End Sub 
 
en declaraciones.bas buscar el Public Const uInvocacion = 4 y ayi debajo poner : Public Const uTerr = 5

PD: hechizos por zona ai que colocarlo en el modhechizos.bas osea el primer sub existe en el modulo de hechis teneis ke copiar todos y ponerlo encima del sub ke existe y remplazarlo y ya ta creo que falta una cosa de declaraciones mañana la pongo.


en el dat va esto:

arriba
'Tipos....
'1 actuan sobre HP,MANA,STA,HAM y SED
'2 actuan sobre los estados de los usuarios
'3 invocacion
'4 materializa
'5 expansivas

y un ejemplo de hechi por zona:

[HECHIZO44]
Nombre=Esporas de curación
Desc=La esporas curan a todos los usuarios en tu area de vision (5 a 15).
PalabrasMagicas=Mass' CORP SANTICS
HechizeroMsg=Has curado a todos los usuarios del area.
Tipo=5
WAV=17
FXgrh=7
SubeHP=1
MinHP=5
MaxHP=15
MinSkill=50
ManaRequerido=120
Target=4


[HECHIZO45]
Nombre=Esporas de curación maduras
Desc=La esporas curan a todos los usuarios en tu area de vision (15 a 40).
PalabrasMagicas=Mass' ENCORP SANTICS
HechizeroMsg=Has curado a todos los usuarios del area.
Tipo=5
WAV=17
FXgrh=7
SubeHP=1
MinHP=15
MaxHP=40
MinSkill=75
ManaRequerido=420
Target=4


[HECHIZO46]
Nombre=LLuvia de fuego
Desc=LLuvia de fuego daña a todos los usuarios del area(20 a 50).
PalabrasMagicas=Mass' FIRE RAIN
HechizeroMsg=Has dañado a todos los usuarios del area.
Tipo=5
WAV=27
FXgrh=7
SubeHP=2
MinHP=20
MaxHP=50
MinSkill=80
ManaRequerido=650
Target=4

[HECHIZO47]
Nombre=RadioActividad
Desc=RadioActividad daña a todos los usuarios del area(50 a 100) y Envenena.
PalabrasMagicas=Mass' RADIOACTIVE
HechizeroMsg=Has dañado a todos los usuarios del area.
Tipo=5
WAV=27
FXgrh=13
SubeHP=2
MinHP=50
MaxHP=100
MinSkill=100
ManaRequerido=2500
Target=4

[HECHIZO48]
Nombre=Angeles
Desc=Resucita a todos los muertos del area.
PalabrasMagicas=Mass AHIL KNÄ XÄR
HechizeroMsg=Has resucitado a
TargetMsg=te ha resucitado.
PropioMsg=Te has resucitado.
Tipo=5
WAV=20
FXgrh=0
Revivir=1
Invoca=0
NumNpc=0
materializa=0
itemindex=0
MinSkill=90
ManaRequerido=1000
Esto hace que los hechizos afecten todo el rango de vision del usuario

Atte. Mr Man
 
Estado
Cerrado para nuevas respuestas.
Arriba