Jump to content
  • 0
Aeromesi

Instance limits?

Question

So for my instance mod package one of my ideals is to create an Sword Art Online mod via the instancing system.

What are the Instance limitations?

Can a user "leave virtual reality of the instance, like taking the VR helm off" and come back into the instance?


My ideas are they have a unique class they switch into upon entering the virtual reality instance, and be able to keep all progress, have players all dump into the same instance. Just don't know how to keep track of variables seeing as 'InstanceVars  get deleted upon @reloadscript or server-restart.

and if there were timers for any specific events I'd be worried about that too, being able to freeze whatever script that has a timer when they logout of virtual reality instance (SAO mod)

Any of this possible like converting 'InstanceVars to permanent character variables?

'InstanceVar = CharVar;

Like this? That way there instance progressed could be saved in the virtual reality Instance for next enter on instance.

Tell me if I'm in the right direction here :/

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 0

So for my instance mod package one of my ideals is to create an Sword Art Online mod via the instancing system.

 

What are the Instance limitations?

Not sure if it's MAX_MAPINDEX or MAX_MAP_SIZE in source. maybe you can check it out

Can a user "leave virtual reality of the instance, like taking the VR helm off" and come back into the instance?

usually, the amount of time before an instance gets destroyed is declared in db/instances.txt, you start from there.

My ideas are they have a unique class they switch into upon entering the virtual reality instance, and be able to keep all progress, have players all dump into the same instance. Just don't know how to keep track of variables seeing as 'InstanceVars  get deleted upon @reloadscript or server-restart.

 

and if there were timers for any specific events I'd be worried about that too, being able to freeze whatever script that has a timer when they logout of virtual reality instance (SAO mod)

 

Any of this possible like converting 'InstanceVars to permanent character variables?

 

'InstanceVar = CharVar;

 

Like this? That way there instance progressed could be saved in the virtual reality Instance for next enter on instance.

 

Tell me if I'm in the right direction here :/

not sure, usually, if you initiate an @reloadscript command all instance data are also removed.

Share this post


Link to post
Share on other sites
  • 0

Nice idea, but why not use a normal map??? If your planning on instancing the whole ragnarok world like, an alternate "channel" that would be extremily dificult (keeping in mind that npcs dont get cloned automatcly if you instance a map. Also you would have to clone every single map to instancelike names like prontera to 1@prt and clone every single world warp, spawn, etc etc etc...x_x)

You have to think of instance like an single map multiplicator for partys.

You can also warplock the maps you want to make your swordart's world in and make it accessible only through an item. Maybe 2 savepoints variables linked character's VR item scripts equip and unnequip. So you could track where you equiped and teleport to last unequiped... and so on...



Good luck with the project ;]

 

Share this post


Link to post
Share on other sites
  • 0

if you are planning to emulate SAO game,

then its better to take a look at SAO: Infinity Moment

http://swordartonline.wikia.com/wiki/Sword_Art_Online:_Infinity_Moment

I have tried to get my hands on it,

but all the download links wants your credit card or download ringtones ... bah...

so I just watch all videos about the game in the youtube to satisfy myself

 

 

I think you are not talking about instancing

just using normal map will do

 

because from google the "Infinity Moment" in youtube

I learn that the floor is cleared when that floor's boss beaten

and after the boss beaten, it never respawn,

and the city's portal immediately have access to the next floor

 

 

for 1st question, just use a permanent server variable

so let's say your players already beaten 3rd floor

just set a variable $SAO_floorbeaten = 3

 

when a boss beaten, OnMobKill ... set $SAO_floorbeaten, 3; ...

when server start ... OnInit: if ( $SAO_floorbeaten >= 3 ) ... enablenpc 4floorportal ...

and town has a portal ... if ( $SAO_floorbeaten >= 3 ) ... @menu$ = @menu$ + ":4th floor"; // dynamic menu

 

the player side quest can be track with normal var

SaoQuest ... just example

if they completed a quest , set SaoQuest, 1;

something like that

 

the topic title is just confusing

and good luck with finding map designer to make lots of maps for u

Share this post


Link to post
Share on other sites
  • 0

something similar ....

 

but i am agree with AnnieRuru, no point to make it as instances... it's not really an instance to begin with.

Share this post


Link to post
Share on other sites
  • 0

Well an instance would simulate a "digital" world where I could save their class/job/base along with stats and progression, then land them back into that specific part of the instance where they could continue their adventure in the digital world. In all reality would it be possible or just a big hassle?

