Ultimate Double Dragon

Complete LOTDD - Now: Ultimate Double Dragon 3.0 (Final)

No permission to download
Project is completed.
It's about:

Code:
Levels.txt
Skipselect 1

I have a custom select screen but it won't get recognized after any of the playables die, dunno what to do insteado of having "Skipselect Billy Jimmy" and forcing both playables to each controller. any ideas?

EDIT: Just by having skipselect by its own solved the problem
 
I think I'm having an issue with Pausetime value whithin the Attack info, for instance, while hitting 2 enemies with high Pausetime values at the same time they kinda get doubled, dunno how to explain it but just by hitting 2 enemies at the same time, the Pausehit value gets doubled or something like that taking more time that it should. Is thos normal? I remeber this as a bug before? 
 
Mr.Q! said:
while hitting 2 enemies with high Pausetime values at the same time they kinda get doubled, dunno how to explain it but just by hitting 2 enemies at the same time, the Pausehit value gets doubled

Yes, this is normal as far as I know. The more enemies you hit at the same time, the bigger the pause it will be. Just put a shorter pausetime.
 
Yes, as coded, pauses are cumulative to the attacker, but not to the victim. So if you hit 50 guys with an attack pause of 10, they each get paused 10, but you get paused a total of 500.

DC
 
Oh Ok I see, thanks guys, I didn't remeber that feature working that way, but I'll think on something, or maybe it was just an exception since my game won't feature too many enemies chasing you anyways. Now, is there any way to prevent enemies within range to attack as I lay on the ground? Like, they knock you out, and enemies don't stop attacking you while you're playing anim rise or something like that? or maybe is there any way to make enemies attack you only if they detect a positibe bbox value? I don't like getting cornered and having enemies attacking while I'm getting up
 
Now, is there any way to prevent enemies within range to attack as I lay on the ground? Like, they knock you out, and enemies don't stop attacking you while you're playing anim rise or something like that?
They won't try to attack you if you have no active bbox.
(kudos to who coded this on the engine, by the way)
 
O Ilusionista said:
Now, is there any way to prevent enemies within range to attack as I lay on the ground? Like, they knock you out, and enemies don't stop attacking you while you're playing anim rise or something like that?
They won't try to attack you if you have no active bbox.
(kudos to who coded this on the engine, by the way)

Hmmm my enemies are punching the air while I'm playing anim fall and then anim rise anyways, with no active bbox
 
That is really strange. I never saw it happening. On my game, players has no bbox on their fall and rise animations so the enemies never try to attack them on those animations.
 
Here's a video about this. BTW I don't know you guys but DDIV is asking for a proper Openbor mod, because that's what it is, heck , even an mod could properly bring them back to life instead of what we got as the 4th game which SUCKS, there're lots of reasons why it does. As you can see ROTDD is a proper DD game, the enemy behaviour is the right one, well I'm getting this in Openbor, I have always get that in every single mod I've done before, and DDIV does the same, but DDIV just sucks anyways so


Code:
anim fall1
	 loop       0
	 delay      60
	 offset     80 129
	 bbox       0 0 0 0
	 landframe  2
         frame      data/chars/1billy/fall01.gif
	 delay      999
	 bbox       0 0 0 0
         frame      data/chars/1billy/fall02.gif
	 delay      12
         frame      data/chars/1billy/fall02.gif
	 sound      data/sounds/fall1.wav
         frame      data/chars/1billy/fall03.gif

anim rise
	 loop       0
	 delay      40
	 offset     80 129
	 bbox       0 0 0 0
         frame      data/chars/1billy/fall03.gif
	 delay      12
         frame      data/chars/1billy/rise01.gif
         frame      data/chars/1billy/rise02.gif

EDIT: Bloodbane sent me this function to prevent this from happening:

Code:
Alright, here's the function:

void attackoff()
{// Cancels attack if targetted player is fallen on ground
    void self = getlocalvar("self");
    void target = findtarget(self); //Get nearest player

    if(target!=NULL()){
      void PAnim = getentityproperty(target, "animationID");

      if(PAnim == openborconstant("ANI_FALL") || PAnim == openborconstant("ANI_RISE")){
        setidle(self, openborconstant("ANI_IDLE"));
      }
    }
}
 
