From ee73551e986c70ca91e2fbfb67352e9c1492a4dd Mon Sep 17 00:00:00 2001 From: Kevin Zheng Date: Thu, 21 Mar 2024 21:54:03 -0700 Subject: [PATCH] Get rid of guild indefinite detention Print a normal "access denied" message instead of teleporting offenders into the strange room. For trespassers who step on the traps, teleport them to jail. The curse no longer works and is probably cruel and unusual. --- python/guilds/arrest.py | 78 ++++++++++-------------------------- python/guilds/guild_entry.py | 7 +--- 2 files changed, 22 insertions(+), 63 deletions(-) diff --git a/python/guilds/arrest.py b/python/guilds/arrest.py index 7b2449611..fa30b8095 100644 --- a/python/guilds/arrest.py +++ b/python/guilds/arrest.py @@ -1,62 +1,26 @@ -import random,Crossfire,CFGuilds,sys,string +""" +This implements a custom trap that is put under doors in guilds to deal with +tailgaters (people without access who follow people with access through doors). + +This used to do some weird cursing, but it's modern times now so this just +sends people to Scorn's jail. +""" + +import Crossfire from CFGuildClearance import CheckClearance -activator=Crossfire.WhoIsActivator() -whoami=Crossfire.WhoAmI() -Crossfire.SetReturnValue(1) +activator = Crossfire.WhoIsActivator() -def find_player(object): - while (object.Type != 1) : #1 is type 'Player' - object = object.Above - if not object: - return 0 - return object +Crossfire.SetReturnValue(1) # don't run the actual trap -x3=1 -y3=8 -Params=Crossfire.ScriptParameters().split() -Approved="Access granted" if activator != None and CheckClearance(Params,activator) else "Access denied" -x= 26 -y=0 -guildname = Params[0] -guild=CFGuilds.CFGuild(guildname) -guildrecord=CFGuilds.CFGuildHouses().info(guildname) -ActionRequired=Params[2] +Params = Crossfire.ScriptParameters().split() +ActionRequired = Params[2] # formerly A for arrest and D for curse, no longer used (always A) -# things which are not a player are ok -if activator == None or activator.Type != Crossfire.Type.PLAYER: - Approved = 'Access granted' - - -if (Approved != 'Access granted'): - if (ActionRequired == "A"): - activator.Teleport(Crossfire.ReadyMap('/scorn/misc/jail'),int(15),random.choice([1,3])) - elif (ActionRequired == "D"): - x4=random.randint(21, 23) - y4=random.randint(22,24) - Corpse = activator.Map.ObjectAt(int (21), int (0)) - Curse = activator.Map.ObjectAt(int(x4),int(y4)) - mymap = activator.Map - Corpse.Name = str("%s's body" %(activator.Name)) - Corpse.Race = str("%s's Curse" %(activator.Name)) - Corpse.Weight = 1 - Curse.Name = str("%s's Curse" %(activator.Name)) - Corpse.Teleport(mymap, activator.X, activator.Y) - Curse.InsertInto(activator) - Curse1=activator.CheckArchInventory("amulet") - #whoami.Say(str(Curse1)) - #whoami.Say(str(Curse)) - Curse1.Applied = 1 - - activator.Teleport(mymap,int(23),int(0)) - - - -# whoami.Say('y') -# whoami.Say(Approved) - #activator.Teleport(mymap,int(x1),int(Y1)) -# else: -# whoami.Say(Approved) - -#else: -# whoami.Say('Say enter to request entry') +if activator is None: + pass +elif activator.Type != Crossfire.Type.PLAYER: + pass +elif CheckClearance(Params, activator): + pass +else: + activator.Teleport(Crossfire.ReadyMap('/scorn/misc/jail'), 15, 1) # 15 minute sentence diff --git a/python/guilds/guild_entry.py b/python/guilds/guild_entry.py index 989de46f2..9166a8c3f 100644 --- a/python/guilds/guild_entry.py +++ b/python/guilds/guild_entry.py @@ -28,10 +28,6 @@ import string activator=Crossfire.WhoIsActivator() activatorname=activator.Name mymap = activator.Map -x=32 -y=16 -x1=36 -y1=20 activatorx=activator.X activatory=activator.Y whoami=Crossfire.WhoAmI() @@ -58,8 +54,7 @@ if text: message = 'Entry granted for %s' %activatorname mymap.TriggerConnected(int(Params[2]),1,activator) else: - message = 'You try my patience %s. BEGONE!' %activatorname - activator.Teleport(mymap,int(x),int(y)) #teleport them + message = "You are not allowed through this door. Access denied." elif text[0].upper() == 'BUY' and whoami.Name=="Guardian": if guildrecord['Status'] == 'inactive':