OpenBOR v3.0 Build 4453 (Windows/Wii/PSP)

Status
Not open for further replies.
ok tested and confirmed,  when you throw an enemy (grab + back + attack) in the end of the fall animation when it hit the ground a new animation is triggered (i dont know if it get double damage or not but it will start another animation that in some previous version dont happen

tested with:
my projects (xmen and fantastic four)
super final fight gold plus
avengers battle force
fight history revenge
default bor game

with all those games happens the same, a new pain/fall animation are trrigered on the end of the throw



 
Ok thanks good info.
I'll check when possible.
This is the latest working build?
https://github.com/DCurrent/openbor/commit/21f884c275281a0b8402297379172c25b639ddc6
If you can compile..
 
White Dragon, I've tested the version 4583 and I can confirm the damage on landing issue. It seams to be related with the bug #22 I've reported at Github - when you fixed that bug, you created another in all throws.

Take a look at the video below:
- The first two clips are from the 4583 build. Thor uses a scripted slam (which uses damageonlanding) for the first move. For the second move, its the bug I've reported at GitHub (see how the enemy goes to the SHOCK animation after the uppercut). Notice how the enemy bounces when hit the ground - they move forward and they reset to the default FALL animation (when they should continue with the FALL9 animation as they were using before)

- The last 2 clips are from the version I am still using (4419). See how the enemy bounces - it moves forward and continue with the FALL9 animation with no reset. Now, notice the Thor uppercut move - the enemy won't go to the SHOCK animation once hit. This happens because the enemy was throw (script) and the code has a damageonlanding on it.  Btw, I've tested it and this is not the case where you can't force an enemy to go to a different fall animation if the knockdown force isn't greater than the last hit - this happens only with damageonlanding.


Side question: its normal OpenBOR to load a mod way faster if its on a .pak and not in a data folder? The game loads way faster in .pak mode
 
O Ilusionista said:
Side question: its normal OpenBOR to load a mod way faster if its on a .pak and not in a data folder? The game loads way faster in .pak mode

Yes. Loading from data can be slower, because the engine is still still looking for content in the .pak file.

You can see this in action: Remove some content from one and leave in the other - both are still loaded. When there is a conflict content the unpacked data folder takes precedence.

DC
 
Well...
So, try to talk about the solution.
This bug exists because when damage on landing is set, the enemy doesn't change animation. Why? Because there is a return 1 before the fall animation change in common_takedamage() function.
I'm thinking...
I can add an entity prop to store latest attack_type example attack_normal or attack_normal9 etc...
Then I can delete that "return 1" and set the attack_type when the enemy lands....
What do you think about this?
In fact when damage on landing is set the attack_type is force set to atk_land.
Tell me what you think 😀


I can instance adding to entity a s_collision_attack as last_atk (more memory) for any change in the future or just an int last_atk_type to store just the last atk_type....
Tell me  ;)
 
If I am reading the description of the "bug" right, it isn't a bug at all.

If a target is thrown to the ground with a damage_on_landing value defined, the damage type applied is ATK_LAND. This is defined behavior as of 3829. Previously the damage was undefined, meaning the engine always defaulted to ATK1. It did the same thing for items, pits, time over, and so on. In turn that meant there was no way to reliably detect damage from a ground landing or set up attack/defense for it.

At the moment there is no associated reaction animation for these special types. What I think you are seeing is the result of ATK_LAND being applied and the fall reverting to default, but that's what should have always happened.

I think we need to look at how your script works and confirm this in fact a real bug before continuing to modify the engine. Its behavior is set up the way it is for a very good reason. If you want different results from your throw that's not hard to do.

DC
 
I use the scripted slam by BB. From what I saw, the code works fine. The way OpenBOR treats the damage on landing, in this case, is kinda funny.

The issue I have has nothing witht the damage per se, but with the animation which doesn't change upon hit - which should. I don't it worth the trouble to code something to bypass it. Rather, I will make it a scripted slam again (like the other move is) and its good.

But thanks anyway.
 
found a weird bug when you re-spawn and all enemies are knocked down from that point on all enemy weapons are messed up.  So a enemy will be in his base model (I can tell by his colour) and they will be trying to do attacks from their weapon 2 model but it wont work properly as the base enemy has no animation script but weapon 2 does.  I solved this by using "nodropen" command in models.txt to stop knockdown on re-spawn.


"lifescore 0" in models.txt causes engine to crash just before you hit someone.  this is like the bug with frame "delay 0" not working simple fix is setting it to -1 but it is still a bug.
 
msmalik681 said:
found a weird bug when you re-spawn and all enemies are knocked down from that point on all enemy weapons are messed up.  So a enemy will be in his base model (I can tell by his colour) and they will be trying to do attacks from their weapon 2 model but it wont work properly as the base enemy has no animation script but weapon 2 does.  I solved this by using "nodropen" command in models.txt to stop knockdown on re-spawn.


"lifescore 0" in models.txt causes engine to crash just before you hit someone.  this is like the bug with frame "delay 0" not working simple fix is setting it to -1 but it is still a bug.

Please DC can you see this strange weapon bug?
maybe is in set_model_ex()
in rows:
Code:
        for(i = 0; i < max_animations; i++)
        {
            if(!newmodel->animation[i] && model->animation[i] && model->animation[i]->numframes > 0)
            {
                newmodel->animation[i] = model->animation[i];
            }
        }
