22-04-2007, 04:23 PM
Originally Coded By: NexSteve and Da Undead
Originally For: Elysium Debugged
Converted to Mirage By: Da Undead
//\\PART 1//\\
Difficulty: 1/10 (C & P)
Description: Adds a spell option to where you sacrifice hp for mp.
.::Client Side::.
modTypes
Find:
After, add:
Done with modTypes
Done with Client-Side
.::Server Side::.
modTypes
Find:
After Add:
Very bottom of modTypes, add:
Done with modTypes
Open modGameLogic
Find:
After, before end select, add:
Find:
After Damage As Long, add:
End of modGameLogic.
End of Server-Side
-------------------------------------------------------------------------------------
//\\PART 2//\\
Description: Spends SP for MP.
Add this both client and server side for modTypes after the 'SPELL_TYPE_SACRIFICE = 8' :
And this goes after/before the sacrifice cases on modGameLogic(SERVER) on both places :
-----------------------------------------
Any problems or questions, post here
.
Originally For: Elysium Debugged
Converted to Mirage By: Da Undead
//\\PART 1//\\
Difficulty: 1/10 (C & P)
Description: Adds a spell option to where you sacrifice hp for mp.
.::Client Side::.
modTypes
Find:
Code:
Public Const SPELL_TYPE_SUBSP = 5
After, add:
Code:
Public Const SPELL_TYPE_SACRIFICE = 6
Done with modTypes
Done with Client-Side
.::Server Side::.
modTypes
Find:
Code:
Public Const SPELL_TYPE_SUBSP = 5
After Add:
Code:
Public Const SPELL_TYPE_SACRIFICE = 6
Very bottom of modTypes, add:
Code:
Public Function Rand(ByVal Low As Long, ByVal High As Long) As Long
Rand = Low + ((Rnd * (High - Low)) \ 1)
End Function
Done with modTypes
Open modGameLogic
Find:
Code:
If Player(index).TargetType = TARGET_TYPE_PLAYER Then
If IsPlaying(n) Then
If GetPlayerHP(n) > 0 And GetPlayerMap(index) = GetPlayerMap(n) And GetPlayerLevel(index) >= 10 And GetPlayerLevel(n) >= 10 And Map(GetPlayerMap(index)).Moral = MAP_MORAL_NONE And GetPlayerAccess(index) 0 Then
Call AttackNpc(index, n, Damage)
Else
Call PlayerMsg(index, "The spell was to weak to hurt " & Trim(Npc(MapNpc(GetPlayerMap(index), n).Num).Name) & "!", BrightRed)
End If
Case SPELL_TYPE_ADDMP
MapNpc(GetPlayerMap(index), n).MP = MapNpc(GetPlayerMap(index), n).MP + Spell(SpellNum).Data1
Case SPELL_TYPE_SUBMP
MapNpc(GetPlayerMap(index), n).MP = MapNpc(GetPlayerMap(index), n).MP - Spell(SpellNum).Data1
Case SPELL_TYPE_ADDSP
MapNpc(GetPlayerMap(index), n).SP = MapNpc(GetPlayerMap(index), n).SP + Spell(SpellNum).Data1
Case SPELL_TYPE_SUBSP
MapNpc(GetPlayerMap(index), n).SP = MapNpc(GetPlayerMap(index), n).SP - Spell(SpellNum).Data1
After, before end select, add:
Code:
Case SPELL_TYPE_SACRIFICE
DamageDelt = Rand(1, 5)
If GetPlayerHP(index) < 40 Then
Call PlayerMsg(index, "Your health is so low you can't take anymore!", BrightRed)
Exit Sub
End If
Select Case DamageDelt
Case 0
Call SetPlayerHP(index, GetPlayerHP(index) - 14)
Damage = 14
Call AttackNpc(index, n, Damage)
Case 1
Call SetPlayerHP(index, GetPlayerHP(index) - 27)
Damage = 27
Call AttackNpc(index, n, Damage)
Case 2
Call SetPlayerHP(index, GetPlayerHP(index) - 4)
Damage = 4
Call AttackNpc(index, n, Damage)
Case 3
Call SetPlayerHP(index, GetPlayerHP(index) - 18)
Damage = 18
Call AttackNpc(index, n, Damage)
Case 4
Call SetPlayerHP(index, GetPlayerHP(index) - 37)
Damage = 37
Call AttackNpc(index, n, Damage)
Case 5
Call PlayerMsg(index, "You body's power can't stand to lose more blood.", BrightRed)
End Select
Find:
Code:
Sub CastSpell(ByVal index As Long, ByVal SpellSlot As Long)
Dim SpellNum As Long, MPReq As Long, i As Long, n As Long, Damage As Long
After Damage As Long, add:
Code:
, DamageDelt As Integer
End of modGameLogic.
End of Server-Side
-------------------------------------------------------------------------------------
//\\PART 2//\\
Description: Spends SP for MP.
Add this both client and server side for modTypes after the 'SPELL_TYPE_SACRIFICE = 8' :
Code:
Public Const SPELL_TYPE_SPFORMP = 7
And this goes after/before the sacrifice cases on modGameLogic(SERVER) on both places :
Code:
Case SPELL_TYPE_SPFORMP
Dim Minus As Long
If GetPlayerSP(index) < 10 Then
Call PlayerMsg(index, "You can't take anymore SP away because you dont have enough!"
Exit Sub
End if
Minus = Rand(100, 1)
Call SetPlayerSP(index, GetPlayerSP(index) - Minus)
Call SetPlayerMP(index, GetPlayerMP(index) + Minus)
-----------------------------------------
Any problems or questions, post here
