Jump to content


Photo

Questions about baldur.bcs entries


  • Please log in to reply
3 replies to this topic

#1 Kai Hohiro

Kai Hohiro
  • Member
  • 69 posts

Posted 28 November 2007 - 08:01 AM

Hello,

I've just started to encounter to the infamous stuttering bug. However by cleaning up my baldur.bcs I was able to fix it.
Especially removing all my CtB entries helped ALOT.

Now I'm trying to figure out what other mods flood the baldur.bcs so I can avoid them in my mega install(or atleast remove certain entries from the baldur.bcs).
Here are some entries that appear pretty often, I was wondering if anyone could tell me what mods cause them?

IF
Kit(Player1,GODTALOS)
HasItem("CDHLYSYM",Player1) // No such index
THEN
RESPONSE #100
ApplySpellRES("CDHLYSY2",Player1) // Can't I have a... err... private drink without being interr...er...upted? (hiccup)
TakeItemReplace("BELT14","CDHLYSYM",Player1) // No such index
END

Tons of these entries like that with GODTALOS, GODHELM, etc...

IF
Kit(Player1,FHKENSAI)
Class(Player1,MAGE)
THEN
RESPONSE #100
ActionOverride(Player1,AddKit(FHKENSAItF))
END

Again lots of entries, but different Kits like Kensai, berserker, specialist mages, etc.... Also there are some entries with m#ambkit, what is that?

IF
LevelGT("Valygar",20)
HasItem("LI%NPSW04A","Valygar")
THEN
RESPONSE #100
TakeItemReplace("LI%NPSW04A","LI%NPSW04B","Valygar")

Only a few of these entries, however when I try to compile baldur.bcs I get an error message from these lines that NPSWXXX is missing.

IF
!Global("KuroiSpawn","GLOBAL",2)
!Difficulty(EASIEST)
OR(6)
HasItemEquiped("solak1",Player1) // Kuroisan
HasItemEquiped("solak1",Player2) // Kuroisan
HasItemEquiped("solak1",Player3) // Kuroisan
HasItemEquiped("solak1",Player4) // Kuroisan
HasItemEquiped("solak1",Player5) // Kuroisan
HasItemEquiped("solak1",Player6) // Kuroisan
THEN
RESPONSE #100
SetGlobal("KuroiSpawn","GLOBAL",2)
END

lots of entries with Kuroispawn, what is that?

F
GlobalTimerExpired("MeetHiggin","GLOBAL")
Global("MeckComesFirst","GLOBAL",0)
!Global("Chapter","GLOBAL",4)
!Global("Chapter","GLOBAL",5)
!Global("Chapter","GLOBAL",7)
!AreaCheck("AR2000")
Global("BardPlot1","GLOBAL",0)
AreaType(CITY)
OR(3)
AreaType(OUTDOOR)
AreaCheck("AR0522")
AreaCheck("AR0511")
THEN
RESPONSE #100
SetGlobal("MeckComesFirst","GLOBAL",1)
CreateCreatureObjectOffScreen("bdgoph01",Player1,0,0,0) // Meck
END

Who's Higgin? And why do I have so many entries with the Meethiggin global?

IF
HasItemEquiped("DDves01",Player6) // Blade of Sandglass
!Name("vesine",Player6)
THEN
RESPONSE #100
ActionOverride(Player6,DropItem("DDves01",[-1.-1])) // Blade of Sandglass
ActionOverride(Player6,PickUpItem("DDves01")) // Blade of Sandglass
ApplyDamage(Player6,15,ELECTRICITY)
ApplyDamage(Player6,5,COLD)
END


This is obviously the Darkest Day, would removing these entries break anything important(except for the Blade of Sandglass). I havent played the mod so I dont know how important it is...


Thanks in advance for any help!

Attached Files

  • Attached File  WeiDU.log   26.93K   174 downloads
  • Attached File  bcs.txt   355.54K   322 downloads

Edited by Kai Hohiro, 28 November 2007 - 08:01 AM.


#2 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 28 November 2007 - 09:19 AM

You really are better off not installing mods that add to baldur.bcs than you are by deleting stuff from it. You're likely to have all kinds of problems later.

And not all mods that add to baldur.bcs do so irresponsibly. If check variables are used very carefully, these blocks will be skipped every pass they are not intended to fire.

One of my Romantic Encounter entries included a couple carefully scripted entries to it, and I've got another mod in the works that adds a few more. Note that all of these include rigorous checks to prevent these script blocks from firing more than once, at a very specific time. For example, look at the following block.

