Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Kaiser

KSSC 1.0 released

Recommended Posts

KSSC (Kaiser's Strife Script Compiler) is a program that will finally allow users to make their own scripts for Strife. The script format is playable on all source ports including Zdoom and learning how to make scripts is very easy as well.

The zip file with binary and source files can be downloaded here

To compile a file, simply drag and drop your script on the exe and the program will output a file called NEWSCRIPT.lmp. Which should be placed on your main C:\ directory.

Tutorials and a sample script are included as well as precompiled scripts from Maps 1 and 2 in Strife.

So get busy making Strife maps...or something. :P

edit = posted new version here

Share this post


Link to post

Great. It's about time that such a thing is released. What a coincidence that I added some Strife dialog support to DECORATE just 2 days ago. ;)

Share this post


Link to post

Saucy.

I have a couple of suggestions to make:
1) Instead of creating a lump file named NEWSCRIPT.lmp, replace it with the input filename, but with the lmp extension.
2) Make it output to the directory the program resides in.

Other than that, it rocks.

Share this post


Link to post

It works like a charm! Now I can put NPC's in my Strife map!

1) Instead of creating a lump file named NEWSCRIPT.lmp, replace it with the input filename, but with the lmp extension.


I don't know about that one. If it completely replaced the original input file, then that would prevent any further editing of the script in the future.

Share this post


Link to post
insertwackynamehere said:

wow I'll have to try this! What exactly is different about Strife scripting?


Strife's scripting system is very similar to Hexen's Mapinfo lump, but instead defining a map, it defines the NPC's. And the script controls what the NPC says, the name, what item he drops when killed and also defines what kind of choices you can choose when replying to the NPC..

RTC_Marine said:

Saucy.

I have a couple of suggestions to make:
2) Make it output to the directory the program resides in.

Other than that, it rocks.


Thats what I am currently working on right now ;)

Share this post


Link to post
AgentSpork said:

I don't know about that one. If it completely replaced the original input file, then that would prevent any further editing of the script in the future.

I think he means that the script file "zomg.script" becomes "zomg.lmp".

Share this post


Link to post

UPDATE

KSSC 1.1 is released. The major fix is the output naming and directory. The output file will be named the same as your input file and will be generated where the input file is located.

KSSC 1.1

Share this post


Link to post

edit: never mind


p.s - cool shit kaiser. maybe i can finally finish the little episode i made for strife. i only had the communicator/logs stuff on the maps, but this is even better! :)

Share this post


Link to post
impClaw said:

