Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.
Comentarios: Corrected some typos

...

When you build the scripts statically (SCRIPTS="static") all scripts are compiled into the worldserver, that's why the size of it's executable is huge when building statically. The static build is easy to build and maintain and isn't error prone, but it requires the worldserver to be rebuilt as soon as you edit a script which heavily slows down the fun/ and time when working with scripts.

 

Nota

Script projects which were built statically into the worldserver aren't reloadable at runtime!

...

Nota

Script projects which were built dynamically are reloadable at runtime, (since it is built into seperated separated shared libraries, which you will find in the the "script" directory).

...

The hotswap system is enabled by default, but it requires the server to be built with the CMake WITH_DYNAMIC_LINKING option as explained above.

If you want to disabled disable the whole system you may disable it through the HotSwap.Enabled worldserver.conf setting.

...

The shared libraries which contain the scripts are installed into the scripts directory relative to the worldserver. when you start the worldserver you will recognize the log messages which are telling you telling that the shared libraries were loaded (disabled scripts could lead to error messages - but that's not harmful, it just tells you that the scripts aren't useable → but don't expect the disabled scripts or functionality to work):

...

Loading, unloading or reloading scripts will affect the ingame in-game entities like creatures immediatlyimmediately:

  • Database unbound scripts (the scripts which hasndoesn't have a scriptname assigned in the database) are reloaded instantly without any issues.
  • Database bound scripts are complicated to swap which means some reset mechanic is needed to do so.

Reloading database bound scripts will trigger following actions while swapping the script immediatlyimmediately:

  • Creatures which AI's are swapped enter into evade mode immediatly immediately which cause the creature to reset, the script is swapped immediatlyimmediately.
  • GameObjects are swapped immediatly immediately with triggering a Reset() before swapping.
  • Commands: The command cache is cleared, the commands are reloaded immediatlyimmediately.
  • OutdoorPvPScript's are killed and re-initialized after reloading → any progress is lost.

...

  • Spell/AuraScripts are never swapped, but new instances of the spells or auras are using the latest C++ script version which is available → re-cast or re-apply the aura you want to try out to get the latest script version (.unaura all, .cast ...).
  • InstanceScripts are also never swapped, the worldserver will use the latest C++ script version available of the instanc escript instance script when creating new ones. (Use .instance unbind all and reenter the instance to get the latest script version).

...

It also observes the directories and re-invokes CMake to take care of added or removed source files. 


Troubleshooting

 

Expandir
titleFailed to create Cache entry assertion

Make sure you are running the server outside your build directory see "Configuring the Hotswap System"

...