Jump to content

Darkknight900

Members
  • Posts

    101
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Darkknight900

  1. scanned your patch and found also GO Type 33, rewritten combopoint access mostly caused by the pet rewrite i think, and also some not needed parts at Spell::CheckTarget and Spell::CheckPetCast.

    But with this patch you will surely get the vehicles working.

  2. Just got some time and searched mangos/sql, mangos/src/game, mangos/src/mangosd abd mangos/src/shared for trailing whitespaces and more <.< (tabs to spaces and so on)

    Here the patch if you want ^^

    Rev 11368!

    diff --git a/sql/mangos_spell_check.sql b/sql/mangos_spell_check.sql
    index e274567..456fefa 100644
    --- a/sql/mangos_spell_check.sql
    +++ b/sql/mangos_spell_check.sql
    @@ -17,7 +17,7 @@
    
    /* Current table fill progress state:                                        */
    /*     SpellEffect.cpp from start until end of Spell::EffectTameCreature     */
    -/*     Spell.cpp 							     */
    +/*     Spell.cpp                                                             */
    /* at 6ee669d1d52581d4707c6475b512e6cc53844121 [9944] state                  */
    
    DROP TABLE IF EXISTS spell_check;
    @@ -616,7 +616,7 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
    
    /* sorted by spell names */
    /*id   fm familyMaskA        fmMaskB    icon vis  cat  eff aur ef name                                  code                   */
    -(    0,15,                -1,        -1,2710,  -1,  -1, -1,  4,-1,'Annihilation',                 		'Spell::EffectDummy'),
    +(    0,15,                -1,        -1,2710,  -1,  -1, -1,  4,-1,'Annihilation',                         'Spell::EffectDummy'),
    (    0, 3,0x0000000020000000,0x00000000,  -1,  -1,  -1,  2, -1,-1,'Arcane Blast',                       'Spell::EffectSchoolDMG'),
    (    0, 3,0x0000000000200080,0x00000000,  -1,  -1,  -1, -1, -1,-1,'Arcane Missles / Blizzard',          'Spell::prepareDataForTriggerSystem'),
    (    0, 9,0x0000000000000800,0x00000000,  -1,  -1,  -1,  2, -1,-1,'Arcane Shot',                        'Spell::EffectSchoolDMG'),
    @@ -632,8 +632,8 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
    (    0,11,0x0000000004000000,0x00000000,1673,  -1,  -1,  3, -1,-1,'Cleansing Totem',                    'Spell::EffectDummy'),
    (    0, 3,0x0000000200000000,0x00000008,  -1,  -1,  -1, -1, -1,-1,'Clearcasting',                       'Spell::prepareDataForTriggerSystem'),
    (    0, 4,0x0000000004000000,0x00000000,  -1,  -1,  -1,  3, -1,-1,'Concussion Blow',                    'Spell::EffectDummy'),
    -(    0, 3,                -1,        -1,  -1,  -1,  -1,  3, -1, 1,'Conjure Mana Gem',                   'Spell::EffectDummy'), 		/*part 1*/
    -(    0, 3,                -1,        -1,  -1,  -1,  -1, 24, -1, 0,'Conjure Mana Gem',                   'Spell::EffectDummy'), 		/*part 2*/
    +(    0, 3,                -1,        -1,  -1,  -1,  -1,  3, -1, 1,'Conjure Mana Gem',                   'Spell::EffectDummy'),         /*part 1*/
    +(    0, 3,                -1,        -1,  -1,  -1,  -1, 24, -1, 0,'Conjure Mana Gem',                   'Spell::EffectDummy'),         /*part 2*/
    (    0, 3,                -1,        -1,  -1,  -1,  -1, 24, -1, 0,'Conjure Mana Gem',                   'Spell::CheckItems'),
    (    0, 9,0x0008000000000000,0x00000000,  -1,  -1,  -1,  2, -1,-1,'Counterattack',                      'Spell::EffectSchoolDMG'),
    (    0, 5,                -1,        -1,  -1,  -1,1179, -1, -1,-1,'Curse of Doom',                      'Spell::CheckTargetCreatureType'),
    @@ -661,7 +661,7 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
    (    0, 5,0x0004000000000000,0x00000000,3172,  -1,  -1, -1,  4,-1,'Haunt',                              'Spell::DoAllEffectOnTarget'),
    (    0,11,0x0000000000002000,0x00000000,  -1,  -1,  -1,  3, -1,-1,'Healing Stream Totem',               'Spell::EffectDummy'),
    (    0, 4,0x0000800000000060,0x00000000,  -1,  -1,  -1, -1, -1,-1,'Hellfire Effect / Rain of Fire / Seed of Corruption','Spell::prepareDataForTriggerSystem'),
    -(    0, 8,0x0000000002800000,0x00000000,  -1,  -1,  -1, -1, -1,-1,'Hemorrhage',							'Spell::EffectWeaponDmg'),
    +(    0, 8,0x0000000002800000,0x00000000,  -1,  -1,  -1, -1, -1,-1,'Hemorrhage',                            'Spell::EffectWeaponDmg'),
    (    0, 4,0x0000000100000000,0x00000000,  -1,  -1,  -1,  2, -1,-1,'Heroic Throw',                       'Spell::EffectSchoolDMG'),
    (    0,10,                -1,        -1, 156,  -1,  -1,  3, -1,-1,'Holy Shock',                         'Spell::EffectDummy'),
    (    0,-1,                -1,        -1, 156,  -1,  -1,  3, -1,-1,'Holy Shock',                         'Spell::CheckCast'),
    @@ -709,7 +709,7 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
    (    0, 7,0x0000000000000010,0x00000000,  -1,  -1,  -1, -1,  8,-1,'Rejuvenation',                       'Spell::EffectHeal'),
    (    0, 3,0x0000010000000000,0x00000000,  -1,  -1,  -1, -1, -1,-1,'Replenish Mana',                     'Spell::prepareDataForTriggerSystem'),
    (    0,11,0x0000000000000000,0x00000010,  -1,  -1,  -1, -1,  8,-1,'Riptide',                            'Spell::EffectHeal'),
    -(    0,11,                -1,        -1, 338,  -1,  -1, -1,  4, 1,'Restorative Totems',                 'Spell::EffectSchoolDMG'), 	/*part 1*/
    +(    0,11,                -1,        -1, 338,  -1,  -1, -1,  4, 1,'Restorative Totems',                 'Spell::EffectSchoolDMG'),     /*part 1*/
    (    0, 4,0x0000000000000400,0x00000000,  -1,  -1,  -1,  2, -1,-1,'Revenge',                            'Spell::EffectSchoolDMG'),
    (    0,11,0x0000000000400000,0x00000000,  -1,  -1,  -1, 54, -1,-1,'Rockbiter Weapon',                   'Spell::EffectEnchantItemTmp'),
    (    0,15,0x0800000000000000,0x00000000,  -1,  -1,  -1, -1, -1,-1,'Scourge Strike',                     'Spell::DoAllEffectOnTarget'),
    diff --git a/sql/postgre_compatibility_addon.sql b/sql/postgre_compatibility_addon.sql
    index 105d65f..fa00d49 100644
    --- a/sql/postgre_compatibility_addon.sql
    +++ b/sql/postgre_compatibility_addon.sql
    @@ -8,19 +8,19 @@
    
    -- no params
    CREATE OR REPLACE FUNCTION unix_timestamp() RETURNS bigint AS '
    -	SELECT EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0))::bigint AS result;
    +    SELECT EXTRACT(EPOCH FROM CURRENT_TIMESTAMP(0))::bigint AS result;
    ' LANGUAGE 'SQL';
    
    -- timestamp without time zone (i.e. 1973-11-29 21:33:09)
    CREATE OR REPLACE FUNCTION unix_timestamp(timestamp) RETURNS bigint AS '
    -	SELECT EXTRACT(EPOCH FROM $1)::bigint AS result;
    +    SELECT EXTRACT(EPOCH FROM $1)::bigint AS result;
    ' LANGUAGE 'SQL';
    
    -- timestamp with time zone (i.e. 1973-11-29 21:33:09+01)
    CREATE OR REPLACE FUNCTION unix_timestamp(timestamp WITH time zone) RETURNS bigint AS '
    -	SELECT EXTRACT(EPOCH FROM $1)::bigint AS result;
    +    SELECT EXTRACT(EPOCH FROM $1)::bigint AS result;
    ' LANGUAGE 'SQL';
    
    CREATE OR REPLACE FUNCTION from_unixtime(integer) RETURNS timestamp AS '
    -	SELECT to_timestamp($1)::timestamp AS result
    +    SELECT to_timestamp($1)::timestamp AS result
    ' LANGUAGE 'SQL';
    diff --git a/sql/updates/0.14/7988_07_characters_characters.sql b/sql/updates/0.14/7988_07_characters_characters.sql
    index 246a93a..ef72b5f 100644
    --- a/sql/updates/0.14/7988_07_characters_characters.sql
    +++ b/sql/updates/0.14/7988_07_characters_characters.sql
    @@ -4,34 +4,34 @@ UPDATE characters SET data = REPLACE(data,'  ',' ');
    UPDATE characters SET data = CONCAT(TRIM(data),' ');
    
    UPDATE `characters` SET `data` = CONCAT(
    -	SUBSTRING_INDEX(`data`, ' ', 257 + 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 1), ' ', -261 + 260 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18 + 1), ' ', -261 - 18 + 260 + 18 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*2 + 1), ' ', -261 - 18*2 + 260 + 18*2 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*3 + 1), ' ', -261 - 18*3 + 260 + 18*3 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*4 + 1), ' ', -261 - 18*4 + 260 + 18*4 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*5 + 1), ' ', -261 - 18*5 + 260 + 18*5 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*6 + 1), ' ', -261 - 18*6 + 260 + 18*6 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*7 + 1), ' ', -261 - 18*7 + 260 + 18*7 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*8 + 1), ' ', -261 - 18*8 + 260 + 18*8 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*9 + 1), ' ', -261 - 18*9 + 260 + 18*9 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*10 + 1), ' ', -261 - 18*10 + 260 + 18*10 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*11 + 1), ' ', -261 - 18*11 + 260 + 18*11 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*12 + 1), ' ', -261 - 18*12 + 260 + 18*12 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*13 + 1), ' ', -261 - 18*13 + 260 + 18*13 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*14 + 1), ' ', -261 - 18*14 + 260 + 18*14 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*15 + 1), ' ', -261 - 18*15 + 260 + 18*15 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*16 + 1), ' ', -261 - 18*16 + 260 + 18*16 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*17 + 1), ' ', -261 - 18*17 + 260 + 18*17 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*18 + 1), ' ', -261 - 18*18 + 260 + 18*18 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 837 + 1), ' ', -837 + 600 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 937 + 1), ' ', -937 + 874 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1007 + 1), ' ', -1007 + 1002 - 1), ' ',
    -	'0 0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1688 + 1), ' ', -1688 + 1008 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1696 + 1), ' ', -1696 + 1691 - 1), ' ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1700 + 1), ' ', -1700 + 1699 - 1), ' '
    -	)
    +    SUBSTRING_INDEX(`data`, ' ', 257 + 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 1), ' ', -261 + 260 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18 + 1), ' ', -261 - 18 + 260 + 18 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*2 + 1), ' ', -261 - 18*2 + 260 + 18*2 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*3 + 1), ' ', -261 - 18*3 + 260 + 18*3 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*4 + 1), ' ', -261 - 18*4 + 260 + 18*4 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*5 + 1), ' ', -261 - 18*5 + 260 + 18*5 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*6 + 1), ' ', -261 - 18*6 + 260 + 18*6 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*7 + 1), ' ', -261 - 18*7 + 260 + 18*7 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*8 + 1), ' ', -261 - 18*8 + 260 + 18*8 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*9 + 1), ' ', -261 - 18*9 + 260 + 18*9 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*10 + 1), ' ', -261 - 18*10 + 260 + 18*10 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*11 + 1), ' ', -261 - 18*11 + 260 + 18*11 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*12 + 1), ' ', -261 - 18*12 + 260 + 18*12 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*13 + 1), ' ', -261 - 18*13 + 260 + 18*13 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*14 + 1), ' ', -261 - 18*14 + 260 + 18*14 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*15 + 1), ' ', -261 - 18*15 + 260 + 18*15 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*16 + 1), ' ', -261 - 18*16 + 260 + 18*16 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*17 + 1), ' ', -261 - 18*17 + 260 + 18*17 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 261 + 18*18 + 1), ' ', -261 - 18*18 + 260 + 18*18 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 837 + 1), ' ', -837 + 600 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 937 + 1), ' ', -937 + 874 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1007 + 1), ' ', -1007 + 1002 - 1), ' ',
    +    '0 0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1688 + 1), ' ', -1688 + 1008 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1696 + 1), ' ', -1696 + 1691 - 1), ' ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1700 + 1), ' ', -1700 + 1699 - 1), ' '
    +    )
    WHERE length(SUBSTRING_INDEX(data, ' ', 1700)) < length(data) and length(SUBSTRING_INDEX(data, ' ', 1701)) >= length(data);
    
    UPDATE characters SET data = REPLACE(data,'  ',' ');
    diff --git a/sql/updates/0.15/8589_11_characters_characters.sql b/sql/updates/0.15/8589_11_characters_characters.sql
    index 663f135..2ab2a27 100644
    --- a/sql/updates/0.15/8589_11_characters_characters.sql
    +++ b/sql/updates/0.15/8589_11_characters_characters.sql
    @@ -4,13 +4,13 @@ UPDATE characters SET data = REPLACE(data,'  ',' ');
    UPDATE characters SET data = CONCAT(TRIM(data),' ');
    
    UPDATE `characters` SET `data` = CONCAT(
    -	SUBSTRING_INDEX(`data`, ' ', 1167 + 1), ' ',
    -	'0 0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1246 + 1), ' ', -1246 + 1168 - 1), ' ',
    -	'0 0 0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1294 + 1), ' ', -1294 + 1247 - 1), ' ',
    -	'0 '
    -	)
    +    SUBSTRING_INDEX(`data`, ' ', 1167 + 1), ' ',
    +    '0 0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1246 + 1), ' ', -1246 + 1168 - 1), ' ',
    +    '0 0 0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1294 + 1), ' ', -1294 + 1247 - 1), ' ',
    +    '0 '
    +    )
    WHERE length(SUBSTRING_INDEX(data, ' ', 1294)) < length(data) and length(SUBSTRING_INDEX(data, ' ', 1294+1)) >= length(data);
    
    UPDATE characters SET data = REPLACE(data,'  ',' ');
    diff --git a/sql/updates/0.16/09136_07_characters_characters.sql b/sql/updates/0.16/09136_07_characters_characters.sql
    index f456e10..5c55928 100644
    --- a/sql/updates/0.16/09136_07_characters_characters.sql
    +++ b/sql/updates/0.16/09136_07_characters_characters.sql
    @@ -4,60 +4,60 @@ UPDATE characters SET data = REPLACE(data,'  ',' ');
    UPDATE characters SET data = CONCAT(TRIM(data),' ');
    
    UPDATE `characters` SET `data` = CONCAT(
    -	SUBSTRING_INDEX(`data`, ' ', 161 + 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 1), ' ', -165 + 162 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4 + 1), ' ', -165 - 4 + 162 + 4 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*2 + 1), ' ', -165 - 4*2 + 162 + 4*2 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*3 + 1), ' ', -165 - 4*3 + 162 + 4*3 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*4 + 1), ' ', -165 - 4*4 + 162 + 4*4 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*5 + 1), ' ', -165 - 4*5 + 162 + 4*5 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*6 + 1), ' ', -165 - 4*6 + 162 + 4*6 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*7 + 1), ' ', -165 - 4*7 + 162 + 4*7 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*8 + 1), ' ', -165 - 4*8 + 162 + 4*8 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*9 + 1), ' ', -165 - 4*9 + 162 + 4*9 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*10 + 1), ' ', -165 - 4*10 + 162 + 4*10 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*11 + 1), ' ', -165 - 4*11 + 162 + 4*11 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*12 + 1), ' ', -165 - 4*12 + 162 + 4*12 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*13 + 1), ' ', -165 - 4*13 + 162 + 4*13 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*14 + 1), ' ', -165 - 4*14 + 162 + 4*14 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*15 + 1), ' ', -165 - 4*15 + 162 + 4*15 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*16 + 1), ' ', -165 - 4*16 + 162 + 4*16 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*17 + 1), ' ', -165 - 4*17 + 162 + 4*17 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*18 + 1), ' ', -165 - 4*18 + 162 + 4*18 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*19 + 1), ' ', -165 - 4*19 + 162 + 4*19 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*20 + 1), ' ', -165 - 4*20 + 162 + 4*20 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*21 + 1), ' ', -165 - 4*21 + 162 + 4*21 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*22 + 1), ' ', -165 - 4*22 + 162 + 4*22 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*23 + 1), ' ', -165 - 4*23 + 162 + 4*23 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 298 + 1), ' ', -298 + 162 + 4*24 - 1), ' ',
    -	'0 ',
    -	SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1300 + 1), ' ', -1300 + 299 - 1), ' '
    -	)
    +    SUBSTRING_INDEX(`data`, ' ', 161 + 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 1), ' ', -165 + 162 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4 + 1), ' ', -165 - 4 + 162 + 4 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*2 + 1), ' ', -165 - 4*2 + 162 + 4*2 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*3 + 1), ' ', -165 - 4*3 + 162 + 4*3 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*4 + 1), ' ', -165 - 4*4 + 162 + 4*4 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*5 + 1), ' ', -165 - 4*5 + 162 + 4*5 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*6 + 1), ' ', -165 - 4*6 + 162 + 4*6 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*7 + 1), ' ', -165 - 4*7 + 162 + 4*7 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*8 + 1), ' ', -165 - 4*8 + 162 + 4*8 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*9 + 1), ' ', -165 - 4*9 + 162 + 4*9 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*10 + 1), ' ', -165 - 4*10 + 162 + 4*10 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*11 + 1), ' ', -165 - 4*11 + 162 + 4*11 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*12 + 1), ' ', -165 - 4*12 + 162 + 4*12 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*13 + 1), ' ', -165 - 4*13 + 162 + 4*13 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*14 + 1), ' ', -165 - 4*14 + 162 + 4*14 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*15 + 1), ' ', -165 - 4*15 + 162 + 4*15 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*16 + 1), ' ', -165 - 4*16 + 162 + 4*16 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*17 + 1), ' ', -165 - 4*17 + 162 + 4*17 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*18 + 1), ' ', -165 - 4*18 + 162 + 4*18 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*19 + 1), ' ', -165 - 4*19 + 162 + 4*19 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*20 + 1), ' ', -165 - 4*20 + 162 + 4*20 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*21 + 1), ' ', -165 - 4*21 + 162 + 4*21 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*22 + 1), ' ', -165 - 4*22 + 162 + 4*22 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 165 + 4*23 + 1), ' ', -165 - 4*23 + 162 + 4*23 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 298 + 1), ' ', -298 + 162 + 4*24 - 1), ' ',
    +    '0 ',
    +    SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1300 + 1), ' ', -1300 + 299 - 1), ' '
    +    )
    WHERE length(SUBSTRING_INDEX(data, ' ', 1300)) < length(data) and length(SUBSTRING_INDEX(data, ' ', 1300+1)) >= length(data);
    
    UPDATE characters SET data = REPLACE(data,'  ',' ');
    diff --git a/sql/updates/0.5/1465_build_realmd_db.sql b/sql/updates/0.5/1465_build_realmd_db.sql
    index 1b52a8c..a65764c 100644
    --- a/sql/updates/0.5/1465_build_realmd_db.sql
    +++ b/sql/updates/0.5/1465_build_realmd_db.sql
    @@ -2,7 +2,7 @@
    --
    -- Host: localhost    Database: realmd
    -- ------------------------------------------------------
    --- Server version	5.0.21
    +-- Server version    5.0.21
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    diff --git a/sql/updates/0.7/3655_quest_template.sql b/sql/updates/0.7/3655_quest_template.sql
    index 8882fca..f67bd55 100644
    --- a/sql/updates/0.7/3655_quest_template.sql
    +++ b/sql/updates/0.7/3655_quest_template.sql
    @@ -19,6 +19,6 @@ UPDATE `quest_template` SET `ZoneOrSort` = -304 WHERE `ZoneOrSort` = 0  AND `Req
    UPDATE `quest_template` SET `ZoneOrSort` = -324 WHERE `ZoneOrSort` = 0  AND `RequiredSkill` = 129;
    
    ALTER TABLE `quest_template`
    -	ADD COLUMN  `SuggestedPlayers` int(11) unsigned NOT NULL DEFAULT 0 AFTER `RequiredRepValue`,
    -	DROP COLUMN `RequiredClass`,
    -	DROP COLUMN `RequiredSkill`;
    +    ADD COLUMN  `SuggestedPlayers` int(11) unsigned NOT NULL DEFAULT 0 AFTER `RequiredRepValue`,
    +    DROP COLUMN `RequiredClass`,
    +    DROP COLUMN `RequiredSkill`;
    diff --git a/sql/updates/10156_01_characters_character_aura.sql b/sql/updates/10156_01_characters_character_aura.sql
    index f9f9087..94335c8 100644
    --- a/sql/updates/10156_01_characters_character_aura.sql
    +++ b/sql/updates/10156_01_characters_character_aura.sql
    @@ -2,15 +2,15 @@ ALTER TABLE character_db_version CHANGE COLUMN required_10051_01_characters_char
    
    DELETE FROM `character_aura`;
    ALTER TABLE `character_aura`
    -	DROP COLUMN `effect_index`, DROP COLUMN `amount`, DROP COLUMN `maxduration`, DROP COLUMN `remaintime`;
    +    DROP COLUMN `effect_index`, DROP COLUMN `amount`, DROP COLUMN `maxduration`, DROP COLUMN `remaintime`;
    ALTER TABLE `character_aura`
    -	ADD COLUMN `basepoints0` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `basepoints1` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `basepoints2` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `maxduration0` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `maxduration1` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `maxduration2` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `remaintime0` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `remaintime1` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `remaintime2` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `effIndexMask` INT(11) NOT NULL DEFAULT '0';
    \\ No newline at end of file
    +    ADD COLUMN `basepoints0` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `basepoints1` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `basepoints2` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `maxduration0` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `maxduration1` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `maxduration2` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `remaintime0` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `remaintime1` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `remaintime2` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `effIndexMask` INT(11) NOT NULL DEFAULT '0';
    \\ No newline at end of file
    diff --git a/sql/updates/10156_02_characters_pet_aura.sql b/sql/updates/10156_02_characters_pet_aura.sql
    index 38f7472..18269bb 100644
    --- a/sql/updates/10156_02_characters_pet_aura.sql
    +++ b/sql/updates/10156_02_characters_pet_aura.sql
    @@ -2,15 +2,15 @@ ALTER TABLE character_db_version CHANGE COLUMN required_10156_01_characters_char
    
    DELETE FROM `pet_aura`;
    ALTER TABLE `pet_aura`
    -	DROP COLUMN `effect_index`, DROP COLUMN `amount`, DROP COLUMN `maxduration`, DROP COLUMN `remaintime`;
    +    DROP COLUMN `effect_index`, DROP COLUMN `amount`, DROP COLUMN `maxduration`, DROP COLUMN `remaintime`;
    ALTER TABLE `pet_aura`
    -	ADD COLUMN `basepoints0` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `basepoints1` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `basepoints2` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `maxduration0` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `maxduration1` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `maxduration2` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `remaintime0` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `remaintime1` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `remaintime2` INT(11) NOT NULL DEFAULT '0',
    -	ADD COLUMN `effIndexMask` INT(11) NOT NULL DEFAULT '0';
    \\ No newline at end of file
    +    ADD COLUMN `basepoints0` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `basepoints1` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `basepoints2` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `maxduration0` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `maxduration1` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `maxduration2` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `remaintime0` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `remaintime1` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `remaintime2` INT(11) NOT NULL DEFAULT '0',
    +    ADD COLUMN `effIndexMask` INT(11) NOT NULL DEFAULT '0';
    \\ No newline at end of file
    diff --git a/sql/updates/10582_01_mangos_spell_proc_event.sql b/sql/updates/10582_01_mangos_spell_proc_event.sql
    index 2f70a0a..9111b9c 100644
    --- a/sql/updates/10582_01_mangos_spell_proc_event.sql
    +++ b/sql/updates/10582_01_mangos_spell_proc_event.sql
    @@ -2,10 +2,10 @@ ALTER TABLE db_version CHANGE COLUMN required_10551_01_mangos_spell_proc_event r
    
    DELETE FROM spell_proc_event WHERE entry IN (67356, 67363, 67365, 67379, 67381, 67384, 67386, 67389, 67392);
    INSERT INTO spell_proc_event(entry, SchoolMask, SpellFamilyName,
    -	SpellFamilyMaskA0, SpellFamilyMaskA1, SpellFamilyMaskA2,
    -	SpellFamilyMaskB0, SpellFamilyMaskB1, SpellFamilyMaskB2,
    -	SpellFamilyMaskC0, SpellFamilyMaskC1, SpellFamilyMaskC2,
    -	procFlags, procEx, ppmRate, CustomChance, Cooldown) VALUES
    +    SpellFamilyMaskA0, SpellFamilyMaskA1, SpellFamilyMaskA2,
    +    SpellFamilyMaskB0, SpellFamilyMaskB1, SpellFamilyMaskB2,
    +    SpellFamilyMaskC0, SpellFamilyMaskC1, SpellFamilyMaskC2,
    +    procFlags, procEx, ppmRate, CustomChance, Cooldown) VALUES
    (67356, 0x00,  7, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0.000000, 0.000000,  5),
    (67363, 0x00, 10, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 10),
    (67365, 0x00, 10, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000,  6),
    diff --git a/sql/updates/10604_01_mangos_spell_proc_event.sql b/sql/updates/10604_01_mangos_spell_proc_event.sql
    index 9ca5e7b..450f50d 100644
    --- a/sql/updates/10604_01_mangos_spell_proc_event.sql
    +++ b/sql/updates/10604_01_mangos_spell_proc_event.sql
    @@ -4,10 +4,10 @@ DELETE FROM spell_proc_event WHERE entry IN
    (57907,62147,64952,64964,71174,71176,71178,71186,71191,71194,71198,71217,71226,71228);
    
    INSERT INTO spell_proc_event(entry, SchoolMask, SpellFamilyName,
    -	SpellFamilyMaskA0, SpellFamilyMaskA1, SpellFamilyMaskA2,
    -	SpellFamilyMaskB0, SpellFamilyMaskB1, SpellFamilyMaskB2,
    -	SpellFamilyMaskC0, SpellFamilyMaskC1, SpellFamilyMaskC2,
    -	procFlags, procEx, ppmRate, CustomChance, Cooldown) VALUES
    +    SpellFamilyMaskA0, SpellFamilyMaskA1, SpellFamilyMaskA2,
    +    SpellFamilyMaskB0, SpellFamilyMaskB1, SpellFamilyMaskB2,
    +    SpellFamilyMaskC0, SpellFamilyMaskC1, SpellFamilyMaskC2,
    +    procFlags, procEx, ppmRate, CustomChance, Cooldown) VALUES
    (57907, 0x00,  7, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.0, 0.0,  0),
    (62147, 0x00, 15, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0.0, 0.0,  0),
    (64952, 0x00,  7, 0x00000000, 0x00000000, 0x00000000, 0x00000440, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.0, 0.0,  0),
    diff --git a/src/game/DBCStructure.h b/src/game/DBCStructure.h
    index 98ff675..b3ed784 100644
    --- a/src/game/DBCStructure.h
    +++ b/src/game/DBCStructure.h
    @@ -1252,7 +1252,7 @@ struct MapDifficultyEntry
        uint32      MapId;                                      // 1        m_mapID
        uint32      Difficulty;                                 // 2        m_difficulty (for arenas: arena slot)
        //char*       areaTriggerText[16];                      // 3-18     m_message_lang (text showed when transfer to map failed)
    -    //uint32      textFlags;                                // 19 
    +    //uint32      textFlags;                                // 19
        uint32      resetTime;                                  // 20       m_raidDuration in secs, 0 if no fixed reset time
        uint32      maxPlayers;                                 // 21       m_maxPlayers some heroic versions have 0 when expected same amount as in normal version
        //char*       difficultyString;                         // 22       m_difficultystring
    @@ -1665,7 +1665,7 @@ struct SpellRangeEntry
    {
        uint32    ID;                                           // 0        m_ID
        float     minRange;                                     // 1        m_rangeMin[2]
    -    float     minRangeFriendly;                             // 2 
    +    float     minRangeFriendly;                             // 2
        float     maxRange;                                     // 3        m_rangeMax[2]
        float     maxRangeFriendly;                             // 4
        //uint32  Flags;                                        // 5        m_flags
    diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
    index 1c34f00..664cf58 100644
    --- a/src/game/ObjectMgr.cpp
    +++ b/src/game/ObjectMgr.cpp
    @@ -3413,7 +3413,7 @@ void ObjectMgr::LoadArenaTeams()
    
        //                                                     0                      1    2           3    4               5
        QueryResult *result = CharacterDatabase.Query( "SELECT arena_team.arenateamid,name,captainguid,type,BackgroundColor,EmblemStyle,"
    -    //   6           7           8            9      10    	 11  	   12  		    13    	    14
    +    //   6           7           8            9      10         11        12           13          14
            "EmblemColor,BorderStyle,BorderColor, rating,games_week,wins_week,games_season,wins_season,rank "
            "FROM arena_team LEFT JOIN arena_team_stats ON arena_team.arenateamid = arena_team_stats.arenateamid ORDER BY arena_team.arenateamid ASC" );
    
    diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
    index 9fec6ca..cf96659 100644
    --- a/src/game/Unit.cpp
    +++ b/src/game/Unit.cpp
    @@ -10783,7 +10783,7 @@ public:
            {
                MaNGOS::PlayerRelocationNotifier notify((Player&)m_owner);
                Cell::VisitAllObjects(&m_owner,notify,radius);
    -        } 
    +        }
            else //if(m_owner.GetTypeId() == TYPEID_UNIT)
            {
                MaNGOS::CreatureRelocationNotifier notify((Creature&)m_owner);
    diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in
    index cf73e54..2dd6002 100644
    --- a/src/mangosd/mangosd.conf.dist.in
    +++ b/src/mangosd/mangosd.conf.dist.in
    @@ -37,13 +37,13 @@ ConfVersion=2010100901
    #                    hostname;port;username;password;database
    #                    .;/path/to/unix_socket/DIRECTORY or . for default path;username;password;database - use Unix sockets at Unix/Linux
    #
    -#	LoginDatabaseConnections
    -#	WorldDatabaseConnections
    -#	CharacterDatabaseConnections
    -#		 Amount of connections to database which will be used for SELECT queries. Maximum 16 connections per database.
    -#		 Please, note, for data consistency only one connection for each database is used for transactions and async SELECTs.
    -#		 So formula to find out how many connections will be established: X = ¹_connections + 1
    -#		 Default: 1 connection for SELECT statements
    +#    LoginDatabaseConnections
    +#    WorldDatabaseConnections
    +#    CharacterDatabaseConnections
    +#         Amount of connections to database which will be used for SELECT queries. Maximum 16 connections per database.
    +#         Please, note, for data consistency only one connection for each database is used for transactions and async SELECTs.
    +#         So formula to find out how many connections will be established: X = ¹_connections + 1
    +#         Default: 1 connection for SELECT statements
    #
    #    MaxPingTime
    #        Settings for maximum database-ping interval (minutes between pings)
    diff --git a/src/shared/Database/DatabaseImpl.h b/src/shared/Database/DatabaseImpl.h
    index 963b151..60b526a 100644
    --- a/src/shared/Database/DatabaseImpl.h
    +++ b/src/shared/Database/DatabaseImpl.h
    @@ -22,7 +22,7 @@
    /// Function body definitions for the template function members of the Database class
    
    #define ASYNC_QUERY_BODY(sql) if (!sql || !m_pResultQueue) return false;
    -#define ASYNC_DELAYHOLDER_BODY(holder) if (!holder || !m_pResultQueue) return false; 
    +#define ASYNC_DELAYHOLDER_BODY(holder) if (!holder || !m_pResultQueue) return false;
    
    #define ASYNC_PQUERY_BODY(format, szQuery) \\
        if(!format) return false; \\
    diff --git a/src/shared/Database/DatabasePostgre.cpp b/src/shared/Database/DatabasePostgre.cpp
    index 55cdb81..da5efea 100644
    --- a/src/shared/Database/DatabasePostgre.cpp
    +++ b/src/shared/Database/DatabasePostgre.cpp
    @@ -226,7 +226,7 @@ bool PostgreSQLConnection::CommitTransaction()
    }
    
    bool PostgreSQLConnection::RollbackTransaction()
    -{  
    +{
        return _TransactionCmd("ROLLBACK");
    }
    
    

  3. After a long time github updated the Issue system completly and now there is the possibilty to have the same (and i think more) functionality than we had already on the lighthouse tracker ;)

    https://github.com/blog/831-issues-2-0-the-next-generation

    Maybe we can think of it since most of us have a github account and the rest of core mods and or 3rd party tools can stay at the forum but also with an issue tracker for the testers of the mods.

    I would like to hear if mangos maybe can think of it ;)

  4. right clic on a folder doesn't give a thread to Git Bash.

    just reinstall git, maybe with a clean deinstall and make sure to add either the points at the installation "Git Bash here" usw. or to install the git cheetah ext also available at the installation.

    So I created the ahbot_patch out of C:/ and manualy transported it in C:/

    Maybe a better description is needed cause C./ == C:/ ^^

    Unfortunatly Git Bash doesn't find the patch when I have to "git apply Addon/AHBot/ahbot.patch"

    first make sure you are in the right folder with git bash, i dunno how you open git bash now.

    Is there a special way to launch Git Bash other than right clic for this to work?

    a "special" way is just another way to get it working. _IF_ you added git bash to your PATH (win32 related) then you can simply "Windowskey + R" --> "cmd" then you got a cmd which is targeted to your desktop by default. Then you can just type "git" and you then you will be in the git shell then you can cd to your folder you would like.

    _IF_ not then go to your installed programs (C:/Program Files [German: C:/Programme]) and there go to your git (C:\\Program Files\\Git). There you can open a git bash via the symbolic link, also you can add it at your desktop.

    if you open it in the git folder oder somewhere else with the symbolic link you will see : ~ as your target. This is your own users folder and you just have to cd to your folders.

    Also with direct cds your are maybe faster

    cd "/c/Windows/system/"

  5. wooooow many questions :D

    FOr the updates of udb first you got a clean udb in your database, this is the big file 77mb if i think right i see at your screen A once you have a complete db you just have to apply the updates of the packs you download at the mangos db, which vers. you got you can see in your db_version.

    There is written which UDB Pack you got and just apply the next one, one by one, how to do that i don't know for SQLyog.

    Some patches are named with _character_ these must ofc into the character database but there is no need to apply the mangos/sql/updates/*.sql since udb update this automatically.

    Just be careful to get the same version of db and core since udb isn't updating their database that often.

  6. Hi all,

    some rouges at my server did say that they got some probs with their energyregeneration.

    It seems as the reg stop when they got +2 Energy probably from this talent, although noone can see this prob, just the player himself.

    maybe someone could agree with this. I don't know how to deal with it. Also the energyreg from the cats should be a little low, but i can't decide that since i don't play a cat. ^^

    Furthermore there is no problem i can see with the reg. at all so... dunno what to do <.<

  7. today i got a weird crashlog

    Core was generated by `./mangosd'.
    Program terminated with signal 11, Segmentation fault.
    [New process 11652]
    [New process 11656]
    [New process 11655]
    [New process 11654]
    [New process 11653]
    [New process 11647]
    [New process 11650]
    [New process 11649]
    [New process 11648]
    #0  0x0000000000a66e9e in NGrid<8u, Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >::isGridObjectDataLoaded (this=0xfdec00035005f110)
       at /home/mangos_git/src/framework/GameSystem/NGrid.h:121
    121            bool isGridObjectDataLoaded() const { return i_GridObjectDataLoaded; }
    #0  0x0000000000a66e9e in NGrid<8u, Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >::isGridObjectDataLoaded (this=0xfdec00035005f110)
       at /home/mangos_git/src/framework/GameSystem/NGrid.h:121
    No locals.
    #1  0x0000000000a6c97d in Map::isGridObjectDataLoaded (this=0x124a0000, x=31, 
       y=36) at /home/mangos_git/src/game/Map.h:286
    No locals.
    #2  0x0000000000a59ead in Map::loaded (this=0x124a0000, p=@0x4289ea60)
       at /home/mangos_git/src/game/Map.cpp:454
    No locals.
    #3  0x0000000000a5e182 in Map::MessageBroadcast (this=0x124a0000, 
       obj=0x7fd71b20e080, msg=0x4289eaf0)
       at /home/mangos_git/src/game/Map.cpp:400
       p = {x_coord = 251, y_coord = 290}
       cell = {data = {Part = {grid_x = 31, grid_y = 36, cell_x = 3, 
         cell_y = 2, nocreate = 1, reserved = 0}, All = 17316127}}
       post_man = {i_phaseMask = 1116334672, i_message = 0xb}
       message = {i_visitor = @0x4289ea50}
    #4  0x0000000000adaa96 in WorldObject::SendMessageToSet (this=0x7fd71b20e080, 
       data=0x4289eaf0) at /home/mangos_git/src/game/Object.cpp:1659
    No locals.
    #5  0x0000000000b5a801 in Unit::SendThreatRemove (this=0x7fd71b20e080, 
       pHostileReference=0x7fd71f21b340)
       at /home/mangos_git/src/game/Unit.cpp:12423
       data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 0, 
       _wpos = 11, 
       _storage = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {
           _M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, 
             _M_start = 0x7fd7191660b0 "ù\\004í5\\016@ñ\\aS\\210\\003", 
             _M_finish = 0x7fd7191660bb "", 
             _M_end_of_storage = 0x7fd7191660c0 "àR\\026\\031×\\177"}}, <No data fields>}}, m_opcode = 1156}
    #6  0x0000000000a8038f in ThreatManager::processThreatEvent (
       this=0x7fd71b20fb70, threatRefStatusChangeEvent=0x4289ebb0)
       at /home/mangos_git/src/game/ThreatManager.cpp:539
       hostileReference = (HostileReference *) 0x7fd71f21b340
    #7  0x0000000000a8050c in HostileReference::fireStatusChanged (
       this=0x7fd71f21b340, pThreatRefStatusChangeEvent=@0x4289ebb0)
       at /home/mangos_git/src/game/ThreatManager.cpp:97
    No locals.
    #8  0x0000000000a805f2 in HostileReference::setOnlineOfflineState (
       this=0x7fd71f21b340, pIsOnline=false)
       at /home/mangos_git/src/game/ThreatManager.cpp:172
       event = {<UnitBaseEvent> = {iType = 1}, 
     iHostileReference = 0x7fd71f21b340, {iFValue = 68.9606934, 
       iIValue = 1116335072, iBValue = 224}, iThreatManager = 0x7fd71b20fb70}
    #9  0x000000000092095c in HostileRefManager::setOnlineOfflineState (
       this=0xa119b38, pIsOnline=false)
       at /home/mangos_git/src/game/HostileRefManager.cpp:81
       ref = (class HostileReference *) 0x7fd71f21b340
    #10 0x0000000000b7cc91 in Unit::CleanupsBeforeDelete (this=0xa118000)
       at /home/mangos_git/src/game/Unit.cpp:10954
    No locals.
    #11 0x00000000008b4192 in Player::CleanupsBeforeDelete (this=0xa118000)
       at /home/mangos_git/src/game/Player.cpp:639
    No locals.
    #12 0x0000000000a5d880 in Map::Remove (this=0x1d08000, player=0xa118000, 
       remove=true) at /home/mangos_git/src/game/Map.cpp:594
       p = {x_coord = 420896953, y_coord = 0}
       cell = {data = {Part = {grid_x = 32, grid_y = 54, cell_x = 50, 
         cell_y = 27, nocreate = 0, reserved = 8}, All = 275721632}}
       grid = (NGridType *) 0x7fd729f881c0
       __FUNCTION__ = "Remove"
       __PRETTY_FUNCTION__ = "virtual void Map::Remove(Player*, bool)"
    #13 0x0000000000b245ab in WorldSession::LogoutPlayer (this=0x7fd729fefc80, 
       Save=true) at /home/mangos_git/src/game/WorldSession.cpp:483
       _map = (class Map *) 0x1d08000
       data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 896, 
       _wpos = 1116335424, 
       _storage = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {
           _M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, 
             _M_start = 0x7fd719b8d600 "", _M_finish = 0x7fd719b8d600 "", 
             _M_end_of_storage = 0x4289ed90 "°í\\211B"}}, <No data fields>}}, 
     m_opcode = 13136}
    #14 0x0000000000b24c96 in WorldSession::Update (this=0x7fd729fefc80, diff=46, 
       updater=@0x4289efb0) at /home/mangos_git/src/game/WorldSession.cpp:316
       currTime = 1298426240
       packet = (WorldPacket *) 0x7fd729fefc80
    #15 0x0000000000928bc1 in World::UpdateSessions (this=0x7fd75caa7900, diff=46)
       at /home/mangos_git/src/game/World.cpp:1902
       pSession = (WorldSession *) 0x7fd729fefc80
       updater = {<PacketFilter> = {_vptr.PacketFilter = 0xde5cb0, 
       m_pSession = 0x7fd729fefc80}, <No data fields>}
       itr = {<std::tr1::__detail::_Hashtable_iterator_base<std::pair<const unsigned int, WorldSession*>, false>> = {_M_cur_node = 0x7fd71a96ee00, 
       _M_cur_bucket = 0x7fd71450e150}, <No data fields>}
       next = {<std::tr1::__detail::_Hashtable_iterator_base<std::pair<const unsigned int, WorldSession*>, false>> = {_M_cur_node = 0x7fd729808a60, 
       _M_cur_bucket = 0x7fd71450e198}, <No data fields>}
       sess = (WorldSession *) 0xa111b
    #16 0x0000000000928e95 in World::Update (this=0x7fd75caa7900, diff=46)
       at /home/mangos_git/src/game/World.cpp:1446
    No locals.
    #17 0x000000000083a8f6 in WorldRunnable::run (this=0x7fd72a887300)
       at /home/mangos_git/src/mangosd/WorldRunnable.cpp:60
       diff = 46
       realCurrTime = 46895727
       realPrevTime = 46895681
       prevSleepTime = 46
    #18 0x0000000000ce2ef6 in ACE_Based::Thread::ThreadTask (param=0x7fd72a887300)
       at /home/mangos_git/src/shared/Threading.cpp:187
       _task = (class ACE_Based::Runnable *) 0x7fd72a887300
    #19 0x00007fd75a911fc7 in start_thread () from /lib/libpthread.so.0
    No symbol table info available.
    #20 0x00007fd75a68764d in clone () from /lib/libc.so.6
    No symbol table info available.
    #21 0x0000000000000000 in ?? ()
    No symbol table info available.
    

  8. tested cmake on windows although VS support is also available i would like to work with Code::Blocks. But very bad a con for cmake on windows :x

    CMake Error at CMakeLists.txt:39 (message):
     Under Windows other compiler than Microsoft Visual Studio are not
     supported.
    
    
    Configuring incomplete, errors occurred!

    Tested with codeblocks+mingw installation, cmake didn't find neither the mingw nor the codeblocks executable although i have all installed on the default way. Also tested mingw standalone, same there.

    Btw. have selected it with the Advanced option checked and in the end there was everytime this error at top :x

  9. Maybe you need post it in a bug report section... Not here =)

    I followed the advice of kero and reopen a thread here ;) So it's a bug that should be fixxed ;)

    Hi,

    I searched a bit through the mangos forum but didn't find any thread according to my problem.

    Because i want that some specific Spells should stack such as http://www.wowhead.com/spell=8921 or http://www.wowhead.com/spell=5570 just as an example.

    I got several Bug posts on my Server with this problem but i didn't find a solution for this. So my question is if there is somewhere a mod for this or if anyone already handled this.

    sry that i now opened two threads with the same content. Maybe the other Thread in 'Core Modifications' could be closed.

  10. Hi,

    I searched a bit through the mangos forum but didn't find any thread according to my problem.

    Because i want that some specific Spells should stack such as http://www.wowhead.com/spell=8921 or http://www.wowhead.com/spell=5570 just as an example.

    I got several Bug posts on my Server with this problem but i didn't find a solution for this. So my question is if there is somewhere a mod for this or if anyone already handled this.

  11. Rev. 11160

    http://www.wowhead.com/spell=56815

    since the latest changes i got the following problem.

    Rune Strike should be castable after evading or a parry of an attack.

    And this is the prob it doesn't work like this. after several tries of evading an attack i am not able to cast this Spell.

    I don't think it is related to my custom changes to mangos core so i just want to ask if some can agree with me ;)

  12. HI folks, just want to know what is with the "Thank you" feature of our forum here?

    i can thank myself but thats it, so for me i cant thank any dev or 'normal' user? (Edit: ofcourse there is now message that i thanked myself but the link for thanking is there)

    Just want to know if it is on purpose or a bug? ^^

  13. Core was generated by `./mangos-worldd'.
    Program terminated with signal 11, Segmentation fault.
    [New process 1285]
    [New process 1296]
    [New process 1295]
    [New process 1294]
    [New process 1293]
    [New process 1292]
    [New process 1291]
    [New process 1290]
    [New process 1289]
    [New process 1288]
    [New process 1287]
    [New process 1286]
    [New process 1272]
    [New process 1275]
    [New process 1274]
    [New process 1273]
    #0  0x0000000000641842 in Map::loaded (this=0x13f7c000, p=@0x43585a00)
       at ../../../src/game/Map.h:286
    286            bool isGridObjectDataLoaded(uint32 x, uint32 y) const { return getNGrid(x,y)->isGridObjectDataLoaded(); }
    #0  0x0000000000641842 in Map::loaded (this=0x13f7c000, p=@0x43585a00)
       at ../../../src/game/Map.h:286
    No locals.
    #1  0x00000000006502d7 in Map::MessageBroadcast (this=0x13f7c000, 
       obj=0x7fd2bc5d6080, msg=0x43585aa0) at ../../../src/game/Map.cpp:400
       cell = {data = {Part = {grid_x = 31, grid_y = 36, cell_x = 4, 
         cell_y = 0, nocreate = 1, reserved = 0}, All = 16795935}}
       post_man = {i_phaseMask = 0, i_message = 0x4ce2a363}
       message = {i_visitor = @0x0}
    #2  0x00000000007db25a in Unit::SendThreatRemove (this=0x7fd2bc5d6080, 
       pHostileReference=0x7fd2bab643c0) at ../../../src/game/Unit.cpp:12280
       data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 0, 
       _wpos = 11, 
       _storage = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {
           _M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, 
             _M_start = 0x7fd2c6005760 "ù\\006·\\024\\016@ñ\\aíÁ\\003þ", 
             _M_finish = 0x7fd2c600576b "þ", 
             _M_end_of_storage = 0x7fd2c6005770 "r\\b"}}, <No data fields>}}, 
     m_opcode = 1156}
    #3  0x00000000007c6379 in ThreatManager::processThreatEvent (
       this=0x7fd2bc5d7aa0, threatRefStatusChangeEvent=<value optimized out>)
       at ../../../src/game/ThreatManager.cpp:539
       hostileReference = (HostileReference *) 0x7fd2bab643c0
    #4  0x00000000007c662e in HostileReference::setOnlineOfflineState (
       this=0x7fd2bab643c0, pIsOnline=<value optimized out>)
       at ../../../src/game/ThreatManager.cpp:172
       event = {<UnitBaseEvent> = {iType = 1}, 
     iHostileReference = 0x7fd2bab643c0, {iFValue = 0, iIValue = 0, 
       iBValue = false}, iThreatManager = 0x7fd2bc5d7aa0}
    #5  0x00000000005f1f63 in HostileRefManager::setOnlineOfflineState (
       this=<value optimized out>, pIsOnline=<value optimized out>)
       at ../../../src/game/HostileRefManager.cpp:81
       ref = (class HostileReference *) 0x7fd2bab643c0
    #6  0x0000000000802426 in FlightPathMovementGenerator::Reset (
       this=0x7fd2bd759d00, player=@0x10d3c000)
       at ../../../src/game/WaypointMovementGenerator.cpp:364
       traveller = {i_traveller = @0x7fd2e66b9a68}
    #7  0x0000000000667564 in MotionMaster::Mutate (this=0x10d3d940, 
       m=0x7fd2bd759d00) at ../../../src/game/MotionMaster.cpp:425
    No locals.
    #8  0x0000000000668c95 in MotionMaster::MoveTaxiFlight (this=0x10d3d940, 
       path=21, pathnode=0) at ../../../src/game/MotionMaster.cpp:384
    No locals.
    #9  0x000000000070a6c0 in Player::ActivateTaxiPathTo (this=0x10d3c000, 
       nodes=<value optimized out>, npc=0x7fd2cffd0100, spellid=0)
       at ../../../src/game/Player.cpp:18861
       sourcenode = 10
       node = <value optimized out>
       sourcepath = 21
       totalcost = 105
       prevnode = <value optimized out>
       lastnode = 11
       mount_display_id = 1566
       money = <value optimized out>
       data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 0, 
       _wpos = 4, 
       _storage = {<std::_Vector_base<unsigned char, std::allocator<unsigned char> >> = {
           _M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, 
             _M_start = 0x7fd2d1655fa0 "", _M_finish = 0x7fd2d1655fa4 "Ò\\177", 
             _M_end_of_storage = 0x7fd2d1655fa4 "Ò\\177"}}, <No data fields>}}, 
     m_opcode = 430}
    #10 0x00000000007bea67 in WorldSession::HandleActivateTaxiOpcode (
       this=0x7fd2c2f37ac0, recv_data=<value optimized out>)
       at ../../../src/game/TaxiHandler.cpp:276
       guid = {m_guid = 17379390999368841240}
       nodes = {<std::_Vector_base<unsigned int, std::allocator<unsigned int> >> = {
       _M_impl = {<std::allocator<unsigned int>> = {<__gnu_cxx::new_allocator<unsigned int>> = {<No data fields>}, <No data fields>}, _M_start = 0x7fd2d1654a28, 
         _M_finish = 0x7fd2d1654a30, 
         _M_end_of_storage = 0x7fd2d1654a30}}, <No data fields>}
       npc = (class Creature *) 0x10100002bff03b2
    #11 0x0000000000810f61 in WorldSession::ExecuteOpcode (this=0x7fd2c2f37ac0, 
       opHandle=<value optimized out>, packet=0x7fd2cd30cbb0)
       at ../../../src/game/WorldSession.cpp:929
    No locals.
    #12 0x00000000008131fd in WorldSession::Update (this=0x7fd2c2f37ac0, 
       diff=<value optimized out>, updater=@0x43585f90)
       at ../../../src/game/WorldSession.cpp:261
       opHandle = (const OpcodeHandler &) @0x1f: <error reading variable>
       packet = (WorldPacket *) 0x7fd2cd30cbb0
    #13 0x000000000064d445 in Map::Update (this=0x37e4000, t_diff=@0x4358606c)
       at ../../../src/game/Map.cpp:468
       pSession = (WorldSession *) 0x13f7c000
       updater = {<PacketFilter> = {_vptr.PacketFilter = 0x9ae930, 
       m_pSession = 0x7fd2c2f37ac0}, <No data fields>}
       plr = <value optimized out>
       updater = {i_timeDiff = 37}
    #14 0x000000000065c66b in MapManager::Update (this=0x7fd2d52a0b80, 
       diff=<value optimized out>) at ../../../src/game/MapManager.cpp:267
    No locals.
    #15 0x000000000080d70d in World::Update (this=0x7fd3079e7900, diff=37)
       at ../../../src/game/World.cpp:1493
    No locals.
    #16 0x000000000052051d in WorldRunnable::run (this=<value optimized out>)
       at ../../../src/mangosd/WorldRunnable.cpp:60
       diff = 37
       prevSleepTime = 37
    #17 0x00000000008d5fca in ACE_Based::Thread::ThreadTask (param=0x13f7c000)
       at ../../../src/shared/Threading.cpp:187
    No locals.
    #18 0x00007fd305b93fc7 in start_thread () from /lib/libpthread.so.0
    No symbol table info available.
    #19 0x00007fd30516364d in clone () from /lib/libc.so.6
    No symbol table info available.
    #20 0x0000000000000000 in ?? ()
    No symbol table info available.

    Any Idea?

    Found this Post

    MaNGOS 9949 (insider42 branch + mtmaps)

    do anyone have those weird grid crashes?

    http://paste2.org/p/845272

    Yes, but solved with:

    diff --git a/src/game/ThreatManager.cpp b/src/game/ThreatManager.cpp
    index 3f506fe..1f2cc33 100644
    --- a/src/game/ThreatManager.cpp
    +++ b/src/game/ThreatManager.cpp
    @@ -512,7 +512,7 @@ void ThreatManager::ProcessThreatEvent(ThreatRefStatusChangeEvent* threatRefStat
                        setCurrentVictim(NULL);
                        setDirty(true);
                    }
    -                iOwner->SendThreatRemove(hostileReference);
    +                //iOwner->SendThreatRemove(hostileReference);
                    iThreatContainer.remove(hostileReference);
                    iUpdateNeed = true;
                    iThreatOfflineContainer.addReference(hostileReference);
    

    No more grid crashes, problem come from rev 9038

    Best regards

    Maybe related to it but after such a long time it wasn't fixxed? o.0

  14. You must understand this this is _spell_power_ coeff. It set how many affect spellpower bonus to spell damage/heal

    If your character not have spellpower then this coef will not affect anything. It not affect base raw spell damage/heal.

    Yeah this was my prob thought this coeff is giving a bonus without looking at the spellpower how i said was just a wrong thought.

  15. ok yeah got it, so this is clear i will looking more into the code.

    btw. i tested know on my local server with clean core the spell 'Wrath' and 'Healing Touch'

    Both got just a direct_bonus but this just seem to do nothing.

    there was an entry for wrath with 0.5714 thought, i just tested it out decreasing it to 0.0001, did both reloaded spell_bonus_data ingame and restarted server but i didn't see any difference. Same with an increasing value to 5000 or just to 5 or 10.

    Tested also just rank 1 which is given in the db and also rank 12 (probably that isn't related cause this is handled in core with different ranks).

    So the same thing with Healing Touch no effect i could see....

    Would like to hear if i make something wrong or maybe i've got something wrong in my mind :x

    *Tested on clean mangos with psmdb

    *Tested also on public server of me with some patches and so on but no difference

  16. Hi folks,

    after there are many problems with the balance and dps at my server i just searched for reasons and found this table 'spell_bonus_data'....

    Now my question is : How this this table work.

    i found after searching a while in the code some functions for reading this table no prob and then going further to calculating with the values provided in the table:

    int32 Unit::SpellBonusWithCoeffs(SpellEntry const *spellProto, int32 total, int32 benefit, int32 ap_benefit,  DamageEffectType damagetype, bool donePart, float defCoeffMod)
    {
       // Distribute Damage over multiple effects, reduce by AoE
       float coeff;
    
       // Not apply this to creature casted spells
       if (GetTypeId()==TYPEID_UNIT && !((Creature*)this)->IsPet())
           coeff = 1.0f;
       // Check for table values
       else if (SpellBonusEntry const* bonus = sSpellMgr.GetSpellBonusData(spellProto->Id))
       {
           coeff = damagetype == DOT ? bonus->dot_damage : bonus->direct_damage;
    
           // apply ap bonus at done part calculation only (it flat total mod so common with taken)
           if (donePart && (bonus->ap_bonus || bonus->ap_dot_bonus))
           {
               float ap_bonus = damagetype == DOT ? bonus->ap_dot_bonus : bonus->ap_bonus;
    
               // Impurity
               if (GetTypeId() == TYPEID_PLAYER && spellProto->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT)
               {
                   if (SpellEntry const* spell = ((Player*)this)->GetKnownTalentRankById(2005))
                       ap_bonus += ((spell->CalculateSimpleValue(EFFECT_INDEX_0) * ap_bonus) / 100.0f);
               }
    
               total += int32(ap_bonus * (GetTotalAttackPowerValue(IsSpellRequiresRangedAP(spellProto) ? RANGED_ATTACK : BASE_ATTACK) + ap_benefit));
           }
       }
       // Default calculation
       else if (benefit)
           coeff = CalculateDefaultCoefficient(spellProto, damagetype) * defCoeffMod;
    
       if (benefit)
       {
           float LvlPenalty = CalculateLevelPenalty(spellProto);
    
           // Spellmod SpellDamage
           if(Player* modOwner = GetSpellModOwner())
           {
               coeff *= 100.0f;
               modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_SPELL_BONUS_DAMAGE, coeff);
               coeff /= 100.0f;
           }
    
           total += int32(benefit * coeff * LvlPenalty);
       }
    
       return total;
    };

    I think this is a key part of this apply of the bonus, but someway this is confusing:

    else if (SpellBonusEntry const* bonus = sSpellMgr.GetSpellBonusData(spellProto->Id))
       {
           /*>>>>>*/coeff/*<<<<<<*/ = damagetype == DOT ? bonus->dot_damage : bonus->direct_damage;
    
           // apply ap bonus at done part calculation only (it flat total mod so common with taken)
           if (donePart && (bonus->ap_bonus || bonus->ap_dot_bonus))
           {
               float ap_bonus = damagetype == DOT ? bonus->ap_dot_bonus : bonus->ap_bonus;
    
               // Impurity
               if (GetTypeId() == TYPEID_PLAYER && spellProto->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT)
               {
                   if (SpellEntry const* spell = ((Player*)this)->GetKnownTalentRankById(2005))
                       ap_bonus += ((spell->CalculateSimpleValue(EFFECT_INDEX_0) * ap_bonus) / 100.0f);
               }
    
               total += int32(ap_bonus * (GetTotalAttackPowerValue(IsSpellRequiresRangedAP(spellProto) ? RANGED_ATTACK : BASE_ATTACK) + ap_benefit));

    this /*>>>>>*/coeff/*<<<<<<*/ isn't used anymore in this tree...

    also i wanna know more of the calculating if this. I see many many functions in there and also many i already read but i don't have a clue how this spell_bonus_data work exactly.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use