Jump to content

Oceanor

Members
  • Posts

    11
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Oceanor's Achievements

Member

Member (2/3)

0

Reputation

  1. here is mine, if someone needs http://pastebin.com/raw.php?i=f2uZZDEb
  2. row 5634 file ObjectMgr.cpp result = WorldDatabase.Query("SELECT MAX(guid) FROM gameobject" ); if( result ) { m_CreatureFirstGuid = (*result)[0].GetUInt32()+1; delete result; } First gameobject guid is not set, and instead creature first creature guid is overwritten by GO max guid. Should be: result = WorldDatabase.Query("SELECT MAX(guid) FROM gameobject" ); if( result ) { m_GameObjectFirstGuid = (*result)[0].GetUInt32()+1; delete result; }
  3. to ue multiseat mount, have you tried to group? in our mangos with vehicle patch linked here works perfectly if in group and same faction. anyway, here's the adapted SQL from RSA's git (so many thanks to him and his contributors) http://pastebin.com/vFKpZ6P1 IMPORTANT NOTE: not fully tested. make a backup of your mangos database before applying those queryes because you can't revert them (too hard).
  4. Ok it works but i don't know damages amount. I know that i have to post it in patch format, but i have to download the entire mangos source, if someone want to do that, here is the working code (surely there is a way to write it better): + // pulsing shockwave normal + case 59837: + float fdistancenormal; + fdistancenormal = m_caster->GetDistance(unitTarget); + damage = 100 * (int)fdistancenormal; + break; + // pulsing shockwave heroic + case 52942: + float fdistanceheroic; + fdistanceheroic = m_caster->GetDistance(unitTarget); + damage = 150 * (int)fdistanceheroic; + break; In "case SPELLFAMILY_GENERIC:" of SpellEffects.cpp, function "void Spell::EffectSchoolDMG(SpellEffectIndex effect_idx)" Hope it helps :rolleyes:
  5. ok maybe your patch have better features, but if you are interested in just dumping chars > than a level, specifying directory of .sql pdumped files and switch this feature on and off, here is a patch that i wrote some days ago: Index: Player.cpp =================================================================== --- Player.cpp (revisione 917) +++ Player.cpp (revisione 918) @@ -16,6 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "Config/Config.h" +#include "PlayerDump.h" #include "Common.h" #include "Language.h" #include "Database/DatabaseEnv.h" @@ -4097,6 +4101,31 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmChars) { + if(sConfig.GetBoolDefault("DumpActive", 0)) + { + QueryResult *resultPlayer = CharacterDatabase.PQuery("SELECT name, level FROM characters WHERE guid='%u' ", playerguid); + if(resultPlayer) + { + Field *fields = resultPlayer->Fetch(); + + std::string pname = ""; + uint32 plevel = fields[1].GetUInt32(); + if(sConfig.GetBoolDefault("DumpTimestamp", 0)) + pname = fields[0].GetCppString() + "_" + Log::GetTimestampStr() + ".sql"; + else + pname = fields[0].GetCppString() + ".sql"; + + if(plevel >= sConfig.GetIntDefault("DumpMinLevel", 0)) + { + std::string directory = sConfig.GetStringDefault("DumpPath", "") + pname; + PlayerDumpWriter().WriteDump(directory, playerguid); + } + delete resultPlayer; + } + } + uint32 guid = GUID_LOPART(playerguid); // convert corpse to bones if exist (to prevent exiting Corpse in World without DB entry) really simple and short, maybe is not so good because it have to access to database everytime a character is deleted, but works both in 3.2.2a and 3.3.2a (i think also in 2.4.3 because is really simple but not yet tested) you have to add in mangosd.conf file these lines (explanation excluded if u want ) : ################################################################################################################### # Pdumps # # DumpActive # Enable/disable dumps before character delete, 0 by default # # DumpPath # Path where dump files are stored, default empty # # DumpMinLevel # Minimum level to dump characters, default 0 # # DumpTimestamp # Add timestamps to dumped files, default 0 # ################################################################################################################### DumpActive = 1 DumpPath = "" DumpMinLevel = 40 DumpTimestamp = 1 Directory/path works exactly as DataDir or LogsDir. Hope this helps.
  6. try adding SendInitialPacketsAfterAddToMap(); in void Player::ActivateSpec(uint8 spec) function, here: //if (plrTalent != m_talents[m_activeSpec]->end()) // plrTalent->second->state = PLAYERSPELL_REMOVED; } } SendInitialPacketsAfterAddToMap(); // set glyphs for (uint8 slot = 0; slot < MAX_GLYPH_SLOT_INDEX; ++slot) { // remove secondary glyph if(uint32 oldglyph = m_Glyphs[m_activeSpec][slot]) { if(GlyphPropertiesEntry const *old_gp = sGlyphPropertiesStore.LookupEntry(oldglyph)) { this worked for me.
  7. ok i think that i've resolved, if someone is interessed in this, it should be: Index: src\\game\\BattleGroundHandler.cpp =================================================================== --- src\\game\\BattleGroundHandler.cpp (Original) +++ src\\game\\BattleGroundHandler.cpp (Mine) @@ -459,6 +459,17 @@ sBattleGroundMgr.SendToBattleGround(_player, instanceId); // add only in HandleMoveWorldPortAck() // bg->AddPlayer(_player,team); + for(int qId = 1; qId <= 7; ++qId) + { + if(bgQueueTypeId != qId) + { + queueSlot = _player->GetBattleGroundQueueIndex(qId); + _player->RemoveBattleGroundQueueId(qId); + sBattleGroundMgr.BuildBattleGroundStatusPacket(&data, bg, _player->GetTeam(), queueSlot, STATUS_NONE, 0, 0); + sBattleGroundMgr.m_BattleGroundQueues[qId].RemovePlayer(_player->GetGUID(), false); + SendPacket(&data); + } + } sLog.outDebug("Battleground: player %s (%u) joined battle for bg %u, bgtype %u, queue type %u.",_player->GetName(),_player->GetGUIDLow(),bg->GetInstanceID(),bg->GetTypeID(),bgQueueTypeId); break; case 0: // leave queue error was in true/false boolean in sBattleGroundMgr.m_BattleGroundQueues[qId].RemovePlayer(_player->GetGUID(), false); line.
  8. Hi! I have a simple question: what is the portion of code used when a player right-click the BG query icon and press "leave queue" ? What the MANGoS will do? I'm sure it is in battleground.cpp or in battlegroundmgr.cpp but i cant find exactly where.. I have to use this function when a player enter in a battleground, forcing him to leave other queues. In thi way, it will be impossible to switch from a bg to another one.. I've added this for now, and it works, but it seems that the queue slot is not free.. Index: src\\game\\BattleGroundHandler.cpp =================================================================== --- src\\game\\BattleGroundHandler.cpp (Original) +++ src\\game\\BattleGroundHandler.cpp (Mine) @@ -459,6 +459,17 @@ sBattleGroundMgr.SendToBattleGround(_player, instanceId); // add only in HandleMoveWorldPortAck() // bg->AddPlayer(_player,team); + for(int qId = 1; qId <= 7; ++qId) + { + if(bgQueueTypeId != qId) + { + queueSlot = _player->GetBattleGroundQueueIndex(qId); + _player->RemoveBattleGroundQueueId(qId); + sBattleGroundMgr.BuildBattleGroundStatusPacket(&data, bg, _player->GetTeam(), queueSlot, STATUS_NONE, 0, 0); + sBattleGroundMgr.m_BattleGroundQueues[qId].RemovePlayer(_player->GetGUID(), true); + SendPacket(&data); + } + } sLog.outDebug("Battleground: player %s (%u) joined battle for bg %u, bgtype %u, queue type %u.",_player->GetName(),_player->GetGUIDLow(),bg->GetInstanceID(),bg->GetTypeID(),bgQueueTypeId); break; case 0: // leave queue What I've forgotten?
  9. for(int qId = 1; qId <= 7; ++qId) { if(bgTypeId != qId) { queueSlot = _player->GetBattleGroundQueueIndex(qId); _player->RemoveBattleGroundQueueId(qId); sBattleGroundMgr.BuildBattleGroundStatusPacket(&data, bg, _player->GetTeam(), queueSlot, STATUS_NONE, 0, 0); sBattleGroundMgr.m_BattleGroundQueues[qId].RemovePlayer(_player->GetGUID(), true); SendPacket(&data); } } OK! Now it works! Tested by me Insert this between rows 327 and 328 ( between bg->AddPlayer(_player); and break; ) of the file battlegroundhandler.cpp
  10. I am trying to do this from 2 days, but i'm not a coder, so i tryed just to put: for(int qId = 0; qId < PLAYER_MAX_BATTLEGROUND_QUEUES; ++qId) { if(_player->GetBattleGroundQueueId(qId) != 0) { int i=(_player->GetBattleGroundQueueId(qId)); _player->RemoveBattleGroundQueueId(i); } } in line 328 of Battlegroundhandler.cpp, before the "break;" line. But i didn't tryed this yet.
×
×
  • 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