Jump to content

cyberium

Members
  • Posts

    328
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by cyberium

  1. Yes but has i can see i need to propose more consistency patch...
  2. And what you'll do with boss-less encounters like Tribunal of Ages (Halls of Stone). Achievement system is generic enough to handle it. 1 - Can you point me how we can do that with actual achievement code? 2 - Your exemple is part of about 5% of total encounters do i must use hack to handle achievement code and make it generate correct event at boss kill? 3 - here is the complete missed event list + some entry not found in last ytdb -- The Lost Dwarves difficulty(0) -- Ghaz'rilla difficulty(0) -- Ring of Law difficulty(0) -- The Seven difficulty(0) -- Edge of Madness difficulty(0) -- Ramnstein the Gorger difficulty(0) -- Silithid Royalty difficulty(0) -- Twin Emperors difficulty(0) -- Maiden of the Virtue difficulty(0) -- Opera Event difficulty(0) -- Chess Event difficulty(0) -- The Four Horsemen difficulty(0) -- The Four Horsemen difficulty(1) -- Anzu difficulty(1) -- Yor difficulty(1) -- Reliquary of Souls difficulty(0) -- Prince Keleseth difficulty(1) -- Skarvold & Dalronn difficulty(0) -- Skarvold & Dalronn difficulty(1) -- King Ymiron difficulty(1) -- Frozen Commander difficulty(1) -- Grand Magus Telestra difficulty(1) -- Ormrok the Tree-Shaper difficulty(1) -- Keristrasza difficulty(1) -- Eredar Twins difficulty(0) -- Kael'thas Sunstrider difficulty(1) -- Salram the Fleshcrafter difficulty(0) -- Salram the Fleshcrafter difficulty(1) -- Tribunal of Ages difficulty(0) -- Tribunal of Ages difficulty(1) -- Loken difficulty(1) -- The Iron Council difficulty(0) -- The Iron Council difficulty(1) -- Thorim difficulty(1) -- Mimiron difficulty(1) -- Eck the Ferocious difficulty(1) -- First Prisoner difficulty(0) -- First Prisoner difficulty(1) -- Second Prisoner difficulty(0) -- Second Prisoner difficulty(1) -- Malygos difficulty(1) -- Icecrown Gunship Battle difficulty(0) -- Icecrown Gunship Battle difficulty(1) -- Blood Council difficulty(0) -- Blood Council difficulty(1) -- Queen Lana'thel difficulty(0) -- Queen Lana'thel difficulty(1) -- Sindragosa difficulty(1) -- The Lich King difficulty(1) -- Northrend Beasts difficulty(0) -- Northrend Beasts difficulty(1) -- Northrend Beasts difficulty(2) -- Faction Champions difficulty(0) -- Northrend Beasts difficulty(3) -- Faction Champions difficulty(1) -- Val'kyr Twins difficulty(0) -- Faction Champions difficulty(2) -- Val'kyr Twins difficulty(1) -- Faction Champions difficulty(3) -- Val'kyr Twins difficulty(2) -- Val'kyr Twins difficulty(3) -- Anub'arak difficulty(2) -- Anub'arak difficulty(3) -- Grand Champions difficulty(0) -- Grand Champions difficulty(1) -- Argent Champion difficulty(1) -- The Black Knight difficulty(1) -- Overlrod Tyrannus difficulty(0) -- Overlrod Tyrannus difficulty(1) -- Escaped from Arthas difficulty(0) -- Escaped from Arthas difficulty(1) 100% of any dungeon situation can be handled with correct DungeonEncounter.dbc implementation. DungeonEncounters have nothing to do with achievement but achievement need total information of dungeonencounters.
  3. Why? For DungeonEncounters implementation and DungeonFinder. Why not using "0x00000400" For DB compatibility raison with trinity only so it's up to you to use "0x00000400" DB modification is needed? Yes, i already wrote a script but i want to see discution of that flag value here before. Why not use the same way than achievement does? I realy think the achievement must use this way instead, at least when DungeonEncounters will be completly implemented. diff --git a/src/game/Creature.h b/src/game/Creature.h index 563ccb5..74cd59a 100644 --- a/src/game/Creature.h +++ b/src/game/Creature.h @@ -53,6 +53,7 @@ enum CreatureFlagsExtra CREATURE_FLAG_EXTRA_INVISIBLE = 0x00000080, // creature is always invisible for player (mostly trigger creatures) CREATURE_FLAG_EXTRA_NOT_TAUNTABLE = 0x00000100, // creature is immune to taunt auras and effect attack me CREATURE_FLAG_EXTRA_AGGRO_ZONE = 0x00000200, // creature sets itself in combat with zone on aggro + CREATURE_FLAG_EXTRA_DUNGEON_BOSS = 0x00200000, // creature is a dungeon boss }; // GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push,N), also any gcc version not support it at some platform @@ -444,6 +445,8 @@ class MANGOS_DLL_SPEC Creature : public Unit return rank != CREATURE_ELITE_NORMAL && rank != CREATURE_ELITE_RARE; } + bool IsDungeonBoss() const { return m_creatureInfo->flags_extra & CREATURE_FLAG_EXTRA_DUNGEON_BOSS; } + bool IsWorldBoss() const { if(IsPet()) Waiting for your comment. ex. of sql update needed. UPDATE creature_template SET flags_extra = flags_extra|2097152 WHERE entry = 3914; -- boss Rethilgore difficulty(0)
  4. There is no way, as far as i know, to check if a creature is a dungeon boss, not even checking AI, so i added new extra flag to determine if a creature is a boss or not (https://github.com/TrinityCore/TrinityCore/commit/fd66517473b772c3b2d3adfbdabae47d2088c77d) After quick view i just noticed that 'flags_extra' is not sended to client so we can use it like you do. Is it the best idea? Doing something like if(cVictim->GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_INSTANCE_BOSS) appear to be fast enough to be integrated in this havy used function. You are right about the existence of recognize a boss without adding new flag. But here is the only way. - if elite creature is killed in instance - if creature guid is table encounterMap[instancemap] So finaly we need test for each elite creature killed if there is same guid in a table. It's slow test... Adding IsBoss to creature class with m_IsBoss initialised at creation of the object will result at the same situation has before. For all elite creature created we must verify if there guid exist in one table. Same slow test. So there is redundant stuff if i add flag like SPP but it's not useless in term of speed. That must be implemented in the future. For now i take care of big majority of situation.
  5. You are right but i can confirm you now i am not able to handle all the situation. This patch is very complex and i started the coding with first analyse that was at least 50% wrong actualy. So iam in the stage to found possible solution and choose the best, some situation like you described will be investigated if the rest are working Howewere iam actually finding the best solution to identify any BOSS dying. Do anyone know how i can generate identify 'cVictim' is boss around in uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const *spellProto, bool durabilityLoss) 823 DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE,"DealDamageNotPlayer"); 824 Creature *cVictim = (Creature*)pVictim; creature_template seem doesn't help me. The only interesting value i've found is 'CREATURE_FLAG_EXTRA_INSTANCE_BIND' If creature make bind you to instance, there is lot of chance that creature is boss But it's not a good solution... At least adding new column on creature can help us to formely identify that creature is a boss....
  6. In each step of the implementation i realise "I cannot get this information this way but if i implemented that code other way i was able"... So i change often the base of the code and this realy take lot of time to only make compatible all already implemented function. Anyway here is the advancement. - join queue solo - join queue group - all leave situation - rolecheck - proposal - find group (with possibility to complete queued group by another queued group) - create group - teleportation (and exit instance handled) - statisitc (windows information) - KickVote - buff and debuff. - reward Same point has before Except... - Now buff "Luck of the draw" is reimplemented using "spell_area" table. This way i can be sure this buff will not be seen in other place than dungeon. - Worked a lot of time about "Unknown name bug" after teleport but didn't found solution. Realy frustated about that. - Starting play with 'ACE_Thread' class. Why? If you not have an idea (what i doubt) you will see - I was a bit leazy (mainly due to lot of invest for nothing in 'unknown name bug') so i choosed to work on another part. Reward. I must at least know how i will implement it to not get a need of a big readaptation of existing code. I finaly choosed (after lot of analysing) to add new table (dungeons_encounters) will contain all the encounters info (encounter_id, bossguid, map, index, importance). This table will permit to get all boss contained in one instance. 'bossguid' is the guid of the boss founded in 'creature' table. So for LFG data we have all we need. I am not able to know if boss is killed or not. But it's not enought. The question is how i can generate correctly event only when creature is boss? I actualy test some of the possibility, database modification seem to be mandatory at this point... Mainly creature table. - Lot of check added for security reason and i probably need more of them... TODO this week : - Work on stabilisation of my message system. - Do more isolation of my class to make less modification possible of original mangos code. - Think (or implement it if i have time) on caching some info constantly asked by client (CMSG_LFD_PARTY_LOCK_INFO_REQUEST and CMSG_LFD_PARTY_LOCK_INFO_REQUEST) (SPP Idea) So in place of pushing not finalised code (at least in my point of vue) i prefer to let you waiting a little more Sorry about that.
  7. Can anyone confirm me, http://www.wowhead.com/spell=72221 is applied - When one member of the new group is pickup one AND dungeon is Heroic Or - When you use random dungeon heroic Or - When you use random dungeon heroic AND one member in the group is pickup. Or Any other case that i don't know?
  8. Still analising sniff and try tro found some solution.
  9. Crash? Freeze? Reboot? All usualy stuf when we are in devellopement mode Sure, i will do my best to avoid maximum of it but iam just a learner like lot of you Greetings
  10. Crash? Freeze? Reboot? All usualy stuf when we are in devellopement mode Sure, i will do my best to avoid maximum of it but iam just a learner like lot of you Greetings
  11. 1) Do you agree that i ask my server to test your work on it ? it's a public server so i think 600 peoples is inof to test it smile Of course, i need maximum feedback! But, be advised, it's a developpement thread! 2) Can you add a bug report fonction ? so that players don't loose time, someway they could tell us the bugs. The only place you will able to see bug list it's in new thread i will create for the first release. 3) Is it only Group search or Raid aswell ? (accesible by the social/raid panel ) Only LFG for now, iam not sure if i will expend it to raid search.
  12. What bug does the patch fix? What features does the patch add? Often when member of group is being teleported his status goes offline or die. For which repository revision was the patch created? Latest Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread Probably. Who has been writing this patch? Please include either forum user names or email addresses. me but based on this https://github.com/TrinityCore/TrinityCore/commit/4fba0830d02e350918c7b3f9deae67338538055a diff --git a/src/game/GroupHandler.cpp b/src/game/GroupHandler.cpp index 84c1559..31abd07 100644 --- a/src/game/GroupHandler.cpp +++ b/src/game/GroupHandler.cpp @@ -806,7 +806,7 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode( WorldPacket &recv_data ) ObjectGuid guid; recv_data >> guid; - Player *player = sObjectMgr.GetPlayer(guid); + Player * player = HashMapHolder<Player>::Find(guid); if(!player) { WorldPacket data(SMSG_PARTY_MEMBER_STATS_FULL, 3+4+2); @@ -837,9 +837,30 @@ void WorldSession::HandleRequestPartyMemberStatsOpcode( WorldPacket &recv_data ) data << uint16(player->GetPower(powerType)); // GROUP_UPDATE_FLAG_CUR_POWER data << uint16(player->GetMaxPower(powerType)); // GROUP_UPDATE_FLAG_MAX_POWER data << uint16(player->getLevel()); // GROUP_UPDATE_FLAG_LEVEL - data << uint16(player->GetZoneId()); // GROUP_UPDATE_FLAG_ZONE - data << uint16(player->GetPositionX()); // GROUP_UPDATE_FLAG_POSITION - data << uint16(player->GetPositionY()); // GROUP_UPDATE_FLAG_POSITION + + if (player->IsInWorld()) + { + data << uint16(player->GetZoneId()); // GROUP_UPDATE_FLAG_ZONE + data << uint16(player->GetPositionX()); // GROUP_UPDATE_FLAG_POSITION + data << uint16(player->GetPositionY()); // GROUP_UPDATE_FLAG_POSITION + } + else + { + if (player->IsBeingTeleported()) // Player is in teleportation + { + WorldLocation& loc = player->GetTeleportDest(); // So take teleportation destination + data << uint16(sTerrainMgr.GetZoneId(loc.mapid,loc.coord_x, loc.coord_y,loc.coord_z)); + data << uint16(loc.coord_x); + data << uint16(loc.coord_y); + } + else + { + // unhandled situation + data << uint16(0); + data << uint16(0); + data << uint16(0); + } + } uint64 auramask = 0; size_t maskPos = data.wpos(); Thanks, to Ambal help and SPP.
  13. No, but i admit some time i think in how strategy i'll use for some feature. Today i haven't got time to work on it, i just made some research about another bug. This week end i will let DF sleep before next week! I will have time to make releasable code (i hope). Still need one or more session of LFG OPCODE. Some bug cannot be corrected without this (and little chance to get what i want)
  14. Where i am? - join queue solo - join queue group - all leave situation - rolecheck - proposal - find group (with possibility to complete queued group by another queued group) - create group - teleportation (and exit instance handled) - statisitc (windows information) - KickVote - buff and debuff. - reward Considering the reward part will be not handled for now, iam close to release the code in Developpement mode. Bug described are none blocking. I need comparing official opcode to get ride of them. But i faced some other too, especialy dungeon selection must be rewrited this will take some days... After that i will need lot of feedback, hope you will be there to test it
  15. iam not specialist about that, i just know there is some parser can annalyse trafic between client and server and save all opcode in the file... Iam with SPP and some issue need more work around opcode. That's why i try to find some of them to do not let him do all the sniff part of the work. But he already work on it. In exemple, for actual 15 min LFG cooldown do it's still used on retail? If yes is the the coorect aura? http://www.wowhead.com/spell=71328/dungeon-cooldown If yes why join panel is messed up when i apply this aura?
  16. Simply one session with lfg data/opcode on it. From join to leave, If you can olso set any kick on it this will be a bonnus for me. Here is some of them SMSG_LFG_PLAYER_INFO SMSG_LFG_PARTY_INFO SMSG_LFG_UPDATE_PLAYER SMSG_LFG_UPDATE_PARTY SMSG_LFG_BOOT_PLAYER But probably need other some other.
  17. Hi Do this stuff work on retail? When i initiate kick voting i didn't get any box to enter the reason. When LfgGroup is formed all member still have theres join button active on the LFG windows. is it normal? When i apply 15 min cooldown i have join windows have mixed info. If anyone can help me especialy about opcode sniffing. Here is video for better comprehension about actual bug in my implementation Olso, for kick system, limit of kick is two, but is this mean : - when group have 3 player kick is desactived - or limit is two haven if other member completed the group, kick is definitly unaviable for this Lfg group.
  18. It's not useless i know i have lack of news DungeonFinder has take lot of more time than i was imagined. Olso i had to reverse some implementation due to bad design so lotof time wasted. There is so much possibility that can crash server or make it instable so the code must be tested in evrey improbable situation. Iam olso let it in DEV mode when i will release it because after all this time i still don't haved time to look on reward. Big part of DungeonFinder. Fortunatly i have support from SPP (first developer of DF on trinityCore) to continue my implementation. Many thanks to him. Where i am? - join queue solo - join queue group - all leave situation - rolecheck - proposal - find group (with possibility to complete queued group by another queued group) - create group - teleportation (and exit instance handled) - statisitc (windows information) - KickVote - buff and debuff. - reward This list only for information because i often get back to already done code due to new forgetted situation. I think i will finish kickvoting today so the other feature can be implemented after the first release. I faced performence issue SPP point me to cache all my computed data but not implemented for now. This point will be in the todo. Good point is i still have motivation to continue and improve it I prefer to not give you a delay but be sure iam doing my best to make a releasable code soon.
  19. I have no time to add or optimise AHBOT because iam writing dungeonFinder. But i continue updating it and waiting for any remark from dev to make it acceptable. Anyway has i already said i know there is some part of the code are too hacky to be included in the core but i just need a little official overview from Official DEV to continue the work. Ambal say he will take a look and it's only what i need Greetings ps : comming soon new_dungeonFinder
  20. I think the better idea is to create a little addon for bot controling. This will simplify alot the usage of the bot. Do not have time to test it for now so please if anyone can do some comparaison from actual version here? Olso the opinion of blueboy is welcome Greetings
  21. I personaly don't understaind this patch. Can anywone can explain me why it was not stable and what's that new line do? reactor()->remove_handler(this, ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::ALL_EVENTS_MASK); For learning purpose Tanks in advance.
  22. Triyed, it's the same result... Changed 2 getplayer by holder system but get same result. Set spy log to see if name is sended and check hex value of packet and all is ok.
  23. Comfirmed just tried it (before you post) Iam trying to not call GetZoneId if not in world. Ok sending zero for zone id and position when player is not in world work. So is it possible to retrieve these data without crash system ? Because now the status of player is correctly shown when member change map. Edit: Work great! This not nesolve Unknown issue unfortunaly.
×
×
  • 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