Problems with walls

dantedevil

Well-known member
This is the second time I try to work with walls and is really frustrating.
I'm using the ObEditor 1.5.9 and have managed to create what he wanted.
But the problem is during the game.
The characters go through the walls in the slams, or throws and disappear from the screen. Each character has the script antiwall in their movements, but still not working properly. The players and the enemies disappear and  are locked up on the screen, if you try to move, eventually falls back to the screen.
I've been thinking about abandoning the idea of using walls, but I want to use every effort to make the most complete mod.
I hope to find what the problem is.

Level coords are z 226 270
Here the level:
music data/music/stonehenge.ogg
background data/bgs/stage1-1/backgr.png
panel    data/bgs/stage1-1/backgr.png
order          a

Wall  0  250  0  0  168  9  9  255
Wall  252  237  -15  0  670  655  12  250
Wall  1137  250  -150  0  18  18  9  255
Wall  0  241  0  0  173  168  30  250
Wall  987  241  -5  0  168  168  30  250
Wall  524  244  -272  0  383  119  7  245

updatescript data/scripts/traileru.c

spawn1 205 30 10
spawn2 205 35 10
spawn3 205 40 10

settime        0
notime          1
#type            0 0 0
#direction      right
type            1 0 1
direction      both

spawn trash
coords 1043 260  0
at 0

#spawn Story
#alias 01_begin
#at 0

spawn empty
coords 848 254
at 0

spawn amazon
coords 555 240
health 80
#map  1 
at 5

All players have the same problem in this type of moves.
Here some examples:
Code:
anim grabbackward
	loop	0
        attackone 1
	offset	94 177
	bbox	0 0 0 0
	delay      1
        @cmd    spawnbind "static" 0 70 1 0 0
	frame	data/chars/chosen/make00.png
        sound   data/sounds/tele.wav
	delay   6
        @cmd    slamstart
        @cmd    position 8 55 10 1 0
	frame	data/chars/chosen/make00.png
        @cmd    antiwall 70 20 -1 
        @cmd    position 0 55 30 1 0
        sound   data/chars/chosen/at2.wav
	frame	data/chars/chosen/make01.png
	delay   4
        @cmd    position 0 40 30 1 0
	frame	data/chars/chosen/backat02.png
        @cmd    position 0 20 30 1 0
	frame	data/chars/chosen/backat02.png
        @cmd    spawnbind "static2" 0 70 1 0 0
        @cmd    antiwall 70 25 -1 
        @cmd    position 16 0 30 1 0
	frame	data/chars/chosen/backat03.png
        @cmd    position 0 -20 30 1 1
	frame	data/chars/chosen/backat03.png
        @cmd    position 0 -40 30 1 1
	frame	data/chars/chosen/backat04.png
	delay	1
        @cmd    antiwall 70 25 -1 
        @cmd    position 10 -60 30 1 1
	frame	data/chars/chosen/backat04.png
        @cmd    depost 0
        @cmd    throw 25 4 -5 1 0 0
	frame	data/chars/chosen/backat04.png
        sound   data/sounds/swosh.wav
	frame	data/chars/chosen/backat04.png
	delay   25
	frame	data/chars/chosen/backat04.png
	delay   5
	frame	data/chars/chosen/backat03.png
	frame	data/chars/chosen/backat02.png
	frame	data/chars/chosen/backat01.png
