Jump to content

steveb

Members
  • Posts

    35
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by steveb

  1. Hi there again! I am not using movemaps :D. Should I? I use standard vmaps from mangos:

    vmap.enableLOS = 1
    vmap.enableHeight = 1
    vmap.ignoreSpellIds = "7720"
    vmap.enableIndoorCheck = 1
    DetectPosCollision = 1
    TargetPosRecalculateRange = 1.5

  2. -sometimes when entering instances if i have more bots not all will be teleported in the instance. using "follow" does not summon them also. so i have to remove them and then add them back.

    I have a group with 3 bots and me so no need for raid. Sometimes one of the bots enters the instance while the other 2 are not. Sometimes all 3 are left out. Hope you understand what i mean.

    About the loot issue: i am using the loot-fix-bt code and have the config like this:

    PlayerbotAI.Collect.Combat = 1
    PlayerbotAI.Collect.Quest = 1
    PlayerbotAI.Collect.Profession = 1
    PlayerbotAI.Collect.Loot = 0
    PlayerbotAI.Collect.Skin = 1
    PlayerbotAI.Collect.Objects = 1

    but i will test a few more times and let you know in detail

  3. More observations:

    -bots disenchant items even without the skill. so they just roll on green items and disenchant without the skill?

    -sometimes when entering instances if i have more bots not all will be teleported in the instance. using "follow" does not summon them also. so i have to remove them and then add them back.

    -there seems to be a bug also with collecting/looting. I start up my server, go ingame but bots do not loot/collect anything. I have to do : collect none

    and then collect combat quest etc and it will work again

    More observations later

  4. Sure i will test now and post results ;) Great work

    Later edit: Works great. The bots will accept the quest on Use <item> and is also listed as an active quest and completed also with no problem.

    But one little thing: there is no text print out when the bot accepts the quest from the command.

    What i mean is that after the command is used: Use <itemlink> you dont get a msg with Got the quest or Started quest from <itemlink> or I can't start that quest. A msg to tell you whether the bot started the quest or he cannot start the quest.

    For the rest is all great and fun doing quests with the bots :)

  5. great news :) about the new sell items feature. Could it be possible to have a command to sell all gray items? could be very useful.

    one thing i noticed about quests started from items dropped. There are some quests that start from an item but that does not work at the moment. The master starts the quest from the item. The bots say they started the quest but actually they don't even though they have the item in their inventory. Westfall Deed is an example.

  6. Blueboy, you are a great help :) Yeah am now using the portal code with the loot fix. Works wonders, both the quest looting and exploration part :). My bad for the confusion but i was thinking that these good fixes were also in the stable repository :D Again, many thanks!

    It seems you have your hands full with the npc code :). i will test also the talents branch and see how it is.

    Some little suggestions or observations:

    - when a bot is eating he is sitting down but if the player moves the bot moves also but still sitting down! is a bit weird but just cosmetic.

    - i have seen in the Class scripts this code

        switch (ai->GetScenarioType())
       {
           case PlayerbotAI::SCENARIO_DUEL:
               ai->CastSpell(PLAGUE_STRIKE);
               return;
       }

    But the bots do not melee or cast anything! is that code related to duels in any way?

    And one cool thing would be to have a role command and function. Meaning if one bot is set as "healer" he will only cast healing spells (no attack), same for caster dps.

    I will try and play a bit with the code and see if i can come up with some crazy things lol :D

  7. In src/game/ReputationMgr.cpp, I added a function called SetBaseDefaults that is called before and after the player's faction is changed. Comment out the section:

                   if (faction->Standing != 0)
                   {
                       faction->Standing = 0;
                       faction->Changed = true;
                   }
    

    You will need to keep the section below that though to make sure the flags for AtWar and such are set.

    Commenting this doesnt do anything! rep is still lost! is there any other way to keep the reputation when changing teams?

  8. my playerbot.conf is like this:

    PlayerbotAI.DisableBots = 0

    PlayerbotAI.DebugWhisper = 0

    PlayerbotAI.FollowDistanceMin = 0.5

    PlayerbotAI.FollowDistanceMax = 1.0

    PlayerbotAI.MaxNumBots = 9

    PlayerbotAI.RestrictBotLevel = 100

    PlayerbotAI.BotguyQuests = ""

    PlayerbotAI.BotguyCost = 10000

    PlayerbotAI.Collect.Combat = 1 //bots will loot after they are out of combat

    PlayerbotAI.Collect.Quest = 1

    PlayerbotAI.Collect.Profession = 1

    PlayerbotAI.Collect.Loot = 0 //collects general loot ( all)

    PlayerbotAI.Collect.Skin = 1

    PlayerbotAI.Collect.Objects = 1

    am trying the Poor old Blanchy quest in Westfall.

    survey then get [sack of Oats]

    but bots just walk to the object without looting it and come back.. :-S

    what else can i try?

  9. thanks for the quick answer. about quest items... that too but i was talking about gameobjects like the grapes in human starting zone or wood in Eastvale Logging camp that bots need to open in order to loot the quest items. that does not work. or at least i cannot get it to. And what about quests with explore objectives? are those supported? i have to manually complete those quests for the bots :) For the rest it works well :)

    Happy Easter everyone!

  10. is the stable branch still updated? or only the portal? have compiled today with the stable version and bots can't seem to loot quest objects. I used the survey and get commands but bots just run around. Whats the difference with the portal branch?

  11. XNXX10 if you cannot post something useful then you better not post at all.

    Anyway, the 400 branch on GIT is for 4.0.3 client but is nowhere usable. you can always find the build number of the expected client in

    src > game > shareddefines i guess

    under

    #define EXPECTED_MANGOSD_CLIENT_BUILD {13287, 0}

  12. the ahbot mod already has on/off switch so i don't see this any different than the other features already existing in the mangosd.conf (rates, flightpaths and so on). mangos already offers a lot of flexibility so i see no reason not to add this.

    as for the fact that is a rather big patch...yes it is but the devs could just add cyberium as a dev and let him manage the ahbot part in the core to keep it updated so that they can focus on the more important parts of the core...

    just my 2 cents and to make a long story short: +1 to seeing this in the core

  13. this is a great idea... i had a similar thread about making possible to do quests as single player from both Alliance and Horde. Had somewhat success but one has to manually add the reputation. Add the playerbot and ahbot, change the maximum lvl to 255 and have quests still give you experience and you have a nice single player server.

    @Conan513 are you keeping your branch updated to the latest mangos version?

  14. Yeah that works great as i said in my earlier post with the xp being divided.

    about the atWar part just look at code that i posted and there are more checks in ReputationMgr. i know it is dbc related but it is doable because i did a while ago. first by removing the check for factions that are forced invisible/hidden and then the check for forced hidden because by default they are atWar. I will do some search

    Edit: i have found it :

    void ReputationMgr::SetVisible(FactionState* faction)
    {
       // always invisible or hidden faction can't be make visible
    [b]//[/b]    if(faction->Flags & (FACTION_FLAG_INVISIBLE_FORCED|FACTION_FLAG_HIDDEN))
    [b]//[/b]        return;
    
       // already set
       if(faction->Flags & FACTION_FLAG_VISIBLE)
           return;
    
       faction->Flags |= FACTION_FLAG_VISIBLE;
       faction->Changed = true;
    
       ++m_visibleFactionCount;
    
       SendVisible(faction);
    }

    by commenting that out the check is no longer done to see if a faction is forced invisible/hidden

    Also in void ReputationMgr::LoadFromDB(QueryResult *result) i have set some values to FALSE

    and tested ingame and it works... opposing factions are forced atWar while you have rep hated or lower but as soon as you are on Neutral or higher... then atWar becomes selectable and voila all is done. change the DB quests restrictions and you can do opposing quests.

    Now all i need is a OnCharacterCreate script to add reputation for the opposing factions so that a new character starts with Neutral standing with those factions.

    I have tried in CharacterHandler on login but cannot seem to get it right as it is converting an int to const

        if (pCurrChar->HasAtLoginFlag(AT_LOGIN_FIRST))
    {
           pCurrChar->GetReputationMgr().SetReputation(76,0);
           pCurrChar->RemoveAtLoginFlag(AT_LOGIN_FIRST);
    }

    Any ideas? Thanks,

    Steveb

  15. have just tested that code and it has 2 sides: one good and one bad but i guess it is worthwhile

    Bad Side: reward xp is only a a fraction of the real value of the quest xp, only 10% to be precise

    Good side is and actually the one that matters is that reward xp is given the same no matter what level the player is. can it be adjusted even more? thanks,

    Steveb

    LE: after some trials and error with that formula all seems to be great, multiplying instead of dividing gives much better results :D hehe

  16. i want Horde and Alliance not to be at war and consequently the other factions on both sides ... for example Honor Hold and Thrallmar. if i remember correctly it was/should be possible to have the option of selecting/deselecting to be at war with a specific faction, even for Horde/Alliance. to have the factions visible and be able to select atWar state for all characters. hope it makes sense.

    now about the quest xp part i will test that and see the results but is that all there needs to be put for Quest::XPValue? will it apply in all cases? cheers,

    Steveb

  17. Hello everybody! I am back around mangos forums after quite some time. It is so great to see the changes that took place here and the way Mangos turns out to be... very well done i must add

    now on topic...

    A while ago i did some little edits to the core that would enable players from both factions to do all the quests, changed the xp rewards for gray quests and a player could basically play all the quests in all cities, horde and alliance. but now that is all gone. from what i can see, code has changed quite alot since last year.

    I myself am not a coder, i can remove checks here and there and tweak things for my own needs so i am kindly asking for some help from someone with better understanding of the core

    What i want to do first is to remove the scaling of xp reward for quests (red, yellow, green and gray) so that it always returns the base xp of the quest.

    the current code looks like this. how do i remove the formula and just put a statement where QuestLevel == playerLevel in all cases?

    uint32 Quest::XPValue(Player *pPlayer) const
    {
       if (pPlayer)
       {
           uint32 realXP = 0;
           uint32 xpMultiplier = 0;
           int32 baseLevel = 0;
           int32 playerLevel = pPlayer->getLevel();
    
           // formula can possibly be organized better, using less if's and simplify some.
    
           if (QuestLevel != -1)
               baseLevel = QuestLevel;
    
           if (((baseLevel - playerLevel) + 10)*2 > 10)
           {
               baseLevel = playerLevel;
    
               if (QuestLevel != -1)
                   baseLevel = QuestLevel;
    
               if (((baseLevel - playerLevel) + 10)*2 <= 10)
               {
                   if (QuestLevel == -1)
                       baseLevel = playerLevel;
    
                   xpMultiplier = 2 * (baseLevel - playerLevel) + 20;
               }
               else
               {
                   xpMultiplier = 10;
               }
           }
           else
           {
               baseLevel = playerLevel;
    
               if (QuestLevel != -1)
                   baseLevel = QuestLevel;
    
               if (((baseLevel - playerLevel) + 10)*2 >= 1)
               {
                   baseLevel = playerLevel;
    
                   if (QuestLevel != -1)
                       baseLevel = QuestLevel;
    
                   if (((baseLevel - playerLevel) + 10)*2 <= 10)
                   {
                       if (QuestLevel == -1)
                           baseLevel = playerLevel;
    
                       xpMultiplier = 2 * (baseLevel - playerLevel) + 20;
                   }
                   else
                   {
                       xpMultiplier = 10;
                   }
               }
               else
               {
                   xpMultiplier = 1;
               }
           }

    now the second part is about the reputation system. i want to remove the checks if a faction is hidden and/or at war with another. Horde is hidden for alliance (also at war) and viceversa. the rest i can do via the database. any help would be greatly appreciated

    from my searching the code is like this:

    void ReputationMgr::SetAtWar( RepListID repListID, bool on )
    {
       FactionStateList::iterator itr = m_factions.find(repListID);
       if (itr == m_factions.end())
           return;
    
       // always invisible or hidden faction can't change war state
       if(itr->second.Flags & (FACTION_FLAG_INVISIBLE_FORCED|FACTION_FLAG_HIDDEN) )
           return;
    
       SetAtWar(&itr->second,on);
    }
    
    void ReputationMgr::SetAtWar(FactionState* faction, bool atWar)
    {
       // not allow declare war to faction unless already hated or less
       if (atWar && (faction->Flags & FACTION_FLAG_PEACE_FORCED) && ReputationToRank(faction->Standing) > REP_HATED)
           return;
    
       // already set
       if(((faction->Flags & FACTION_FLAG_AT_WAR) != 0) == atWar)
           return;
    
       if( atWar )
           faction->Flags |= FACTION_FLAG_AT_WAR;
       else
           faction->Flags &= ~FACTION_FLAG_AT_WAR;
    
       faction->Changed = true;
    }

    any suggestions or comments and very welcomed ;) thanks,

    Steveb

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