Dungeon libraries idea
Moderator: George Gilbert
Forum rules
Please read the Forum rules and policies before posting.
Please read the Forum rules and policies before posting.
Dungeon libraries idea
I wanted to start a sticky thread for dungeon libraries - small text files with everything you need to create a cool mechanic in the dungeon that can be copied and pasted.
I don't mean paste an example and say 'yeah, if you take that thing and rename that thing you could use it' I mean a text file with 'Paste these lines into your clone section of your dungeon' and 'paste these objects into your main dungeon'
In this regard you would need to use RTC's ability to speficy uniue alpha numerics to items - probably with your user name to start with so you get instant credit : )
We'd msybr also need to provisionally agree on a 'library space' in a dungeon. Obviously you can edit where items would go to be copied and pasted when the main dungeon is viewed, but for new people they'd know they don't have to mess around with text they don't understand well yet, that a set of items would just appear in the top right corner of the HoC if they paste these lines in (maybe 0,32, or 0,0, and you say the dimensions of your library space, like 2x2 or 3x3
Anyay, just an idea since there are a few examples that some people might like to copy/paste into dungeon, and there might be easy mecahnics that new people don't quite know how to do that they might like (in old DM it would be torch sconces and clickable toggling levers!)
I don't mean paste an example and say 'yeah, if you take that thing and rename that thing you could use it' I mean a text file with 'Paste these lines into your clone section of your dungeon' and 'paste these objects into your main dungeon'
In this regard you would need to use RTC's ability to speficy uniue alpha numerics to items - probably with your user name to start with so you get instant credit : )
We'd msybr also need to provisionally agree on a 'library space' in a dungeon. Obviously you can edit where items would go to be copied and pasted when the main dungeon is viewed, but for new people they'd know they don't have to mess around with text they don't understand well yet, that a set of items would just appear in the top right corner of the HoC if they paste these lines in (maybe 0,32, or 0,0, and you say the dimensions of your library space, like 2x2 or 3x3
Anyay, just an idea since there are a few examples that some people might like to copy/paste into dungeon, and there might be easy mecahnics that new people don't quite know how to do that they might like (in old DM it would be torch sconces and clickable toggling levers!)
- linflas
- My other avatar is gay
- Posts: 2445
- Joined: Tue Nov 04, 2003 9:58 pm
- Location: Lille, France
- Contact:
could be interesting for new bitmaps/new objects too... some "unzip this into RTC directory, put these lines in your RTC file" things and several people could add their contributions for a complete new set of items.
(if you're ok, i'll start with a selection of germanja's bitmaps converted in png for RTC soon)
(if you're ok, i'll start with a selection of germanja's bitmaps converted in png for RTC soon)
So as an example, let's say I wanted to create an item that can be used to summon a monster, like the Pied Piper's pipe which when blown will make a Rat appear, I would paste this:
Hmm... actually that could be quite useful for booby-traping items, you think you've just discovered a Firestaff but when you select "Invoke"... Oops! It lied and summoned a Dragon to attack you instead!
Code: Select all
/******************************************************************************/
/* New - Methods */
/******************************************************************************/
[New - Methods]
ADD ATTACK_METHOD_CALL NAME=(CALL) TYPE=(PRIEST) ACTION=(ACTION_CREATE_NEW_ON_FLOOR,MONSTER_RAT_PAIN,NULL) STRENGTH=(50) LEVEL=(0) ENERGY=(1) TIME=(20) CHARGES_USED=(0) MANA_USED=(0) SOUNDS=(SUCCESS:SOUND_ATTACK_HORN,FAILURE:SOUND_ATTACK_HORN)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD MISC_PIED_PIPE CLONES=(MISC_HORN_FEAR) NAME=(PIED PIPE) METHODS=(ATTACK_METHOD_CALL,NULL,NULL)
/******************************************************************************/
I found a solution for torches in sconces that emits flickering light.
In combination with that I found a solution for those sconces toggeling the flickering light while being filled or not.
It works like that:
There are two parts:
1 - a Floortrigger, that switches on the flickering-light-mechanic in general
2 - the sconce, that localy triggers the lightmechanic on/off depending on beeing filled with a torch or not
obviously that just works with dm2 torches and sconces
I hope my egsample is clear enought to be copied.
Have fun
THOM
Sadly I had to edit my post because I had to add the possibility to use Torches which are half full/half empty. I hope I did it right.
If anybody tried out to copy this: My appologies but I think you have to do it again...
In combination with that I found a solution for those sconces toggeling the flickering light while being filled or not.
It works like that:
Code: Select all
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD FLOORITEM_LIGHT_TORCH_190 CLONES=(FLOORITEM_LIGHT) NAME=(LIGHT Torch 190) PROPERTIES=(DEFAULT_STRENGTH:190)
ADD FLOORITEM_LIGHT_TORCH_195 CLONES=(FLOORITEM_LIGHT) NAME=(LIGHT Torch 195) PROPERTIES=(DEFAULT_STRENGTH:195)
ADD FLOORITEM_LIGHT_TORCH_200 CLONES=(FLOORITEM_LIGHT) NAME=(LIGHT Torch 200) PROPERTIES=(DEFAULT_STRENGTH:200)
ADD FLOORITEM_LIGHT_0 CLONES=(FLOORITEM_LIGHT) NAME=(LIGHT_0)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 1
ref010501-3 FLOORITEM_TRIGGER 4 2 1 OPBY=(PARTY)
ACTION=(ACTIVATE) TARGET=(ref012103-1) OPTIONS=(DISABLE_SELF)
ref081316-2 FLOORITEM_LIGHT_0 4 3 1 STRENGTH=(0)
ref121206-1 WALLITEM_SCONCE_DM2 4 4 1 NORTH OPBY=(MOUSE) ACTION=(ACTIVATE)
TARGET=(ref121206-6,ref121206-7,ref121206-8,ref121206-9) OPTIONS=(SOUND:NULL)
ref121206-2 WALLITEM_ACTION 4 4 1 CENTRE
ACTION=(ACTION_SWAP_TILE_LOCAL,FLOORITEM_LIGHT_0,FLOORITEM_LIGHT_TORCH_195) STRENGTH=(0)
ref121206-3 WALLITEM_ACTION 4 4 1 CENTRE
ACTION=(ACTION_SWAP_TILE_LOCAL,FLOORITEM_LIGHT_TORCH_200,FLOORITEM_LIGHT_0) STRENGTH=(0)
ref121206-4 WALLITEM_ACTION 4 4 1 CENTRE
ACTION=(ACTION_SWAP_TILE_LOCAL,FLOORITEM_LIGHT_TORCH_190,FLOORITEM_LIGHT_0) STRENGTH=(0)
ref121206-5 WALLITEM_ACTION 4 4 1 CENTRE
ACTION=(ACTION_SWAP_TILE_LOCAL,FLOORITEM_LIGHT_TORCH_195,FLOORITEM_LIGHT_0) STRENGTH=(0)
ref121206-6 WALLITEM_RELAY 4 4 1 CENTRE
CONDITION=(PARTY:OBJECT_ON_MOUSE,EQUAL_TO,OBJECT:WEAPON_TORCH_DM2) ACTION=(ACTIVATE)
TARGET=(ref121206-3,ref121206-4,ref121206-5)
ref121206-8 WALLITEM_RELAY 4 4 1 CENTRE
CONDITION=(PARTY:OBJECT_ON_MOUSE,EQUAL_TO,OBJECT:WEAPON_TORCH_DM2_AFULL) ACTION=(ACTIVATE)
TARGET=(ref121206-3,ref121206-4,ref121206-5)
ref121206-9 WALLITEM_RELAY 4 4 1 CENTRE
CONDITION=(PARTY:OBJECT_ON_MOUSE,EQUAL_TO,OBJECT:WEAPON_TORCH_DM2_AEMPTY) ACTION=(ACTIVATE)
TARGET=(ref121206-3,ref121206-4,ref121206-5)
ref121206-7 WALLITEM_RELAY 4 4 1 CENTRE
CONDITION=(PARTY:OBJECT_ON_MOUSE,EQUAL_TO,OBJECT:NULL) ACTION=(ACTIVATE) TARGET=(ref121206-2)
ref012103-1 WALLITEM_RELAY 3 5 1 CENTRE ACTION=(ACTIVATE)
TARGET=(ref012404-3,ref012104-5) OPTIONS=(DELAY:1)
ref012203-1 WALLITEM_RELAY 4 5 1 CENTRE ACTION=(ACTIVATE)
TARGET=(ref012404-3,ref012204-3) OPTIONS=(DELAY:1)
ref012404-3 WALLITEM_ACTION 5 5 1 CENTRE
ACTION=(ACTION_SWAP_GLOBAL,FLOORITEM_LIGHT_TORCH_195,FLOORITEM_LIGHT_TORCH_200) STRENGTH=(0)
ref012504-2 WALLITEM_ACTION 6 5 1 CENTRE
ACTION=(ACTION_SWAP_GLOBAL,FLOORITEM_LIGHT_TORCH_200,FLOORITEM_LIGHT_TORCH_190) STRENGTH=(0)
ref012604-1 WALLITEM_ACTION 7 5 1 CENTRE
ACTION=(ACTION_SWAP_GLOBAL,FLOORITEM_LIGHT_TORCH_190,FLOORITEM_LIGHT_TORCH_195) STRENGTH=(0)
ref012104-5 WALLITEM_RELAY 3 6 1 CENTRE ACTION=(ACTIVATE)
TARGET=(ref012504-2,ref012105-2) OPTIONS=(DELAY:1)
ref012204-3 WALLITEM_RELAY 4 6 1 CENTRE ACTION=(ACTIVATE)
TARGET=(ref012504-2,ref012205-2) OPTIONS=(DELAY:1)
ref012105-2 WALLITEM_RELAY 3 7 1 CENTRE ACTION=(ACTIVATE)
TARGET=(ref012604-1,ref012203-1) OPTIONS=(DELAY:1)
ref012205-2 WALLITEM_RELAY 4 7 1 CENTRE ACTION=(ACTIVATE)
TARGET=(ref012604-1,ref012103-1) OPTIONS=(DELAY:1)
1 - a Floortrigger, that switches on the flickering-light-mechanic in general
2 - the sconce, that localy triggers the lightmechanic on/off depending on beeing filled with a torch or not
obviously that just works with dm2 torches and sconces
I hope my egsample is clear enought to be copied.
Have fun
THOM
Sadly I had to edit my post because I had to add the possibility to use Torches which are half full/half empty. I hope I did it right.
If anybody tried out to copy this: My appologies but I think you have to do it again...
Freeze life spell
Resurect spell
Heal group
Anti poison group
Nota: This spell replaces the spell "light". I can advice you to change the REPLACE to an ADD and to change the runes used if you wish to keep the spell "light"![Wink ;)](./images/smilies/icon_e_wink.gif)
That's all for now... I must test seriously the levitate spell before putting it here :p
Code: Select all
/******************************************************************************/
/* New - Spells */
/******************************************************************************/
[New - Spells]
ADD SPELL_DES_BRO NAME=(FREEZE) RUNES=(DES,BRO) TYPE=(WIZARD) ACTION=(ACTION_OBJECT_ACTIVATE,WALLITEM_RELAY_FREEZE,NULL) CAST_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) FAIL_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) TIME=(40,50,60,70,80,90)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_RELAY_FREEZE CLONES=(WALLITEM_RELAY) NAME=(RELAY_FREEZE)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref002904-1 WALLITEM_ACTION 29 4 0 CENTRE ACTION=(ACTION_FREEZE_LIFE,NULL,NULL) STRENGTH=(0)
ref002905-1 WALLITEM_RELAY_FREEZE 29 5 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref002904-1)
Code: Select all
/******************************************************************************/
/* New - Spells */
/******************************************************************************/
[New - Spells]
ADD SPELL_ZO_GOR_SAR NAME=(RESURECT) RUNES=(ZO,GOR,SAR) TYPE=(PRIEST) ACTION=(ACTION_OBJECT_ACTIVATE,WALLITEM_RELAY_RESURECT,NULL) CAST_SOUNDS=(SOUND_OTHER_RESURRECT,SOUND_OTHER_RESURRECT,SOUND_OTHER_RESURRECT,SOUND_OTHER_RESURRECT,SOUND_OTHER_RESURRECT,SOUND_OTHER_RESURRECT) FAIL_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) TIME=(160,200,240,280,320,360)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_RELAY_RESURECT CLONES=(WALLITEM_RELAY) NAME=(RELAY_RESURECT)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref002805-1 WALLITEM_RELAY_RESURECT 28 5 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref002804-1)
ref002804-1 WALLITEM_ACTION 28 4 0 CENTRE ACTION=(ACTION_RESURRECT_PARTY,NULL,NULL) STRENGTH=(0)
Code: Select all
/******************************************************************************/
/* New - Spells */
/******************************************************************************/
[New - Spells]
ADD SPELL_OH_IR_KU NAME=(HEALING) RUNES=(OH,IR,KU) TYPE=(PRIEST) ACTION=(ACTION_OBJECT_ACTIVATE,WALLITEM_RELAY_HEAL,NULL) CAST_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) FAIL_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) TIME=(20,25,30,35,40,45)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_RELAY_HEAL CLONES=(WALLITEM_RELAY) NAME=(RELAY_HEAL)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref002901-1 WALLITEM_ACTION 29 1 0 CENTRE ACTION=(ACTION_BOOST_PARTY_BYOBJECT,FLASK_POTION_VI,NULL) STRENGTH=(0)
ref002408-1 WALLITEM_RELAY_HEAL 29 2 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref002901-1)
Nota: This spell replaces the spell "light". I can advice you to change the REPLACE to an ADD and to change the runes used if you wish to keep the spell "light"
![Wink ;)](./images/smilies/icon_e_wink.gif)
Code: Select all
/******************************************************************************/
/* New - Spells */
/******************************************************************************/
[New - Spells]
REPLACE SPELL_OH_IR_RA NAME=(ANTI POISON) RUNES=(OH,IR,RA) TYPE=(PRIEST) ACTION=(ACTION_OBJECT_ACTIVATE,WALLITEM_RELAY_ANTI_POISON,NULL) CAST_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) FAIL_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) TIME=(20,25,30,35,40,45)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_RELAY_ANTI_POISON CLONES=(WALLITEM_RELAY) NAME=(RELAY_ANTI_POISON)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref002801-1 WALLITEM_ACTION 28 1 0 CENTRE ACTION=(ACTION_BOOST_PARTY_BYOBJECT,FLASK_POTION_BRO,NULL) STRENGTH=(0)
ref002802-1 WALLITEM_RELAY_ANTI_POISON 28 2 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref002801-1)
Lévitation
Calm
Be careful, this spell will be usuable ONLY if there are monsters around
Well tomorrow I add Confuse, Scare and the Teleport system (2 spells)
Code: Select all
/******************************************************************************/
/* New - Spells */
/******************************************************************************/
[New - Spells]
ADD SPELL_VI_BRO_SAR NAME=(LEVITATION) RUNES=(VI,BRO,SAR) TYPE=(WIZARD) ACTION=(ACTION_OBJECT_ACTIVATE,WALLITEM_RELAY_LEVIT,NULL) CAST_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) FAIL_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) TIME=(40,50,60,70,80,90)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_RELAY_LEVIT CLONES=(WALLITEM_RELAY) NAME=(RELAY_LEVIT)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref003005-1 WALLITEM_RELAY_LEVIT 30 5 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref001808-1)
ref001808-1 WALLITEM_ACTION 30 4 0 CENTRE ACTION=(ACTION_LEVITATE_PARTY,NULL,NULL) STRENGTH=(0)
Be careful, this spell will be usuable ONLY if there are monsters around
Code: Select all
/******************************************************************************/
/* New - Spells */
/******************************************************************************/
[New - Spells]
ADD SPELL_OH NAME=(CALM) RUNES=(OH) TYPE=(WIZARD) ACTION=(ACTION_OBJECT_ACTIVATE,WALLITEM_RELAY_CALM,NULL) CAST_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) FAIL_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) TIME=(40,50,60,70,80,90)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_RELAY_CALM CLONES=(WALLITEM_RELAY) NAME=(RELAY_CALM)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref002806-1 WALLITEM_ACTION 28 6 0 CENTRE ACTION=(ACTION_CALM,NULL,NULL) STRENGTH=(0)
ref002807-1 WALLITEM_RELAY_CALM 28 7 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref002806-1)
Confuse
Be careful, this spell will be usuable ONLY if there are monsters around
Scare
Be careful, this spell will be usuable ONLY if there are monsters around
Teleportation system
Ok, here it isn't simple like the other spells. So I will explain a little.
The system works like that. You create a point where you will be able to teleport.
When you want to teleport to it, you use the teleport spell.
The teleportation uses an invisible object.... a trigger.
Mark a point of teleportation
How does this work ?
Simple, the spell begins by desactivating any trigger named "FLOORITEM_TRIGGER_TELEPORT" and right after that it creates a point of teleportation (sorry I am not english, I don't see better words to call that) that will be able to be used later (and multiples times).
Teleportation
How does this work?
When you have designed a point of teleportation, you can execute this spell to teleport directly to it.
Notes on these spells:
First, you should add a Trigger "FLOORITEM_TRIGGER_TELEPORT" in your dungeon, to have a point of teleportation by default.
Secondly, note that these 2 spells are linked. Adding one and not the other won't work (it is surely evident but I prefer to write it :p).
In third I describe here ONLY the system. For my own dungeon I will make this spell only usuable at high level of power (like 6.6.3.1 = Mon Zo Kath Ku) and will make the point of teleportation a 5.6.3.1 (= Pal Zo Kath Ku). But due to the fact this type of spell (dependant of the level of power) needs a lot of relays and counters, I just give here the method. Up to you to use it like that, or to ameliorate it![Wink ;)](./images/smilies/icon_e_wink.gif)
Be careful, this spell will be usuable ONLY if there are monsters around
Code: Select all
/******************************************************************************/
/* New - Spells */
/******************************************************************************/
[New - Spells]
ADD SPELL_OH_BRO NAME=(CONFUSE) RUNES=(OH,BRO) TYPE=(WIZARD) ACTION=(ACTION_OBJECT_ACTIVATE,WALLITEM_RELAY_CONFUSE,NULL) CAST_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) FAIL_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) TIME=(30,35,40,45,50,55)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_RELAY_CONFUSE CLONES=(WALLITEM_RELAY) NAME=(RELAY_CONFUSE)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref002309-2 WALLITEM_RELAY_CONFUSE 23 9 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref002308-2)
ref002308-2 WALLITEM_ACTION 23 8 0 CENTRE ACTION=(ACTION_CONFUSE,NULL,NULL) STRENGTH=(0)
Be careful, this spell will be usuable ONLY if there are monsters around
Code: Select all
/******************************************************************************/
/* New - Spells */
/******************************************************************************/
[New - Spells]
ADD SPELL_OH_BRO_NETA NAME=(SCARE) RUNES=(OH,BRO,NETA) TYPE=(WIZARD) ACTION=(ACTION_OBJECT_ACTIVATE,WALLITEM_RELAY_SCARE,NULL) CAST_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) FAIL_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) TIME=(30,35,40,45,50,55)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_RELAY_SCARE CLONES=(WALLITEM_RELAY) NAME=(RELAY_SCARE)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref002408-2 WALLITEM_ACTION 24 8 0 CENTRE ACTION=(ACTION_SCARE,NULL,NULL) STRENGTH=(0)
ref002409-1 WALLITEM_RELAY_SCARE 24 9 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref002408-2)
Ok, here it isn't simple like the other spells. So I will explain a little.
The system works like that. You create a point where you will be able to teleport.
When you want to teleport to it, you use the teleport spell.
The teleportation uses an invisible object.... a trigger.
Mark a point of teleportation
How does this work ?
Simple, the spell begins by desactivating any trigger named "FLOORITEM_TRIGGER_TELEPORT" and right after that it creates a point of teleportation (sorry I am not english, I don't see better words to call that) that will be able to be used later (and multiples times).
Code: Select all
/******************************************************************************/
/* New - Spells */
/******************************************************************************/
[New - Spells]
ADD SPELL_ZO_EW_KU NAME=(POINT) RUNES=(ZO,EW,KU) TYPE=(WIZARD) ACTION=(ACTION_OBJECT_ACTIVATE,WALLITEM_RELAY_POINT,NULL) CAST_SOUNDS=(SOUND_OTHER_BEEP,SOUND_OTHER_BEEP,SOUND_OTHER_BEEP,SOUND_OTHER_BEEP,SOUND_OTHER_BEEP,SOUND_OTHER_BEEP) FAIL_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) TIME=(20,25,30,35,40,45)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_RELAY_POINT CLONES=(WALLITEM_RELAY) NAME=(RELAY_POINT)
ADD FLOORITEM_TRIGGER_TELEPORT CLONES=(FLOORITEM_TRIGGER) NAME=(TRIGGER_TELEPORT) PROPERTIES=(MOVABLE:TRUE)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref002108-2 WALLITEM_ACTION 21 6 0 CENTRE ACTION=(ACTION_CREATE_NEW_ON_FLOOR,FLOORITEM_TRIGGER_TELEPORT,NULL) STRENGTH=(0)
ref002207-2 WALLITEM_RELAY 21 7 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref002108-2) OPTIONS=(DELAY:1)
ref002206-1 WALLITEM_ACTION 21 8 0 CENTRE ACTION=(ACTION_OBJECT_DEACTIVATE,FLOORITEM_TRIGGER_TELEPORT,NULL) STRENGTH=(0)
ref002109-2 WALLITEM_RELAY_POINT 21 9 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref002206-1,ref002207-2)
How does this work?
When you have designed a point of teleportation, you can execute this spell to teleport directly to it.
Code: Select all
/******************************************************************************/
/* New - Spells */
/******************************************************************************/
[New - Spells]
ADD SPELL_ZO_KATH_KU NAME=(TELEPORT) RUNES=(ZO,KATH,KU) TYPE=(WIZARD) ACTION=(ACTION_OBJECT_ACTIVATE,WALLITEM_RELAY_TELEPORT,NULL) CAST_SOUNDS=(SOUND_OTHER_BUZZ,SOUND_OTHER_BUZZ,SOUND_OTHER_BUZZ,SOUND_OTHER_BUZZ,SOUND_OTHER_BUZZ,SOUND_OTHER_BUZZ) FAIL_SOUNDS=(NULL,NULL,NULL,NULL,NULL,NULL) TIME=(40,50,60,70,80,90)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_RELAY_TELEPORT CLONES=(WALLITEM_RELAY) NAME=(RELAY_TELEPORT)
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref002008-2 WALLITEM_ACTION 22 8 0 CENTRE ACTION=(ACTION_MOVE_PARTY_TO_OBJECT_LOCATION,FLOORITEM_TRIGGER_TELEPORT,NULL) STRENGTH=(0)
ref002209-2 WALLITEM_RELAY_TELEPORT 22 9 0 CENTRE ACTION=(ACTIVATE) TARGET=(ref002008-2)
First, you should add a Trigger "FLOORITEM_TRIGGER_TELEPORT" in your dungeon, to have a point of teleportation by default.
Secondly, note that these 2 spells are linked. Adding one and not the other won't work (it is surely evident but I prefer to write it :p).
In third I describe here ONLY the system. For my own dungeon I will make this spell only usuable at high level of power (like 6.6.3.1 = Mon Zo Kath Ku) and will make the point of teleportation a 5.6.3.1 (= Pal Zo Kath Ku). But due to the fact this type of spell (dependant of the level of power) needs a lot of relays and counters, I just give here the method. Up to you to use it like that, or to ameliorate it
![Wink ;)](./images/smilies/icon_e_wink.gif)
- Seriously Unserious
- Master Superior
- Posts: 1418
- Joined: Sun May 11, 2008 11:53 am
- Location: Wandering around aimlessly in Lynchgate Woods
- Contact:
Re: Dungeon libraries idea
Creating a variable Max Party size:
This is a solution I came up with based on the answers to my question in the thread http://www.dungeon-master.com/forum/vie ... =6&t=29630. Below is the text from a small test dungeon I used to develop this technique. Just copy it and past it into a blank txt file, load it up into RTCEditor and you can see how I did it. This should give you a basic idea of how I did it.
Notes: you need:
1 uniquely named MIRROR for each playable character in the game (cloned from one of the MIRROR WALLITEMS)(ITEM IS TRIGGER: YES/ OP BY: MOUSE/ ACTION: ACTIVATE/ TARGETS: RELAY that tests if new member makes party too big, RELAY that increases CURRENT PARTY SIZE if new member was addd and was valid)
1 RELAY for each MIRROR MIRROR (no need for clones) (ACTION: activate/ TARGETS: ACTION that removes party member/ CONDITION: CURRENT PARTY SIZE COUNTER GREATER THEN OR EQUAL TO MAX PARTY SIZE COUNTER)
1 ACTION for each MIRROR (ACTION: REMOVE CHARACTER FROM PARTY/ TARGET: the mirror object type the player just clicked on (eg: if the player clicked on WALLITEM_MIRROR_TEST then the action would target this mirror))
1 RELAY (ACTION: DEACTIVATE/ TARGET: CURRENT PARTY SIZE COUNTER/ CONDITION: CURRENT PARTY SIZE COUNTER LESS THEN MAX PARTY SIZE COUNTER)
2 COUNTERS:
1 COUNTER to keep track of MAX PARTY SIZE: should be set to an initial value of between 1 and 4, and have a trigger target it with the DEACTIVATE action to increase, or the ACTIVATE action to decrease it. keep its value between 1 and 4
1 COUNTER to keep track of CURRENT PARTY SIZE: target it with a trigger to DEACTIVATE it if a new member was added to the party, or ACTIVATE it if a party member was removed from the party. Note that if an extra member was autoremoved from the party when adding a new member due to the party going oversize the current parry size will not be updated as you are effectively trading 1 party member for another.
This is a solution I came up with based on the answers to my question in the thread http://www.dungeon-master.com/forum/vie ... =6&t=29630. Below is the text from a small test dungeon I used to develop this technique. Just copy it and past it into a blank txt file, load it up into RTCEditor and you can see how I did it. This should give you a basic idea of how I did it.
Code: Select all
/******************************************************************************/
/* Return To Chaos - Dungeon definition file. */
/******************************************************************************/
/******************************************************************************/
/* Main Data */
/******************************************************************************/
[Main Data]
NAME.............=(NEW DUNGEON)
AUTHOR...........=(RTC EDITOR)
DATE.............=(APRIL 2013)
ENTRANCE.........=(0,0,0,SOUTH)
IMPORT_TO........=(0,0,0,SOUTH)
END_OF_GAME......=(NONE)
RESTRICT_RUNES...=(FALSE)
RESTRICT_SAVES...=(FALSE)
MAX_PARTY_SIZE...=(4)
AUTO_EQUIP.......=(FALSE)
MAX_TIME.........=(0)
REINCARNATE_STATS=(NO_CHANGE)
REINCARNATE_ATTRS=(SMALL_INCREASE)
/******************************************************************************/
/* Description */
/******************************************************************************/
[Description]
TITLE.=(NEW DUNGEON)
BODY..=(A DEFAULT LAYOUT FOR A NEW DUNGEON)
CREDIT=(CREATED BY RTC EDITOR)
/******************************************************************************/
/* Text Strings */
/******************************************************************************/
[Text Strings]
SKILL_FIGHTER=(FIGHTER)
SKILL_NINJA..=(NINJA)
SKILL_PRIEST.=(PRIEST)
SKILL_WIZARD.=(WIZARD)
LEVEL_0.=()
LEVEL_1.=(NEOPHYTE)
LEVEL_2.=(NOVICE)
LEVEL_3.=(APPRENTICE)
LEVEL_4.=(JOURNEYMAN)
LEVEL_5.=(CRAFTSMAN)
LEVEL_6.=(ARTISAN)
LEVEL_7.=(ADEPT)
LEVEL_8.=(EXPERT)
LEVEL_9.=(a MASTER)
LEVEL_10=(b MASTER)
LEVEL_11=(c MASTER)
LEVEL_12=(d MASTER)
LEVEL_13=(e MASTER)
LEVEL_14=(f MASTER)
LEVEL_15=(ARCHMASTER)
STAT_HEALTH...=(HEALTH)
STAT_STAMINA..=(STAMINA)
STAT_MANA.....=(MANA)
STAT_STRENGTH.=(STRENGTH)
STAT_VITALITY.=(VITALITY)
STAT_DEXTERITY=(DEXTERITY)
STAT_WISDOM...=(WISDOM)
STAT_ANTIFIRE.=(ANTI-FIRE)
STAT_ANTIMAGIC=(ANTI-MAGIC)
CHARACTER_REINCARNATED=(%s REINCARNATED.)
CHARACTER_RESURRECTED.=(%s RESURRECTED.)
CHARACTER_JOINED_PARTY=(%s HAS JOINED THE PARTY.)
CHARACTER_LEFT_PARTY..=(%s HAS LEFT THE PARTY.)
CHARACTER_LEVEL_UP....=(%s JUST GAINED A %s LEVEL!)
CHARACTER_LEVEL_DOWN..=(%s JUST LOST A %s LEVEL!)
SPELL_UNKNOWN.=(%s MUMBLES A MEANINGLESS SPELL.)
SPELL_FIZZLES.=(THE SPELL FIZZLES AND DIES.)
SPELL_FLASK...=(%s NEEDS AN EMPTY FLASK IN HAND FOR POTION.)
SPELL_PRACTICE=(%s NEEDS MORE PRACTICE WITH THIS %s SPELL.)
/******************************************************************************/
/* New - Wallsets */
/******************************************************************************/
[New - Wallsets]
NAME=(WALLSET_DEFAULT)
WALL_FRONT1...=(BITMAP_WALL_FRONT1,NULL)
WALL_FRONT2...=(BITMAP_WALL_FRONT2,NULL)
WALL_FRONT3...=(BITMAP_WALL_FRONT3,NULL)
WALL_LEFT1....=(BITMAP_WALL_LEFT1,BITMAP_WALL_LEFT1_ALT)
WALL_LEFT2....=(BITMAP_WALL_LEFT2,BITMAP_WALL_LEFT2_ALT)
WALL_LEFT3....=(BITMAP_WALL_LEFT3,BITMAP_WALL_LEFT3_ALT)
WALL_SIDE0....=(BITMAP_WALL_SIDE0,BITMAP_WALL_SIDE0_ALT)
WALL_SIDE1....=(BITMAP_WALL_SIDE1,BITMAP_WALL_SIDE1_ALT)
WALL_SIDE2....=(BITMAP_WALL_SIDE2,BITMAP_WALL_SIDE2_ALT)
WALL_SIDE3....=(BITMAP_WALL_SIDE3,BITMAP_WALL_SIDE3_ALT)
WALL_FAR3.....=(BITMAP_WALL_FAR3,BITMAP_WALL_FAR3_ALT)
WINDOW........=(BITMAP_WALL_WINDOW)
ROOF..........=(BITMAP_WALL_ROOF,NULL,NULL,NULL)
FLOOR.........=(BITMAP_WALL_FLOOR,NULL,NULL,NULL)
SHADE.........=(BITMAP_WALL_SHADE,100)
FONT..........=(BITMAP_WALL_FONT)
MAP_ICON_WALL.=(BITMAP_MAP_ICON_WALL)
MAP_ICON_FLOOR=(BITMAP_MAP_ICON_FLOOR)
/******************************************************************************/
/* New - Objects */
/******************************************************************************/
[New - Objects]
ADD WALLITEM_MIRROR_BUTTON CLONES=(WALLITEM_SWITCH_BLUE)
ICONS=(BITMAP_ICON_WALLITEM_MIRROR,NULL)
BITMAPS=(FRONT:BITMAP_WALLITEM_MIRROR_FRONT,SIDE:BITMAP_WALLITEM_MIRROR_SIDE,FRONTALT:BITMAP_WALL
ITEM_MIRROR_FRONT_MASK,SIDEALT:BITMAP_WALLITEM_MIRROR_SIDE_MASK)
ADD WALLITEM_MIRROR_TEST1 CLONES=(WALLITEM_MIRROR)
NAME=(MIRROR TEST1)
ADD WALLITEM_MIRROR_TEST2 CLONES=(WALLITEM_MIRROR)
NAME=(MIRROR TEST2)
ADD WALLITEM_MIRROR_TEST3 CLONES=(WALLITEM_MIRROR)
NAME=(MIRROR TEST3)
ADD WALLITEM_MIRROR_TEST4 CLONES=(WALLITEM_MIRROR)
NAME=(MIRROR TEST4)
/******************************************************************************/
/* Audio - Party */
/******************************************************************************/
[Audio - Party]
FOOTSTEP......=(NULL)
SLEEP.........=(NULL)
CHARACTER_DIES=(NULL)
PARTY_DIES....=(SOUND_OTHER_SCREAM)
FALL_DOWN_PIT.=(SOUND_OTHER_SCREAM)
KNOCK_ON_WALL.=(SOUND_ATTACK_THUD)
WALK_INTO_WALL=(SOUND_OTHER_BUMP)
HIT_BY_MONSTER=(PLAYLIST_OOF)
HIT_BY_DOOR...=(PLAYLIST_OOF)
/******************************************************************************/
/* Audio - Runes */
/******************************************************************************/
[Audio - Runes]
LO..=(NULL)
UM..=(NULL)
ON..=(NULL)
EE..=(NULL)
PAL.=(NULL)
MON.=(NULL)
YA..=(NULL)
VI..=(NULL)
OH..=(NULL)
FUL.=(NULL)
DES.=(NULL)
ZO..=(NULL)
VEN.=(NULL)
EW..=(NULL)
KATH=(NULL)
IR..=(NULL)
BRO.=(NULL)
GOR.=(NULL)
KU..=(NULL)
ROS.=(NULL)
DAIN=(NULL)
NETA=(NULL)
RA..=(NULL)
SAR.=(NULL)
BACK=(NULL)
/******************************************************************************/
/* Audio - Misc */
/******************************************************************************/
[Audio - Misc]
MENU_BUTTONS.....=(SOUND_OTHER_CLICK)
ENTRANCE.........=(NULL,TRUE)
ENTRANCE_BUTTONS.=(SOUND_OTHER_CLICK)
ENTRANCE_DOOR....=(SOUND_OTHER_CLANK,TRUE)
ADD_RUNE.........=(SOUND_OTHER_ZAP)
THROW_ITEM.......=(SOUND_ATTACK_SWING)
VI_ALTAR_ZAP.....=(SOUND_OTHER_ZAP)
VI_ALTAR_EXPLODE.=(SOUND_OTHER_EXPLODE)
FUSE_ZAP.........=(SOUND_OTHER_ZAP)
FUSE_BUZZ........=(SOUND_OTHER_BUZZ)
FUSE_EXPLODE.....=(SOUND_OTHER_EXPLODE)
THE_END_WIN......=(NULL)
THE_END_LOSE_DEAD=(NULL)
THE_END_LOSE_TIME=(NULL)
/******************************************************************************/
/* Graphics - Menus */
/******************************************************************************/
[Graphics - Menus]
STYLE_INFO..=(BITMAP_MENU_STYLE_INFO)
STYLE_EMPTY.=(BITMAP_MENU_STYLE_EMPTY)
STYLE_SINGLE=(BITMAP_MENU_STYLE_SINGLE)
STYLE_DOUBLE=(BITMAP_MENU_STYLE_DOUBLE)
STYLE_SAVE..=(BITMAP_MENU_STYLE_SAVE)
BUTTON_SMALL_UP..=(BITMAP_MENU_BUTTON_SMALL_UP)
BUTTON_SMALL_DOWN=(BITMAP_MENU_BUTTON_SMALL_DOWN)
BUTTON_LARGE_UP..=(BITMAP_MENU_BUTTON_LARGE_UP)
BUTTON_LARGE_DOWN=(BITMAP_MENU_BUTTON_LARGE_DOWN)
BUTTON_CHECK_UP..=(BITMAP_MENU_BUTTON_CHECK_UP)
BUTTON_CHECK_DOWN=(BITMAP_MENU_BUTTON_CHECK_DOWN)
/******************************************************************************/
/* Graphics - Fonts */
/******************************************************************************/
[Graphics - Fonts]
MAIN..=(BITMAP_FONT_MAIN)
SCROLL=(BITMAP_FONT_SCROLL)
HINT..=(BITMAP_FONT_HINT)
MAIN_COL_MENU_NORMAL.........=(BITMAP_FONT_MAIN_COLOUR_WHITE)
MAIN_COL_MENU_SELECTED.......=(BITMAP_FONT_MAIN_COLOUR_YELLOW)
MAIN_COL_MENU_SEPARATOR......=(BITMAP_FONT_MAIN_COLOUR_GREY)
MAIN_COL_MENU_VERSION........=(BITMAP_FONT_MAIN_COLOUR_GREY)
MAIN_COL_MENU_BUTTON_ACTIVE..=(BITMAP_FONT_MAIN_COLOUR_WHITE)
MAIN_COL_MENU_BUTTON_INACTIVE=(BITMAP_FONT_MAIN_COLOUR_GREY)
MAIN_COL_DESCRIPTION.........=(BITMAP_FONT_MAIN_COLOUR_BLACK)
MAIN_COL_GAME_STATUS.........=(BITMAP_FONT_MAIN_COLOUR_CYAN)
MAIN_COL_OBJECT_NAME.........=(BITMAP_FONT_MAIN_COLOUR_CYAN)
MAIN_COL_MESSAGE_SYSTEM......=(BITMAP_FONT_MAIN_COLOUR_WHITE)
MAIN_COL_MESSAGE_INFO........=(BITMAP_FONT_MAIN_COLOUR_CYAN)
MAIN_COL_WEAPON_CHAR.........=(BITMAP_FONT_MAIN_COLOUR_BLACK)
MAIN_COL_WEAPON_METHOD.......=(BITMAP_FONT_MAIN_COLOUR_CYAN)
MAIN_COL_WEAPON_INFO.........=(BITMAP_FONT_MAIN_COLOUR_CYAN)
MAIN_COL_RUNE_CHAR...........=(BITMAP_FONT_MAIN_COLOUR_BLACK)
MAIN_COL_RUNE_AVAILABLE......=(BITMAP_FONT_MAIN_COLOUR_CYAN)
MAIN_COL_RUNE_UNAVAILABLE....=(BITMAP_FONT_MAIN_COLOUR_CYAN_VERY_DARK)
MAIN_COL_RUNE_INVERSE........=(BITMAP_FONT_MAIN_COLOUR_BLACK)
MAIN_COL_DAMAGE..............=(BITMAP_FONT_MAIN_COLOUR_WHITE)
MAIN_COL_CHAR_NAME_NORMAL....=(BITMAP_FONT_MAIN_COLOUR_ORANGE)
MAIN_COL_CHAR_NAME_LEADER....=(BITMAP_FONT_MAIN_COLOUR_YELLOW)
MAIN_COL_CHAR_NAME_DEAD......=(BITMAP_FONT_MAIN_COLOUR_GREY_LIGHT)
MAIN_COL_STATS_NAME..........=(BITMAP_FONT_MAIN_COLOUR_GREY_LIGHT)
MAIN_COL_STATS_VALUE_NORMAL..=(BITMAP_FONT_MAIN_COLOUR_GREY_LIGHT)
MAIN_COL_STATS_VALUE_DAMAGE..=(BITMAP_FONT_MAIN_COLOUR_RED)
MAIN_COL_STATS_VALUE_BOOST...=(BITMAP_FONT_MAIN_COLOUR_GREEN)
MAIN_COL_LOAD_NORMAL.........=(BITMAP_FONT_MAIN_COLOUR_GREY_LIGHT)
MAIN_COL_LOAD_HEAVY..........=(BITMAP_FONT_MAIN_COLOUR_YELLOW)
MAIN_COL_LOAD_VERY_HEAVY.....=(BITMAP_FONT_MAIN_COLOUR_RED)
MAIN_COL_MAP_ACTIVE..........=(BITMAP_FONT_MAIN_COLOUR_RED)
MAIN_COL_MAP_INACTIVE........=(BITMAP_FONT_MAIN_COLOUR_BLACK)
MAIN_COL_BOOK_ACTIVE.........=(BITMAP_FONT_MAIN_COLOUR_GREY_DARK)
MAIN_COL_BOOK_ACTIVE_SHADOW..=(BITMAP_FONT_MAIN_COLOUR_GREY_LIGHT)
MAIN_COL_BOOK_INACTIVE.......=(BITMAP_FONT_MAIN_COLOUR_GREY_VERY_LIGHT)
MAIN_COL_SHOP_DESCRIPTION....=(BITMAP_FONT_MAIN_COLOUR_WHITE)
MAIN_COL_SCORES_NAME.........=(BITMAP_FONT_MAIN_COLOUR_BLACK)
MAIN_COL_SCORES_POSITIVE.....=(BITMAP_FONT_MAIN_COLOUR_BLACK)
MAIN_COL_SCORES_NEGATIVE.....=(BITMAP_FONT_MAIN_COLOUR_RED)
MAIN_COL_SECRETS_SUMMARY.....=(BITMAP_FONT_MAIN_COLOUR_BLACK)
MAIN_COL_SECRETS_FOUND.......=(BITMAP_FONT_MAIN_COLOUR_BLACK)
MAIN_COL_SECRETS_HIDDEN......=(BITMAP_FONT_MAIN_COLOUR_GREY)
MAIN_COL_MONSTERS_KILLED.....=(BITMAP_FONT_MAIN_COLOUR_BLACK)
/******************************************************************************/
/* Graphics - Utility */
/******************************************************************************/
[Graphics - Utility]
TABLET............=(BITMAP_UTILITY_TABLET)
TABLET_DESCRIPTION=(BITMAP_UTILITY_TABLET_DESCRIPTION)
TABLET_MAKENEW....=(BITMAP_UTILITY_TABLET_MAKENEW)
TABLET_ORACLE.....=(BITMAP_UTILITY_TABLET_ORACLE)
TABLET_ENTRANCE...=(BITMAP_UTILITY_TABLET_ENTRANCE)
DESCRIPTION.......=(BITMAP_UTILITY_BANNER)
MAKENEW...........=(BITMAP_UTILITY_MAKENEW)
ORACLE............=(BITMAP_UTILITY_ORACLE)
SCORES............=(BITMAP_UTILITY_BANNER)
GREAT_HALL........=(BITMAP_UTILITY_BANNER)
/******************************************************************************/
/* Graphics - Entrance */
/******************************************************************************/
[Graphics - Entrance]
BACKGROUND...=(BITMAP_ENTRANCE_BACKGROUND_DM)
FOREGROUND...=(NULL)
DOOR_LEFT....=(BITMAP_ENTRANCE_DOOR_LEFT_DM)
DOOR_RIGHT...=(BITMAP_ENTRANCE_DOOR_RIGHT_DM)
SWITCH_ENTER.=(BITMAP_ENTRANCE_SWITCH_ENTER_DM)
SWITCH_RESUME=(BITMAP_ENTRANCE_SWITCH_RESUME_DM)
SWITCH_QUIT..=(BITMAP_ENTRANCE_SWITCH_QUIT_DM)
SWITCH_SCROLL=(BITMAP_ENTRANCE_SWITCH_SCROLL_DM)
/******************************************************************************/
/* Graphics - Interface */
/******************************************************************************/
[Graphics - Interface]
BACKGROUND..................=(NULL)
ARROWS_UP...................=(BITMAP_INTERF_ARROWS_UP)
ARROWS_DOWN.................=(BITMAP_INTERF_ARROWS_DOWN)
WEAPON_BOXES................=(BITMAP_INTERF_WEAPON_BOXES)
WEAPON_READY................=(BITMAP_INTERF_WEAPON_READY)
WEAPON_HIT..................=(BITMAP_INTERF_WEAPON_HIT)
RUNE_SELECTOR...............=(BITMAP_INTERF_RUNE_SELECTOR)
CHAR_STATS..................=(BITMAP_INTERF_CHAR_STATS)
CHAR_STATS_DAMAGE_HEALTH....=(BITMAP_INTERF_CHAR_STATS_DAMAGE_HEALTH)
CHAR_STATS_DAMAGE_STAMINA...=(BITMAP_INTERF_CHAR_STATS_DAMAGE_STAMINA)
CHAR_STATS_DAMAGE_MANA......=(BITMAP_INTERF_CHAR_STATS_DAMAGE_MANA)
CHAR_PORTRAIT...............=(BITMAP_INTERF_CHAR_PORTRAIT)
CHAR_PORTRAIT_DAMAGE_HEALTH.=(BITMAP_INTERF_CHAR_PORTRAIT_DAMAGE_HEALTH)
CHAR_PORTRAIT_DAMAGE_STAMINA=(BITMAP_INTERF_CHAR_PORTRAIT_DAMAGE_STAMINA)
CHAR_PORTRAIT_DAMAGE_MANA...=(BITMAP_INTERF_CHAR_PORTRAIT_DAMAGE_MANA)
CHAR_DEAD...................=(BITMAP_INTERF_CHAR_DEAD)
CHAR_POSITIONS..............=(BITMAP_INTERF_CHAR_POSITIONS)
CHAR_SHIELD_FIRE............=(BITMAP_INTERF_CHAR_SHIELD_FIRE)
CHAR_SHIELD_SPELL...........=(BITMAP_INTERF_CHAR_SHIELD_SPELL)
CHAR_SHIELD_MONSTER.........=(BITMAP_INTERF_CHAR_SHIELD_MONSTER)
CHAR_COLS_1.................=(BITMAP_INTERF_CHAR_COLOURS_GREEN)
CHAR_COLS_2.................=(BITMAP_INTERF_CHAR_COLOURS_YELLOW)
CHAR_COLS_3.................=(BITMAP_INTERF_CHAR_COLOURS_RED)
CHAR_COLS_4.................=(BITMAP_INTERF_CHAR_COLOURS_BLUE)
/******************************************************************************/
/* Graphics - Inventory */
/******************************************************************************/
[Graphics - Inventory]
BACKGROUND.......=(BITMAP_INVENTORY_BACKGROUND)
ICON_EXIT........=(BITMAP_INVENTORY_ICON_EXIT)
ICON_SLEEP.......=(BITMAP_INVENTORY_ICON_SLEEP)
ICON_SAVE........=(BITMAP_INVENTORY_ICON_SAVE)
ICON_SOUND.......=(BITMAP_INVENTORY_ICON_SOUND)
VIEW_FOOD_WATER..=(BITMAP_INVENTORY_VIEW_FOOD_WATER)
VIEW_POISONED....=(BITMAP_INVENTORY_VIEW_POISONED)
VIEW_STATS.......=(BITMAP_INVENTORY_VIEW_STATS)
VIEW_ITEM........=(BITMAP_INVENTORY_VIEW_ITEM)
BAR_FOOD_LONG....=(BITMAP_INVENTORY_BAR_FOOD_LONG)
BAR_FOOD_MEDIUM..=(BITMAP_INVENTORY_BAR_FOOD_MEDIUM)
BAR_FOOD_SHORT...=(BITMAP_INVENTORY_BAR_FOOD_SHORT)
BAR_WATER_LONG...=(BITMAP_INVENTORY_BAR_WATER_LONG)
BAR_WATER_MEDIUM.=(BITMAP_INVENTORY_BAR_WATER_MEDIUM)
BAR_WATER_SHORT..=(BITMAP_INVENTORY_BAR_WATER_SHORT)
/******************************************************************************/
/* Graphics - Inventory Boxes */
/******************************************************************************/
[Graphics - Inventory Boxes]
BORDER_PLAIN...........=(BITMAP_INVENTORY_BOX_BORDER_PLAIN)
BORDER_HIGHLIGHT.......=(BITMAP_INVENTORY_BOX_BORDER_HIGHLIGHT)
BORDER_DAMAGE..........=(BITMAP_INVENTORY_BOX_BORDER_DAMAGE)
BORDER_BOOST...........=(BITMAP_INVENTORY_BOX_BORDER_BOOST)
ICON_EYE_NORMAL........=(BITMAP_INVENTORY_BOX_ICON_EYE_NORMAL)
ICON_EYE_LOOKING.......=(BITMAP_INVENTORY_BOX_ICON_EYE_LOOKING)
ICON_MOUTH_OPEN........=(BITMAP_INVENTORY_BOX_ICON_MOUTH_OPEN)
ICON_MOUTH_MIDDLE......=(BITMAP_INVENTORY_BOX_ICON_MOUTH_MIDDLE)
ICON_MOUTH_CLOSED......=(BITMAP_INVENTORY_BOX_ICON_MOUTH_CLOSED)
ICON_HEAD..............=(BITMAP_INVENTORY_BOX_ICON_HEAD)
ICON_BODY..............=(BITMAP_INVENTORY_BOX_ICON_BODY)
ICON_HAND_LEFT.........=(BITMAP_INVENTORY_BOX_ICON_HAND_LEFT)
ICON_HAND_RIGHT........=(BITMAP_INVENTORY_BOX_ICON_HAND_RIGHT)
ICON_LEGS..............=(BITMAP_INVENTORY_BOX_ICON_LEGS)
ICON_FEET..............=(BITMAP_INVENTORY_BOX_ICON_FEET)
ICON_HEAD_INJURED......=(BITMAP_INVENTORY_BOX_ICON_HEAD_INJURED)
ICON_BODY_INJURED......=(BITMAP_INVENTORY_BOX_ICON_BODY_INJURED)
ICON_HAND_LEFT_INJURED.=(BITMAP_INVENTORY_BOX_ICON_HAND_LEFT_INJURED)
ICON_HAND_RIGHT_INJURED=(BITMAP_INVENTORY_BOX_ICON_HAND_RIGHT_INJURED)
ICON_LEGS_INJURED......=(BITMAP_INVENTORY_BOX_ICON_LEGS_INJURED)
ICON_FEET_INJURED......=(BITMAP_INVENTORY_BOX_ICON_FEET_INJURED)
ICON_NECK..............=(BITMAP_INVENTORY_BOX_ICON_NECK)
ICON_POUCH.............=(BITMAP_INVENTORY_BOX_ICON_POUCH)
ICON_SHEATH............=(BITMAP_INVENTORY_BOX_ICON_SHEATH)
ICON_BACKPACK..........=(BITMAP_INVENTORY_BOX_ICON_BACKPACK)
/******************************************************************************/
/* Graphics - Misc */
/******************************************************************************/
[Graphics - Misc]
MOUSE_POINTER.....=(NULL)
VI_ALTAR_EXPLOSION=(BITMAP_CLOUD_FIREBALL)
VI_ALTAR_LIGHTNING=(BITMAP_SPELL_LIGHTNING_SIDE)
SPELL_WINDOW_DOOR.=(BITMAP_SPELL_WINDOW_DOOR)
FUSE_FUSE.........=(BITMAP_CLOUD_DESEW)
FUSE_EXPLOSION....=(BITMAP_CLOUD_FIREBALL)
FUSE_LORD_GREY....=(BITMAP_MONSTER_LORD_GREY_FRONT)
FUSE_LORD_ORDER...=(BITMAP_MONSTER_LORD_ORDER_FRONT)
FUSE_LORD_CHAOS...=(BITMAP_MONSTER_LORD_CHAOS_FRONT)
THE_END_WIN.......=(BITMAP_THEEND)
THE_END_LOSE_DEAD.=(BITMAP_THEEND)
THE_END_LOSE_TIME.=(BITMAP_THEEND)
/******************************************************************************/
/* Characters */
/******************************************************************************/
[Characters]
CHARACTER_TEST NAME=(TEST)
GENDER=(M) STATS=(999,999,999) EXP=(15.0,15.0,15.0,15.0)
ATTRS=(255,255,255,255,255,255) HIDDEN=(100,100,100,100,100,100) OTHER=(30000,30000,0,0)
BITMAPS=(PORTRAIT_MIRROR:BITMAP_PORTRAIT_ZED,PORTRAIT_PARTY:BITMAP_PORTRAIT_ZED,HAND_WEAPON:BITMA
P_ICON_PARTY_HAND,HAND_MOUSE:NULL)
METHODS=(ATTACK_METHOD_PUNCH,ATTACK_METHOD_KICK,ATTACK_METHOD_WAR_CRY) BONES=(MISC_BONES)
CHARACTER_TEST1 NAME=(TEST1) GENDER=(M)
STATS=(10,10,0) EXP=(0.0,0.0,0.0,0.0) ATTRS=(20,20,20,20,20,20)
HIDDEN=(100,100,100,100,100,100) OTHER=(-1,-1,0,0)
BITMAPS=(PORTRAIT_MIRROR:BITMAP_PORTRAIT_AIRWING,PORTRAIT_PARTY:BITMAP_PORTRAIT_AIRWING,HAND_WEAP
ON:BITMAP_ICON_PARTY_HAND,HAND_MOUSE:NULL)
METHODS=(ATTACK_METHOD_PUNCH,ATTACK_METHOD_KICK,ATTACK_METHOD_WAR_CRY) BONES=(MISC_BONES)
CHARACTER_TEST2 NAME=(TEST2) GENDER=(M)
STATS=(10,10,0) EXP=(0.0,0.0,0.0,0.0) ATTRS=(20,20,20,20,20,20)
HIDDEN=(100,100,100,100,100,100) OTHER=(-1,-1,0,0)
BITMAPS=(PORTRAIT_MIRROR:BITMAP_PORTRAIT_ALEX_ALT,PORTRAIT_PARTY:BITMAP_PORTRAIT_ALEX_ALT,HAND_WE
APON:BITMAP_ICON_PARTY_HAND,HAND_MOUSE:NULL)
METHODS=(ATTACK_METHOD_PUNCH,ATTACK_METHOD_KICK,ATTACK_METHOD_WAR_CRY) BONES=(MISC_BONES)
CHARACTER_TEST3 NAME=(TEST3) GENDER=(M)
STATS=(10,10,0) EXP=(0.0,0.0,0.0,0.0) ATTRS=(20,20,20,20,20,20)
HIDDEN=(100,100,100,100,100,100) OTHER=(-1,-1,0,0)
BITMAPS=(PORTRAIT_MIRROR:BITMAP_PORTRAIT_ANDERS,PORTRAIT_PARTY:BITMAP_PORTRAIT_ANDERS,HAND_WEAPON
:BITMAP_ICON_PARTY_HAND,HAND_MOUSE:NULL)
METHODS=(ATTACK_METHOD_PUNCH,ATTACK_METHOD_KICK,ATTACK_METHOD_WAR_CRY) BONES=(MISC_BONES)
CHARACTER_TEST4 NAME=(TEST4) GENDER=(M)
STATS=(10,10,0) EXP=(0.0,0.0,0.0,0.0) ATTRS=(20,20,20,20,20,20)
HIDDEN=(100,100,100,100,100,100) OTHER=(-1,-1,0,0)
BITMAPS=(PORTRAIT_MIRROR:BITMAP_PORTRAIT_AROC,PORTRAIT_PARTY:BITMAP_PORTRAIT_AROC,HAND_WEAPON:BIT
MAP_ICON_PARTY_HAND,HAND_MOUSE:NULL)
METHODS=(ATTACK_METHOD_PUNCH,ATTACK_METHOD_KICK,ATTACK_METHOD_WAR_CRY) BONES=(MISC_BONES)
/******************************************************************************/
/* Layout */
/******************************************************************************/
[Layout]
; Level 0
WALLSET......=(WALLSET_DEFAULT)
LIGHT_AMBIENT=(100)
LIGHT_MINIMUM=(5)
LIGHT_MAXIMUM=(1000)
OFFSET.......=(0,0)
SIZE.........=(32,32)
ITEM_PREFIX..=(ref00)
DESCRIPTION..=()
10000000000000000000000000000000
11110000000000000000000000000000
11110000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
/******************************************************************************/
/* Items */
/******************************************************************************/
[Items]
; Level 0
ref000200-2 WALLITEM_TEXT 1 0 0 SOUTH
TEXT=(CURRENT SIZE\OF PARTY: %VALUE:ref000005-1%)
ref000200-1 WALLITEM_TEXT 2 0 0 SOUTH
TEXT=(CURRENT SIZE\LIMIT: %VALUE:ref000105-1%)
ref000300-1 WALLITEM_SWITCH_BLUE 3 0 0 SOUTH
OPBY=(HAND) ACTION=(DEACTIVATE) TARGET=(ref000105-1)
ref000300-2 WALLITEM_TEXT 3 0 0 SOUTH
TEXT=(INCREASE\PARTY SIZE)
ref000003-2 WALLITEM_MIRROR_TEST1 0 3 0 NORTH
HOLDS=(CHARACTER_TEST1) ACTION=(ACTIVATE) TARGET=(ref000004-2,ref000005-2,ref000004-3)
OPTIONS=(SOUND:NULL)
ref000103-1 WALLITEM_MIRROR_TEST2 1 3 0 NORTH
HOLDS=(CHARACTER_TEST2) ACTION=(ACTIVATE) TARGET=(ref000004-1,ref000005-2,ref000004-3)
OPTIONS=(SOUND:NULL)
ref000203-2 WALLITEM_MIRROR_TEST3 2 3 0 NORTH
HOLDS=(CHARACTER_TEST3) ACTION=(ACTIVATE) TARGET=(ref000104-1,ref000005-2,ref000004-3)
OPTIONS=(SOUND:NULL)
ref000303-1 WALLITEM_MIRROR_TEST4 3 3 0 NORTH
HOLDS=(CHARACTER_TEST4) ACTION=(ACTIVATE) TARGET=(ref000204-1,ref000005-2,ref000004-3)
OPTIONS=(SOUND:NULL)
ref000004-2 WALLITEM_RELAY 0 4 0 CENTRE
CONDITION=(VALUE:ref000005-1,GREATER_THAN_OR_EQUAL_TO,VALUE:ref000105-1) ACTION=(ACTIVATE)
TARGET=(ref000105-2)
ref000004-1 WALLITEM_RELAY 1 4 0 CENTRE
CONDITION=(VALUE:ref000005-1,GREATER_THAN_OR_EQUAL_TO,VALUE:ref000105-1) ACTION=(ACTIVATE)
TARGET=(ref000005-3)
ref000004-3 WALLITEM_SPEECH 1 4 0 CENTRE TYPE=(SYSTEM)
TEXT=(PARTY SIZE: %VALUE:ref000005-1%\MAX PARTY SIZE: %VALUE:ref000105-1%)
ref000104-1 WALLITEM_RELAY 2 4 0 CENTRE
CONDITION=(VALUE:ref000005-1,GREATER_THAN_OR_EQUAL_TO,VALUE:ref000105-1) ACTION=(ACTIVATE)
TARGET=(ref000005-4)
ref000204-1 WALLITEM_RELAY 3 4 0 CENTRE
CONDITION=(VALUE:ref000005-1,GREATER_THAN_OR_EQUAL_TO,VALUE:ref000105-1) ACTION=(ACTIVATE)
TARGET=(ref000205-1)
ref000105-2 WALLITEM_ACTION 0 5 0 CENTRE
ACTION=(ACTION_REMOVE_CHARACTER_AND_ITEMS_FROM_PARTY,WALLITEM_MIRROR_TEST1,NULL)
STRENGTH=(0)
ref000005-3 WALLITEM_ACTION 1 5 0 CENTRE
ACTION=(ACTION_REMOVE_CHARACTER_AND_ITEMS_FROM_PARTY,WALLITEM_MIRROR_TEST2,NULL)
STRENGTH=(0)
ref000005-4 WALLITEM_ACTION 2 5 0 CENTRE
ACTION=(ACTION_REMOVE_CHARACTER_AND_ITEMS_FROM_PARTY,WALLITEM_MIRROR_TEST3,NULL)
STRENGTH=(0)
ref000205-1 WALLITEM_ACTION 3 5 0 CENTRE
ACTION=(ACTION_REMOVE_CHARACTER_AND_ITEMS_FROM_PARTY,WALLITEM_MIRROR_TEST4,NULL)
STRENGTH=(0)
ref000005-2 WALLITEM_RELAY 0 7 0 CENTRE
CONDITION=(VALUE:ref000005-1,LESS_THAN,VALUE:ref000105-1) ACTION=(DEACTIVATE)
TARGET=(ref000005-1)
ref000107-1 WALLITEM_SPEECH 1 7 0 CENTRE TYPE=(SYSTEM)
TEXT=(ADDING MEMBER TO PARTY)
ref000005-1 WALLITEM_COUNTER 0 8 0 CENTRE COUNT=(0)
ACTION=(NULL) TARGET=(NULL)
ref000105-1 WALLITEM_COUNTER 0 9 0 CENTRE COUNT=(1)
ACTION=(NULL) TARGET=(NULL)
/******************************************************************************/
/* Hint Oracle - Monsters */
/******************************************************************************/
[Hint Oracle - Monsters]
TITLE=(CREATURES)
TEXT.=(Learn well the shapes and\forms dread Chaos makes;\Regard the toll of pain and\death each
monster takes.)
1 uniquely named MIRROR for each playable character in the game (cloned from one of the MIRROR WALLITEMS)(ITEM IS TRIGGER: YES/ OP BY: MOUSE/ ACTION: ACTIVATE/ TARGETS: RELAY that tests if new member makes party too big, RELAY that increases CURRENT PARTY SIZE if new member was addd and was valid)
1 RELAY for each MIRROR MIRROR (no need for clones) (ACTION: activate/ TARGETS: ACTION that removes party member/ CONDITION: CURRENT PARTY SIZE COUNTER GREATER THEN OR EQUAL TO MAX PARTY SIZE COUNTER)
1 ACTION for each MIRROR (ACTION: REMOVE CHARACTER FROM PARTY/ TARGET: the mirror object type the player just clicked on (eg: if the player clicked on WALLITEM_MIRROR_TEST then the action would target this mirror))
1 RELAY (ACTION: DEACTIVATE/ TARGET: CURRENT PARTY SIZE COUNTER/ CONDITION: CURRENT PARTY SIZE COUNTER LESS THEN MAX PARTY SIZE COUNTER)
2 COUNTERS:
1 COUNTER to keep track of MAX PARTY SIZE: should be set to an initial value of between 1 and 4, and have a trigger target it with the DEACTIVATE action to increase, or the ACTIVATE action to decrease it. keep its value between 1 and 4
1 COUNTER to keep track of CURRENT PARTY SIZE: target it with a trigger to DEACTIVATE it if a new member was added to the party, or ACTIVATE it if a party member was removed from the party. Note that if an extra member was autoremoved from the party when adding a new member due to the party going oversize the current parry size will not be updated as you are effectively trading 1 party member for another.