Manual Updates

msmalik681 said:
If you use "load bob 3" then the engine will crash if you try to load stage 3 again for example if you reset the game after game over.

That is strange because all the entities which are on the memory are saved while you save, so when you load it back, it would load all the entities present on that stage again.
 
O Ilusionista: I know you frequently use openborstats, but didn't you bother to look at the {move} part for running? I'm not sure I'd consider it binary {move} has a few other options. I hate to be condescending, but it's from the info in openborstats glossary.

{move} is a binary value.

0 - can't run up/down
1 - can run up and down diagonally
2 - can start running by inputing uu or dd
4 - can turn 90 degrees while running (like in some capcom games)
3 = 1 + 2
7 = 1 + 2 + 4

I don't see that in the manual at all. It needs some change?
 
Hey. I don't know whether you'll want to update the manual immediately or wait until the change is in an actual release, but a recent change I made to the engine obsoletes a line in the "alphamask" description:

~At the time of this writing, alpha masking doesn't work with drawmethod effects. If present, drawmethod will override the alpha mask. This will be fixed in the future.

That line can be removed since the future is now, and alpha masking finally works with drawmethod effects. (Except for drawmethod alpha, but there's already a different line in the description explaining that masks can't be combined with other alpha effects.)

Actually, you could probably also remove the line about masks not working in 8-bit color mode, since 8-bit mode was removed from the engine a while ago.

Also, I don't know if recommended tools are within the scope of the manual, but it might be good to mention somewhere in the "alphamask" documentation that PalApply v2 can now be used to easily create masks that fit the scary-looking requirements around matching transparent pixels. :)
 
Am I hallucinating or there was WIN animation or something like that added like a year ago ? THe one that plays after you beat the level. I  definitely seen it on forums somewhere.
Ah ha! found it

        ani_id = ANI_DUCKRISE;
        ani_id = ANI_VICTORY;
        ani_id = ANI_LOSE;

