Jump to content
Sign in to follow this  
Rosiel

Instance create using CharID

Recommended Posts

It would be very nice to see the instance system to be able to create instances for individual characters.

 

I will hopefully have some time next month to implement this, nevertheless I wanted to post the idea here to see how it is received.

Edited by jaBote

Share this post


Link to post
Share on other sites

Could be useful for quest lines which require a special map which may only be accessed by that particular person. Or some timed 1on1 arena for 2 players. (would need 2 char_ids to be transmitted).

 

I would surely use it.

Edited by Ryuuzaki

Share this post


Link to post
Share on other sites

Yes it's indeed a good idea. Individual instancing is much better than reserving maps for individual use as it's done right now. because it's resource and memory cost-efficient.

Share this post


Link to post
Share on other sites

Good Idea. Also, if possible I want to suggest a way where you can get the unique instance ID attached for every player inside the instance map generated by the server. This way, we can create a custom script command like getinstanceid,<char id>; and joininstance,<instance id>; and depending on the instance setup, this can be PvP, Co-op, or Individual instance. (We can also do a battleground instanced map! We just have to improve Gravity's Instancing ideas.)

Edited by Arzzae

Share this post


Link to post
Share on other sites

Good Idea. Also, if possible I want to suggest a way where you can get the unique instance ID attached for every player inside the instance map generated by the server. This way, we can create a custom script command like getinstanceid,<char id>; and joininstance,<instance id>; and depending on the instance setup, this can be PvP, Co-op, or Individual instance. (We can also do a battleground instanced map! We just have to improve Gravity's Instancing ideas.)

One could add an Id to the map_session_data structure.

 

I took a short look at the instancing code, as far as I can see one would need a second instance_create which would accept a charid, instance_create_sd or something like that.

instance_destroy would need to be modified so it does update the sd variable and not the party variable if that is set. One would also have to make sure that a party can not start an instance at the same time as when one of it's members is in an instance and vice versa.

I also do not like how the instancing module is just using a global array with MAX_INSTANCE, this could be solved much better using a linked list and allocation on demand, but it works so I am not touching that.

 

I am not very familiar with Hercules code, it would be very helpful if one of the developers could comment this post and tell me if what I have in mind is a good idea or not.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.