Jump to content

Le Froid

Members
  • Posts

    95
  • Joined

  • Last visited

  • Donations

    0.00 GBP 

Posts posted by Le Froid

  1. in dep\\ACE_wrappers\\ace\\config-freebsd.h you will need to add lines

    #define ACE_LACKS_GETHOSTBYADDR

    #define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS

    at the top of the file

    If this works then that's great, but if for whatever reason it doesn't I'll share what I did to fix my compile.

    I copied dep/ACE_wrappers/ace/config-freebsd.h to dep/ACE_wrappers/ace/config.h and added

    #define ACE_HAS_MEMCPY_LOOP_UNROLL

    to it, and it worked when i rebuilt everything.

    By the way there was also a problem with compiling VMaps on FreeBSD for me, it took me a very long time to fix this and I'm not exactly sure which trick I did that actually worked, but I think that it was by editing contrib/vmap_extractor_v3/vmapextract/CMakeLists.txt under "LINK_DIRECTORIES" to put the full directory to libmpq. This would be something like changing

    LINK_DIRECTORIES( ${LINK_DIRECTORIES} ../../../dep/libmpq/libmpq/.libs/ )
    to
    LINK_DIRECTORIES( ${LINK_DIRECTORIES} /home/froid/Documents/mangos-one/dep/libmpq/libmpq/.libs/ )

    If that fails I would try adding the path to your libmpq binaries in csh (ex: setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/path/to/libmpq}

  2. Well like you said lillecarl it seems to be fixed in R2. I went through both the MaNGOS One code and R2's and it looks like One does have a (broken) implementation. But if anyone else is looking for the working (perhaps hacky?) code this is what R2 has in their SpellEffects.cpp:

    // Mana Feed

    int32 manaFeedVal = 0;

    Unit::AuraList const& mod = m_caster->GetAurasByType(SPELL_AURA_ADD_FLAT_MODIFIER);

    for(Unit::AuraList::const_iterator itr = mod.begin(); itr != mod.end(); ++itr)

    {

    if((*itr)->GetSpellProto()->SpellFamilyName==SPELLFAMILY_WARLOCK && (*itr)->GetSpellProto()->SpellIconID == 1982)

    manaFeedVal+= (*itr)->GetModifier()->m_amount;

    }

    if (manaFeedVal > 0)

    {

    manaFeedVal = manaFeedVal * mana / 100;

    m_caster->CastCustomSpell(m_caster, 32553, &manaFeedVal, NULL, NULL, true, NULL);

    }

    This replaces what mangos has under "// Mana Feed" in their SpellEffects.cpp

  3. After move on mmap, most vmaps in Outland is broken (may be checked by .gps command), for example - Shattrat, all small dungeons, Nagrsnd's caves.

    If you try to caste spell to the mob who is in nagrand's cave you will get "The target is not in LoS" message.

    Can anyone confirm?

    I don't recall having this problem on my server. I was just in nagrand killing some ogres in caves with my warlock with no apparent vmap/LoS problems. This is on a MaNGOS One server so my thoughts are that either only the main branch has this bug or your files may be corrupted and you need to re-extract them.

  4. Unfortunately I'm not experienced with the spell system so I could not create a fix for this bug. But anyhoo here's the report:

    Mangos Version: 0.12.1 (rev 1514)

    Custom Patches: None, or if any it wouldn't affect the spell system in any way.

    SD2 Version: s2438

    Database Name and Version : TBC-DB 1.2.1 'Winter Veil Fun' for MaNGOS One s1434

    How it SHOULD work: When you use this Demonology spec your pet should get a certain percentage of the mana you are draining from a NPC. It is something like 33%, 66%, and probably 99 or 100% (I cannot be certain about the last number)

    How it DOES work: The pet receives none of your mana even after using a talent point on this spec. This can be a pretty big hindrance to warlocks (like myself) as their pets will constantly be low on mana.

  5. I haven't looked through the code enough to offer a complete solution but I'll tell you how I'd approach the situation:

    What I would is edit World.h/World.cpp to add a config value(s) for the player's default speed(s). This should probably be under the

    enum eConfigUInt32Values

    section of World.h. Then copy some of the code from World.cpp (under LoadConfigSettings(bool reload)) on how to set up a config variable and modify it for your own, and then add the respective string to your config file. (ex: Player.Speed.Walk, Player.Speed.Run, Player.Speed.Swim)

    After that, I'm not sure where exactly, write something to modify the speed(s) according to your variables. For example something like this should work:

    // Run speed

    baseMoveSpeed[1] = sWorld.getConfig(YOUR_CUSTOM_RUN_SPEED);

    and so on.

    I hope this helps :)

  6. This bug exists, because the warlock gets damage on his own and not caused by any other target.

    fix with: https://gist.github.com/1694390

    greetings, dac

    Thank you for the input DaC, however for some reason my system gets compiler errors after applying that patch:

    error C2440: 'initializing' : cannot convert from 'bool' to 'Pet *'

    I can edit the code to look like this:

    if (Pet* pet = GetPet())
           if (this != attacker)
               pet->AttackedBy(attacker);
    

    however I don't understand why that specific patch won't work.

    Edit: After some testing with this patch it does appear to work.

  7. Here's a bug i discovered after updating to the latest mangos rev--

    Mangos Version: 1467

    Custom Patches: MMaps-One

    SD2 Version: 2388

    Database Name and Version : TBC-DB 1.2.1 'Winter Veil Fun'

    How it SHOULD work: The spell 'Health Funnel' should simply channel the warlock's heath to his pet, and nothing else.

    How it DOES work: As of now, from what I've noticed your pet will attack you if you try this spell after exiting combat. Perhaps it thinks that you're attacking it? When I dismissed the pet and summoned a new one it wouldn't fight me back.

    Edit: I also just noticed after running away from a hostile NPC my pet would chase after me and attack me. So maybe in one of the latest revisions the pet/minion system got screwed up in some fashion?

    Final Edit: After doing some testing I have concluded that rev s1462 is to blame for this bug, after reverting the revision the pet system went back to normal for me.

  8. Hello everyone,

    I am doing a few customizations to my MaNGOS core, and currently I am writing a plugin that will load Python scripts into the core instead of only using SD2. What I want to know is how can I change the core to load multiple plugins, because I am not writing the python stuff in the SD2 project. So far I just looked around the core a little and found

    #define MANGOS_SCRIPT_NAME "mangosscript"
    #define MANGOS_SCRIPT_SUFFIX ACE_DLL_SUFFIX
    #define MANGOS_SCRIPT_PREFIX ACE_DLL_PREFIX
    #define MANGOS_LOAD_LIBRARY(libname)    ACE_OS::Dlopen(libname)
    #define MANGOS_CLOSE_LIBRARY(hlib)      ACE_OS::Dlclose(hlib)
    #define MANGOS_GET_PROC_ADDR(hlib,name) ACE_OS::Dlsym(hlib,name)
    

    But I couldn't see it used anywhere in the script loader. Can anyone point me in the right direction?

    Edit: I think I found it, LoadScriptingModule() function just needs some modifications

  9. I want a NPC that you talk with him and check active quests, if those active quests are bugged (defined in the NPC) the character can complete there and give all reward...

    Heres an example script using the function Player::CompleteQuest(). I didnt test the script and don't expect it to work

    #define GOSSIP_COMPLETESOMEQUEST "Complete some quest"
    #define GOSSIP_COMPLETESOMEOTHERQUEST "Complete some other quest"
    
    #define QUEST1      quest_id
    #define QUEST2      quest_id
    bool GossipHello_quest_fixer(Player* pPlayer, Creature* pCreature)
    {
       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_COMPLETESOMEQUEST            , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_COMPLETESOMEOTHERQUEST            , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
       pPlayer->SEND_GOSSIP_MENU(1, pCreature->GetGUID());
       return true;
    }
    
    void SendDefaultMenu_quest_fixer(Player* pPlayer, Creature* pCreature, uint32 uiAction)
    {
       switch(uiAction)
       {
           case GOSSIP_ACTION_INFO_DEF + 1:                   
               pPlayer->CompleteQuest(QUEST_1);
               break;
           case GOSSIP_ACTION_INFO_DEF + 2:                 
               pPlayer->CompleteQuest(QUEST_2);
               break;
       }
    }
    
    bool GossipSelect_quest_fixer(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
    {
       switch (uiSender)
       {
           case GOSSIP_SENDER_MAIN:            SendDefaultMenu_quest_fixer(pPlayer, pCreature, uiAction); break;
       }
       return true;
    }
    
    CreatureAI* GetAI_quest_fixer(Creature* pCreature)
    {
       return new creatureAI(pCreature);
    }
    
    void AddSC_quest_npc()
    {
       Script *newscript;
    
       newscript = new Script;
       newscript->Name = "quest_fixer";
       newscript->pGossipHello          = &GossipHello_quest_fixer;
       newscript->pGossipSelect         = &GossipSelect_quest_fixer;
       newscript->GetAI = &GetAI_quest_fixer;
       newscript->RegisterSelf();
    }
    

  10. This is most likely because WoW was the first program to use Battle.net 2.

    There have been some posts about WoW authentication but I can't remember off the top of my head how it works. Search for the post about removing the password hash.

    WoW uses a SRP6 algorithm for logging on.

    If the other game uses the same process for logging on its something like this

    AUTH_LOGON_CHALLENGE: -client->server
    Command:
    Error: 
    Packet Size:
    Game Name:
    Version 1: 
    Version 2:
    Version 3:
    Build:
    Platform:
    Operating System:
    Country:
    Timezone Bias
    IP Address:
    SRP I Length:
    SRP I:
    
    AUTH_LOGON_CHALLENGE -server->client
    Command:
    Error
    SRP B:
    SRP g: (length)
    SRP g:
    SRP N: (length)
    SRP N: 
    SRP s:
    
    AUTH_LOGON_PROOF -client->server
    Command:
    SRP A:
    SRP M1:
    CRC Hash:
    Number of keys:
    
    AUTH_LOGON_PROOF -server->client
    Command:
    Error:
    SRP M2:
    

    I believe the username is I and the password is in B

    SRP info is over here - http://srp.stanford.edu/design.html

    I don't know if theres any other public documentation about wow or starcraft though, you probably have to find out yourself Dark =(

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