Jump to content


BG2EE Chloe!


52 replies to this topic

#41 Roxanne

Roxanne

    Modder

  • Member
  • 2223 posts

Posted 02 February 2017 - 12:26 AM

http://www.shsforums...xy/#entry592839

 

You can find reference how to use HANDLE_CHARSETS in most mods available for EE games.

I tried to find out how it works...the more I read the less I understand.

 

Can someone knowledable please confirm that this will do:

 

In tp2 added

ACTION_DEFINE_ARRAY fl#reload BEGIN setup END

  LAF HANDLE_CHARSETS
    INT_VAR
      infer_charset = 1
    STR_VAR
      tra_path = EVAL ~Chloe/Language~
      noconvert_array = fl#noconvert
      reload_array = fl#reload
      default_language = english
  END

 

All tra files and a folder inconv are in Chloe/Language

 

It installs but I have no idea how to test that it does the right things?


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#42 K4thos

K4thos
  • Member
  • 269 posts

Posted 02 February 2017 - 01:34 AM

ALWAYS
  ACTION_DEFINE_ARRAY fl#reload BEGIN setup END
  LAF HANDLE_CHARSETS
    INT_VAR
      infer_charset = 1
    STR_VAR
      tra_path = ~Chloe/Language~
      reload_array = fl#reload
      default_language = ~English~
  END
END

