Post reply

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.
Name:
Email:
Subject:
Message icon:

Verification:
Type the letters shown in the picture
Listen to the letters / Request another image

Type the letters shown in the picture:
What color is grass?:
What is the seventh word in this sentence?:
What is five minus two (use the full word)?:

shortcuts: hit alt+s to submit/post or alt+p to preview


Topic Summary

Posted by: Kulyok
« on: February 16, 2008, 03:00:25 AM »

Quote
"Always use X, Y, Z, and bikinis" seems to be a rather one-sided, biased way to do modding.

You said it, not me. :)
Posted by: Ascension64
« on: February 16, 2008, 02:29:05 AM »

OK, you've lost me now.
Posted by: Kulyok
« on: February 16, 2008, 01:55:19 AM »

This is very true. I'm very biased towards making working and compatible mods.

Hmm... I sense a new custom title...
Posted by: CamDawg
« on: February 15, 2008, 07:46:00 PM »

Why not be just black or just white and use the appropriate EXTEND_* as is expedient to the situation? "Always use X, Y, Z, and bikinis" seems to be a rather one-sided, biased way to do modding.
I find your ideas intriguing and would like to subscribe to your newsletter.
Posted by: Ascension64
« on: February 15, 2008, 06:14:17 PM »

Interesting read, but I don't get the 'criminally biased' part of it. For what it's worth, it appears to be a rather aureate but impartial history of IE modding...and could have been an IM entry.

My take on EXTEND_* is:

EXTEND_BOTTOM (of Lawful alignment): You are at the mercy of the EXTEND_TOP gods, who may one day be benelovent and do not f* up, or on other days be fascist and f* you over and over, and on the lucky days be knotted in their brain and absent-mindedly f* up. Whatever happens, you'll work it out when your forum brims with bug reports of objects not appearing in areas.

EXTEND_TOP (of Neutral or Evil alignment): You can censor any mods that you wish your mod to be incompatible with by deliberately f*ing up. You may snigger when 5 years after your mod is released, someone finds out. You proceed to justify your actions as legacy code from the crappy impotent old days of WeiDU and the prevailing modding maxims of the ancient.
Posted by: jcompton
« on: February 15, 2008, 04:04:38 PM »

a rather one-sided, biased way to do modding.

Did somebody say biased modding?

Anyway, the scripting EXTEND_TOP vs. EXTEND_BOTTOM question is easy enough to sum up:

EXTEND_BOTTOM: Anybody from Bioware to Interplay to Sikret can fuck you up.

EXTEND_TOP: It is imperative that you not fuck up.
Posted by: Ascension64
« on: February 15, 2008, 03:56:36 PM »

Why not be just black or just white and use the appropriate EXTEND_* as is expedient to the situation? "Always use X, Y, Z, and bikinis" seems to be a rather one-sided, biased way to do modding.
Posted by: Kulyok
« on: February 15, 2008, 03:04:35 PM »

Thank you for showing me. I'd gladly use it if it were critical for IWD NPC, but, fortunately, it's not, so I'd rather leave it to IWD Tweaks.

It proves my point, though: my script will still be screwed if I use EXTEND_BOTTOM(as I use !Global("PUZZLE_A_DISABLED","GLOBAL",0) condition, and the new block will set it to 0 at once), but with EXTEND_TOP and Continue() it's fine and dandy.
Posted by: CamDawg
« on: February 15, 2008, 02:41:50 PM »

Here's your fix, if you want it:

Code: [Select]
ACTION_IF NOT FILE_EXISTS_IN_GAME ~ar9100.are~ THEN BEGIN

  // stop cockblocking the script - no or() without how
  COPY_EXISTING ~ar6010.bcs~ ~override~
    DECOMPILE_BCS_TO_BAF
      REPLACE_TEXTUALLY ~True()~ ~False()~
      APPEND_FILE ~g3daletweaks/baf/ar6010.baf~
    COMPILE_BAF_TO_BCS
    BUT_ONLY_IF_IT_CHANGES

END ELSE BEGIN

  // stop cockblocking the script
  COPY_EXISTING ~ar6010.bcs~ ~override~
    DECOMPILE_BCS_TO_BAF
      REPLACE_TEXTUALLY ~True()~
        ~OR(3) !Global("AR6010_PLAY_SOUND","GLOBAL",0) !Global("PUZZLE_B_DISABLED","GLOBAL",0) !Global("PUZZLE_A_DISABLED","GLOBAL",0)~
    COMPILE_BAF_TO_BCS
    BUT_ONLY_IF_IT_CHANGES

END

ar6010.baf
Code: [Select]
IF
  !Global("AR6010_PLAY_SOUND","GLOBAL",0)
THEN
  RESPONSE #100
    SetGlobal("AR6010_PLAY_SOUND","GLOBAL",0)
END

IF
  !Global("PUZZLE_A_DISABLED","GLOBAL",0)
THEN
  RESPONSE #100
    SetGlobal("PUZZLE_A_DISABLED","GLOBAL",0)
END

IF
  !Global("PUZZLE_B_DISABLED","GLOBAL",0)
THEN
  RESPONSE #100
    SetGlobal("PUZZLE_B_DISABLED","GLOBAL",0)
END
Posted by: CamDawg
« on: February 15, 2008, 02:18:41 PM »

It seems that the developers didn't foresee the case of expansions, either: a "Return to Loneliwood" block(and an OnCreation()) block are situated right under the faulty True() block. Granted, they don't make the weather, but it still falls further than "not perfect" category, ending up somewhere between "forgetful", "moronic", "graduated from MSU/Lumumba" and "graduated from Ivy League schools".
You need to spend more time on the Fixpack forums if you think this is somehow unusual or notable. BG2 has this error twice (ar0800, ar0400) and BG at least once (ar0300).
Posted by: Kulyok
« on: February 15, 2008, 12:09:38 PM »

It seems that the developers didn't foresee the case of expansions, either: a "Return to Loneliwood" block(and an OnCreation()) block are situated right under the faulty True() block. Granted, they don't make the weather, but it still falls further than "not perfect" category, ending up somewhere between "forgetful", "moronic", "graduated from MSU/Lumumba" and "graduated from Ivy League schools".

And, yes, it's AR6010.
Posted by: CamDawg
« on: February 15, 2008, 07:00:28 AM »

Well, excuse me for believing in humanity aka "IWD programmers weren't morons" in the first place. :)
Developers aren't perfect and didn't expect others to mod their games. In other news... :)

edit: It's ar6010.bcs, yes? This'll be handled in the next IWD Tweaks.
Posted by: Kulyok
« on: February 15, 2008, 12:59:44 AM »

Well, excuse me for believing in humanity aka "IWD programmers weren't morons" in the first place. :)
Posted by: CamDawg
« on: February 14, 2008, 07:17:42 PM »

But yesterday I became entirely convinced that EXTEND_TOP is the only way to go.

I've been peacefully testing IWD NPC for chapter 4, but when I entered a certain chamber, neither of the banters started. I checked the scripts, checked the dialogue file. Nothing. I checked the area script: my blocks appended all right.

... two hours later, I found out the cause: one of the blocks in the _vanilla game script_ started with

IF
True()
THEN
...
END
Modders should actually check the resources they're modifying. In other news, gravity causes you to fall down, the sky is blue, and 2+2=4. :)
Posted by: Kulyok
« on: February 14, 2008, 02:59:37 PM »

If you're a modder, just use EXTEND_TOP(with Continue(), if the area script has an OnCreation() block) in your mods; if you are a player, just install BG2 Fixpack before your mods and don't worry about it.