Level Editing: Scripting

Talk about Severance Blade of Darkness modifications and maps here. No tips or tech support questions please, use the forum above. Note that the game is rated 18 so some content may be unsuitable for younger readers.

Moderators: prospero, Ade

Post Reply
User avatar
prospero
Ancient Dragon
Posts: 1757
Joined: Wed Nov 21, 2001 1:42 am
Location: United Kingdom

Post by prospero »

Sargon

How exactly have you written the code for to enable the savegame/F1?


The code in FII is very untidy.[:I] It is hard to find the parts of the code. I have learned better habits since.[8)] But the part that sets the Player life after the attack is done from a function that is executed after the opening fight. Btw. The Player char that you see in the opening scene is not the actual Player. He/she is an NPC stuntman.

Sargon
Hatchling
Posts: 5
Joined: Fri May 05, 2006 12:16 pm

Post by Sargon »

stuntman? I like this idea.Maybe I will use him/her too [8D]

Saving
I just writed to defFuncs.py what you writed there.
import GameText
GameText.MapList["Awakening"] = ["awakening"]

I couldnt make player health because of unknown reason or reasons.I dont think so it is so needed.so I'll continue on my way without that..

User avatar
prospero
Ancient Dragon
Posts: 1757
Joined: Wed Nov 21, 2001 1:42 am
Location: United Kingdom

Post by prospero »

OK.

The savegame code should be:

GameText.MapList["AWAKENING"] = ["awakening"]

All letters in first [] must be UPPERCASE

The second [] should be exactly the name of the map folder. [;)]

brian
Dragon
Posts: 107
Joined: Tue Mar 05, 2002 9:51 pm
Location: Australia

Post by brian »

Now I know why my savegame wasn't working...

User avatar
prospero
Ancient Dragon
Posts: 1757
Joined: Wed Nov 21, 2001 1:42 am
Location: United Kingdom

Post by prospero »

Yes [:D]

Just this moment seen it......

GameText.MapList ['NEMRUTBYNIGHT'] = 'NemrutbyNight'

Sargon
Hatchling
Posts: 5
Joined: Fri May 05, 2006 12:16 pm

Post by Sargon »

I must rest[xx(] after 5-6 hours learning the tuts and applying them continuous I though I writed 'AWAKENING' here.I mean I already writed like you say.otherwise I couldnt able to say "save is normal" in one of my past messages.So still no solution for that[|)].Anyway pillow is calling me,a few hours later 'awake' me[:D]...

User avatar
prospero
Ancient Dragon
Posts: 1757
Joined: Wed Nov 21, 2001 1:42 am
Location: United Kingdom

Post by prospero »

[:D] Even more painless way to install new 3d Models.[:D]

This method was discovered by <b>Vasja</b> and does away with any writing to the BodLink.list.[8D]

Follow the method above until Step 4. Then instead of adding the the blocks of code for each object, make another file: InitNewChars.py (name not critical) with this content:

Code: Select all

import BBLibc


# Load Bods

BBLibc.LoadBOD("..\\..\\3DObjs\\AnimalClaw.BOD") 
BBLibc.ReadBOD("..\\..\\3DObjs\\AnimalClaw.BOD")

BBLibc.LoadBOD("..\\..\\3DChars\\BigCat_A.BOD") 
BBLibc.ReadBOD("..\\..\\3DChars\\BigCat_A.BOD")

BBLibc.LoadBOD("..\\..\\3DChars\\Enano7.BOD") 
BBLibc.ReadBOD("..\\..\\3DChars\\Enano7.BOD")
# and so on for each obj/char 
This file should be exec'd from cfg.py before BladeInit.py:

Code: Select all

execfile("..\\..\\Scripts\sys_init.py")
Bladex.ReadLevel("WizardsDomain.lvl")
execfile("InitNewChars.py")# just here
execfile("..\\..\\Scripts\BladeInit.py")
For savegame integrity this file should be exec'd from file ActorInit.py.

User avatar
Trinitron
Dragon
Posts: 307
Joined: Sat Jul 12, 2008 5:53 pm
Location: Russia

Post by Trinitron »

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote"><i>Originally posted by prospero</i>
Btw, I made a little map if you are having some trouble with the code: Click Here
Just put it in your ..\..\BODLoader\Maps folder and install it from Blade.<hr height="1" noshade id="quote"></font id="quote"></blockquote id="quote">

Hi prospero.

You can, please, reup this starting map with a trap?
A link has dead.

User avatar
Trinitron
Dragon
Posts: 307
Joined: Sat Jul 12, 2008 5:53 pm
Location: Russia

Post by Trinitron »

No reply?[B)]

I only today have started the tests of a map and new characters on her (that were used in maps prosperoarena1, prosperoarena3.) For a sample I have taken a map prosperoarena1. I now want to make, that at me this of fashions would be as 'Mod', instead of 'Map'. That I for this purpose made:

Has copied a directory of game in folder BODLoader/Mods and has named it 'TMap_test'.

