Ganjika
-
Posts
214 -
Joined
-
Last visited
Never
Content Type
Profiles
Forums
Calendar
Posts posted by Ganjika
-
-
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. -
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. =] -
Download link is dead, would be cool to get a hold of this. Is it still available on any means? Also - What file types does it use to turn things into 2d? and in the end what file tpes are the 2d?
-
I'm interested to see if anyone has this or any similar (working) system working in EO 3.0 (Dx8).
-
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. -
I'm interested in seeing a tutorial (and maybe even on the rendering of map editor selection) on this as well.
-
I wanted to figure out how to add drawing of 'currently selected tile when mapping' (like is in Eclipse Reborn)?
I asked and was told to rip it from E.R but i'm still pretty new to this, any ideas? Thanks for reading. -
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
``` -
> 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? -
sorry for double post
-
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
``` -
How can I make a stationary (one that can't walk)/attackable NPC?
-
Is therea way to have an option for no movement (a shopkeeper type deal where the npc cant move but is still attack on site or whatever)?
-
sorry about double post
-
> 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. -
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`
``` -
> 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? -
II am getting a variable not defined in the client on modLogic at```
Sub ProcessNpcMovement(ByVal MapNpcNum As Long)
``` -
I'm getting a subscript out of range on "CopyMemory ByVal VarPtr(NPC(n)), ByVal VarPtr(NpcData(0)), NpcSize" in modHandleData (Client) On Dragon Eclipse (EO [3.0] Nightly Dx8)
-
Does this work in **EO Dx8 Nightly?**
-
Does this work on EO Nightly Dx8? I am getting a type mismatch errorat```
If txtEInvNum.Text > MAX_INV Then
```
nvm - there was some typos in tutorial i believe. -
Got it working with Dragon Eclipse 3.0 Nightly Dx8 using information from this conversation and this one at the OP and in its follow up posts : http://www.touchofdeathforums.com/community/index.php?/topic/129353-dynamic-crafting-system/page__st__40#entry867323
-
Some one will buy out all Hostess' brands and sell them thesmelves, you will see twinkies again (as well as wonderbread, etc) under different brands.
-
**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)
Custom NPC Speed
in Source
Posted