Jump to content


Photo

Small Issue


  • Please log in to reply
27 replies to this topic

#1 Vlad

Vlad
  • Member
  • 577 posts

Posted 08 August 2015 - 05:10 AM

In a dialogue file of Ender Sai standing in Tazok's Tent, the last action is EscapeAreaDestroy(90), which replaces original EscapeArea(). I don't know the reason why someone decided to replace it, but what happens now is that the guy continues standing for 90 seconds after the end of the dialogue and blocking the way to the chest which contains important stuff. Removing him by force would result in dropping reputation. I'm going to return the original EscapeArea() in my fixes for BGT, but I suggest you do the same in your installation.



#2 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 08 August 2015 - 05:32 AM

EscapeAreaDestroy() should make him move to the nearest exit point so something is preventing him from moving :unsure: Is he overencumbered or something?


"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#3 Salk

Salk
  • Modder
  • 1411 posts

Donator

Posted 08 August 2015 - 07:33 AM

I have serious issues with that action as well, it seems. In my case, the NPCs disappear from the screen instead of moving to an exit point.



#4 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5148 posts

Posted 08 August 2015 - 07:42 AM

I would propose that each one of you makes an LStest run so we can deterninate the responding kind of behaviour for reasons(aka what the scripts do over all ).


Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#5 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 08 August 2015 - 08:12 AM

In my case, the NPCs disappear from the screen instead of moving to an exit point.

This is precisely why A64 changed all the EscapeArea() into EscapeAreaDestroy() :unsure: The behaviour you see is what EscapeArea() does by default - no clue why EscapeAreaDestroy() is breaking for you though :(


"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#6 Vlad

Vlad
  • Member
  • 577 posts

Posted 08 August 2015 - 02:06 PM

It simply doesn't work, guys. You don't believe - try yourself.

 

I've replaced it with:

 

MoveToPointNoInterrupt([621.461])
EscapeArea()

 

It now works fine.


Edited by Vlad, 08 August 2015 - 02:09 PM.


#7 Mad Mate

Mad Mate
  • Member
  • 191 posts

Posted 08 August 2015 - 02:29 PM

I just tried in my game, Clued myself in AR8701.ARE, talked with Ender and after conversation, he disappeared, like Salk said, and journal notes are added.
In dialog file is EscapeAreaDestroy(90), so I guess it works "fine". Not like it should be, what Lollorian said, but not game-breaking, like in Vlad's case.

Anyway, here is thread where King Diamond explains changes:
http://www.shsforums...ce/#entry196840
but, I guess EscapeAreaDestroy(90) doesn't have 100% success.


Edited by Mad Mate, 08 August 2015 - 02:59 PM.


#8 Fiann of the Silver Hand

Fiann of the Silver Hand
  • Member
  • 286 posts

Posted 08 August 2015 - 03:51 PM

It'd be a pain to do each one of these individually for all instances of EAD(90), but in rare cases like this where it's not reliable, we could simply have the CRE do a MoveToPoint and then DestroySelf, emulating the EAD(90) by appearance, but without the glitchiness, since the script won't move on to one action before the previous one is finished (could be bolstered with SetInterrupt(F/T)).



#9 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 08 August 2015 - 08:18 PM

Agreed then :) BWPFixpack'd


"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#10 Salk

Salk
  • Modder
  • 1411 posts

Donator

Posted 08 August 2015 - 09:19 PM

I just tried in my game, Clued myself in AR8701.ARE, talked with Ender and after conversation, he disappeared, like Salk said, and journal notes are added.
In dialog file is EscapeAreaDestroy(90), so I guess it works "fine". Not like it should be, what Lollorian said, but not game-breaking, like in Vlad's case.

 

Thanks for testing this too, Mad Mate!  :cheers:

 

I wonder if you could test with any of those .cre found in the escape.d file (BGT\fixpack\) and see if in your case too EscapeAreaDestroy(90) often fails?


Edited by Salk, 08 August 2015 - 09:25 PM.


#11 Vlad

Vlad
  • Member
  • 577 posts

Posted 09 August 2015 - 11:35 AM

It seems EscapeAreaDestroy(90) is doing exactly what it's not supposed to do - it just destroys the character in the open space, while EscapeArea() allows him/her to go away first. Gerde in the Fishermen Village after giving me 75 gp for hunting ankhegs was destroyed without moving. Changing back to EscapeArea() allowed her to walk away. I think you should drop patching all the dialogues with experimental EscapeAreaDestroy(90) in the next fix.


Edited by Vlad, 09 August 2015 - 11:37 AM.


#12 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 09 August 2015 - 05:19 PM

@Mad Mate: Can you replace the EAD with EA in one of your test scripts and confirm this? :unsure:

The fix should be simple to implement but I'd be real interested to know why EA started working properly especially since Kind Diamond took the time to patch it :P

Did something flip the references of these functions in ACTION.IDS? Is ToBex fixing them?

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#13 Salk

Salk
  • Modder
  • 1411 posts

Donator

Posted 09 August 2015 - 08:04 PM

In my game, EscapeAreaDestroy(90) works some times but it fails most times.

 

EscapeArea() on the other hand never gave me a problem.



#14 Vlad

Vlad
  • Member
  • 577 posts

Posted 09 August 2015 - 11:05 PM

