[9589] Add additional field for storage of speed_run rate of creature

This allow independent rate of walk vs run speed. Existing field renamed to explicit speed_walk.
Note that default database rate for run is a result of the most common value seen, 8.0/7.0

Signed-off-by: NoFantasy <nofantasy@nf.no>
This commit is contained in:
NoFantasy 2010-03-15 15:46:56 +01:00
parent 7d304b002c
commit 9823356946
9 changed files with 23 additions and 13 deletions

View file

@ -24,7 +24,7 @@ CREATE TABLE `db_version` (
`version` varchar(120) default NULL, `version` varchar(120) default NULL,
`creature_ai_version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL,
`cache_id` int(10) default '0', `cache_id` int(10) default '0',
`required_9539_01_mangos_spell_bonus_data` bit(1) default NULL `required_9589_01_mangos_creature_template` bit(1) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
-- --
@ -1098,7 +1098,8 @@ CREATE TABLE `creature_template` (
`faction_A` smallint(5) unsigned NOT NULL default '0', `faction_A` smallint(5) unsigned NOT NULL default '0',
`faction_H` smallint(5) unsigned NOT NULL default '0', `faction_H` smallint(5) unsigned NOT NULL default '0',
`npcflag` int(10) unsigned NOT NULL default '0', `npcflag` int(10) unsigned NOT NULL default '0',
`speed` float NOT NULL default '1', `speed_walk` float NOT NULL default '1' COMMENT 'Result of 2.5/2.5, most common value',
`speed_run` float NOT NULL default '1.14286' COMMENT 'Result of 8.0/7.0, most common value',
`scale` float NOT NULL default '1', `scale` float NOT NULL default '1',
`rank` tinyint(3) unsigned NOT NULL default '0', `rank` tinyint(3) unsigned NOT NULL default '0',
`mindmg` float NOT NULL default '0', `mindmg` float NOT NULL default '0',

View file

@ -0,0 +1,4 @@
ALTER TABLE db_version CHANGE COLUMN required_9539_01_mangos_spell_bonus_data required_9589_01_mangos_creature_template bit;
ALTER TABLE creature_template ADD COLUMN speed_run float NOT NULL default '1.14286' COMMENT 'Result of 8.0/7.0, most common value' AFTER speed;
ALTER TABLE creature_template CHANGE COLUMN speed speed_walk float NOT NULL default '1' COMMENT 'Result of 2.5/2.5, most common value';

View file

@ -87,6 +87,7 @@ pkgdata_DATA = \
9526_01_mangos_spell_proc_event.sql \ 9526_01_mangos_spell_proc_event.sql \
9528_01_mangos_spell_bonus_data.sql \ 9528_01_mangos_spell_bonus_data.sql \
9539_01_mangos_spell_bonus_data.sql \ 9539_01_mangos_spell_bonus_data.sql \
9589_01_mangos_creature_template.sql \
README README
## Additional files to include when running 'make dist' ## Additional files to include when running 'make dist'
@ -154,4 +155,5 @@ EXTRA_DIST = \
9526_01_mangos_spell_proc_event.sql \ 9526_01_mangos_spell_proc_event.sql \
9528_01_mangos_spell_bonus_data.sql \ 9528_01_mangos_spell_bonus_data.sql \
9539_01_mangos_spell_bonus_data.sql \ 9539_01_mangos_spell_bonus_data.sql \
9589_01_mangos_creature_template.sql \
README README

View file

@ -263,9 +263,10 @@ bool Creature::InitEntry(uint32 Entry, uint32 team, const CreatureData *data )
SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f); SetFloatValue(UNIT_MOD_CAST_SPEED, 1.0f);
SetSpeedRate(MOVE_WALK, cinfo->speed); SetSpeedRate(MOVE_WALK, cinfo->speed_walk);
SetSpeedRate(MOVE_RUN, cinfo->speed); SetSpeedRate(MOVE_RUN, cinfo->speed_run);
SetSpeedRate(MOVE_SWIM, cinfo->speed); SetSpeedRate(MOVE_SWIM, 1.0f); // using 1.0 rate
SetSpeedRate(MOVE_FLIGHT, 1.0f); // using 1.0 rate
SetFloatValue(OBJECT_FIELD_SCALE_X, cinfo->scale); SetFloatValue(OBJECT_FIELD_SCALE_X, cinfo->scale);

View file

@ -81,7 +81,8 @@ struct CreatureInfo
uint32 faction_A; uint32 faction_A;
uint32 faction_H; uint32 faction_H;
uint32 npcflag; uint32 npcflag;
float speed; float speed_walk;
float speed_run;
float scale; float scale;
uint32 rank; uint32 rank;
float mindmg; float mindmg;

View file

@ -55,7 +55,7 @@ float baseMoveSpeed[MAX_MOVE_TYPE] =
{ {
2.5f, // MOVE_WALK 2.5f, // MOVE_WALK
7.0f, // MOVE_RUN 7.0f, // MOVE_RUN
1.25f, // MOVE_RUN_BACK 2.5f, // MOVE_RUN_BACK
4.722222f, // MOVE_SWIM 4.722222f, // MOVE_SWIM
4.5f, // MOVE_SWIM_BACK 4.5f, // MOVE_SWIM_BACK
3.141594f, // MOVE_TURN_RATE 3.141594f, // MOVE_TURN_RATE
@ -376,8 +376,9 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, SplineTy
data << uint32(flags); data << uint32(flags);
if(flags & SPLINEFLAG_WALKMODE) // enable me if things goes wrong or looks ugly, it is however an old hack
moveTime *= 1.05f; // if(flags & SPLINEFLAG_WALKMODE)
// moveTime *= 1.05f;
data << uint32(moveTime); // Time in between points data << uint32(moveTime); // Time in between points
data << uint32(1); // 1 single waypoint data << uint32(1); // 1 single waypoint

View file

@ -25,8 +25,8 @@ extern DatabasePostgre WorldDatabase;
extern DatabaseMysql WorldDatabase; extern DatabaseMysql WorldDatabase;
#endif #endif
const char CreatureInfosrcfmt[]="iiiiiiiiiisssiiiiiiiiiiiffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiisiiffliiiiiiiliiis"; const char CreatureInfosrcfmt[]="iiiiiiiiiisssiiiiiiiiiiifffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiisiiffliiiiiiiliiis";
const char CreatureInfodstfmt[]="iiiiiiiiiisssiiiiiiiiiiiffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiisiiffliiiiiiiliiii"; const char CreatureInfodstfmt[]="iiiiiiiiiisssiiiiiiiiiiifffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiisiiffliiiiiiiliiii";
const char CreatureDataAddonInfofmt[]="iiiiiis"; const char CreatureDataAddonInfofmt[]="iiiiiis";
const char CreatureModelfmt[]="iffbi"; const char CreatureModelfmt[]="iffbi";
const char CreatureInfoAddonInfofmt[]="iiiiiis"; const char CreatureInfoAddonInfofmt[]="iiiiiis";

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "9588" #define REVISION_NR "9589"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__

View file

@ -1,6 +1,6 @@
#ifndef __REVISION_SQL_H__ #ifndef __REVISION_SQL_H__
#define __REVISION_SQL_H__ #define __REVISION_SQL_H__
#define REVISION_DB_CHARACTERS "required_9375_01_characters_character_glyphs" #define REVISION_DB_CHARACTERS "required_9375_01_characters_character_glyphs"
#define REVISION_DB_MANGOS "required_9539_01_mangos_spell_bonus_data" #define REVISION_DB_MANGOS "required_9589_01_mangos_creature_template"
#define REVISION_DB_REALMD "required_9010_01_realmd_realmlist" #define REVISION_DB_REALMD "required_9010_01_realmd_realmlist"
#endif // __REVISION_SQL_H__ #endif // __REVISION_SQL_H__