One old solution done in Golden Axe mods is to make the player invisible while they are down. It's just a minor update script, very light and easy to copy into your module. When players fall down, their Stealth is turned on. Enemies will then go after the other player, go get a weapon, or back off and wander a bit if there's nothing else for them to do (just like earlier Double Dragon games). When player gets up, Stealth turns off and enemies come after you again. Simple as that.

Incidentally that's exactly how old games are coded. Rather than try to add in some sophisticated alternate behavior when players are down, they're just made invisible to the enemy.

The only downside is it makes life a bit complicated if you want to use stealth/invisibility for other things, but I'm assuming you aren't since this is a Double Dragon game. Want to give it a try?

DC
 
Mr.Q! take a look at your animation:

anim fall1
loop      0
delay      60
offset    80 129
bbox      0 0 0 0
landframe  2
        frame      data/chars/1billy/fall01.gif
delay      999
bbox      0 0 0 0
        frame      data/chars/1billy/fall02.gif
delay      12
        frame      data/chars/1billy/fall02.gif
sound      data/sounds/fall1.wav
        frame      data/chars/1billy/fall03.gif

anim rise
loop      0
delay      40
offset    80 129
bbox      0 0 0 0
        frame      data/chars/1billy/fall03.gif
delay      12
        frame      data/chars/1billy/rise01.gif
        frame      data/chars/1billy/rise02.gif

You do have active bbox (even if they are set to 0, they are active).
Just remove them from the animation and the enemies won't try to attack.
 
Hm.. this should not happen ???
One thing i noticed, there is no need to have "bbox      0 0 0 0"  at all if you don't need it. Just remove it completely. I'm using the engine build 4153 for my game and i can't say if this is maybe causing the problem on the new engine version (if) you are using. Just try to remove it completely and see what happens.

Edit: O Ilusionista, wow we posted about the same thing the same time  ;D
By the way, normally "bbox      0 0 0 0" is not active and the enemies will not try to attack you. I don't know if someone changed this on the latest engine versions or it's a bug. But for sure it was not like that and it's not normal.
 
Damon Caskey said:
One old solution done in Golden Axe mods is to make the player invisible while they are down. It's just a minor update script, very light and easy to copy into your module. When players fall down, their Stealth is turned on. Enemies will then go after the other player, go get a weapon, or back off and wander a bit if there's nothing else for them to do (just like earlier Double Dragon games). When player gets up, Stealth turns off and enemies come after you again. Simple as that.

Incidentally that's exactly how old games are coded. Rather than try to add in some sophisticated alternate behavior when players are down, they're just made invisible to the enemy.
Want to give it a try?

DC

I wish to try it.
Could you show me, please?
 
Birnbaum said:

Sure. Copy the function into you updated.c script (that's not a typo - use updated.c, not update.c), or make one if it doesn't already exist. Alternatively (and better), copy the function to a new file of your choosing and #import it to updated.c

Once you've done that, run the function in updated.c main().

Here's what it looks like, with my custom exceptions included so you can see how those work.

DC
 
Damon Caskey by a logic point of view, won't it be way better to include this function on a onfallscript, instead on an updated.c, which will run after every engine update?

By the way, normally "bbox      0 0 0 0" is not active and the enemies will not try to attack you.
magggas yeah I know. Its the only thing I can think about. I am sure that enemies won't try to hurt you if you have no bbox, but I am not sure that they will act the same if you have "bbox 0 0 0 0".

I would need to confirm this, but because when you don't have a bbox, its value is NULL. When you have "bbox 0 0 0 0", its value is zero. Zero and null aren't the same thing.
 
O Ilusionista said:
Damon Caskey by a logic point of view, won't it be way better to include this function on a onfallscript, instead on an updated.c, which will run after every engine update?

No, because it has to unset the stealth too.

DC

 
You can then unset it on the rise animation, no?
Don't get me wrong, but I think its a little too much to use an updated function just for that.
 
O Ilusionista said:
You can then unset it on the rise animation, no?
Don't get me wrong, but I think its a little too much to use an updated function just for that.

By the time you go around making sure every entity has a call in their rise animations, rise attack animations, and then account for the instability of various factors still managing to skipping over your manual switch, you could have just put it in the updated.c and got it over with. It also happens to be a fairly optimal script. Looping over the entity count is actually quite fast, and the loop exits itself instantly the first time any condition fails.

Update isn't evil when you do it right.
 
Back
Top Bottom