End of the Witherspoon ghost quest, some more fun.

git-svn-id: svn://svn.code.sf.net/p/crossfire/code/maps/trunk@8261 282e977c-c81d-0410-88c4-b93c2d0d6712
master
ryo_saeba 2008-01-24 22:56:28 +00:00
parent 31e1c262ad
commit e8e7424399
10 changed files with 1003 additions and 26 deletions

View File

@ -0,0 +1,23 @@
All the scripts in this directory are for the Witherspoon ghost quest.
Player can help a ghost accept his death and disappear.
Basic storyline: player finds a ghost and is supposed to go dig a find the body.
Body is near Scorn's east lake.
Quest has 3 endings:
* dig the body, lose it: ghost becomes angry and tries to kill the player (high level ghost, don't mess!)
* give back the body, small reward
* find the real story, get a bigger reward
All the dialogs are in the scripts and not in the maps.
Scripts and associated maps:
* devourers.py: for the Devourers priest in Scorn's temple, will recognize the runes on the dagger
* ghost.py: Witherspoon's ghost script, quest start and end
* rolanda.py: Rolanda the witch, in /scorn/houses/rolanda, will give the real story
* tomb.py: linked to the detector near the lake west of Scorn, will give the body and the dagger
* weapon_shop.py: merchand in Scorn's weapon shop, will direct to a priest to identify the runes on the dagger

View File

@ -0,0 +1,96 @@
'''
This script is part of the Witherspoon quest, that starts in /scorn/mansion/witherspoon_manor_attic.
Check the README file in the same directory as this file for more details.
Script for the priest of Devourers in Scorn.
Will handle the 'give' event to examine the dagger or money, and various events.
This script should be called for the 'TIMER', 'TIME' and 'custom' events.
'''
import Crossfire
whoami = Crossfire.WhoAmI()
whoisother = Crossfire.WhoIsOther()
command = Crossfire.WhatIsMessage()
event = Crossfire.WhatIsEvent()
pl = Crossfire.WhoIsActivator()
#Message color for player
color = Crossfire.MessageFlag.NDI_BROWN
def do_give():
'''Player gives an item to the priest.'''
if whoami.ReadKey('got_offrand') == '':
if whoisother.ArchName == 'platinacoin':
if whoisother.Quantity < 10:
pl.Message('The priest looks at your money and sighes deeply, but doesn\'t take it.', color)
return
rem = whoisother.Quantity
if whoisother.Quantity > 50:
rem = 50
whoami.Say('Now, now, I can\' accept all that money.')
pl.Message('The priest takes 50 platinum coins.', color)
else:
pl.Message('The priest accepts your money.', color)
whoisother.Quantity = whoisother.Quantity - rem
whoami.WriteKey('got_offrand', '1', 1)
whoami.Say('Many thanks for your offrand!')
return
whoami.Say('Our church needs some restoration, could you donate to it?')
return
whoami.WriteKey('got_offrand', '', 1)
if whoisother.ReadKey('special_item') != 'ghost_dagger':
whoami.Say('Nice %s.'%whoisother.Name)
return
whoami.Say('My, my, those runes are pretty interesting.')
pl.Message('The priest takes the %s and looks at it carefully.'%whoisother.Name, color)
whoami.CreateTimer(8, 1)
whoami.WriteKey('examining_item', '1', 1)
whoami.WriteKey('examining_for', pl.Name, 1)
return
def do_timer():
'''Priest finished examining the item.'''
whoami.WriteKey('examining_item', '0', 1)
#let's see if the player is still around
pl = Crossfire.FindPlayer(whoami.ReadKey('examining_for'))
if pl == None:
# just in case someone else is around ^_-
whoami.Say('Tss, people just aren\'t patient...')
return
pl.WriteKey('witherspoon_know_dagger', '1', 1)
whoami.Say('As far as I can tell, the runes on this dagger represent an invocation to our Lord. It is meant to keep the soul in the body for hours after the death.')
whoami.Map.Print('The priest shudders.', color)
whoami.Say('The victim of the spell can still feel pain, even agonizing one, but will not die before the spell effect wears out.')
whoami.Say('Even our Lord, in his mercy, does not inflict on his followers such agonizing pain.')
whoami.Say('For someone to use such a spell, the victim must have been so hated!')
whoami.Map.Print('The priest thinks for a few seconds.', color)
whoami.Say('I think there is a witch, Olandi or something, who lives south of Scorn and specializes in Devourers magic.')
whoami.Say('Maybe she could help you?')
if command == 'give':
if whoami.ReadKey('examining_item') == '1':
pl.Message('The priest is busy.', color)
else:
do_give()
elif event.Subtype == Crossfire.EventType.TIMER:
do_timer()
elif event.Subtype == Crossfire.EventType.TIME:
if whoami.ReadKey('examining_item') == '1':
#No moving while examining.
Crossfire.SetReturnValue(1)

View File

@ -1,9 +1,8 @@
'''
Script for the ghost in Witherspoon manor (south-west of Scorn).
This script is part of the Witherspoon quest, that starts in /scorn/mansion/witherspoon_manor_attic.
Check the README file in the same directory as this file for more details.
Associated script is tomb.py which should be in the same directory.
Both scripts are linked, so if you change something make sure to change both scripts!
Script for the ghost in Witherspoon manor (south-east of Scorn).
'''
import random
@ -30,13 +29,20 @@ def check_body(player, rule):
return False
def start_disappear(ghost, player):
'''ghost should disappear, called for 2 endings.'''
ghost.WriteKey(key_disappear, '1', 1)
ghost.CreateTimer(5, 1)
ghost.StandStill = True
player.Write('The %s starts fading...'%ghost.Name)
def found_body(player, rule):
'''Does the player have the body?'''
if player.ReadKey('witherspoon_tomb') != 'dig':
return False
player.WriteKey('witherspoon_tomb', '', 1)
#reset our dialog anyway - the player did dig, so quest ends (for now)
#reset our dialog anyway - the player did dig, so quest ends (nicely or badly)
player.WriteKey('dialog_witherspoon_ghost', '', 1)
#try to find the body, if not found then get angry
@ -47,10 +53,7 @@ def found_body(player, rule):
if body:
#all fine!
body.Remove()
ghost.WriteKey(key_disappear, '1', 1)
ghost.CreateTimer(5, 1)
ghost.StandStill = True
player.Write('The %s starts fading...'%ghost.Name)
start_disappearing(ghost, player)
return 1
#oh oh, bad, ghost is getting angry!
@ -73,6 +76,25 @@ def do_dialog():
if not can_talk(None, None):
return
whoami = Crossfire.WhoAmI()
pl = Crossfire.WhoIsActivator()
if pl.ReadKey('witherspoon_know_all') == '1':
# player found the real story, through Rolanda.
whoami.Say('Oh...')
whoami.Map.Print('The %s manages to blush.'%whoami.Name)
whoami.Say('Now I remember. I\'m so stupid. Poor Rolanda, will she ever forgive me...')
whoami.Say('Well, I guess I can go now. Many thanks for your help!')
whoami.WriteKey('bonus', '1', 1)
start_disappear(whoami, pl)
return
if pl.ReadKey('witherspoon_know_dagger') == '1':
# player talked to the priest of Devourers, and knows the dagger is special.
whoami.Say('Oh, please find who could be as cruel as to use such a horrible spell on me!')
return
# default dialog, just talk
# If you ever change this key, change the value in tomb.py too!
speech = Dialog(Crossfire.WhoIsActivator(), Crossfire.WhoAmI(), "witherspoon_ghost")
@ -138,9 +160,13 @@ def do_disappear():
ghost.Say('Thanks a lot! Please take those small presents as a token of my gratitude.')
bonus = 0
if ghost.ReadKey('bonus') == '1':
bonus = 25
presents = ['gem', 'ruby', 'emerald', 'pearl', 'sapphire']
got = ghost.Map.CreateObject(presents[random.randint(0, len(presents) - 1)], ghost.X, ghost.Y)
got.Quantity = random.randint(3, 7)
got.Quantity = random.randint(3 + bonus, 7 + bonus)
ghost.Remove()

View File

@ -0,0 +1,105 @@
'''
This script is part of the Witherspoon quest, that starts in /scorn/mansion/witherspoon_manor_attic.
Check the README file in the same directory as this file for more details.
Script for Rolanda, in /scorn/houses/rolanda.
Support to be called for TIME, TIMER and CUSTOM events.
'''
import Crossfire
import CFMove
import random
whoami = Crossfire.WhoAmI()
whoisother = Crossfire.WhoIsOther()
command = Crossfire.WhatIsMessage()
event = Crossfire.WhatIsEvent()
pl = Crossfire.WhoIsActivator()
# Message color for player
color = Crossfire.MessageFlag.NDI_BROWN
# coordinates to look for chairs
search_chairs = [ [ 0, -1 ], [ 0, 1 ], [ -1, 0 ], [ 1, 0 ] ]
def do_give():
'''handle the player giving an item.'''
if whoisother.ReadKey('special_item') != 'ghost_dagger':
whoami.Say('And what am I supposed to do with this %s.'%whoisother.Name)
return
whoami.Say('Ohhhhhhhh... This, this dagger...');
pl.Message('%s puts her hand to her forehead, and staggers.'%whoami.Name)
whoami.WriteKey('witherspoon_saw_dagger', '1', 1)
whoami.WriteKey('witherspoon_seated', '', 1)
whoami.WriteKey('explaining_for', pl.Name, 1)
def search_chair():
'''if fainting, try to find a chair when TIME happens.'''
for search in range(0, len(search_chairs)):
x = whoami.X + search_chairs[search][0]
y = whoami.Y + search_chairs[search][1]
obj = whoami.Map.ObjectAt(x, y)
while obj:
if obj.Name == 'chair':
whoami.WriteKey('witherspoon_seated', '1', 1)
whoami.Say('Thank you very much.')
whoami.WriteKey('chair_x', str(x), 1)
whoami.WriteKey('chair_y', str(y), 1)
return
obj = obj.Above
def move_to_chair():
'''trying to move to first found chair.'''
m = CFMove.get_object_to(whoami, int(whoami.ReadKey('chair_x')), int(whoami.ReadKey('chair_y')))
if m == 0:
whoami.WriteKey('witherspoon_seated', '2', 1)
whoami.Map.Print('%s sits on the chair.'%whoami.Name, color)
whoami.Say('I shall explain everything...')
whoami.Map.Print('%s starts sobbing.'%whoami.Name, color)
whoami.CreateTimer(random.randint(5, 10), 1)
elif m == 2:
whoami.Say('Please let me sit...')
def explain():
'''explanation of the ghost story. Let Rolanda be still from now on.'''
pl = Crossfire.FindPlayer(whoami.ReadKey('explaining_for'))
if pl == None:
# just in case someone else is around ^_-
whoami.Say('Tss, people just aren\'t patient...')
return
pl.WriteKey('witherspoon_know_all', '1', 1)
whoami.Say('See, this dagger...')
whoami.Say('Alfred wanted...')
whoami.Map.Print('%s sighes deeply, and goes on.'%whoami.Name)
whoami.Say('he wanted to have some, shall I say, different experience, the kind a man and a woman can have together.')
whoami.Say('And since he likes pain, he asked to suffer, to see if the pain would... excite him.')
whoami.Map.Print('%s sobs'%whoami.Name)
whoami.Say('But he didn\'t think he would die!')
whoami.Say('So I... I hide the body, hoping to forget him.')
whoami.Say('But now I can\'t forget him! Ever!')
pl.Write('You wonder what the ghost (Alfred, according to %s) will make of that...'%whoami.Name, color)
if event.Subtype == Crossfire.EventType.USER and command == 'give':
do_give()
elif event.Subtype == Crossfire.EventType.TIME:
if whoami.ReadKey('witherspoon_saw_dagger') != '':
# No moving while fainting
Crossfire.SetReturnValue(1)
if whoami.ReadKey('witherspoon_seated') == '':
search_chair()
elif whoami.ReadKey('witherspoon_seated') == '1':
move_to_chair()
elif event.Subtype == Crossfire.EventType.SAY:
if whoami.ReadKey('witherspoon_saw_dagger') != '':
# No talking while fainting
Crossfire.SetReturnValue(1)
whoami.Say('Ohhhhhhh......')
pl.Message('%s seems to be ready to faint.'%whoami.Name)
elif event.Subtype == Crossfire.EventType.TIMER:
if whoami.ReadKey('witherspoon_seated') == '2':
explain()

View File

@ -1,11 +1,10 @@
'''
Script for the ghost in Witherspoon manor (south-west of Scorn).
This script is part of the Witherspoon quest, that starts in /scorn/mansion/witherspoon_manor_attic.
Check the README file in the same directory as this file for more details.
Script for the tomb near the lake west of Scorn.
This script is called when the player steps on the correct spot where the body is buried.
Associated script is ghost.py which should be in the same directory.
Both scripts are linked, so if you change something make sure to change both scripts!
'''
import Crossfire
@ -53,10 +52,20 @@ def main():
#don't want the player to dig again! Will be reset by the ghost later on
pl.WriteKey('witherspoon_tomb', 'dig', 1)
body = pl.CreateObject('corpse')
body = Crossfire.CreateObjectByName('corpse') # so it doesn't merge with another item
body.WriteKey('special_item', 'ghost_body', 1)
body.Name = 'tortured body'
body.NamePl = 'tortured bodies'
body.Message = 'You suppose this is the body of the ghost in Witherspoon Manor. It is covered in scars, as if someone really wanted to make him pay for something.'
body.InsertInto(pl)
pl.Write('You find a body!')
dagger = Crossfire.CreateObjectByName('dagger')
dagger.WriteKey('special_item', 'ghost_dagger', 1)
dagger.Name = 'strange dagger'
dagger.NamePl = 'strange daggers'
dagger.Message = 'You found this dagger with the body of the Witherspoon Manor ghost. It has some weird look. You wonder if a marchant could figure what the symbols mean.'
dagger.InsertInto(pl)
pl.Write('You find a body with a dagger in it!')
main()

View File

@ -0,0 +1,61 @@
'''
This script is part of the Witherspoon quest, that starts in /scorn/mansion/witherspoon_manor_attic.
Check the README file in the same directory as this file for more details.
Script for the shop owner of the weapon shop in Scorn.
Will handle the 'give' event to examine the dagger, and various events.
This script should be called for the 'TIMER', 'TIME' and 'custom' events.
'''
import Crossfire
whoami = Crossfire.WhoAmI()
whoisother = Crossfire.WhoIsOther()
command = Crossfire.WhatIsMessage()
event = Crossfire.WhatIsEvent()
pl = Crossfire.WhoIsActivator()
#Message color for player
color = Crossfire.MessageFlag.NDI_BROWN
def do_give():
'''Player gives an item to the owner.'''
if whoisother.ReadKey('special_item') != 'ghost_dagger':
whoami.Say('Nice %s.'%whoisother.Name)
return
whoami.Say('Oh, this looks like a really interesting dagger.')
pl.Message('The owner takes the %s and starts examining it carefully.'%whoisother.Name, color)
whoami.CreateTimer(8, 1)
whoami.WriteKey('examining_item', '1', 1)
whoami.WriteKey('examining_for', pl.Name, 1)
return
def do_timer():
'''Owner finished examining the item.'''
whoami.WriteKey('examining_item', '0', 1)
#let's see if the player is still around
pl = Crossfire.FindPlayer(whoami.ReadKey('examining_for'))
if pl == None:
# just in case someone else is around ^_-
whoami.Say('Tss, people just aren\'t patient...')
return
whoami.Say('This dagger is pretty old, and is covered with runes. Unfortunately I can\'t describe what they mean, but they sure look like religious ones. Maybe you could go ask a priest?')
if command == 'give':
if whoami.ReadKey('examining_item') == '1':
pl.Message('The owner is busy.', color)
else:
do_give()
elif event.Subtype == Crossfire.EventType.TIMER:
do_timer()
elif event.Subtype == Crossfire.EventType.TIME:
if whoami.ReadKey('examining_item') == '1':
#No moving while examining.
Crossfire.SetReturnValue(1)

View File

@ -0,0 +1,620 @@
arch map
name Rolanda's house
width 10
height 10
msg
Created: 2008-01-24 Nicolas Weeger
Modified: 2008-01-24 Nicolas Weeger
endmsg
end
arch marble
end
arch woodwall_2_2_2
end
arch marble
y 1
end
arch woodwall_2_1_1
y 1
end
arch marble
y 2
end
arch woodwall_2_1_1
y 2
end
arch marble
y 3
end
arch woodwall_win1
y 3
end
arch marble
y 4
end
arch woodwall_2_1_1
y 4
end
arch marble
y 5
end
arch woodwall_3_2
y 5
end
arch marble
y 6
end
arch woodwall_2_1_1
y 6
end
arch marble
y 7
end
arch woodwall_2_1_1
y 7
end
arch marble
y 8
end
arch woodwall_2_1_1
y 8
end
arch marble
y 9
end
arch woodwall_2_2_1
y 9
end
arch marble
x 1
end
arch woodwall_2_1_2
x 1
end
arch bluemarblemedium
x 1
y 1
end
arch bluemarblemedium
x 1
y 2
end
arch bluemarblemedium
x 1
y 3
end
arch bluemarblemedium
x 1
y 4
end
arch marble
x 1
y 5
end
arch woodwall_2_1_2
x 1
y 5
end
arch lightgreenmarble
x 1
y 6
end
arch lightgreenmarble
x 1
y 7
end
arch lightgreenmarble
x 1
y 8
end
arch cauldron
x 1
y 8
container 0
is_cauldron 0
end
arch marble
x 1
y 9
end
arch woodwall_2_1_2
x 1
y 9
end
arch marble
x 2
end
arch woodwall_2_1_2
x 2
end
arch bluemarblemedium
x 2
y 1
end
arch bluemarblemedium
x 2
y 2
end
arch bluemarblemedium
x 2
y 3
end
arch bluemarblemedium
x 2
y 4
end
arch marble
x 2
y 5
end
arch woodwall_2_1_2
x 2
y 5
end
arch lightgreenmarble
x 2
y 6
end
arch chair_1.1
x 2
y 6
end
arch lightgreenmarble
x 2
y 7
end
arch lightgreenmarble
x 2
y 8
end
arch marble
x 2
y 9
end
arch woodwall_2_1_2
x 2
y 9
end
arch marble
x 3
end
arch woodwall_2_1_2
x 3
end
arch bluemarblemedium
x 3
y 1
end
arch bluemarblemedium
x 3
y 2
end
arch bluemarblemedium
x 3
y 3
end
arch bluemarblemedium
x 3
y 4
end
arch marble
x 3
y 5
end
arch woodwall_2_2_3
x 3
y 5
end
arch marble
x 3
y 6
end
arch woodwall_1_2
x 3
y 6
end
arch lightgreenmarble
x 3
y 7
end
arch door_1
x 3
y 7
move_block 0
end
arch marble
x 3
y 8
end
arch woodwall_1_1
x 3
y 8
end
arch marble
x 3
y 9
end
arch woodwall_2_2_4
x 3
y 9
end
arch marble
x 4
end
arch woodwall_2_1_2
x 4
end
arch bluemarblemedium
x 4
y 1
end
arch bluemarblemedium
x 4
y 2
end
arch bluemarblemedium
x 4
y 3
end
arch bluemarblemedium
x 4
y 4
end
arch bluemarblemedium
x 4
y 5
end
arch lightgreenmarble
x 4
y 6
end
arch lightgreenmarble
x 4
y 7
end
arch marble
x 4
y 8
end
arch exit
slaying /world/world_105_116
hp 7
sp 4
x 4
y 9
end
arch marble
x 4
y 9
end
arch door_look_1
x 4
y 9
move_block 0
end
arch marble
x 5
end
arch woodwall_win2
x 5
end
arch bluemarblemedium
x 5
y 1
end
arch bluemarblemedium
x 5
y 2
end
arch bluemarblemedium
x 5
y 3
end
arch woman2
name Rolanda
x 5
y 3
speed -0.05
random_movement 1
arch event_user
title Python
slaying /python/maps/witherspoon_manor/rolanda.py
end
arch event_timer
title Python
slaying /python/maps/witherspoon_manor/rolanda.py
end
arch event_time
title Python
slaying /python/maps/witherspoon_manor/rolanda.py
end
arch event_say
title Python
slaying /python/maps/witherspoon_manor/rolanda.py
end
end
arch bluemarblemedium
x 5
y 4
end
arch bluemarblemedium
x 5
y 5
end
arch lightgreenmarble
x 5
y 6
end
arch lightgreenmarble
x 5
y 7
end
arch marble
x 5
y 8
end
arch exit
slaying /world/world_105_116
hp 7
sp 4
x 5
y 9
end
arch marble
x 5
y 9
end
arch door_look_1
x 5
y 9
move_block 0
end
arch marble
x 6
end
arch woodwall_2_1_2
x 6
end
arch bluemarblemedium
x 6
y 1
end
arch bluemarblemedium
x 6
y 2
end
arch bluemarblemedium
x 6
y 3
end
arch bluemarblemedium
x 6
y 4
end
arch marble
x 6
y 5
end
arch woodwall_2_2_2
x 6
y 5
end
arch marble
x 6
y 6
end
arch woodwall_1_2
x 6
y 6
end
arch lightgreenmarble
x 6
y 7
end
arch door_1
x 6
y 7
move_block 0
end
arch marble
x 6
y 8
end
arch woodwall_1_1
x 6
y 8
end
arch marble
x 6
y 9
end
arch woodwall_2_2_1
x 6
y 9
end
arch marble
x 7
end
arch woodwall_2_1_2
x 7
end
arch bluemarblemedium
x 7
y 1
end
arch bluemarblemedium
x 7
y 2
end
arch bluemarblemedium
x 7
y 3
end
arch bluemarblemedium
x 7
y 4
end
arch marble
x 7
y 5
end
arch woodwall_2_1_2
x 7
y 5
end
arch lightgreenmarble
x 7
y 6
end
arch lightgreenmarble
x 7
y 7
end
arch lightgreenmarble
x 7
y 8
end
arch marble
x 7
y 9
end
arch woodwall_2_1_2
x 7
y 9
end
arch marble
x 8
end
arch woodwall_2_1_2
x 8
end
arch bluemarblemedium
x 8
y 1
end
arch bluemarblemedium
x 8
y 2
end
arch bluemarblemedium
x 8
y 3
end
arch bluemarblemedium
x 8
y 4
end
arch marble
x 8
y 5
end
arch woodwall_2_1_2
x 8
y 5
end
arch lightgreenmarble
x 8
y 6
end
arch lightgreenmarble
x 8
y 7
end
arch table_3
x 8
y 7
end
arch lightgreenmarble
x 8
y 8
end
arch chair_1.3
x 8
y 8
end
arch marble
x 8
y 9
end
arch woodwall_2_1_2
x 8
y 9
end
arch marble
x 9
end
arch woodwall_2_2_3
x 9
end
arch marble
x 9
y 1
end
arch woodwall_2_1_1
x 9
y 1
end
arch marble
x 9
y 2
end
arch woodwall_win1
x 9
y 2
end
arch marble
x 9
y 3
end
arch woodwall_2_1_1
x 9
y 3
end
arch marble
x 9
y 4
end
arch woodwall_2_1_1
x 9
y 4
end
arch marble
x 9
y 5
end
arch woodwall_3_4
x 9
y 5
end
arch marble
x 9
y 6
end
arch woodwall_2_1_1
x 9
y 6
end
arch marble
x 9
y 7
end
arch woodwall_2_1_1
x 9
y 7
end
arch marble
x 9
y 8
end
arch woodwall_2_1_1
x 9
y 8
end
arch marble
x 9
y 9
end
arch woodwall_2_2_4
x 9
y 9
end

View File

@ -7,6 +7,7 @@ height 16
msg
Created: 1997-04-16 David Sundqvist (azzie@tellutec.se)
Altar to level 120 20050527 (cvstry2)
Modified: 2008-01-03 Nicolas Weeger
endmsg
end
arch grass
@ -275,15 +276,26 @@ arch blackmarble
x 2
y 10
end
arch sage
msg
@match devourers|Devourers
They will suck your soul out!
@match *
Welcome to the temple of Devourers.
endmsg
arch dave
name priest of Devourers
x 2
y 10
speed 0.05
unaggressive 1
sleep 0
random_movement 1
arch event_time
title Python
slaying /python/maps/witherspoon_manor/devourers.py
end
arch event_timer
title Python
slaying /python/maps/witherspoon_manor/devourers.py
end
arch event_user
title Python
slaying /python/maps/witherspoon_manor/devourers.py
end
end
arch blackmarble
x 2

View File

@ -10,6 +10,7 @@ height 16
enter_y 14
msg
Created: 1993-10-15
Modified: 2008-01-03 Nicolas Weeger
endmsg
end
arch shop_empty
@ -504,6 +505,27 @@ arch shop_empty
x 5
y 6
end
arch fighter
name Shop owner
x 5
y 6
speed 0.05
sleep 0
no_damage 1
random_movement 1
arch event_user
title Python
slaying /python/maps/witherspoon_manor/weapon_shop.py
end
arch event_time
title Python
slaying /python/maps/witherspoon_manor/weapon_shop.py
end
arch event_timer
title Python
slaying /python/maps/witherspoon_manor/weapon_shop.py
end
end
arch shop_empty
x 5
y 7

View File

@ -8,7 +8,7 @@ height 50
enter_x 1
enter_y 1
msg
Modified: 2007-12-24 tchize
Modified: 2008-01-24 Nicolas Weeger
endmsg
outdoor 1
tile_path_1 world_105_115
@ -2360,7 +2360,10 @@ y 4
elevation 11718
end
arch house_2
name Rolando's house
name Rolanda's house
slaying /scorn/houses/rolanda
hp 5
sp 9
x 7
y 4
end