Jump to content

madmax

Community Manager
  • Posts

    2033
  • Joined

  • Last visited

  • Days Won

    71
  • Donations

    0.00 GBP 

Everything posted by madmax

  1. Managed to get this working under a GM character (With GM mode set off). I did ".damage 1" to get the NPCs attention. When the quest is grabbed he is supposed to flag red and attack whoever took it, this does not happen. During testing on covenant-wow.com the NPC remained green after grabbing the quest and does not attack.
  2. [core-zero]mod charm support Copied from github issues: [url]https://github.com/mangoszero/server/issues/26[/url] [COLOR=#999999][FONT=Helvetica][URL="https://github.com/Neilyo-X"]Neilyo-X[/URL] commented [URL="https://github.com/mangoszero/server/issues/26#issue-80858455"]5 days ago[/URL] [/FONT][/COLOR] [COLOR=#333333][FONT=Helvetica][FONT=Helvetica Neue]all spells that used by creature to charm the player are unwork,maybe lack of core support(sorry for my poor english) [/FONT] [/FONT][/COLOR] [QUOTE][COLOR=#333333][FONT=Helvetica Neue]i have found one core which the charm systerm is work right. i will post the code but it is used in TC,not for mangos. i can not read the code very clear.[/FONT][/COLOR] maybe others will have some idea [/QUOTE] [COLOR=#333333][FONT=Helvetica Neue]void Aura::HandleModPossess(bool apply, bool Real) { if(!Real) return;[/FONT][/COLOR] Unit* caster = GetCaster(); if(caster && caster->GetTypeId() == TYPEID_UNIT) { HandleModCharm(apply, Real); return; } if(apply) { if(m_target->getLevel() > m_modifier.m_amount) return; m_target->SetCharmedOrPossessedBy(caster, true); } else m_target->RemoveCharmedOrPossessedBy(caster); } [COLOR=#333333][FONT=Helvetica Neue]Unit* Unit::GetCharm() const { if(uint64 charm_guid = GetCharmGUID()) { if(Unit* pet = ObjectAccessor::GetUnit(*this, charm_guid)) return pet;[/FONT][/COLOR] sLog.outError("Unit::GetCharm: Charmed creature %u not exist.",GUID_LOPART(charm_guid)); const_cast(this)->SetCharm(0); } return NULL; } [COLOR=#333333][FONT=Helvetica Neue]void Unit::SetCharm(Unit* pet) { if(GetTypeId() == TYPEID_PLAYER) SetUInt64Value(UNIT_FIELD_CHARM, pet ? pet->GetGUID() : 0);[/FONT][/COLOR] [h=1]}[/h] [COLOR=#333333][FONT=Helvetica Neue]void Unit::SetCharmedOrPossessedBy(Unit* charmer, bool possess) { if(!charmer) return;[/FONT][/COLOR] assert(!possess || charmer->GetTypeId() == TYPEID_PLAYER); if(this == charmer) return; if(isInFlight()) return; if(GetTypeId() == TYPEID_PLAYER && ((Player*)this)->GetTransport()) return; RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); CastStop(); CombatStop(); //TODO: CombatStop(true) may cause crash (interrupt spells) DeleteThreatList(); // Charmer stop charming if(charmer->GetTypeId() == TYPEID_PLAYER) ((Player*)charmer)->StopCastingCharm(); // Charmed stop charming if(GetTypeId() == TYPEID_PLAYER) ((Player*)this)->StopCastingCharm(); // StopCastingCharm may remove a possessed pet? if(!IsInWorld()) return; // Set charmed charmer->SetCharm(this); SetCharmerGUID(charmer->GetGUID()); setFaction(charmer->getFaction()); SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE); if(GetTypeId() == TYPEID_UNIT) { ((Creature*)this)->AI()->OnCharmed(true); GetMotionMaster()->Clear(false); GetMotionMaster()->MoveIdle(); } else { if(((Player*)this)->isAFK()) ((Player*)this)->ToggleAFK(); ((Player*)this)->SetViewport(GetGUID(), false); } // Pets already have a properly initialized CharmInfo, don't overwrite it. if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT && !((Creature*)this)->isPet()) { CharmInfo *charmInfo = InitCharmInfo(); if(possess) charmInfo->InitPossessCreateSpells(); else charmInfo->InitCharmCreateSpells(); } //Set possessed if(possess) { addUnitState(UNIT_STAT_POSSESSED); SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNKNOWN5); AddPlayerToVision((Player*)charmer); ((Player*)charmer)->SetViewport(GetGUID(), true); charmer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); } // Charm demon else if(GetTypeId() == TYPEID_UNIT && charmer->GetTypeId() == TYPEID_PLAYER && charmer->getClass() == CLASS_WARLOCK) { CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); if(cinfo && cinfo->type == CREATURE_TYPE_DEMON) { //to prevent client crash SetFlag(UNIT_FIELD_BYTES_0, 2048); //just to enable stat window if(GetCharmInfo()) GetCharmInfo()->SetPetNumber(objmgr.GeneratePetNumber(), true); //if charmed two demons the same session, the 2nd gets the 1st one's name SetUInt32Value(UNIT_FIELD_PET_NAME_TIMESTAMP, time(NULL)); } } if(possess) ((Player*)charmer)->PossessSpellInitialize(); else if(charmer->GetTypeId() == TYPEID_PLAYER) ((Player*)charmer)->CharmSpellInitialize(); [COLOR=#333333][FONT=Helvetica Neue]}[/FONT][/COLOR] [COLOR=#333333][FONT=Helvetica Neue]void Unit::RemoveCharmedOrPossessedBy(Unit *charmer) { if(!isCharmed()) return;[/FONT][/COLOR] if(!charmer) charmer = GetCharmer(); else if(charmer != GetCharmer()) // one aura overrides another? return; bool possess = hasUnitState(UNIT_STAT_POSSESSED); CastStop(); CombatStop(); //TODO: CombatStop(true) may cause crash (interrupt spells) getHostilRefManager().deleteReferences(); DeleteThreatList(); SetCharmerGUID(0); RestoreFaction(); if(possess) { clearUnitState(UNIT_STAT_POSSESSED); RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNKNOWN5); } if(GetTypeId() == TYPEID_UNIT) { if(!((Creature*)this)->isPet()) RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE); ((Creature*)this)->AI()->OnCharmed(false); if(isAlive() && ((Creature*)this)->IsAIEnabled) { if(charmer && !IsFriendlyTo(charmer)) { ((Creature*)this)->AddThreat(charmer, 10000.0f); ((Creature*)this)->AI()->AttackStart(charmer); } else ((Creature*)this)->AI()->EnterEvadeMode(); } } else ((Player*)this)->SetViewport(GetGUID(), true); // If charmer still exists if(!charmer) return; assert(!possess || charmer->GetTypeId() == TYPEID_PLAYER); charmer->SetCharm(0); if(possess) { RemovePlayerFromVision((Player*)charmer); ((Player*)charmer)->SetViewport(charmer->GetGUID(), true); charmer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE); } // restore UNIT_FIELD_BYTES_0 else if(GetTypeId() == TYPEID_UNIT && charmer->GetTypeId() == TYPEID_PLAYER && charmer->getClass() == CLASS_WARLOCK) { CreatureInfo const *cinfo = ((Creature*)this)->GetCreatureInfo(); if(cinfo && cinfo->type == CREATURE_TYPE_DEMON) { CreatureDataAddon const *cainfo = ((Creature*)this)->GetCreatureAddon(); if(cainfo && cainfo->bytes0 != 0) SetUInt32Value(UNIT_FIELD_BYTES_0, cainfo->bytes0); else RemoveFlag(UNIT_FIELD_BYTES_0, 2048); if(GetCharmInfo()) GetCharmInfo()->SetPetNumber(0, true); else sLog.outError("Aura::HandleModCharm: target="I64FMTD" with typeid=%d has a charm aura but no charm info!", GetGUID(), GetTypeId()); } } if(GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT && !((Creature*)this)->isPet()) { DeleteCharmInfo(); } if(possess || charmer->GetTypeId() == TYPEID_PLAYER) { // Remove pet spell action bar WorldPacket data(SMSG_PET_SPELLS, 8); data ((Player*)charmer)->GetSession()->SendPacket(&data); } [COLOR=#333333][FONT=Helvetica Neue]}[/FONT][/COLOR] [COLOR=#333333][FONT=Helvetica Neue]void Unit::RestoreFaction() { if(GetTypeId() == TYPEID_PLAYER) ((Player[I])this)->setFactionForRace(getRace()); else { CreatureInfo const *cinfo = ((Creature[/I])this)->GetCreatureInfo();[/FONT][/COLOR] if(((Creature*)this)->isPet()) { if(Unit* owner = GetOwner()) setFaction(owner->getFaction()); else if(cinfo) setFaction(cinfo->faction_A); } else if(cinfo) // normal creature setFaction(cinfo->faction_A); } [h=1]}[/h][QUOTE][COLOR=#333333][FONT=Helvetica Neue]sorry i know it is hard to read. but this is all the files i can find,maybe will help others to fix the mod charm systerm[/FONT][/COLOR] [/QUOTE]
  3. Just a few points about the Community Projects area: This area is intended for developers to release tools & scripts The Community Projects area is not to be used for releasing/discussing or linking to repacks Repack developers sending us fixes are asked to either use the Development areas or the tracker [*]If you are posting executable based tools please also post a link to the virustotal report for the file Use this area to show off upcoming tools (screenshots/guides & documentation are welcome and encouraged)
  4. Identify PlayerBytes in Characters Table under Characters database Currently we store PlayerBytes, Playerbytes2 and Playerflags There is no documentation on how these work, after talking with Chuck he has accepted the challenge of finding out what these are by trying all the different combinations in-game. These are currently decimal values stored in the database, once they have been worked out what they are and how they work we will move onto step two of adding in new fields such as "HairStyle, HairColour, Face" etc. Having these changes in will not only allow us to fully document how these things work but also make future character migrations possible.
  5. [quote=Chucksta] the damn Gremlins that haunt my PC are the issue :mad: bad, bad gremlins![/quote] [IMG]https://sciencegremlin.files.wordpress.com/2013/08/spongebob-wikia_gremlin.jpg[/IMG]
  6. This has been confirmed by myself and antz. [U]In future please don't change my issue status[/U], if I set it to confirmed it is confirmed for a reason, in this case has been seen and commented on by users in the dev channel of skype.
  7. Made some progress and got some source code to come up for the crash from ace. Just putting this link here for antz - [url]http://stackoverflow.com/questions/1702172/terminating-a-thread-gracefully-not-using-terminatethread[/url]
  8. Closing with Ctrl+c gives this error: [IMG]https://www.getmangos.eu/attachment.php?attachmentid=180[/IMG] From visual studio output: [QUOTE]The thread 0x10e4 has exited with code 0 (0x0). The thread 0x1040 has exited with code 0 (0x0). First-chance exception at 0x74F422CB (KernelBase.dll) in mangosd.exe: 0x40010005: Control-C. [/QUOTE]
  9. Server freeze on ace during shtudown / restart I know there is already some issues on server shutdown crashes but not a dedicated one to the ace shutdown which is the point of this issue. ---------------- When shutting down Mangosd either via ctrl+c, .server shutdown 0 or .server restart the core currently hangs. A version I was using before christmas (from november) the core would show something about ace no error or something similar and hang at that point. Now I get no error message but just a core hang. We need to find out what is causing the core hang at the shutdown/restart point.
  10. Fixed in commit - [url]https://github.com/mangos/realmd/commit/15df5d42ae03cabe9cebfbd7534df8af4f739ecb[/url]
  11. Commit that removed this function found by antz: [url]https://github.com/mangos/realmd/commit/548d6fca80a3fe3e276cf4e7d240eeb8fb99c6d6[/url]
  12. [url]https://github.com/mangos/realmd/commits?author=lfxgroove[/url] Exact commit: [url]https://github.com/mangos/realmd/commit/3938060ca040a12a5acd6736b913b2552f3754f6[/url] Presuming this commit is still in there? Must need fixing/reviewing.
  13. On clients higher then TBC with the latest realmd it shows all realms for other expansions when in the change realm screen With the latest realmd when you login to a client TBC or higher and press change realm at the character screen you can see all other realms for other expansions listed. This was fixed by a commit made by lfxgroove either in summer 2014 or 2013. The realmd needs to check the version or expansion of the client connecting and only send back realms that are compatible, for example a Burning Crusade client would only ever be sent the Burning crusade realms.
  14. [quote=Xenithar]This is not the case for me. Is this just a Windows thing?[/quote] Must be.
  15. Add warning to extractors when extracting with debug extractors When client extractors are built in debug it can take many hours (over night usually) to extract mmaps. A warning should be added somewhere in the extractor .exe's when they are built in debug to make it clear. [QUOTE] Are you sure you want to build mmaps? - This extractor is compiled in DEBUG mode. This will take 12+ hours - For quick extraction always use extractors built in release.[/QUOTE]
  16. [quote=antz]I believe this command should use the value from MaxPlayerLevel in mangos.conf But should gm's be allowed to skip past this check ?[/quote] Maybe have an additional setting in the conf to allow GMs to bypass max level check? If they try adding levels above the max level and the check says they have to abide by it then only level to the max allowed. If on the other hand they can bypass it then allow it to level up to 255? (Which i think is a client limit?)
  17. [quote=antz]@Madmax - Xen is right, move to dropdown is blank[/quote] Not implemented by the creator yet. Issues can be moved by admins just let me or antz know.
  18. NPCs do not currently move with the transport they are on Investigate and implement handling for NPCs on transports - Investigate how we can implement handling for NPCs on transports - Implement handling for NPCs on transports (including pets) - Test handing of NPCs on transports - Test pathing NPCs on transports (if that is possible)
  19. Tracker updated getMaNGOS tracker has been updated to SVN revision: 857 Still working on some issues with a developer on it.
  20. Would you mind looking into this on Zero and if possible One as well? If we can figure that out it will make migrations script between the cores much easier.
  21. Force map extractors to always build in release I have a number of times now built the core in debug and not realised that it also builds the tools in debug aswell. This is a major issue as extracting maps in debug takes 12+ hours even on my 8core system. Set in release the map extractors only take 2 hours. I would like to propose that if the BuildEverything project is set to debug that the map extractors are still built in release. You should have to go into the configuration manager in VS to set them to debug mnaually if they really are needed.
  22. Hm is the realmid correct in the mangosd.conf and is the correct version number being shown in the realms table for that realm?
×
×
  • 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