temnix Posted November 21, 2019 Posted November 21, 2019 I'm trying to patch all dialogues that end in a fight, finishing with Enemy(), so that a spell will be cast after them. Like this: REPLACE_TEXTUALLY ~Enemy()~ ~Enemy() ApplySpellRES()~ The problem is with dialogues where Enemy() is within the parentheses of ActionOverride. For example, ActionOverride("guard",Enemy()). In these dialogues the second parenthesis will be deleted by my substitution. To Weidu both cases of Enemy() look the same, and I can't give it anything else to make it tell the difference. There may or may not be a space after and before the parentheses, so that doesn't help. If I could somehow make Weidu look only for "Enemy()" as a stand-alone expression! I would be satisfied also with including "END" in the scope of the text, because dialogues that have Enemy() in them usually terminate after this action, so including "END" would cover nearly every case - and I would not need to worry about screwing up ActionOverride. Something like this would be nice: REPLACE_TEXTUALLY ~Enemy()~ END~ ~Enemy() ApplySpellRES()~ END~ But this doesn't work, because the tildas used in the dialogue are already being engaged by REPLACE_TEXTUALLY. Anybody know how to do the replacement in such a case? Quote
K4thos Posted November 21, 2019 Posted November 21, 2019 (edited) Quote But this doesn't work, because the tildas used in the dialogue are already being engaged by REPLACE_TEXTUALLY. Anybody know how to do the replacement in such a case? from weidu documentation: String This is how you tell WeiDU what text you want shown to the player. For international mods or international translations, you may use any encoding you like (that is, you are not restricted to 7-bit characters or Latin-1 or anything like that). is "abcdef" A string can be any sequence of characters not including a " that is enclosed in ""s. or ~abcdef~ A string can be any sequence of characters not including a ~ that is enclosed in ~~s. or %abcdef% A string can be any sequence of characters not including a % that is enclosed in %%s. This is handy for Big5 translations, since " and ~ can be part of Big5-encoded characters. or ~~~~~abcdef~~~~~ That’s five consecutive tildes on each side. A string can be any sequence of characters not including ~~~~~ that is enclosed in ~~~~~s. For example, string #8750 is ~!@#$\%^&*()_+-=[]{}\|;:'",<.>/? and can be given to WeiDU as ~~~~~~!@#$\%^&*()_+-=[]{}\|;:'",<.>/?~~~~~ (the content of the string is shown in red for clarity). or String ^ String String literal concatenation. The second string is appended to the first string. No whitespace is added. Thus "hello" ^ "World" is the same as "helloWorld". Quote The problem is with dialogues where Enemy() is within the parentheses of ActionOverride. For example, ActionOverride("guard",Enemy()). In these dialogues the second parenthesis will be deleted by my substitution. you can use REGEXP within REPLACE_TEXTUALLY. Try this to catch both Enemy() and Enemy() enclosed within ActionOverride (that END is not needed): REPLACE_TEXTUALLY ~Enemy()\()?\)~ ~Enemy()\1 ApplySpellRES(somethinghere)~ Edited November 21, 2019 by K4thos Quote
temnix Posted November 22, 2019 Author Posted November 22, 2019 On 11/22/2019 at 2:37 AM, K4thos said: from weidu documentation: String This is how you tell WeiDU what text you want shown to the player. For international mods or international translations, you may use any encoding you like (that is, you are not restricted to 7-bit characters or Latin-1 or anything like that). is "abcdef" A string can be any sequence of characters not including a " that is enclosed in ""s. or ~abcdef~ A string can be any sequence of characters not including a ~ that is enclosed in ~~s. or %abcdef% A string can be any sequence of characters not including a % that is enclosed in %%s. This is handy for Big5 translations, since " and ~ can be part of Big5-encoded characters. or ~~~~~abcdef~~~~~ That’s five consecutive tildes on each side. A string can be any sequence of characters not including ~~~~~ that is enclosed in ~~~~~s. For example, string #8750 is ~!@#$\%^&*()_+-=[]{}\|;:'",<.>/? and can be given to WeiDU as ~~~~~~!@#$\%^&*()_+-=[]{}\|;:'",<.>/?~~~~~ (the content of the string is shown in red for clarity). or String ^ String String literal concatenation. The second string is appended to the first string. No whitespace is added. Thus "hello" ^ "World" is the same as "helloWorld". you can use REGEXP within REPLACE_TEXTUALLY. Try this to catch both Enemy() and Enemy() enclosed within ActionOverride (that END is not needed): REPLACE_TEXTUALLY ~Enemy()\()?\)~ ~Enemy()\1 ApplySpellRES(somethinghere)~ Thank you. I found a different solution, but I appreciate it. Quote
Recommended Posts
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.