Jump to content


Photo

Happy Patches?


  • Please log in to reply
12 replies to this topic

#1 AnnabelleRose

AnnabelleRose

    The great pretender... of modding!

  • Modder
  • 2083 posts

Posted 19 December 2004 - 01:22 PM

I was wondering how this was done. Like the one in Ease of Use, and for Tashia. So they will romance, get along, not leave, etc... any race/sex/alignment. Just personal curosity.

- The transitioned former modder once known as MTS.


#2 Shed

Shed

    -Shed-

  • Modder
  • 2636 posts

Posted 19 December 2004 - 02:06 PM

It wouldn't be hard to have a look in Ease, you know ;)

COPY_EXISTING ~AERIE.BCS~ ~override/AERIE.BCS~
	APPLY_BCS_PATCH_OR_COPY ~ease/romhap/rom/AERIE_4.bcs.patch~
                                ~ease/romhap/rom/AERIE_4.bcs~

where aerie_4.bcs.patch is... erk... some hideous string of madness! I'm not even going to quote it here. Was this what you were asking about? Anyway, there is likely an easier way of doing the same, now that WeiDU has been updated so many times :).

Edited by Shed, 19 December 2004 - 02:06 PM.


#3 SConrad

SConrad

    I swear to drunk I'm not God

  • Administrator
  • 11148 posts

Posted 19 December 2004 - 02:47 PM

where aerie_4.bcs.patch is... erk... some hideous string of madness!

Hmm... What about a script! :blink:

You know, uncompiled .bcs? Or compiled .baf? :P

Posted Image Khadion NPC mod - Team leader, head designer
Posted Image Hubelpot NPC mod - Team leader, coder
Posted Image NPC Damage - Coder
Posted Image PC Soundsets - Coder, voice actor
Posted Image Brythe NPC mod - Designer
Posted Image DragonLance TC - Glory of Istar - Designer
Posted Image The NPC Interaction Expansion Project - Writer for Cernd, Sarevok
Posted Image The Jerry Zinger Show - Producer

Iron Modder 5 - Winner


#4 Shed

Shed

    -Shed-

  • Modder
  • 2636 posts

Posted 19 December 2004 - 02:51 PM

where aerie_4.bcs.patch is... erk... some hideous string of madness!

Hmm... What about a script! :blink:

You know, uncompiled .bcs? Or compiled .baf? :P

View Post



Oh, you asked for this one.

@@ -25,40 +25,112 @@
 0 0 0 0 0 0 0 0 0 0 0 0 ""OB
 OB
 0 0 0 0 0 0 0 0 0 0 0 0 ""OB
 OB
 0 0 0 0 0 0 0 0 0 0 0 0 ""OB
 1 0 0 0 0"GLOBALAerieMatch" "" AC
 AC
 36OB
 0 0 0 0 0 0 0 0 0 0 0 0 ""OB
 OB
 0 0 0 0 0 0 0 0 0 0 0 0 ""OB
 OB
 0 0 0 0 0 0 0 0 0 0 0 0 ""OB
 0 0 0 0 0"" "" AC
 RE
 RS
 CR
 CR
 CO
 TR
+16451 0 0 0 0 "" "" OB
+0 0 0 0 0 0 0 1 0 0 0 0 ""OB
+TR
+TR
+16437 36 0 0 0 "LOCALSLoveTalk" "" OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+TR
+TR
+16399 1 1 0 0 "GLOBALAerieRomanceActive" "" OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+TR
+CO
+RS
+RE
+100AC
+30OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+1 0 0 0 0"GLOBALAerieRomanceActive" "" AC
+AC
+36OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+0 0 0 0 0"" "" AC
+RE
+RS
+CR
+CR
+CO
+TR
+16451 0 0 0 0 "" "" OB
+0 0 0 0 0 0 0 1 0 0 0 0 ""OB
+TR
+TR
+16436 35 0 0 0 "LOCALSLoveTalk" "" OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+TR
+TR
+16399 2 1 0 0 "GLOBALAerieRomanceActive" "" OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+TR
+CO
+RS
+RE
+100AC
+30OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+2 0 0 0 0"GLOBALAerieRomanceActive" "" AC
+AC
+36OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+OB
+0 0 0 0 0 0 0 0 0 0 0 0 ""OB
+0 0 0 0 0"" "" AC
+RE
+RS
+CR
+CR
+CO
+TR
 16399 0 0 0 0 "LOCALSAerieHasProperPortrait" "" OB
 0 0 0 0 0 0 0 0 0 0 0 0 ""OB
 TR
 TR
 16436 0 0 0 0 "GLOBALAerieTransform" "" OB
 0 0 0 0 0 0 0 0 0 0 0 0 ""OB
 TR
 CO
 RS
 RE
 100AC
 160OB
 0 0 0 0 0 0 0 0 0 0 0 0 ""OB
 OB
 0 0 0 0 0 0 0 1 0 0 0 0 ""OB
 OB
 0 0 0 0 0 0 0 0 0 0 0 0 ""OB
 3745 0 0 0 0"" "" AC
 AC
 324OB


#5 SConrad

SConrad

    I swear to drunk I'm not God

  • Administrator
  • 11148 posts

Posted 19 December 2004 - 03:01 PM

Oh, you asked for this one.

No, I didn't ask for it. I merely told you what it was, since you apperantly didn't know. :P