Code:
anim follow11
	 loop	0
	 offset	82 165
	 bbox	  0 0 0 0
         attackone 1
         fastattack 1
         landframe 14
	 delay      1
        jumpframe 3 3 0
        @cmd    cancelgrab
        @cmd    anti
	 frame	data/chars/midas/js3a.png
        @cmd    entergrab
	 frame	data/chars/midas/js3a.png
	 delay      4
        @cmd    slamstart2
        @cmd    position 8 90 15 1 0
	 frame	data/chars/midas/js3a.png
        @cmd    antiwall -75 25 -1 
        @cmd    position 8 80 15 1 0
	 frame	data/chars/midas/js2b.png
	 offset     90 177
        @cmd    position 1 62 40 -1 0
         frame	data/chars/midas/slam1b.png
         frame	data/chars/midas/slam1b.png
         frame	data/chars/midas/slam1b.png
        @cmd    position 2 18 76 -1 0
	 offset     84 174
         frame	data/chars/midas/slam2b.png
         frame	data/chars/midas/slam2b.png
	 delay      5
        @cmd    position 6 -5 80 -1 1
        @cmd    antiwall -75 25 -1 
         frame	data/chars/midas/slam3.png
         frame	data/chars/midas/slam3.png
	 offset     82 217
        @cmd    position 9 -72 45 -1 0
         frame	data/chars/midas/slam4.png
         frame	data/chars/midas/slam4.png
	 offset     82 177
	 delay  999
        @cmd    antiwall -75 25 -1 
        @cmd    position 9 -72 5 -1 0
         frame  data/chars/midas/slam4b.png
	@cmd	spawn01 "down" -60 0 -2
	 sound	data/sounds/land.wav
	 delay      1
         frame  data/chars/midas/slam4b.png
	 delay      15
         frame  data/chars/midas/slam4b.png
	 delay      5
        @cmd    depost 0
        @cmd    finish 35 4 -1 2.5 0 1
         frame  data/chars/midas/slam4b.png
         frame  data/chars/midas/slam4b.png
	 delay  12
         frame	data/chars/midas/slam4.png
         frame	data/chars/midas/slam4.png
         frame  data/chars/midas/roll7.png
         frame  data/chars/midas/roll8.png
	 delay	12
         frame  data/chars/midas/rise1.png
         frame  data/chars/midas/rise2.png
	 frame  data/chars/midas/rise3.png
Code:
anim follow6
	loop	0
        landframe 58
	offset	87 177
	fastattack 1
        attackone  1
	delay   1
        bbox    0 0 0 0
	frame	data/chars/raiden/s3.png
	delay   2
	move    14
        @cmd    slamstart2
        @cmd    position 10 50 5 -1 0
	frame	data/chars/raiden/s3.png
        @cmd    antiwall 60 20 -1
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
        @cmd    antiwall 60 20 -1
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
	frame	data/chars/raiden/s3.png
        @cmd    antiwall 60 20 -1
        @cmd    position 10 50 5 -1 0
	frame	data/chars/raiden/s3.png
	sound   data/sounds/indirect.wav
	move    0
        @cmd    depost 0
        @cmd    finish 25 1 0 2 0 0
	frame	data/chars/raiden/s3.png
	delay   3
        bbox    36 96 82 23
	frame	data/chars/raiden/s3.png
        bbox    73 86 47 38
	frame	data/chars/raiden/s2.png
	delay	2
        offset	95 159
        jumpframe 33 3 -1 0
	bbox	0 0 0 0
	sound   data/chars/raiden/rtorp2.wav
        attack  78 69 46 51 15 1 0 0 0
        frame	data/chars/raiden/j01.png
        frame	data/chars/raiden/j01.png
        frame	data/chars/raiden/j04.png
        sound   data/sounds/airpunch.wav
        frame	data/chars/raiden/j04.png
        frame	data/chars/raiden/j03.png
        frame	data/chars/raiden/j03.png
        frame	data/chars/raiden/j02.png
        sound   data/sounds/airpunch.wav
        frame	data/chars/raiden/j02.png
        frame	data/chars/raiden/j01.png
        frame	data/chars/raiden/j01.png
        frame	data/chars/raiden/j04.png
        frame	data/chars/raiden/j04.png
        sound   data/sounds/airpunch.wav
        frame	data/chars/raiden/j03.png
        frame	data/chars/raiden/j03.png
        frame	data/chars/raiden/j02.png
        frame	data/chars/raiden/j02.png
        frame	data/chars/raiden/j01.png
        frame	data/chars/raiden/j01.png
        frame	data/chars/raiden/j04.png
        frame	data/chars/raiden/j04.png
        sound   data/sounds/airpunch.wav
        frame	data/chars/raiden/j03.png
        frame	data/chars/raiden/j03.png
        frame	data/chars/raiden/j02.png
        frame	data/chars/raiden/j02.png
        attack    0 0 0 0
        delay   5
	offset	87 145
	bbox	68 61 42 59
	frame	data/chars/raiden/ja01.png
        delay   999
	offset	87 157
	bbox	72 57 37 80
	frame	data/chars/raiden/j2.png
        delay   15
	offset	87 177
	bbox	80 96 34 81
	frame	data/chars/raiden/u1.png
 
Sorry,  but i can't find the error.
I press select in your  post of the script,  then copy again.
But the same error log appear.
I don't remove anything,  simply copy all.
 
