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')
|