Instance limits?

Aeromesi

Custom Instance Maniac
Messages
821
Points
0
Age
33
Location
Custom Instances
Discord
Aeromesi#0293
Github
http://www.github.com/aeromesi
Emulator
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 :/

 
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.
 
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 ;]

 

 
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

 
Last edited by a moderator:
something similar ....

To view this content we will need your consent to set third party cookies.
For more detailed information, see our cookies page.

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

 
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?

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

 
Omfg thank you for that section of code, it's going to come in handy
default_tongue.png


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

 
Last edited by a moderator:
@@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

 
Last edited by a moderator:
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 thisI 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

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

 
Last edited by a moderator:
Back
Top