Took another look and oops... *I* left out the #define calls. Guess I cut them off when I was posting. Sorry about that.  :-[

Here's the whole thing:

Code:
#ifndef DC_WALL_SHUNT

    #define DC_WALL_SHUNT 1

    #define DC_WALL_SHUNT_VT_EMPTY  openborconstant("VT_EMPTY")
    #define DC_WALL_SHUNT_VT_PTR    openborconstant("VT_PTR")

    #define DC_WALL_SHUNT_ADJUST    15

#endif

void dc_wall_shunt(void ent, void bound){

	/*
	dc_wall_shunt
	Caskey, Damon Vaughn
	[url=http://www.caskeys.com/dc]www.caskeys.com/dc[/url]
	2010-05-15
	~2011-07-22
	~2015-03-08

	Shunt self away from wall if bound entity is inside of it (wall). Prevents getting
	a bound entity stuck within areas meant to be inaccesable or bounced to infinity
	by wall functions.

    ent:	Anchor entity.
	bound:	Bound entity.
	*/

    int
        wall,
        hole;

    // Anchor entity location.
    float
        x,
        y,
        z,
        anchor_b;

    // Bound offset and base.
    int
        check_x,
        check_z;

	// Verify the bound entity is valid.
	if(typeof(bound) != DC_WALL_SHUNT_VT_PTR)
    {
        log("dc_wall_shunt(<anchor entity>, <bound entity>): Invalid or missing bound entity.");
        return;
    }

	// Default to self if no anchor entity provided.
    if(typeof(ent) != DC_WALL_SHUNT_VT_PTR)
    {
        ent = getlocalvar("self");
    }

    // Get anchor location.
    x		= getentityproperty(ent, "x");
    y		= getentityproperty(ent, "y");
    z		= getentityproperty(ent, "z");

    // Get location of bound entity.
    check_x = getentityproperty(bound, "x");
    check_z = getentityproperty(bound, "z");
    anchor_b = getentityproperty(bound, "base");

    // Bound is right of anchor?
    if (check_x > x)
    {
        // Check wall and hole using temporary check location that is
        // made up of the bound entity's initial location w/adjustment (this
        // adjustment is just to enhance the visual appearance - it is not a technical 
        // necessity). If the temp location is A) in a wall, and B) not in a pit, 
        // decrement both the real and temp location, then repeat.
        do
        {
            // Decrement real and temp location.
            x--;
            check_x--;
            
            // Check for wall and hole.
            wall = (checkwall(check_x+DC_WALL_SHUNT_ADJUST, check_z) > anchor_b);
            hole = checkhole(check_x+DC_WALL_SHUNT_ADJUST, check_z);
        }
        while(wall || !hole);
    }
    else
    {
        // Same as above, except locations are incrmented.
        do
        {
            // Increment real and temp location.
            x++;
            offset_x++;

            // Check for wall and hole.
            wall = (checkwall(check_x+DC_WALL_SHUNT_ADJUST, check_z) > anchor_b);
            hole = checkhole(check_x+DC_WALL_SHUNT_ADJUST, check_z);
        }
        while(wall || !hole);
    }

    // Apply final calculated location to anchor.
    changeentityproperty(ent, "position", x, z, y);					//Apply location to anchor.

}

There are different ways you can call this script, but as mentioned above, I just call it from my damage function. That makes it pretty much automatic and I don't ever have to bother putting a call to it in the animation at all. Here is what it will look like in action. Notice right as Ax slams Longmoan into the wall ~00:20.

https://youtu.be/XWtCEdRZnJI?t=18s

Right at that point, Longmoan is damaged, which triggers this function. It finds that Longmoan is well inside a wall, and calculates exactly how far Ax should be pushed back so that Longmoan is against the wall instead of inside it. You can see clearly how Ax (and by extension Longmoan) are shunted back exactly the amount they need to be. Longmoan is damaged a second time when Ax finishes with the Atomic Drop, thus activating the function again. But since Longmoan is not inside a wall, no adjustments are made.

DC
 
Simple posting typo - should have been "check_x". Try to logic these things out if you can, some errors are pretty darn obvious and you'll help yourself a lot to try and figure them out yourself.

DC

Code:
#ifndef DC_WALL_SHUNT

    #define DC_WALL_SHUNT 1

    #define DC_WALL_SHUNT_VT_EMPTY  openborconstant("VT_EMPTY")
    #define DC_WALL_SHUNT_VT_PTR    openborconstant("VT_PTR")

    #define DC_WALL_SHUNT_ADJUST    15

