Jump to content

Fails to install 3020 (Replace many +1 magic weapons) in french


Recommended Posts

I feel there's maybe something here.

I'm not really able to follow the code (there's some pre-processing that breaks my mind and my ability to analyze it) but I see

  • That on one side always.tph defines
OUTER_SET SFO_unusable_string_tra_ref=100400
OUTER_SET SFO_usable_string_tra_ref=100401

Those are as you assume compatible with obg2 (no non-breaking spaces) and defined in shared.tra.

@100400 = ~Non utilisable par :~
@100401 = ~Utilisable par :~

Those strings are only used in lib_itm.tpa ina patch function named "item_useability_string" themselves only used in "ITM_say_description" and "ITM_say_unidentified_description", both only called in "ITM_say_both_descriptions".

But then I couldn't see "ITM_say_both_descriptions" used anywhere (but I see an similarly named "ITM_set_both_descriptions"... I could not find uses either).

  • On the other side 3020 "seems to" call "fine_weapons" in fine_weapons.tpa, which maybe calls make_fine_weapons

This calls "handle_unusable" from lib_ietools.tpa.

Then this one does

OUTER_SET strref=is_iwd?34753:is_bg2?74251:31522
ACTION_GET_STRREF strref unusable_string

which (I may be wrong) I understand gets strref from the dialog.tlk file, not from a .tra file.

In the bg2ee case, it selects 74251 which does contain the non-breaking space character (in iwdee case, 34753 is exatcly the samestring, with the nbsp).

So maybe that's just a bug? That may not be apparent in english because shared.tra/@100400 and dialog.tlk/74251 are identical?

 

Link to comment

OK, the function 'handle_unusable' in stratagems/sfo2e/lib_ietool.tph is now

DEFINE_DIMORPHIC_FUNCTION handle_unusable
	STR_VAR arguments=""
	RET value
BEGIN
	ACTION_IF enhanced_edition BEGIN
		WITH_TRA "%sfo_tra_loc%/english/shared.tra" "%sfo_tra_loc%/%LANGUAGE%/shared.tra" BEGIN
			OUTER_SPRINT unusable_string @100400
			OUTER_SPRINT usable_string @100401
		END
		OUTER_PATCH_SAVE value "%arguments%" BEGIN
			index=INDEX_BUFFER ("%unusable_string%")
			PATCH_IF index>=0 BEGIN
				DELETE_BYTES index (BUFFER_LENGTH - index)
			END
			index=INDEX_BUFFER ("%usable_string%")
			PATCH_IF index>=0 BEGIN
				DELETE_BYTES index (BUFFER_LENGTH - index)
			END
		END
	END ELSE BEGIN
		OUTER_SPRINT value "%arguments%"
	END
END

