Last 30 days
-
ScriptParent
Wiki page edited by griatch
- Revision r845
Edited wiki page through web user interface.
Revision r845
Edited wiki page through web user interface.
-
BatchProcessing
(: Using the Evennia command batch processor) Wiki page edited by griatch
- Revision r844
Edited wiki page through web user interface.
Revision r844
Edited wiki page through web user interface.
-
BatchProcessing
(Using the Evennia command batch processor) Wiki page edited by griatch
- Revision r843
Edited wiki page through web user interface.
Revision r843
Edited wiki page through web user interface.
-
EventSystem
Wiki page edited by griatch
- Revision r842
Edited wiki page through web user interface.
Revision r842
Edited wiki page through web user interface.
-
EventSystem
Wiki page edited by griatch
- Revision r841
Edited wiki page through web user interface.
Revision r841
Edited wiki page through web user interface.
-
CommandSystem
Wiki page edited by griatch
- Revision r840
Edited wiki page through web user interface.
Revision r840
Edited wiki page through web user interface.
-
r839
(Reworked object command tables.
Object commands used to req...) committed by griatch
- Reworked object command tables.
Object commands used to require re-adding every call in the script parent's __init__ or factory
functions, adding the commands to a new command table directly on the object. Since all other
attributes can be set up in at_object_creation(), this was both inconsistent and a bit confusing to
work with. There is now a method add_commands() directly defined on all objects. It takes the same
arguments as the normal add_command()o but use a reserved attribute to create and update a command
table on the object. This has the advantange of completely removing the __init__ call in the script
parent, all definitions can now be kept in at_object_creation() and are, more importantly,
persistent without having to be recreated every call.
- I updated the examine command to show all the commands defined on an object (if any).
- I updated gamesrc/parents/examples/red_button.py considerably using the new command methodology
and also using the updated Events.
.
Griatch
Reworked object command tables.
Object commands used to require re-adding every call in the script parent's __init__ or factory
functions, adding the commands to a new command table directly on the object. Since all other
attributes can be set up in at_object_creation(), this was both inconsistent and a bit confusing to
work with. There is now a method add_commands() directly defined on all objects. It takes the same
arguments as the normal add_command()o but use a reserved attribute to create and update a command
table on the object. This has the advantange of completely removing the __init__ call in the script
parent, all definitions can now be kept in at_object_creation() and are, more importantly,
persistent without having to be recreated every call.
- I updated the examine command to show all the commands defined on an object (if any).
- I updated gamesrc/parents/examples/red_button.py considerably using the new command methodology
and also using the updated Events.
.
Griatch
-
StateSystem
Wiki page edited by griatch
- Revision r838
Edited wiki page through web user interface.
Revision r838
Edited wiki page through web user interface.
-
StateSystem
Wiki page edited by griatch
- Revision r837
Edited wiki page through web user interface.
Revision r837
Edited wiki page through web user interface.
-
StateSystem
Wiki page edited by griatch
- Revision r836
Edited wiki page through web user interface.
Revision r836
Edited wiki page through web user interface.
-
PermissionSystem
(The Permission and Group system) Wiki page edited by griatch
- Revision r835
Edited wiki page through web user interface.
Revision r835
Edited wiki page through web user interface.
-
CacheSystem
Wiki page edited by griatch
- Revision r834
Edited wiki page through web user interface.
Revision r834
Edited wiki page through web user interface.
-
CacheSystem
Wiki page edited by griatch
- Revision r833
Edited wiki page through web user interface.
Revision r833
Edited wiki page through web user interface.
-
CacheSystem
Wiki page edited by griatch
- Revision r832
Edited wiki page through web user interface.
Revision r832
Edited wiki page through web user interface.
-
EventSystem
Wiki page edited by griatch
- Revision r831
Edited wiki page through web user interface.
Revision r831
Edited wiki page through web user interface.
-
EventSystem
Wiki page edited by griatch
- Revision r830
Edited wiki page through web user interface.
Revision r830
Edited wiki page through web user interface.
-
EventSystem
Wiki page edited by griatch
- Revision r829
Edited wiki page through web user interface.
Revision r829
Edited wiki page through web user interface.
-
CacheSystem
Wiki page edited by griatch
- Revision r828
Edited wiki page through web user interface.
Revision r828
Edited wiki page through web user interface.
-
CacheSystem
Wiki page edited by griatch
- Revision r827
Edited wiki page through web user interface.
Revision r827
Edited wiki page through web user interface.
-
-
DeveloperCentral
Wiki page edited by griatch
- Revision r825
Edited wiki page through web user interface.
Revision r825
Edited wiki page through web user interface.
-
EventSystem
Wiki page edited by griatch
- Revision r824
Edited wiki page through web user interface.
Revision r824
Edited wiki page through web user interface.
-
r823
(Updated the batch processor to use the new global cache syst...) committed by griatch
- Updated the batch processor to use the new global cache system instead of the custom dict-based
cache it used before. Much cleaner now.
.
Griatch
Updated the batch processor to use the new global cache system instead of the custom dict-based
cache it used before. Much cleaner now.
.
Griatch
-
r822
(Fixes in batchprocessor. The batchprocessor now completely i...) committed by griatch
- Fixes in batchprocessor. The batchprocessor now completely ignores states (so running a batch file
where e.g. a player is forced into a state by entering a room will no longer also trap the builder
using the batchprocessor to build that trapping room.) This is by automatically setting the flag
ADMIN_NOSTATE on the user running batchprocessor.
.
Griatch
Fixes in batchprocessor. The batchprocessor now completely ignores states (so running a batch file
where e.g. a player is forced into a state by entering a room will no longer also trap the builder
using the batchprocessor to build that trapping room.) This is by automatically setting the flag
ADMIN_NOSTATE on the user running batchprocessor.
.
Griatch
-
r821
(Small bugfix to cmdhandler to avoid a unicode-related traceb...) committed by griatch
- Small bugfix to cmdhandler to avoid a unicode-related traceback.
.
Griatch
Small bugfix to cmdhandler to avoid a unicode-related traceback.
.
Griatch
-
r820
(Various cleanups in the recent modifications, and improvemen...) committed by griatch
- Various cleanups in the recent modifications, and improvements to how time is handled and displayed.
.
Griatch
Various cleanups in the recent modifications, and improvements to how time is handled and displayed.
.
Griatch
-
r819
(Implemented persistent cache, events and gametime counter.
...) committed by griatch
- Implemented persistent cache, events and gametime counter.
OBS - there is a new data table (for the persistent cache) so you need to sync or restart with your
database.
* Persistent cache (pcache)- this works the same as the volatile cache, except it is regularly saved
to disk and recovered upon restart. How often the pcache is backed up is set in preferences. This
was heck of a tricky thing to get right due to the intricacies of pickle; for example it turns out
there is a bug in cPickle, so only normal pickle works to store the cache objects.
* Persistent events - this makes use of the pcache to re-load the scheduled events every reload.
Only events with the property "persistent" will be saved this way (if not set, events will get lost
upon reboot, just like now). All the main system events have been implemented as persistent events,
including a new event to regularly save the pcache to disk.
* In order to track persistent event timers across reboots, there is also a global "game time"
defined now. This is saved in cache and counts seconds only when the server is running. Event timers
are adjusted with an offset when restarting (otherwise they will be confused by the real time
jumping forward after a downtime). There are also a small set of helpful routines in src/gametime.py
to help convert from real time to game time (for easy creation of new events).
* Various info commands have been updated to incoorporate the time stamp and the cache sync
information.
* There are a few test commands commented out in commands/general.py that I used for testing; I left
them in if you want to test things quickly. It works here, but as always more people testing is
needed.
/Griatch
Implemented persistent cache, events and gametime counter.
OBS - there is a new data table (for the persistent cache) so you need to sync or restart with your
database.
* Persistent cache (pcache)- this works the same as the volatile cache, except it is regularly saved
to disk and recovered upon restart. How often the pcache is backed up is set in preferences. This
was heck of a tricky thing to get right due to the intricacies of pickle; for example it turns out
there is a bug in cPickle, so only normal pickle works to store the cache objects.
* Persistent events - this makes use of the pcache to re-load the scheduled events every reload.
Only events with the property "persistent" will be saved this way (if not set, events will get lost
upon reboot, just like now). All the main system events have been implemented as persistent events,
including a new event to regularly save the pcache to disk.
* In order to track persistent event timers across reboots, there is also a global "game time"
defined now. This is saved in cache and counts seconds only when the server is running. Event timers
are adjusted with an offset when restarting (otherwise they will be confused by the real time
jumping forward after a downtime). There are also a small set of helpful routines in src/gametime.py
to help convert from real time to game time (for easy creation of new events).
* Various info commands have been updated to incoorporate the time stamp and the cache sync
information.
* There are a few test commands commented out in commands/general.py that I used for testing; I left
them in if you want to test things quickly. It works here, but as always more people testing is
needed.
/Griatch
-
r818
(Added more stable events.
- added PIDs to all events, so th...) committed by griatch
- Added more stable events.
- added PIDs to all events, so they can be deleted safely.
- scheduler.del_event(pid) cleanly deletes events from the scheduler
- added @delevent for deleting events based on PID (@ps shows this now)
- Events has a self.repeat property allowing them to only be repeated a certain time (default is
infinitely many times). After the set number of repeats, the event deletes itself from the
scheduler.
Events are currently not persistently stored; this is left for future commits.
.
Griatch
Added more stable events.
- added PIDs to all events, so they can be deleted safely.
- scheduler.del_event(pid) cleanly deletes events from the scheduler
- added @delevent for deleting events based on PID (@ps shows this now)
- Events has a self.repeat property allowing them to only be repeated a certain time (default is
infinitely many times). After the set number of repeats, the event deletes itself from the
scheduler.
Events are currently not persistently stored; this is left for future commits.
.
Griatch
Earlier this year
-
-
r817
(* Implemented a non-persistent cache in src/cache.py. The ca...) committed by griatch
- * Implemented a non-persistent cache in src/cache.py. The cache is lost when restarting the server
but it has the advantage of not hitting the database, and so is useful for implementing things that
should be remembered over time but does not need to be persistently saved in the database at every
point, like fast-updating combat systems, timers etc. Using the cache can substantially cut down on
database access at the cost of memory comsumption. It is easiest accessed through the object model
using normal dot notation. So to store a variable in volatile memory e.g. from your script parent,
you can do things like self.scripted_obj.cache.myvariable = variable and be sure that later (unless
there was a reboot) doing self.scripted_obj.cache.myvariable will return the value you stored there.
* OBS - doing e.g. self.scripted_obj.myvariable = variable was always iffy and since a few revisions
back this will NOT work - this is because the objects are now consistently synced with the database
(in the past this was not done consistently which caused strange behaviour).
* Fixed some bugs in the multi-word command handler. It can handle multi-word exits as well now.
* Implemented a non-persistent cache in src/cache.py. The cache is lost when restarting the server
but it has the advantage of not hitting the database, and so is useful for implementing things that
should be remembered over time but does not need to be persistently saved in the database at every
point, like fast-updating combat systems, timers etc. Using the cache can substantially cut down on
database access at the cost of memory comsumption. It is easiest accessed through the object model
using normal dot notation. So to store a variable in volatile memory e.g. from your script parent,
you can do things like self.scripted_obj.cache.myvariable = variable and be sure that later (unless
there was a reboot) doing self.scripted_obj.cache.myvariable will return the value you stored there.
* OBS - doing e.g. self.scripted_obj.myvariable = variable was always iffy and since a few revisions
back this will NOT work - this is because the objects are now consistently synced with the database
(in the past this was not done consistently which caused strange behaviour).
* Fixed some bugs in the multi-word command handler. It can handle multi-word exits as well now.
-
r816
(Make sure player input is valid unicode. If an un-decodable ...) committed by squishywaffle
- Make sure player input is valid unicode. If an un-decodable character is encountered, replace it
with question marks. We'll need to test this with a more unicode capable client than I have.
Make sure player input is valid unicode. If an un-decodable character is encountered, replace it
with question marks. We'll need to test this with a more unicode capable client than I have.
-
r815
(Set the default encoding to UTF-8. UTF-8 support in new code...) committed by squishywaffle
- Set the default encoding to UTF-8. UTF-8 support in new codebases is pretty much expected,
especially given that MUX/MUSH now have excellent support. This should alleviate some of those
encoding errors, and allows us to get rid of that ascii error checker in session.py.
Set the default encoding to UTF-8. UTF-8 support in new codebases is pretty much expected,
especially given that MUX/MUSH now have excellent support. This should alleviate some of those
encoding errors, and allows us to get rid of that ascii error checker in session.py.
-
r814
(Added an at_obj_receive hook to basic player/object script p...) committed by griatch
- Added an at_obj_receive hook to basic player/object script parents. This allows
e.g. room parents to react when a player enters them.
Added an at_obj_receive hook to basic player/object script parents. This allows
e.g. room parents to react when a player enters them.
-
r813
(Not sure how we ended up with bold cyan as the default objec...) committed by squishywaffle
- Not sure how we ended up with bold cyan as the default object name color, reverting that to bold
white as per MUX/MUSH.
Not sure how we ended up with bold cyan as the default object name color, reverting that to bold
white as per MUX/MUSH.
-
issue 77
(clear_objects() will not properly move player out of @destro...) changed by l11gctaylor
-
Status:
Fixed
Owner:
l11gctaylor
Status:
Fixed
Owner:
l11gctaylor
-
r812
(Fix issue #77, dealing with clearing objects out of a room b...) committed by squishywaffle
- Fix issue #77 , dealing with clearing objects out of a room being @dest'd.
Fix issue #77 , dealing with clearing objects out of a room being @dest'd.
-
r811
(@dest shouldn't use a global search for object. The only tim...) committed by squishywaffle
- @dest shouldn't use a global search for object. The only time this is global is when a player
specifies a dbref, which is a very specific query.
@dest shouldn't use a global search for object. The only time this is global is when a player
specifies a dbref, which is a very specific query.
-
-
-
-
-
BatchProcessing
(Using the Evennia command batch processor) Wiki page edited by griatch
- Revision r810
Edited wiki page through web user interface.
Revision r810
Edited wiki page through web user interface.
-
issue 78
(evennia.py seems to have path issues with Vista) Status changed by tsalaroth
-
Status:
Needs-Information
Status:
Needs-Information
-
issue 78
(evennia.py seems to have path issues with Vista) Status changed by tsalaroth
-
-
issue 78
(evennia.py seems to have path issues with Vista) commented on by tsalaroth
-
-
-
issue 59
(Compatibility: @find low/high limits) Status changed by griatch
-
-
r809
(Added high/low dbref limits to @find (Issue 59).
/Griatch
) committed by griatch
- Added high/low dbref limits to @find ( Issue 59 ).
/Griatch
Added high/low dbref limits to @find ( Issue 59 ).
/Griatch
-
issue 73
(Handle funky IMC characters gracefully) changed by griatch
-
Status:
Started
Cc:
griatch
Status:
Started
Cc:
griatch
-
r808
(Protected the server against non-standard characters on inpu...) committed by griatch
- Protected the server against non-standard characters on input line; this would give traceback or
weird results before.
/Griatch
Protected the server against non-standard characters on input line; this would give traceback or
weird results before.
/Griatch
|