65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
| import Crossfire
 | |
| import CFGuilds
 | |
| 
 | |
| import sys
 | |
| import string
 | |
| activator=Crossfire.WhoIsActivator()
 | |
| activatorname=activator.Name
 | |
| mymap = activator.Map
 | |
| def find_player(object):
 | |
|     while (object.Type != 1) : #1 is type 'Player'
 | |
|         object = object.Above
 | |
|         if not object:
 | |
|             return 0
 | |
|     return object
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| whoami=Crossfire.WhoAmI()
 | |
| 
 | |
| def CheckClearance(lParams,oActivator):
 | |
|         
 | |
|         ClearanceLevels={"Initiate":1,"Novice":2,"Guildman":3,"Journeyman":4,"Master":5,"GuildMaster":6}
 | |
|         oGuild=CFGuilds.CFGuild(lParams[0])
 | |
|         
 | |
|         if oActivator.DungeonMaster==1:
 | |
|                 return True
 | |
|         iClearanceLevel=ClearanceLevels.get(lParams[1],0)
 | |
|         dGuildInfo=oGuild.info(oActivator.Name)
 | |
|         
 | |
|         if dGuildInfo==0:
 | |
|             return False
 | |
| 
 | |
|         iClearanceApproved=ClearanceLevels.get(dGuildInfo['Rank'],0)
 | |
|         if dGuildInfo["Status"]=='suspended':
 | |
|                 iClearanceApproved=0
 | |
|                 Crossfire.WhoIsActivator().Say("You are currently suspended from the guild.")
 | |
|         elif dGuildInfo["Status"]=="probation":
 | |
|                 Crossfire.WhoIsActivator().Say("You are currently on probation.")
 | |
|         if iClearanceLevel>iClearanceApproved:
 | |
|                 return False
 | |
|         return True
 | |
|         
 | |
| 
 | |
| if __name__=='__builtin__':
 | |
| 
 | |
|         texta = [ '' ]
 | |
|         if Crossfire.WhatIsMessage():
 | |
|             texta=string.split(Crossfire.WhatIsMessage())
 | |
| 
 | |
|         if (texta[0].upper() == 'ENTER'):
 | |
|                 Params=string.split(Crossfire.ScriptParameters())
 | |
|                 if CheckClearance(Params,activator):
 | |
|                         Approved = "Access granted"
 | |
|                 else:
 | |
|                        Approved = "Access denied"
 | |
|                 whoami.Say(Approved)
 | |
|                 
 | |
| 
 | |
|                 if (Approved == 'Access granted'):
 | |
|                         mymap.TriggerConnected(int(Params[2]),0,activator)
 | |
| 
 | |
|         else:
 | |
|                 whoami.Say('Say enter to request entry')
 |