#endif

void dc_wall_shunt(void ent, void bound){

	/*
	dc_wall_shunt
	Caskey, Damon Vaughn
	[url=http://www.caskeys.com/dc]www.caskeys.com/dc[/url]
	2010-05-15
	~2011-07-22
	~2015-03-08

	Shunt self away from wall if bound entity is inside of it (wall). Prevents getting
	a bound entity stuck within areas meant to be inaccesable or bounced to infinity
	by wall functions.

    ent:	Anchor entity.
	bound:	Bound entity.
	*/

    int
        wall,
        hole;

    // Anchor entity location.
    float
        x,
        y,
        z,
        anchor_b;

    // Bound offset and base.
    int
        check_x,
        check_z;

	// Verify the bound entity is valid.
	if(typeof(bound) != DC_WALL_SHUNT_VT_PTR)
    {
        log("dc_wall_shunt(<anchor entity>, <bound entity>): Invalid or missing bound entity.");
        return;
    }

	// Default to self if no anchor entity provided.
    if(typeof(ent) != DC_WALL_SHUNT_VT_PTR)
    {
        ent = getlocalvar("self");
    }

    // Get anchor location.
    x		= getentityproperty(ent, "x");
    y		= getentityproperty(ent, "y");
    z		= getentityproperty(ent, "z");

    // Get location of bound entity.
    check_x = getentityproperty(bound, "x");
    check_z = getentityproperty(bound, "z");
    anchor_b = getentityproperty(bound, "base");

    // Bound is right of anchor?
    if (check_x > x)
    {
        // Check wall and hole using temporary check location that is
        // made up of the bound entity's initial location w/adjustment (this
        // adjustment is just to enhance the visual appearance - it is not a technical
        // necessity). If the temp location is A) in a wall, and B) not in a pit,
        // decrement both the real and temp location, then repeat.
        do
        {
            // Decrement real and temp location.
            x--;
            check_x--;

            // Check for wall and hole.
            wall = (checkwall(check_x+DC_WALL_SHUNT_ADJUST, check_z) > anchor_b);
            hole = checkhole(check_x+DC_WALL_SHUNT_ADJUST, check_z);
        }
        while(wall || !hole);
    }
    else
    {
        // Same as above, except locations are incrmented.
        do
        {
            // Increment real and temp location.
            x++;
            check_x++;

            // Check for wall and hole.
            wall = (checkwall(check_x+DC_WALL_SHUNT_ADJUST, check_z) > anchor_b);
            hole = checkhole(check_x+DC_WALL_SHUNT_ADJUST, check_z);
        }
        while(wall || !hole);
    }

    // Apply final calculated location to anchor.
    changeentityproperty(ent, "position", x, z, y);					//Apply location to anchor.

}
 
No doubt you're right, I clearly saw "check_x" but honestly do not know how to fix it.
As you may have noticed I do not have perfect English.
It is not my native language, just understand and can make myself understood enough to communicate.
But in some more complex cases involving more data, as happens now with the script, frankly it is difficult to me.
I have all the will and learn and I have never surrendered.
If you look at my first post and now, you'll see that there was a major change in my knowledge, but even so, sometimes not enough.
I hope you know understand.
Thank you very much for your help.
 
Well DC, finally can test your script.
But during gameplay the same problems with walls back again.
I see your video and works ok, but if you see my video, you see the problem.
http://youtu.be/r5pLAzHvZgU

In the first post, you can see info about the stage and walls.

I test your script with Raiden.
Here the animation before use your script:
Code:
anim grabbackward
	 fastattack 1
	 loop       0
	 offset     87 177
	 bbox	    0 0 0 0
	 delay      1
         attackone 0
	 jumpframe 	2 3.3 0
	 landframe	7
	 sound      data/chars/raiden/rthrow.wav
	 frame	    data/chars/raiden/grab.png
        @cmd    slamstart
	 delay      35
        @cmd    antiwall -35 10 -1 
        @cmd    position 8 60 15 -1 1
	 frame	    data/chars/raiden/throw00.png
	 delay      30
	 offset     109 183
        @cmd    position 8 40 20 1 1
         frame      data/chars/raiden/throw01.png
	 delay      4
        @cmd    antiwall -35 10 -1 
        @cmd    position 10 25 20 1 1
         frame      data/chars/raiden/throw02.png
	 delay      1
         frame      data/chars/raiden/throw02.png
	 sound      data/sounds/punch.wav
        @cmd    antiwall -35 15 -1 
        @cmd    position 10 -30 -15 1 1
	 delay      2
         frame      data/chars/raiden/throw03.png
        @cmd    depost 0
        @cmd    throw 25 4 -4.5 -1.8 0 0
	 delay      999
         frame      data/chars/raiden/throw03.png
         flipframe  7
	 delay      15
  	 offset	    92 177
	 frame	    data/chars/raiden/u1.png

