Changeset 288
- Timestamp:
- 08/24/07 15:34:26 (1 year ago)
- Files:
-
- trunk/games/minionsofmirth/v1/mud/characterserver/server.py (modified) (4 diffs)
- trunk/games/minionsofmirth/v1/mud/gmserver/gmcommands.py (modified) (2 diffs)
- trunk/games/minionsofmirth/v1/mud/server/config.py (modified) (1 diff)
- trunk/games/minionsofmirth/v1/mud/world/cserveravatar.py (modified) (2 diffs)
- trunk/games/minionsofmirth/v1/mud/worlddaemon/charservices.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/games/minionsofmirth/v1/mud/characterserver/server.py
r196 r288 20 20 from time import time 21 21 from md5 import md5 22 import random 22 23 from mud.server.config import LoadConfiguration 23 24 … … 28 29 MASTER_PORT = CONFIG["Master Port"] 29 30 MASTER_PASSWORD = CONFIG["Character Server Password"] 31 32 MYSQL_USER = CONFIG["MySQL User"] 33 MYSQL_PASSWORD = CONFIG["MySQL Password"] 30 34 31 35 CHARDB = CharDB("data/character/character.db") … … 286 290 287 291 return (gplayers,muted) 292 293 def broadcastRaffle(self,msg): 294 try: 295 d = self.perspective.callRemote("broadcastRaffle",msg) 296 except: 297 return 298 299 288 300 289 301 MASTERCONNECTION = None … … 520 532 521 533 return who 522 534 535 def remote_gmAwardTicket(self): 536 return AwardTicket(True) 537 538 539 def AwardTicket(force=False): 540 try: 541 connection = MySQLdb.connect(host="localhost", user=MYSQL_USER, passwd=MYSQL_PASSWORD, db="minions" ) 542 except: 543 print_exc() 544 return "" 545 546 cursor = connection.cursor() 547 548 cursor.execute("SELECT publicname FROM minions_contestentry;") 549 550 pnames = cursor.fetchall() 551 552 raffle = [] 553 name = "" 554 for p,v in ACTIVE_PLAYER_TIMES.iteritems(): 555 if p in pnames: 556 t = time() - v[3] 557 if t < 120 and v[1]: 558 raffle.append(p) 559 560 if len(raffle>=5) or len(raffle) and force: 561 name = raffle[random.randint(0,len(raffle)-1)] 562 #got one! 563 cursor.execute("UPDATE minions_contestentry SET tickets=tickets+1 WHERE publicname='%s';"%name) 564 565 cname = ACTIVE_PLAYER_TIMES[name][1] 566 for wname,wconn in WORLD_CONNECTIONS.iteritems(): 567 wconn.broadcastRaffle("Congratulations %s!!! You have won a ticket in the Halloween Raffle! The next ticket will be awarded in one hour. For information on the Halloween Raffle, visit http://minions.prairiegames.com!"%cname) 568 569 else: 570 for wname,wconn in WORLD_CONNECTIONS.iteritems(): 571 wconn.broadcastRaffle("There aren't enough eligible players online to hold a raffle ticket drawing. There must be at least 5 eligible players online to award a ticket! For information on the Halloween Raffle, visit http://minions.prairiegames.com!") 572 573 return name 574 575 def RaffleTicket(): 576 reactor.callLater(60*60,RaffleTicket) #make sure we're called again no matter what! 577 578 AwardTicket() 579 580 581 582 583 584 585 586 587 588 589 523 590 524 591 def ReplicateDatabases(): trunk/games/minionsofmirth/v1/mud/gmserver/gmcommands.py
r6 r288 230 230 d.addCallback(GotCharacterInfo,avatar) 231 231 return d 232 232 233 def GotRaffleTicket(result,avatar): 234 if result == "": 235 avatar.mind.callRemote("logText","\nNo Raffle Ticket Awarded\n") 236 return 237 238 avatar.mind.callRemote("logText","\nRaffle Ticket awarded to %s\n"%result) 239 240 241 def CmdRaffleTicket(avatar,args): 242 243 if not CHARSERVER_MIND: 244 avatar.mind.callRemote("logText","The character server is currently not available.\n") 245 return 246 247 d = CHARSERVER_MIND.callRemote("gmAwardTicket") 248 249 d.addCallback(GotRaffleTicket,avatar) 250 251 return d 252 253 233 254 COMMANDS = {} 234 255 COMMANDS['CINFO']=CmdCharacterInfo … … 238 259 COMMANDS['CRENAME']=CmdRenameCharacter 239 260 COMMANDS['WHO']=CmdWho 261 COMMANDS['RAFFLETICKET']=CmdRaffleTicket 240 262 241 263 def DoGMCommand(gmavatar,command): trunk/games/minionsofmirth/v1/mud/server/config.py
r6 r288 64 64 config["Support Email Password"] = parser.get("Master Server","Support Email Password") 65 65 66 #mysql 67 config["MySQL User"] = parser.get("MySQL","User") 68 config["MySQL Password"] = parser.get("MySQL","Password") 69 trunk/games/minionsofmirth/v1/mud/world/cserveravatar.py
r6 r288 21 21 22 22 TICK_COUNTER = 6*15 #once every minute 23 24 from mud.world.defines import * 23 25 24 26 class CharacterServerAvatar(pb.Root): … … 256 258 print_exc() 257 259 258 260 def remote_broadcastRaffle(self,msg): 261 if not AVATAR or not AVATAR.world: 262 return 263 264 world = AVATAR.world 265 266 for p in world.activePlayers: 267 try: 268 p.sendSpeechText(RPG_MSG_SPEECH_SYSTEM,msg) 269 except: 270 pass 271 272 259 273 260 274 def remote_installPlayer(self,publicName,buffer,code,premium,guildInfo): trunk/games/minionsofmirth/v1/mud/worlddaemon/charservices.py
r6 r288 39 39 def __init__(self): 40 40 self.repfiles = {} 41 42 def perspective_broadcastRaffle(self,msg): 43 for avatar in CServerAvatar.worldCSAvatars.itervalues(): 44 try: 45 avatar.callRemote("broadcastRaffle",msg) 46 except: 47 pass 48 41 49 42 50 def perspective_kickPlayer(self,publicName):