That should now properly reference the shared.tra entries (as well as failing a bit more gracefully if there isn't a match). Try it and see if it solves the problem.

(Incidentally, ITM_say_description is being used, in other components, but you won't see it with a simple file search because it's hidden by preprocessing.)

Link to comment
1 hour ago, DavidW said:

(Incidentally, ITM_say_description is being used, in other components, but you won't see it with a simple file search because it's hidden by preprocessing.)

I expected as much, but not knowing how it is preprocessed limits my investigations. And is the reason of my excessive use of conditional forms and prudent phrasing.

 

Yes I think this will probably work better, I'll try it.

Link to comment
On 12/29/2023 at 12:19 PM, DavidW said:

Addressing the specifics (I'll comment on the more philosophical issues separately when I have a chance).

I'm still a bit unsure what the problem is with descriptions, but let me describe it more explicitly (I should probably put this in a 'note to translators' too). An SCS item description consists of

  1. some text
  2. One of two unique strings, which in English are 'Usable by:' or 'Unusable by:' 
  3. some more text

On an EE install, SCS strips out (2) and (3).

To handle this in a translation, you need to make sure that the unique strings, which occur in shared.tra at @100400 and @100401, occur exactly in the item descriptions. They can have whatever spaces, special characters, or the like they need; all that matters is that they occur in the item description exactly as they occur in shared.tra. Everything is internal to SCS's tra files; what the dialog.tlk file says is irrelevant. If there's some language-specific way this could break, I can't see what it is.

Alright, that's good to know. :D

I can tell you that 99% of translators won't know this before trying to translate it. We're too lazy to check out all the scripts, and even if we do so, we're too dumb to figure it out.

Still, there is something that bothers me. Vanilla and EE formats of anything below "STATISTICS:" greatly vary. Here is an example to compare:

Vanilla

Quote

@2140  = ~Blackrazor, Long Sword +3
This sword radiates evil like a sour odor, and the owner never knows if he wields the weapon, or if it wields him.  In addition to its combat abilities, Blackrazor slowly regenerates its owner with the drained strength of opponents.

STATISTICS:

Equipped Ability :
  Regeneration: 1 hp every 5 seconds
  Immunity to Charm and Fear
  With every hit it has a 15% chance of draining 4 levels, healing the wielder by 20 hit points, and hasting him for 20 seconds as well as increasing his strength by 3 points for 20 seconds. 
THAC0: +3 bonus
Damage:  1D8 +3
Damage type:  slashing
Weight: 4
Speed Factor: 2
Proficiency Type: Long Sword
Type:  1-handed
Requires: 6 Strength
Not Usable By:
 Druid
 Cleric
 Mage
~

EE

Quote

@2140   = ~This sword radiates evil like a sour odor, and the owner never knows if <PRO_HESHE> wields the weapon or if it wields <PRO_HIMHER>. In addition to its combat abilities, Blackrazor slowly regenerates its owner with the drained strength of opponents.

STATISTICS:

Equipped abilities:
– Regenerate 1 HP every 5 seconds
– Immunity to charm and fear

Combat abilities:
– With every hit, it has a 15% chance of draining 4 levels from the target and healing the wielder by 20 Hit Points as well as hasting <PRO_HIMHER> for 20 seconds and increasing <PRO_HISHER> Strength by 3 points for 20 seconds

THAC0: +3
Damage: 1d8+3 (slashing)
Speed Factor: 2
Proficiency Type: Long Sword
Type: One-handed
Requires:
 6 Strength

Weight: 4~

Usually, we translators try to uniformize the formats to be seemingly the same as what the official content is. Here, even the descriptions vary.

I still think that having two entries/files for each item, EE and vanilla is the best. For all languages. But that's your choice, we will adapt nonetheless. ;)

On a side note, I'll add that I feel a bit annoyed to be held back by the "deprecated" format of vanilla items for unique entries, most players are on the EE nowadays.

Real question, what makes you choose this way (strips out (2) and (3)) instead of having 2 entries/files?

 

Edited by Jazira
Link to comment
On 12/29/2023 at 12:32 PM, DavidW said:

On the general issue Jazira raises: I certainly appreciate that swapping out descriptions can cause language problems (especially in languages that have multiple dialog.tlk files). There may be places where this can be avoided, and I'll try to keep a lookout for them. 

In general, though, SCS (and, even more so, ToF) does this sort of thing because it's needed for compatibility. The example Jazira gives above (where a string is matched to the bard kit description) is an example of this: it needs to patch *all* bard descriptions, including potentially descriptions added by third-party mods, to add 'cannot use additional bard songs' to the disadvantages list of the kit.

 

Thanks, that's greatly appreciated. Try to avoid it as much as you can, because remember, we're dumb and lazy. 😛

But when there is no choice but to do it, fine, it's understandable. We'll call the lesser dumb and lazy to help us out. ;)

Edited by Jazira
Link to comment
41 minutes ago, Jazira said:

I still think that having two entries/files for each item, EE and vanilla is the best. For all languages. But that's your choice, we will adapt nonetheless. ;)

On a side note, I'll add that I feel a bit annoyed to be held back by the "deprecated" format of vanilla items for unique entries, most players are on the EE nowadays.

Real question, what makes you choose this way (strips out (2) and (3)) instead of having 2 entries/files?

If I'm honest, it's largely laziness, with a small admixture of 'less chance of description/file mismatches'.

However, the point about the EE and vanilla description formats being different is persuasive (to be honest I hadn't noticed it). I'll give some thought to moving to separate descriptions given that.

Link to comment

If you want, I can help you out with some inactives pre-digested entries for every item, I'm doing some English proofreading alongside the French translation at the moment anyway. You could cherry-pick anything you want from it. :)

Edited by Jazira
Link to comment

Alright, so...

Before:

Quote

@3016 = ~Yellow Dragon Scale Armor~
@3017 = ~Yellow Dragon Scale Armor

This suit of armor is formed from interlocking Yellow Dragon scales. Yellow Dragons are known for their fiery sand attacks and resistance to piercing weapons.
This particular suit was forged from the scales of the yellow dragon Anadramatis.

STATISTICS:

Bonuses: +50% Resistance to Piercing and Missile Attacks
Armor Class: -1
Weight: 30
Requires: 6 Strength
Not Usable By:
 Mage~

After:

Quote

@3016 = ~Yellow Dragon Scale Armor~
//@3016 vanilla format
@3017 = ~Yellow Dragon Scale Armor

This suit of armor is formed from interlocking Yellow Dragon scales. Yellow Dragons are known for their fiery sand attacks and resistance to piercing weapons.

This particular suit was forged from the scales of the yellow dragon Anadramatis.

STATISTICS:

Bonuses: +50% Resistance to piercing and missile attacks
Armor Class: -1
Weight: 10
Requires: 6 Strength
Not Usable By:
 Mage
 Monk
 Shapeshifter
 Kensai~
/*
//@3016 EE format
@? = ~This suit of armor is formed from interlocking Yellow Dragon scales. Yellow Dragons are known for their fiery sand attacks and resistance to piercing weapons.

This particular suit was forged from the scales of the yellow dragon Anadramatis.

STATISTICS:

Equipped abilities:
– Resistance to Missile Damage: +50%
– Resistance to Piercing Damage: +50%

Armor Class: -1 (2 vs. slashing, 1 vs. piercing and missile)
Requires:
 6 Strength

Weight: 10~
*/

Is it ok for you?

Edited by Jazira
Link to comment

Hello again, David.

Things are advancing at a good pace, but I have a few uncertainties that I'd like to clear up.

The Rod of Resurrection, item.tra, everything is ok? Are the added details correct? The range parts, for example. I've been unable to test ingame.

Quote

//Rod of Resurrection EE format (39620 bg2ee)
@?  = ~This rod enables anyone to resurrect the dead and heal the injured as if they were of high enough level to cast the Raise Dead and Heal spells and as if they were a priest. No rest is required, as the rod bestows the life giving effects. Each use of the rod expends one charge.

STATISTICS:

Charge abilities:
– Raise Dead once per day
  Special: Target is raised with 1 HP
  Range: Visual range of the caster
  Area of Effect: 1 creature

– Heal once per day
  Special: Fully restores the target's HP, cures all diseases, deafness, blindness, feeblemind and neutralizes poisons and intoxication
  Range: Touch
  Area of Effect: 1 creature

Weight: 3~

Next are the dagger "Nome Stikka" and the arrow "Deth Stik", kobold.tra. Are the details correct, especially the poison and save parts? I've been unable to test ingame. (https://www.gibberlings3.net/forums/topic/37575-kobold-items-dont-seem-to-apply-any-poison-effect/)

 

Quote

//@21305 vanilla format
@21307 = ~Dagger "Nome Stikka"

Though kobolds do not normally wield poison daggers, it is evident that they have been given the means to make these. The crudeness of the construction of this weapon, however, does not lessen its deadliness - in fact, it can be just as deadly to the wielder as it is to the victim!

STATISTICS:

Combat Abilities:
 Hit target suffers 6 poison damage (5% chance that user will poison himself, save vs. poison to avoid)

Damage: 1D4
Damage Type: piercing
Weight: 1
Speed Factor: 2
Proficiency Type: Dagger
Type: 1-handed
Requires: 3 Strength
Not Usable By:
 Cleric
 Beast Master~

Quote

//@21308 vanilla format
@21309 = ~Arrow "Deth Stik"

This arrow is not of exceptional quality and is, in fact, rather crudely made. However, it has been soaked in a deadly toxin which makes it especially dangerous to wielder and target alike.

STATISTICS:

Combat Abilities:
 Hit target suffers 12 poison damage over 6 seconds (5% chance that user will poison himself, save vs. poison to avoid)

Damage: 1D6
Damage Type: missile (piercing)
Weight: 0
Launcher: Bow
Not usable by:
 Cleric
 Druid
 Mage
 Sorcerer
 Monk
 Kensai
 Cavalier~

Lastly, I haven't edited yet "Stone Fist" or "Pebble" inside extra_arcane_spells.tra. Could you provide me some details about the fix and the actual statistics of the items, please? (https://www.gibberlings3.net/forums/topic/37498-stonefist-description-looks-wrong/)

I still have a few items to edit, but they will be done soon. Do you wish me to provide the English proofread (with the item format revision) as soon as possible? So, if you want, you can implement them rapidly or is this not an urgent matter?

I imagine this is a stressful period for you, I hope I'm not overstepping.

Edited by Jazira
wording
Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...