Posted Image Khadion NPC mod - Team leader, head designer
Posted Image Hubelpot NPC mod - Team leader, coder
Posted Image NPC Damage - Coder
Posted Image PC Soundsets - Coder, voice actor
Posted Image Brythe NPC mod - Designer
Posted Image DragonLance TC - Glory of Istar - Designer
Posted Image The NPC Interaction Expansion Project - Writer for Cernd, Sarevok
Posted Image The Jerry Zinger Show - Producer

Iron Modder 5 - Winner


#6 Shed

Shed

    -Shed-

  • Modder
  • 2636 posts

Posted 19 December 2004 - 03:05 PM

:P I knew it was a .bcs. That was obvious. Nevertheless, that is how Weimer did what you ask :).

#7 AnnabelleRose

AnnabelleRose

    The great pretender... of modding!

  • Modder
  • 2083 posts

Posted 19 December 2004 - 03:19 PM

You know cats, you could have saved a whole lot of time by saying:

"MTS, you don't have the patience to sit down and learn how to do this."

:P

- The transitioned former modder once known as MTS.


#8 Shed

Shed

    -Shed-

  • Modder
  • 2636 posts

Posted 19 December 2004 - 03:25 PM

:P I'm sure it's easy!

APPLY_BCS_PATCH: Applies patchFile to the current file. See --bcmp-from and similar command-line arguments for constructing these patches.


Comparison Options:
--cmp-from X  emit WRITE_BYTEs to turn this file ...
--cmp-to X  ... into this one
--dcmp-from X  emit REPLACEs to turn this DLG file ...
--dcmp-to X  ... into this one
--tcmp-from X  compare this TRA file (or directory of TRA files)...
--tcmp-to X  ... with this one (or this directory)
--tlkcmp-from X  emit STRING_SETs to convert this TLK file ...
--tlkcmp-to X  ... into this one



#9 Stone Wolf

Stone Wolf
  • Member
  • 1672 posts

Posted 19 December 2004 - 03:27 PM

The quick answer is that happy patches remove or alter the sections of NPC scripts that disable romances. The standard global that determines the status of a romance is "NPCRomanceActive". Normally, a value of 1 means courting, 2 means exclusive relationship, and 3 means you called her fat. The scripts check for a value of 2, and turn all other romance variables to 3.

Different NPC romances probably use different variables, but that's the basics.

#10 Rastor

Rastor

    Yes, I really am a dragon. Yes, I am a jerk. Live with it.

  • Member
  • 2001 posts

Posted 20 December 2004 - 11:03 AM

The quick answer is that happy patches remove or alter the sections of NPC scripts that disable romances.  The standard global that determines the status of a romance is "NPCRomanceActive".  Normally, a value of 1 means courting, 2 means exclusive relationship, and 3 means you called her fat.  The scripts check for a value of 2, and turn all other romance variables to 3.

Different NPC romances probably use different variables, but that's the basics.

View Post


All of the Bioware romances use that system, and with the exception of Tashia, there's not really Happy Cracks for mod NPCs.
Home of Kitanya, Improved Asylum, more...

Posted Image

#11 seanas

seanas
  • Modder
  • 1906 posts

Posted 20 December 2004 - 11:42 AM

it's actually two different problems yr describing, MTS.

the first is the NPCs-not-leaving-due-to-reputation-gain/loss, which is a simple case of editing the Happy.2da file. you can do this with any normal text editor, and all it involves is realising the logic of the table (which is all a 2da file is): ie, negative numbers=unhappy; zeroes=no dramas; positive numbers=boastfully happy.

the second is the multiple-simultaneous-romance question, qhich involves removing from the various NPC scripts those blocks that govern NPC actions if you have a successful romance going with someone else. this is slightly harder to learn, cos you have to read scripts (using InfinityExplorer is the simplest way to read them, although you can't edit with it) a little bit, and you have to learn how to decompile and compile scripts (not that hard, but will involve learning how to use one of WieDU, DLTCEP or NI). then it's simply a matter of reading through those (decomplied) NPC scripts that you want to have multiple romances with and deleting those script blocks that cause romances to end if you've got another one active. you only need to do this for mod-NPCs, as the Ease-of-Use multiple romance component will do it for all the Bioware NPCs. so if you were wanting to romance Imoen and Kelsey simultaneously, you'd just check Imoen2.bcs, J#Klsy.bcs and (just to be safe) baldur.bcs and remove any blocks of the form

IF
Global("ImoenRomanceActive",GLOBAL,2)
other stuff
THEN
SetGlobal("J#KelseyRomanceActive",GLOBAL,3)
other stuff
END

and vice versa. it's actually not that hard - the hardest part is getting yr head sufficiently around WeiDu/ DLTCEP/ NI enough for them to de/recompile scripts for you - the rest is just cut-n-paste editing.

"A simple test of the relative merits of science and religion is to compare lighting your house at night by prayer or electricity" - A. C. Grayling
"EFF files have saves, too." - CamDawg
|| this is radio seanas || BP Series v3 || seanas at work ||


#12 neriana

neriana
  • Member
  • 139 posts

Posted 21 December 2004 - 11:32 PM

Both "happy" and "multi-romance" are also likely to cause huge bugs. When a mod by Wesley Weimer can break the game, it's not something you want to go around trying to do by yourself.

#13 hlidskialf

hlidskialf

    Incarnation of the Eternal Ale Warrior

  • Modder
  • 2510 posts

Posted 23 December 2004 - 12:14 AM

IIRC Wes didn't write those mods, he just rebuilt them to the cool new weidu format.
It's not the coding of the mods (Which really are only eliminating checks.) so much as the engine not being made to handle more than one romance at a time. It "could" be done better but it'd be irritating to build to say the least.

The great wolf Fenrir gapes ever at the dwelling of the gods.