Jump to content

Feel the Power

Members
  • Posts

    19
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Feel the Power's Achievements

Member

Member (2/3)

0

Reputation

  1. It needs more research on offi because well that this small bug noticed and started to work on it, can not forget about such "little" bugs.
  2. You should write about this in the subject modification. Most likely the problem is the incompatibility of several patches or obsolete patch.
  3. Scriptdev part of this patch on svn(not git). Index: scripts/eastern_kingdoms/scarlet_enclave/ebon_hold.cpp =================================================================== --- scripts/eastern_kingdoms/scarlet_enclave/ebon_hold.cpp (revision 1587) +++ scripts/eastern_kingdoms/scarlet_enclave/ebon_hold.cpp (working copy) @@ -1100,6 +1100,113 @@ return false; } +/*###### +## npc_eye_of_acherus +######*/ + +struct MANGOS_DLL_DECL npc_eye_of_acherusAI : public ScriptedAI +{ + npc_eye_of_acherusAI(Creature *pCreature) : ScriptedAI(pCreature) + { + m_creature->SetActiveObjectState(true); + Reset(); + } + + uint64 EyeGuid; + uint32 StartTimer; + bool Active; + + void Reset() + { + EyeGuid = 0; + StartTimer = 2000; + Active = false; + } + + void JustDied(Unit*u) + { + if(m_creature->GetCharmer()->GetTypeId()!= TYPEID_PLAYER)return; + Player* pl = ((Player*)m_creature->GetCharmer()); + + m_creature->GetMap()->CreatureRelocation(m_creature, 2325.0f, -5660.0f, 427.0f, 3.83f); + pl->RemoveAurasDueToSpell(51852); + pl->InterruptSpell(CURRENT_CHANNELED_SPELL); + pl->SetClientControl(m_creature, 0); + pl->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED); + pl->SetCharm(NULL); + pl->SetFarSightGUID(0); + pl->SetMover(NULL); + pl->RemovePetActionBar(); + m_creature->SetCharmerGUID(0); + } + + void AttackStart(Unit *) + { + m_creature->AttackStop(); + m_creature->SetInCombatState(false) ; + } + + void MovementInform(uint32 uiType, uint32 uiPointId) + { + if (uiType != POINT_MOTION_TYPE) + return; + + if (uiPointId == 0) + { + Unit *Eye1 = Unit::GetUnit((*m_creature), m_creature->GetGUID()); + if (Eye1) + { + char * text1 = "The Eye of Acherus is in your control"; + Eye1->MonsterTextEmote(text1, Eye1->GetGUID(), true); + //m_creature->RemoveMonsterMoveFlag(MONSTER_MOVE_SPLINE_FLY); + m_creature->SetSpeedRate(MOVE_FLIGHT, 2.8f, true); + m_creature->CastSpell(m_creature, 51890, true); + } + } + + } + + void UpdateAI(const uint32 uiDiff) + { + if (StartTimer < uiDiff && !Active) + { + EyeGuid = m_creature->GetGUID(); + Unit *Eye = Unit::GetUnit((*m_creature), EyeGuid); + if (Eye) + { + char * text = "The Eye of Acherus launches towards its destination"; + Eye->MonsterTextEmote(text, Eye->GetGUID(), true); + //m_creature->SetMonsterMoveFlags(MONSTER_MOVE_SPLINE_FLY); + m_creature->SetSpeedRate(MOVE_FLIGHT, 6.8f, true); + m_creature->SetSpeedRate(MOVE_WALK, 6.8f, true); + m_creature->GetMotionMaster()->MovePoint(0, 1711.0f, -5820.0f, 147.0f); + Active = true; + } + } + else StartTimer -= uiDiff; + + DoMeleeAttackIfReady(); + } +}; + +CreatureAI* GetAI_npc_eye_of_acherus(Creature* pCreature) +{ + return new npc_eye_of_acherusAI(pCreature); +} + +/*###### +## go_eye_of_acherus +######*/ + +bool GOHello_go_eye_of_acherus(Player *player, GameObject* _GO) +{ + if (player->GetQuestStatus(12641) == QUEST_STATUS_INCOMPLETE) + player->CastSpell(player, 51852, true); + + return true; +} + + void AddSC_ebon_hold() { Script *newscript; @@ -1136,4 +1243,14 @@ newscript->Name = "go_acherus_soul_prison"; newscript->pGOHello = &GOHello_go_acherus_soul_prison; newscript->RegisterSelf(); + + newscript = new Script; + newscript->Name = "npc_eye_of_acherus"; + newscript->GetAI = &GetAI_npc_eye_of_acherus; + newscript->RegisterSelf(); + + newscript = new Script; + newscript->Name = "go_eye_of_acherus"; + newscript->pGOHello = &GOHello_go_eye_of_acherus; + newscript->RegisterSelf(); }
  4. Updated for 9428 (after 8399) + some cosmetic changes. diff --git a/src/game/DuelHandler.cpp b/src/game/DuelHandler.cpp index a73be6f..0f8669a 100644 --- a/src/game/DuelHandler.cpp +++ b/src/game/DuelHandler.cpp @@ -23,6 +23,7 @@ #include "Opcodes.h" #include "UpdateData.h" #include "Player.h" +#include "World.h" void WorldSession::HandleDuelAcceptedOpcode(WorldPacket& recvPacket) { @@ -49,6 +50,16 @@ void WorldSession::HandleDuelAcceptedOpcode(WorldPacket& recvPacket) pl->duel->startTimer = now; plTarget->duel->startTimer = now; + ///reset hp, mana and cooldown + if(sWorld.getConfig(CONFIG_BOOL_DUEL_RESET)) + { + pl->SetHealth(pl->GetMaxHealth()); + plTarget->SetHealth(plTarget->GetMaxHealth()); + if (pl->getPowerType() == POWER_MANA) pl->SetPower(POWER_MANA, pl->GetMaxPower(POWER_MANA)); + if (plTarget->getPowerType() == POWER_MANA) plTarget->SetPower(POWER_MANA, plTarget->GetMaxPower(POWER_MANA)); + if (!pl->GetMap()->IsDungeon()) + { pl->RemoveArenaSpellCooldowns(); plTarget->RemoveArenaSpellCooldowns(); } + } pl->SendDuelCountdown(3000); plTarget->SendDuelCountdown(3000); } diff --git a/src/game/Level0.cpp b/src/game/Level0.cpp index a265405..f2c1b31 100644 --- a/src/game/Level0.cpp +++ b/src/game/Level0.cpp @@ -91,6 +91,8 @@ bool ChatHandler::HandleServerInfoCommand(const char* /*args*/) uint32 maxQueuedClientsNum = sWorld.GetMaxQueuedSessionCount(); std::string str = secsToTimeString(sWorld.GetUptime()); + if(sWorld.getConfig(CONFIG_BOOL_SERVER_INFO)) + { char const* full; if(m_session) full = _FULLVERSION(REVISION_DATE,REVISION_TIME,REVISION_NR,"|cffffffff|Hurl:" REVISION_ID "|h" REVISION_ID "|h|r"); @@ -101,6 +103,7 @@ bool ChatHandler::HandleServerInfoCommand(const char* /*args*/) PSendSysMessage(LANG_USING_SCRIPT_LIB,sWorld.GetScriptsVersion()); PSendSysMessage(LANG_USING_WORLD_DB,sWorld.GetDBVersion()); PSendSysMessage(LANG_USING_EVENT_AI,sWorld.GetCreatureEventAIVersion()); + } PSendSysMessage(LANG_CONNECTED_USERS, activeClientsNum, maxActiveClientsNum, queuedClientsNum, maxQueuedClientsNum); PSendSysMessage(LANG_UPTIME, str.c_str()); diff --git a/src/game/World.cpp b/src/game/World.cpp index 7516899..c4528fb 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -514,6 +514,10 @@ void World::LoadConfigSettings(bool reload) setConfigPos(CONFIG_FLOAT_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS, "CreatureFamilyFleeAssistanceRadius", 30.0f); ///- Read other configuration items from the config file + ///modifications_begin + setConfig(CONFIG_BOOL_SERVER_INFO, "ServerInfo", true); + setConfig(CONFIG_BOOL_DUEL_RESET, "DuelReset", false); + ///modifications_end setConfigMinMax(CONFIG_UINT32_COMPRESSION, "Compression", 1, 1, 9); setConfig(CONFIG_BOOL_ADDON_CHANNEL, "AddonChannel", true); setConfig(CONFIG_BOOL_GRID_UNLOAD, "GridUnload", true); diff --git a/src/game/World.h b/src/game/World.h index e6a8357..7d7a961 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -300,7 +300,10 @@ enum eConfigBoolValues CONFIG_BOOL_BATTLEGROUND_QUEUE_ANNOUNCER_PLAYERONLY, CONFIG_BOOL_ARENA_AUTO_DISTRIBUTE_POINTS, CONFIG_BOOL_ARENA_QUEUE_ANNOUNCER_ENABLE, - CONFIG_BOOL_VALUE_COUNT + CONFIG_BOOL_VALUE_COUNT, + //modifications + CONFIG_BOOL_SERVER_INFO, + CONFIG_BOOL_DUEL_RESET }; /// Type of server diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 8cfc258..01d98f5 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -1381,3 +1381,21 @@ Ra.IP = 0.0.0.0 Ra.Port = 3443 Ra.MinLevel = 3 Ra.Secure = 1 + +################################################################################################################## +# MODIFICATIONS +# +# ServerInfo +# Enable show server version (.server info) +# Default: 1 - on +# 0 - off (show current and max online and uptime only) +# +# DuelReset +# Enable reset hp, mana and cooldown after duel begin +# Default: 0 - off +# 1 - on +# +################################################################################################################### + +ServerInfo = 1 +DuelReset = 0 \\ No newline at end of file --
  5. I'll work on it, but it will not be quick, because I do not even the author of this patch.
  6. Интересно, что бы было бы, если бы Владимир не делился своими коммитами с сообществом? Может быть тогда все вместе уйдём в закрытую разработку и будем сидеть по углам, каждый со своими помидорами? Мангос - проект с открытым исходным кодом, и вы должны быть благодарны всем, кто участвует в разработке данного проекта. Лучшая ваша благодарность - ваша помощь и активность. I wonder what would happen would be if Vladimir does not share his commit to the community, maybe then all leave together in a closed development and will sit in the corners, each with their own tomatoes? Mangos - an open-source project, and you should be grateful to everyone who participates in the development of this project. Best your thanks - your help and activity.
  7. Do not forget about reputation, items, mounts, achievements, quests and spells that belongs only to one faction and different with another. It also can help you.
  8. Core: Clear core 9082. How it SHOULD work: You jump back. Can only be used while in combat. This spell. How it DOES work: You can jump back in combat and when you are not in combat. I could not find a place in the source code processing this spell, as well as similar spells. But apparently, the processing must be done in spell.cpp
  9. Give me a patch file, because there are several similar places in the code for this: if(!cId && m_session->GetPlayer()->GetSelectedObject() != 0) lowguid = m_session->GetPlayer()->GetSelectedObject(); if(cId) lowguid = atoi(cId);
  10. No, you misunderstood me. When I store an object (.goject target), and then try to move me (.gobject move), then first he just disappears for a split second and then a second, I lose "remembering" of the object. Other commands (.gobject delete and gobject turn work).
  11. I have not had enough time to test fully, but I can say that we need to add an entry in the table mangos_string and also when I use ".gobject move" I lose the "remembering" and with the object, nothing happens (it just respawns in the same place). INSERT INTO `mangos_string` (`entry`,`content_default`) VALUES ('11500','error text') I'm sorry for my bad english.
  12. It is better to use the new table than to change the old, which can vary in the future.
  13. Perhaps we can simply copy the code .tele and make a new command which will use a new table (not game_tele).
  14. I had errors in the console and so I added it to the query. "ON a_fp.AccountID = a.id WHERE `username` = '%s' " I do not have sufficient knowledge of SQL, so do not quite understand you. Please show how to be more correct.
×
×
  • 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