IF
  Global("BAidanDiagott","GLOBAL",1)
  PartyHasItem("B!AMACE")
  Global("B!AidanHasMace","GLOBAL",0)
THEN
  RESPONSE #100
	SetGlobal("BAidanDiagott","GLOBAL",2)
	SetGlobal("B!AidanDelayTalk","GLOBAL",1)
	SetGlobal("B!AidanHasMace","GLOBAL",1)
END
The first line contains a variable check that is set during the course of an interjection. This block will fire once, and once only. It will not run on every pass through the script, as the block is skipped right up until the time when this script block fires, and it's skipped each time after that by the check variable.

Now consider this timer expiry block. The timer is set elsewhere, in a recurring non-joinable NPC script. I would have liked to have the whole thing run in that NPC's script, but it does a DestroySelf() immediately after speaking, so that's impossible. And I can't stick it in dplayer3.bcs, because I don't want to depend on the AI button being on for the mod to work. I can already see the bug reports.

Please note, however, that this script block will not be accessed unless the timer has expired, and it will not be accessed again until the next time the timer expires. It's all because the check variables are placed so close to the IF.
IF
  GlobalTimerExpired("B!AidanTime","GLOBAL")
  Time(MIDNIGHT)
  Global("B!AidanBaldurBCSCheck","GLOBAL"0)
  GlobalGT("B!AidanFriend","GLOBAL",0)
  !Global("B!AidanFriend","GLOBAL",3)
  !Global("B!NoVisit","GLOBAL",1)
  !Global("B!AidanDelayTalk","GLOBAL",1)
  !StateCheck(Player1,CD_STATE_NOTVALID)
  CombatCounter(0)
  OR(10)
	Global("B!AidanTalk","GLOBAL",1)
	Global("B!AidanTalk","GLOBAL",3)
	Global("B!AidanTalk","GLOBAL",5)
	Global("B!AidanTalk","GLOBAL",7)
	Global("B!AidanTalk","GLOBAL",9)
	Global("B!AidanTalk","GLOBAL",11)
	Global("B!AidanTalk","GLOBAL",13)
	Global("B!AidanTalk","GLOBAL",15)
	Global("B!AidanTalk","GLOBAL",17)
	Global("B!AidanTalk","GLOBAL",19)
THEN
  RESPONSE #100
	IncrementGlobal("B!AidanTalk","GLOBAL",1)
	PlaySound("BAIDAN01")
	SetGlobal("B!AidanBaldurBCSCheck","GLOBAL",1)
	CreateCreatureObjectOffset("B!Aidan",Player1,[50.50])
END

Edit: Heh. Good thing I checked this again. Spotted a coding error.

Edited by berelinde, 28 November 2007 - 09:48 AM.

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#3 Bloodtitan

Bloodtitan
  • Member
  • 406 posts

Posted 28 November 2007 - 09:44 AM

kuroispawn is kuroisan the acid kensai. a tough encounter should you manage to get either malakar+2 or celestial fury+3/+5. special katanas all of them. for me this mod/script never did any harm and once you encounter kuroisan it's all over anyways (this or that way ;) ).

#4 Kai Hohiro

Kai Hohiro
  • Member
  • 69 posts

Posted 28 November 2007 - 11:50 AM

You really are better off not installing mods that add to baldur.bcs than you are by deleting stuff from it. You're likely to have all kinds of problems later.

And not all mods that add to baldur.bcs do so irresponsibly. If check variables are used very carefully, these blocks will be skipped every pass they are not intended to fire.

One of my Romantic Encounter entries included a couple carefully scripted entries to it, and I've got another mod in the works that adds a few more. Note that all of these include rigorous checks to prevent these script blocks from firing more than once, at a very specific time. For example, look at the following block...


Quite true, I would rather not install a mod at all then mess with the baldur.bcs entries, but I think I can remove non essential entries like talking swords, without wrecking everything.
I'm just gonna try to keep my baldur.bcs as small as possible, until I'm more versed in BG scripting and can figure out what scripts cause trouble by myself.
But you BG modders seriously have my respect, modding in Oblivion is like Kindergarden compared to this...


kuroispawn is kuroisan the acid kensai. a tough encounter should you manage to get either malakar+2 or celestial fury+3/+5. special katanas all of them. for me this mod/script never did any harm and once you encounter kuroisan it's all over anyways (this or that way wink.gif ).


Thanks a bunch for helping me identify that!.