Justn
-
Posts
1129 -
Joined
-
Last visited
Never
Content Type
Profiles
Forums
Calendar
Posts posted by Justn
-
-
Click debug and post what line it highlights
-
> Last Question: Will this work in Dragon Eclipse or any EO 3.0?
It should work. Think u only need to change the draw text part slightly. -
> May I ask How would I edit maps in an Instance since it says "Cannot edit Map in Instance".
Well u can't edit the map while in the instance but what u can do is edit a new map like normal then copy and paste the .dat file for that map to the map packs folder and rename it to 1 or whatever ur next number in the pack is..
What I do is I have to copies of the engine and I use the other one when to make map packs then tranfer them over. Just helps me make sure I don't make any mistakes to my game while moving dat files -
> I'll be mad if this works with my engine…. I spent hours make my own instance boss.... Then I'll be happy later.
should work… Not really sure how it does with any of the event systems though. The 3 engines i have used this on haven't had events :/ If anyone has any issues adding it I would be more than happy to help get it working for them. Also sure Scott would be willing to answer any questions people have.. This is really a great system for people still using custom engines. I'll write up a how to use or something since only thing i posted about was a quote from scott in the original thread -
Thank you for releasing ur work for everyone here to use =)
-
Hello Eclipse! In this tutorial we will be adding map instances to EO. This is a very useful system and can be used for many different things. This system was created by my good friend [Scott](http://www.eclipseorigins.com/community/index.php?/user/68848-scott/). This system uses "Map Packs" for instancing so instead of just one map the player is dropped into a whole world that you make and can roam around in alone or in a party. At the bottom of this post you will see modInstance. Please download this and add it to your server project. This was made on a version of EVB however should work on any version with some minor tweaks and for a compiled version of this on EO 2.0 check out the link below.
Original Thread about the Instances : [[EO2.0] Map Instances Custom Version](http://www.eclipseorigins.com/community/index.php?/topic/129648-eclipse-instancing-mappacks-style/)
Here it is explained alittle better…
Example
![](http://www.freemmorpgmaker.com/files/imagehost/pics/636695f20c364b71320fb4c53f6e7651.png)
You can have as many folders as you want all filled with as many maps as you want. Any warp tiles/border map transition will read off these folders moving the player around these per-designed worlds, simply placing an instance map tile inside the instance will act as an exit. For this release it will always load a player into map 1 in that set of maps, you can choose the x/y of the spawn though(Plan to change this).
Example
![](http://www.freemmorpgmaker.com/files/imagehost/pics/83604d13b06d0a995c68d669e3303ca6.png)
![](http://www.freemmorpgmaker.com/files/imagehost/pics/6558ecaad977898d96f1043c84b7c0e3.png)
Already has full party support, if your in a party you will all be able to see each other and play together inside the instances. It will let each player explore maps in the instance on their own or be on the same map together.
You have to make these map packs, I gave 1 very simple example inside but you have to use this client/server to map the maps out for those folders. It works like the gfx for EVB if you skip a map ie.1,2,3,4,6 it will only read the first 4 maps since there is a break in the sequence.
First off add **modInstance** to your server src folder then add it to your project.
**Server and Client**
The following steps should be added to both the client and the server…
**modConstants**
Find this:
```
Public Const TILE_TYPE_SLIDE As Byte = 14
```
Under it add this:
```
Public Const TILE_TYPE_INSTANCE As Byte = 16
```
Also Make sure you change your MAX_MAPS to 200 both client and server side!!!
**Server**
**ModTypes**
In PlayerRec Before End Type add this:
```
'For logging back in
In_Instance As Boolean
'For returning to position
ReturnMap As Long
ReturnX As Long
ReturnY As Long
```
Next in TempPlayerRec before End Type add this:
```
'Current Map pack
MapPack As Long
'Max maps for this instance pack
MapsUsed As Long
'Is player currently instanced
Is_In_Instance As Boolean
'Current map they are on in this pack
CurrentInstanceMap As Long
```
Now in MapRec before End Type add this:
```
'TUT TUT
'Is this an instanced map
IsInstanced As Integer
'Index of user
InstanceIndex As Long
'Map id from player
InstanceMapId As Long
```
In MapItemRec before End Type add this:
```
InstancedMap As Integer
```
At the bottom of modTypes add this:
```
Public Type DungeonNpcRec
Vital(1 To Vitals.Vital_Count - 1) As Long
x As Byte
y As Byte
Dir As Byte
SpawnWait As Long
End Type
Public Type DungeonTempRec
MapItems(1 To MAX_MAP_ITEMS) As MapItemRec
CurrentItemSave As Integer
NpcTempInfo(1 To 100) As DungeonNpcRec
CurrentNpcSave As Integer
End Type
```
**modPlayer**
In sub JoinGame find this:
```
' send vitals, exp + stats
For i = 1 To Vitals.Vital_Count - 1
Call SendVital(index, i)
Next
```
ABOVE it add this:
```
If Player(index).In_Instance = True Then
'Default map to warp to if no map set
If Player(index).ReturnMap = 0 Then Player(index).ReturnMap = 1
'Make sure they are pulled out of the instance compleatly
Player(index).In_Instance = False
TempPlayer(index).Is_In_Instance = False
'Return them to their pre-instance location
Call PlayerWarp(index, Player(index).ReturnMap, Player(index).ReturnX, Player(index).ReturnY)
'Wipe return values
Player(index).ReturnMap = 0
Player(index).ReturnX = 0
Player(index).ReturnY = 0
Call PlayerMsg(index, "You have left the instance!", Red)
End If
```
Next in sub PlayerWarp under the 'dims' add this:
```
If TempPlayer(index).Is_In_Instance = True Then
Call InstancePlayerWarp(index, MapNum, x, y)
Exit Sub
End If
```
Now in Sub PlayerMove Find this:
```
' Slide
If .Type = TILE_TYPE_SLIDE Then
Select Case .Data1
Case DIR_UP
If Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index) - 1).Type = TILE_TYPE_RESOURCE Or Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index) - 1).Type = TILE_TYPE_BLOCKED Then Exit Sub
Case DIR_LEFT
If Map(GetPlayerMap(index)).Tile(GetPlayerX(index) - 1, GetPlayerY(index)).Type = TILE_TYPE_RESOURCE Or Map(GetPlayerMap(index)).Tile(GetPlayerX(index) - 1, GetPlayerY(index)).Type = TILE_TYPE_BLOCKED Then Exit Sub
Case DIR_DOWN
If Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index) + 1).Type = TILE_TYPE_RESOURCE Or Map(GetPlayerMap(index)).Tile(GetPlayerX(index), GetPlayerY(index) + 1).Type = TILE_TYPE_BLOCKED Then Exit Sub
Case DIR_RIGHT
If Map(GetPlayerMap(index)).Tile(GetPlayerX(index) + 1, GetPlayerY(index)).Type = TILE_TYPE_RESOURCE Or Map(GetPlayerMap(index)).Tile(GetPlayerX(index) + 1, GetPlayerY(index)).Type = TILE_TYPE_BLOCKED Then Exit Sub
End Select
ForcePlayerMove index, MOVING_WALKING, .Data1
Moved = 1
End If
```
Under it add this:
```
If .Type = TILE_TYPE_INSTANCE Then
'Aka packnumber in this case
MapNum = .Data1
x = .Data2
y = .Data3
Call StartInstance(index, MapNum, x, y)
'Call PlayerWarp(Index, mapNum, x, y)
Moved = 1
End If
```
**modGeneral**
In the InitServer sub find this:
```
' Check if the directory is there, if its not make it
ChkDir App.Path & "\data\", "accounts"
ChkDir App.Path & "\data\", "animations"
ChkDir App.Path & "\data\", "banks"
ChkDir App.Path & "\data\", "items"
ChkDir App.Path & "\data\", "maps"
ChkDir App.Path & "\data\", "npcs"
ChkDir App.Path & "\data\", "resources"
ChkDir App.Path & "\data\", "shops"
ChkDir App.Path & "\data\", "spells"
ChkDir App.Path & "\data\", "convs"
ChkDir App.Path & "\data\", "quests"
```
Under it add this:
```
ChkDir App.Path & "\Data\", "instancemappacks"
```
**modHandleData**
In sub HandleRequestEditMap find this:
```
' Prevent hacking
If GetPlayerAccess(index) < ADMIN_MAPPER Then
Exit Sub
End If
```
Under it add this:
```
If TempPlayer(index).Is_In_Instance = True Then
Call PlayerMsg(index, "You can't edit maps while in an instance!", Red)
Exit Sub
End If
```
That is it for the server…
**Client**
**modGlobals**
Add this to the bottom:
```
Public EditorInst As Byte
```
**modGameEditors**
Find this in sub MapEditorMouseDown:
```
' warp tile
If frmEditor_Map.optWarp.value Then
.Type = TILE_TYPE_WARP
.Data1 = EditorWarpMap
.Data2 = EditorWarpX
.Data3 = EditorWarpY
End If
```
and replace it with this:
```
' warp tile
If frmEditor_Map.optWarp.value Then
If EditorInst = 1 Then
.Type = TILE_TYPE_INSTANCE
.Data1 = EditorWarpMap
.Data2 = EditorWarpX
.Data3 = EditorWarpY
Else
.Type = TILE_TYPE_WARP
.Data1 = EditorWarpMap
.Data2 = EditorWarpX
.Data3 = EditorWarpY
End If
End If
```
**modText**
Find this in BltMapAttributes:
```
Case TILE_TYPE_SLIDE
DrawText TexthDC, tX, tY, "S", QBColor(BrightCyan)
```
Under it add:
```
Case TILE_TYPE_INSTANCE
DrawText TexthDC, tX, tY, "IN", QBColor(BrightGreen)
```
**Client Form Work**
**FrmEditor_Map**
First off Find the Frame: fraMapWarp and make it look like this
![](http://eclipseorigins.com/community/filehost/bd811e68e10b1ab903a0a1e6b3716942.png)
Name the new CheckBox: cbinst
Name the new label: lblpack
Name the new Scrollbar: scrlpack
Double Click the Checkbox and add this:
```
If cbinst.value Then
scrlpack.Enabled = True
lblMapWarp.Caption = "Not Used"
scrlMapWarp.Enabled = False
Else
scrlpack.Enabled = False
lblMapWarp.Caption = "Map: " & scrlMapWarp.value
scrlMapWarp.Enabled = True
End If
```
Double Click the Scrollbar and add this:
```
lblpack.Caption = "Pack #: " & scrlpack.value
```
Now Doubleclick cmdMapWarp (the Accept buttom) and replace the code with this:
```
Private Sub cmdMapWarp_Click()
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
If cbinst.value = 0 Then
EditorWarpMap = scrlMapWarp.value
EditorInst = 0
Else
EditorWarpMap = scrlpack.value
EditorInst = 1
End If
EditorWarpX = scrlMapWarpX.value
EditorWarpY = scrlMapWarpY.value
picAttributes.visible = False
fraMapWarp.visible = False
' Error handler
Exit Sub
errorhandler:
HandleError "cmdMapWarp_Click", "frmEditor_Map", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
```
Now find scrlMapWarp, double click it and replace the code with this:
```
Private Sub scrlMapWarp_Change()
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
'TUT TUT
If cbinst.value = 0 Then
lblMapWarp.Caption = "Map: " & scrlMapWarp.value
Else
lblMapWarp.Caption = "Not Used"
scrlMapWarp.Enabled = False
End If
' Error handler
Exit Sub
errorhandler:
HandleError "scrlMapWarp_Change", "frmEditor_Map", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
```
Next find the Warp Radio button (optWarp) Double Click it and replace the code with this:
```
Private Sub optWarp_Click()
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
ClearAttributeDialogue
picAttributes.visible = True
fraMapWarp.visible = True
scrlMapWarp.max = MAX_MAPS
scrlMapWarp.value = 1
scrlMapWarpX.max = MAX_BYTE
scrlMapWarpY.max = MAX_BYTE
scrlMapWarpX.value = 0
scrlMapWarpY.value = 0
' Map instance
cbinst.value = 0
scrlpack.value = 1
scrlpack.Enabled = False
scrlpack.max = 30
' Error handler
Exit Sub
errorhandler:
HandleError "optWarp_Click", "frmEditor_Map", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
```
To edit the mappacks what I do is have a copy of the engine that i use to edit the maps then transfer them to the mappacks folder on the real engine … -
> all you do is simply open up your config file and put your ip in beside were it say ip= if you dont know your ip look it up at ipchicken.com
>
>
>
>
>
> then simply to let others play take all the files in client folder zip it up and set it up for them to download but remember the ip must be in the confi.ini
>
>
>
> but for your computer keep the ip as local host or it will not open on your pc
>
>
>
>
>
> best of luck hope this helps ~johnson
You forgot to mention that he needs to forward his port there is a tutorial somewhere for setting it up ill look for it and post it for u -
Oh thought this was the other engine q&a
-
You could always add these things yourself.. there is a tutorial for npc spells in the source tutorial section also if u have some vb skills there is a tutorial for a boss battle framework where u code ur own custom bosses
-
> This Image pickCharacter still doesn't work. Could You upload it again?
Here you go bro. Made this really quick based off the old one sorry I dont have a copy of the original picture but this will work.
Client side in modConstants under [' char constants] use these values instead of the ones in the tut and it will match up correctly
```
' character consts
Public Const EqTop As Long = 144
Public Const EqLeft As Long = 43
Public Const EqOffsetX As Long = 8
Public Const EqOffsetY As Long = 6
Public Const EqColumns As Long = 3
```
![](http://eclipseorigins.com/community/filehost/96ad0bba5309c7a7e6d3b54c1742c5d4.jpg) -
You just need to add the modGuild file included in the download to your client. Click Project > Add file > then find modGuild.bass
-
Many people want to eat healthy these days and one protein that comes to everyone's mind is chicken breast.. Of course many people dont like to cook chicken because it comes out dry as hell.. Here is a simple way of cooking great moist healthy* chicken breast every single time from your stove.. What can you do with this chicken recipe? Well just about anything that requires cooked chicken this can be used for, pasta, salads ect.
Things you will need:
1\. Boneless Skinless Chicken Breast or Tenders
2\. Olive Oil (*extra virgin if u want it more healthy)
3\. All purpose flour.
4\. Skillet with lid.
5\. 25-30 minutes.
First remove any fat left on the chicken. If your chicken breast are alittle thick pound them out a little with a meat mallet or rolling pin.
Next get your skillet and add about 2 tablespoons of oil to your skillet along with a small amount of butter. turn it to med-high and let it warm up.
Then take a shallow dish and add the flour (1/4 cup will do) season the flour with salt and pepper and season the chicken with a little salt and pepper.
Drop each chicken breast into flour to lightly coat shake off any extra.
When oil is nice and hot add the chicken and cook for about 2-3 mins until u get a nice golden color on the one side. (we arent trying too cook it all the way)
After u get a nice color on one side turn the chicken over and set the heat to low and cover with lid..
Cook on very low heat covered and set a timer for 10 mins.. don't open the lid let it do its thing!!
When the timer goes off turn the heat completely off and set the the timer for 10 more mins. Still dont open the lid to check the chicken its doing fine =)
After the timer goes off again open the lid and cut into to one it should be perfect. if its still a little pink turn heat on low for a little bit longer. this will be the the moistest chicken you have ever had then just add it to ur favorite pasta dish or whatever and enjoy =) -
… Can't believe I thought this was gonna be something interesting before I clicked on it.. you let me down
-
Ok thanks guys that makes more sense for some reason its not reading the x and y that are provided in the bit of code above that
-
Hello guys I'm having an issue that I can't seem to solve on my own with this code..
```
' Check to see if a npc is already on that tile
For i = 1 To Npc_HighIndex
If MapNpc(i).num > 0 Then
If MapNpc(i).x = x Then
If MapNpc(i).y = y Then
CheckDirection = True
Exit Function
End If
End If
End If
Next
```
this is the code in a deafult eo to stop a player from walking on a tile with a npc on it.. The problem is that it only checks if they are on the same x or y so, left right up and down. I am trying to make it check all 8 sides surrounding a player but cant figure it out. I have tried lots of things but no matter what i change it just makes me walk through npcs from all directions.. Can someone help me out and teach me to check all 8 sides for an npc? =/ -
sorry guys kinda quit eclipse for awhile back now gonna fix all these broken links
-
Hmm I have not had that issue yet zopto, ill look into it..
-
I think all those official guides are on the wiki page now ![:)](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/smile.png)
-
Map sizing
in Q & A
U can't make a map smaller than the pic screen size just use blocks or something… Are these real questions cause I see u post about 20 a day and some are the same ones but in multiple topics? Do u really need this much help or are u just trolling cause I don't know what questions to answer on which topic :/ -
Cool Post nuke 2
-
This will just prevent the classes from being selected when making a character it can be unlocked via the event system
-
Go to mod player click the drop down box on the right side of the module and scroll down to the bottom u will see useitem or just search for it its there its just one word not two
-
Can I still submit something? Do I jist post a tutorial in source board then post a link here?
-
You're a lonely little boy :/
Compile error: Method or data member not found.
in Source
Posted