Share this post


Link to post
Share on other sites
  • 0

nothing is impossible, that I always said

yeah its kinda a hassle... so you better not do it ... lol

 

but if you want, just save their character information upon entering the map

then when they want to quit, just retrieve the information again, destroy the variable, then good to go

 

and again .... THIS IS NOT INSTANCE SCRIPT

http://upaste.me/f10c21780b813f199

ok the hassle part I even did it for u ...

Share this post


Link to post
Share on other sites
  • 0

@@Aeromesi

 

When you switch back to original values you should set the realXXX to 0 so that they get destroyed while they are not used.

Also i would recommend to load / save the sao variables manually via mysql up on entering / leaving the vr, since having too many char variables can tax the performance, atleast if you have many players and many of them play in your vr.

 

The only hard part i guess will be how to handle a crash of your server or instance for whatever reason, regardless of method you use to save the values.

Edited by Winterfox

Share this post


Link to post
Share on other sites
  • 0

@@Winterfox

yeah I forgot to reset the variables ... always a mistake for me. +1

update the script in my previous post

 

if you gonna save them in SQL, how many columns are you going to make ?

if the player has about 50 skills learned, make 50+ columns ?

isn't this is the one gonna lag the server ?

 

and the info about saving too many variables will hit the performance

this is outdated info for eathena

hercules has already use new method

http://herc.ws/board/topic/3886-hercules-1st-2014-megapatch/

previously it was limited to 128 elements because it was using array in the source to simulate it

but now hercules are using pointer to store array

in theory, this should allow server to make as many variable as possible until server run out of RAM

there shouldn't be a performance hit unless when the player having over 500,000 variables

-during player login and sql retrieve too many rows

 

crash ? no such thing ...

if it happens, post in bug report

Share this post


Link to post
Share on other sites
  • 0

Yeah that's the only thing I've thought about @@Winterfox, the crashing/reload of the server... How would I handle it... xD

As progress gets made I'll make sure to update you guys about it

Share this post


Link to post
Share on other sites
  • 0

Yeah that's the only thing I've thought about @@Winterfox, the crashing/reload of the server... How would I handle it... xD

try explain this

I don't think this kind of script can make server crash

or even if it is crash, it was saved as permanent player variable, they should be inside `char_reg_num_db` table

Share this post


Link to post
Share on other sites
  • 0

@@Winterfox

yeah I forgot to reset the variables ... always a mistake for me. +1

update the script in my previous post

 

if you gonna save them in SQL, how many columns are you going to make ?

if the player has about 50 skills learned, make 50+ columns ?

isn't this is the one gonna lag the server ?

 

and the info about saving too many variables will hit the performance

this is outdated info for eathena

hercules has already use new method

http://herc.ws/board/topic/3886-hercules-1st-2014-megapatch/

previously it was limited to 128 elements because it was using array in the source to simulate it

but now hercules are using pointer to store array

in theory, this should allow server to make as many variable as possible until server run out of RAM

there shouldn't be a performance hit unless when the player having over 500,000 variables

-during player login and sql retrieve too many rows

 

crash ? no such thing ...

if it happens, post in bug report

You are right, well i read on the wiki that it slows the performance of the server since the char variables would be updated with every char save cycle.

The thing is even though it would have produced more tables and rows to work with, it would only have to be done on every enter and leave of the vr instead of constantly sending a bunch of data around.

 

But i guess that addresses this:

Saving and loading procedures have been improved outstandingly! for instance, previously, if you had 100 char regs but only one had been modified or deleted, map server would need to send all of them and char server would have to re-insert all of them; now only modified or deleted ones are saving, increasing saving speed of both map and char server procedures and decreasing inter-server bandwidth by dinosaur steps.

It also finally claryfied why having more than 128 rows with quers_sql works, i wondered about it since the documentation stated it was limited. Seems it was like that because of a restriction of the array size from long ago was lifted.

 

About the crash part, i think if he simulates another world or something he wants the vr to fallback into the ro world after the server gets back on. So there would need to be a system that checks if there was a complete reboot of the server which would revert all vr people back to the ragnarok basics.

Edited by Winterfox

Share this post


Link to post
Share on other sites
  • 0

Thanks for all the support guys. I'm sure I'll be able to make something interesting now... :D

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
Answer this question...

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

×
×
  • Create New...

Important Information

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