And here using your script:
Code:
anim grabbackward
	 fastattack 1
	 loop       0
	 offset     87 177
	 bbox	    0 0 0 0
	 delay      1
         attackone 0
	 jumpframe 	2 3.3 0
	 landframe	7
	 sound      data/chars/raiden/rthrow.wav
	 frame	    data/chars/raiden/grab.png
        @cmd    slamstart
	 delay      35
        @cmd    position 8 60 15 -1 1
	 frame	    data/chars/raiden/throw00.png
	 delay      30
	 offset     109 183
        @cmd    position 8 40 20 1 1
         frame      data/chars/raiden/throw01.png
	 delay      4
        @cmd    position 10 25 20 1 1
         frame      data/chars/raiden/throw02.png
	 delay      1
         frame      data/chars/raiden/throw02.png
	 sound      data/sounds/punch.wav
        @cmd    position 10 -30 -15 1 1
	 delay      2
         frame      data/chars/raiden/throw03.png
        @cmd    depost 0
        @cmd    throw 25 4 -4.5 -1.8 0 0
        @cmd dc_wall_shunt 60 60
	 delay      999
         frame      data/chars/raiden/throw03.png
         flipframe  7
	 delay      15
  	 offset	    92 177
	 frame	    data/chars/raiden/u1.png

Like  you see i remove all antiwall scripts, and set only your script.

That's what I'm doing wrong?
 
I'll have to look over your walls. They might be too thin. If the wall is not thick enough, the entity might not be in the wall, but instead all the way on the other side of it, in which case no wall detection script can possibly work.

DC
 
I still have problems with the walls, and the truth that is frustrating.
It has become a waste of time and I can not work in the new stages, to solve the problems of the walls that I have left in other stages.
I test every wal and the bug persist, the enemies and player pass throgh the wall in some slams.
It would be great if the script works for me as DC in the video og Golden Axe, but certainly I am far from that and I have no idea where the problem is.
The walls are a big headache!
 
Code:
#ifndef DC_WALL_SHUNT

    #define DC_WALL_SHUNT 1

    #define DC_WALL_SHUNT_VT_EMPTY  openborconstant("VT_EMPTY")
    #define DC_WALL_SHUNT_VT_PTR    openborconstant("VT_PTR")

    #define DC_WALL_SHUNT_ADJUST    15

#endif

void dc_wall_shunt(void ent, void bound){

	/*
	dc_wall_shunt
	Caskey, Damon Vaughn
	[url=http://www.caskeys.com/dc]www.caskeys.com/dc[/url]
	2010-05-15
	~2011-07-22
	~2015-03-08

	Shunt self away from wall if bound entity is inside of it (wall). Prevents getting
	a bound entity stuck within areas meant to be inaccesable or bounced to infinity
	by wall functions.

    ent:	Anchor entity.
	bound:	Bound entity.
	*/

    int
        wall,
        hole;

    // Anchor entity location.
    float
        x,
        y,
        z,
        anchor_b;

    // Bound offset and base.
    int
        check_x,
        check_z;

	// Verify the bound entity is valid.
	if(typeof(bound) != DC_WALL_SHUNT_VT_PTR)
    {
        log("dc_wall_shunt(<anchor entity>, <bound entity>): Invalid or missing bound entity.");
        return;
    }

	// Default to self if no anchor entity provided.
    if(typeof(ent) != DC_WALL_SHUNT_VT_PTR)
    {
        ent = getlocalvar("self");
    }

    // Get anchor location.
    x		= getentityproperty(ent, "x");
    y		= getentityproperty(ent, "y");
    z		= getentityproperty(ent, "z");

    // Get location of bound entity.
    check_x = getentityproperty(bound, "x");
    check_z = getentityproperty(bound, "z");
    anchor_b = getentityproperty(bound, "base");

    // Bound is right of anchor?
    if (check_x > x)
    {
        // Check wall and hole using temporary check location that is
        // made up of the bound entity's initial location w/adjustment (this
        // adjustment is just to enhance the visual appearance - it is not a technical
        // necessity). If the temp location is A) in a wall, and B) not in a pit,
        // decrement both the real and temp location, then repeat.
        do
        {
            // Decrement real and temp location.
            x--;
            check_x--;

            // Check for wall and hole.
            wall = (checkwall(check_x+DC_WALL_SHUNT_ADJUST, check_z) > anchor_b);
            hole = checkhole(check_x+DC_WALL_SHUNT_ADJUST, check_z);
        }
        while(wall || !hole);
    }
    else
    {
        // Same as above, except locations are incrmented.
        do
        {
            // Increment real and temp location.
            x++;
            check_x++;

            // Check for wall and hole.
            wall = (checkwall(check_x+DC_WALL_SHUNT_ADJUST, check_z) > anchor_b);
            hole = checkhole(check_x+DC_WALL_SHUNT_ADJUST, check_z);
        }
        while(wall || !hole);
    }

    // Apply final calculated location to anchor.
    changeentityproperty(ent, "position", x, z, y);					//Apply location to anchor.

}
[/quote]

