This shows you the differences between two versions of the page.
Next revision | Previous revision Last revision Both sides next revision | ||
skills:jumping [2007/01/24 21:17] 127.0.0.1 external edit |
skills:jumping [2018/02/21 20:15] karl Add hint that jumping as attack may work since server version 1.70.y correctly, add math example to compute the amount of tiles to jump |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Skill Jumping ====== | ||
+ | ===== Description ===== | ||
- | ====== Description ====== | + | User can 'skip' over 1-2 spaces in a selected direction. Distance depends on [[:characters:carrying_capacity|weight carried]] , [[:characters:str|STR]] and [[:characters:dex|DEX]] of the user. This skill may also be used as an attack. Jumping is a Physique skill type. |
- | 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 [[:skills:melee]] attack probably as of server version //1.70.y// . \\ The current server //1.12.svn// at [[:servers:metalforge]] [[http://www.metalforge.net/|.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 | + | ===== Use Skill ===== |
- | ====== Ready 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:server_compiling|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 STR<sup>3</sup> **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'000 | ||
+ | > ( (25 * 25 *25) * 17 * 4 ) / 500000 | ||
+ | >> ( 15625 * 17 * 4 ) / 500000 | ||
+ | >> ( 1062500 ) / 500000 | ||
+ | >>> 2.125 | ||
+ | |||
+ | Distance limited to 2 tiles: | ||
+ | <code c> | ||
+ | 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; | ||
+ | </code> | ||
+ | |||
+ | ===== 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? | ||
- | 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. |