Jump to content
TrinityCore

"unknown column" "missing table" "duplicate column" error / sql problems / SQLDriverLogFile < answer on 1st post of 1st page


Apple
 Share

Recommended Posts

We can't spoon feed everything to you.

 

you may not be able to spoon feed him, but i actually will cause the wiki is in need of clarification....the pertinent info for updating the database is not part of the instructions for setting up the database(especially since the db download hasn't been updated since February......)

 

 

If you update your source beyond a monthly revision, you will likely have additional updates in the C:Trinitysqlupdates folder. The folders within show which database they need to be imported to. For example, the "world" folder has all of the files that need to be imported to your world DB.

File naming conventions follow simple and consistent rules:

yyyy_mm_dd_id_world_tablename.sql -> World DB    
yyyy_mm_dd_id_character_tablename.sql -> Characters DB    
yyyy_mm_dd_id_auth_tablename.sql -> Auth DB
(yyyy - the year; mm - month; dd - day; id - incremental daily id

Note: The incremental daily id starts at 00, with 00 needing to be imported first, then 01, then 02, etc.

It is imperative to know the date of your previous revision when updating in order to import all of the updates from that revision to your current one. Then, simply follow these steps:

  1. Browse into your C:Trinitysqlupdatesworld folder and import all *_world_*.sql files into your world DB that have a date later than your previous revision.
  2. Do the same above step for the characters and auth folders, if they exist. If these folders don't exist, there have not been any characters or auth database updates.
Note: If you are comfortable with executing batch files, you are welcome to use the batch file located on the Combine SQL Updates thread in the TrinityCore forum to make the importing process easier. Also note that doing this will also gather up .sql files you may have already imported. In most cases this is safe, but you should use this batch file at your own risk

 

this is actually part of the "Keeping the DB up to date". the pertinent info here is going to your "trinity_source_folder"sqlupdatesworld folder and applying every update since the date of the world db you downloaded...which in this case means every update since feb 14 2013....

Link to comment
Share on other sites

I don't know why you keep telling people to follow the guide. I've said several times, the guide DOES NOT work. If you follow it as written the core will not start. If you import the sql files in "updates" then it will start but with tons of errors.

 

The problem you run into, after getting around the "table does not exist" issue with importing the updates is that your playercreate_* tables are empty so you can't speak, use GM commands and you start with the wrong gear / spells.

 

If you want more help developing and testing the 4.3.4 branch then someone really needs to fix the guide and the SQL files.

 

Right! ;)

Anyway, I will try some methods and, if one of those will work, I will post it here, immediatly!

Thanks for all support.

Have a nice day.

Link to comment
Share on other sites

The guide works however you have to do 

git checkout 1b8d917ea9

in the core repo because that's the hash of the last database sync (https://github.com/TrinityCore/TrinityCore_4.3.4_DB_Alpha/commit/25736316c80c72fccc11943917a64f54274ed753)

 

Anyway, I'll release TDB 4.3.4_5 and TDB 3.3.5_52 today or tomorrow.

 

Thanks Nay.

 

Incidentally, you'll note that I wrote "The guide does not work as written". If you follow the guide, it does not tell you to clone any specific revision, it merely says to clone the repo:

 

Repository to clone: https://github.com/TrinityCore/TrinityCore.git

Destination: C:TrinitySource

Subdirectory to create: <none> (delete anything in this field)

Branch: 4.3.4 (The Master branch is currently the 3.3.5a Wrath of the Lich King server, so be sure to select 4.3.4 for Cata)

Personal Repository: Yes

Click Clone. Within a few minutes all of the TrinityCore source files will be pulled into the folder.

 

 

So technically the guide doesn't work. You could not follow it at face-value and end up with a working core.

Link to comment
Share on other sites

The guide works however you have to do 

git checkout 1b8d917ea9

in the core repo because that's the hash of the last database sync (https://github.com/TrinityCore/TrinityCore_4.3.4_DB_Alpha/commit/25736316c80c72fccc11943917a64f54274ed753)

 

Anyway, I'll release TDB 4.3.4_5 and TDB 3.3.5_52 today or tomorrow.

Thanks a lot, Nay :)

 I will check as soon as possible...

Anyone can confirm that in this way it works?

Link to comment
Share on other sites

This is one of the reasons I have said for a long time now that the team needs to put a little effort into seriously doing "releases" more properly, keeping those who don't have what it takes to rub their two brain cells together and figure out how to do something the guide doesn't cover, on a revision that is completely supported by the guide and the devs. while those who have more than 2 brain cells can venture into the deep dark world of newer revisions, with the understanding that, if they can't figure it out, then, they need to go back to the supported revision...

