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

Scott

Members
  • Posts

    428
  • Joined

  • Last visited

    Never

Posts posted by Scott

  1. The slots are just maps, it just places you on a normal map, flags that as an instance map and you would never leave that single map(you would look like you where) but your really confined to 1 map as a single player. Now if your in a party and you try to move maps, it will first look to see if anyone else in your party is on that section of the dungeon, if they are it will move you to there map so you both are on the same instanced map, now say a player leaves this map it will notice there is a player still on the current map and assign them a new map so the first player can keep exploring this section even though it may not have been his orignal map and he joined it while another player was on. So really there is no "End Instance" each player kinda has there own that can co-mingle if there in a group. It only uses 1 map slot per player at max, and less as you group up on the same maps together if you have a better idea please be more detailed wasen't following you well.
  2. If they are in a party they will join one together, if not they will each have a seperate copy to use. So really all this does is gives each player 1 map slot they can use alone, it will load the old map from under them and load a new map on the same map to make it look like a transition, except when your in a party it will do a check to see if anyone else in your party is in this part of the dungeon and just take you to their map if so.
  3. > True, however, my CV was a bugged ass engine and I discontinued it for that reason amongst others, being an only tester. I could not find and fix the bugs in a timely manner, I didn't say I was mad - I just said I wasn't too happy. I would have expected more from the one who was building onto my CV as their CV, but eh. You're right - Had I not dropped the development then it would have given me reason to "Not be happy"; So > ![:)](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/smile.png)

    I didn't mean mad like that bad wording on my end sorry lol but I also understand where your comming from, just though I would throw my 2 cents in. ![:)](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/smile.png)
  4. > I noticed some CV's just snatching other CV's and building onto them. That's silly. Even so without proper consent, like how Eclipse Starlight did to my CV.. I wasn't all to happy about it but I let it go, they gave me credit but, it just felt like they tried to '1 up' me with my own work at that time - When I did some coding for mitlark's CV, I asked for permission to add onto his CV, rather than hijacking it.

    I see it like this, if you release something open source and stop developing it anyone should be able to pick it up from where you left off and as long as they credit all your work how can you be mad if your not developing it any more it's not like they didn't say all this work was thanks to you here is what I have to contribute credits to me. Now if you where still working on that project and some one did that than I could see how you would be mad and ignore everything above this lol.
  5. The way I did it was I have 2 pieces of info stored with the player, a guild-id(the file where the guild data is stored) and the slot the player is in the members list which is there so I can skip looping to find them every time(it will loop if it can't find them in that slot tho so if I want to kick a user I just remove them from the list and when they login next time, it will not find them and remove them for you).

    Then in tempplayer data I have a variable that points to which slot the guild they are in is loaded to kinda like how items have items(1-225) I had Guilds(1-Max_Players) so I could just call something like Guilds(TempPlayer(index).TempGuildSlot).blabla or even Guilds(TempPlayer(index).TempGuildSlot).GuildMemberSlot(Player(index).GuildMemberSlot).Rank sorta thing.

    On login I placed a call to a new GuildLoginCheck sub that loads the guild into memory when a user logins in and no one else in the guild is online, if some one else from there guild is logged in it will just place that tempplayer pointer to the already loaded guild. On the logout sub I had the reverse, if no one else from the guild is online time to clear that from memory.

    You don't have to do it this way, just figured I'd give you a more detailed explination since you still seem to be deciding how to do it.
  6. So first lets look here:

    ```
    'Not in guild

    If Player(Index).Char(TempPlayer(Index).CurChar).GuildFileId = 0 Then Exit Sub

    ```

    Now lets look at this:

    ```

    'Check to make sure the guild file exists

    If Not FileExist("\Data\guilds\Guild" & Player(Index).Char(CharNum).GuildFileId & ".dat") Then

    ```

    There is 1 difference between these 2 that caused the first one to work, and the second one not to.

    There is 2 ways you could fix this:

    1\. Add "Dim CharNum as Byte" under the other dims than add "CharNum = TempPlayer(Index).CurChar"

    or

    2\. Change all CharNum refrences to "TempPlayer(Index).CurChar"

    both work the same.
  7. > so all works fine exept kick option i put rank1 cannot kick player from guild
    >
    > but it can…...cannot/can option for kick dont work

    I'll look into this, probly an issue from when I changed how the permission system worked.

    Edit: If you are trying this on the guild creator they are marked as the founder, and there is an override that lets them do anything even if it's marked off limits did this so you can't accidently lock your self out of the admin stuff.
  8. Sorry for the delay, some other stuff took priority but i'm back to working on this for the time being. So as I'm sure you all have been waiting for the fix for the npc spawning bug!

    (SERVER)

    Find:

    ```

    'Load new map

    Call LoadSingleInstancedMap(MapToUse, TempPlayer(index).MapPack, TempPlayer(index).CurrentInstanceMap)

    Map(MapToUse).Revision = HoldR

    ' Respawn

    Call SpawnMapItems(GetPlayerMap(index))

    ' cache the map

    Call MapCache_Create(MapToUse)

    Call ClearTempTile(MapToUse)

    Call CacheResources(MapToUse)

    ```

    Under add:

    ```
    ' Respawn NPCS

    For i = 1 To MAX_MAP_NPCS

    Call SpawnNpc(i, GetPlayerMap(index))

    Next

    ```

    –-----------------------------------------------------------------------------

    Find in **Sub InstancePlayerWarp** (Make sure you only do this inside InstancePlayerWarp this appears else where):

    ```
    Call SetPlayerMap(index, NewMap)

    Call SetPlayerX(index, NewX)

    Call SetPlayerY(index, NewY)

    ```

    Delete and move it under:

    ```
    If MapToUse > TempPlayer(index).MapsUsed Then

    Call PlayerMsg(index, "This instance does now currently have this many maps, the max is " & TempPlayer(index).MapsUsed & " for this instance.", Red)

    Exit Sub

    End If

    ```

    So it should look like this in the end:

    ```

    If MapToUse > TempPlayer(index).MapsUsed Then

    Call PlayerMsg(index, "This instance does now currently have this many maps, the max is " & TempPlayer(index).MapsUsed & " for this instance.", Red)

    Exit Sub

    End If

    Call SetPlayerMap(index, NewMap)

    Call SetPlayerX(index, NewX)

    Call SetPlayerY(index, NewY)

    ```
  9. Haha this is just for testing when I'm done I'll release it as a stand alone tutorial and not just a downloadable source. I got hired by an old client of mine to do some more work and got a little busy, but my attention is back on eclipse now that I'm done with that so let me go fix that npc bug lol.
  10. I finished them last night, than passed out after here ya go sorry,

    (This fixes npc spawn issues)

    In sub InstancePlayerWarp find:

    ```
    ' send player's equipment to new map

    SendMapEquipment Index

    ' send equipment of all people on new map

    If GetTotalMapPlayers(NewMap) > 0 Then

    For i = 1 To Player_HighIndex

    If IsPlaying(i) Then

    If GetPlayerMap(i) = NewMap Then

    SendMapEquipmentTo i, Index

    End If

    End If

    Next

    End If
    ```

    Under add:

    ```

    ' Now we check if there were any players left on the map the player just left, and if not stop processing npcs

    If GetTotalMapPlayers(PlayerMap) = 0 Then

    PlayersOnMap(PlayerMap) = NO

    ' Regenerate all NPCs' health

    For i = 1 To MAX_MAP_NPCS

    If MapNpc(PlayerMap).Npc(i).Num > 0 Then

    MapNpc(PlayerMap).Npc(i).Vital(Vitals.HP) = GetNpcMaxVital(MapNpc(PlayerMap).Npc(i).Num, Vitals.HP)

    End If

    Next

    End If

    ```

    –-----------------------------------------------------------------------

    (This fixes death issues)

    In sub OnDeath find:

    ```
    With Map(GetPlayerMap(Index))

    ' to the bootmap if it is set

    If .BootMap > 0 Then

    PlayerWarp Index, .BootMap, .BootX, .BootY

    Else

    Call PlayerWarp(Index, START_MAP, START_X, START_Y)

    End If

    End With
    ```

    Replace with:

    ```

    With Map(GetPlayerMap(Index))

    If TempPlayer(Index).Is_In_Instance = False Then

    'Non instance death

    ' to the bootmap if it is set

    If .BootMap > 0 Then

    PlayerWarp Index, .BootMap, .BootX, .BootY

    Else

    Call PlayerWarp(Index, START_MAP, START_X, START_Y)

    End If

    Else

    'instance death

    'Pull them out if they are in one already

    'Make sure they are pulled out of the instance compleatly

    Player(Index).In_Instance = False

    TempPlayer(Index).Is_In_Instance = False

    'Wipe temp data

    TempPlayer(Index).CurrentInstanceMap = 0

    TempPlayer(Index).MapPack = 0

    TempPlayer(Index).MapsUsed = 0

    '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!", Green)

    End If

    End With

    ```

    Let me know if you have any issues with these, they are not included in the downloadable version yet I didn't upload it yet since it will include new features as well as the bug fixes.
  11. > Npc's don't spawn correctly, and when you die on an instanced map it doesn't take you to the starting map or boot map, just puts you back onto the instanced map somewhere.

    ![:wacko:](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/wacko.png) Oops lol completely forgot to re-write the on death sub lol thanks I'll fix those both asap and get version 3 out.

    > Sweet tut man, thanks for the submission. Eclipse has really come a long way.

    Thanks
  12. How isn't it a good way please explain it?

    > Wow… I wrote an instanced system which lead onto random dungeons long ago... This isn't the best way of doing it however its a start. Keep it up!
    >
    > ~Kibbelz

    Please go into detail on why this isn't the best way of doing it, are you referring to the code or the user interface part? This has nothing to do with random dungeons though I simply stated that you could convert this to allow instanced randomly generated dungeons this release is simply for people who want static instanced dungeons ect.
  13. Yes you can do anything with this, but it will require some programming to integrate it differently than I did with the mappacks but the core instance code is there so it shouldn't be to hard for people with light vb6 programming experience to do something like that. You could achieve alot with mostly copy pasting stuff and making slight changes to it.
  14. Instanced maps is where you take a map(or set of maps in this case) and allow multiple players to play on that same map alone(and in groups with this take on it).

    It's written for EO 2.0 only, I plan to write a version for events but that's after it works as intended on 2.0\. I don't see why it wouldn't work on Eclipse advanced though seeing as it does not look to have any changes that would mess with areas I edited.
  15. First bug fix, this fixes an issue where if a member of the party attempts to join a different instance mappack than the rest of the party, they would just be taken to their groups map and override that map temporarily for that part of the group.

    For those who already downloaded it

    Server Side

    Find

    ```

    'Check if in a party

    If TempPlayer(Index).inParty > 0 Then

    For i = 1 To 4

    If Party(TempPlayer(Index).inParty).Member(i) > 0 Then

    If Player(Party(TempPlayer(Index).inParty).Member(i)).Map = Player(Index).Map And Not TempPlayer(Party(TempPlayer(Index).inParty).Member(i)).CurrentInstanceMap = MapToUse Then

    'Where with our friend but moving to a different map than him

    NeedNewMap = True

    Exit For

    End If

    End If

    Next i

    End If

    'Check if in a party

    If TempPlayer(Index).inParty > 0 Then

    For i = 1 To 4

    'Check and see if another player is on this instance map

    If Party(TempPlayer(Index).inParty).Member(i) > 0 Then

    If TempPlayer(Party(TempPlayer(Index).inParty).Member(i)).CurrentInstanceMap = MapToUse Then

    NewMap = Player(Party(TempPlayer(Index).inParty).Member(i)).Map

    NeedNewMap = False

    Exit For

    End If

    End If

    Next i

    End If

    ```

    Replace it with

    ```

    'Check if in a party

    If TempPlayer(Index).inParty > 0 Then

    For i = 1 To 4

    If Party(TempPlayer(Index).inParty).Member(i) > 0 Then

    If Player(Party(TempPlayer(Index).inParty).Member(i)).Map = Player(Index).Map And Not TempPlayer(Party(TempPlayer(Index).inParty).Member(i)).CurrentInstanceMap = MapToUse Then

    'Are we on the same mappack?

    If TempPlayer(Party(TempPlayer(Index).inParty).Member(i)).MapPack = TempPlayer(Index).MapPack Then

    'Where with our friend but moving to a different map than him

    NeedNewMap = True

    Exit For

    End If

    End If

    End If

    Next i

    For i = 1 To 4

    'Check and see if another player is on this instance map

    If Party(TempPlayer(Index).inParty).Member(i) > 0 Then

    If TempPlayer(Party(TempPlayer(Index).inParty).Member(i)).CurrentInstanceMap = MapToUse Then

    'Are we on the same mappack?

    If TempPlayer(Party(TempPlayer(Index).inParty).Member(i)).MapPack = TempPlayer(Index).MapPack Then

    NewMap = Player(Party(TempPlayer(Index).inParty).Member(i)).Map

    NeedNewMap = False

    Exit For

    End If

    End If

    End If

    Next i

    End If

    ```
  16. > now if we could combine this with random generated dungeons, we would have such a great system xd

    Originally started out as that, and I plan to write a separate section on how you can use it like that, this one is for people who want a bunch of static instanced worlds for bosses/dungeons ect.
  17. Newest Version

    This version adds persistent items to instancing, when you leave an instanced map instead of deleting the items they are added to a temp list of instanced items. Limit is 1 maps worth of max items(225?) per instance, can be changed.

    (Updated to fix 2 bugs in first download)

    Download: [https://mega.co.nz/#…KQ9S5-x3OYWrVW8](https://mega.co.nz/#!n8gCmAwY!GP2i3iSk7wL0OWvbjwbl5QIh_wNuKQ9S5-x3OYWrVW8)

    (I had to use outside hosting because some one though it would be funny to make the upload limit 2 mb… and the built in File Host won't accept zips or rars from me.)

    Old Versions

    (These Downloads will be missing updates/bug fixes use at your own risk I will provide no help with them)

    [attachment=157:PostMapInstance2.zip]

    So over the past few weeks in my free time(Sorry guild tutorial people hoping for an update) I've been writing a tutorial for instanced map, along the way it changed into more than just a single instanced map. I had the idea why can't you walk around this instanced world with your friends, transition map-map in per-designed template worlds.

    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 eclipse 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.

    Note:The example map with the instance warp is on map 2, my bad.

    So let me know what else you would like to see in this/all bugs you find no matter how small and stupid. I'll rip it to a tutorial when I feel there is no major issues with it.

    This contains both the source/compiled versions of it, if you want to rip this for your game before I make this a tutorial search the source for "'TUT TUT" as I labeled most if not all of the edits with that tag.

    [attachment=157:PostMapInstance2.zip]
×
×
  • Create New...