home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 8
/
amigaformatcd08.iso
/
screenplay
/
shareware
/
pnp098
/
doc
/
pnp.doc
< prev
next >
Wrap
Text File
|
1996-09-19
|
29KB
|
841 lines
PNP
*************
A program to help Dungeon Masters developing RPG-Adventures.
© 1996 Arne Koch. All rights reserved to the author.
THIS IS SHAREWARE. PLEASE READ CHAPTER REGISTRATION.
This software is provided "as-is" and the author accepts no responsibility
for damage and/or loss of data/equipment resulting from the use of this
software.
INTRODUCTION
************
PNP helps you to create adventures for nearly every RPG. PNP offers some
windows where you can easily create data that's important for RPGs. You can
define datafiles which describe your RPG. You may have such files for several
RPG-Systems, so you can use PNP for different RPG-Systems. You can also
configure PNP to open your preffered editor (or some Word-Processor like
Final Writer(TM)) on its screen. Here you can write your adventure. Now, when
you need some data that PNP has created, it can be inserted in your text
by pressing an insertbutton.
SYSTEM-REQUIREMENTS
*******************
- An Amiga running Kickstart 2.04+ (I think so, it's only been tested
with KS3.x)
- 2meg of RAM (perhaps PNP runs with less ram, but i don't know).
- A screensize of at least 640x256, PNP starts to be happy with
640x480!!
PNP has been developed on an A4000, 68040/40, 28 Meg FastRam,
340Meg SCSI HD, Cybervision64, 17" monitor.
INSTALLING
**********
Just copy the unpacked archive somewhere to your harddisk.
Now doubleclick on the PNP-Start icon. It assigns pnp: to the current
directory and starts PNP.
If you want PNP to be able to insert text in an editor, you must have
Rexxmast running.
STARTING
********
Please don't start PNP directly. Do always use the script PNP-start.
PNP: is assigned to the current directory and an important argument is given
to PNP here!!!
PNP opens an own screen, that's cloned from the Workbench-screen. Later
you can define another screenmode.
At startup PNP asks you for a project file. When starting PNP the first
time you can only choose sample.prj.
After that you can define you own Preferences, but you first should try
out some things.
Some general things:
- When a String-Gadget is labeled with capitals you can enter
several data or commands by seperating them with a seperator,
a "," for data and a ";" for commands. The last character must be the
seperator, but PNP automatically adds it if it's not there.
- You can open and use several windows at the same time.
- A "?"-button opens an asl-requester.
- I think i'm not allowed to give data of some RPGs with PNP, so you
have to enter it yourself.
- PNP is font-sensitive
THE MENUS
*********
PROJECT
*******
INFO
****
Shows some infornation about PNP, the status (registered/unregistered),
etc.
OPEN
****
Here you can choose another project.
SAVE
****
Saves the current project. A project contains information about the
preferences, which windows are currently open and which position and
size they have.
So if you open some windows and save the project, these windows will be
opened on next startup.
You can have projects for several RPGs. So if you like to work on an
adventure for e.g. AD&D(TM), open your AD&D project and all preferences
(enemyfiles, etc.) are loaded for AD&D (of course you have to define these
prefs first). If you want to work on another RPG, just load another
project.
SAVE AS
*******
Saves the current project under another name.
QUIT
****
Quits PNP and all open windows except modules and other programs
that open a window on the PNP-screen. If windows not under the
control of PNP are open, a requester asks you to close these
windows. (But PNP can close the Editor if it has an ARexxport!)
TABLES
******
This menu differs from project to project as it is user defineble.
If you choose a menupoint a window opens that contains data that is read
from an ASCII-file. There can be 4 tables opened at the same time.
WINDOWS
*******
ROLL DICE
*********
This opens a window with some gadgets
(Combination does not work for now!).
With the first MX-Gadget on the right side (d4-d100) you choose the die
you want to roll. The second one selects how many times the die is
rolled, so d6+x3 means, a 6 sided die is rolled 3 times and the results
are added.
With the Slider-Gadget and the Cycle-Gadget you can modify the result by
adding, subtracting, dividing or multiplying with a value that's giving
by the Slider-Gadget.
The Button "roll" rolls the dice and shows thw result in the Text-Gadget
on the right.
The Checkbox-Gadget "History" opens an other window. Every result is
added to the left list and the number of results is shown above.
When clicking "Sum" the results are added and the result is added to
the right list. With "Reset" the list is set to null.
You can manipulate the behaviour of the left "Sum"-Button in Misc-Prefs.
TREASURE GENERATOR
******************
This one creates a treasure by interpreting a treasurefile in
pnp:daten/Tres.
In the String-Gadget "Type" you choose the treasure. "A" means that
the file
"A.tres" in pnp:daten/Tres shall be used.
Clicking "Generate" creates the treasure. This may take a while...
The result is shown in the big Bevelbox.
When the editor is open, you can insert the result by clicking the
"Insert"-Button.
"Close" closes this window.
See chapter TREASURES for more information about creating treasurefiles.
FOE GENERATOR
*************
The Slider labeled "Enemy" defines the value that is used by the 4 "<"
and ">" buttons which enter this value in the corresponding String-
gadget. The values define the min and max number of normal enemies
and leaders.
The checkbox "Level/HD" selects whether the enemies are monsters or
humans.
The checkbox "Time" selects which time you actually have, so if it's
day, there can be enemies that appear in the daytime or both, but not
only during the night.
"Terrain" shows which terrain you're actually in, behaviour is the same
as "Time".
The content of the list is read from file given in Misc-Prefs.
"Scenario" defines from which scenario enemies may appear, that differs
from the behaviour of the last to gadgets. So if you want enemies that
appear in all scenarios and enemies that appear e.g. in Krynn, you have
to enter All,Krynn, .
"Enemy" : Here you can select special enemies. You can select fixed
enemies or races.
See chapter ENEMIES for more.
"Save" saves the contents of the two String-gadgets.
"Load" loads it.
"Info" shows an additional text if it is available.
"Pic" shows a picture of the enemy if it is available.
"Generate" creates some enemies.
"Insert" inserts them in editor.
"Close" closes this window.
EVENT
*****
A randomly generated event is shown in the Bevelbox. With "New" you can
load another event, "Insert" inserts the text in your editor if it's
open, "Close" closes the window.
The events are read from a file in pnp:daten/events/. This file is given
by Misc-Prefs.
See EVENTS on how to create eventfiles.
EDITOR
******
This opens the editor given by Editor-Prefs. See there for more
information.
Note: Ed2.0 has some problems with inserting text via ARexx.
The text does sometimes not appear at the screen.
When this happens just scroll the window so the position
is not on the screen anymore. Now when scrolling back the
text should be there.
CALCULATOR
**********
This opens sys:tools/calculator, so it should be there, if you want
to use it :-).
MODULES
*******
Here you can open the modules that are defined in modulesprefs.
You can add 20 Modules to this menu.
PREFERENCES
***********
EDITOR
******
"Path": here you have to choose an editor by giving the
programname with full path. The "?"-button opens
an asl-filerequester.
"Screen": If the editor supports pubscreens insert the argument
in the String-Gadget (but NOT the screenname!).
Otherwise select SHANGHAI. This will put PNP to
SHANGHAI-Mode when opening the editor and back to
normal mode after that.
"ARexx": The Checkbox does not work for now.
"Port" : Enter the name of the ARexx-Port of the editor
here.
"Startup": The value of the Slider-Gadget is the time PNP waits
after starting the editor before setting its
windowposition and size.
"Control":
"Save": The ARexx-command of the editor for saving
the current-file.
"Filename": Does not work for now. In later verions you
can enter a command that returns the name of
the edited file and PNP saves it within the
projectfile, so it can automatically
be loaded on next startup.
"QUIT": A Control-Sequence that will be send to the
editor when quitting PNP.
"Insert Text":
No Clipboard-support yet.
"Insert": Enter the command for inserting text in the
first String-Gadget. The text to be inserted
will be send between the contents of the
first and the second gadget.
In the second gadget you can e.g. enter a ",
when your editor wants the text to be
enclosed in " ".
There are also two special characters: < and ©.
< adds a linefeed after the text, © a
carriagereturn.
This is for programs like FinalWriter that
have no ARexx commands for inserting a
new line.
"DOWN": A control-sequence for inserting a new line.
"Set Windowposition":
With the checkbox you choose wether to set the position
and size of the editorwindow by ARexxcommands or an
intuitioncommand.
I think that the intuitioncommand is better.
"X": The Arexx-command for setting the x-position.
"Y": The Arexx-command for setting the y-position.
"h": The Arexx-command for setting the height.
"w": The Arexx-command for setting the width.
The checkbox Mode2 sets the internal mode of windowhandling. This
should be placed in Misc-Prefs but i realised the problems with
mode1 when trying out some editors, so it's placed here.
If your editor has problems, you should try out mode2.
TABLES
******
Here you can add tables to the tablesmenu.
"Add": This opens a filerequester and the file you choose is added
to the list (the name that appears there is read from the file).
"Del": Deletes the selected item from the list.
With the Buttons under "Position" you can change the position of
the selected item.
You can add up to 30 tables to the menu.
When clicking "Use" or "Save" the tablemenu will be updated.
Screen
******
"Clone WB" : Check wether WB-Screen is cloned or not.
"Mode..." : If Clone WB isn't checked, you can define
a screenmode for PNP here.
"Font..." : Choose a font for PNP here.
"Background": A filerequester appears where you can choose an
iff-file that's shown in the mainwindow.
The first 4 colours should be the standard
workbenchcolours.
"Shanghai" : The PNP-screen will be in Shanghai-mode.
"Use" : Use the Prefs.
"Save" : Save the Prefs into the selected file.
The font- and the screenprefs are always
written to font.prefs/screenmode.prefs.
You can't have different prefs for different
projects (guess that's no problem).
"Open" : Opens a prefsfile.
"Cancel" : Cancel the changes.
Misc
****
"Autosave": Does not work for now.
"Rearrange Gadgets": When this checkbox is checked the gadgets of
the windows will rearrange when the window
size is changed. This does not works correct
yet, so the gadget is disabled.
"Autoreset": This tells PNP whether to reset the dicehistorylist
when clicking "Sum" or not.
"Terrain": Here you must enter the file that's used for the
terrain-list in Enemy Generator.
"HD": The datafile for Monsters.
"Level": The datafile for human enemies.
"Event data": The eventfile.
Modules
*******
Here you can add modules to the modulesmenu.
The behaviour is the same as in tablesprefs.
TREASURES
*********
This generator is not finished. It´s quite slow and there are some other
not very nice things.
Perhaps I will rewrite it.
Usage:
I decided to make it flexible, to be useful with most RPGs.
So it´s implemented as an interpreter-language.
Commands:
( <...> : here you will add other commands )
KIND(kind) <kind> is the kind of treasure (e.g. Copper)
... which is rolled.
ENDKIND
TRES(tres,num,a,b,c,...)
...
ENDTRES
This opens another treasurefile.
The filename is given by <tres> in combination
with <num,a,b,c,...>.
This is needed if there is more than one table
for the same treasurekind.
Let´s say you have the treasuretables
Scrolls_1
Scrolls_2
Scrolls_3
Then you must say: TRES(Scrolls,3,1,2,3)
where the first 3 stands for the number of
different tables.
Another example:
Potions_A
Potions_B
Potions_C
Potions_D
-> TRES(Potions,4,A,B,C,D)
Now let´s say we have 2 tables and there is
a 2/3 chance of getting the first one and 1/3
for the second.
table_1
table_2 are tablefiles in PNP:daten/Tres/
-> TRES(table,3,1,1,2)
THE _ BETWEEN TABLENAME AND APPENDIX IS
NECESSARY!!!!!
If there is only one table, just type:
TRES(tres,0)
ROLL(dice) Rolls a dice on a given table.
... ROLL(100) will roll a d100,
ENDROLL ROLL(54) will roll a d54. (see example below!)
%(percent) the chance the treasure is found.
<percent> is from 0-100.
RANGE(min-max) The amount (at least <min>,at most <max>)
of treasure is rolled. min,max are integers.
VALUE(val) The amount of treasure is given by <val>.
ANY(val), This means a die is rolled <val> times
ANY(min-max) on a treasuretable. With ANY(min-max) <val>
is a random number between min and max.
Examples:
KIND(Copper)
RANGE(1000-3000)
%(25)
ENDKIND
KIND(Gold)
RANGE(1000-6000)
%(50)
KIND(Silver)
VALUE(300)
ENDKIND
ENDKIND If there is Gold, there will be 300 Silver too.
KIND(Platinum)
%(35)
TRES(SCROLLS,0)
ANY(1)
ENDTRES
RANGE(300-1800)
ENDKIND If there is Platinum, there will be 1 Scroll, that is
taken from SCROLLS.tres. The RANGE() MUST be given after
ENDTRES!
The %() MUST be given before TRES!
KIND(Gold)
RANGE(1000-6000)
KIND(Silver)
%(20)
RANGE(200-2000)
ENDKIND
%(35)
ENDKIND If there is Gold, then there is a 20% chance of
200-2000 Silver.
You MUST give the %() AFTER the ENDKIND of Silver and
RANGE BEFORE KIND(Silver). Otherwise the %(35)of Gold
would be overwritten by %(20) of Silver.
!!!!!! COMPARE WITH EXAMPLE ABOVE (where only one
%() is given) !!
TRES(Gems,2,A,B)
%(60)
ANY(10-40)
ENDTRES There is a 60% chance for 10-40 Gems.
They are taken either from Gems_A.tres or Gems_B.tres
(50/50).
Potions.tres :
ROLL(20)
VALUE(1) KIND(Potion 1) VALUE(1) ENDKIND
VALUE(2) KIND(Potion 2) VALUE(1) ENDKIND
VALUE(3) KIND(Potion 3) VALUE(1) ENDKIND
VALUE(4) KIND(Potion 4) VALUE(1) ENDKIND
RANGE(5-6) KIND(Potion 5) VALUE(1) ENDKIND
VALUE(7) KIND(Potion 6) VALUE(1) ENDKIND
VALUE(8) KIND(Potion 7) VALUE(1) ENDKIND
VALUE(9) KIND(Potion 8) VALUE(1) ENDKIND
RANGE(10-11) KIND(Potion 9) VALUE(1) ENDKIND
VALUE(12) KIND(Potion 10) VALUE(1) ENDKIND
VALUE(13) KIND(Potion 11) VALUE(1) ENDKIND
RANGE(14-15) KIND(Potion 12) VALUE(1) ENDKIND
VALUE(16) KIND(Potion 13) VALUE(1) ENDKIND
VALUE(17) KIND(Potion 14) VALUE(1) ENDKIND
VALUE(18) KIND(Potion 15) VALUE(1) ENDKIND
VALUE(19) KIND(Potion 16) VALUE(1) ENDKIND
VALUE(20) KIND(Potion 17) VALUE(1) ENDKIND
ENDROLL
IF a 1 is rolled there is 1 potion of Potion 1
IF a 2 is rolled there is 1 potion of potion 2
...
IF a 5 or 6 is rolled there is 1 potion of Potion 5
...
ROLL(8)
VALUE(1) TRES(Gems,0) ANY(3) ENDTRES
RANGE(2-7) TRES(SCROLLS,0) ANY(5-10) ENDTRES
VALUE(8) KIND(Gold) RANGE(10-20) ENDKIND
ENDROLL
IF a 1 is rolled then 3 times a dice will be rolled on
the treasuretable Gems.tres.
IF a value between 2 and 7 is rolled then a dice will be
rolled 5 to 10 times on table SCROLLS.
IF a 8 is rolled then there are 10 to 20 pieces of Gold.
THE LAST CHARACTER OF EACH TREASUREFILE MUST BE THE # !!!!!!
Put the files in pnp:daten/tres/ .
EVENTS
******
The ASCII-file must begin with a "{". After that you enter the first event.
Every event is closed with a "{" except the last that's closed with a "#".
Example:
{
Event one. (Used as title)
This happens.
{
Event two.
This happens.
{
last event.
This happens.
# (End of file)
This files should be placed in pnp:daten/events.
ENEMIES
*******
You should create two enemyfiles for each RPG, one for monsters and one for
humans.
An enemyfile looks as follows:
enemyname, leaders, level/hd, scenario, terrain, daytime, race, text, pic,
take care of the last ","!!!
enamyname: the name of the enemy
leaders: if you enter a name of another enemy that's also specified in this
file, these enemies are used, when there shall be leaders. If you
specify "None" any other enemy that has higher level/hd and has the
same race is used as leaders.
level/hd: the level or hit dice of enemy.
scenario: the scenario the enemy appears in. If you specify "All", the
enemy can appear in every scenario.
terrain: this is the NUMBER of the item in the listview-gadget (beginning
with 0) that represents the terrain the enemy may appear. You
should use "0" for "All".
As you can specify your own terrainfiles you can do this the way
you want.
daytime: the daytime the enemy may appear.
Values are: "Day","Night" or "Both".
race: the race of the enemy. You can specify the race in the
enemy-gadget. This is also used for specifying the leader of
an enemy.
text: this text is shown when clicking the info-button in enemygenerator.
pic: this pic is shown (using MultiView) when clicking the pic-button.
# again marks the end of the file.
See the enemyfiles for examples.
TABLES
******
A tablefile looks as follows:
Line 1: The name of the table (this one appears in the PNPmenu)
Line 2
... This is the Headline of the table.
Line x
{
The table itself.
}
Some comments (if you want).
...
# The end.
Example:
Constitution (the menuentry)
Attribute- Hit-
value points
{
1 -3
2 -2
3 -1
4 -1
5 0
6 0 (the table)
7 0
8 +1
9 +1
10 +1
11 +1
12 +1
13 +2
14 +3
15 +4
}
*) Here you can add comments.
**) and even more lines.
#
TERRAINS
********
This file defines the content of the listview-gadget in foe generator. The
first line is the first item in the list, the second line the second one and
so on ...
No # at the end here.
HINTS
*****
- You can simply add a ToolManager-Dock to PNP:
1. Create a ToolManager-Dock, that's not activated at startup.
Assign publicscreen PNP to it, and choose a key-shortcut.
If the pograms that shall be started from the dock have publicscreen
support just give PNP as argument to the publicscreen argument.
You have to choose CLI as programtype!!
( e.g. ged SCREEN PNP, clock pubscreen PNP,
newshell "CON://///SCREEN PNP", ... )
(Perhaps for some programs the pubscreen gadget of ToolManager may work,
for programs like MultiView, Clock, NewShell, etc. it doesn't.)
IF a program don't has pubscreen support, don't do anything here.
Save it.
2. Start PNP.
IF you added a program without pubscreen support to your dock select
SHANGHAI from Screen-Prefs. ( Now EVERY program will open its screen on
the PNP screen)
3. Press the Dock-shortcut. It should appear on the PNP-screen.
- Use a tool like CycleToMenu.
- Create an iff-picture of important tables, that's shown in background.
- Create treasurefiles that create weapons and armor, that you can use for
arming the enemies generated by PNP. Or use the textfield in your enemyfile
where you can add weapon and armor.
- If you've forgotten the seperator, just enter any text into the gadget and
press return.
Now PNP will add the seperator as last character.
- If you use a small screensize use a small font too.
- If you have problems with the screenmode, load screenmode.pref into your
editor and change the first character from 0 to 1 and save the file.
Now PNP will clone the wb-screen.
- If PNP slows down your system a lot, try to increase the number that's
given as argument to pnp in PNP-Start. You should start with 2 ...
Please send comments,bug-reports and suggestions to me (e-mail preferred).
CHANGES
*******
V0.96 - Added modules.
- Two more buttons in enemygenerator and two more
fields in the datasets of the enemyfiles.
- Bug Fixes:
- The iff-pic is shown correctly now.
- Some minor fixes (corrected prefspaths etc.).
V0.97 - Added a FontRequester.
PNP uses its own font now.
- Added a ScreenModeRequester.
PNP can use its own screenmode now.
V0.98 - The tables are shown correctly now with
different fonts.
- A pointer to textattr is given as argument to modules now.
- Fixed several enforcer hits.
- Fixed a bug in loadfontprefs().
- Some internal changes and minor bugfixes.
KNOWN BUGS
**********
- You can't delete the last item in table- and modulesprefs twice, If you try this
PNP hangs up. So if you want to delete the last two items you should delete the
second last one first.
- The cancel-buttons of the prefs-windows may course crashes.
- The event-win doesn't change it's size to fit the text in.
- You must choose a projectfile when starting PNP. The cancelbutton does not
work.
FUTURE PLANS
************
Plans:
- Clipbooard-support
- Start editor with the last edited text.
- better documentation (and in AmigaGuide format, in work now but will
take a while)
- some modules (e.g. a mapeditor, a charactergenerator, some modules for
prefs like AddEnemy)
- a better enemy generator. It should be able to run treasurefiles and to
roll the hit dice, etc.
REGISTRATION
************
PNP is SHAREWARE. The shareware version will quit after some minutes. No other
features are crippled. The author gives permission for the shareware version of
PNP to be freely distributed providing that no modification is made to the
original distribution.
If you want to register fill in the Registrationform and send it and the
shareware fee to the author. Please send international money orders,
eurocheques (both payable to Arne Koch) or cash.
No other method (e.g. other cheques) will be accepted. You will get a
keyfile that will be valid till the next major update and the latest version
of PNP if there is a later version than V0.98 .
V1.0 will NOT be a major update, so you can use your keyfile with this
version and some versions above.
Shareware fee:
DM 30.00
Ask your bank for the current exchange rate.
I will only accept DM, UK pounds, US Dollar or French Franc.
If you send eurocheques, the easiest way is to enter DM as currency.
NO OTHER CURRENCY will be accepted.
My address:
Arne Koch
Steenbeker Weg 12 Zi. 27
24106 Kiel
Germany
or (july to october):
Arne Koch
Karolinenstr.3
31655 Stadthagen
Germany
e-mail: stu30594@mail.uni-kiel.de
my bank account:
nr.: 481 976 470
blz: 255 500 01
Sparkasse Stadthagen