Not in manual
Heres averythin  :D
Code:
        ani_id = ANI_SELECT;
		ani_id = ANI_SELECTIN;
		ani_id = ANI_SELECTOUT;
        newanim->sync = ANI_WALK;
        ani_id = ANI_SLEEP;
        ani_id = ANI_RUN;
        ani_id = ANI_BACKRUN;

        newanim->sync = ANI_WALK;
        newanim->sync = ANI_WALK;
        newanim->sync = ANI_WALK;
        ani_id = ANI_JUMP;
        ani_id = ANI_DUCK;
        ani_id = ANI_LAND;
            ani_id = ANI_PAIN;
            ani_id = ANI_PAIN2;
            ani_id = ANI_PAIN3;
            ani_id = ANI_PAIN4;
            ani_id = ANI_PAIN5;
            ani_id = ANI_PAIN6;
            ani_id = ANI_PAIN7;
            ani_id = ANI_PAIN8;
            ani_id = ANI_PAIN9;
            ani_id = ANI_PAIN10;
            ani_id = ANI_BACKPAIN;
            ani_id = ANI_BACKPAIN2;
            ani_id = ANI_BACKPAIN3;
            ani_id = ANI_BACKPAIN4;
            ani_id = ANI_BACKPAIN5;
            ani_id = ANI_BACKPAIN6;
            ani_id = ANI_BACKPAIN7;
            ani_id = ANI_BACKPAIN8;
            ani_id = ANI_BACKPAIN9;
            ani_id = ANI_BACKPAIN10;
        ani_id = ANI_SHOCKPAIN;
        ani_id = ANI_BURNPAIN;
        ani_id = ANI_BACKSHOCKPAIN;
        ani_id = ANI_BACKBURNPAIN;
            ani_id = ANI_FALL;
            ani_id = ANI_FALL2;
            ani_id = ANI_FALL3;
            ani_id = ANI_FALL4;
            ani_id = ANI_FALL5;
            ani_id = ANI_FALL6;
            ani_id = ANI_FALL7;
            ani_id = ANI_FALL8;
            ani_id = ANI_FALL9;
            ani_id = ANI_FALL10;
            ani_id = ANI_BACKFALL;
            ani_id = ANI_BACKFALL2;
            ani_id = ANI_BACKFALL3;
            ani_id = ANI_BACKFALL4;
            ani_id = ANI_BACKFALL5;
            ani_id = ANI_BACKFALL6;
            ani_id = ANI_BACKFALL7;
            ani_id = ANI_BACKFALL8;
            ani_id = ANI_BACKFALL9;
            ani_id = ANI_BACKFALL10;
        ani_id = ANI_SHOCK;
        ani_id = ANI_BACKSHOCK;
        ani_id = ANI_BURN;
        ani_id = ANI_BACKBURN;
            ani_id = ANI_DIE;
            ani_id = ANI_DIE2;
            ani_id = ANI_DIE3;
            ani_id = ANI_DIE4;
            ani_id = ANI_DIE5;
            ani_id = ANI_DIE6;
            ani_id = ANI_DIE7;
            ani_id = ANI_DIE8;
            ani_id = ANI_DIE9;
            ani_id = ANI_DIE10;
            ani_id = ANI_BACKDIE;
            ani_id = ANI_BACKDIE2;
            ani_id = ANI_BACKDIE3;
            ani_id = ANI_BACKDIE4;
            ani_id = ANI_BACKDIE5;
            ani_id = ANI_BACKDIE6;
            ani_id = ANI_BACKDIE7;
            ani_id = ANI_BACKDIE8;
            ani_id = ANI_BACKDIE9;
            ani_id = ANI_BACKDIE10;
        ani_id = ANI_SHOCKDIE;
        ani_id = ANI_BURNDIE;
        ani_id = ANI_BACKSHOCKDIE;
        ani_id = ANI_BACKBURNDIE;
        ani_id = ANI_CHIPDEATH;
        ani_id = ANI_GUARDBREAK;
        ani_id = ANI_RISEB;
        ani_id = ANI_BACKRISEB;
        ani_id = ANI_RISES;
        ani_id = ANI_BACKRISES;
            ani_id = ANI_RISE;
            ani_id = ANI_RISE2;
            ani_id = ANI_RISE3;
            ani_id = ANI_RISE4;
            ani_id = ANI_RISE5;
            ani_id = ANI_RISE6;
            ani_id = ANI_RISE7;
            ani_id = ANI_RISE8;
            ani_id = ANI_RISE9;
            ani_id = ANI_RISE10;
            ani_id = ANI_BACKRISE;
            ani_id = ANI_BACKRISE2;
            ani_id = ANI_BACKRISE3;
            ani_id = ANI_BACKRISE4;
            ani_id = ANI_BACKRISE5;
            ani_id = ANI_BACKRISE6;
            ani_id = ANI_BACKRISE7;
            ani_id = ANI_BACKRISE8;
            ani_id = ANI_BACKRISE9;
            ani_id = ANI_BACKRISE10;
        ani_id = ANI_RISEATTACKB;
        ani_id = ANI_BACKRISEATTACKB;
        ani_id = ANI_RISEATTACKS;
        ani_id = ANI_BACKRISEATTACKS;
            ani_id = ANI_RISEATTACK;
            ani_id = ANI_RISEATTACK2;
            ani_id = ANI_RISEATTACK3;
            ani_id = ANI_RISEATTACK4;
            ani_id = ANI_RISEATTACK5;
            ani_id = ANI_RISEATTACK6;
            ani_id = ANI_RISEATTACK7;
            ani_id = ANI_RISEATTACK8;
            ani_id = ANI_RISEATTACK9;
            ani_id = ANI_RISEATTACK10;
            ani_id = ANI_BACKRISEATTACK;
            ani_id = ANI_BACKRISEATTACK2;
            ani_id = ANI_BACKRISEATTACK3;
            ani_id = ANI_BACKRISEATTACK4;
            ani_id = ANI_BACKRISEATTACK5;
            ani_id = ANI_BACKRISEATTACK6;
            ani_id = ANI_BACKRISEATTACK7;
            ani_id = ANI_BACKRISEATTACK8;
            ani_id = ANI_BACKRISEATTACK9;
            ani_id = ANI_BACKRISEATTACK10;
        ani_id = ANI_PICK;
        ani_id = ANI_THROWATTACK;
        ani_id = ANI_UPPER;
        ani_id = ANI_CANT;
        ani_id = ANI_JUMPCANT;
        ani_id = ANI_CHARGE;
        ani_id = ANI_FAINT;
        ani_id = ANI_DODGE;
        ani_id = ANI_SPECIAL;
        ani_id = ANI_SPECIAL2;
        ani_id = ANI_JUMPSPECIAL;
        ani_id = ANI_JUMPATTACK;
        ani_id = ANI_JUMPATTACK2;
        ani_id = ANI_JUMPATTACK3;
        ani_id = ANI_JUMPFORWARD;
        ani_id = ANI_RUNJUMPATTACK;
        ani_id = ANI_RUNATTACK;    // New attack for when a player is running
        ani_id = ANI_ATTACKUP;    // New attack for when a player presses u u
        ani_id = ANI_ATTACKDOWN;    // New attack for when a player presses d d
        ani_id = ANI_ATTACKFORWARD;    // New attack for when a player presses f f
        ani_id = ANI_ATTACKBACKWARD;    // New attack for when a player presses b a
        ani_id = ANI_ATTACKBOTH;
        ani_id = ANI_GET;
        ani_id = ANI_GRAB;
        ani_id = ANI_GRABWALK;
         ani_id = ANI_GRABWALKUP;
        ani_id = ANI_GRABWALKDOWN;
         ani_id = ANI_GRABBACKWALK;
        ani_id = ANI_GRABTURN;
        ani_id = ANI_GRABBED;
        ani_id = ANI_GRABBEDWALK;
        ani_id = ANI_GRABWALKUP;
        ani_id = ANI_GRABWALKDOWN;
        ani_id = ANI_GRABBEDBACKWALK;
        ani_id = ANI_GRABBEDTURN;
        ani_id = ANI_GRABATTACK;
        ani_id = ANI_GRABATTACK2;
        ani_id = ANI_GRABFORWARD;
        ani_id = ANI_GRABFORWARD2;
           ani_id = ANI_GRABBACKWARD;
        ani_id = ANI_GRABBACKWARD2;
         ani_id = ANI_GRABUP;
        ani_id = ANI_GRABUP2;
        ani_id = ANI_GRABDOWN;
        ani_id = ANI_GRABDOWN2;
        ani_id = ANI_SPAWN;
        ani_id = ANI_RESPAWN;
        ani_id = ANI_THROW;
        ani_id = ANI_BLOCK;
		ani_id = ANI_BLOCKRELEASE;
		ani_id = ANI_BLOCKSTART;
        ani_id = ANI_CHARGEATTACK;
        ani_id = ANI_TURN;
        ani_id = ANI_FORWARDJUMP;
        ani_id = ANI_RUNJUMP;
        ani_id = ANI_JUMPLAND;
        ani_id = ANI_JUMPDELAY;
        ani_id = ANI_HITOBSTACLE;
        ani_id = ANI_HITPLATFORM;
        ani_id = ANI_HITWALL;
        ani_id = ANI_SLIDE;
        ani_id = ANI_RUNSLIDE;
        ani_id = ANI_BLOCKPAINB;
        ani_id = ANI_BLOCKPAINS;
            ani_id = ANI_BLOCKPAIN;
            ani_id = ANI_BLOCKPAIN2;
            ani_id = ANI_BLOCKPAIN3;
            ani_id = ANI_BLOCKPAIN4;
            ani_id = ANI_BLOCKPAIN5;
            ani_id = ANI_BLOCKPAIN6;
            ani_id = ANI_BLOCKPAIN7;
            ani_id = ANI_BLOCKPAIN8;
            ani_id = ANI_BLOCKPAIN9;
            ani_id = ANI_BLOCKPAIN10;
        ani_id = ANI_BACKBLOCKPAINB;
        ani_id = ANI_BACKBLOCKPAINS;
            ani_id = ANI_BACKBLOCKPAIN;
             ani_id = ANI_BACKBLOCKPAIN2;
            ani_id = ANI_BACKBLOCKPAIN3;
             ani_id = ANI_BACKBLOCKPAIN4;
            ani_id = ANI_BACKBLOCKPAIN5;
            ani_id = ANI_BACKBLOCKPAIN6;
              ani_id = ANI_BACKBLOCKPAIN7;
              ani_id = ANI_BACKBLOCKPAIN8;
            ani_id = ANI_BACKBLOCKPAIN9;
             ani_id = ANI_BACKBLOCKPAIN10;
        ani_id = ANI_DUCKATTACK;
        ani_id = ANI_WALKOFF;
        ani_id = ANI_EDGE;
        ani_id = ANI_BACKEDGE;
        ani_id = ANI_DUCKING;
        ani_id = ANI_DUCKRISE;
        ani_id = ANI_VICTORY;
        ani_id = ANI_LOSE;
}
 