Link to comment
Share on other sites

I tryed used newer 4.3.4 (5) DB and the lates Core sources but, I got some errors (I did the checkout to branch 4.3.4, first of all).

After compiling (as the same way) the sources (with no error) I followed this steps:

- Import " create_mysql.sql " file in the source directory
- Import " auth_database.sql " and " characters_database.sql" in the source directory
- Import " TDB_full_434.05_2013_07_17.sql " file to world db
- Import " TrinityCore_4.3.4_DB_Alpha/updates " SQLs files (there is only " 000_version.sql ")

I can start correctly authserver but when I try to start worldserver, I get this error:

    In mysql_stmt_prepare() id: 56, sql: "SELECT difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction_A, faction_H, npcflag, speed_walk, speed_run, scale, rank, mindmg, maxdmg, dmgschool, attackpower, dmg_multiplier, baseattacktime, rangeattacktime, unit_class, unit_flags, unit_flags2, dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, Health_mod, Mana_mod, Armor_mod, RacialLeader, questItem1, questItem2, questItem3, questItem4, questItem5, questItem6, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = ?"
Unknown column 'trainer_spell' in 'field list'
DatabasePool world NOT opened. There were errors opening the MySQL connections. Check your SQLDriverLogFile for specific errors.
Cannot connect to world database...

but I'm sure that connection's parameters are correct! They are the same as authserver.

Where is the problem?

Thanks in advance.

Link to comment
Share on other sites

I tryed used newer 4.3.4 (5) DB and the lates Core sources but, I got some errors (I did the checkout to branch 4.3.4, first of all).

After compiling (as the same way) the sources (with no error) I followed this steps:

- Import " create_mysql.sql " file in the source directory
- Import " auth_database.sql " and " characters_database.sql" in the source directory
- Import " TDB_full_434.05_2013_07_17.sql " file to world db
- Import " TrinityCore_4.3.4_DB_Alpha/updates " SQLs files (there is only " 000_version.sql ")
I can start correctly authserver but when I try to start worldserver, I get this error:

    In mysql_stmt_prepare() id: 56, sql: "SELECT difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction_A, faction_H, npcflag, speed_walk, speed_run, scale, rank, mindmg, maxdmg, dmgschool, attackpower, dmg_multiplier, baseattacktime, rangeattacktime, unit_class, unit_flags, unit_flags2, dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, Health_mod, Mana_mod, Armor_mod, RacialLeader, questItem1, questItem2, questItem3, questItem4, questItem5, questItem6, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = ?"
Unknown column 'trainer_spell' in 'field list'
DatabasePool world NOT opened. There were errors opening the MySQL connections. Check your SQLDriverLogFile for specific errors.
Cannot connect to world database...
but I'm sure that connection's parameters are correct! They are the same as authserver.

Where is the problem?

Thanks in advance.

The problem is the same as everyone else. You followed the guide and missed some SQL updates because they weren't included in the guide.

Link to comment
Share on other sites

Or simply he is ussing master branch with 4.3.4 db, he can't miss any sql updates when we just have released TDB 4.3.4-5.

`trainer_type` tinyint(4) NOT NULL DEFAULT '0',

`trainer_class` tinyint(3) unsigned NOT NULL DEFAULT '0',

`trainer_race` tinyint(3) unsigned NOT NULL DEFAULT '0',

TC>TrinityCore rev. ff3524fabc52 2013-07-16 23:51:11 +0100 (4.3.4 branch) (Unix, None) (worldserver-daemon) ready...

Only importing TDB 4.3.4-5.

Link to comment
Share on other sites

No you are not, TC 4.3.4 DON'T needs / search for trainer_spell column on creature_template.

src/434/src$ rgrep trainer_spell *

server/game/Entities/Player/Player.cpp:TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell) const

