📄 draw magic, effects etc..vb.svn-base
字号:
Imports Microsoft.DirectX
Imports Microsoft.DirectX.Direct3D
Module MirMagic
Dim TempX, TempY As Integer
Public Sub DrawActorHumEffect(ByVal Image As Integer)
Dim Render As Boolean
If ActorLook() >= 18 And ActorLook() < 22 Then
'get first image not the 10000000000000th one
Image = Image - (18 * 600)
'If Actor.Look > 18 Then Image = Image - 600
If WIL_HumEffectImage.ImageLoaded(Image) = False Then
WIL_HumEffectImage.ImageLoaded(Image) = True
LoadWILHumEffectImage(Image)
End If
Render = True
End If
If Render = True Then
GameSprite.Begin(SpriteFlags.AlphaBlend)
D3D.RenderState.SourceBlend = Blend.SourceColor
D3D.RenderState.DestinationBlend = Blend.One
TempX = (GameWidth / 2) - 30 + WIL_HumEffectImage.ImageX(Image)
TempY = (GameHeight / 2) - 72 + WIL_HumEffectImage.ImageY(Image)
If WIL_HumEffectImage.ImageLoaded(Image) = True Then GameSprite.Draw(WIL_HumEffectImage.ImageTexture(Image), Rectangle.Empty, New Microsoft.DirectX.Vector3(0, 0, 0), New Microsoft.DirectX.Vector3(TempX, TempY, 0), Color.White)
GameSprite.End()
End If
End Sub
Public Sub DrawPlayerHumEffect(ByVal Index As Integer, ByVal Image As Integer, ByVal BaseX As Single, ByVal BaseY As Single)
Dim Render As Boolean
If PlayerLook(Index) >= 18 And PlayerLook(Index) < 22 Then
'get first image not the 10000000000000th one
Image = Image - (18 * 600)
'If Actor.Look > 18 Then Image = Image - 600
If WIL_HumEffectImage.ImageLoaded(Image) = False Then
WIL_HumEffectImage.ImageLoaded(Image) = True
LoadWILHumEffectImage(Image)
End If
Render = True
End If
If Render = True Then
GameSprite.Begin(SpriteFlags.AlphaBlend)
D3D.RenderState.SourceBlend = Blend.SourceColor
D3D.RenderState.DestinationBlend = Blend.One
TempX = (GameWidth / 2) + (48 * (Player(Index).CurrentX - BaseX)) - 30 + WIL_HumEffectImage.ImageX(Image)
TempY = (GameHeight / 2) + (32 * (Player(Index).CurrentY - BaseY)) - 72 + WIL_HumEffectImage.ImageY(Image)
If WIL_HumEffectImage.ImageLoaded(Image) = True Then GameSprite.Draw(WIL_HumEffectImage.ImageTexture(Image), Rectangle.Empty, New Microsoft.DirectX.Vector3(0, 0, 0), New Microsoft.DirectX.Vector3(TempX, TempY, 0), Color.White)
GameSprite.End()
End If
End Sub
Public Sub DrawMagic(ByVal Index As Integer)
Dim TempX As Integer
Dim TempY As Integer
Dim TempInt As Integer
Dim BaseX As Single
Dim BaseY As Single
BaseX = Actor.CurrentX
BaseY = Actor.CurrentY
If Magic(Index).FollowPlayer = True And (Magic(Index).FollowPlayerID) = Actor.ServerID Then
Magic(Index).X = Actor.X
Magic(Index).Y = Actor.Y
Magic(Index).CordX = Actor.CurrentX
Magic(Index).CordY = Actor.CurrentY
ElseIf Magic(Index).FollowPlayer = True And Player(PlayerGameIndex(Magic(Index).FollowPlayerID)).Exist = True Then
Magic(Index).X = Player(PlayerGameIndex(Magic(Index).FollowPlayerID)).X
Magic(Index).Y = Player(PlayerGameIndex(Magic(Index).FollowPlayerID)).Y
Magic(Index).CordX = Player(PlayerGameIndex(Magic(Index).FollowPlayerID)).CurrentX
Magic(Index).CordY = Player(PlayerGameIndex(Magic(Index).FollowPlayerID)).CurrentY
ElseIf Magic(Index).FollowMob = True Then
Magic(Index).X = Mob(MobGameIndex(Magic(Index).FollowPlayerID)).X
Magic(Index).Y = Mob(MobGameIndex(Magic(Index).FollowPlayerID)).Y
Magic(Index).CordX = Mob(MobGameIndex(Magic(Index).FollowPlayerID)).CordX
Magic(Index).CordY = Mob(MobGameIndex(Magic(Index).FollowPlayerID)).CordY
End If
TempInt = Magic(Index).StartFrame + Magic(Index).Animation
D3D.RenderState.AlphaBlendEnable = True
D3D.RenderState.SourceBlend = Blend.SourceColor
D3D.RenderState.DestinationBlend = Blend.One
If WIL_MagicImage(Magic(Index).MagicFile).ImageLoaded(TempInt) = False Then
WIL_MagicImage(Magic(Index).MagicFile).ImageLoaded(TempInt) = True
LoadWILMagicImage(Magic(Index).MagicFile, TempInt)
End If
TempX = (GameWidth / 2) + (48 * (Magic(Index).CordX - BaseX)) - 30 + WIL_MagicImage(Magic(Index).MagicFile).ImageX(TempInt)
TempY = (GameHeight / 2) + (32 * (Magic(Index).CordY - BaseY)) - 75 + WIL_MagicImage(Magic(Index).MagicFile).ImageY(TempInt) + 8 - 10
If WIL_MagicImage(Magic(Index).MagicFile).ImageLoaded(TempInt) = True Then GameSprite.Draw(WIL_MagicImage(Magic(Index).MagicFile).ImageTexture(TempInt), Rectangle.Empty, New Microsoft.DirectX.Vector3(0, 0, 0), New Microsoft.DirectX.Vector3(TempX, TempY, 0), Color.White)
End Sub
Public Sub AddMagic(ByVal MagicFile As Short, ByVal MagicStart As Integer, ByVal MagicEnd As Integer, ByVal CordX As Short, ByVal CordY As Short, ByVal LinkedToPlayer As Boolean, ByVal LinkedToMob As Boolean, ByVal LinkedToPlayerID As Integer, ByVal LinkedToMobID As Integer, ByVal MagicLight As Short, ByVal TickMiss As Short, Optional ByVal SpecialType As Integer = 0)
Dim I As Integer
For I = 0 To 1000
If Magic(I).Exist = False Then
Magic(I).Exist = True
Magic(I).TickMiss = TickMiss
Magic(I).CordX = CordX
Magic(I).CordY = CordY
Magic(I).X = CordX
Magic(I).Y = CordY
Magic(I).EndFrame = MagicEnd
Magic(I).StartFrame = MagicStart
Magic(I).MagicFile = MagicFile
Magic(I).Light = MagicLight
Magic(I).FollowMob = LinkedToMob
Magic(I).FollowPlayer = LinkedToPlayer
Magic(I).FollowMobID = LinkedToMobID
Magic(I).FollowPlayerID = LinkedToPlayerID
Magic(I).Animation = 0
TotalMagic = TotalMagic + 1
If Magic(I).Light > 0 Then
Magic(I).LightIndex = AddLight(6, 0, 0, I)
End If
Exit For
End If
Next I
End Sub
Public Sub RemoveMagic(ByVal Index As Integer)
Magic(Index).Exist = False
If Magic(Index).Light > 0 Then
RemoveLight(Magic(Index).LightIndex)
End If
TotalMagic = TotalMagic - 1
End Sub
Public Sub MakeLevelUpMagic(ByVal PlayerServerID As Integer)
'PlaySound("levelup.wav")
If PlayerServerID = Actor.ServerID Then
AddMagic(2, 1190, 1210, Actor.X, Actor.Y, True, False, PlayerServerID, 0, 1, 2)
MagicFogColour = Color.FromArgb(15, 60, 15, 165)
ElseIf Player(PlayerGameIndex(PlayerServerID)).Exist = True Then
AddMagic(2, 1190, 1210, Player(PlayerGameIndex(PlayerServerID)).X, Player(PlayerGameIndex(PlayerServerID)).Y, True, False, PlayerServerID, 0, 1, 2)
End If
End Sub
Public Sub MakeHealingMagicPart1(ByVal PlayerServerID As Integer)
If PlayerServerID = Actor.ServerID Then
AddMagic(1, 200, 209, Actor.X, Actor.Y, True, False, PlayerServerID, 0, 1, 2)
End If
End Sub
Public Sub MakeFlameFieldMagic(ByVal CordX As Short, ByVal CordY As Short)
'PlaySound("M45-0.wav")
AddMagic(2, 910, 932, CordX, CordY, True, False, Actor.ServerID, 0, 2, 1)
MagicFogColour = Color.FromArgb(1, 255, 0, 0)
End Sub
Public Sub MakeThunderStormMagic(ByVal CordX As Short, ByVal CordY As Short)
'PlaySound("M24-1.wav")
AddMagic(1, 1680, 1689, CordX, CordY, True, False, Actor.ServerID, 0, 2, 1)
MagicFogColour = Color.FromArgb(1, 0, 0, 241)
End Sub
Public Sub MakeThunderBoltMagic1(ByVal CordX As Short, ByVal CordY As Short)
AddMagic(2, 20, 22, CordX, CordY, True, False, 0, 0, 2, 2)
MagicFogColour = Color.FromArgb(1, 0, 0, 241)
End Sub
Public Sub MakeThunderBoltMagic2(ByVal CordX As Short, ByVal CordY As Short)
'PlaySound("M11-2.WAV")
AddMagic(2, 10, 14, CordX, CordY, False, False, 0, 0, 2, 1)
MagicFogColour = Color.FromArgb(1, 0, 0, 241)
End Sub
Public Sub MakeFlameDisrupterMagic1(ByVal CordX As Short, ByVal CordY As Short)
AddMagic(1, 131, 136, CordX, CordY, False, False, 0, 0, 2, 1)
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -