Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Forget Spell Command
#1
Difficulty: 1/5

In the server, open modHandleData.bas.
find this:
Code:
' :::::::::::::::::
' :: Cast packet ::
' :::::::::::::::::
If LCase(Parse(0)) = "cast" Then
' Spell slot
n = Val(Parse(1))

Call CastSpell(Index, n)

Exit Sub
End If

and underneath it add:
Code:
' :::::::::::::::::::::::::
' :: Forget spell packet ::
' :::::::::::::::::::::::::
If LCase(Parse(0)) = "forgetspell" Then
' Spell slot
n = CLng(Parse(1))

' Prevent subscript out of range
If n  MAX_PLAYER_SPELLS Then
HackingAttempt Index, "Invalid Spell Slot"
Exit Sub
End If

With Player(Index).Char(Player(Index).CharNum)
If .Spell(n) = 0 Then
PlayerMsg Index, "No spell here.", Red

Else
PlayerMsg Index, "You have forgotten the spell """ & Trim$(Spell(.Spell(n)).Name) & """", Green

.Spell(n) = 0
SendSpells Index
End If
End With

Exit Sub
End If

In the client, open frmMirage.
Add a label to picPlayerSpells, set it's name property to "lblForgetSpell", and set it's caption property to "Forget Spell".
Double-click it and add this code:
Code:
If Player(MyIndex).Spell(lstSpells.ListIndex + 1) > 0 Then
If GetTickCount > Player(MyIndex).AttackTimer + 1000 Then
If MsgBox("Are you sure you want to forget the spell """ & Trim$(Spell(Player(MyIndex).Spell(lstSpells.ListIn dex + 1)).Name) & """?", vbQuestion Or vbYesNo, "Forget Spell" = vbNo Then Exit Sub

SendData "forgetspell" & SEP_CHAR & lstSpells.ListIndex + 1 & SEP_CHAR & END_CHAR
picPlayerSpells.Visible = False
End If
Else
AddText "No spell here.", BrightRed
End If

All done.

Now you can click on the Forget Spell label to forget spells you don't want anymore, yay.

Quote:Posted by EnigmaWave on Feb 6, 04
Reply
#2
You are missing an End if.. Nest your code its really hard to work out whats with what..

Code:
If Player(MyIndex).Spell(lstSpells.ListIndex + 1) > 0 Then
    If GetTickCount > Player(MyIndex).AttackTimer + 1000 Then
        If MsgBox("Are you sure you want to forget the spell """ & Trim$(Spell(Player(MyIndex).Spell(lstSpells.ListIn dex + 1)).Name) & """?", vbQuestion Or vbYesNo, "Forget Spell" = vbNo Then Exit Sub

        SendData "forgetspell" & SEP_CHAR & lstSpells.ListIndex + 1 & SEP_CHAR & END_CHAR
        picPlayerSpells.Visible = False
    End If
Else
    AddText "No spell here.", BrightRed
End If

No wait.. you arent missing an End if.. I found that out when i nested it.. I have no idea whats wrong at the moment.. What error did you get mate?
Reply
#3
I'm getting a type mismatch on the msgbox. Any help?
Reply
#4
Braydok Wrote:I'm getting a type mismatch on the msgbox. Any help?

Verrigan just pointed it out! Cretin.
Quote:Robin:
Why aren't maps and shit loaded up in a dynamic array?
Jacob:
the 4 people that know how are lazy
Robin:
Who are those 4 people?
Jacob:
um
you, me, and 2 others?
Reply
#5
Darn you, I did that, but I fixed it, no help to you.
Reply
#6
good point, I'm sorry Robin, I have just been crabby cakes today. Sad

I just deleted the part where it named the spell.
Reply
#7
No problem.

Did you manage to get it to work now?
Quote:Robin:
Why aren't maps and shit loaded up in a dynamic array?
Jacob:
the 4 people that know how are lazy
Robin:
Who are those 4 people?
Jacob:
um
you, me, and 2 others?
Reply
#8
Yes. Now it just says, "Are you sure that you want to forget this spell?" Without naming the spell. Smile

~Braydok
Reply
#9
i did that fix Verrigan but im getting an error on 'Then' at end and it says..

Quote:Expected: list separator or )

Any idea?
Reply
#10
Add a ) somewhere, or remove a ( somewhere
Reply
#11
Sonire Wrote:Add a ) somewhere, or remove a ( somewhere

:lol: :lol: Love how simple the solutions to the problems being posted today are
Reply
#12
funkynut Wrote:
Sonire Wrote:Add a ) somewhere, or remove a ( somewhere

:lol: :lol: Love how simple the solutions to the problems being posted today are

That's because the problems are simple. So are the people who post them.
Quote:Robin:
Why aren't maps and shit loaded up in a dynamic array?
Jacob:
the 4 people that know how are lazy
Robin:
Who are those 4 people?
Jacob:
um
you, me, and 2 others?
Reply
#13
Robin Wrote:
funkynut Wrote:
Sonire Wrote:Add a ) somewhere, or remove a ( somewhere

:lol: :lol: Love how simple the solutions to the problems being posted today are

That's because the problems are simple. So are the people who post them.
I was trying to say that, just in a tactful way Big Grin
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)