Jump to content

Toinan67

Members
  • Posts

    389
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Toinan67

  1. I agree, Patman

    Recent example : I saw that a server implemented the dungeon finder system. Didn't test it, but the overall thing works.

    They're on Trinity or Mangos, I don't know. I don't think they want to share it to the community : it took them a long time to do it, and bring it to the community means that they worked for their "competitors".

    That's how it is...

    "If I go develop for some private server, I can make a buck, but where does my work go? If I submit a patch to mangos and it gets accepted, my work may very well outlive me." -> they want to make a great private server that differs from others, like "MY server has it and not YOURS". Competition...

  2. Thanks a lot for the details Ever, and thanks roby10 too for the pdf. Quite interesting to read actually, but a bit too long :P

    And what does happen to her family now? Are they going to jail?

    Think about it, think about the work the head devlopers and yourselves have put into this, it should make you sick.

    She's clearly not the only one...that's what makes an open source project great and "dangerous" sometimes : everybody has access to the code, but they can do whatever they want with it

  3. We can't really compare Farmville with a private server, Farmville is on Facebook, 500 millions potiential users and consumers.

    Wow has 11 millions users on official servers, I don't know how many of them play on private...but it's clearly not 500 millions.

  4. Hmmm that can actually make a problem...

    In that case we would have a period of 7 464 960 000 seconds, instead of 86 400. A bit too much :)

    -    uint32 period = mapDiff->resetTime * DAY;
    +    uint32 period = uint32(mapDiff->resetTime / DAY * sWorld.getConfig(CONFIG_FLOAT_RATE_INSTANCE_RESET_TIME)) * DAY;
    

    Maybe?...

    Or at least :

    -    uint32 period = mapDiff->resetTime * DAY;
    +    uint32 period = mapDiff->resetTime;
    

  5. Just a few notes :

    InstanceSaveMgr.cpp, line 233 and 640 :

    uint32 period =  uint32(mapDiff->resetTime / DAY * sWorld.getConfig(CONFIG_FLOAT_RATE_INSTANCE_RESET_TIME)) * DAY;
    ...
    uint32 period = mapDiff->resetTime * DAY;

    When you replace that by something constant like :

    uint32 period = 5 * DAY;

    All works correctly.

    So I think there's something wrong with mapDiff->resetTime...but it's DBC data :/

  6. Well, use the piece of code I gave you :

    void ArenaTeam::DelMember(uint64 guid)
    {
       for (MemberList::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
       {
           if (itr->guid == guid)
           {
               m_members.erase(itr);
               break;
           }
       }
    
       if(Player *player = sObjectMgr.GetPlayer(guid))
       {
           player->GetSession()->SendArenaTeamCommandResult(ERR_ARENA_TEAM_QUIT_S, GetName(), "", 0);
           // delete all info regarding this team
           for(int i = 0; i < ARENA_TEAM_END; ++i)
               player->SetArenaTeamInfoField(GetSlot(), ArenaTeamInfoType(i), 0);
       }
    +   Disband(NULL);
    }
    

  7. I finally managed to find a bug with this patch. Warlocks can no longer receive a Soulshard while using Drain Soul.

    I didn't find the link with this patch.

    SpellAuras.cpp, function HandleChannelDeathItem :

           // Soul Shard (target req.)
           if (spellInfo->EffectItemType[m_effIndex] == 6265)
           {
               // Only from non-grey units
               if (!((Player*)caster)->isHonorOrXPTarget(victim) ||
                   victim->GetTypeId() == TYPEID_UNIT && !((Player*)caster)->isAllowedToLoot((Creature*)victim))
                   return;
           }
    

    Player.cpp :

    bool Player::isHonorOrXPTarget(Unit* pVictim) const
    {
       uint32 v_level = pVictim->getLevel();
       uint32 k_grey  = MaNGOS::XP::GetGrayLevel(getLevel());
    
       // Victim level less gray level
       if(v_level<=k_grey)
           return false;
    
       if(pVictim->GetTypeId() == TYPEID_UNIT)
       {
           if (((Creature*)pVictim)->isTotem() ||
               ((Creature*)pVictim)->isPet() ||
               ((Creature*)pVictim)->GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP_AT_KILL)
                   return false;
       }
       return true;
    }
    

    No link with PLAYER_FLAGS_XP_USER_DISABLED...did you test the spell with exactly the same victim but without the patch?

  8. Actually I think he was talking about arena teams (see the title of the thread) ^^

    See in ArenaTeamHandler.cpp :

    void WorldSession::HandleArenaTeamLeaveOpcode(WorldPacket & recv_data)
    {
       DEBUG_LOG("CMSG_ARENA_TEAM_LEAVE");
    
       uint32 ArenaTeamId;                                     // arena team id
       recv_data >> ArenaTeamId;
    
       ArenaTeam *at = sObjectMgr.GetArenaTeamById(ArenaTeamId);
       if(!at)
           return;
    
       if(_player->GetGUID() == at->GetCaptain() && at->GetMembersSize() > 1)
       {
           // check for correctness
           SendArenaTeamCommandResult(ERR_ARENA_TEAM_QUIT_S, "", "", ERR_ARENA_TEAM_LEADER_LEAVE_S);
           return;
       }
    
       // arena team has only one member (=captain)
       if(_player->GetGUID() == at->GetCaptain())
       {
           at->Disband(this);
           delete at;
           return;
       }
    
       at->DelMember(_player->GetGUID());
    
       // event
       at->BroadcastEvent(ERR_ARENA_TEAM_LEAVE_SS, _player->GetGUID(), 2, _player->GetName(), at->GetName(), "");
    
       // send you are no longer member of team
       SendArenaTeamCommandResult(ERR_ARENA_TEAM_QUIT_S, at->GetName(), "", 0);
    }
    

    Add something like :

           at->Disband(this);
           delete at;
    

    At the end of the function

    Took me 20 seconds to search for it :P

  9. Hello,

    I don't really understand your problem. You're talking about "World spells"...I don't see the link with looting chests.

    "It looks like mining, herbalism, treasure chests and quest type actions are not working." DB problems.

    What's your MaNGOS version? What's your DB type/version

  10. Hey don't be mad at him ^^

    I think he was not talking about ALL of servers admin...he's right, there are people who make money of their servers. Only a blind person would not see that...

    We was denouncing those persons, not the one who use MaNGOS as what it is really, a learning project

  11. I think the main function to modify are IsHostileTo and IsFriendlyTo in Unit.cpp :

       // special cases (Duel)
       if(tester->GetTypeId()==TYPEID_PLAYER && target->GetTypeId()==TYPEID_PLAYER)
       {
           Player const* pTester = (Player const*)tester;
           Player const* pTarget = (Player const*)target;
    
           // Duel
           if(pTester->duel && pTester->duel->opponent == target && pTester->duel->startTime != 0)
               return false;
    
           // Group
           if(pTester->GetGroup() && pTester->GetGroup()==pTarget->GetGroup())
               return true;
    
           // Sanctuary
           if(pTarget->HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_SANCTUARY) && pTester->HasByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_SANCTUARY))
               return true;
    
           // PvP FFA state
           if(pTester->IsFFAPvP() && pTarget->IsFFAPvP())
               return false;
    
           //= PvP states
           // Green/Blue (non-attackable)
           if(pTester->GetTeam()==pTarget->GetTeam())
               return true;
    
           // Blue (friendly/non-attackable) if not PVP, or Yellow/Red in another case (attackable)
           return !pTarget->IsPvP();
       }
    

    Just add some conditions here, or modify the order of them :)

  12. It doesn't work like that, it's not "Hey today I'll fix enhancement shamans!"

    Asking for "fixing the enhancement shamans" does not mean anything. Each spell/talent/feature needs a bug report (if it doesn't already exist of course) with a complete "diagnosis"

    Some spells/talents require a whole new feature in the core (multiple pets for feral spirits for example) whereas some of them may only need a SQL update

×
×
  • 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