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

Ganjika

Members
  • Posts

    214
  • Joined

  • Last visited

    Never

Posts posted by Ganjika

  1. What changes (if any) would need to be made to make this compatible with 3.0 Nightly?

    UPDATE: Installedit ondragon Eclips (3.0 Nightly) and it works fine (IN TEST-COMPILE only, while trying to actually compile it i gt an rror) without and revisions with the exception of one

    error:

    i recieve a sub or function not defined at

    ```

    BltShop

    ```
    in ModGameLogic

    (provided below for rference)

    ```

    Public Sub OpenShop(ByVal shopnum As Long)

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    InShop = shopnum

    ShopAction = 0

    frmMain.picShop.Picture = Nothing

    If Shop(shopnum).ShopType = 0 Then

    frmMain.picShop.Picture = LoadPicture(App.Path & "\data files\graphics\gui\main\shop.jpg")

    frmMain.imgShopSell.Visible = True

    End If

    If Shop(shopnum).ShopType = 1 Then

    frmMain.picShop.Picture = LoadPicture(App.Path & "\data files\graphics\gui\main\anvil.jpg")

    frmMain.imgShopSell.Visible = False

    End If

    frmMain.picCover.Visible = True

    frmMain.picShop.Visible = True

    BltShop

    frmMain.picShopItems.Refresh

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "OpenShop", "modGameLogic", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    ```

    (the line highlighted is the first one: (Private Sub scrlCraftingRew_Change())

    ```

    Private Sub scrlCraftingRew_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblCraftingRew.Caption = "Crafting: " & scrlCraftingRew.Value

    Item(EditorIndex).CrRew = scrlCraftingRew.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlCraftingRew_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private LastIndex As Long

    ```

    UPDATE: I deleted 'Private LastIndex As Long'

    and i couldnt find anything in the tutorial about it - not sure what it was… is/was it important? it works without it.
  2. I do already have a sufficientloading screen, and the intro screen is cool too(unless i could find out how to make the login screens "main menu" translucent and maybe in the long run would want to modify the part that says "main menu" even if it wasn't translucent)

    ![](http://i1127.photobucket.com/albums/l632/EsoGuildPB/intro.png)

    Would be cool to see either a Papyrus or scroll (an old map look sorta like age of empires 2) themed GUI for everything beyond this login screen which gives a good view of the game as well) and looks like its written on papyrus or a scroll which either covers much of what it could be on and therefor is no background beyond that or is stapled or otherwised 'posted' on a background (a tree background maybe?) or maybe posted to a billboard background while still retaining that natural almost painted or drawn feeling )similiar to the visual feeling of your 'stone' gui setup you show above.

    I really dig what you did here and Thank You heartily should you choose to help me design an epic GUI for a engine I'm designing (I eventually would like to release a generic version of the finished engine to the community once the crafting system and a few other bugs are worked out - its based on dragon eclipse) - In any case, Everything here looks really cool, Good work.. Thanks for reading. =]
  3. Not sure if there is supposed to be a 'Recipe" selection in drop-down (cmbtype) that makes frarecipe visable but:

    Found out I could at least get frarecipe visable (if i so much as use the dropdown menu that is cmbtype after switching the below

    'frarecipe.visable=false' to true and it will become visable but it will subscript out of range if i (i think) try to ask it to do something its not supposed to since it doesnt go away even after clicking "none" in cmbtype, i turned it back to normal and decided to post here. projectiles is still missing in action but i can see it in VB6.

    Sorry to post so much on this topic, I -do- still plan on releasing a working version of eclipse with this feature on it in its working form as soon as I can figure out A) how it works and ![B)](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/cool.png) how to get it working -

    ![](http://i1127.photobucket.com/albums/l632/EsoGuildPB/crafting2.png)

    Also: The 'Crafting Tool:' dropdown reads correctly but it doesn't stick (i dont think) when i return to item editor it just says "Combo1".

    Below is the part of Frm_Editor_Item (in cmbType) which talks about Item_Type_Recipe

    ```

    If (cmbType.ListIndex = ITEM_TYPE_RECIPE) Then

    fraRecipe.Visible = True

    Else

    fraRecipe.Visible = False

    End If

    Item(EditorIndex).Type = cmbType.ListIndex

    ```

    Below is the part that (as ar as I know) works. Lets get this whole entire thing working so we can put it out for the entire

    community to utilize.

    ![](http://i1127.photobucket.com/albums/l632/EsoGuildPB/crafting.png)

    ![](http://i1127.photobucket.com/albums/l632/EsoGuildPB/crafting3.png)![](http://i1127.photobucket.com/albums/l632/EsoGuildPB/craft4.png)

    UPDATE: -Matthew- took a look at my project and fixed the Projectiles window (it wsnt popping up at the right time)

    but we still need to figure out why/how to get the crafting area (fraRecipe) to pop up at the right time as well as

    figuring out how to get cmbCTool functional - currently it reads and shows up right but if you set an item with cmbCTool

    (to say "dwarf hammer" for example) it just goes back to "none" when i reload the item editor.
  4. I think the problem is that (i could be wrong) "recipe" should be appearing in CmbType in Item Editor (though i could be wrong) - its just not appearing (in game) in the drop down list and hence i dont see part of the mod as i should.

    UPDATE: My Projectiles window isn't showing up as it should either (like the frarecipe, it just isn't there when in game). any ideas?

    UPDATE 2: Accidently double posted this when trying to paste this into a PM. sorry about that :'(

    HOW IT SHOULD LOOK:

    ![](http://i1127.photobucket.com/albums/l632/EsoGuildPB/howitshouldlook.png)

    HOW IT -DOES- LOOK:

    ![](http://i1127.photobucket.com/albums/l632/EsoGuildPB/isthisnormal.png)

    Frm_Item_Editor (Client)

    ```

    Option Explicit

    Private LastIndex As Long

    Private Sub ChkTwoh_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If ChkTwoh.Value = 0 Then

    Item(EditorIndex).istwohander = False

    Else

    Item(EditorIndex).istwohander = True

    End If

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "chkTwoh", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbBind_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).BindType = cmbBind.ListIndex

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmbBind_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbClassReq_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).ClassReq = cmbClassReq.ListIndex

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmbClassReq_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbSound_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If cmbSound.ListIndex >= 0 Then

    Item(EditorIndex).sound = cmbSound.List(cmbSound.ListIndex)

    Else

    Item(EditorIndex).sound = "None."

    End If

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmdSound_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbTool_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Data3 = cmbTool.ListIndex

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmbTool_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmdDelete_Click()

    Dim tmpIndex As Long

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    ClearItem EditorIndex

    tmpIndex = lstIndex.ListIndex

    lstIndex.RemoveItem EditorIndex - 1

    lstIndex.AddItem EditorIndex & ": " & Item(EditorIndex).Name, EditorIndex - 1

    lstIndex.ListIndex = tmpIndex

    ItemEditorInit

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmdDelete_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub Form_Load()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    scrlPic.max = numitems

    scrlAnim.max = MAX_ANIMATIONS

    scrlPaperdoll.max = NumPaperdolls

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "Form_Load", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmdSave_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    Call ItemEditorOk

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmdSave_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmdCancel_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    Call ItemEditorCancel

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmdCancel_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbType_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    If (cmbType.ListIndex >= ITEM_TYPE_WEAPON) And (cmbType.ListIndex <= ITEM_TYPE_SHIELD) Then

    fraEquipment.Visible = True

    'scrlDamage_Change

    Else

    fraEquipment.Visible = False

    End If

    If cmbType.ListIndex = ITEM_TYPE_CONSUME Then

    fraVitals.Visible = True

    'scrlVitalMod_Change

    Else

    fraVitals.Visible = False

    End If

    If (cmbType.ListIndex = ITEM_TYPE_SPELL) Then

    fraSpell.Visible = True

    Else

    fraSpell.Visible = False

    End If

    If (cmbType.ListIndex = ITEM_TYPE_RECIPE) Then

    fraRecipe.Visible = True

    Else

    fraRecipe.Visible = False

    End If

    Item(EditorIndex).Type = cmbType.ListIndex

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmbType_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub lstIndex_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    ItemEditorInit

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "lstIndex_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAccessReq_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblAccessReq.Caption = "Access Req: " & scrlAccessReq.Value

    Item(EditorIndex).AccessReq = scrlAccessReq.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAccessReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAddHp_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblAddHP.Caption = "Add HP: " & scrlAddHp.Value

    Item(EditorIndex).AddHP = scrlAddHp.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAddHP_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAddMp_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblAddMP.Caption = "Add MP: " & scrlAddMP.Value

    Item(EditorIndex).AddMP = scrlAddMP.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAddMP_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAddExp_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblAddExp.Caption = "Add Exp: " & scrlAddExp.Value

    Item(EditorIndex).AddEXP = scrlAddExp.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAddExp_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAnim_Change()

    Dim sString As String

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    If scrlAnim.Value = 0 Then

    sString = "None"

    Else

    sString = Trim$(Animation(scrlAnim.Value).Name)

    End If

    lblAnim.Caption = "Anim: " & sString

    Item(EditorIndex).Animation = scrlAnim.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAnim_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlDamage_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblDamage.Caption = "Damage: " & scrlDamage.Value

    Item(EditorIndex).Data2 = scrlDamage.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlDamage_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlFishing_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblFishing.Caption = "Fishing: " & scrlFishing.Value

    Item(EditorIndex).FXP = scrlFishing.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlFishing_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlLevelReq_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblLevelReq.Caption = "Level req: " & scrlLevelReq

    Item(EditorIndex).LevelReq = scrlLevelReq.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlLevelReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlMining_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblMining.Caption = "Mining: " & scrlMining.Value

    Item(EditorIndex).MXP = scrlMining.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlMining_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlPaperdoll_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblPaperdoll.Caption = "Paperdoll: " & scrlPaperdoll.Value

    Item(EditorIndex).Paperdoll = scrlPaperdoll.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlPaperdoll_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlPic_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblPic.Caption = "Pic: " & scrlPic.Value

    Item(EditorIndex).Pic = scrlPic.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlPic_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlPrice_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblPrice.Caption = "Price: " & scrlPrice.Value

    Item(EditorIndex).Price = scrlPrice.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlPrice_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlRarity_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblRarity.Caption = "Rarity: " & scrlRarity.Value

    Item(EditorIndex).Rarity = scrlRarity.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlRarity_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlSpeed_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblSpeed.Caption = "Speed: " & scrlSpeed.Value / 1000 & " sec"

    Item(EditorIndex).speed = scrlSpeed.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlSpeed_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlStatBonus_Change(Index As Integer)

    Dim text As String

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    Select Case Index

    Case 1

    text = "+ Str: "

    Case 2

    text = "+ End: "

    Case 3

    text = "+ Int: "

    Case 4

    text = "+ Agi: "

    Case 5

    text = "+ Will: "

    End Select

    lblStatBonus(Index).Caption = text & scrlStatBonus(Index).Value

    Item(EditorIndex).Add_Stat(Index) = scrlStatBonus(Index).Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlStatBonus_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlStatReq_Change(Index As Integer)

    Dim text As String

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    Select Case Index

    Case 1

    text = "Str: "

    Case 2

    text = "End: "

    Case 3

    text = "Int: "

    Case 4

    text = "Agi: "

    Case 5

    text = "Will: "

    End Select

    lblStatReq(Index).Caption = text & scrlStatReq(Index).Value

    Item(EditorIndex).Stat_Req(Index) = scrlStatReq(Index).Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlStatReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlSpell_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    If Len(Trim$(Spell(scrlSpell.Value).Name)) > 0 Then

    lblSpellName.Caption = "Name: " & Trim$(Spell(scrlSpell.Value).Name)

    Else

    lblSpellName.Caption = "Name: None"

    End If

    lblSpell.Caption = "Spell: " & scrlSpell.Value

    Item(EditorIndex).Data1 = scrlSpell.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlSpell_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlWoodcutting_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblWoodcutting.Caption = "Woodcuting: " & scrlWoodcutting.Value

    Item(EditorIndex).WcXP = scrlWoodcutting.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlWoodcutting_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub txtDesc_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Desc = txtDesc.text

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "txtDesc_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub txtName_Validate(Cancel As Boolean)

    Dim tmpIndex As Long

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    tmpIndex = lstIndex.ListIndex

    Item(EditorIndex).Name = Trim$(txtName.text)

    lstIndex.RemoveItem EditorIndex - 1

    lstIndex.AddItem EditorIndex & ": " & Item(EditorIndex).Name, EditorIndex - 1

    lstIndex.ListIndex = tmpIndex

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "txtName_Validate", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    ' projectile

    Private Sub scrlProjectileDamage_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblProjectileDamage.Caption = "Damage: " & scrlProjectileDamage.Value

    Item(EditorIndex).ProjecTile.Damage = scrlProjectileDamage.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlProjectilePic_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    ' projectile

    Private Sub scrlProjectilePic_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblProjectilePic.Caption = "Pic: " & scrlProjectilePic.Value

    Item(EditorIndex).ProjecTile.Pic = scrlProjectilePic.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlProjectilePic_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    ' ProjecTile

    Private Sub scrlProjectileRange_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblProjectileRange.Caption = "Range: " & scrlProjectileRange.Value

    Item(EditorIndex).ProjecTile.Range = scrlProjectileRange.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlProjectileRange_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    ' projectile

    Private Sub scrlProjectileSpeed_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblProjectileSpeed.Caption = "Speed: " & scrlProjectileSpeed.Value

    Item(EditorIndex).ProjecTile.speed = scrlProjectileSpeed.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlRarity_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlItem1_Change()

    If scrlItem1.Value > 0 Then

    lblItem1.Caption = "Item: " & Trim$(Item(scrlItem1.Value).Name)

    Else

    lblItem1.Caption = "Item: None"

    End If

    Item(EditorIndex).Recipe(RecipeIndex) = scrlItem1.Value

    End Sub

    Private Sub scrlItemNum_Change()

    RecipeIndex = scrlItemNum.Value

    lblItemNum.Caption = "Item: " & RecipeIndex

    scrlItem1.Value = Item(EditorIndex).Recipe(RecipeIndex)

    End Sub

    Private Sub scrlResult_Change()

    If scrlResult.Value > 0 Then

    lblResult.Caption = "Result: " & Trim$(Item(scrlResult.Value).Name)

    Else

    lblResult.Caption = "Result: None"

    End If

    Item(EditorIndex).Data3 = scrlResult.Value

    End Sub

    Private Sub scrlSmithReq_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblSmith.Caption = "SM: " & scrlSmithReq

    Item(EditorIndex).SmithReq = scrlSmithReq.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlSmithReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlEnchantReq_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblEnchants.Caption = "EN: " & scrlEnchantReq

    Item(EditorIndex).EnchantReq = scrlEnchantReq.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlSwordReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAlchemyReq_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblAlchemy.Caption = "Cook: " & scrlAlchemyReq

    Item(EditorIndex).AlchemyReq = scrlAlchemyReq.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAlchemyReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub chkAL_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Alchemist = chkAL.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "chkAL_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub chkEN_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Enchanter = chkEN.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "chkEN_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub chkSM_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Smithy = chkSM.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "chkSM_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbCTool_Click()

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Tool = cmbCTool.ListIndex

    End Sub

    ```

    and becuase i feel like folks might wanna see my modconstants too (client):

    ```

    Option Explicit

    ' API Declares

    Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

    Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByRef msg() As Byte, ByVal wParam As Long, ByVal lParam As Long) As Long

    Public Declare Function GetForegroundWindow Lib "user32" () As Long

    ' animated buttons

    Public Const MAX_MENUBUTTONS As Long = 4

    Public Const MAX_MAINBUTTONS As Long = 9

    Public Const MENUBUTTON_PATH As String = "\Data Files\graphics\gui\menu\buttons\"

    Public Const MAINBUTTON_PATH As String = "\Data Files\graphics\gui\main\buttons\"

    ' Hotbar

    Public Const HotbarTop As Long = 2

    Public Const HotbarLeft As Long = 2

    Public Const HotbarOffsetX As Long = 8

    ' Inventory constants

    Public Const InvTop As Long = 24

    Public Const InvLeft As Long = 12

    Public Const InvOffsetY As Long = 3

    Public Const InvOffsetX As Long = 3

    Public Const InvColumns As Long = 5

    ' Bank constants

    Public Const BankTop As Long = 38

    Public Const BankLeft As Long = 42

    Public Const BankOffsetY As Long = 3

    Public Const BankOffsetX As Long = 4

    Public Const BankColumns As Long = 11

    ' spells constants

    Public Const SpellTop As Long = 24

    Public Const SpellLeft As Long = 12

    Public Const SpellOffsetY As Long = 3

    Public Const SpellOffsetX As Long = 3

    Public Const SpellColumns As Long = 5

    ' shop constants

    Public Const ShopTop As Long = 6

    Public Const ShopLeft As Long = 8

    Public Const ShopOffsetY As Long = 2

    Public Const ShopOffsetX As Long = 4

    Public Const ShopColumns As Long = 5

    ' Character consts

    Public Const EqTop As Long = 224

    Public Const EqLeft As Long = 18

    Public Const EqOffsetX As Long = 10

    Public Const EqColumns As Long = 4

    ' values

    Public Const MAX_BYTE As Byte = 255

    Public Const MAX_INTEGER As Integer = 32767

    Public Const MAX_LONG As Long = 2147483647

    ' path constants

    Public Const SOUND_PATH As String = "\Data Files\sound\"

    Public Const MUSIC_PATH As String = "\Data Files\music\"

    ' Font variables

    Public Const FONT_NAME As String = "Georgia"

    Public Const FONT_SIZE As Byte = 14

    ' Log Path and variables

    Public Const LOG_DEBUG As String = "debug.txt"

    Public Const LOG_PATH As String = "\Data Files\logs\"

    ' Map Path and variables

    Public Const MAP_PATH As String = "\Data Files\maps\"

    Public Const MAP_EXT As String = ".map"

    ' Gfx Path and variables

    Public Const GFX_PATH As String = "\Data Files\graphics\"

    Public Const GFX_EXT As String = ".png"

    Public Const FONT_PATH As String = "\data files\graphics\fonts\"

    ' Key constants

    Public Const VK_UP As Long = &H26

    Public Const VK_DOWN As Long = &H28

    Public Const VK_LEFT As Long = &H25

    Public Const VK_RIGHT As Long = &H27

    Public Const VK_SHIFT As Long = &H10

    Public Const VK_RETURN As Long = &HD

    Public Const VK_CONTROL As Long = &H11

    ' Menu states

    Public Const MENU_STATE_NEWACCOUNT As Byte = 0

    Public Const MENU_STATE_DELACCOUNT As Byte = 1

    Public Const MENU_STATE_LOGIN As Byte = 2

    Public Const MENU_STATE_GETCHARS As Byte = 3

    Public Const MENU_STATE_NEWCHAR As Byte = 4

    Public Const MENU_STATE_ADDCHAR As Byte = 5

    Public Const MENU_STATE_DELCHAR As Byte = 6

    Public Const MENU_STATE_USECHAR As Byte = 7

    Public Const MENU_STATE_INIT As Byte = 8

    ' Speed moving vars

    Public Const WALK_SPEED As Byte = 4

    Public Const RUN_SPEED As Byte = 6

    Public Const ADMIN_SPEED As Byte = 18

    ' Tile size constants

    Public Const PIC_X As Long = 32

    Public Const PIC_Y As Long = 32

    ' Sprite, item, spell size constants

    Public Const SIZE_X As Long = 32

    Public Const SIZE_Y As Long = 32

    ' ********************************************************

    ' * The values below must match with the server's values *

    ' ********************************************************

    ' General constants

    Public Const MAX_PLAYERS As Long = 70

    Public Const MAX_ITEMS As Long = 255

    Public Const MAX_NPCS As Long = 255

    Public Const MAX_ANIMATIONS As Long = 255

    Public Const MAX_INV As Long = 35

    Public Const MAX_MAP_ITEMS As Long = 255

    Public Const MAX_MAP_NPCS As Long = 100

    Public Const MAX_SHOPS As Long = 50

    Public Const MAX_PLAYER_SPELLS As Long = 35

    Public Const MAX_SPELLS As Long = 255

    Public Const MAX_TRADES As Long = 30

    Public Const MAX_RESOURCES As Long = 100

    Public Const MAX_LEVELS As Long = 100

    Public Const MAX_BANK As Long = 99

    Public Const MAX_HOTBAR As Long = 12

    Public Const MAX_PARTYS As Long = 35

    Public Const MAX_PARTY_MEMBERS As Long = 4

    Public Const MAX_SWITCHES As Long = 1000

    Public Const MAX_VARIABLES As Long = 1000

    Public Const MAX_WEATHER_PARTICLES As Long = 250

    Public Const MAX_PLAYER_PROJECTILES As Long = 20

    ' Website

    Public Const GAME_WEBSITE As String = "http://www.touchofdeathforums.com"

    ' text color constants

    Public Const Black As Byte = 0

    Public Const Blue As Byte = 1

    Public Const Green As Byte = 2

    Public Const Cyan As Byte = 3

    Public Const Red As Byte = 4

    Public Const Magenta As Byte = 5

    Public Const Brown As Byte = 6

    Public Const Grey As Byte = 7

    Public Const DarkGrey As Byte = 8

    Public Const BrightBlue As Byte = 9

    Public Const BrightGreen As Byte = 10

    Public Const BrightCyan As Byte = 11

    Public Const BrightRed As Byte = 12

    Public Const Pink As Byte = 13

    Public Const Yellow As Byte = 14

    Public Const White As Byte = 15

    Public Const DarkBrown As Byte = 16

    Public Const Orange As Byte = 17

    Public Const GoldenYellow As Byte = 18

    Public Const Capri As Byte = 19

    Public Const SayColor As Byte = White

    Public Const GlobalColor As Byte = Cyan

    Public Const BroadcastColor As Byte = White

    Public Const TellColor As Byte = BrightGreen

    Public Const EmoteColor As Byte = BrightCyan

    Public Const AdminColor As Byte = BrightCyan

    Public Const HelpColor As Byte = Cyan

    Public Const WhoColor As Byte = BrightGreen

    Public Const JoinLeftColor As Byte = DarkGrey

    Public Const NpcColor As Byte = Brown

    Public Const AlertColor As Byte = Red

    Public Const NewMapColor As Byte = BrightGreen

    ' Boolean constants

    Public Const NO As Byte = 0

    Public Const YES As Byte = 1

    ' String constants

    Public Const NAME_LENGTH As Byte = 20

    Public Const MUSIC_LENGTH As Byte = 40

    Public Const ACCOUNT_LENGTH As Byte = 12

    ' Sex constants

    Public Const SEX_MALE As Byte = 0

    Public Const SEX_FEMALE As Byte = 1

    ' Map constants

    Public Const MAX_MAPS As Long = 100

    Public MAX_MAPX As Byte

    Public MAX_MAPY As Byte

    Public Const MAP_MORAL_NONE As Byte = 0

    Public Const MAP_MORAL_SAFE As Byte = 1

    ' Tile constants

    Public Const TILE_TYPE_WALKABLE As Byte = 0

    Public Const TILE_TYPE_BLOCKED As Byte = 1

    Public Const TILE_TYPE_WARP As Byte = 2

    Public Const TILE_TYPE_ITEM As Byte = 3

    Public Const TILE_TYPE_NPCAVOID As Byte = 4

    Public Const TILE_TYPE_KEY As Byte = 5

    Public Const TILE_TYPE_KEYOPEN As Byte = 6

    Public Const TILE_TYPE_RESOURCE As Byte = 7

    Public Const TILE_TYPE_DOOR As Byte = 8

    Public Const TILE_TYPE_NPCSPAWN As Byte = 9

    Public Const TILE_TYPE_SHOP As Byte = 10

    Public Const TILE_TYPE_BANK As Byte = 11

    Public Const TILE_TYPE_HEAL As Byte = 12

    Public Const TILE_TYPE_TRAP As Byte = 13

    Public Const TILE_TYPE_SLIDE As Byte = 14

    Public Const TILE_TYPE_SOUND As Byte = 15

    Public Const TILE_TYPE_CHECKPOINT As Byte = 16

    Public Const TILE_TYPE_ARENA As Byte = 17

    Public Const TILE_TYPE_CRAFT As Byte = 18

    ' max number of crafting items

    Public Const MAX_RECIPE_ITEMS As Long = 5

    'Weather Type Constants

    Public Const WEATHER_TYPE_NONE As Byte = 0

    Public Const WEATHER_TYPE_RAIN As Byte = 1

    Public Const WEATHER_TYPE_SNOW As Byte = 2

    Public Const WEATHER_TYPE_HAIL As Byte = 3

    Public Const WEATHER_TYPE_SANDSTORM As Byte = 4

    Public Const WEATHER_TYPE_STORM As Byte = 5

    ' Item constants

    Public Const ITEM_TYPE_NONE As Byte = 0

    Public Const ITEM_TYPE_WEAPON As Byte = 1

    Public Const ITEM_TYPE_ARMOR As Byte = 2

    Public Const ITEM_TYPE_HELMET As Byte = 3

    Public Const ITEM_TYPE_SHIELD As Byte = 4

    Public Const ITEM_TYPE_CONSUME As Byte = 5

    Public Const ITEM_TYPE_KEY As Byte = 6

    Public Const ITEM_TYPE_CURRENCY As Byte = 7

    Public Const ITEM_TYPE_SPELL As Byte = 8

    Public Const ITEM_TYPE_RECIPE As Byte = 10

    Public Const ITEM_TYPE_SUMMON As Byte = 9

    ' Direction constants

    Public Const DIR_UP As Byte = 0

    Public Const DIR_DOWN As Byte = 1

    Public Const DIR_LEFT As Byte = 2

    Public Const DIR_RIGHT As Byte = 3

    ' Constants for player movement: Tiles per Second

    Public Const MOVING_WALKING As Byte = 1

    Public Const MOVING_RUNNING As Byte = 2

    ' Admin constants

    Public Const ADMIN_MONITOR As Byte = 1

    Public Const ADMIN_MAPPER As Byte = 2

    Public Const ADMIN_DEVELOPER As Byte = 3

    Public Const ADMIN_CREATOR As Byte = 4

    ' NPC constants

    Public Const NPC_BEHAVIOUR_ATTACKONSIGHT As Byte = 0

    Public Const NPC_BEHAVIOUR_ATTACKWHENATTACKED As Byte = 1

    Public Const NPC_BEHAVIOUR_FRIENDLY As Byte = 2

    Public Const NPC_BEHAVIOUR_SHOPKEEPER As Byte = 3

    Public Const NPC_BEHAVIOUR_GUARD As Byte = 4

    ' Spell constants

    Public Const SPELL_TYPE_DAMAGEHP As Byte = 0

    Public Const SPELL_TYPE_DAMAGEMP As Byte = 1

    Public Const SPELL_TYPE_HEALHP As Byte = 2

    Public Const SPELL_TYPE_HEALMP As Byte = 3

    Public Const SPELL_TYPE_WARP As Byte = 4

    ' Game editor constants

    Public Const EDITOR_ITEM As Byte = 1

    Public Const EDITOR_NPC As Byte = 2

    Public Const EDITOR_SPELL As Byte = 3

    Public Const EDITOR_SHOP As Byte = 4

    Public Const EDITOR_RESOURCE As Byte = 5

    Public Const EDITOR_ANIMATION As Byte = 6

    ' Target type constants

    Public Const TARGET_TYPE_NONE As Byte = 0

    Public Const TARGET_TYPE_PLAYER As Byte = 1

    Public Const TARGET_TYPE_NPC As Byte = 2

    Public Const TARGET_TYPE_EVENT As Byte = 4

    ' Dialogue box constants

    Public Const DIALOGUE_TYPE_NONE As Byte = 0

    Public Const DIALOGUE_TYPE_TRADE As Byte = 1

    Public Const DIALOGUE_TYPE_FORGET As Byte = 2

    Public Const DIALOGUE_TYPE_PARTY As Byte = 3

    ' Do Events

    Public Const nLng As Long = (&H80 Or &H1 Or &H4 Or &H20) + (&H8 Or &H40)

    ' Scrolling action message constants

    Public Const ACTIONMSG_STATIC As Long = 0

    Public Const ACTIONMSG_SCROLL As Long = 1

    Public Const ACTIONMSG_SCREEN As Long = 2

    ' stuffs

    Public HalfX As Integer

    Public HalfY As Integer

    Public ScreenX As Integer

    Public ScreenY As Integer

    Public StartXValue As Integer

    Public StartYValue As Integer

    Public EndXValue As Integer

    Public EndYValue As Integer

    ' Autotiles

    Public Const AUTO_INNER As Byte = 1

    Public Const AUTO_OUTER As Byte = 2

    Public Const AUTO_HORIZONTAL As Byte = 3

    Public Const AUTO_VERTICAL As Byte = 4

    Public Const AUTO_FILL As Byte = 5

    ' Autotile types

    Public Const AUTOTILE_NONE As Byte = 0

    Public Const AUTOTILE_NORMAL As Byte = 1

    Public Const AUTOTILE_FAKE As Byte = 2

    Public Const AUTOTILE_ANIM As Byte = 3

    Public Const AUTOTILE_CLIFF As Byte = 4

    Public Const AUTOTILE_WATERFALL As Byte = 5

    ' Rendering

    Public Const RENDER_STATE_NONE As Long = 0

    Public Const RENDER_STATE_NORMAL As Long = 1

    Public Const RENDER_STATE_AUTOTILE As Long = 2

    'Chatbubble

    Public Const ChatBubbleWidth As Long = 200

    Public Const EFFECT_TYPE_FADEIN As Long = 1

    Public Const EFFECT_TYPE_FADEOUT As Long = 2

    Public Const EFFECT_TYPE_FLASH As Long = 3

    Public Const EFFECT_TYPE_FOG As Long = 4

    Public Const EFFECT_TYPE_WEATHER As Long = 5

    Public Const EFFECT_TYPE_TINT As Long = 6

    Public Const cmbCTool As Long = 1

    ```
  5. > You could also do something like this in PlayerAttackNpc
    >
    > ```
    >
    > Select Case Npc(npcNum).Name
    >
    >
    >
    > Case "Boss name here"
    >
    > GlobalMsg Player(attacker).Name & " has killed this boss!", BrightGreen
    >
    >
    >
    >
    >
    > End Select
    >
    > ```

    Where in playeattacknpc and is it just the npcnum that needs to be changed?
  6. just found out why i might be having a hard time figuring out this mod,

    the window (fraRecipe in frmeditor_item) **does -not- show up when it is in game**,

    how can i address this? for reference here is my **fraRecipe**. Thanks for reading, all advice is appreciated.

    ```

    Option Explicit

    Private LastIndex As Long

    Private Sub ChkTwoh_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If ChkTwoh.Value = 0 Then

    Item(EditorIndex).istwohander = False

    Else

    Item(EditorIndex).istwohander = True

    End If

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "chkTwoh", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbBind_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).BindType = cmbBind.ListIndex

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmbBind_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbClassReq_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).ClassReq = cmbClassReq.ListIndex

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmbClassReq_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbSound_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If cmbSound.ListIndex >= 0 Then

    Item(EditorIndex).sound = cmbSound.List(cmbSound.ListIndex)

    Else

    Item(EditorIndex).sound = "None."

    End If

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmdSound_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbTool_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Data3 = cmbTool.ListIndex

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmbTool_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmdDelete_Click()

    Dim tmpIndex As Long

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    ClearItem EditorIndex

    tmpIndex = lstIndex.ListIndex

    lstIndex.RemoveItem EditorIndex - 1

    lstIndex.AddItem EditorIndex & ": " & Item(EditorIndex).Name, EditorIndex - 1

    lstIndex.ListIndex = tmpIndex

    ItemEditorInit

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmdDelete_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub Form_Load()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    scrlPic.max = numitems

    scrlAnim.max = MAX_ANIMATIONS

    scrlPaperdoll.max = NumPaperdolls

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "Form_Load", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmdSave_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    Call ItemEditorOk

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmdSave_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmdCancel_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    Call ItemEditorCancel

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmdCancel_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbType_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    If (cmbType.ListIndex >= ITEM_TYPE_WEAPON) And (cmbType.ListIndex <= ITEM_TYPE_SHIELD) Then

    fraEquipment.Visible = True

    'scrlDamage_Change

    Else

    fraEquipment.Visible = False

    End If

    If cmbType.ListIndex = ITEM_TYPE_CONSUME Then

    fraVitals.Visible = True

    'scrlVitalMod_Change

    Else

    fraVitals.Visible = False

    End If

    If (cmbType.ListIndex = ITEM_TYPE_SPELL) Then

    fraSpell.Visible = True

    Else

    fraSpell.Visible = False

    End If

    If (cmbType.ListIndex = ITEM_TYPE_RECIPE) Then

    fraRecipe.Visible = True

    Else

    fraRecipe.Visible = False

    End If

    Item(EditorIndex).Type = cmbType.ListIndex

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "cmbType_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub lstIndex_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    ItemEditorInit

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "lstIndex_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAccessReq_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblAccessReq.Caption = "Access Req: " & scrlAccessReq.Value

    Item(EditorIndex).AccessReq = scrlAccessReq.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAccessReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAddHp_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblAddHP.Caption = "Add HP: " & scrlAddHp.Value

    Item(EditorIndex).AddHP = scrlAddHp.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAddHP_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAddMp_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblAddMP.Caption = "Add MP: " & scrlAddMP.Value

    Item(EditorIndex).AddMP = scrlAddMP.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAddMP_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAddExp_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblAddExp.Caption = "Add Exp: " & scrlAddExp.Value

    Item(EditorIndex).AddEXP = scrlAddExp.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAddExp_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAnim_Change()

    Dim sString As String

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    If scrlAnim.Value = 0 Then

    sString = "None"

    Else

    sString = Trim$(Animation(scrlAnim.Value).Name)

    End If

    lblAnim.Caption = "Anim: " & sString

    Item(EditorIndex).Animation = scrlAnim.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAnim_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlDamage_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblDamage.Caption = "Damage: " & scrlDamage.Value

    Item(EditorIndex).Data2 = scrlDamage.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlDamage_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlFishing_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblFishing.Caption = "Fishing: " & scrlFishing.Value

    Item(EditorIndex).FXP = scrlFishing.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlFishing_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlLevelReq_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblLevelReq.Caption = "Level req: " & scrlLevelReq

    Item(EditorIndex).LevelReq = scrlLevelReq.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlLevelReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlMining_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblMining.Caption = "Mining: " & scrlMining.Value

    Item(EditorIndex).MXP = scrlMining.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlMining_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlPaperdoll_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblPaperdoll.Caption = "Paperdoll: " & scrlPaperdoll.Value

    Item(EditorIndex).Paperdoll = scrlPaperdoll.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlPaperdoll_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlPic_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblPic.Caption = "Pic: " & scrlPic.Value

    Item(EditorIndex).Pic = scrlPic.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlPic_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlPrice_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblPrice.Caption = "Price: " & scrlPrice.Value

    Item(EditorIndex).Price = scrlPrice.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlPrice_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlRarity_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblRarity.Caption = "Rarity: " & scrlRarity.Value

    Item(EditorIndex).Rarity = scrlRarity.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlRarity_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlSpeed_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblSpeed.Caption = "Speed: " & scrlSpeed.Value / 1000 & " sec"

    Item(EditorIndex).Speed = scrlSpeed.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlSpeed_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlStatBonus_Change(Index As Integer)

    Dim text As String

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    Select Case Index

    Case 1

    text = "+ Str: "

    Case 2

    text = "+ End: "

    Case 3

    text = "+ Int: "

    Case 4

    text = "+ Agi: "

    Case 5

    text = "+ Will: "

    End Select

    lblStatBonus(Index).Caption = text & scrlStatBonus(Index).Value

    Item(EditorIndex).Add_Stat(Index) = scrlStatBonus(Index).Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlStatBonus_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlStatReq_Change(Index As Integer)

    Dim text As String

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    Select Case Index

    Case 1

    text = "Str: "

    Case 2

    text = "End: "

    Case 3

    text = "Int: "

    Case 4

    text = "Agi: "

    Case 5

    text = "Will: "

    End Select

    lblStatReq(Index).Caption = text & scrlStatReq(Index).Value

    Item(EditorIndex).Stat_Req(Index) = scrlStatReq(Index).Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlStatReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlSpell_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    If Len(Trim$(Spell(scrlSpell.Value).Name)) > 0 Then

    lblSpellName.Caption = "Name: " & Trim$(Spell(scrlSpell.Value).Name)

    Else

    lblSpellName.Caption = "Name: None"

    End If

    lblSpell.Caption = "Spell: " & scrlSpell.Value

    Item(EditorIndex).Data1 = scrlSpell.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlSpell_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlWoodcutting_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    lblWoodcutting.Caption = "Woodcuting: " & scrlWoodcutting.Value

    Item(EditorIndex).WcXP = scrlWoodcutting.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlWoodcutting_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub txtDesc_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Desc = txtDesc.text

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "txtDesc_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub txtName_Validate(Cancel As Boolean)

    Dim tmpIndex As Long

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    tmpIndex = lstIndex.ListIndex

    Item(EditorIndex).Name = Trim$(txtName.text)

    lstIndex.RemoveItem EditorIndex - 1

    lstIndex.AddItem EditorIndex & ": " & Item(EditorIndex).Name, EditorIndex - 1

    lstIndex.ListIndex = tmpIndex

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "txtName_Validate", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    ' projectile

    Private Sub scrlProjectileDamage_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblProjectileDamage.Caption = "Damage: " & scrlProjectileDamage.Value

    Item(EditorIndex).ProjecTile.Damage = scrlProjectileDamage.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlProjectilePic_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    ' projectile

    Private Sub scrlProjectilePic_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblProjectilePic.Caption = "Pic: " & scrlProjectilePic.Value

    Item(EditorIndex).ProjecTile.Pic = scrlProjectilePic.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlProjectilePic_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    ' ProjecTile

    Private Sub scrlProjectileRange_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblProjectileRange.Caption = "Range: " & scrlProjectileRange.Value

    Item(EditorIndex).ProjecTile.Range = scrlProjectileRange.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlProjectileRange_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    ' projectile

    Private Sub scrlProjectileSpeed_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblProjectileSpeed.Caption = "Speed: " & scrlProjectileSpeed.Value

    Item(EditorIndex).ProjecTile.Speed = scrlProjectileSpeed.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlRarity_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlItem1_Change()

    If scrlItem1.Value > 0 Then

    lblItem1.Caption = "Item: " & Trim$(Item(scrlItem1.Value).Name)

    Else

    lblItem1.Caption = "Item: None"

    End If

    Item(EditorIndex).Recipe(RecipeIndex) = scrlItem1.Value

    End Sub

    Private Sub scrlItemNum_Change()

    RecipeIndex = scrlItemNum.Value

    lblItemNum.Caption = "Item: " & RecipeIndex

    scrlItem1.Value = Item(EditorIndex).Recipe(RecipeIndex)

    End Sub

    Private Sub scrlResult_Change()

    If scrlResult.Value > 0 Then

    lblResult.Caption = "Result: " & Trim$(Item(scrlResult.Value).Name)

    Else

    lblResult.Caption = "Result: None"

    End If

    Item(EditorIndex).Data3 = scrlResult.Value

    End Sub

    Private Sub scrlSmithReq_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblSmith.Caption = "SM: " & scrlSmithReq

    Item(EditorIndex).SmithReq = scrlSmithReq.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlSmithReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlEnchantReq_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblEnchants.Caption = "EN: " & scrlEnchantReq

    Item(EditorIndex).EnchantReq = scrlEnchantReq.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlSwordReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub scrlAlchemyReq_Change()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    lblAlchemy.Caption = "Cook: " & scrlAlchemyReq

    Item(EditorIndex).AlchemyReq = scrlAlchemyReq.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "scrlAlchemyReq_Change", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub chkAL_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Alchemist = chkAL.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "chkAL_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub chkEN_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Enchanter = chkEN.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "chkEN_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub chkSM_Click()

    ' If debug mode, handle error then exit out

    If Options.Debug = 1 Then On Error GoTo errorhandler

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Smithy = chkSM.Value

    ' Error handler

    Exit Sub

    errorhandler:

    HandleError "chkSM_Click", "frmEditor_Item", Err.Number, Err.Description, Err.Source, Err.HelpContext

    Err.Clear

    Exit Sub

    End Sub

    Private Sub cmbCTool_Click()

    If EditorIndex = 0 Or EditorIndex > MAX_ITEMS Then Exit Sub

    Item(EditorIndex).Tool = cmbCTool.ListIndex

    End Sub

    ```
  7. > I released a tutorial in the source code section for player checkpoints which is basically what your bind concept was if I'm reading it right. It adds a new tile attribute which is a checkpoint, a player can then click on that tile and set their checkpoint to that location. When they die they then spawn at that tile instead of back at the original starting area of the game.
    >
    > As for the corpse idea, I worked on that back when I was making Zacaras Empire with either Eclipse Evolution or one of the original EO's (I forget which) and the way I was doing it was basically creating a new thing in the map data which was bodies. The bodies variable held storage of the map number, x, y, players name, and then new variable holding item ID and item amount. When you died it would create a new instance of the bode with your location, name and and item data for all items in your inventory. It would then delete all of your inventory items and draw a skeleton to the map.
    >
    > Once you died you would have 2 minutes to get back to your body. In that 2 minutes only you could open the body and it would bring up a new window that looked like your inventory did and displayed all of the items in that body for you to take back. But only you could open your own body, no one else could. After 2 minutes the skeleton would disappear and the items in it would drop to the map for anyone to take.
    >
    > I lost all of that coding but was thinking of starting to work on it again and if no one beats me to it I'll try to code up the system sometime this week.

    That would be epic, You should make the body despawn rate modifiable, that'd be epic.
  8. I got it to turn on and it worked fine (althougnh i didnt hit send to know if it fully works yet on my version of eclipse) but when i tried setting the walkspeed up really high it crashed with an overflow error, what is the max walkspeed i should set this too so i can tell the scrollbar a max? I know its probably a noobish question and I'm thinking maybe like 255 or something but i wanted to ask first. thanks for reading and putting out this epic and simple system. =]

    ```
    (highlighted area in error is `NPC(EditorIndex).Speed = scrlSpeed.Value`
    ```
  9. > then you didn't follow the tutorial correctly ._.

    I figured I didn't, I will try again.

    Quick question : When you say Replace the```
    WALK_SPEED
    ```with```
    WalkSpeed
    ```…only replace in ProcessNPCMovement

    Am i replacing every single "WALK_SPEED" in that sub or whatnot

    also

    when you say

    After that go into NPCEditorInit or whatever the sub is called to initialize everything and add

    ```
    .scrlSpeed.Value = Npc(EditorIndex).Speed

    .lblSpeed.Caption = "Speed: " & Npc(EditorIndex).Speed
    ```

    where exactly in that sub do i put this info?
  10. **UPDATE: THIS OFFICIALLY WORKS WITH DRAGON ECLIPSE 3.0 NIGHTLY Dx8.**

    the information below is unsorted

    **Justn should update the tutorial** to include the changes indicated throughout these posts and in this thread to:http://www.touchofdeathforums.com/community/index.php?/topic/130669-dynamic-crafting-system-on-dragon-eclipse/ . (not sure if i missed any but hes sure to have caught them since half of the collaboration took place among like 3 or 4 of us in pm to make this happen. Thanks guys!!!!

    In terms of my last error i just forgot to add the code to the

    bottom of frmEditor_Map.

    Gen. General General General General General General General General Pony said too: (for Dragon Eclipse Nightly Dx8)

    go into modText and FIND

    ```

    DrawText TexthDC, tx, ty, "CR", QBColor(White)
    ```

    Replace with

    > RenderText Font_Default, "CR", tx, ty, White, 0

    Okay, I got the tiles working with the above post by Gen. Generalpony ~~General General General General General General General General General General General Pony, now my last issuebefore wehave a fully working version of Dynamic Crafting System for Dragon Eclipse Dx8 Nightly is to work out a bug with frarecipe (which is located in picattributes) - when i click "crafting" in attributes it just lets me place the crafting tile-type, it doesnt

    bring up another window for me to choose which type of crafting tile to choose/command button/etc, when i click another attribute type (such as arena) which does prompt the window i can see the crafting frarecipe and it isnt functional, however whichever other thing i clicked (such as arena or whatnot) works fine, though frarecipe shouldnt be visible.~~

    ![](http://i1127.photobucket.com/albums/l632/EsoGuildPB/esocraft1.png)
×
×
  • Create New...