on animation copy.
BTW to avoid this bug, you can set animations equals for every weapon. model1 and model2 need to have same animation (empty animation too).
Can you explain better the delay 0 bug?

O Ilusionista said:
I use the scripted slam by BB. From what I saw, the code works fine. The way OpenBOR treats the damage on landing, in this case, is kinda funny.

The issue I have has nothing witht the damage per se, but with the animation which doesn't change upon hit - which should. I don't it worth the trouble to code something to bypass it. Rather, I will make it a scripted slam again (like the other move is) and its good.

But thanks anyway.
O ilusionista, try this build:
http://www80.zippyshare.com/v/mMSP0KZA/file.html
 
The whole point of me using weapons because they inherit the base models animations and i can just add new attacks and behaviour.


The delay 0 bug is when you declare delay 0 the animation should stop but it does not but delay -1 works.  most of my menu system is just a non skip text entity with delay -1 on animations and keyscripts to force frame movement.
 
Delay 0 not stopping animations is not a bug. That's just the way the engine is designed. Unless I'm mistaken (been a while), a delay if 0 is the default value assigned when a frame has no delay attribute defined. That's how openbor knows to use delay from preceeding frame. There's no goid way to change that without breaking current functionality.
 
O ilusionista, try this build:
Same as above - you can hit thrown enemies (#22) but the double fall animation takes place...

After seeing DC's explanation, I think its better to leave it alone.
 
I have a problem when I try to use this in a for loop the engine crashes.
Code:
if(i%2=0)



and the engine reports:

Script compile error in 'data/scripts/menugo.c':  line 0, column 0
Script error: failed to import 'data/scripts/menugo.c': failed to compile
 
As DC said delay 0 is not a bug! But it means no delay and the minimun time is set (delay * GAME_SPEED / 100) that is to delay after 1/GAME_SPEED sec.
GAME_SPEED is set to 200.

O'Ilusionista I checked and no double fall animation.
Check if you set a jumpframe into death animation first. If so there is a wrong script i n your animation and not good use of damage on landing.
Check and tell me please.
 
msmalik681 said:
I have a problem when I try to use this in a for loop the engine crashes.
Code:
if(i%2=0)



and the engine reports:

Script compile error in 'data/scripts/menugo.c':  line 0, column 0
Script error: failed to import 'data/scripts/menugo.c': failed to compile

You are in error, you attempt to assign:
if ( i%2=0 )
but correct form is the compare:
if ( i%2==0 )

msmalik681 said:
found a weird bug when you re-spawn and all enemies are knocked down from that point on all enemy weapons are messed up.  So a enemy will be in his base model (I can tell by his colour) and they will be trying to do attacks from their weapon 2 model but it wont work properly as the base enemy has no animation script but weapon 2 does.  I solved this by using "nodropen" command in models.txt to stop knockdown on re-spawn.


"lifescore 0" in models.txt causes engine to crash just before you hit someone.  this is like the bug with frame "delay 0" not working simple fix is setting it to -1 but it is still a bug.

Please TEST this private build:
http://www103.zippyshare.com/v/clcdjpks/file.html
and
http://www25.zippyshare.com/v/mJ1ffT8f/file.html

in this build the copy of animation is total.
Check and report please!!  ;)

Ps. lifescore 0 is now fixed!
 
O'Ilusionista I checked and no double fall animation.
Check if you set a jumpframe into death animation first.
Check and tell me please.
No, there is no jumpframe in death animation

Code:
anim	death
	nodieblink	2
	offset	92 115
	delay	5
	quakeframe	0 1 -6
	drawmethod	256 256 0 0 0 0 0 121
	frame	data/chars/enemies/dummy/fall4.gif
	nodrawmethod
	frame	data/chars/enemies/dummy/fall4.gif
	drawmethod	256 256 0 0 0 0 0 121
	frame	data/chars/enemies/dummy/fall4.gif
	nodrawmethod
	frame	data/chars/enemies/dummy/fall4.gif
	@cmd	spawn000 "sboom" 0 20 0
	drawmethod	256 256 0 0 0 0 0 121
	frame	data/sprites/0empty.gif

As you can see on the previous video, the enemie jumps again when it lands, because it interrupts the previous animation

If so there is a wrong script i n your animation and not good use of damage on landing.
The "usage of damage on landing" comes from BloodBane's code. If he never had this issue, seams that the code is fine.

Code:
	@cmd	slamstart 10
	@cmd	position 0 35 1 -1 0
	sound	data/sounds/grab.wav
	frame	data/chars/thor/grab00.gif
	delay	3
	@cmd	position 1 24 43 -1 0
	frame	data/chars/thor/lift00.gif
	@cmd	position 1 17 56 -1 0
	@cmd	randSound0 "chars/thor/att3.wav" "chars/thor/att4.wav"
	frame	data/chars/thor/lift01.gif
	@cmd	position 1 0 71 1 0
	@cmd	depost 0
	@cmd	throw 35 5 0 5 0 0
	sound	data/sounds/vuu2.wav
	frame	data/chars/thor/lift03.gif
	delay	10
	@cmd	clearL
	frame	data/chars/thor/lift04.gif
	bbox	216 157 37 61

But as I said, if this will break something on the engine, it's better to leave it alone. I think we have worse bugs to care about (juggling, not working killenetity and/or stucking entities on the screen, mirror issues, etc).
 
Status
Not open for further replies.
Back
Top Bottom