Permission error
Jump to navigationJump to search
You do not have permission to do that, for the following reason:

You are not allowed to execute the action you have requested.
--
When i try to register
Love their reason BTW
 
Hi there!
I've come across a couple of things that do not work like described in the manual. I tested it with build 6412.

- blockfx
The engine does not accept a different path or filename other than block.wav.
If block.wav is missing in the sounds folder, it plays simply nothing - no matter which path or file name you set.
It doesn't use beat1.wav (made sure this file exists in my folder) instead either, like the manual says.

- cantgrab
If you set cantgrab to 0 it doesn't work (like it should), but setting it to 1 doesn't work either. It only works if you set it to 2 (!).
Is this a bug? Or has there been a change and the manual wasn't updated?
 
I had a litte free time so here are some updates:

2019.09.01

Added /fixed the following informations to the manual:
*~ Added more info about DUCK
*~ Added DUCKING, DUCKRISE, EDGE, BACKEDGE, LOSE, VICTORY, BACKBURNPAIN, BACKSHOCKPAIN

DUCK {players, enemies}
*~Optional.
*~This will only play in a stage whose max and min 'z' are the same (In other words, a 2-D stage).
*~Plays when a player presses down. They can use this to duck under high attacks.
*~This animation is also played if player is under platform which is shorter than his/her height. However in this state, player is forced to play this animation instead. In this state, pressing left or right only changes direction.
*~While ducking, player can perform either SLIDE or DUCKATTACK (see below).
*~If DUCKING is present (see below), this animation will play after it.
*~For enemy that use DUCK you can use "range {min} {max}" animation command for custom DUCK when the entity is in that custom range.



