View Issue Details

Category
整備班:YAYA
SeveritymajorReproducibilityalways 
Status closed 
Summary0000248: When a file is loaded with DICLOAD and the dic file has an error, the ghost will behave strangely
DescriptionI'm not sure how to explain this. I have a file set up to load with DICLOAD, but I made a mistake in the file, and instead of failing to load it my ghost began to output a single line of dialogue for EVERY event. OnSecondChange, OnMouseMove, even all of the functions that change the labels in the right click menu, everything. The dialogue it chose appears in two places in my ghost, but neither are anything special. I have no idea why those dialogues in particular would appear... Maybe it's because Select.LearnDismiss is the last function in the last file to load?

//in s_menu.dic
OnChoiceTimeout
{
    if nowmode == "RYS"
    {
        if "RYSrandQ" _in_ reference0 //If RYS asked you a question and you did not respond in time
        {
            "\RYS\s[2013]* (He seems disappointed...)\e"
        }
//This has been truncated to save space
}

//in rys_menu.dic, the last file to load
Select.LearnDismiss
{
    "\RYS\s[2013]* (He seems disappointed...)\e"
}
TagsNo tags attached.
Attach Tags
Attached Files
image.png (29,231 bytes)   
image.png (29,231 bytes)   
image-2.png (25,657 bytes)   
image-2.png (25,657 bytes)   
image-3.png (108,477 bytes)   
image-3.png (108,477 bytes)   

Activities

ponapalt

2021-08-30 15:20

administrator   ~0000618

Please provide minimal ghost set to reproduce this problem.
It's very hard to investigate why such things happen without code...

guest

2021-08-30 16:25

reporter   ~0000619

I found another bug while setting this up, I left some notes in the ghost about it.
To test the bug mentioned above, double click and load broken.dic. Moving the mouse over the ghost, double clicking, and the top two items of the right click menu should all return the timeout dialogue.
To test the other bug, double click and load extra.dic, then ask it to speak. The function added in extra.dic won't return anything in the AiTalk function, but you can use string expansion in script input to make it show.
If you load extra.dic first, and then load broken.dic, you can see the behavior of the first bug is affected by what the latest file to load is.
dicload_test.nar (507,212 bytes)

guest

2021-08-30 17:34

reporter   ~0000620

I'm steve02081504
I think these things may have something to do with the functions in the call stack, maybe
And I'm sorry to propose the dicload function. I think it brings more trouble than solving it

ponapalt

2021-08-30 21:59

administrator   ~0000621

Tc560-1 Fixed.
https://github.com/ponapalt/yaya-shiori/releases

Issue History

Date Modified Username Field Change
2021-08-25 14:57 guest New Issue
2021-08-25 14:57 guest File Added: image.png
2021-08-25 14:57 guest File Added: image-2.png
2021-08-25 14:57 guest File Added: image-3.png
2021-08-30 15:18 ponapalt Assigned To => ponapalt
2021-08-30 15:18 ponapalt Status new => assigned
2021-08-30 15:20 ponapalt Status assigned => feedback
2021-08-30 15:20 ponapalt Note Added: 0000618
2021-08-30 16:25 guest Note Added: 0000619
2021-08-30 16:25 guest File Added: dicload_test.nar
2021-08-30 16:25 guest Status feedback => assigned
2021-08-30 17:34 guest Note Added: 0000620
2021-08-30 21:59 ponapalt Status assigned => closed
2021-08-30 21:59 ponapalt Resolution open => fixed
2021-08-30 21:59 ponapalt Note Added: 0000621