In it has placed the following files (a map the most simple, - a room about four walls, a ceiling in view of the sky with reflection):




Code: Select all

NUFiles #Folder
TMap_testMenu #Folder
To3DChars #Folder
ActorsInit.py
Blade_progress.jpg
BLModInfo.py
BLModInit.py
cfg.py
enemigos.py
InitNewChars.py
Unstallnewstuff.py
pj.py
Tmap_test.bw
TMaps_test.lvl
TMap_test.mmp
Volcano_M14_d.mmp




I have switched on there file NPCAllyEnemies. I start game, call in Mods-> Setup and there does not have a bookmark with the offer on start of my map. What reasons in it can be?

Maintenance BLModInfo.py:





Code: Select all

global ModName
global ModDesc
global ModVersion
global ModAuthor
global ModAuthorInfo
global NewFiles
global RepFiles
global MakeDirs


# Mod Name
ModName          = "TMap_test"
# Mod Description
import Language
if Language.Current == 'Spanish':
	ModDesc = (
		"""My demo little map for testing new enemies."""
		)
else:
	ModDesc = (
		"""My demo little map for testing new enemies."""
		)

# Mod Version
ModVersion       = "0.1a"
# Author name
ModAuthor        = "TrinitronInc"
# Author info: email, url,...
ModAuthorInfo    = "[email protected]"


# Make new directories

