User Tools

Site Tools


skills:jumping

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 directionDistance depends on weight carriedSTR 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 clientwhen 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. 
skills/jumping.txt · Last modified: 2020/01/02 16:03 by karl