Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Understanding YinYin's Sandbag
I'm sure everyone is familiar with the sandbag that @YinYin released.
However the DC behind it was never fully explained anywhere, and I had neither been bothered nor been able to decipher how it worked... until now.

The Sandbag uses the same data file, but consists of 2 ids.
id: 88 type: 0 file: sandbag\v1.dat
id: 888 type: 4 file: sandbag\v1.dat

The first one is a char. This allows you to select it in the menu, as well as serve as a Dummy.
The second one is a weapon. This is what allows the sandbag to change teams, as well as be affected by a different amount of gravity. Anyone can hit a weapon, but a weapon can only hit enemies.

The sandbag is meant to transform into a weapon via state: 8xxx (in this case, state: 8888).

When the game begins:
1) Sandbag starts at frame 0.
2) Gravity applied almost immediately; it is forced to go to frame 219(if its a char) or frame 60(if its a weapon).
Doesn't really matter which one is the landing frame since both will lead to frame 63, which is the important frame here for now.
3) Frame 63 - the sandbag opoint kind 2 a Dummy to be held by wpoint, and transforms itself into a Weapon via state 8888 at the same time.
4) Sanddbag loops back to frame 0 due to transform, and then returns to frame 64, which is the idle frame used here.

While all this is happening, the sandbag is still blinking. This is actually an extremely important detail.

When the blinking ends and the sandbag is hit by an enemy:
This is NORMALLY what happens:
1) Sandbag goes into frame 0-15 and changes to the enemy's team. However, the Dummy being held still belongs to Sandbag's original team.
2) Sandbag lands into frame 60 - it has weaponact: 398, a hidden itr and a hidden bdy.
3) Dummy in frame 398 opoints a 2nd dummy in frame 397, which has a hidden bdy. Since the dummy is a different team from Sandbag, Sandbag will hit the 2nd dummy.
4) The 2nd dummy gets injured and goes to frame 220/222/224/226, which retaliates with an itr that hits the Sandbag, causing Sandbag to reset back to the dummy's team (and go to frame 0-15 again).
5) Assuming the sandbag doesn't get hit again, now both Sandbag & Dummy are the same team when they land in frame 60. Nothing is hit, so it goes to frame 61, where it deletes Dummy and creates a new Dummy in frame 63.

So that's how YinYin made the Sandbag remember its team. But why does this behaviour only happen AFTER the first time Sandbag has been hit?
That's where the fact that the original Dummy was made during the blinking comes in.

Have you ever noticed that when Rudolf or Julian creates clones/mirror images while blinking, those clones will also be blinking?
Well, a character being held in wpoint during blinking will have some messed up behavior, as if the blinking state is being paused.

A related bug is that if you ever changed the wait of a weapon in state 1004 lying on the floor to anything other than 0, the weapon has a high chance of not being able to opoint stuff properly when it is held in your hand. Its as though the weapon's frame is being frozen at the exact wait moment; so if you picked up a weapon in the 1st tu of the frame, it will opoint, but if you picked it up in the 2nd tu of the frame, despite being in the same frame it will not opoint properly.

I don't know the full details of this bug, but that's exactly what happens - the original Dummy failed to opoint the 2nd dummy.

Since the 2nd dummy is never opointed, Sandbag never gets injured and thus remains switched to the enemy's team. It deletes the original Dummy and makes a new one that would opoint properly, and from now on it will always remember the enemy's team.

And that, is how YinYin's sandbag works - an absolute work of genius DCing.
[Image: uMSShyX.png]
Steiner v3.00 (outdated), Challenge Stage v1.51
Luigi's Easier Data-Editor, A-Man's Sprite Mirrorer
Working on the LF2 Rebalance mod.
Avatar styled by: prince_freeza
Thanks given by: rewlf2 , YinYin

Users browsing this thread: 1 Guest(s)