cool stuff, though i dont have the strife enigene :(

back to ACS then...



ZDoom doesn't need Strife to run these dialog scripts. ;)

Share this post


Link to post

oh nice, well, the sample.wad didn't work. how do i make it do that? since i wanna see the strife npc scripts...

Share this post


Link to post

Warning, the tutorial in the readme text is uselesss now. I'll update it once I flatten out all the bugs in 1.2.

Link is here
http://home.houston.rr.com/svkaiser/Doom/Backup/KSSC1_2_beta.zip

Tutorial:

For those who don't know what Strife scripts are, they are binary lump files which is used to setup a NPC for dialogs and other stuff.

In scripts, they are stored as dialog blocks for a NPC, each NPC can have multible dialog blocks, and each block sets the text, name, choices etc for that NPC.


Each dialog block is divided into two sections: NPC info and Choice info. NPC info is used for the name, voice, panel, item thats droped, and dialog text for the NPC. While the Choice info describes the various choices, items to check/buy, and used to jump to the next dialog block.

When a NPC jumps to the next block, it displays another set of text/info for the NPC.

The big change to 1.2 is that users no longer have to enter tokens that they don't use, before for example, if a NPC doesn't have an item to drop, the user still had to enter the token DROP with a value of 0. In 1.2 its automatically counted as 0 if the user doesn't add this token. This saves time and allows the user to enter only the tokens that actually get used.

Here are some of the tokens you must specify in the script.
Basic stuff:
# - Comment
&& - Quote. Note, you don't have to use quotes for strings with no spaces
To make a blank string, add "&&"

NPC INFO
------------
MOBJ - Mobj ID for the NPC
DROP - Mobj ID of the item to drop when killed
IF_ITEM - Item to check
GOTO - Dialouge to jump to if IF_ITEM passes
NAME - Name of NPC (16 character limit)
VOICE - Voice file to play (8 character limit)
PANEL - Panel to display (8 character limit)
DIALOG - Text to display (320 character limit)

when you are done entering the values for the NPC info, you must add this token:
$END
This tells the compiler to gather the data and write it to the file.


CHOICE INFO
-------------
TEXT - Text for that choice (32 character limit)
GIVEMOBJ - The mobj ID item to give when the player selects this choice. If this isn't specified, the value will default to -1
IF_HAS - Item to check when selecting the choice

IF_HASAMOUNT - How many of that item in the inventory to check
YESTEXT - the text to display on the hud when choosing the choice. NOTE: if not specified the text will default to "You got the %!" To leave it blank, you must add "_". Don't use && (80 character limit)
LINK - Dialog block to jump after selecting the choice
NOTEXT - Text to display on hud if IF_HAS or IF_HASAMOUNT fails. Not specifying this will default to "No you don't have what I want for the %!" (80 character limit)

When done adding the values for the Choice info, add this token
$CHOICE
This tells the compiler to write the current data. Not using this token will cause the next Choice info to overwrite the previous the Choice info.

Note: you may add up to 5 Choice infos, just be sure to add the $CHOICE token after each Choice infos.

When done with the entire block, add the token $FINISH

Information about MOBJ ID
For those who want to know why you must use MOBJ IDs in the scripts, the oringinal Strife game was of course based on the oringinal C source of Doom2. There is a source file called info.c and info.h which contains a HUGE array of the things. Well, Strife used that array to identify what thing is scripted.

You can actually view the MOBJ ID for Doom if you use Dehacked (don't get this confused with DoomEDNum).


More infomation about the Strife script:
Its very strict, meaning you have to keep everthing in order, when you make a NPC with more than 1 dialog block, they all must follow each other, you can't have lets say a block for NPC#1 then a block for NPC#2 then another block for NPC#1 again. They all must follow like this NPC#1, NPC#1, NPC2 etc.

Each dialog block is EXACTLY 1.48kb, if the size varied, then the script won't work.

Here is an example script for Harris in map02: Town

#===================
#HARRIS block 1========
#===================
MOBJ 9
DROP 301
NAME HARRIS
VOICE HA001
PANEL M_PEAS1
DIALOG &I'M KINDA A TALENT BROKER FOR THE REBELS. A GUY WHO'S AS GOOD AS YOU COULD MAKE A LOT OF GOLD... IF YOU HOOKED UP WITH THE RIGHT PEOPLE.& #strings with spaces must be quoted..
$END

TEXT &I'M INTERESTED.&
YESTEXT _		#the slash tells the compiler (and Strife) that this is left blank. For yes text only.
LINK -3
$CHOICE

GIVEMOBJ 301
TEXT &SCREW THE REBELS!&
YESTEXT _		#Please note that you must always place the yestext or notext after the main choice text...
LINK -2
$CHOICE
$FINISH

#===================
#HARRIS block 2========
#===================
MOBJ 9
DROP 301
NAME HARRIS
VOICE HA002
PANEL M_PEAS1
DIALOG &NO, NO SECOND CHANCE.  OH GUARDS, KILL HIM.&
$END
$FINISH

#===================
#HARRIS block 3========
#===================
MOBJ 9
DROP 301
NAME HARRIS
VOICE HA003
PANEL M_PEAS1
DIALOG &GOOD CHOICE. THE ORDER'S SANCTUARY BY THE RIVER IS THEIR UNOFFICIAL TORTURE CHAMBER. HIDDEN INSIDE THERE'S A GOLDEN CHALICE. YOU SWIPE IT AND REAP YOUR REWARD.&
$END

GIVEMOBJ 194		#Crossbow
TEXT &HOW AM I SUPPOSED TO DO THAT?&
YESTEXT _
LINK -4
$CHOICE
$FINISH

#===================
#HARRIS block 4========
#===================
DIALOG &HERE'S A CROSSBOW, JUST AIM STRAIGHT AND --SPLAT--.   REMEMBER, GRAB THE FANCY CUP AND GET TO THE TAVERN.&
MOBJ 9
DROP 301
NAME HARRIS
VOICE HA004
PANEL M_PEAS1
$END

TEXT &COOL. I'll get it.&
YESTEXT _
LINK 5
$CHOICE
$FINISH

#===================
#HARRIS block 5========
#===================
MOBJ 9
DROP 305		#now a door token
IF_ITEM 174		#Check for chalice
GOTO 6
NAME HARRIS
VOICE HA006
PANEL M_PEAS1
DIALOG &WHAT ARE YOU WAITING FOR? BRING ME THAT CHALICE.&
$END
$FINISH

#===================
#HARRIS block 6========
#===================
MOBJ 9
NAME HARRIS
VOICE HA007
DROP 305
PANEL M_PEAS1
DIALOG &HEY, I KNOW, KINDA LOOKS LIKE A SET-UP. I WOULD NEVER DO THAT TO SUCH A GREAT KILLING MACHINE.  GOT THE ITEM? GREAT! NOW GET READY, GOLD AND GLORY JUST LIKE I PROMISED. TAKE THIS KEY AND THE GOVERNOR WILL REWARD YOU.&
$END


TEXT &HE'D BETTER. FOR YOUR SAKE!&	#bad choice
YESTEXT _
LINK -7
GIVEMOBJ 134
$CHOICE

TEXT &WHAT! WHERE'S MY MONEY?&
YESTEXT _
LINK -8
$CHOICE
$FINISH

#===================
#HARRIS block 7========
#===================
DROP 301
MOBJ 9
NAME HARRIS
VOICE HATBL
PANEL M_PEAS1
DIALOG &GET LOST KID, YOU BOTHER ME.&
$END
$FINISH

#===================
#HARRIS block 8========
#===================
MOBJ 9
DROP 305		#door token
NAME HARRIS
VOICE HA002
PANEL M_PEAS1
DIALOG &NO, NO SECOND CHANCE.  OH GUARDS, KILL HIM.&
$END
$FINISH
Also I am sure Doom can do this to in zdoom (haven't messed with declorate yet, so I can't give a full answer on that).
This is a beta, so for those who still have KSSC, make a backup of that exe.

Have fun...or something..

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×