Posted this on /r/maplestory and my post got removed by mods. Reposting it here!
Anyway, for some odd reason I have nothing to do so I'm looking at the game data again and rehashing my scripts. I seem to have discovered some undefined behavior in the equipment data that I wanted to see if anyone could figure out what happens... for SCIENCE.
Warning:
Proceeding with this could cause undefined behavior on the client and may cause your game to crash or autoban you. This is not an exploit which would give you any advantage in the game. It's for this reason that I'm deciding to share this at all. Proceed at your own risk.
Explanation (TL;DR below):
Suppose there's an image in the game data called walk/1
The game data allows you to define "walk/1/_inlink" if you want to the client to use a different image within the same game data file. Or, you could specify "walk/1/_outlink" to point to an image located in a different game data file. In either case, because an _inlink or _outlink parameter is defined for the image, "walk/1" is for sure a placeholder image.
In the creation of my scripts, I was performing some tests to make sure my scripts were correct. The particular test I was running was, "Can I have an _outlink point to another image with an _outlink? Are there any circular references?" So I was blazing through the game data to test if this could actually happen, and my parser crashed.
Why? Well, an _inlink was defined to point to an image that did not exist. So the game data was referencing an image that's simply not there.
In this case, the itemID is Character.wz/Weapon/01702168.img and the image is "49/swingP1/0/effect/_inlink" which points to "48/backspin/1/effect", and 48/backspin/1/effect does not exist within that file.
"49" here is a reference to the Gun type weapon. SwingP1 is used when you try to perform a basic attack with a Gun that happens to be a swing (not a stab or slash - a swing). The "0" refers to this being the first image in the animation, and "effect" just means it's the effect that's rendered.
TL;DR:
Nexon makes bad data.
Does anyone have the item "Holiday Tree Ring"? It's a cash shop weapon. I'm guessing if you equip that weapon over a gun and try to continue to perform basic attacks until your character swings with it, that will cause the game data to point to an image which doesn't exist, potentially causing undefined behavior leading to an unwanted game crash, autoban, or something-or-another I don't know. Or maybe the image doesn't render or something.
Here's the icon for the Holiday Tree Ring:
![[Image: unIYFGh.png]](https://i.imgur.com/unIYFGh.png)
EDIT: Problem appears to be partially solved thanks to a friend:
https://mapletip.com/maplestory-equipment/Holi
Looks like in later versions of GMS, they disallow this item on guns and knucklers (where the problem is). So I'm guessing someone discovered a problem with this item on guns and knucklers, it was reported, and instead of fixing the problem on the item they just left the data and coded an exception to not allow guns/knucklers to equip it.
The problem is that handcannons also link to this:
_inlink not exist! :: 49/swingP1/0/effect/_inlink --> 48/backspin/1/effect
_inlink not exist! :: 49/swingP1/1/effect/_inlink --> 48/backspin/2/effect
_inlink not exist! :: 53/swingP1/0/effect/_inlink --> 48/backspin/1/effect
_inlink not exist! :: 53/fly/0/effect/_inlink --> 49/doublefire/0/effect
_inlink not exist! :: 53/fly/1/effect/_inlink --> 49/doublefire/1/effect
53 here relates to hand cannons. So it's a swing on a hand cannon or flying (jumping in the air). Maybe if someone equips a hand cannon then tries to jump or swing, this will throw some weird exception and still crash.
Anyway, for some odd reason I have nothing to do so I'm looking at the game data again and rehashing my scripts. I seem to have discovered some undefined behavior in the equipment data that I wanted to see if anyone could figure out what happens... for SCIENCE.
Warning:
Proceeding with this could cause undefined behavior on the client and may cause your game to crash or autoban you. This is not an exploit which would give you any advantage in the game. It's for this reason that I'm deciding to share this at all. Proceed at your own risk.
Explanation (TL;DR below):
Suppose there's an image in the game data called walk/1
The game data allows you to define "walk/1/_inlink" if you want to the client to use a different image within the same game data file. Or, you could specify "walk/1/_outlink" to point to an image located in a different game data file. In either case, because an _inlink or _outlink parameter is defined for the image, "walk/1" is for sure a placeholder image.
In the creation of my scripts, I was performing some tests to make sure my scripts were correct. The particular test I was running was, "Can I have an _outlink point to another image with an _outlink? Are there any circular references?" So I was blazing through the game data to test if this could actually happen, and my parser crashed.
Why? Well, an _inlink was defined to point to an image that did not exist. So the game data was referencing an image that's simply not there.
In this case, the itemID is Character.wz/Weapon/01702168.img and the image is "49/swingP1/0/effect/_inlink" which points to "48/backspin/1/effect", and 48/backspin/1/effect does not exist within that file.
"49" here is a reference to the Gun type weapon. SwingP1 is used when you try to perform a basic attack with a Gun that happens to be a swing (not a stab or slash - a swing). The "0" refers to this being the first image in the animation, and "effect" just means it's the effect that's rendered.
TL;DR:
Nexon makes bad data.
Does anyone have the item "Holiday Tree Ring"? It's a cash shop weapon. I'm guessing if you equip that weapon over a gun and try to continue to perform basic attacks until your character swings with it, that will cause the game data to point to an image which doesn't exist, potentially causing undefined behavior leading to an unwanted game crash, autoban, or something-or-another I don't know. Or maybe the image doesn't render or something.
Here's the icon for the Holiday Tree Ring:
![[Image: unIYFGh.png]](https://i.imgur.com/unIYFGh.png)
EDIT: Problem appears to be partially solved thanks to a friend:
https://mapletip.com/maplestory-equipment/Holi
Looks like in later versions of GMS, they disallow this item on guns and knucklers (where the problem is). So I'm guessing someone discovered a problem with this item on guns and knucklers, it was reported, and instead of fixing the problem on the item they just left the data and coded an exception to not allow guns/knucklers to equip it.
The problem is that handcannons also link to this:
_inlink not exist! :: 49/swingP1/0/effect/_inlink --> 48/backspin/1/effect
_inlink not exist! :: 49/swingP1/1/effect/_inlink --> 48/backspin/2/effect
_inlink not exist! :: 53/swingP1/0/effect/_inlink --> 48/backspin/1/effect
_inlink not exist! :: 53/fly/0/effect/_inlink --> 49/doublefire/0/effect
_inlink not exist! :: 53/fly/1/effect/_inlink --> 49/doublefire/1/effect
53 here relates to hand cannons. So it's a swing on a hand cannon or flying (jumping in the air). Maybe if someone equips a hand cannon then tries to jump or swing, this will throw some weird exception and still crash.


![[Image: 1AFGEvp.png]](https://i.imgur.com/1AFGEvp.png)
![[Image: h7WJsc0.png]](https://i.imgur.com/h7WJsc0.png)
![[Image: E1jhEjl.png]](https://i.imgur.com/E1jhEjl.png)

![[Image: G24PJ0i.png]](https://i.imgur.com/G24PJ0i.png)
![[Image: b6LVqXM.png]](https://i.imgur.com/b6LVqXM.png)