the code you added on Github prints error due to missing ALWAYS (you can't just add code like that before BEGIN)



#43 Roxanne

Roxanne

    Modder

  • Member
  • 2223 posts

Posted 02 February 2017 - 01:53 AM

ALWAYS
  ACTION_DEFINE_ARRAY fl#reload BEGIN setup END
  LAF HANDLE_CHARSETS
    INT_VAR
      infer_charset = 1
    STR_VAR
      tra_path = ~Chloe/Language~
      reload_array = fl#reload
      default_language = ~English~
  END
END

the code you added on Github prints error due to missing ALWAYS (you can't just add code like that before BEGIN)

Thanks - I was not sure about that ALWAYS thing. I will repair it immediately.


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#44 Isaya

Isaya
  • Modder
  • 292 posts

Posted 02 February 2017 - 03:34 PM

Hello Roxanne,

 

Le Marquis, one of the French translators of the mod, would be interested in translating the new content once you think the content is table. Unfortunately, the new dialogs do not have a tra file right now. If you're interested in opening the new content to translation, it's actually easy to convert the dialogs and transfer texts to tra files with a simple WeiDU command.

Provided you have the mod in the game directory, and you also have weidu.exe in the game directory, you just have to type

weidu --nogame --traify Chloe\D\RChloeToB.d --out RChloeToB --traify-comment
weidu --nogame --traify Chloe\D\SoANew.d --out SoANew --traify-comment

to get a new d file and a tra file in the game directory for both dialogs.

--traify-comment tells WeiDU to keep the texts withing comments in the converted d files.

Then you could just replace the existing d files in Chloe\D with the new d files and move the tra files in Chloe/Language/English.

 

 

I also have a comment about the parameters used for HANDLE_CHARSETS. I noticed you used default_language. However, as the tp2 is written now, default_language will not provide any help to install the mod because the way the LANGUAGE statements are written, English is not the default language when installing. It's only the first one in the list.

The purpose of default_language is to tell WeiDU to convert to UTF-8 tra files in both the language selected by the player and the tra files of the default language. But this is useful only if your LANGUAGE statements are written in such a way that English texts will be used when installing in case a text is missing in the selected language.

To do that, you need to write the LANGUAGE statements like this:

LANGUAGE ~Francais (par Miry Wolfwood, Le Marquis et Magiere)~
         ~French~ 
         ~Chloe/Language/English/setup.tra~
         ~Chloe/Language/French/setup.tra~

This tells WeiDU to load texts from English/setup.tra, then load French/setup.tra. In practise French texts will overwrite English texts, unless a French text is not defined in the French tra file.

The purpose of default_language in HANDLE_CHARSETS is to tell WeiDU that, when the player selects French when installing, it should convert French tra files to UTF-8, and English files too, in order to ensure that any text that could be used when installing is indeed using UTF-8 encoding.

 

Using default_language and adding ~Chloe/Language/English/setup.tra~ to all languages except English will not be enough to allow installation of the mod in languages other English if you traify the new dialogs.

In order to get the "default language" behaviour for the dialogs, I believe you could compile them using this statement (for SoANew):

COMPILE SoANew.d USING ~Chloe/Language/English/SoANew.tra~ ~Chloe/Language/%LANGUAGE%/SoANew.tra~

 

 

Please tell us if you're interested in a translation of the new content.

Thank you for bringing back this mod.



#45 Roxanne

Roxanne

    Modder

  • Member
  • 2223 posts

Posted 02 February 2017 - 11:51 PM

@Isaya

 

Thank you for that helpful information - I am not very experienced with the whole translation and UTF-8 stuff, I just *inherited* the translations of the Chloe mod and kept them for the EE version since I made no changes (and will not make) to any original contents.

 

As I understand, the current code default_language will not hurt, it will just not do anything. Anyway your tutorial will be helpful once some translations for the new stuff become available - for some language maybe but not for all.

 

Of course a translation by the same author as in the original mod would be the preferred solution. I am not sure it is stable enough already. I am still considering the issue of Chloe's romance (with PC or Imoen) in ToB .- I have not added anything because I felt that in any case everything has already been said and there may not be any further development between the pair in the ToB part (just having *is still alive* banters is not required). So the new stuff is more about her basic story, i.e. her heritage.

 

Thank you again for feedback and help.


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#46 StefanO

StefanO
  • Member
  • 16 posts

Posted 26 February 2017 - 01:59 AM

@Roxanne

 

I'm still testing Chloe on BG2:EE. From your 1.6 announcement:

 

Chloe works for Lathander against the beholder cult and may gain the temple stronghold on behalf of the party.

 

This does happen. What's missing is the quest giver for the "Gain the Services of Sir Sarles for the Temple" quest. The quest giver is normally the second cleric and he is simply not there, neither before the unseeing eye quest is given nor after its completion.


Edited by StefanO, 26 February 2017 - 01:59 AM.


#47 Roxanne

Roxanne

    Modder

  • Member
  • 2223 posts

Posted 26 February 2017 - 02:29 AM

@Roxanne

 

I'm still testing Chloe on BG2:EE. From your 1.6 announcement:

 

Chloe works for Lathander against the beholder cult and may gain the temple stronghold on behalf of the party.

 

This does happen. What's missing is the quest giver for the "Gain the Services of Sir Sarles for the Temple" quest. The quest giver is normally the second cleric and he is simply not there, neither before the unseeing eye quest is given nor after its completion.

I am sure that this is not part of the stronghold quest at all but a quest everyone (Good aligned) can get after defeating the cult.

 

I think I found something - not related to Chloe at all - looks like a bug in the vanilla game (at least in my install).

 

AR0902.bcs

IF
    Global("SainSpawn","GLOBAL",0)
    OR(6 //THIS SHOULD BE 7 otherwise Player is Good is not checked
        Class(Player1,CLERIC)
        Class(Player1,FIGHTER_CLERIC)
        Class(Player1,CLERIC_MAGE)
        Class(Player1,CLERIC_THIEF)
        Class(Player1,FIGHTER_MAGE_CLERIC)
        Class(Player1,CLERIC_RANGER)
    Alignment(Player1,MASK_GOOD)
THEN
    RESPONSE #100
        SetGlobal("SainSpawn","GLOBAL",1)
        CreateCreature("SCSAIN",[642.627],S) // Dawnbringer Sain
END

 

This means, if your player is good, the Dawnbringer should spawn even if you are not a cleric of any type - but the code is wrong.

You should check that in your game, eventually correct it - and if you find the same bug report it to the bean dogs.

 

Alternatively you may just console C:CreateCreature(""SCSAIN")


Edited by Roxanne, 26 February 2017 - 02:47 AM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#48 Roxanne

Roxanne

    Modder

  • Member
  • 2223 posts

Posted 26 February 2017 - 03:15 AM

...the quest giver for the "Gain the Services of Sir Sarles for the Temple" quest.

 

Maybe it is a good idea to make this quest as well available if Chloe is in party (as a disciple of Lathander)?

 

Just by adding to bottom of ar0902.bcs

IF
    Global("SainSpawn","GLOBAL",0)
  InParty("RChloe")
THEN
    RESPONSE #100
        SetGlobal("SainSpawn","GLOBAL",1)
        CreateCreature("SCSAIN",[642.627],S) // Dawnbringer Sain

END


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#49 StefanO

StefanO
  • Member
  • 16 posts

Posted 27 February 2017 - 02:20 AM

@Roxanne: I've read your latest discussion with Nigtfarer on GitHub in the Big World Project.

 

The unseeing eye and the Sir Sarles quest are somewhat related. In an unmodded game:  If (and only if) the unseeing eye quest is accepted, the second cleric will offer the Sir Sarles quest after you talk to him. If you haven't accepted the unseeing eye quest, the second quest will not be offered at all.

 

With Chloe installed, you will be send to the temple of Lathander because of Chloe and not because of you're a cleric. If you're not a cleric by chance Dawnbringer Sain will not spawn.

 

The Chloe mod should not disable the Sir Sarles quest for all non-cleric PCs and should change AR0902.BCS accordingly.

 

 

 

 

 


Edited by StefanO, 27 February 2017 - 02:26 AM.


#50 StefanO

StefanO
  • Member
  • 16 posts

Posted 27 February 2017 - 02:22 AM

...the quest giver for the "Gain the Services of Sir Sarles for the Temple" quest.

 

Maybe it is a good idea to make this quest as well available if Chloe is in party (as a disciple of Lathander)?

 

Just by adding to bottom of ar0902.bcs

IF
    Global("SainSpawn","GLOBAL",0)
  InParty("RChloe")
THEN
    RESPONSE #100
        SetGlobal("SainSpawn","GLOBAL",1)
        CreateCreature("SCSAIN",[642.627],S) // Dawnbringer Sain

END

 

Yes!



#51 Roxanne

Roxanne

    Modder

  • Member
  • 2223 posts

Posted 27 February 2017 - 03:36 AM

@Roxanne: I've read your latest discussion with Nigtfarer on GitHub in the Big World Project.

 

The unseeing eye and the Sir Sarles quest are somewhat related. In an unmodded game:  If (and only if) the unseeing eye quest is accepted, the second cleric will offer the Sir Sarles quest after you talk to him. If you haven't accepted the unseeing eye quest, the second quest will not be offered at all.

 

With Chloe installed, you will be send to the temple of Lathander because of Chloe and not because of you're a cleric. If you're not a cleric by chance Dawnbringer Sain will not spawn.

 

The Chloe mod should not disable the Sir Sarles quest for all non-cleric PCs and should change AR0902.BCS accordingly.

 

 

 

 

 

The idea was never to replace or disable anything that exists.

Chloe would rather be some *last ditch* chance to get the quest but only if everything else fails.

Nothing about Sain had been changed.


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#52 jastey

jastey
  • Member
  • 606 posts

Posted 20 March 2017 - 03:51 AM

I think I found something - not related to Chloe at all - looks like a bug in the vanilla game (at least in my install).

 

AR0902.bcs

IF
    Global("SainSpawn","GLOBAL",0)
    OR(6 //THIS SHOULD BE 7 otherwise Player is Good is not checked
        Class(Player1,CLERIC)
        Class(Player1,FIGHTER_CLERIC)
        Class(Player1,CLERIC_MAGE)
        Class(Player1,CLERIC_THIEF)
        Class(Player1,FIGHTER_MAGE_CLERIC)
        Class(Player1,CLERIC_RANGER)
    Alignment(Player1,MASK_GOOD)
THEN
    RESPONSE #100
        SetGlobal("SainSpawn","GLOBAL",1)
        CreateCreature("SCSAIN",[642.627],S) // Dawnbringer Sain
END

 

This means, if your player is good, the Dawnbringer should spawn even if you are not a cleric of any type - but the code is wrong.

You should check that in your game, eventually correct it - and if you find the same bug report it to the bean dogs.

 

Alternatively you may just console C:CreateCreature(""SCSAIN")

But in vanilla game, if the PC is MASK_EVIL, the quest giver is in the temple of Thalos:

 

IF
	Global("YarrylSpawn","GLOBAL",0)
	OR(5)
		Class(Player1,CLERIC)
		Class(Player1,FIGHTER_CLERIC)
		Class(Player1,CLERIC_MAGE)
		Class(Player1,CLERIC_THIEF)
		Class(Player1,FIGHTER_MAGE_CLERIC)
	Alignment(Player1,MASK_EVIL)
THEN
	RESPONSE #100
		SetGlobal("YarrylSpawn","GLOBAL",1)
		CreateCreature("SCYARRYL",[341.323],14) // Talon Yarryl
END

Thus, just extending the OR() for teh temple of Lathander would mean for evil PCs two quest givers will spawn?



#53 Roxanne

Roxanne

    Modder

  • Member
  • 2223 posts

Posted 20 March 2017 - 04:28 AM

I think I found something - not related to Chloe at all - looks like a bug in the vanilla game (at least in my install).

 

AR0902.bcs

IF
    Global("SainSpawn","GLOBAL",0)
    OR(6 //THIS SHOULD BE 7 otherwise Player is Good is not checked
        Class(Player1,CLERIC)
        Class(Player1,FIGHTER_CLERIC)
        Class(Player1,CLERIC_MAGE)
        Class(Player1,CLERIC_THIEF)
        Class(Player1,FIGHTER_MAGE_CLERIC)
        Class(Player1,CLERIC_RANGER)
    Alignment(Player1,MASK_GOOD)
THEN
    RESPONSE #100
        SetGlobal("SainSpawn","GLOBAL",1)
        CreateCreature("SCSAIN",[642.627],S) // Dawnbringer Sain
END

 

This means, if your player is good, the Dawnbringer should spawn even if you are not a cleric of any type - but the code is wrong.

You should check that in your game, eventually correct it - and if you find the same bug report it to the bean dogs.

 

Alternatively you may just console C:CreateCreature(""SCSAIN")

But in vanilla game, if the PC is MASK_EVIL, the quest giver is in the temple of Thalos:

 

IF
	Global("YarrylSpawn","GLOBAL",0)
	OR(5)
		Class(Player1,CLERIC)
		Class(Player1,FIGHTER_CLERIC)
		Class(Player1,CLERIC_MAGE)
		Class(Player1,CLERIC_THIEF)
		Class(Player1,FIGHTER_MAGE_CLERIC)
	Alignment(Player1,MASK_EVIL)
THEN
	RESPONSE #100
		SetGlobal("YarrylSpawn","GLOBAL",1)
		CreateCreature("SCYARRYL",[341.323],14) // Talon Yarryl
END

Thus, just extending the OR() for teh temple of Lathander would mean for evil PCs two quest givers will spawn?

Yes - after some discussion (related to fixpack) it was found that the current code is what was intended and is not bugged and thus not modified.

The case was laid to rest a while ago.


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*




Reply to this topic