DUCKING {players, enemies, NPC} (6330+)
*~Optional.
*~This animation occurs before the "DUCK" animation. In other words, it's a transition between the idle and the duck animation.
*~After this animation ends, the entity will go to DUCK if the hold button is held.
*~Same rules of DUCK appliess here.


DUCKRISE {players, enemies, NPC} (6330+)
*~Optional.
*~This animation occurs after the "DUCK" animation if the down button is not being held. In other words, it's a transition between the DUCK and the IDLE animation.
*~Same rules of DUCK appliess here.


EDGE {players, enemies, NPC} (6330+)
*~Optional.
*~This animation is played when the player is on the edge of walls, platforms and holes, as if trying to balance so as not to fall.


BACKEDGE {players, enemies, NPC} (6330+)
*~Optional.
*~Works like EDGE animation, but happens when the edge is behind of the player.


VICTORY {players} (6330+)
*~Optional.
*~This animation is performedwhen you defeat all bosses in a level.


LOSE {players} (6330+)
*~Optional.
*~This animation is performed when you got a time over.


FALLLOSE {players} (6330+)
*~Optional.
*~This animation is performed when you got a time over while on air.

I will add more information later.
 
Something to fix on the manual:

Code:
cameraoffset {x} {z/y}

~This command is used to control point the camera focuses on.
~Camera means view of game. You won't see any effect of this unless your levels are wide.
~Positive value for {x} shifts camera right, for {z/y} shifts camera up.
~Negative value for {x} shifts camera left, for {z/y} shifts camera down.

Values for z/y are backwards: Positive value shifts camera down, not up.
Tested on OpenBOR 4.0 (Alpha)

Thanks!
 
There is an error or misprint in the way of executing two movements according to the manual:

Slide or Runslide does not performed with run/walk+down+jump but yes with run/walk+downforward+jump. (diagonal down+forward)

Attackup/down or Dodge during running or walking something similar:  It's not run/walk+down+down, it's run/walk+downforward+forward+downforward

It took me several days to realize, to see if it can be corrected on the wiki.
 
Cutscene Files section needs a update.

It only appears "animation" in documentation, but "video" is also available, which allows WEBM instead of GIF. I don't know if supports more formats.
For example:

Code:
video	data/scenes/5final2/end1.webm 0 1

video {path} {skip} {noskip}

~{path} points to an .webm file which will be played.
~{skip} is a flag that allows players to skip current animation. Set to 1 to enable it.
~{noskip} is a flag that prohibit skipping. Set to 1 prevent skipping.
~The size of animated video should be same as mod's resolution (see video.txt above)
~It is possible to use smaller video but there will be black box in unused space when scene is played
 
Toranks said:
There is an error or misprint in the way of executing two movements according to the manual:

Slide or Runslide does not performed with run/walk+down+jump but yes with run/walk+downforward+jump. (diagonal down+forward)

Attackup/down or Dodge during running or walking something similar:  It's not run/walk+down+down, it's run/walk+downforward+forward+downforward

It took me several days to realize, to see if it can be corrected on the wiki.

Actually the manual is not really saying that Attackup/down/Dodge is/can be performed while walking like with Slide anim. The misunderstanding here is that Attackup/down/Dodge are not really ever happening when you walk. The momment you press down+down when walk/run, your character is stoping the walk/run and then the engine is registering the down+down and performing the Attackup/down/Dodge.

So the actual imput for these anims is not walk+down+down but its down+down in reality. Now if you go crazy with your keys and throw this run/walk+downforward+forward+downforward, the character stops a little in between then keeps moving again and then somewhere in between of this madnes the engine is registering just the down+down/up+up and performing the animation if you do all of this fast. But again, this does not mean at all that the run/walk+downforward+forward+downforward or run/walk+down+down are the right imputs.

And i guess the same goes for the Runslide animation even tho i never really used this one.
 
I understand. With the movement as I say that pause is not appreciated, which facilitates dodge enemies agilely.  Otherwise you have to be too fast with your fingers!
 
Hi, is anyone can change these lines of the manual:
Code:
changelevelproperty(name, propertyvalue)

    ~Change a property value of current level, this function is not quite completed.
    ~name can be:
    ~"rock", the given value must be an interger value or numeric value that can be converted to integer value. The rule is same as rock command in level file, check the manual for details.
"rocking" not rock, it can be avoid some confusing situations :).
 
Last update on 2020.07.21 - by O Ilusionista
* Added better text format - bolds for itens names, and X, Y, Z, A, W and H have different colors. Warnings (deprecated, for example) are now in red.
* Fixed camera offset Z/Y reversed values
* Fixed “rocking” at changelevelproperty
* Added [VIDEO] for cutscenes
 
I recommend to add "frame NONE"
Code:
frame {path}

{path} points to a graphics file to be used in this animation.
If You dont want any graphics for the frame , You can use frame NONE
The frame will be displayed at the entity's position. It's about as simple as it sounds.
OpenBoR supports 256-color (or lower) .bmp, .gif, .pcx or .png files. However, .bmp is too big so choose between the latter. .png is recommended.
Image's extension can be omitted (e.g idle instead of idle.gif)
If they were more than one images with same name but different extension and there's no specified extension, OpenBoR will search in this order: .gif, .bmp, .pcx then .png
When the animation is played, OpenBoR will play from the 1st defined frame to the last. It will loop back if 'loop' command is declared (see above)
For 'frame' based commands and scripts, the 1st frame is counted from 0, the 2nd is 1 and so on.
If you want to convert a lot of images which are already in the desired pallette into .gif files, you may want to try Irfanview (at http://www.irfanview.us/).
 
bWWd thanks, I will add it soon.
For sake of organization, whenever you have a suggestion, please post in the DOCUMENTATION PROJECT topic http://www.chronocrash.com/forum/index.php?topic=2022.70
This topic is meant for being an update tracking topic.
 
Back
Top Bottom