User Tools

Site Tools


skills:jumping

Skill Jumping

Description

User can 'skip' over 1-2 spaces in a selected direction. Distance depends on weight carried , STR and DEX of the user. This skill may also be used as an attack. Jumping is a Physique skill type.

:!: The jumping attack works as a melee attack probably as of server version 1.70.y .
The current server 1.12.svn at metalforge .net seems not to compute the jump attack in attack_ob_simple() or the functions before correctly.
The server since v.1.70.y issues the message You feel more confident in combat. to the client, when one of the melee skills is readied.

Use Skill

Unknown, should immediately attempt to jump in the direction, the player is facing.
Syntax : use_skill jumping

Ready Skill

User can 'skip' over 1-2 spaces in a selected direction when fired with the shift key.
This will attack if a creature is in the way.
Syntax : ready_skill jumping

Mathematics

From Server source code file crossfire/server/skills.c function int jump(object *pl, int dir, object *skill) :
stats=str*str*str*dex * skill→level;
Which then translates as STR3 multiply DEX multiply SKILL_LEVEL
and this number is then divided by the carrying weight of the inventory to receive the sum of tiles to jump.

Example : STR=25, DEX=17, JUMP_LEVEL=4, PL_CARRYING=500 * 1000

( (25 * 25 *25) * 17 * 4 ) / 500000
( 15625 * 17 * 4 ) / 500000
( 1062500 ) / 500000
2.125

The jumping distance is limited to 2 tiles:

    if(pl->carrying!=0)		/* don't want div by zero !! */
	spaces=(int) (stats/pl->carrying);
    else
	spaces=2;	/* pl has no objects - gets the far jump */
 
    if(spaces>2)
	 spaces = 2;
    else if(spaces==0) {
	new_draw_info(NDI_UNIQUE, 0,pl,"You are carrying too much weight to jump.");
	return 0;

Discussion

The source code has a comment that asks for allowing a greater distance to jump :

* Perhaps we should allow more spaces based on level, eg, level 50
* jumper can jump several spaces?
skills/jumping.txt · Last modified: 2020/01/02 16:03 by karl