I suggest that you make the small patch now and restore all EscapeArea() in dialogues. I don't want to continue playing knowing that there are many potential bugs caused by this faulty fix. I know that KD had a lot of great ideas but fixing things that work is not one of his best.



#15 Salk

Salk
  • Modder
  • 1411 posts

Donator

Posted 09 August 2015 - 11:31 PM

Vlan (almost your namesake Vlad) pointed out this issue already in March (http://www.shsforums...ing-properly) /but not much has happened since.

 

According to Miloch EscapeArea() is not so good either.

 

Anyway, it's enough to comment out this following part from setup-bgt.tp2 (lines 7920-7942) before installing BGT:

 

 

COPY_EXISTING ~ajantis.bcs~  ~override/ajantis.bcs~
              ~ar6801.bcs~   ~override/ar6801.bcs~
              ~ar9600.bcs~   ~override/ar9600.bcs~
              ~bandit.bcs~   ~override/bandit.bcs~
              ~bandit2.bcs~  ~override/bandit2.bcs~
              ~bandit3.bcs~  ~override/bandit3.bcs~
              ~capcut02.bcs~ ~override/capcut02.bcs~
              ~druid3.bcs~   ~override/druid3.bcs~
              //~gnoll5.bcs~   ~override/gnoll5.bcs~ /*a hard-coded combination change is made below*/
              ~gnoll5a.bcs~  ~override/gnoll5a.bcs~
              ~greywolf.bcs~ ~override/greywolf.bcs~
              ~guard1.bcs~   ~override/guard1.bcs~
              ~guard2.bcs~   ~override/guard2.bcs~
              ~hobgobc.bcs~  ~override/hobgobc.bcs~
              ~kescape.bcs~  ~override/kescape.bcs~
              ~sarrun.bcs~   ~override/sarrun.bcs~
              ~shadow.bcs~   ~override/shadow.bcs~
              ~thief.bcs~    ~override/thief.bcs~
              ~watchen2.bcs~ ~override/watchen2.bcs~
  DECOMPILE_BCS_TO_BAF
  REPLACE_TEXTUALLY ~EscapeArea()~ ~EscapeAreaDestroy(90)~
  COMPILE_BAF_TO_BCS
COMPILE ~bgt/fixpack/escape.d~

 

I personally reverted the changes on my ongoing game. I can provide the fix to anyone who needs it, of course.

 

It seems though that even EscapeArea() is often presenting the same problem so it's no real solution.


Edited by Salk, 10 August 2015 - 03:17 AM.


#16 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5148 posts

Posted 10 August 2015 - 03:41 AM

According to Miloch EscapeArea() is not so good either.
...
It seems though that even EscapeArea() is often presenting the same problem so it's no real solution.
Which is why Vlan ended up with MoveToPoint() ... and then I would use either of the escape's, as they would be in the exit area of the map already, action which can be intercepted by the party if the need arises.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#17 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 10 August 2015 - 07:27 AM

Have a blast I guess :P Copy this into a new file called Setup-EscapeArea.tp2 and grab a weidu.exe and rename to Setup-EscapeArea.exe to run :cheers:

BACKUP ~EscapeArea/Backup~
AUTHOR ~Lollorian~
BEGIN ~EscapeAreaDestroy() -> EscapeArea()~
COPY_EXISTING_REGEXP GLOB ~^.+\.bcs$~ ~override~
  DECOMPILE_AND_PATCH BEGIN
    REPLACE_TEXTUALLY ~EscapeAreaDestroy(90)~ ~EscapeArea()~
  END
<<<<<<<< .../mymod-inlined/escape.d
REPLACE_ACTION_TEXT_REGEXP ~^.+$~ ~EscapeAreaDestroy(90)~ ~EscapeArea()~
>>>>>>>>
COMPILE ~.../mymod-inlined/escape.d~

But since the entire issue isn't exactly clear, I'm reluctant to actually patch this out of BGT (the game-breaking case that Vlad mentioned is being patched with a MoveToPoint() however)

 

Can someone whose EscapeArea() works but EscapeAreaDestroy() fails attach their ACTION.IDS? Also, can someone check if ToBEx is involved?


Edited by Lollorian, 10 August 2015 - 07:44 AM.

"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#18 Vlad

Vlad
  • Member
  • 577 posts

Posted 10 August 2015 - 10:21 AM

Attached.

 

Salk, the list you have shown is very small. I have seen other dialogues having this issue. For example, ENDER.DLG and GERDE.DLG are not in the list. I've checked the vanilla BG1 installation and found only the EscapeArea() trigger in those dialogues, which means there are additional blocks in TP2 that do this patching.

Attached Files


Edited by Vlad, 10 August 2015 - 10:24 AM.


#19 Salk

Salk
  • Modder
  • 1411 posts

Donator

Posted 10 August 2015 - 08:04 PM

Salk, the list you have shown is very small. I have seen other dialogues having this issue. For example, ENDER.DLG and GERDE.DLG are not in the list. I've checked the vanilla BG1 installation and found only the EscapeArea() trigger in those dialogues, which means there are additional blocks in TP2 that do this patching.

 

Yes, of course.

 

The .dlg list is included in escape.d.



#20 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 11 August 2015 - 06:50 AM

Attached.

I saw nothing in your ACTION.IDS that might affect this :( Freaky bug is freaky!


"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod