Updated the game/gamesrc/ examples with the new hook names.
This commit is contained in:
parent
9a187b48ff
commit
be2d0086a3
5 changed files with 123 additions and 39 deletions
|
|
@ -29,12 +29,13 @@ class ExampleCharacter(Character):
|
||||||
and its commands only be called by itself, not anyone else.
|
and its commands only be called by itself, not anyone else.
|
||||||
(to change things, use at_object_creation() instead)
|
(to change things, use at_object_creation() instead)
|
||||||
at_after_move - launches the "look" command
|
at_after_move - launches the "look" command
|
||||||
at_disconnect - stores the current location, so the "unconnected" character
|
at_post_puppet(player) - when Player disconnects from the Character, we
|
||||||
|
store the current location, so the "unconnected" character
|
||||||
object does not need to stay on grid but can be given a
|
object does not need to stay on grid but can be given a
|
||||||
None-location while offline.
|
None-location while offline.
|
||||||
at_post_login - retrieves the character's old location and puts it back
|
at_pre_puppet - just before Player re-connects, retrieves the character's old
|
||||||
on the grid with a "charname has connected" message echoed
|
location and puts it back on the grid with a "charname has
|
||||||
to the room
|
connected" message echoed to the room
|
||||||
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,8 @@ class ExampleObject(Object):
|
||||||
date_created (string) - time stamp of object creation
|
date_created (string) - time stamp of object creation
|
||||||
permissions (list of strings) - list of permission strings
|
permissions (list of strings) - list of permission strings
|
||||||
|
|
||||||
player (Player) - controlling player (will also return offline player)
|
player (Player) - controlling player (if any, only set together with sessid below)
|
||||||
|
sessid (int, read-only) - session id (if any, only set together with player above)
|
||||||
location (Object) - current location. Is None if this is a room
|
location (Object) - current location. Is None if this is a room
|
||||||
home (Object) - safety start-location
|
home (Object) - safety start-location
|
||||||
sessions (list of Sessions, read-only) - returns all sessions connected to this object
|
sessions (list of Sessions, read-only) - returns all sessions connected to this object
|
||||||
|
|
@ -91,10 +92,10 @@ class ExampleObject(Object):
|
||||||
|
|
||||||
at_init() - called whenever typeclass is cached from memory, at least once every server restart/reload
|
at_init() - called whenever typeclass is cached from memory, at least once every server restart/reload
|
||||||
at_cmdset_get() - this is called just before the command handler requests a cmdset from this object
|
at_cmdset_get() - this is called just before the command handler requests a cmdset from this object
|
||||||
at_first_login() - (player-controlled objects only) called once, the very first time user logs in.
|
at_pre_puppet(player)- (player-controlled objects only) called just before puppeting
|
||||||
at_pre_login() - (player-controlled objects only) called every time the user connects, after they have identified, before other setup
|
at_post_puppet() - (player-controlled objects only) called just after completing connection player<->object
|
||||||
at_post_login() - (player-controlled objects only) called at the end of login, just before setting the player loose in the world.
|
at_pre_unpuppet() - (player-controlled objects only) called just before un-puppeting
|
||||||
at_disconnect() - (player-controlled objects only) called just before the user disconnects (or goes linkless)
|
at_post_unpuppet(player) - (player-controlled objects only) called just after disconnecting player<->object link
|
||||||
at_server_reload() - called before server is reloaded
|
at_server_reload() - called before server is reloaded
|
||||||
at_server_shutdown() - called just before server is fully shut down
|
at_server_shutdown() - called just before server is fully shut down
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,8 @@ class Object(TypeClass):
|
||||||
date_created (string) - time stamp of object creation
|
date_created (string) - time stamp of object creation
|
||||||
permissions (list of strings) - list of permission strings
|
permissions (list of strings) - list of permission strings
|
||||||
|
|
||||||
player (Player) - controlling player (will also return offline player)
|
player (Player) - controlling player (if any, only set together with sessid below)
|
||||||
|
sessid (int, read-only) - session id (if any, only set together with player above)
|
||||||
location (Object) - current location. Is None if this is a room
|
location (Object) - current location. Is None if this is a room
|
||||||
home (Object) - safety start-location
|
home (Object) - safety start-location
|
||||||
sessions (list of Sessions, read-only) - returns all sessions connected to this object
|
sessions (list of Sessions, read-only) - returns all sessions connected to this object
|
||||||
|
|
@ -491,33 +492,6 @@ class Object(TypeClass):
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
#def at_first_login(self):
|
|
||||||
# """
|
|
||||||
# Only called once, the very first
|
|
||||||
# time the user logs in.
|
|
||||||
# """
|
|
||||||
# pass
|
|
||||||
#def at_pre_login(self):
|
|
||||||
# """
|
|
||||||
# Called every time the user logs in,
|
|
||||||
# before they are actually logged in.
|
|
||||||
# """
|
|
||||||
# pass
|
|
||||||
#def at_post_login(self):
|
|
||||||
# """
|
|
||||||
# Called at the end of the login
|
|
||||||
# process, just before letting
|
|
||||||
# them loose.
|
|
||||||
# """
|
|
||||||
# pass
|
|
||||||
|
|
||||||
#def at_disconnect(self):
|
|
||||||
# """
|
|
||||||
# Called just before user
|
|
||||||
# is disconnected.
|
|
||||||
# """
|
|
||||||
# pass
|
|
||||||
|
|
||||||
def at_server_reload(self):
|
def at_server_reload(self):
|
||||||
"""
|
"""
|
||||||
This hook is called whenever the server is shutting down for restart/reboot.
|
This hook is called whenever the server is shutting down for restart/reboot.
|
||||||
|
|
|
||||||
107
src/players/migrations/0014_add_attr__playable_characters.py
Normal file
107
src/players/migrations/0014_add_attr__playable_characters.py
Normal file
|
|
@ -0,0 +1,107 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import datetime
|
||||||
|
from south.db import db
|
||||||
|
from south.v2 import DataMigration
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
class Migration(DataMigration):
|
||||||
|
|
||||||
|
def forwards(self, orm):
|
||||||
|
"Write your forwards methods here."
|
||||||
|
# Note: Remember to use orm['appname.ModelName'] rather than "from appname.models..."
|
||||||
|
if not db.dry_run:
|
||||||
|
for player in orm['players.PlayerDB'].objects.all():
|
||||||
|
attr = orm['players.PlayerAttribute']()
|
||||||
|
attr.db_obj = player
|
||||||
|
attr.save()
|
||||||
|
char = player.db_obj
|
||||||
|
attr.db_obj.value = [char] or []
|
||||||
|
|
||||||
|
def backwards(self, orm):
|
||||||
|
"Write your backwards methods here."
|
||||||
|
|
||||||
|
models = {
|
||||||
|
'auth.group': {
|
||||||
|
'Meta': {'object_name': 'Group'},
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||||
|
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
||||||
|
},
|
||||||
|
'auth.permission': {
|
||||||
|
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
||||||
|
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||||
|
},
|
||||||
|
'auth.user': {
|
||||||
|
'Meta': {'object_name': 'User'},
|
||||||
|
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||||
|
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
|
||||||
|
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||||
|
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||||
|
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||||
|
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||||
|
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||||
|
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||||
|
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||||
|
},
|
||||||
|
'contenttypes.contenttype': {
|
||||||
|
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
||||||
|
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||||
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||||
|
},
|
||||||
|
'players.playerattribute': {
|
||||||
|
'Meta': {'object_name': 'PlayerAttribute'},
|
||||||
|
'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}),
|
||||||
|
'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||||
|
'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['players.PlayerDB']"}),
|
||||||
|
'db_value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
||||||
|
},
|
||||||
|
'objects.objectdb': {
|
||||||
|
'Meta': {'object_name': 'ObjectDB'},
|
||||||
|
'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'db_destination': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'destinations_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}),
|
||||||
|
'db_home': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'homes_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}),
|
||||||
|
'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}),
|
||||||
|
'db_location': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'locations_set'", 'null': 'True', 'to': "orm['objects.ObjectDB']"}),
|
||||||
|
'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||||
|
'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||||
|
'db_player': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['players.PlayerDB']", 'null': 'True', 'blank': 'True'}),
|
||||||
|
'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
||||||
|
},
|
||||||
|
'players.playerdb': {
|
||||||
|
'Meta': {'object_name': 'PlayerDB'},
|
||||||
|
'db_cmdset_storage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
|
||||||
|
'db_date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||||
|
'db_is_connected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||||
|
'db_key': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}),
|
||||||
|
'db_lock_storage': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||||
|
'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['objects.ObjectDB']", 'null': 'True', 'blank': 'True'}),
|
||||||
|
'db_permissions': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||||
|
'db_typeclass_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||||
|
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'})
|
||||||
|
},
|
||||||
|
'players.playernick': {
|
||||||
|
'Meta': {'unique_together': "(('db_nick', 'db_type', 'db_obj'),)", 'object_name': 'PlayerNick'},
|
||||||
|
'db_nick': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}),
|
||||||
|
'db_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['players.PlayerDB']"}),
|
||||||
|
'db_real': ('django.db.models.fields.TextField', [], {}),
|
||||||
|
'db_type': ('django.db.models.fields.CharField', [], {'default': "'inputline'", 'max_length': '16', 'null': 'True', 'blank': 'True'}),
|
||||||
|
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
complete_apps = ['players']
|
||||||
|
symmetrical = True
|
||||||
|
|
@ -9,7 +9,8 @@ class Migration(SchemaMigration):
|
||||||
|
|
||||||
def forwards(self, orm):
|
def forwards(self, orm):
|
||||||
# Deleting field 'PlayerDB.db_obj'
|
# Deleting field 'PlayerDB.db_obj'
|
||||||
db.delete_column('players_playerdb', 'db_obj_id')
|
if not db.dry_run:
|
||||||
|
db.delete_column('players_playerdb', 'db_obj_id')
|
||||||
|
|
||||||
|
|
||||||
def backwards(self, orm):
|
def backwards(self, orm):
|
||||||
|
|
@ -103,4 +104,4 @@ class Migration(SchemaMigration):
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
complete_apps = ['players']
|
complete_apps = ['players']
|
||||||
Loading…
Add table
Add a link
Reference in a new issue