Hey Dc!

Can you show me how to declare this in the animations?
Maybe i'm doing wrong.
I still have problems with the walls, and the truth that is frustrating.

Thanks!
 
Hello!

Has anyone tried this script DC or know how to use it?

According shown in the video of Golden Axe Hackjob, works very well.
But it would be good to explain how to use it well.
I tried, but I could not make it work.
 
There's nothing to it. Import the script, and execute it immediately before you release a bound entity. I've tested it in several mods - not just my own, and it always works perfectly for me.

DC
 
Ok, no doubt of you my friend.
You can tell me that I'm doing wrong?

Here a example using your script:
Code:
anim grabbackward
	 fastattack 1
	 loop       0
	 offset     87 177
	 bbox	    0 0 0 0
	 delay      1
         attackone 0
	 jumpframe 	2 3.3 0
	 landframe	7
	 sound      data/chars/raiden/rthrow.wav
	 frame	    data/chars/raiden/grab.png
        @cmd    slamstart
	 delay      35
        @cmd    position 8 60 15 -1 1
	 frame	    data/chars/raiden/throw00.png
	 delay      30
	 offset     109 183
        @cmd    position 8 40 20 1 1
         frame      data/chars/raiden/throw01.png
	 delay      4
        @cmd    position 10 25 20 1 1
         frame      data/chars/raiden/throw02.png
	 delay      1
         frame      data/chars/raiden/throw02.png
	 sound      data/sounds/punch.wav
        @cmd    position 10 -30 -15 1 1
	 delay      2
         frame      data/chars/raiden/throw03.png
        @cmd    depost 0
        @cmd    throw 25 4 -4.5 -1.8 0 0
        @cmd dc_wall_shunt 60 60
	 delay      999
         frame      data/chars/raiden/throw03.png
         flipframe  7
	 delay      15
  	 offset	    92 177
	 frame	    data/chars/raiden/u1.png

I'm by setting wrong?
 
You are passing "60 60" as arguments - I'm guessing those are some kind of coordinates, but the function isn't looking for those. In fact if you check your log there is probably an alert saying as much.

It needs the anchor entity (the attacker in a slam), and the bound entity.

I try to write all of my functions to catch errors and deal with them before the engine does. If you pass an invalid value or NULL() for the anchor entity, then the function will default to caller. But if you don't provide a valid bound entity, the function can't work, so it just writes a log alert and then exits without doing anything else. That's what is happening in your case.

DC
 
No. You still have to provide the bound entity no matter what - there's no way for the function to guess that like the anchor. It's just going to write an alert and do nothing.

DC
 
Sorry but can't understand,  can you give a example how declare in a animation?

I think the best is you share a complete animation using this script.
That is the best way to understand how use it right.
 
O Ilusionista said:
DC will this function detect the difference between a wall in front of you and when you are on top of a wall?

Well,  seems I'm not the only can't understand how works this.
And watching the amount of views, this topic has high interest for the community.
So please DC, show us how declare in a animation with a example.  And explain better how set that values.
Thanks!
 
Back
Top Bottom