MakeDirs = ['../TMap_test', 
	    '../TMap_test/NUFiles',
	    '../TMap_test/NUFiles/NUNWNGolemStuff',
          

# New Files added by Mod and destination directory


NewFiles[0]      = {'File': 'pj.py'                                       ,	'Dest': '../TMaps_test'}
NewFiles[1]      = {'File': 'DefFuncs.py'                                 ,	'Dest': '../TMaps_test'}
NewFiles[2]      = {'File': 'cfg.py'                                      ,	'Dest': '../TMaps_test'}
NewFiles[3]      = {'File': 'TMaps_test.lvl'                          ,     'Dest': '../TMaps_test'}
NewFiles[5]      = {'File': 'TMap_test.bw'                           ,     'Dest': '../TMaps_test'}
NewFiles[6]     = {'File': 'enemigos.py'                                      ,      'Dest': '../TMaps_test'}
NewFiles[7]     = {'File': 'MusicEvents.py'                                   ,      'Dest': '../TMaps_test'}
NewFiles[8]     = {'File': 'TMaps_testMenu/TMaps_testMenu.py'         ,      'Dest': '../../Scripts'}
NewFiles[9]     = {'File': 'TMaps_testMenu/TMaps_testMenu.bmp'        ,      'Dest': '../TMaps_test'}
NewFiles[10]     = {'File': 'ActorsInit.py'                              ,	'Dest': '../TMaps_test'}
NewFiles[11]     = {'File': 'InitNewChars.py'                            ,      'Dest': '../TMaps_test'}
NewFiles[12]     = {'File': 'NUFiles/EnemyNPCTypes.py'                             ,      'Dest': '../ProsperoArena1/NUFiles'}
NewFiles[13]     = {'File': 'NUFiles/NUNWNGolemStuff/NWNgolem.mmp'               ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[14]     = {'File': 'NUFiles/NUNWNGolemStuff/JewelGolemIcon.bmp'         ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[15]     = {'File': 'NUFiles/NUNWNGolemStuff/JewelGolemData.py'          ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[16]     = {'File': 'NUFiles/NUNWNGolemStuff/JewelGolemStats.py'         ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[17]     = {'File': 'NUFiles/NUNWNGolemStuff/JewelGolemAnm_def.py'       ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[18]     = {'File': 'NUFiles/NUNWNGolemStuff/JewelGolemCombos.py'        ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[19]     = {'File': 'NUFiles/NUNWNGolemStuff/JewelGolemAnimationSet.py'  ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[20]     = {'File': 'NUFiles/NUNWNGolemStuff/JewelGolemBAct.py'          ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[21]    = {'File': 'NUFiles/NUNWNGolemStuff/IWweps.mmp'                    ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[22]    = {'File': 'NUFiles/NUNWNGolemStuff/AmGolemIcon.bmp'                    ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[23]     = {'File': 'NUFiles/NUNWNGolemStuff/AnmFactJewelGolem.py'       ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[24]     = {'File': 'NUFiles/NUNWNGolemStuff/AniSoundJewelGolem.py'      ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[25]     = {'File': 'NUFiles/NUNWNGolemStuff/AniSoundJewelGolemX.py'     ,      'Dest': '../TMap_test/NUFiles/NUNWNGolemStuff'}
NewFiles[26]    = {'File': 'Volcano_M14_d.mmp'                                 ,     'Dest': '../TMap_test'}
NewFiles[27]    = {'File': 'TMap_test.mmp'                                 ,     'Dest': '../TMap_test'}


inststuff=0

if inststuff==0:
	execfile("../../BODLoader/Mods/TMap_test/Installnewstuff.py")
      	instuff=1





And maintenance BLModInit.py:




Code: Select all

import TMap_testMenu
global ModMenu
ModMenu = TMap_testMenu.ModMenu


What problems, not necessarily here can be, but on what I should pay attention first?[:0]

I certainly can result the maintenance of all other files (it not big as I want test only one opponent - 'AmethystJewelGolem'.) Whether Stands? I want to understand, how it is possible to use opponents through 'EnemyNPCTypes'.

This file at me is established in:

Code: Select all

C:\Codemasters\Blade of Darkness\BODLoader\Mods\TMap_test\NUFiles\EnemyNPCTypes.py

User avatar
prospero
Ancient Dragon
Posts: 1757
Joined: Wed Nov 21, 2001 1:42 am
Location: United Kingdom

Post by prospero »

Hi Trinitron. Sorry for late reply.[B)]

If the Mod does not show in the menu options, the problem will be in either the Installnewstuff.py file or the BLModInfo file itself. Don't be too discouraged as I usually get this every time I make a new Mod. I notice that in your list of files you have 'Unstallnewstuff.py'. This may be a typo error in the post, but the real file must be 'Installnewstuff.py'.

Quickest way to make a brand new mod is to copy the whole of ProsperoArena1.

Rename the folder to your own map name. Then go though all the files and where it says 'ProsperoArena1', replace with your map name. In the ****.lvl file, you can edit so it loads your own ****.bw file, or any existing ones in the game. Also load whatever skydome you want. The objects and enemies will be in the wrong places, so you can delete all these, but keep the files so you can add your own in the right places. Also delete all the stuff in DefFuncs.py execept for the code that enebles the travel book and save game.
GameText.MapList ['MAPNAME'] = 'MapName'.

Also delete any door and trigger sector code.

If you have any probs you just can't sort out, mail me the whole map. I am very good at finding bugs as I make so many mistakes.[:I]

User avatar
Trinitron
Dragon
Posts: 307
Joined: Sat Jul 12, 2008 5:53 pm
Location: Russia

Post by Trinitron »

Hi prospero.[8)]

I have sent you the card on yours email - [email protected]

I Will look forward to hearing also thanks for the help.

User avatar
prospero
Ancient Dragon
Posts: 1757
Joined: Wed Nov 21, 2001 1:42 am
Location: United Kingdom

Post by prospero »

Hi Trinitron.

Got the map OK. Haven't tried running it yet, but at a quick look though the files I see the problem with installation. The NewFiles index must run numerically with no gaps.... e.g.

NewFiles[0]
NewFiles[1]
NewFiles[2]
NewFiles[3]
and so on........


If you remove some lines from the list you must re-number them.

I'll check to see if it works later.....[:D]

User avatar
Trinitron
Dragon
Posts: 307
Joined: Sat Jul 12, 2008 5:53 pm
Location: Russia

Post by Trinitron »

I have forgotten to change numbering of lines, but when I did it earlier, numbered all of them successively, at me nothing all turned out exactly.

As I did not correct AllyNPCTypes.py, EnemyNPCTypes.py, WeaponTypes.py in folder NUFiles as for me it is still difficult. Look email, I there have written what problems at me about it as a whole.

** I have numbered them all one after another now, but effect same.

User avatar
prospero
Ancient Dragon
Posts: 1757
Joined: Wed Nov 21, 2001 1:42 am
Location: United Kingdom

Post by prospero »

Check TMap_testMenu folder. [8)]

TMap_tesMenu.py
TMap_tesMenu.bmp

There is a 't' missing. I renamed the files

TMap_testMenu.py
TMap_testMenu.bmp

and the map installs and loads.[:D]

If I get a chance tonight, I will take out all unwanted code and just leave the Black Knight.

There is a lot of Python documentation on the web, but they are not all that useful for BOD stuff. Python is used in a lot of applications, so most code you don't need to know. Best way to learn is to do a few simple scripts and you start to get an idea of how it works.

btw. I have the .mp of DQII. Crazydwarf did a lot of work on it, although not completed. No storyline though. I have been using it as a demo map.

User avatar
Trinitron
Dragon
Posts: 307
Joined: Sat Jul 12, 2008 5:53 pm
Location: Russia

Post by Trinitron »

Hi prospero.[8)]

THX for the information. Tonight I shall check up. About the Python.
I have link to the python in Russian, but I do not think, what is it will help be relative BOD.

It would be good, if you will remove a superfluous code, and will leave only VBK. A second day as has renewed the jobs concerning a test - map. A lot of time has lead, what only to make on one of floor of a different sort ledges.
I have noticed a certain feature.
When I have created two floors, on a ground floor I have made a floor between floors, a platform high. And so, walls of this platform (that are on the second a floor of a ground floor), one of these walls has given a glitch in which course it has turned out the following:

Image

Apparently, on the middle there is no this wall:

Image

But then I have understood, having removed some walls. After that this glitch has disappeared. Because of what there can be this incident?

--------------------------------------------------

About .mp DWII. YOU certainly cannot give this file to me for the further studying an internal material? Or only with a permission of the author though I think neither that nor another and if I am mistaken....[B)]

Post Reply