Jump to content

blueboy

Members
  • Posts

    723
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by blueboy

  1. Yeah, I'm sure it's something specific you have missed. I was hoping you would provide a step-by-step procedure, not a problem. Please bear with me, I will show you what I use. I prefer to use scripts to execute each stage in the process. It's apparent from the info on pastebin that your running a *nix server. I use '/home/mangos/compile/portal' as my working directory and the playerbot code is obtained from the development repo portal rather than blueboy. You will need to change this to suite your system. Script to obtain playerbot.patch (run this first) #!/bin/bash -x git clone git://github.com/mangos/mangos.git portal_patch cd portal_patch git fetch git://github.com/blueboy/portal.git master:portal git checkout portal HASH=`git log --pretty=oneline | grep -m 1 '\\[1[0-9]\\{4\\}]' | cut -d " " -f 1` git diff $HASH > playerbot.patch Script to obtain MaNGOS code and organize various service scripts and mod patches #!/bin/bash -x unset WORK WORK="/home/mangos/compile/portal" if [ ! -d "${WORK}" ]; then mkdir ${WORK}; fi cp scripts/org.sh ${WORK} cp scripts/build.sh ${WORK} cp scripts/scriptdev2.sh ${WORK} cp scripts/patch.sh ${WORK} cp portal_patch/playerbot.patch ${WORK}/ cp patches/config.h.in.patch ${WORK}/ cd ${WORK} # raw mangos setup git init git pull git://github.com/mangos/mangos.git master cd portal git log will give you the commit history so you can select the appropriate MaNGOS code (branch). If your using the MaNGOS HEAD this is not necessary. git apply --check --whitespace=fix playerbot.patch check for possible merge conflicts with MaNGOS. If none, run again without --check option. Repeat this procedure for all additional mod patches. Script to obtain scriptdev2.sh code (run this now). #!/bin/bash unset VERSION unset DEST VERSION=$1 DEST="/home/mangos/compile/portal/src/bindings/ScriptDev2" if [ -z "${VERSION}" ]; then echo "No ScriptDev2 VERSION specified, assume latest VERSION"; else VERSION="-r "${VERSION}; fi if [ -d "${DEST}" ]; then rm -R ${DEST}; fi mkdir ${DEST}; svn co [url]https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/[/url] ${DEST} ${VERSION} I have notified Scriptdev2.com of an issue that prevents 'scriptdev2.conf' from loading as it should. It's been ignored, but here is a patch config.h.in.patch anyway. (apply this now) diff --git a/src/bindings/ScriptDev2/config.h.in b/src/bindings/ScriptDev2/config.h.in index bb3caf8..1605075 100644 --- a/src/bindings/ScriptDev2/config.h.in +++ b/src/bindings/ScriptDev2/config.h.in @@ -24,7 +24,7 @@ // Format is YYYYMMDDRR where RR is the change in the conf file // for that day. -#define SD2_CONF_VERSION 2009040501 +#define SD2_CONF_VERSION 2010062001 #ifdef WIN32 #define MANGOS_DLL_EXPORT extern "C" __declspec(dllexport) You now need to bind the MaNGOS and scriptdev2 code so they compile together. (Only on *nix systems) #!/bin/bash unset BRANCH unset PATCHES BRANCH=$1 PATCHES="/home/mangos/compile/portal/src/bindings/ScriptDev2/patches/" [ ! -z "${BRANCH}" ] || { echo "available patches:>"; ls ${PATCHES}; exit 1 ; } patch -p1 < ${PATCHES}'MaNGOS-'${BRANCH}'-ScriptDev2.patch' run this ./patch.sh to show current patches. available patches:> MaNGOS-9519-ScriptDev2.patch custom run again specifying required patch. ./patch.sh 9519 You now need to create an objdir folder to prepare and build your source org.sh (run this now) #!/bin/bash autoreconf --install --force mkdir /home/mangos/compile/portal/objdir mv build.sh /home/mangos/compile/portal/objdir cd objdir You now need to compile the source build.sh (run this now) #!/bin/bash ../configure --prefix=/home/mangos/wow --sysconfdir=/home/mangos/wow/etc \\ --with-python \\ --enable-cli \\ --enable-ra \\ --datadir=/home/mangos/wow/data and finally link the code make The code should now compile and link without issue. Sorry if you know most of this, but I hope it will help
  2. Hi, How are you exactly preparing your source for compilation. If you give us details, maybe we can spot a cause for your issue Cheers
  3. Hi kyle1, Your absolutely right, sorry I made the change early this morning and I wasn't thinking straight We'll need to call HasItemTotemCategory three times for each option. EDIT: + if (m_bot->HasItemTotemCategory(TC_MINING_PICK) || m_bot->HasItemTotemCategory(TC_HAMMER_PICK) || m_bot->HasItemTotemCategory(TC_BLADED_PICKAXE)) I'll update portal ASAP Cheers
  4. Thanks for that, I wrote HasPick() to service the 'survey - get' features I introduced :rolleyes: Well spotted sir! EDIT: One small change to the patch, so all possible mining picks will be considered + if (m_bot->HasItemTotemCategory(TC_MINING_PICK)) changed to + if (m_bot->HasItemTotemCategory(TC_MINING_PICK || TC_HAMMER_PICK || TC_BLADED_PICKAXE)) I have updated the portal repo
  5. blueboy

    MMaps Redux

    Hi qsa, Thanks for the time you have already spent on this matter. I don't want to bog you down with it any longer, as it seems to be only me who has this problem. I fully agree with you, which makes this issue all the more puzzling I do have other mods in the code and I'll see if any of them conflict with mmap_rewrite. I hope it's not playerbot.. that's my project. Cheers
  6. blueboy

    MMaps Redux

    Hi All, I will try and build my server again. Just to ensure that we are on the same page, I'm using the code from faramir118's github http://github.com/faramir118/mangos and qsa's patch http://pastie.org/1248321 is this all I need? Cheers EDIT: No it's still not working for me, I must have missed something. All I did was create standalone patch from faramir118's github, and cleaned the code and applied this to the latest core. I then applied qsa's patch and then I built it. This is what I get; Pet Follow Automatically Hunter pet yes Warlock minion no Companion no
  7. blueboy

    MMaps Redux

    Thanks for testing. This issue should be fixed in my latest test patch. Feel free retesting and report. faramir118: Are you sure http://github.com/faramir118/mangos/commit/27980025db926e26fedf758cf1d4479f321a3386 is necessary? those modes are far more useful than the debug. Simply since you can "play" in real time with parameters and see the effects. Hi, I've tested the mmap_rewrite with your latest patch and the minion still does not follow it's owner. I have a warlock with a succubus minion and it does not follow, but lags behind until beyond LOS, then it despawns. I have played a warlock with minion on a Blizzard server and I do not remember it behaving this way. I have monitored program flow through PetAI::UpdateAI and 'MoveFollow' is called once as expected if (!m_creature->hasUnitState(UNIT_STAT_FOLLOW) ) { m_creature->GetMotionMaster()->MoveFollow(owner,PET_FOLLOW_DIST,PET_FOLLOW_ANGLE); } but something is then preventing the pet/minion from reaching the target/owner. Cheers
  8. Hi Famine, I agree with kyle1 that it will be better once you get to grips with git. Once you've tried git, you don't go back :lol: But here is something to get you started. Firstly you must choose a database (UDB, PSMDB, etc). Check the contents of table 'db_version' for update compatiblity with your server. Right, so you have a db compatible with MaNGOS[10545]. This will work either with *nix or gitbash (windows) systems. or create an empty local git repositiory and pull the code Use 'git log' to get commit history (snippet shown below has been edited to protect commiter's privacy) commit 9c8043644bf5af1c1971ebb70dc17bc294d69b04 Author: Laise Date: Tue Sep 28 15:40:32 2010 +0200 [10554] Fix wrong procs when spell hits with no damage commit e467b12ab63bcc670111d1e95b6d9a7b46e9f62c Author: chelobaka Date: Tue Sep 28 14:56:15 2010 +0400 Check line of sight on spell cast. Also fix possible segmentation fault. commit 3bedf90d5045ca2d10760c8ab42bef2a6f9f287f Author: zergtmn Date: Mon Sep 27 11:48:21 2010 +0200 [10553] Two more cases where AURA_REMOVE_BY_EXPIRE mode can be used Signed-off-by: Laise Select the required commit and copy the commit hash. git allows you to select (switch) the code to a particular commit. If you were to select the code pertaining to commit [10545] you would find no playerbot code, because this is a MaNGOS commit. If you want compatible playerbot code, you need to select the next playerbot commit after [10545] N.B. MaNGOS commits invariably have a version number in square brackets and playerbot commits don't To create a new local (branch) repositiory with the desired code syntax: git checkout -b <branch name> <commit hash> from the commit snippet above Now to double check you have playerbot code, look in folder 'src/game'. You should have a sub-folder called playerbot that hold the bulk of playerbot code. You may now need to update your database with the appropriate 'sql/updates'. As you can see from info below, in your case it is not necessary as there have been no updates to the db since before [10545]. Your server should load with your database without issue. now just build your code as normal and have fun Creating a standalone patch is great to get snapshot of the code, compatible with the latest MaNGOS commit (HEAD). #!/bin/bash -x git clone git://github.com/mangos/mangos.git blueboy_patch cd blueboy_patch git fetch git://github.com/blueboy/mangos.git master:blueboy git checkout blueboy HASH=`git log --pretty=oneline | grep -m 1 '\\[1[0-9]\\{4\\}]' | cut -d " " -f 1` git diff $HASH > playerbot.patch This patch can be then archived by you and applied later to clean download of the same MaNGOS commit. It is not easy to create a patch from earlier commit (If you created a patch from the latest playerbot code, it may not work with MaNGOS[10545]. Chances are that you will get merge conflicts, that will cause you further headaches). You need to use the method given above. Hope this helps
  9. blueboy

    MMaps Redux

    Reluctance for Minions or Pets to follow the owner. I thought you might be interested in this issue that occurs with the current 'mmap_rewrite' code. Test: I created two identical server builds, on with the mmap_rewrite code and one without. With mmap_rewrite code Minions in particular will not automatically follow the owner. Selecting the 'follow' button does prompt the minion/pet to catch up with the owner, but then remain at that point until you press 'follow' again. Without mmap_rewrite code Minion/pets automatically follow owner unless commanded to 'stay'. I have not found what is causing this, but suspect that something is interrupting 'MoveFollow'. Hope this helps a little.
  10. Hi, First of all thankyou very much for your work on the updated ACE. Interesting that you are updating G3D and fixing issues in said release. Will the updated G3D resolve the ambiguity in Any.cpp, that throws this ugly warning during compilation (certainly with gcc on *nix, but I am sure it occurs on windows too). ../../../../dep/src/g3dlite/Any.cpp:1069:17: warning: passing NULL to non-pointer argument 1 of ˜G3D::Any::Any(int)˜ Here is the link to the ticket I submitted. https://mangos.lighthouseapp.com/projects/18208/tickets/638-warning-passing-null-to-non-pointer-argument-1-of-g3danyanyint#ticket-638-3 I posted a patch with the ticket to resolve this issue, but it was deemed invalid because it modified the contents of a third party library. If the patch fixes the warning I can't see the problem, what do you think. Hope this helps
  11. blueboy

    MMaps Redux

    Hi, First of all great work with 'mmaps redux'. A minor issue that I am getting when I compile the code from http://github.com/faramir118/mangos/tree/mmaps_rewrite/contrib/mmap I'm getting this warning when I compile the current code with gcc on *nix CXX debugcmds.o ../../../src/game/debugcmds.cpp: In member function ˜bool ChatHandler::HandleDebugMoveMapCommand(char*): ../../../src/game/debugcmds.cpp:379:88: warning: taking address of temporary I have found a solution to this and here is the patch diff --git a/src/game/debugcmds.cpp b/src/game/debugcmds.cpp index ee01e20..b3b2d3c 100644 --- a/src/game/debugcmds.cpp +++ b/src/game/debugcmds.cpp @@ -369,6 +369,7 @@ bool ChatHandler::HandleDebugMoveMapCommand(char* args) player->GetPosition(x, y, z); float location[VERTEX_SIZE] = {y, z, x}; float extents[VERTEX_SIZE] = {2.f,4.f,2.f}; + dtQueryFilter filter = dtQueryFilter(); int32 tilex = int32((y - min[0]) / 533.33333); int32 tiley = int32((x - min[2]) / 533.33333); @@ -376,7 +377,7 @@ bool ChatHandler::HandleDebugMoveMapCommand(char* args) PSendSysMessage("Calc [%02i,%02i]", tilex, tiley); // navmesh poly -> navmesh tile location - dtPolyRef polyRef = query->findNearestPoly(location, extents, &(dtQueryFilter()), NULL); + dtPolyRef polyRef = query->findNearestPoly(location, extents, &filter, NULL); if(polyRef == INVALID_POLYREF) PSendSysMessage("Dt [??,??] (invalid poly, probably no tile loaded)"); Hope this helps
  12. Hi, Cheers mate, I was working on the problem but you pipped me to the post I was too tired this morning at 3 to continue... The recent commits to portal seem to work fine. If you like I'll merge portal into blueboy repo Hope this helps
  13. Hi, Yes I agree. I have checked the code and 'extractGuid' is used several times in PlayerbotAI.cpp only. I have changed all instances with p.readPackGUID and it works a treat. I will update the portal repo shortly. Thanks Bthallid for that and don't be a stranger
  14. More Elegant Solution to Stealthed Rogue Attack. Hi Guys, I wasn't happy with the patch I posted. Relocate() gave a very unrealistic (too fast, too direct route) movement for the rogue. I prefer to see the rogue stealthly inch it's way to the target. MoveChase() wouldn't work, so I decided to look at MoveFollow(). To my surprise it worked without any problems. I also tidied things up and put the pickpocket code into a separate boolean function. This allowed me to control combat sequence better, if I can explain, Program Flow 1. cast Stealth on rogue 2. MoveFollow(target, distance, angle) // approach and remain a 'distance' & at an 'angle' from the 'target' 3. if not close enough to the target, updateAI. // cycle attack AI 4. bool PickPocket(target) // I used a false boolean return value to ensure that the PickPocket function is only used once per target. The false value also allows another option (see below) to be considered on the first AI pass. Stealth spells are available only at certain levels. Stealth (level 1) and Pickpocketing (level 4) are both given early on, but attack spells like Garrote (level 14), Ambush (level 18) and Cheap Shot (level 26) are unavailable to less skilled rogues. I needed to find a way to switch SpellSequence, should these attack spells not be available. I replaced the (m_confDebugWhisper) string (out << " > None!") with a call to a function that forceably removes of stealth aura. Once exposed, the target will then attack the rogue and the combat sequence will switch to either RogueThreat, RogueSpellPreventing, RogueCombat or default. switch (SpellSequence) { case RogueStealth: out << "Case Stealth"; if (PICK_POCKET > 0 && ai->CastSpell(PICK_POCKET, *pTarget) && ai->PickPocket(pTarget)) out << "First > Pick Pocket"; // Should never display, as PickPocket will always return false else if (PREMEDITATION > 0 && ai->CastSpell(PREMEDITATION, *pTarget)) out << " > Premeditation"; else if (AMBUSH > 0 && ai->GetEnergyAmount() >= 60 && ai->CastSpell(AMBUSH, *pTarget)) out << " > Ambush"; else if (CHEAP_SHOT > 0 && !pTarget->HasAura(CHEAP_SHOT, EFFECT_INDEX_0) && ai->GetEnergyAmount() >= 60 && ai->CastSpell(CHEAP_SHOT, *pTarget)) out << " > Cheap Shot"; else if (GARROTE > 0 && ai->GetEnergyAmount() >= 50 && ai->CastSpell(GARROTE, *pTarget)) out << " > Garrote"; else // out << " > None!"; m_bot->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); break; case RogueThreat: ... case RogueSpellPreventing: ... case RogueCombat: ... default: ... } The patch is too large to post, so I will update the code on portal shortly, for you to try. I have tested this and it appears to work fine. Warning! the pickpocket code could make your rogue very rich Once again any suggestions or comments would be most welcome. Hope this helps
  15. Rogue bots will now pickpocket Rogues are unscrupulous characters that will look after their own interests. It seems reasonable then, that a rogue bot, if ordered to attack a target, will take the opportunity lighten the targets purse first. I have revised the rogue stealth attack to facilitate pickpocketing as commited to portal. Please ensure that your using the latest code from portal, else it won't work Here is the revised patch for you to try. As always, I would be grateful for your comments so I can improve the code. Revised Rogue Attack Patch diff --git a/src/game/playerbot/PlayerbotRogueAI.cpp b/src/game/playerbot/PlayerbotRogueAI.cpp index e62b09a..e043680 100644 --- a/src/game/playerbot/PlayerbotRogueAI.cpp +++ b/src/game/playerbot/PlayerbotRogueAI.cpp @@ -30,6 +30,7 @@ PlayerbotRogueAI::PlayerbotRogueAI(Player* const master, Player* const bot, Play DISTRACT = ai->initSpell(DISTRACT_1); PREPARATION = ai->initSpell(PREPARATION_1); PREMEDITATION = ai->initSpell(PREMEDITATION_1); + PICK_POCKET = ai->initSpell(PICK_POCKET_1); EVISCERATE = ai->initSpell(EVISCERATE_1); KIDNEY_SHOT = ai->initSpell(KIDNEY_SHOT_1); @@ -61,21 +62,80 @@ bool PlayerbotRogueAI::DoFirstCombatManeuver(Unit *pTarget) PlayerbotAI* ai = GetAI(); Player * m_bot = GetPlayerBot(); - if (STEALTH > 0 && !m_bot->HasAura(STEALTH) && ai->CastSpell(STEALTH, *m_bot)) + if (STEALTH > 0 && !m_bot->HasAura(STEALTH, EFFECT_INDEX_0) && ai->CastSpell(STEALTH, *m_bot)) { if (ai->GetManager()->m_confDebugWhisper) ai->TellMaster("First > Stealth (%d)", STEALTH); - ai->SetIgnoreUpdateTime(10); + ai->SetIgnoreUpdateTime(8); return true; } - else if (STEALTH > 0 && m_bot->HasAura(STEALTH)) + else if (m_bot->HasAura(STEALTH, EFFECT_INDEX_0)) { float x,y,z; - pTarget->GetContactPoint(m_bot, x, y, z, ATTACK_DISTANCE); + bool looted = false; + + pTarget->GetContactPoint(m_bot, x, y, z, 4.5f); m_bot->Relocate(x, y, z); + if (PICK_POCKET > 0 && ai->CastSpell(PICK_POCKET, *pTarget)) + { + + ObjectGuid markGuid = pTarget->GetObjectGuid(); + Creature *c = m_bot->GetMap()->GetCreature(markGuid); + m_bot->SendLoot(markGuid, LOOT_PICKPOCKETING); + Loot *loot = &c->loot; + uint32 lootNum = loot->GetMaxSlotInLootFor(m_bot); + + if (ai->GetManager()->m_confDebugWhisper) + { + std::ostringstream out; + + // calculate how much money bot loots + uint32 copper = loot->gold; + uint32 gold = uint32(copper / 10000); + copper -= (gold * 10000); + uint32 silver = uint32(copper / 100); + copper -= (silver * 100); + + out << "|r|cff009900" << m_bot->GetName() << " loots: " << "|h|cffffffff[|r|cff00ff00" << gold + << "|r|cfffffc00g|r|cff00ff00" << silver + << "|r|cffcdcdcds|r|cff00ff00" << copper + << "|r|cff993300c" + << "|h|cffffffff]"; + + ai->TellMaster(out.str().c_str()); + } + + if (loot->gold) + { + m_bot->ModifyMoney( loot->gold ); + m_bot->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY, loot->gold); + loot->gold = 0; + loot->NotifyMoneyRemoved(); + } + + for (uint32 l = 0; l < lootNum; l++) + { + QuestItem *qitem = 0, *ffaitem = 0, *conditem = 0; + LootItem *item = loot->LootItemInSlot(l, m_bot, &qitem, &ffaitem, &conditem); + if (!item) + continue; + + ItemPosCountVec dest; + if (m_bot->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, item->itemid, item->count) == EQUIP_ERR_OK) + { + Item* pItem = m_bot->StoreNewItem (dest, item->itemid, true, item->randomPropertyId); + m_bot->SendNewItem(pItem, uint32(item->count), false, false, true); + --loot->unlootedCount; + looted = true; + } + } + // release loot + if (looted) + m_bot->GetSession()->DoLootRelease(markGuid); + } return false; } return false; diff --git a/src/game/playerbot/PlayerbotRogueAI.h b/src/game/playerbot/PlayerbotRogueAI.h index b15cc67..a720268 100644 --- a/src/game/playerbot/PlayerbotRogueAI.h +++ b/src/game/playerbot/PlayerbotRogueAI.h @@ -88,7 +88,7 @@ private: uint32 SINISTER_STRIKE, BACKSTAB, GOUGE, EVASION, SPRINT, KICK, FEINT, SHIV, FAN_OF_KNIVES; // SUBTLETY - uint32 SHADOWSTEP, STEALTH, VANISH, HEMORRHAGE, BLIND, SHADOW_DANCE, CLOAK_OF_SHADOWS, TRICK_TRADE, CRIPPLING_POISON, DEADLY_POISON, MIND_NUMBING_POISON, GHOSTLY_STRIKE, DISTRACT, PREPARATION, PREMEDITATION; + uint32 SHADOWSTEP, STEALTH, VANISH, HEMORRHAGE, BLIND, SHADOW_DANCE, PICK_POCKET, CLOAK_OF_SHADOWS, TRICK_TRADE, CRIPPLING_POISON, DEADLY_POISON, MIND_NUMBING_POISON, GHOSTLY_STRIKE, DISTRACT, PREPARATION, PREMEDITATION; // ASSASSINATION uint32 EVISCERATE, SLICE_DICE, GARROTE, EXPOSE_ARMOR, AMBUSH, RUPTURE, DISMANTLE, CHEAP_SHOT, KIDNEY_SHOT, MUTILATE, ENVENOM, DEADLY_THROW; Known Issue: I am currently testing this patch and It's not working 100%. For some unknown reason it works fine for some rogues but not for others. This works fine. The rogue casts 'stealth' on itself, pickpockets target and then attacks the target The rogue attacks, but does not cast 'stealth' on itself and thus does not pickpocket. It appears to be a racial issue, perhap a language barrier? I know humans and dwares use a common language, but I'm not sure whether orcs and undead understand one another. If anyone can suggest a solution, I would be very pleased Hope this helps
  16. Hi Guys, KiriX has brought to my attention a long standing issue with stealthed rogue attack and I believe I have found a solution. Issue: Both warrior and rogue attacks require an inital mode change, before attacking a target. The warrior attack (Battle stance or Defensive stance) works perfectly, but for some unknown reason rogues (Stealth mode) refuse to approach the target (code loop). Presently the solution to this is to command the rogue to attack the same target again, whilst stealthed. This works fine if the rogue attacks solo, but becomes inpractical if you wish the rogue to attack with the group. Objective: Find a way for rogues to get (while stealthed) within attack distance of the target, in a single operation /w botname attack or as a group attack /point Test: I commented out the stealth mode code in PlayerbotRogueAI.cpp, the attack works fine (unstealthed). bool PlayerbotRogueAI::DoFirstCombatManeuver(Unit *pTarget) { PlayerbotAI *ai = GetAI(); Player *m_bot = GetPlayerBot(); /* if (STEALTH > 0 && !m_bot->HasAura(STEALTH, EFFECT_INDEX_0) && ai->CastSpell(STEALTH, *m_bot)) { if (ai->GetManager()->m_confDebugWhisper) ai->TellMaster("First > Stealth (%d)", STEALTH); return false; // m_targetChanged flag } */ return false; } Solution: Realistic stealth attack ( rogue waits for an opportunity) This fix will place the rogue at the limit of the targets attack distance. If the target should move away from the rogue, the bot will wait until the target returns. So sometimes the attack will be immediate or after a short period of time (You might feel that the waiting time drives you :mad: . If so, in the code, replace ATTACK_DISTANCE with a (float) value less than 5.0f. Careful, if this value is too small it may cause the target to detect the bots presence too soon, and thus prevent stealthed attack). I have checked the code on my server and the rogues do use the appropriate stealth attack spells (cheap shot,ambush,garrote,etc) as a first maneuver and it then switches to normal combat, once detected by the target (activate PlayerbotAI.DebugWhisper in playerbot.conf and check this yourself). I have introduced an AI update delay (ai->SetIgnoreUpdateTime(10)) to allow the visual stealth effect to display, prior to the attack. The delay time can again be reduced if you feel it's too long. You can test the code out from the portal repo. I would be grateful for your comments and any suggestion. Hope this helps
  17. blueboy

    MMaps Redux

    Hi, I've just tried compiling the latest code and I get the following error. CXX PathFinder.o ../../../src/game/PathFinder.cpp: In constructor ‘PathInfo::PathInfo(const WorldObject*, float, float, float)’: ../../../src/game/PathFinder.cpp:30: error: invalid use of incomplete type ‘struct Map’ ../../../src/game/Object.h:71: error: forward declaration of ‘struct Map’ ../../../src/game/PathFinder.cpp: In member function ‘NavTerrain PathInfo::getNavTerrain(float, float, float)’: ../../../src/game/PathFinder.cpp:502: error: ‘GridMapLiquidData’ was not declared in this scope ../../../src/game/PathFinder.cpp:502: error: expected ‘;’ before ‘data’ ../../../src/game/PathFinder.cpp:503: error: invalid use of incomplete type ‘struct Map’ ../../../src/game/Object.h:71: error: forward declaration of ‘struct Map’ ../../../src/game/PathFinder.cpp:503: error: ‘MAP_ALL_LIQUIDS’ was not declared in this scope ../../../src/game/PathFinder.cpp:503: error: ‘data’ was not declared in this scope ../../../src/game/PathFinder.cpp:507: error: ‘MAP_LIQUID_TYPE_WATER’ was not declared in this scope ../../../src/game/PathFinder.cpp:508: error: ‘MAP_LIQUID_TYPE_OCEAN’ was not declared in this scope ../../../src/game/PathFinder.cpp:510: error: ‘MAP_LIQUID_TYPE_MAGMA’ was not declared in this scope ../../../src/game/PathFinder.cpp:512: error: ‘MAP_LIQUID_TYPE_SLIME’ was not declared in this scope make[4]: *** [PathFinder.o] Error 1 m I noticed in this commit http://github.com/faramir118/mangos/commit/314eb2602fae472a59945cb26ab09a5765095881 that you have removed the reference to '#include Map.h'. If this is restored the error does not occur. Hope this helps
  18. Hi, Like druid 'possession'. Hmmm nice idea, not sure how practical this would be, even if it was possible. I believe this spell only gives you movement control. I doubt whether you access the robot's inventory or get it to cast spells etc.. Thanks for the idea, though Cheers
  19. Hi Guys, The hunter bot was not attacking correctly; being caught in some kind of code loop, not moving, but repeatedly drawing it's weapon, like a gunslinger on speed. The problem was that there was no range check on the spell being cast, such as AUTO SHOT Thanks to KiriX , his patch corrects this and the hunter bot now attacks properly. I will update both repos shortly, please provide feedback, thanks! EDIT: Any thanks should be given to KiriX Hope this helps
  20. Hi All, Thanks for the heads up on that. You would think that they were making enough money than to go spoil the product with adverts, oh well! I'll certainly tryout your suggestions UnkleNuke Cheers
  21. Hi, Thanks for that, my bad. It was three in the morning when I read UnkleNuke's reply and I omitted to see the question mark. Perhaps, AVAST is a little over cautious in it's assessment of 'filebeam'. I did eventually get the archive to download by temporarily disabling AVAST. Once the file was on my box, I re-enabled the antivirus and scanned the archive. It was clean Thanks
  22. Hi AVAST is what I use, and if 'filebeam' is a malicious url then the antivirus is doing it's job correctly Why would I want to change it?
  23. Hi, No problems, I understand . As you say, it's an easy fix. I have been following recent developments with auctionhouse and they are still tweaking the code, particularly in World.cpp (most recent change http://github.com/xeross/mangos/commit/3ff9b54eb263797ca2d76cef99b8a4ad0e21606f) where the conflict occurs. All being well, it shouldn't be long before it is introduced to the core. Until then, it might be best for you to move the necessary code. As a side note: I requested that ScriptDev2.com make a small change to synchronize the scriptdev2.conf & config.h file version numbers, after a change to the core. It was a very small and easy fix, but my request was ignored. I got fed up of waiting, so I created the following fix. This stops the warning during the server load, that SD2 configuration file could not be loaded properly. diff --git a/src/bindings/ScriptDev2/config.h.in b/src/bindings/ScriptDev2/config.h.in index bb3caf8..1605075 100644 --- a/src/bindings/ScriptDev2/config.h.in +++ b/src/bindings/ScriptDev2/config.h.in @@ -24,7 +24,7 @@ // Format is YYYYMMDDRR where RR is the change in the conf file // for that day. -#define SD2_CONF_VERSION 2009040501 +#define SD2_CONF_VERSION 2010062001 #ifdef WIN32 #define MANGOS_DLL_EXPORT extern "C" __declspec(dllexport) (apply this patch after SD2 download and before server build). Hope this helps
  24. Hi, I haven't got a problem adjusting playerbot to accomodate this, I have already adjusted the code on my ahbot repo, so they do not conflict. I just do not want to keep changing it, everytime something alters in another project I have enough to do, keeping the core and playerbot Cheers
  25. Hi, vladex is quite correct. The client treats bot(s) like real players, they will definitely show up in the 'who' list. Have you tried refreshing the list? Cheers
×
×
  • 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