Developer Store
Support
Member Forums

Screenshots
FAQ
Documentation
License
Known Issues
Downloads

MMOWorkshop.com Store Opened!
Torque MMO Kit - Open Sourced!
Torque MMO Kit - 1.5.2 Port Alpha Test
Torque MMO Kit - OSX Status

GarageGames.com irc.prairiegames.com
#mmoworkshop

PyTorque
TGB Web Browser


Prairie Games

mpratt - MMO Game
xapken - nice
foodstamp - Another Day Another Step Accomplished
hallsofvalhalla - After a long epiphany
Leathel - FoHO pre-Alpha 2.42
OldRod - More Musings on the MMO Industry
J.C. Smith - 0.0.4.1 Build Notes
Wolf Dreamer - Pointless blog of pointless things
... MORE BLOGS!

No worlds showing up
Problem with reactor.connectTCP(...
Quest Remnants of Chaos
Foundations of Hope Online
need help with creating spells
avatar
ITEM VARIANTS ERADICATED... (for...
Recruiting a artist and 3D artis...
Looking for support and 3D model...
Trouble

Changeset 288

Show
Ignore:
Timestamp:
08/24/07 15:34:26 (1 year ago)
Author:
prairiegames
Message:

Raffle system (coming soon)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/games/minionsofmirth/v1/mud/characterserver/server.py

    r196 r288  
    2020from time import time 
    2121from md5 import md5 
     22import random 
    2223from mud.server.config import LoadConfiguration 
    2324 
     
    2829MASTER_PORT = CONFIG["Master Port"] 
    2930MASTER_PASSWORD = CONFIG["Character Server Password"] 
     31 
     32MYSQL_USER = CONFIG["MySQL User"] 
     33MYSQL_PASSWORD = CONFIG["MySQL Password"] 
    3034 
    3135CHARDB = CharDB("data/character/character.db") 
     
    286290             
    287291        return (gplayers,muted) 
     292         
     293    def broadcastRaffle(self,msg): 
     294        try: 
     295            d = self.perspective.callRemote("broadcastRaffle",msg)  
     296        except: 
     297            return 
     298 
     299         
    288300             
    289301MASTERCONNECTION = None 
     
    520532             
    521533        return who 
    522          
     534 
     535    def remote_gmAwardTicket(self): 
     536        return AwardTicket(True) 
     537         
     538         
     539def 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         
     575def 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     
    523590 
    524591def ReplicateDatabases(): 
  • trunk/games/minionsofmirth/v1/mud/gmserver/gmcommands.py

    r6 r288  
    230230    d.addCallback(GotCharacterInfo,avatar) 
    231231    return d 
    232          
     232     
     233def 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 
     241def 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     
    233254COMMANDS = {} 
    234255COMMANDS['CINFO']=CmdCharacterInfo 
     
    238259COMMANDS['CRENAME']=CmdRenameCharacter 
    239260COMMANDS['WHO']=CmdWho 
     261COMMANDS['RAFFLETICKET']=CmdRaffleTicket 
    240262 
    241263def DoGMCommand(gmavatar,command): 
  • trunk/games/minionsofmirth/v1/mud/server/config.py

    r6 r288  
    6464    config["Support Email Password"] = parser.get("Master Server","Support Email Password") 
    6565     
     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  
    2121 
    2222TICK_COUNTER = 6*15 #once every minute 
     23 
     24from mud.world.defines import * 
    2325 
    2426class CharacterServerAvatar(pb.Root): 
     
    256258            print_exc() 
    257259             
    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         
    259273 
    260274    def remote_installPlayer(self,publicName,buffer,code,premium,guildInfo): 
  • trunk/games/minionsofmirth/v1/mud/worlddaemon/charservices.py

    r6 r288  
    3939    def __init__(self): 
    4040        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         
    4149         
    4250    def perspective_kickPlayer(self,publicName):