Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Braydo25

Members
  • Posts

    112
  • Joined

  • Last visited

    Never

Posts posted by Braydo25

  1. Alright, i've been trying to get custom bar that are drawn with dx in the main window in the top left corner and stay there while on scrolling maps.

    so basically what i need is some code that will draw the box top left corner, stay there when moving around scrolling.

    I've been fiddling with different formulas to try and get it to work either they move when on a scrolling map, or they get drawn in the wrong place and its really beginning to annoy me.
  2. I've been working on a gui for lunar crescent for a few days, its looking really nice, photoshopped, effects, everything. I'm shrinking the game window to incorporate just the display screen where chars walk around and stuff, and a partial dx gui tacked on to it. But for the gui and this is the question I have, for inventory, equipment, etc windows, should they pop-up outside of the main game window? or within the main game display screen.

    I would be making them display within the display screen but sadly i dont have time to swap out dx7 for dx8 to incorporate alpha blending to make it look better.

    so pop up windows outside the main game window, or pop up windows within the main display screen?
  3. Been working on this for a while, currently I'm still developing the custom engine.  but when im done with that, im looking for someone who has a lot of experience with spriting/paperdolling.

    you can look at this to see what the games like: http://www.touchofdeathforums.com/smf/index.php?topic=27228.0

    disregard the co-admin request, that no longer is open

    currently me and hyperion are mapping, im doing the source editing, scripting, gui-ing with dx.

    just need someone with spriting experience!  :sad:
  4. So, I've decided to script all my spells, since the default types are too generic, so what commands should a scripted spell entail?

    so my questions are,

    How do you set the spells range?

    What if i wanted to make a buff that lasted for a certain amount of time?

    Is It possible to set a target as "Stunned" where they can't move or move slowly for a period of time?
  5. Well, some of you probably think 3 characters max per account is too much or maybe too little, you can simply change this by opening up your server source and client source and searching for "MAX_CHARS =" while having a code window up. you can search by pressing CTRL + F. Change the MAX_CHARS = 3 to however many char slots you want an account to hold. the same thing has to be done to the client and server source.
  6. My main isnt erroring when i use any other command such as /warp or anything, im using barons ee1 when i place the tile and walk on it, nothing happens. whats wrong?

    ```
    Case 4 ' Magi Arena Blue
    If GetPlayerLevel(Index) < 20 And GetPlayerLevel(Index) > 45 Then
        Call PlayerMsg(Index, "You Must Be Level 20 To 45 To Enter This PvP Arena!", 4)
        Call PlayerWarp(Index, 112, 7, 8)
            ElseIf GetPlayerLevel(Index) >= 20 And GetPlayerLevel(Index) <= 45 Then
            Call PlayerMsg(Index, "Welcome To The Arena!", 4)
            Call PlayerWarp(Index, 117, 7, 7)
    End If
    ```
  7. Well since there is no Etc attribute for an item (WHICH REALLY NEEDS TO BE ADDED) because I have been working on quests that require 15 of an item. Currency doesnt work for this Item becuse it needs to be able to be sold too, Key type doesnt work because when its set to stackable they don't stack. Do you think its possible to make the item type scriptable (i dont think so, if it is… BALIZTIK1 HELP =P  )

    If you've ever played Ragnarok Online, I'm talking about an item type like the etc. category in your inventory.
  8. Here's a little source code I put together that makes Reqs and other unwanted things NOT display on hp potions, keys, currency etc.

    Find This Line Of Code In Your Mirage code under mousemove for picInv

    ```
    Private Sub picInv_MouseMove(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim d As Long
    d = Index

    Dim ItemNum As Long
    ItemNum = GetPlayerInvItemNum(MyIndex, d + 1)

        If Player(MyIndex).Inv(d + 1).num > 0 Then
            If Item(GetPlayerInvItemNum(MyIndex, d + 1)).Type = ITEM_TYPE_CURRENCY Or Item(GetPlayerInvItemNum(MyIndex, d + 1)).Stackable = 1 Then
                If Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).desc) = "" Then
                    itmDesc.Height = 17
                    itmDesc.Top = 224
                Else
                    itmDesc.Height = 233
                    itmDesc.Top = 8
                End If
            Else
                If Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).desc) = "" Then
                    itmDesc.Height = 145
                    itmDesc.Top = 96
                Else
                    itmDesc.Height = 233
                    itmDesc.Top = 8
                End If
            End If
            If Item(GetPlayerInvItemNum(MyIndex, d + 1)).Type = ITEM_TYPE_CURRENCY Or Item(GetPlayerInvItemNum(MyIndex, d + 1)).Stackable = 1 Then
                descName.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (" & GetPlayerInvItemValue(MyIndex, d + 1) & ")"
            Else
                If GetPlayerWeaponSlot(MyIndex) = d + 1 Then
                    descName.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                ElseIf GetPlayerArmorSlot(MyIndex) = d + 1 Then
                    descName.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                ElseIf GetPlayerHelmetSlot(MyIndex) = d + 1 Then
                    descName.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                ElseIf GetPlayerShieldSlot(MyIndex) = d + 1 Then
                    descName.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                ElseIf GetPlayerLegsSlot(MyIndex) = d + 1 Then
                    descName.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                ElseIf GetPlayerRingSlot(MyIndex) = d + 1 Then
                    descName.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                ElseIf GetPlayerNecklaceSlot(MyIndex) = d + 1 Then
                    descName.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name) & " (worn)"
                Else
                    descName.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).Name)
                End If
            End If
    ```
    Put this after it

    ```
    If Not Item(ItemNum).Type = ITEM_TYPE_CURRENCY Or ITEM_TYPE_POTIONADDHP Or ITEM_TYPE_POTIONADDMP Or ITEM_TYPE_POTIONADDSP Or ITEM_TYPE_POTIONSUBHP Or ITEM_TYPE_POTIONSUBMP Or ITEM_TYPE_POTIONSUBSP Or ITEM_TYPE_KEY Or ITEM_TYPE_SPELL Or ITEM_TYPE_WEAPON Then
    descStr.Caption = Item(GetPlayerInvItemNum(MyIndex, d + 1)).StrReq & " Strength"
    descDef.Caption = Item(GetPlayerInvItemNum(MyIndex, d + 1)).DefReq & " Defence"
    descSpeed.Caption = Item(GetPlayerInvItemNum(MyIndex, d + 1)).SpeedReq & " Speed"
    descHpMp.Caption = "HP: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddHP & " MP: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddMP & " SP: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddSP
    descSD.Caption = "Str: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddStr & " Def: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddDef
    descMS.Caption = "Magi: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddMagi & " Speed: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddSpeed
    desc.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).desc)
    descMS.Visible = True
    descSD.Visible = True
    descHpMp.Visible = True
    descSpeed.Visible = True
    descSpeed.Visible = True
    descDef.Visible = True
    descStr.Visible = True
    Label15.Visible = True
    Label5.Visible = True
    descDmg.Visible = True
    Label19.Visible = True

    End If

    If Item(ItemNum).Type = ITEM_TYPE_CURRENCY Or ITEM_TYPE_POTIONADDHP Or ITEM_TYPE_POTIONADDMP Or ITEM_TYPE_POTIONADDSP Or ITEM_TYPE_POTIONSUBHP Or ITEM_TYPE_POTIONSUBMP Or ITEM_TYPE_POTIONSUBSP Or ITEM_TYPE_KEY Or ITEM_TYPE_SPELL Or ITEM_TYPE_WEAPON Then
    desc.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).desc)
    descMS.Visible = False
    descSD.Visible = False
    descHpMp.Visible = False
    descSpeed.Visible = False
    descSpeed.Visible = False
    descDef.Visible = False
    descStr.Visible = False
    Label15.Visible = False
    Label5.Visible = False
    descDmg.Visible = False
    Label19.Visible = False
            End If

            If Item(ItemNum).Type = ITEM_TYPE_WEAPON Then
        descStr.Caption = Item(GetPlayerInvItemNum(MyIndex, d + 1)).StrReq & " Strength"
    descDef.Caption = Item(GetPlayerInvItemNum(MyIndex, d + 1)).DefReq & " Defence"
    descSpeed.Caption = Item(GetPlayerInvItemNum(MyIndex, d + 1)).SpeedReq & " Speed"
    descHpMp.Caption = "HP: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddHP & " MP: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddMP & " SP: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddSP
    descSD.Caption = "Str: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddStr & " Def: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddDef
    descMS.Caption = "Magi: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddMagi & " Speed: " & Item(GetPlayerInvItemNum(MyIndex, d + 1)).AddSpeed
    desc.Caption = Trim$(Item(GetPlayerInvItemNum(MyIndex, d + 1)).desc)
        End If
    End Sub
    ```
    OH 1 THING, remove this: descDmg.Visible = False
    Label19.Visible = False

    from anywhere in there, thats something for my item description table that you don't need and your source won't compile unless you delete it out of the code i posted.
  9. Alright so I was working on my source and decided to resize my exp, hp, and mp bars to match up with the box they should be in, but now they get really weird when hiting high values of hp, or exp, or mp and go out of the designated box they should be in, how do i fix this?

    screeny attached
  10. ```
    :: Access ::
    'ADMIN_MONITER = 1
    'ADMIN_MAPPER = 2
    'ADMIN_DEVELOPER = 3
    'ADMIN_CREATOR = 4

    ':: Text Color Code ::
    'Black = 0
    'Blue = 1
    'Green = 2
    'Cyan = 3
    'Red = 4
    'Magenta = 5
    'Brown = 6
    'Grey = 7
    'DarkGrey = 8
    'BrightBlue = 9
    'BrightGreen = 10
    'BrightCyan = 11
    'BrightRed = 12
    'Pink = 13
    'Yellow = 14
    'White = 15

    Sub JoinGame(index)
    Dim GameName
    Dim MOTD

    GameName = Trim(GetVar("Data.ini", "CONFIG", "GameName"))
    MOTD = GetVar("motd.ini", "MOTD", "Msg")

        ' Send them welcome
        Call PlayerMsg(index, "Welcome to " & GameName & "!", 15)

        ' Send motd
        If Trim(MOTD) <> "" Then
            Call PlayerMsg(index, "MOTD: " & MOTD, 11)
        End If

    'Human Skill Start
    If GetVar("OneTime.ini", GetPlayerName(index), "Spells") = "" And GetPlayerClass(index) = 0 Then
    Call SetPlayerSpell(index, 1, 5)
    Call SetPlayerSpell(index, 2, 6)
    Call SetPlayerSpell(index, 3, 7)
    Call PutVar("OneTime.ini", GetPlayerName(index), "Spells", "Done")
    End If

    'Magi Skill Start
    If GetVar("OneTime.ini", GetPlayerName(index), "Spells") = "" And GetPlayerClass(index) = 1 Then
    Call SetPlayerSpell(index, 1, 13)
    Call SetPlayerSpell(index, 2, 14)
    Call SetPlayerSpell(index, 3, 15)
    Call PutVar("OneTime.ini", GetPlayerName(index), "Spells", "Done")
    End If

    'Druid Skill Start
    If GetVar("OneTime.ini", GetPlayerName(index), "Spells") = "" And GetPlayerClass(index) = 2 Then
    Call SetPlayerSpell(index, 1, 9)
    Call SetPlayerSpell(index, 2, 10)
    Call SetPlayerSpell(index, 3, 11)
    Call PutVar("OneTime.ini", GetPlayerName(index), "Spells", "Done")
    End If

    'Trogdin Skill Start
    If GetVar("OneTime.ini", GetPlayerName(index), "Spells") = "" And GetPlayerClass(index) = 3 Then
    Call SetPlayerSpell(index, 1, 1)
    Call SetPlayerSpell(index, 2, 2)
    Call SetPlayerSpell(index, 3, 3)
    Call PutVar("OneTime.ini", GetPlayerName(index), "Spells", "Done")
    End If

    End Sub
    ```
    well I recently transfered everything from T.E. to baron EE 1.0 for more features, well now this part of my main isnt executing when a new player joins, whats wrong?
  11. Well, I know it hasn't been made yet, and I personally requested it a while ago. Well I've decided to make a Separate map editing program that exports in eclipse format (map1, map2, etc) it will have a similiar interface to the 2.5 map editor but I am NOT putting in the scripted tile (i,e warp, block, etc) because i've noticed that the newer (2.7)  may need a conversion or pre -set tile #s might not match up which may cause errors..

    regards, Braydon
  12. Hey everyone, I've been working on Lunar Crescent for a while (some of you probably already know that) but I've been doing everything by myself (i have absolutely no team) and the work load is pretty tiring but i'll keep on with it. But to the point, i'm looking for someone who is VERY experienced with the eclipse source coding (as i am still learning but know most of it) to help out, maybe clean up some of what i've done and help debug the few errors i'm currently having, you will be a co-admin (myself being the other)

    Here's some previews of lunar crescent who want to see what their applying for before actually applying:

    Some of the mapping i've done for it (80+ done so far)

    ![](http://img260.imageshack.us/img260/7393/coalencampmentnm2.png)

    ![](http://img260.imageshack.us/img260/634/betterbv5.png)

    im to lazy to post the others i've made, just look in the mapping show off section.

    source gui edit, less cluttered better looking in-game interface with fully functional pop up windows to reduce clutter. here's an example of it with the spells and abilities window open:

    ![](http://img507.imageshack.us/img507/1849/uniquenf2.png)

    please do not post here if you don't know the code that well, lunar crescent really needs some ready and willing to finish it up, we've already got players waiting to test on the forums, the communitys forums are growing daily (thanks to advertising =)    )

    please post if you would like to apply

    regards, braydon

    you can check out the games current site here:  www.lunarcrescent.darkbb.com
  13. I can't seem to find it, i've looked through it a few times. help  :?:

    ```
    ':: Text Color Code ::
    'Black = 0
    'Blue = 1
    'Green = 2
    'Cyan = 3
    'Red = 4
    'Magenta = 5
    'Brown = 6
    'Grey = 7
    'DarkGrey = 8
    'BrightBlue = 9
    'BrightGreen = 10
    'BrightCyan = 11
    'BrightRed = 12
    'Pink = 13
    'Yellow = 14
    'White = 15

    :: Mini Scripting Explanation :: 
    'Writing with ' before it are comments and do not do anything.
    'Subs are mini packages of code that run as a group from top to bottom
    'You can run subs by calling them. ie call onattack(index) and index would be a player number.
    'Dims are boxes for storing data in. You say dim MYSTUFF, then MYSTUFF = "thisword", and you could use MYSTUFF where ever 'you needed the text "thisword"
    'Different commands have different pieces of info you must give to them. See the scripting forum for more help.

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs whenever a new character is created.
    '  Warning: This is intended for creating new values, etc. only.
    '  The player is NOT logged into the game when this runs, so commands
    '  such as PlayerMsg will NOT work!
    Sub OnNewChar(index, charNum)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub is used to run timed events based off the server time. 
    Sub TimedEvent(Hours,Minutes,Seconds)     
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        ' If minutes are zero then
    If minutes = 0 Then
    ' If seconds are also zero then
    If seconds = 0 Then
    ' Tell the admins to come check out the forums
    Call adminmsg("Welcome Admin!", 14)
    End If
    End If

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs every time the player hits the ctrl key and attacks.
    Sub OnAttack(index)                                               
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    'Call playermsg(index, "whiz bang slash etc. You be attacking now!", 14, 2)
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when any player presses the PageUp key
    Sub HotScript1(index)                                           
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when any player presses the Delete key
    Sub HotScript2(index)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when players press the End key
    Sub HotScript3(index)                                             
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when players press the PageDown key
    Sub HotScript4(index)                                           
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when something on a custom menu is clicked. 
    Sub MenuScripts(index, Clicked_Index, Menu_Type)         
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Dim field_message
    Dim menu_title
    menu_title = getplayermenuclicktitle(index)
    field_message = getplayermenuclickmsg(index)

    ' Figure out what type of button was clicked ie picture, textbox, label.
    Select Case Menu_Type

    Case 1
    ' PICTURE WAS CLICKED
    ' Player has clicked a picture box whos number is clicked_index on the custom menu named menu_title
    Call playermsg(index, "Clicked  picture number " & clicked_index & " on the menu named " & menu_title, 14)

    Case 2
    ' FIELD WAS CLICKED   
    ' Player has clicked a text field OK button whos number is clicked_index on the custom menu named menu_title.
    Call playermsg(index, "Clicked  field number " & clicked_index & " on the menu named " & menu_title & ". The field text was " & field_message, 14)

    Case 3
    ' LABEL WAS CLICKED
    ' Player has clicked a label button whos number is clicked_index on the custom menu named menu_title
    Call playermsg(index, "Clicked  label number " & clicked_index & " on the menu named " & menu_title, 14)

    End Select

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when a player logs into the game.
    Sub JoinGame(index) 

    'Human Skill Start
    If GetVar("OneTime.ini", GetPlayerName(index), "Spells") = "" And GetPlayerClass(index) = 0 Then
    Call SetPlayerSpell(index, 1, 5)
    Call SetPlayerSpell(index, 2, 6)
    Call SetPlayerSpell(index, 3, 7)
    Call PutVar("OneTime.ini", GetPlayerName(index), "Spells", "Done")
    End If

    'Magi Skill Start
    If GetVar("OneTime.ini", GetPlayerName(index), "Spells") = "" And GetPlayerClass(index) = 1 Then
    Call SetPlayerSpell(index, 1, 13)
    Call SetPlayerSpell(index, 2, 14)
    Call SetPlayerSpell(index, 3, 15)
    Call PutVar("OneTime.ini", GetPlayerName(index), "Spells", "Done")
    End If

    'Druid Skill Start
    If GetVar("OneTime.ini", GetPlayerName(index), "Spells") = "" And GetPlayerClass(index) = 2 Then
    Call SetPlayerSpell(index, 1, 9)
    Call SetPlayerSpell(index, 2, 10)
    Call SetPlayerSpell(index, 3, 11)
    Call PutVar("OneTime.ini", GetPlayerName(index), "Spells", "Done")
    End If

    'Trogdin Skill Start
    If GetVar("OneTime.ini", GetPlayerName(index), "Spells") = "" And GetPlayerClass(index) = 3 Then
    Call SetPlayerSpell(index, 1, 1)
    Call SetPlayerSpell(index, 2, 2)
    Call SetPlayerSpell(index, 3, 3)
    Call PutVar("OneTime.ini", GetPlayerName(index), "Spells", "Done")
    End If

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    On Error Resume next
    Dim GameName
    Dim MOTD
    Dim firstjoin

    ' Load the gamename from the data.ini file into the variable named GameName
    GameName = Trim(GetVar("Data.ini", "CONFIG", "GameName"))
    ' Load the message of the day from the motd.ini file into the variable named MOTD
    MOTD = GetVar("motd.ini", "MOTD", "Msg")

        ' Send the player a welcome to the GameName we loaded up earlier
        Call PlayerMsg(index, "Welcome to " & GameName & "!", 15)

        ' Send motd
        If Trim(MOTD) <> "" Then
        ' If MOTD isnt blank then tell the joining player the message loaded earlier
            Call PlayerMsg(index, "MOTD: " & MOTD, 11)
        End If

        ' Check if game is scrolling or non scrolling and change accordingly
    If IsScrolling() = 1 Then

        ' Check numbers arent beyond the limits for the map size
    If getbootx(index) <= 30 and getbootx(index) >= 0 and getbooty(index) <= 30 and getbooty(index) >= 0 Then
    ' If numbers are legitimate, warp the player
    Call Playerwarp(Index, getbootmap(index), getbootx(Index), getbooty(Index))
    End If

    Else

        ' Check numbers arent beyond the limits for the map size
    If getbootx(index) <= 19 and getbootx(index) >= 0 and getbooty(index) <= 14 and getbooty(index) >= 0 Then
    ' If numbers are legitimate, warp the player
    Call Playerwarp(Index, getbootmap(index), getbootx(Index), getbooty(Index))
    End If

    End If

    ' Check for very first join and if it is set the player as server owner and with access level 5

    firstjoin = "" & getvar("data.ini", "config", "owner")
    If firstjoin = "" Then
    Call setplayeraccess(index, 5)
    Call playermsg(index, "Congratulations, you have joined your Eclipse server and been given creator ststus. Press F1 to begin editing.", 14)
    Call putvar("data.ini", "config", "owner", trim(getplayername(index)) )
    End If

    'Send Whos Online
    Call SendWhosOnline(index)
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when a player logs out of the game
    Sub LeftGame(index)                                             
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Dim GameName
    Dim n

    ' Load the gamename from the data.ini file into the variable named GameName
    GameName = Trim(GetVar("Data.ini", "CONFIG", "GameName"))

        ' Check if game is scrolling or non scrolling and change accordingly
    If IsScrolling() = 1 Then

        ' Check numbers arent beyond the limits for the map size
    If getbootmap(index) > 0 and getbootx(index) <= 30 and getbootx(index) >= 0 and getbooty(index) <= 30 and getbooty(index) >= 0 Then
    ' If numbers are legitimate, warp the player
    Call Playerwarp(Index, getbootmap(index), getbootx(Index), getbooty(Index))
    End If

    Else

        ' Check numbers arent beyond the limits for the map size
    If getbootmap(index) > 0 and getbootx(index) <= 19 and getbootx(index) >= 0 and getbooty(index) <= 14 and getbooty(index) >= 0 Then
    ' If numbers are legitimate, warp the player
    Call Playerwarp(Index, getbootmap(index), getbootx(Index), getbooty(Index))
    End If

    End If
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when a players experience exceeds the next level requirement.                                                               
    Sub PlayerLevelUp(index)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Dim I   
    Dim D
    Dim C

        ' Calculating the number of points to give to players and setting exp to appropriate amounts.
        C = 0
        Do While GetPlayerExp(index) => GetPlayerNextLevel(index)   
            D = GetPlayerExp(index) - GetPlayerNextLevel(index)
            Call SetPlayerLevel(index, GetPlayerLevel(index) + 1)
            I = Int(GetPlayerSpeed(index) / 10)
            If I < 1 Then I = 1
            If I > 3 Then I = 3

            Call SetPlayerPoints(index, GetPlayerPoints(index) + I)
            Call SetPlayerExp(index, D)     
            C = C + 1
        Loop 

    ' Tells the player how many points they have to distribute
        Call BattleMsg(index, "You have " & GetPlayerPoints(index) & " stat points.", 9, 0) 
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when a player uses one of the points given on an attribute to level up.
    Sub UsingStatPoints(index, PointType)                           
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ' Decide which point type was clicked and run different things accordingly.
    Select Case PointType

        Case 0
        ' STRENGTH WAS CLICKED +
        ' Gives you a set max
            If GetPlayerSTR(index) + 1 > 1000 Then
            Call BattleMsg(index, "You have maxed your strength!", 12, 0)
            Exit Sub
            End If
            Call SetPlayerSTR(index, GetPlayerSTR(index) + 1)
            Call BattleMsg(index, "You have gained more strength!", 15, 0)

        Case 1
        ' DEFENCE WAS CLICKED +
        ' Gives you a set max
            If GetPlayerDEF(index) + 1 > 1000 Then
            Call BattleMsg(index, "You have maxed your defence!", 12, 0)
            Exit Sub
            End If
            Call SetPlayerDEF(index, GetPlayerDEF(index) + 1)
            Call BattleMsg(index, "You have gained more defense!", 15, 0)

    Case 2
        ' MAGIC WAS CLICKED +
        ' Gives you a set max
            If GetPlayerMAGI(index) + 1 > 1000 Then
            Call BattleMsg(index, "You have maxed your magic!", 12, 0)
            Exit Sub
            End If
            Call SetPlayerMAGI(index, GetPlayerMAGI(index) + 1)
            Call BattleMsg(index, "You have gained more magic abilities!", 15, 0)

        Case 3
        ' SPEED WAS CLICKED +
        ' Gives you a set max
            If GetPlayerSpeed(index) + 1 > 1000 Then
            Call BattleMsg(index, "You have maxed your speed!", 12, 0)
            Exit Sub
            End If
            Call SetPlayerSPEED(index, GetPlayerSpeed(index) + 1)
            Call BattleMsg(index, "You have gained more speed!", 15, 0)

    End Select

    ' Remove one point after the sub in question is done
    Call SetPlayerPoints(index, GetPlayerPoints(index) - 1)
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when a player steps onto a scripted tile
    Sub ScriptedTile(index, Script)   

    Case 0

    Case 1 'scripted tile For Respawn
    Call PutVar("\accounts\" & GetPlayerName(index) & ".ini", "Respawn", "X", GetPlayerX(index))
    Call PutVar("\accounts\" & GetPlayerName(index) & ".ini", "Respawn", "Y", GetPlayerY(index))
    Call PutVar("\accounts\" & GetPlayerName(index) & ".ini", "Respawn", "Map", GetPlayerMap(index))       
    End Select
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ' Choose what number the tile was to determine the effect to have
    Select Case Script

        Case 0
        Call PutVar("Scripts\Charextras\test.ini", "TEST", "TEST", "TEST")
    Call Playermsg(index, "You feel like you should have seen something happen when you stood here", 14)
            End If

        Case 1
            ' Tile script 1 was stepped on
            ' Tells the player a message
            Call Playermsg(index, "You feel like you should have seen something happen when you stood here", 14)

    End Select
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when a player clicks on an OnClick tile
    Sub OnClick(index, script)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ' Determine which script to run
    Select Case script

    Case 0
    Call PlayerMsg(index, "You clicked a tile!", 15)

    End Select
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' Bit outdated, use custom menus, This sub runs when a player chooses yes or no on a player prompt.
    Sub PlayerPrompt(index, Prompt, Value)                           
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    If Prompt = 6 Then
        Select Case Value
            Case 0
                Call GlobalMsg("Hi This is a Yes answer!", 3)
            Case 1
                Call GlobalMsg("This is case 1?", 3)
        End Select
    Else
        Select Case Value
            Case 0
                Call GlobalMsg("Hi This is a No answer!", 4)
            Case 1
                Call GlobalMsg("This is no case 1?", 4)
        End Select
    End If
    End Sub 

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' Bit outdated, use custom menus, it will be easier and far more secure. Handles query box responses.
    Sub QueryBox(index, Prompt) 
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Value = GetVar("responses.ini","Responses",Cstr(index))
    End Sub

    Sub TimedEvent(hours, minutes, seconds)

    If hours=5 and minutes=5 and seconds=10 Then
    Call globalmsg("This is a timed broadcast at time 05:05:10", 14)
    End If

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs every time a player drops an item
    Sub OnItemDrop(index, map, itemnum, itemval, itemdur, item_index, inv_slot)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs each time a player changes map
    Sub OnMapLoad(index)     
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs whenever you kill an NPC. Good for boss kill checkers, monster trackers etc
    Sub onNPCdeath(index, map, NPC_Num, NPC_index)                   
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

    Call BattleMsg(index, "You killed a " & getnpcname(NPC_Num), 12, 0)
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub runs when a player is killed by another. Death occurs as normal externally to this script.
    Sub onPVPdeath(attacker,victim)                                 
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Dim Attackername
    Dim PlayerPk

    Call GlobalMsg(GetPlayerName(Victim) & " has been killed by " & GetPlayerName(Attacker), 12)

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub handles deaths in an arena. It has been preconfigured to warp to the map x y coords in the arena tile editor and heal the player who died.
    Sub onARENAdeath(attacker,victim)                               
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Dim map
    Dim x
    Dim y
    Dim data1
    Dim data2
    Dim data3
    map=GetPlayerMap(victim)
    x=GetPlayerX(victim)
    y=GetPlayerY(victim)
    Call GlobalMsg(GetPlayerName(Victim) & " has been defeated in the arena by " & GetPlayerName(Attacker), 12)
    Call setplayerhp(victim, getplayermaxhp(victim))
    Call setplayermp(victim, getplayermaxmp(victim))
    Call sendHp(victim)
    Call sendMP(victim)
    data1 = GetTileData1(map, x, y)
    data2 = GetTileData2(map,x,y)
    data3 = GetTileData3(map,x,y)
    Call playerwarp(victim, data1, data2, data3)
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Sub ScriptedSpell(index, Script)                                 
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Select Case Script

        Case 0
            ' Example of a scripted spell.
            Call MapMsg(GetPlayerMap(index), GetPlayerName(index) & "'s spell fizzles.", 12)

    End Select

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Sub ScriptedNPC(index, Script)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Select Case Script

    Case 0
    'Call playermsg(index, "Welcome to the mysterious store of uber!", 15)
    'Call goshopping(index,1)
    Exit Sub

    Case Else

    End Select

    End Sub

    'Runs whenever a key has been pressed
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Sub Keys(index, keyNum)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Select Case keyNum
    'Do what you want here
    End Select
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Sub Commands(index)                                             
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    On Error Resume Next
    Dim Portal
    Dim mapnum
    Dim x
    Dim y
    Dim i
    Dim TextSay
    Dim n
    Dim m
    Dim C   
    m = GetVar("Data.ini", "MAX", "MAX_MAPS")
    TextSay = GetVar("Scripts\Command.ini", "TEMP", "Text" & index) 

    Portal = GetPlayerHelmetSlot(index)

        i = 1
        C = 0

        If LCase(Mid(TextSay, 1, 9)) = "/warpmeto" Then
            If Len(TextSay) > 10 Then
                TextSay = Mid(TextSay, 10, Len(TextSay) - 9)

                ' Prevent hacking
                If GetPlayerAccess(index) < 2 Then
                    Call PlayerMsg(index, "You need be of a higher access to use this command!", 4)
                    Exit Sub
                End If

                ' The player
                n = FindPlayer(TextSay)

                If n <> index Then
                    If n > 0 Then
                        Call PlayerWarp(index, GetPlayerMap(n), GetPlayerX(n), GetPlayerY(n))
                        Call PlayerMsg(n, GetPlayerName(index) & " has warped to you.", 6)
                        Call PlayerMsg(index, "You have been warped to " & GetPlayerName(n) & ".", 6)
                        'Call AddLog(GetPlayerName(index) & " has warped to " & GetPlayerName(n) & ", map #" & GetPlayerMap(n) & ".", ADMIN_LOG)
                    Else
                        Call PlayerMsg(index, "Player is not online.", 15)
                    End If
                Else
                    Call PlayerMsg(index, "You cannot warp to yourself!", 15)
                End If
            End If
            Exit Sub
        End If

        If LCase(Mid(TextSay, 1, 9)) = "/warptome" Then
            If Len(TextSay) > 10 Then
                If GetPlayerAccess(index) < 2 Then
                    Call PlayerMsg(index, "You need be of a higher access to use this command!", 4)
                    Exit Sub
                End If

                n = Mid(TextSay, 10, Len(TextSay) - 9)
                n = FindPlayer(n)

                If n <> index Then
                    If n > 0 Then

                        Call PlayerWarp(n, GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index))
                        Call PlayerMsg(n, "You have been summoned by " & GetPlayerName(index) & ".", 9)
                        Call PlayerMsg(index, GetPlayerName(n) & " has been summoned.", 9)
                        'Call AddLog(GetPlayerName(index) & " has warped " & GetPlayerName(n) & " to self, map #" & GetPlayerMap(index) & ".", ADMIN_LOG)
                    Else
                        Call PlayerMsg(index, "Player is not online.", 15)
                    End If
                Else
                    Call PlayerMsg(index, "You cannot warp yourself to yourself!", 15)
                End If
            End If
            Exit Sub
        End If

        If LCase(Mid(TextSay, 1, 7)) = "/warpto" Then
            If Len(TextSay) > 8 Then
                TextSay = Mid(TextSay, 8, Len(TextSay) - 7)
                n = TextSay

                If n > 0 and n <= m Then
                    If GetPlayerAccess(index) < 2 Then
                        Call PlayerMsg(index, "You need be of a higher access to use this command!", 4)
                        Exit Sub
                    End If

                    'If Getattribute(GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index)) <> 1 Then

                    Call SpellAnim(1, GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index))
                    Call PlayerWarp(index, n, GetPlayerX(index), GetPlayerY(index))
                    Call SpellAnim(1, GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index))
                    Call PlayerMsg(index, "You have been warped to map #" & n, 9)
                    'Call AddLog(GetPlayerName(index) & " warped to map #" & n & ".", ADMIN_LOG)
                Else
                    Call PlayerMsg(index, "Invalid map number.", 4)
                End If
            End If
            Exit Sub
        End If

        If LCase(Trim(TextSay)) = "/help" Then
            Call PlayerMsg(index, "Social Commands:", 15)
            Call PlayerMsg(index, "'msghere = Broadcast Message", 15)
            Call PlayerMsg(index, "-msghere = Emote Message", 15)
            Call PlayerMsg(index, "!namehere msghere = Player Message", 15)
            Call PlayerMsg(index, "Available Commands: /help, /info, /who, /fps, /inv, /stats, /train, /party, /join, /leave, /refresh", 15)
        Exit Sub
        End If

        If LCase(Trim(TextSay)) = "/calladmins" Then
            If GetPlayerAccess(index) = 0 Then
                Call GlobalMsg(GetPlayerName(index) & " needs an admin!", 10)
            Else
                Call PlayerMsg(index, "You are an admin!", 10)
            End If
        Exit Sub
        End If

        If LCase(Trim(TextSay)) = "/admin" Then
            If GetPlayerAccess(index) > 0 Then
                Call PlayerMsg(index, "Social Commands:", 15)
                Call PlayerMsg(index, """msghere = Global Admin Message", 15)
                Call PlayerMsg(index, "=msghere = Private Admin Message", 15)
                Call PlayerMsg(index, "Available Commands: /admin, /loc, /mapeditor, /warpmeto, /warptome, /warpto, /setsprite, /mapreport, /kick, /ban, /edititem, /respawn, /editnpc, /motd, /editshop, /ban, /editspell", 15)
            End If
        Exit Sub
        End If     

    Select Case LCase(Trim(TextSay))   
        Case "/away"
            'If GetPlayerAccess(index) >= 1 Then
                If GetVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "Status") = 0 Then
                    Call GlobalMsg(GetPlayerName(index) & " is now away.", 14)
                    Call PutVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "Status", 1)
                    Call PutVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "TempPlayerName", GetPlayerName(index))
                    Call SetPlayerName(index, GetPlayerName(index) & " - Away")
                    Call SendPlayerData(index)
                    Exit Sub
                ElseIf GetVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "Status") = 1 Then
                    Call SetPlayerName(index, GetVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "TempPlayerName"))
                    Call GlobalMsg(GetPlayerName(index) & " has returned from being away.", 14)
                    Call PutVar("accounts\" & GetPlayerLogin(index) & ".ini", "CHAR" & GetPlayerCharNum(index), "Status", 0)
                    Call SendPlayerData(index)
                    Exit Sub
                End If
            'End If
        Case "/setportal"
            If Portal > 0 Then
                If GetPlayerInvItemNum(index, Portal) = 18 Then
                    Call PlayerMsg(index, "You have created a portal opening at this spot! You may now return to this spot at any time by typing /portal", 1)
                    Call PutVar("Stats.ini", GetPlayerName(index), "map", GetPlayerMap(index))
                    Call PutVar("Stats.ini", GetPlayerName(index), "x", GetPlayerX(index))
                    Call PutVar("Stats.ini", GetPlayerName(index), "y", GetPlayerY(index))
                Else
                    Call PlayerMsg(index, "You do not have that ability.", 4)
                End If
                Exit Sub
            End If
        Case "/portal"
            If Portal > 0 Then
            mapnum = GetVar("Stats.ini", GetPlayerName(index), "map")
            y = GetVar("Stats.ini", GetPlayerName(index), "y")
            x = GetVar("Stats.ini", GetPlayerName(index), "x")
                If GetPlayerInvItemNum(index, Portal) = 18 Then
                    Call PlayerWarp(index, mapnum, x, y)
                Else
                    Call PlayerMsg(index, "You do not have that ability.", 4)
                End If
                Exit Sub
            End If 

    End Select

    Call PlayerMsg(index, "Thats not a valid command!", 12)
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub deals with dropping items on death. By default drops are disabled.
    Sub DropItems(index)                                             
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub is run whenever somebody dies outside of an arena.
    Sub OnDeath(index)
    'Respawn
    Call PlayerWarp(index, GetVar("\accounts\" & GetPlayerName(index) & ".ini", "Respawn", "Map"), GetVar("\accounts\" & GetPlayerName(index) & ".ini", "Respawn", "X"), GetVar("\accounts\" & GetPlayerName(index) & ".ini", "Respawn", "Y"))
    'Penalty

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Dim mapnum
    Dim x
    Dim y
    Dim i
    i = GetPlayerClass(index)

    mapnum = GetVar("Classes\Class" & i & ".ini", "CLASS", "Map")
    y = GetVar("Classes\Class" & i & ".ini", "CLASS", "y")
    x = GetVar("Classes\Class" & i & ".ini", "CLASS", "x")

    Call PlayerWarp(index, mapnum, x, y)
    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' This sub is run when a scripted item is used or double clicked.
    Sub ScriptedItem(index, Script)                                 
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Select Case Script

        Case 0
            Call PlayerMsg(index, "This item has no apparent use", 15)
    Exit Sub

    Case Else
    'No script found
    Call playermsg(index, "No script found. Please contact an admin to solve this problem.", 15)
    Exit Sub

    End Select

    End Sub

    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ' Handles custom timer events.
    Sub TMRTEST(index, script)                                       
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Select Case script

    Case 0
    Call playermsg(index, "Timed event occuring.", 12)
    Call Removetimer("tmrtest " & index & "," & script)       

    Case Else
    Call playermsg(index, "No timer found, please contact an admin to resolve this issue.", 12)
    Call Removetimer("tmrtest " &index & "," & script)

    End Select

    End Sub

    ```
  14. i did a massive source edit on the client and im having 1 problem what ive edited is the main gui for the game, it pops up different forms when you click a button on the Mirage.frm. so say you click inventory etc it pops up inventory and being cluttered in 1 window, like any mmo.

    well heres my problem, i've debugged it, compiled, looked back through all my edits and i think this is just me being retarded but when i run the client i get to the make character screen and hit use character it loads and pops up a message say "Your Missing Some Graphics Files!" so what am i missing? in my gfx folder these are the things i have

    GFX:
    Arrows
    BigSpells
    BigSprites
    emo
    Icons
    Items
    Skill
    Spells
    sprites

    and then tile sheets 1-10

    and then gui side i have all what it loads on formload and that is

    Skills
    and the 800X600

    so what am i missing?
  15. In my opinion, i feel as if the gui came out great, i just have 1 problem and thats matching up the hp, mp, and exp bar with the actual GUI image. anyone think they can tell me what to edit to fix it? well tell me what you think!

    ![](http://img261.imageshack.us/img261/6141/newinterfacenn6.png)
  16. im starting to make scripted spells, what do i have to put (value wise) for the Sub Spellanim to work and display the spell on the target? heres what i thought would work for a healing spell that revolved around magic, but it didnt. please explain this!
    ```
    Call Sub SpellAnim(1, GetPlayerTarget(index), GetPlayerTarget(index), GetPlayerTarget(index))
    Call SetPlayerHP(index, GetPlayerMAGI(index) * 3)
    Call PlayerMsg(index, "You Have Cast Bio-Rejuvanation On" & GetPlayerTarget(index), 4)
    ```
  17. Wheres The Problem At? Its A Scripted Tile

    ```
    Case 2 ' HEAL TILE
        If GetPlayerMaxHp(index) <> GetPlayerHp(index) Then
        If GetPlayerMaxMP(index) <> GetPlayerMp(index) Then
        Call PlayerMsg(index, "Your Hp And Mp Has Been Restored!", 2)
        Call SetPlayerHP(index, GetPlayerMaxHp(index))
          Call SetPlayerMP(index, GetPlayerMaxMP(index))
      End If
    End Select
    End Sub

    ```
×
×
  • Create New...