now i also know what the error caused
old sql made "alter table `characters`.`bugreport`"
but my database wasn't supposed to be called "characters"
and the other db had an index defined over the type-field
in 8589_06 i got an error:
ERROR 1170 (42000) at line 2: BLOB/TEXT column 'type' used in key specification without a key length
also added delete-queries for 8589_05
You need extract new dbc/map/vmaps for correct work.
And apply ofc sql updates that including character convertion.
Special thanks to TOM_RUS for prepering this switch :)
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Talent have spell family GENERIC, move code to correct case
* Not use caster for spells that expected self applied, avoid caster search without need in Aura::PeriodicDummyTick
This better by reasons:
* More explcitly clear how work aura code
* One from "sub-auras" already applied only in player only case
* Another "sub-aura have lot code related to appling for specific weapon types that not need in this aura code
this empty commit is just for clarification..
also all users, please look at your database-providers
and script-providers forum for sql and scripts
cause right after those commits mangos won't spawn
any gameobjects and creatures in battlegrounds anymore
and spiritguides (=spirithealer from bg) won't work withouth
scripting support
(as noted in last commit scripting support is just very simple
and maybe can even done with eventai)
they basicaly should
*autocast 22011
*give player after gossiphello buff 2584
*port players away to another spiritguides, when they die
so this can be done by a script
and maybe eventai
i added a function IsDeathOnlySpell() which returns true
if this spell can ONLY be casted while dead, so i haven't
implemented all spells which could be cast while dead..
moved arena/battleground check from spell::checkcast
to SpellMgr::GetSpellAllowedInLocationError
also i adjusted some spell_fail-codes related to battleground
cause a spell_fail_wrong_area always requires the areaid, else it
would output "not in area %s"
then we don't need to check for map->isarena() when player is already in an
arena
----
in Spell.h
i moved "isTargetableForAttack()" to the top - cause it was anyway used
in every case of that switch
and isTargetableForAttack for attack also checks for isAlive
and isInFlight
so this could get simplified
Through the eventsystem can be quite complex and errormessages should
be quite meaningful for finding mistakes in sql
I decided to create another table in database
This table will just contain the map,event1,event2 and a human
readable description of every event
the primary key is over map,event1,event2
this table will be outer joined with bg_creatures,bg_gameobject
so every inner-join part will just match those events and create no error
but every outer join part will mean there was something wrong
(either a spawn which has no existant event, or an event where no spawn is
inside)
also this table is very useful for db-developers, to see which events exist
without looking into code and understanding the logic behind the code
also please note:
those error-checks don't (and can't) report every mistake..
for example if you have an arathibasin node - and add just one creature in this
event - this system won't look, if you've spawned all needed gameobjects and so
on..
an idea would be to add to this table how much gameobjects and creatures have to
be there at minimum - but i doubt that this will be much helpful
also i won't stop battlegrounds from loading if not all events do exist
(just cause i see no need in it)