.sch files, DifficultyInfo thoughts, running an FM. - by d'Spair
sk2k on 1/3/2005 at 08:21
Hi,
ok, your method with the entry map works. I only had a single map for my mission and no autosave was created, so a restart was not possible.
But how the hell can i get my briefing text to be shown when i restart my map?
Only the castle briefing will be displayed. =/
I changed the EnterMissionInfoCastle properties but there are two sets of these properties.
One has properties that you can't change (castle.txt, br02, etc.) and the other one where you can put in your properties. Looks like that only the first set is used.
Or how do you managed to show the correct briefing? Maybe i'm blind. :)
MfG
Petronius
d'Spair on 1/3/2005 at 12:57
Quote Posted by sk2k
Hi,
ok, your method with the entry map works. I only had a single map for my mission and no autosave was created, so a restart was not possible.
Does it work now? You should successfully restart your mission if you're using the method with the Entry map.
Quote Posted by sk2k
But how the hell can i get my briefing text to be shown when i restart my map?
Only the castle briefing will be displayed. =/
I changed the EnterMissionInfoCastle properties but there are two sets of these properties.
One has properties that you can't change (castle.txt, br02, etc.) and the other one where you can put in your properties. Looks like that only the first set is used.
Or how do you managed to show the correct briefing? Maybe i'm blind. :)
MfG
Petronius
Make sure you have "Show Non-local props" option enabled (in the bottom of the Properties window).
Both "EnterMissionBriefingFileName" and "EnterMissionVisibleObjectivesFileName" should be set to "[your_mission_name].txt". At least it works for me.
Have you created the actual text file with the briefing text? Go to Thief3\CONTENT\T3\Books\English\Briefings and create a file [your_mission_name].sch (Bank.sch in our example). Try to add this text to the file:
VERSION 2.0
TextEntry
Bank
lang_english 2004-02-20 21:36:00 "<font=Papyrus14><dc=97,80,109>\nBank Briefing"
lang_french 2004-04-22 14:52:42 "<font=Papyrus14><dc=97,80,109>\nBank Briefing"
lang_german 2004-04-29 11:40:37 "<font=Papyrus14><dc=97,80,109>\nBank Briefing"
lang_italian 2004-04-23 16:18:39 "<font=Papyrus14><dc=97,80,109>\nBank Briefing"
sk2k on 1/3/2005 at 15:41
Thanks! It works now. :)
MfG
Petronius
d'Spair on 1/3/2005 at 18:12
I have nearly solved the puzzle. Damn, it toolk me MUCH time.
First of all, in order to get texts for ALL objectives (including those objectives that come with difficulty levels), we have to modify some conversations. Go to Conversations browser and open the PlayerGarrett branch. In some of those conversations, you have to add "Bank" to the list of the Usage missions listed there (you should know how to do this if you have already set up your own "objective conversations"). Now in Usage folder, you should have 11 missions listed: 10 OMs and the one you have added ("Bank" in our example).
Here is the list of the conversations you have to modify this way (LOTS):
DontBlackjackNonComb
DontKillNonComb
LootPercent
MaxBlackjack
MaxBlackjack0
MaxBlackjack1
MaxCorpsesFound
MaxCorpsesFound0
MaxCorpsesFound1
MaxDetected
MaxDetected0
MaxDetected1
MaxKill
MaxKill0
MaxKill1
MinBlackjack
MinBlackjack1
SpecialLoot
SpecialLoot1
TimeLimit.
Oh yeah, finally. Now you should have proper texts for all your difficulty related objectives. Don't forget to Save\Compile\Export!
But some of your objectives won't work, actually. Getting loot ingame won't increase the amount of loot you have. Here's what you have to do:
Make a script with those parameters:
CONDITIONS:
- When map starts, arriving from a different map
ACTIONS
- Set [sta_loottotal] to [x],
where x is the total amount of loot you can get in your mission. Yes, this is odd, but you have to count the total number yourself, there is no inside mechanism that will do it for you. Anyway, right now you can enter any number just to make sure that your objective works.
Save scripts. Now add this script to your StartingPoint and go test it. Now you should be able to collect loot and see percentage. When you get some amount of loot (depends on difficulty level), your Loot objective should turn complete.
In order to make an object Special Loot, give it the "CurrentSpecialLoot" script).
Finally, we have to set the Exit Mission system. Let's make a "Get out of the place" objective. Create a volume somewhere on your level. Make an objective that turns completed when a player gets inside this volume (see above posts - you have to make a TriggerScript link from DiffiucltyInfo actor to the volume with some script put onto DifficultyInfo, I explained this earlier).
Now create another script:
CONDITIONS:
- Logic [AND] Operator
-- When linked volume(s) [MYSELF] are breached by [Category_Player]
-- Query if all goals are completed or cancelled, exclude hidden [TRUE]? include 'do last' goals [FALSE]?
ACTIONS:
- End Mission [TRUE] successfully.
Add this script to the volume.
Save the script, rebuild everything and go test it. Now the mission should end when you have completed all your goals.
Well, only one problem left: the objectives don't work properly when the player moves between maps, I gotta fix that. Wait for updates. Looking forward to reading your comments.
p.s. David, GBM, Ulukai? Don't you want to comment on this? ;) This work is bloody difficult without experts' help:)
d'Spair on 1/3/2005 at 19:28
Here it is, the last piece of this bloody damn puzzle.
You have to put Actor > Marker > DifficultyAIMap2 somewhere in all your maps except the starting map (in our example it should be Bank2 and Bank3, you DON'T have to put this actor in Bank1).
Everything works perfectly now. FINALLY. Sleepless nights seem to be over:) :angel: :angel:
I'm going to write a complete and more detailed tutorial on all those things discussed in this topic right when I finish exploring the inventory system. Thanks to everyone who replied and shame on those who didn't ;)
darkcosmos on 1/3/2005 at 19:36
Quote Posted by d'Spair
Thanks to everyone who replied and shame on those who didn't ;)
You're just so far ahead of my own fumbling with the editor right now, I can't even get my head around it! I'm sure when I catch up to you in a few weeks I'll be singing your praises for hammering all this out! :thumb:
d'Spair on 1/3/2005 at 20:56
On inventory:
David's tutorial won't help, if we launch our map via the "New Game" button. Anyway, read his tut first to get some info.
Done? Now you have to know this:
We have to add inventory items not to LevelInfo, but to Properties > EnterMissionInfo > EnterMissionDefaultInventory of the EnterMissionInfo actor in the Entry map. There are already 10 water arrows, a blackjack and a dagger. You may left them where they are, or you may delete them, or may modify the number of water arrows, add new arrows and things etc.
It's quite easy.
The Grand Tutorial is on its way! :thumb:
rujuro on 1/3/2005 at 21:20
Excellent work d'Spair, really impressive. Thanks for the great contributions! :thumb:
d'Spair on 1/3/2005 at 21:28
Quote Posted by rujuro
Excellent work d'Spair, really impressive. Thanks for the great contributions! :thumb:
Thanks. When I complete my tutorial, I hope it will be more understandable for all FM autors.
Actually, messing with scripts and objectives have always been the most interesting part for me, so I simply couldn't stop until I found how it works:)
I will also need someone to check and correct my English :erg: If it's OK with my Internet connection, I'll post the tutorials in a few hours.
rujuro on 1/3/2005 at 21:44
I have been similarly obsessed, but more regarding adding custom actors/inventory items in order to get new functionality in the game. If I'm lucky maybe you'll turn your attention that way next, as it seems a little complicated.
(although I was able to make the bow a light sourse, which was pretty cool, kind of like carrying a lamp around when you had an arrow equipped, was really hoping to get a torch in by leveraging that functionality)