server/game/Entities/Player/Player.cpp: if (!trainer_spell)

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: if (!HasSpell(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: if (trainer_spell->reqSkill && GetBaseSkillValue(trainer_spell->reqSkill) < trainer_spell->reqSkillValue)

server/game/Entities/Player/Player.cpp: if (getLevel() < trainer_spell->reqLevel)

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: if (!IsSpellFitByClassAndRace(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: if (uint32 prevSpell = sSpellMgr->GetPrevSpellInChain(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: SpellsRequiringSpellMapBounds spellsRequired = sSpellMgr->GetSpellsRequiredForSpellBounds(trainer_spell->learnedSpell);

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: SpellInfo const* learnedSpellInfo = sSpellMgr->GetSpellInfo(trainer_spell->learnedSpell);

server/game/Entities/Player/Player.h: TrainerSpellState GetTrainerSpellState(TrainerSpell const* trainer_spell) const;

server/game/Handlers/NPCHandler.cpp: TrainerSpellData const* trainer_spells = unit->GetTrainerSpells();

server/game/Handlers/NPCHandler.cpp: if (!trainer_spells)

server/game/Handlers/NPCHandler.cpp: WorldPacket data(SMSG_TRAINER_LIST, 8+4+4+trainer_spells->spellList.size()*38 + strTitle.size()+1);

server/game/Handlers/NPCHandler.cpp: data << uint32(trainer_spells->trainerType);

server/game/Handlers/NPCHandler.cpp: data << uint32(trainer_spells->spellList.size());

server/game/Handlers/NPCHandler.cpp: for (TrainerSpellMap::const_iterator itr = trainer_spells->spellList.begin(); itr != trainer_spells->spellList.end(); ++itr)

server/game/Handlers/NPCHandler.cpp: TrainerSpellData const* trainer_spells = unit->GetTrainerSpells();

server/game/Handlers/NPCHandler.cpp: if (!trainer_spells)

server/game/Handlers/NPCHandler.cpp: TrainerSpell const* trainer_spell = trainer_spells->Find(spellId);

server/game/Handlers/NPCHandler.cpp: if (!trainer_spell)

server/game/Handlers/NPCHandler.cpp: if (_player->GetTrainerSpellState(trainer_spell) != TRAINER_SPELL_GREEN)

server/game/Handlers/NPCHandler.cpp: uint32 nSpellCost = uint32(floor(trainer_spell->spellCost * _player->GetReputationPriceDiscount(unit)));

server/game/Handlers/NPCHandler.cpp: if (trainer_spell->IsCastable())

server/game/Handlers/NPCHandler.cpp: _player->CastSpell(_player, trainer_spell->spell, true);

src/trinitycore/src$ rgrep trainer_spell *

server/game/Entities/Creature/Creature.h: uint32 trainer_spell;

server/game/Entities/Player/Player.cpp:TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell) const

server/game/Entities/Player/Player.cpp: if (!trainer_spell)

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: if (!HasSpell(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: if (trainer_spell->reqSkill && GetBaseSkillValue(trainer_spell->reqSkill) < trainer_spell->reqSkillValue)

server/game/Entities/Player/Player.cpp: if (getLevel() < trainer_spell->reqLevel)

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: if (!IsSpellFitByClassAndRace(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: if (uint32 prevSpell = sSpellMgr->GetPrevSpellInChain(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: SpellsRequiringSpellMapBounds spellsRequired = sSpellMgr->GetSpellsRequiredForSpellBounds(trainer_spell->learnedSpell);

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: SpellInfo const* learnedSpellInfo = sSpellMgr->GetSpellInfo(trainer_spell->learnedSpell);

server/game/Entities/Player/Player.h: TrainerSpellState GetTrainerSpellState(TrainerSpell const* trainer_spell) const;

server/game/Globals/ObjectMgr.cpp: "dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, "

server/game/Globals/ObjectMgr.cpp: creatureTemplate.trainer_spell = fields[37].GetUInt32();

server/game/Globals/ObjectMgr.cpp: if (cInfo->trainer_spell != difficultyInfo->trainer_spell)

server/game/Globals/ObjectMgr.cpp: TC_LOG_ERROR(LOG_FILTER_SQL, "Creature (Entry: %u) has different `trainer_spell` in difficulty %u mode (Entry: %u).", cInfo->Entry, diff + 1, cInfo->DifficultyEntry[diff]);

server/game/Handlers/NPCHandler.cpp: TrainerSpellData const* trainer_spells = unit->GetTrainerSpells();

server/game/Handlers/NPCHandler.cpp: if (!trainer_spells)

server/game/Handlers/NPCHandler.cpp: WorldPacket data(SMSG_TRAINER_LIST, 8+4+4+trainer_spells->spellList.size()*38 + strTitle.size()+1);

server/game/Handlers/NPCHandler.cpp: data << uint32(trainer_spells->trainerType);

server/game/Handlers/NPCHandler.cpp: data << uint32(trainer_spells->spellList.size());

server/game/Handlers/NPCHandler.cpp: for (TrainerSpellMap::const_iterator itr = trainer_spells->spellList.begin(); itr != trainer_spells->spellList.end(); ++itr)

server/game/Handlers/NPCHandler.cpp: TrainerSpellData const* trainer_spells = unit->GetTrainerSpells();

server/game/Handlers/NPCHandler.cpp: if (!trainer_spells)

server/game/Handlers/NPCHandler.cpp: TrainerSpell const* trainer_spell = trainer_spells->Find(spellId);

server/game/Handlers/NPCHandler.cpp: if (!trainer_spell)

server/game/Handlers/NPCHandler.cpp: if (_player->GetTrainerSpellState(trainer_spell) != TRAINER_SPELL_GREEN)

server/game/Handlers/NPCHandler.cpp: uint32 nSpellCost = uint32(floor(trainer_spell->spellCost * _player->GetReputationPriceDiscount(unit)));

server/game/Handlers/NPCHandler.cpp: if (trainer_spell->IsCastable())

server/game/Handlers/NPCHandler.cpp: _player->CastSpell(_player, trainer_spell->spell, true);

server/shared/Database/Implementation/WorldDatabase.cpp: PrepareStatement(WORLD_SEL_CREATURE_TEMPLATE, "SELECT difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction_A, faction_H, npcflag, speed_walk, speed_run, scale, rank, mindmg, maxdmg, dmgschool, attackpower, dmg_multiplier, baseattacktime, rangeattacktime, unit_class, unit_flags, unit_flags2, dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, Health_mod, Mana_mod, Armor_mod, RacialLeader, questItem1, questItem2, questItem3, questItem4, questItem5, questItem6, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = ?", CONNECTION_SYNCH);

server/scripts/Commands/cs_reload.cpp: cInfo->trainer_spell = fields[36].GetUInt32();

Link to comment
Share on other sites

No you are not, TC 4.3.4 DON'T needs / search for trainer_spell column on creature_template.

src/434/src$ rgrep trainer_spell *

server/game/Entities/Player/Player.cpp:TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell) const

server/game/Entities/Player/Player.cpp: if (!trainer_spell)

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: if (!HasSpell(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: if (trainer_spell->reqSkill && GetBaseSkillValue(trainer_spell->reqSkill) < trainer_spell->reqSkillValue)

server/game/Entities/Player/Player.cpp: if (getLevel() < trainer_spell->reqLevel)

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: if (!IsSpellFitByClassAndRace(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: if (uint32 prevSpell = sSpellMgr->GetPrevSpellInChain(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: SpellsRequiringSpellMapBounds spellsRequired = sSpellMgr->GetSpellsRequiredForSpellBounds(trainer_spell->learnedSpell);

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: SpellInfo const* learnedSpellInfo = sSpellMgr->GetSpellInfo(trainer_spell->learnedSpell);

server/game/Entities/Player/Player.h: TrainerSpellState GetTrainerSpellState(TrainerSpell const* trainer_spell) const;

server/game/Handlers/NPCHandler.cpp: TrainerSpellData const* trainer_spells = unit->GetTrainerSpells();

server/game/Handlers/NPCHandler.cpp: if (!trainer_spells)

server/game/Handlers/NPCHandler.cpp: WorldPacket data(SMSG_TRAINER_LIST, 8+4+4+trainer_spells->spellList.size()*38 + strTitle.size()+1);

server/game/Handlers/NPCHandler.cpp: data << uint32(trainer_spells->trainerType);

server/game/Handlers/NPCHandler.cpp: data << uint32(trainer_spells->spellList.size());

server/game/Handlers/NPCHandler.cpp: for (TrainerSpellMap::const_iterator itr = trainer_spells->spellList.begin(); itr != trainer_spells->spellList.end(); ++itr)

server/game/Handlers/NPCHandler.cpp: TrainerSpellData const* trainer_spells = unit->GetTrainerSpells();

server/game/Handlers/NPCHandler.cpp: if (!trainer_spells)

server/game/Handlers/NPCHandler.cpp: TrainerSpell const* trainer_spell = trainer_spells->Find(spellId);

server/game/Handlers/NPCHandler.cpp: if (!trainer_spell)

server/game/Handlers/NPCHandler.cpp: if (_player->GetTrainerSpellState(trainer_spell) != TRAINER_SPELL_GREEN)

server/game/Handlers/NPCHandler.cpp: uint32 nSpellCost = uint32(floor(trainer_spell->spellCost * _player->GetReputationPriceDiscount(unit)));

server/game/Handlers/NPCHandler.cpp: if (trainer_spell->IsCastable())

server/game/Handlers/NPCHandler.cpp: _player->CastSpell(_player, trainer_spell->spell, true);

src/trinitycore/src$ rgrep trainer_spell *

server/game/Entities/Creature/Creature.h: uint32 trainer_spell;

server/game/Entities/Player/Player.cpp:TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell) const

server/game/Entities/Player/Player.cpp: if (!trainer_spell)

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: if (!HasSpell(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: if (trainer_spell->reqSkill && GetBaseSkillValue(trainer_spell->reqSkill) < trainer_spell->reqSkillValue)

server/game/Entities/Player/Player.cpp: if (getLevel() < trainer_spell->reqLevel)

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: if (!IsSpellFitByClassAndRace(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: if (uint32 prevSpell = sSpellMgr->GetPrevSpellInChain(trainer_spell->learnedSpell))

server/game/Entities/Player/Player.cpp: SpellsRequiringSpellMapBounds spellsRequired = sSpellMgr->GetSpellsRequiredForSpellBounds(trainer_spell->learnedSpell);

server/game/Entities/Player/Player.cpp: if (!trainer_spell->learnedSpell)

server/game/Entities/Player/Player.cpp: SpellInfo const* learnedSpellInfo = sSpellMgr->GetSpellInfo(trainer_spell->learnedSpell);

server/game/Entities/Player/Player.h: TrainerSpellState GetTrainerSpellState(TrainerSpell const* trainer_spell) const;

server/game/Globals/ObjectMgr.cpp: "dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, "

server/game/Globals/ObjectMgr.cpp: creatureTemplate.trainer_spell = fields[37].GetUInt32();

server/game/Globals/ObjectMgr.cpp: if (cInfo->trainer_spell != difficultyInfo->trainer_spell)

server/game/Globals/ObjectMgr.cpp: TC_LOG_ERROR(LOG_FILTER_SQL, "Creature (Entry: %u) has different `trainer_spell` in difficulty %u mode (Entry: %u).", cInfo->Entry, diff + 1, cInfo->DifficultyEntry[diff]);

server/game/Handlers/NPCHandler.cpp: TrainerSpellData const* trainer_spells = unit->GetTrainerSpells();

server/game/Handlers/NPCHandler.cpp: if (!trainer_spells)

server/game/Handlers/NPCHandler.cpp: WorldPacket data(SMSG_TRAINER_LIST, 8+4+4+trainer_spells->spellList.size()*38 + strTitle.size()+1);

server/game/Handlers/NPCHandler.cpp: data << uint32(trainer_spells->trainerType);

server/game/Handlers/NPCHandler.cpp: data << uint32(trainer_spells->spellList.size());

server/game/Handlers/NPCHandler.cpp: for (TrainerSpellMap::const_iterator itr = trainer_spells->spellList.begin(); itr != trainer_spells->spellList.end(); ++itr)

server/game/Handlers/NPCHandler.cpp: TrainerSpellData const* trainer_spells = unit->GetTrainerSpells();

server/game/Handlers/NPCHandler.cpp: if (!trainer_spells)

server/game/Handlers/NPCHandler.cpp: TrainerSpell const* trainer_spell = trainer_spells->Find(spellId);

server/game/Handlers/NPCHandler.cpp: if (!trainer_spell)

server/game/Handlers/NPCHandler.cpp: if (_player->GetTrainerSpellState(trainer_spell) != TRAINER_SPELL_GREEN)

server/game/Handlers/NPCHandler.cpp: uint32 nSpellCost = uint32(floor(trainer_spell->spellCost * _player->GetReputationPriceDiscount(unit)));

server/game/Handlers/NPCHandler.cpp: if (trainer_spell->IsCastable())

server/game/Handlers/NPCHandler.cpp: _player->CastSpell(_player, trainer_spell->spell, true);

server/shared/Database/Implementation/WorldDatabase.cpp: PrepareStatement(WORLD_SEL_CREATURE_TEMPLATE, "SELECT difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction_A, faction_H, npcflag, speed_walk, speed_run, scale, rank, mindmg, maxdmg, dmgschool, attackpower, dmg_multiplier, baseattacktime, rangeattacktime, unit_class, unit_flags, unit_flags2, dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, Health_mod, Mana_mod, Armor_mod, RacialLeader, questItem1, questItem2, questItem3, questItem4, questItem5, questItem6, movementId, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName FROM creature_template WHERE entry = ?", CONNECTION_SYNCH);

server/scripts/Commands/cs_reload.cpp: cInfo->trainer_spell = fields[36].GetUInt32();

Ok... I try to compile again the CORE... I will tell you result...

Thanks a lot :)

Link to comment
Share on other sites

Depa Marco: we are aware of the db errors. If you wanna help fixing them, submit fixes to https://github.com/TrinityCore/TrinityCore_4.3.4_DB_Alpha/ (either PR or issue)

 

Thanks a lot :)

Only one question more: all seams right, in-game. But when I type .gm on (my account is GM level 3, in all realms), is sais me:

There is no such subcommand

 

Why??

Thanks a lot!!

Link to comment
Share on other sites

MrSmite: go troll somewhere else, PLEASE

You know full well I'm not trolling.

Up until this updated DB things were broken. You know that and I know that. I was just advising based on my past experiences with being told "you're doing it wrong" when I knew I wasn't.

PS:

If you don't like what I have to say, you could always delete my posts like has been done in the past.

Link to comment
Share on other sites

 

It was:
mysql> SELECT * from rbac_account_groups;
+-----------+---------+---------+
| accountId | groupId | realmId |
+-----------+---------+---------+
|         1 |       1 |      -1 |
+-----------+---------+---------+
According to your suggest:
UPDATE rbac_account_groups SET groupId=3 WHERE accountId=1;
 
mysql> SELECT * from rbac_account_groups;
+-----------+---------+---------+
| accountId | groupId | realmId |
+-----------+---------+---------+
|         1 |       3 |      -1 |
+-----------+---------+---------+
 
Right?
 
From worldserver prompt I typed:
account create name password 3 -1
 
Why this not work? DB problem?
 
Thanks a lot to each of you! :) Really...
Link to comment
Share on other sites

Because to create one gm account you must use console command, not insert the gm account directly into database.

 

Yes, sure :) Infact I used:

account create name password 3 -1

but it didn't work... So I did it manually (I don't know if it works, because I can't try now).

 

Link to comment
Share on other sites

Because you tried to pass incorrect arguments.

 

account create name password

account set gmlevel name 3 -1

 

Oh, yeah!!! *.* you are my savior. Thanks a lot...

I have to delete account and create it again or the manual query is enought, in order to set that account as GM?

Thanks.

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.


  • Similar Content

    • By xgamerninjax
      Hello all, first time posting here and it's really got me scratching my head.
      I've compiled everything on my own computer, and then transferred everything to a host computer so the server can stay live. The server was running fine for a month or so and then suddenly it just crashes when it hits "Loading C++ scripts", exiting saying "caught signal 22"
      I tried setting up the host computer from scratch and transferred everything over fresh and it's still happening for some reason. (Note, I can run the server perfectly on my personal pc where I compiled it.)
      Any help would be greatly appreciated, thanks!
      3d7e3a40e2b3+_worldserver.exe_[1-4_15-19-45].dmp 3d7e3a40e2b3+_worldserver.exe_[1-4_15-19-45].txt
    • By Rochet2
      A lot of people have asked how to debug so I made this short guide on how to set up debugging.
      This guide only tells you how to actually set up debugging in TrinityCore on Windows and Linux.
      This will not explain the basics of debugging. You can google those or play around with the debugger to learn.
      Here are a few videos that explain how to actually debug after setting debugging up on visual studio: https://youtu.be/0ebzPwixrJA and linux: https://www.youtube.com/watch?v=sCtY--xRUyI

      This guide contains multiple guides. Each list of bullet points is it's own guide.
      Make sure you can run the server normally before trying to debug.

      Windows:
      On Windows before anything you should check these
      - Before debugging or making crashlogs etc. with Visual Studio you must compile the core in "Debug" instead of "Release". You can select this in "Build>Configuration Manager" or at the top of Visual Studio window http://i.imgur.com/5oHd59j.png
      - You also need to move the new pdb files generate by compiling in debug mode on Visual Studio from the compile output folder (bin) to your server folder - these files contain information needed for debugging.
      - It is assumed that Solution Explorer is open. Open it by selecting "View>Solution Explorer" in Visual Studio http://i.imgur.com/hkW6Gk0.png
      -- You may want to click on the Home icon to reset the view on Solution Explorer http://i.imgur.com/N8UPwDh.png
      - You can place breakpoints in Visual Studio editor by right clicking a line of code and selecting "Breakpoint>Insert Breakpoint" http://i.imgur.com/L2TxBVG.png
      - At the top of the window you should see controls for stepping and continuing when you have started to debug.
      - Here is a video showing the basic Visual Studio functionality https://www.youtube.com/watch?v=Ijdk4z8-2OI
      Fastest way to debug on windows. This is the easiest way to start up debugging a script.
      - Start the authserver and worldserver normally
      - Open TrinityCore.sln in Visual Studio. This is what you usually open when you want to compile the core
      - In Visual Studio at the top select "Debug>Attach to process...>worldserver.exe" and click "Attach" http://i.imgur.com/jDEI2Hq.png
      - You are now debugging
       
      The second slower way of debugging on windows. This is useful for debugging something that occurs in the startup of the server.
      - Open TrinityCore.sln in Visual Studio. This is what you usually open when you want to compile the core
      - In solution explorer right click on worldserver and select "Set as StartUp Project" http://i.imgur.com/wvMzeRA.png
      - In solution explorer right click on worldserver and select "Properties" http://i.imgur.com/rTNEF9O.png
      -- In Properties you should go to "Configuration Properties>Debugging" and edit "Working Directory" to point to the server folder. For me this is the default compile folder so I use "$(OutDir)" http://i.imgur.com/aRI29fB.png
      - Start the authserver normally
      - Start the worldserver by selecting "Debug>Start Debugging". The server will start with debugging attached from the beginning http://i.imgur.com/cg1KJNw.png
      - You are now debugging
      Crashlogs on windows. Once you have a way to reproduce a crash you can get a crashlog that can help you resolve it.
      - After compiling the core in "Debug" instead of "Release" start up the worldserver and authserver
      - Reproduce the crash you have
      - In the server folder there is now a folder called Crashes that contains txt and dmp files. http://i.imgur.com/9eQIdql.png
      - You can open the txt files in text editors http://i.imgur.com/EH6R17E.png
      -- At the top of a txt file there is some information about your system and below it there is the Call Stack and below that there are Variables of each part of the call stack
      -- The Call Stack will tell you at the top what was the last function call before crashing and what function calls led to that function call.
      -- Next to the function names there is the file that the function is defined in and the line number the code was executing in that function.
      -- In the Variables section you can inspect variables that were present at each function call.
      -- Based on this information you are often able to see what crashed or get a better view of what you need to inspect more in your code.
      - The dmp file can be opened in Visual Studio
      -- Open TrinityCore.sln in Visual Studio. This is what you usually open when you want to compile the core
      -- Drag and drop the dmp file to Visual Studio
      -- In the window that opens click to "Debug with Native Only" http://i.imgur.com/OgyU2kM.png
      -- In the window popup click "Break" http://i.imgur.com/4jDzqRn.png
      -- You are now in a state like you would have hit a break point in the code or a crash while debugging. You can inspect the call stack and the variables.
      Edit and continue on windows. When debugging this allows you to change the code and without restarting the server apply those changes so they actually work ingame.
      - Open TrinityCore.sln in Visual Studio. This is what you usually open when you want to compile the core
      - In solution explorer right click on worldserver and select "Properties" http://i.imgur.com/rTNEF9O.png
      -- In Properties select "Configuration Properties>Linker>General" and set "Enable Incremental Linking" to "Yes". http://i.imgur.com/caQqwN5.png
      -- In Properties select "Configuration Properties>Linker>Advanced" and set "Image Has Safe Exception Handlers" to "No". http://i.imgur.com/FYzN8Ks.png
      -- In Properties select "Configuration Properties>C/C++>General" and set "Debug Information Format" to "Program Database for Edit And Continue". http://i.imgur.com/pxQ6I8N.png
      - At the top of the window select "Tools>Options". In the Options select "Debugging>General" and in there select "Enable Edit and Continue", "Enable Native Edit and Continue" and "Require source files to exactly match the original version".
      - Compile the server for the changes to take effect.
      - Set up "The second slower way of debugging" (I did not test edit and continue on other configurations)
      - Start the authserver normally
      - Start the worldserver by selecting "Debug>Start Debugging".
      - Try edit a cpp file a little and save it.
      - At top of Visual Studio window select "Debug>Apply Code Changes" and wait until the changes are applied. Warning: it can take considerable amount of time for the changes to be applied. http://i.imgur.com/77pb58E.png
      - If you have issues, be sure to check the error messages in Output. You can view it by selecting "View>Output" http://i.imgur.com/4cIznW9.png
      - This guide was written based on https://msdn.microsoft.com/en-us/library/esaeyddf.aspx and https://blogs.msdn.microsoft.com/vcblog/2015/07/22/c-edit-and-continue-in-visual-studio-2015/
      Linux:
      First we need to compile the server in debug mode.
      - Compile the server with the cmake flag -DCMAKE_BUILD_TYPE=Debug

      Debugging on linux. You can debug on linux by using GDB.
      - Here is a good video about it: https://www.youtube.com/watch?v=sCtY--xRUyI
      - Basically you
      -- Start the authserver
      -- Start the worldserver by using "gdb ./worldserver"
      -- Enter breakpoints by using break command on gdb
      -- Use the run command on gdb to start the server
      -- You are now debugging
      - You may also be interested in using VScode or some other more visual debuggers. https://www.youtube.com/watch?v=B0xTgyCwsAo
      Crashlogs on linux. Once you have a way to reproduce a crash you can get a crashlog that can help you resolve it.
      - Take crashreport.gdb from /contrib/debugger from source folder and place it to your server folder
      - Start the authserver
      - Start the worldserver by using "gdb -x crashreport.gdb ./worldserver"
      - Reproduce your crash
      - There should be a backtrace.log in your server folder that contains information about the crash like the callstack and variables in each function call in the call stack
      - This guide was written based on https://github.com/TrinityCore/TrinityCore/blob/master/contrib/debugger/README
      Running valgrind on linux. This helps you find memory errors like invalid reads and writes and memory leaks.
      - Here is a good video about it: https://www.youtube.com/watch?v=fvTsFjDuag8
      - Basically you
      -- Start the authserver
      -- Start the worldserver by using "valgrind ./worldserver"
      -- Run your code that you want to analyze and close the server
      -- The console or an output log should contain the valgrind log
    • By reyne
      Hey there!

      I've followed a few threads here about map extraction, and am still having issues. Originally, I was having the issue described here.
      After following the advice given in that thread (creating characters of both BC races and running around for a bit), I am no longer getting that error, however now I get the following error while trying to extract maps:

      `Error loading World\Maps\Expansion01\Expansion01_42_6.adt`

      This repeats for every line in Expansion01, and then the extractor crashes.

      I'm not sure where else to go from here.

      Thanks for your help

      Edit: I've created an 85 on an i85 server and flown all around Outland now, same issue.
    • By Uee
      I recently found the Trinity Cataclsym Preservation Project and thought I will try it out.
      I am already running 3.3.5a and Master - both server run great
      Pulled 4.3.4 down using Git and built it same way as others:
      boost_1_73_0 cmake 3.17.2 Mysql 5.7.30 VS Community 2019 Built fine - no issue. Used 'Extractor.bat' to run all the map extractors - worked great!
      Noticed there was extra file 'connection_patcher.exe`, ran that - worked great! Now have "wow_patched" and use this to launch client
      MySQL runs in standalone mode, -initialize, added base sql files, imported, auth and character sql files
      Configured both the .conf files and passwords, IPs etc are all in place.
      Note: When loading the exe and built conf file, bnetserver complain about these items missing, so I add them:
      Updates.AutoSetup = 1 Updates.EnableDatabases = 0 LoginDatabase.SynchThreads = 1 Load up Mysql - loads fine
      Load up bnetserver and appears to load ok - last few lines look like this:
      Connected to MySQL database at 127.0.0.1
      DatabasePool 'auth' opened successfully. 2 total connections running.
      Started auth database connection pool.
      Listening on connections from worldservers on port 1118...
      Load up worldserver and it adds the FULL world and hotfixes, then applied all updates (confirmed archived in SQL) - last few lines look like this:
      Calculate next monthly quest reset time...
      Calculate random battleground reset time...
      Calculate guild limitation(s) reset time...
      Calculate next currency reset time...
      World initialized in 0 minutes 13 seconds
      TrinityCore rev. d0c7bbab40bc 2020-05-06 00:01:21 +0200 (master branch) (Win64, RelWithDebInfo, Static) (worldserver-daemon) ready...
       
      There are no db errors in logs.
      Config.wtf contain portal, realmlist as remote server and patchlist as localhost.
      When I try to connecting using "user@local" and password I get immediately disconnected.
      What I did noticed different is that the bnetserver doesnt add "Added realm "Battle for Azeroth" at 192.168.10.213:8085." (From my Master log) 
      3.3.5a also have this line as last line in authserver - but 4.3.4 is not giving me this one.
      Realmlist table is accurate with right information.
      Anyone know why bnetserver is not starting me realm?
       
    • By Deer_Hunter
      Hello all,
      I just updated from the latest Git 
      Trinity Core REV. ac6baa547376 + 2020-02-21  3.3.5 Branch.
      I'm getting this error after crash.
      Problem signature:
        Problem Event Name:    APPCRASH
        Application Name:    worldserver.exe
        Application Version:    0.0.0.0
        Application Timestamp:    5e50a462
        Fault Module Name:    StackHash_f12f
        Fault Module Version:    6.3.9600.19629
        Fault Module Timestamp:    5e2fdc0d
        Exception Code:    c0000374
        Exception Offset:    PCH_9E_FROM_ntdll+0x0000000000090D0A
        OS Version:    6.3.9600.2.0.0.272.7
        Locale ID:    1033
        Additional Information 1:    f12f
        Additional Information 2:    f12f0934d3e965f73c68e60f20f2cd40
        Additional Information 3:    7595
        Additional Information 4:    7595e4d8d703db9dcd3d2f6ea540e357
      the exception code says its a Heap error,  I'm not sure how to troubleshoot this.
      Thanks
×
×
  • Create New...