Jump to content

Gitch

Members
  • Posts

    126
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by Gitch

  1. Update: Fix for Warlock Ranged Wands attack (this file missed getting Kreegoth's new code) I have an issue with the warlock files opening from within the same project directory, Remembering that you have a Warlock, I double checked, and yes, I had forgotten to copy the edited warlockai.cpp over. So it figures you found it :lol: Those two filels refuse to open within their own project, and i've yet to determine why. Thanks for letting it be known!! ahh I overwrote it with the last push (prior to this update) what i missed was copying it to the MAIN "working" directory, and then turned around and overwrote the good one before I pushed... Thanks for bringing that up before I wound up with a worse issue.
  2. it's in there ICE_ARMOR = ai->initSpell(ICE_ARMOR_1); ICE_BLOCK = ai->initSpell(ICE_BLOCK_1); COLD_SNAP = ai->initSpell(COLD_SNAP_1); // RANGED COMBAT SHOOT = ai->initSpell(SHOOT_2); RECENTLY_BANDAGED = 11196; // first aid check // racial This is just from the mageai.cpp but all the files include the code. works fine on my end. Is it not working right? I've only tested with the current party I have.
  3. Updated - Pushed to skillbot ItemStatComparison now compares not only the class/stat, but the stat value. If bot is a caster and item A has 5 int and item B has 6 (assuming no other stats exist on either one) Bot will choose item B. (other stats on either item would similarly affect the outcome) tidied up code (restructured the ItemStatComparison code to get ready for individual class/stat importance comparisons) A fix in the automatic quest item use that led to the bots thinking they got another when in fact they didnt.. and they kept telling you about it.. Added Kreegoths Wand code for warlocks, priests, and mages
  4. One note, the biggest issue facing independant bots is the fact that someone.. will have to implement pathing for bots.. at the moment, they move in a straight line to their destination, which includes running through world objects and even under the world to get there. (just like pets will) I don't want to disturb the motionmaster code or any of that, so ... that part might get tricky. Might have to write a separate pathing function for bots.
  5. I'm curious, do you plan on keeping it that way? Personally I would see altbots who do quests on their own as a cheat. I would more see this as a zone-filling feature for autobots. Either way, cool feature smile No no, Just for testing! While the thought of hitting the auto follow and letting my bots do all the work sounds fun, it would definitely seem like cheating to me ] Its being done in a completely separate directory away from skillbot. At the moment thats all in , I guess you could say planning stages I'm trying to be careful and not get too many ideas rolling at the same time or I'll wind up with a bunch of ideas and nothing that works. However, talkin about them leads to better ideas for the current work. I've done only a "little" coding to test out ideas and kind of .. feel it out a bit.. Zone filler is exactly what I have in mind. I'm basically testing code itself. Existing code. When I started thinking about what I would want them to do, It began to dawn on me that.. hey.. that code is already there... so then the main coding will be a wrapper to automate it! (thus all my "Auto" ideas! 8o ) Well.. more than that, but thats the gist of it.. No they'll definitely not be alts, but would be groupable etc, they would just .. somewhat randomly, level themselves, do trades perhaps.. but I will start it off simple to see how it goes. If its compatible with what you have in mind for Autobot, great! I still haven't really delved into autobot to check it out, but I will when I work more on these ideas If my post last night seemed a bit testy, It was a long day and I was pooped, and probably should've waited to reply this morning :lol: (no testiness was actually intended!) Take care
  6. Some things are cut and dry, but not always. If I want to run to the store, I may take the car, or I may get in the truck, Or I might hop on the bike. They will all get me there, but not all the time. It might be raining, or muddy, or snowing, or just cold, but I still like my bike, and keep it even when It won't do the job. There's really no perfect answer for every situation, in wow the same applies. If someone wrote the code, to cover such decisions, even just one person, no one else involved, the code would never get finished. Choice after choice would pop up, begging to be reconsidered until the coder pulled his hair out haha. There are so many items, (and far too little time) to try to cover every situation. True, that *most* of the time, you would not be faced with such hairsplitting decisions. I'm counting on the *most* of the time, BUT where it does require more factors to be decided, or compared, I've added a number of comparisons, and have continued to add more as I noticed an issue, or someone mentioned one. The code can only make the decision that the coder tells it to make. If all the theorycrafters all had to put their theories into the code, without exception, my money says it wouldnt compile haha. No offense to the theorists! Myself, I hate math! (don't ask me why I'm trying to code, or why I deal with engineering for a living!) I just want to have a function that will allow me to micromanage when I want, and when I don't want to, will handle some of the more menial tasks. I love a good RTS, but sometimes, I don't want to think so much. I'll openly admit, I don't have the patience to produce the code necessary to make the perfect decision on items, if there is one. It's obvious what the most important factors are for each class *most* of the time, and the code even in its current state, is already checking for alot of them, and has been since probably the second push of autoequip (maybe 3rd!) I can't help but feel I misunderstand your concerns, or perhaps you might misunderstand what the function currently does and how it does it? And with the current code in the works, there are even more class specific checks in place already, with more as I go. This might partially be to such a long conversation taking place over so many posts in a single thread as it has. I might not have noted the changes enough as I posted each push as I went. I should be more specific I know. I'm hoping the new forums will help address issues like that, but I still feel keeping an update here is good too. I can't vouch for anyone else, but personally, its the micromanagement of each of my chars simultaneously , that drew me to playerbot. Even with autoequip, I still have control over what they equip If I disagree. However, its fun to be able to turn on some automatic functions and watch them choose on their own. (adds a bit of depth!) It's almost as fun as being beside myself! and In that I am unanimous. In another game entirely, in a different time, I had a wizard. I refused to ever equip him with a robe. (and never did) out of protest for the ridiculous design and thought that went into them.. it was as though they said.. oh yeah, we forgot caster armor and just came up with something at the last minute... Now, Alot of people laughed about it, and mocked, and at the end of a fight I had ALOT less mana than other wizards.. but I still had mana. In fact, I was never out of mana (when playing conservatively as all casters should who rely on a tank to keep the mob off them!) Now, perhaps thats extreme, but a good example. In the end, I think autoequip (if all goes well) will make good enough choices that no fight will turn out bad based on the equipment the bot is wearing. It still won't be perfect however. However, My opinion aside (and the code isn't written on my opinion!) anyone is free to adjust, make better, add to, take away, whatever, with the code. I'll do the best I can. Oh yeah, almost forgot! Yeah I'm doing the testing atm with alts. Its easy to manipulate them to run different tests.
  7. AutoEquip, and Adjustable Follow Distance are going to get plenty of attention next week probably, as I want to finish tweaking the itemstatcomparison and polish them both up for a tentative push to the master branch. After the tweaks to autoequip and some added code to adjustable follow distance , which will make it somewhat automatic in the way bots change distance, they will be near a point that going further might make matters worse instead of better :lol: Unless something else comes up! Afterwards, I'm hoping to begin implementing AutoCraft, which will be built around autoequip, and its other functions. bots will automatically craft certain things that go with their tradeskill, like leather from scraps, bolts of cloth from linen and wool etc. And even automatically craft items for each other perhaps, we'll see. anyway, just a note about whats up next. for more details check out the Playerbot Forums.
  8. UPDate - Pushed to skillbot Auto Start Quest Items - bots will automatically 'use' items that start quests when they get them. (and of course accept the quest that it starts!) If you don't want the quest, simply drop quest & resulting item if any. This is part of the AutoEquip function now. If bot has already used the item, has the quest, AND loots another, They will remark that they don't need it, and loot no more. (AutoEquip has to be on of course for this to work) 8o Also added Uncommon Items to the 'sell all' command. Any Uncommon items that meet the low level requirement you set in the config will be sold if you give the 'sell all' command prior to selling. Take care!
  9. Hey guys! **I hope its alright to post this here if not, flesh wounds only please!** I've created a new branch for playerbot, and whether you use playerbot or NOT, If you have a creative side, and are willing to help out, come post your suggested entries for CHATBOT HERE This will add random chatting to playerbot bots, who will randomly make statements, or ask questions (in character for class/race/sex/ situational) and other bots will give appropriate responses Whether you use playerbot or not, any help is welcome to build up a large collection of statements/questions and responses to make it as random as possible! See the forums for details and post your ideas!
  10. New branch -chatbot . Short explanation - branch will hold statements/responses for bots to randomly use. As it grows, it can be merged with main code in stages. Bots will randomly say things, and others will respond based on a number of conditions such as class/sex/race and situational chat. If you're interested in helping or offering up your own statements/responses to be included in the code, Show your creativity and post your suggestions at the post HERE Please keep it clean =)
  11. Oh boy.. you're as wordy as I am... sooo, with all these worms you let outta the can, I gotta address a couple Yes and no. Of course, at level 40 paladins and warriors can wear plate (and hunters and shamans can wear mail). But that is a complicated area. It's not as if at level 40 a warrior is suddenly clad in plate only. It's not as if a plate item is suddenly better than a mail one (and the issue is even more clouded for e.g. hunters who even later on often prefer a great rogue item (leather) over a -possibly lowerlevel- mail one). As a general rule, you want some plate items by 45 (ish) and to more or less be full-plate by level 50. More or less the same for melee shamans. Hunters, healer-paladins, spell/healer shamans are again more difficult. If they're in a group, they're never really meant to be hit, in which case it could be well worth it to exchange a bit of 'useless' armor for better stats. It's a cloudy issue and I haven't (and probably can't) explain it fully, but it's not always clear-cut (depending on class+function) that a lower armor class means the item is automatically 'unfit'. That said, it does enrage some people when e.g. hunters roll on leather, so if nothing else it's certainly a good option to have. This is slowly creeping more towards stat decision than just level/armor class. Those were a good base to start from (and lower levels rely mostly on these). Theres still a lot of tweaking to do but, one thing to remember, is that they are bots, and the autoequip function isn't going to take place of precision equipping. I'd say, for alot of folks, they'd be fine just letting the bot equip whatever just to keep from having to do it themselves lol. However, for the hardcore player that wants things to be just so, autoequip won't be a tool they'd turn on and forget about. Still, yeah, it needs alot more work im sure, and atm its really mainly in need of testing, thinking, tweaking, and draw a line somewhere as to just how decisive it can be and still be flexible for the players style/ideas/own way of doing things. Why not a mixed command? /p follow dist [distance] where [distance] is (e.g.) a number between 5 and MAX_FOLLOW_DISTANCE (which I believe is a config setting and/or a declared constant in playerbot/playerbotmgr). OR [distance] is (e.g.) close (say 5), normal (default or 10), far (15), further (25), furthest (MAX_...). bot whispers "I'm now trailing you by # yards" unless it's exactly the value of one of the string variables (regardless of whether a # or string was the actual command), then (e.g.): /p follow dist 10 bot whispers "I'm now trailing you by 10 (normal) yards" Something like that. Just an idea. Ahh this has changed alot from that post. follow -same as it was; follow far-increments distance +1.0 (with no current cap);follow near-decrements distance -1; follow reset- resets to config default; the text on this can get kinda spammish... i guess.. I want to do alot , ALOT of work on the texts I've added to the code. I havent put a cap on it yet because of testing ( as I said I'm looking into independant bots that will go about doing their own thing and also interesting to see how bots react ad different distances, which might be useful for formations during battlegrounds? just thoughts) I've been thinking about this for a while (how many of you have actually gone 1-80 at least once - just a question out of curiosity with no intended condescension), but shouldn't the white-item selling be dynamic? At level 1-6 you barely ever want to sell a white. Hell, you barely ever get a white. At levels 12-20 you're starting to get a fair amount of greens, and with quest rewards should be starting to equip quite a few greens(assuming, of course, the player does quests and wants to take the time to complete his bots' quests as well - easy for kill quests, time consuming for collection quests). Past level 20 you're not going to want many whites, excepting the shoulder position where grays are even acceptable until level 30 (or even higher if no replacement has been found yet). It's pretty much guaranteed by level 40 whites are useless - but I can't for the life of me remember if they even still drop by then. Excepted by this are of course tabards and shirts, but those probably aren't classified as armor anyway. Anyway, just thinking out loud as to whether one setting is enough. On the other hand, if it's not auto-equipped, is a white really worth the effort? At the moment, my bots are level 18, and when they sell, they sell around 10 -13 items or so and approx half of that is from this code. Saves me alot of clicking ( and I have the level diff set to 4 for my own personal likes.) but I added the config setting so a server OP could change, or even disable it. I may instead opt for a user chosen setting, which ... now that I think about it would make more sense. if you're at a level that you're not getting alot of white items, this code isnt only white items, but any food/drink items that dont meet your level setting. Future of this function: going to make it so that the player can set, from in game, what the bot will NOT sell, and see how that works. Thanks for the feedback about autobot , and everything else too! My idea for independant bots ( I believe that it can be done *mostly* from using already existing functions in playerbot, given the proper new section for ai, with only minor changes to the rest of the code to check if its an independant or regular bot) The first project I took was: make bot find a nearby questgiver (easy enough, that function already exists) make the bot take the quest automatically (also in code already) make the bot recognize what the quest requires, creatures, items etc(already in code) Bot scans the map (temporarily using a MUCH larger radius heh) finds the creature, gets best path, goes to it, kills the creature,gets the quest item. When it has enough, returns to quest giver, does automatic turn in. Most all of the functions needed for that is already in code. Having done this, getting the bot to continue doing it, from one quest giver to another, is alot easier. Then other tasks could be added, timeouts could be given, all to create variety in the bots behavior. bot could join groups etc, and after a random period of time, that bot will "log out". after another period of time, the bot logs back in. yeah, maybe that all sounds crazy, but I warned yas earlier on that Im really really into scripted ai haha. I promise I won't let this draw my attention from the more "needful" tasks of playerbot. I'm here to try to help! Kennumen, get well! I promise, I take no condscension from constructive criticism! I admit, Im a slow programmer, and I have Not played through to 80 haha, I love to play around with crafting, questing etc, and exploring, AND trying different races/classes, so i wind up starting over quite often! I also love "creating" more than I do playing the actual game :lol: So guess what I spend more time doing 8o
  12. @Kennumen, hey guy, Looking over the autobot code, and trying to wrap my head around what you were doing with it . I have some ideas for independent bots. Not sure if you want anything added to autobot, but anything I might come up with you're welcome to. I may just create a separate alternative branch as what I have in mind may not fit the main goal of the main code. Do you mind if I gather ideas from autobot? By the way guys, come check out the new playerbot forums (link in signature)
  13. Added same code to playerbotmgr.cpp for anyone who uses the POINT emote to send bots to attack.. heres the patch IN ADDITION to the one posted above: (so two diff patches, one for each of two files) Patch changed is tested okay diff --git a/src/game/playerbot/PlayerbotAI.cpp b/src/game/playerbot/PlayerbotAI.cpp diff --git a/src/game/playerbot/PlayerbotMgr.cpp b/src/game/playerbot/PlayerbotMgr.cpp index 3471e92..d87420f 100644 --- a/src/game/playerbot/PlayerbotMgr.cpp +++ b/src/game/playerbot/PlayerbotMgr.cpp @@ -355,7 +355,13 @@ void PlayerbotMgr::HandleMasterIncomingPacket(const WorldPacket& packet) for (PlayerBotMap::iterator itr = m_playerBots.begin(); itr != m_playerBots.end(); ++itr) { bot = itr->second; - if (!bot->IsFriendlyTo(thingToAttack) && bot->IsWithinLOSInMap(thingToAttack)) + if (!bot->IsFriendlyTo(thingToAttack) && !bot->IsWithinLOSInMap(thingToAttack)) + { + bot->GetPlayerbotAI()->DoTeleport(*m_master); + if (bot->IsWithinLOSInMap(thingToAttack)) + bot->GetPlayerbotAI()->GetCombatTarget(thingToAttack); + } + else if (!bot->IsFriendlyTo(thingToAttack) && bot->IsWithinLOSInMap(thingToAttack)) bot->GetPlayerbotAI()->GetCombatTarget(thingToAttack); } return;
  14. Update Pushed to skillbot Feb, 15, 2012 Updated a section of code which caused bots to ignore the attack command if they could not see the target. This will now cause the bots to move to the player, and check LOS again. If they can see the target now, attack, if not, they now can ignore the command. (so the player must still be in LOS of the target). And heres a patch for it as well: diff --git a/src/game/playerbot/PlayerbotAI.cpp b/src/game/playerbot/PlayerbotAI.cpp index 45f413d..c8dd825 100644 --- a/src/game/playerbot/PlayerbotAI.cpp +++ b/src/game/playerbot/PlayerbotAI.cpp @@ -1702,7 +1702,6 @@ void PlayerbotAI::HandleBotOutgoingPacket(const WorldPacket& packet) } return; } - // Handle when another player opens the trade window with the bot // also sends list of tradable items bot can trade if bot is allowed to obey commands from case SMSG_TRADE_STATUS: @@ -7612,7 +7611,13 @@ void PlayerbotAI::_HandleCommandAttack(std::string &text, Player &fromPlayer) if (attackOnGuid) { if (Unit * thingToAttack = ObjectAccessor::GetUnit(*m_bot, attackOnGuid)) - if (!m_bot->IsFriendlyTo(thingToAttack) && m_bot->IsWithinLOSInMap(thingToAttack)) + if (!m_bot->IsFriendlyTo(thingToAttack) && !m_bot->IsWithinLOSInMap(thingToAttack)) + { + DoTeleport(*m_followTarget); + if (m_bot->IsWithinLOSInMap(thingToAttack)) + GetCombatTarget(thingToAttack); + } + else if (!m_bot->IsFriendlyTo(thingToAttack) && m_bot->IsWithinLOSInMap(thingToAttack)) GetCombatTarget(thingToAttack); } else no idea why the large extra blank space in the code box... its not like that in my text here... Take Care!
  15. Update Pushed to skillbot Feb, 14, 2012 Updated Adjustable follow distance, added new config setting "PlayerbotAI.SellAll.LevelDiff" (Make SURE you copy the new Playerbot.conf.dist.in file and rename/replace your old config in your Mangos directory) copy Playerbot.conf.dist.in from src/game/playerbot/ to your wow directory, rename it to playerbot.conf, edit it if you like, and save it. it defaults to 10, you can set it to what ever you like.. What does it do? bots will sell white items that are "x" amount of levels lower than they are. X is the setting. Defaults to 10.. set it as you like. Cleaned code up.. wow, I actually made a patch with not even a tab in indent error lol... We'll see how long that lasts! Also I tweaked the ItemStatComparison some more, it will be even more strict now on what bots will autoequip. Take care guys
  16. Playerbot Wiki has been updated a little . check it out HERE or click the link in my signature. Updates coming for AutoEquip (new class usefulness item comparisons) config file setting for "levels lower than bot" to tell bot how low level of a white item he/she should auto sell when told to. Default will be 10 levels lower than bot. (I like 5!) Adjustable follow distance (a bit more fine tuned, text cleaned up etc) will push when I have most of this where I want it to be at present. cyas
  17. Thanks for all the work on the AI guys!
  18. @blueboy, thanks I forgot about that.. that patch is obsolete now, so deleting it! Pushed to skillbot Adjustable follow distance + Z check. Bots initially just stand there and not follow until follow reset is given... Patched & pushed fix for this... **Edit** Thanks to blueboys advice and git help I've also pushed a whitespace / tab in indent fix to skillbot.. Looks like its finally cleaned up ... for the moment haha. AND finally back to current with all the updates I had made before I trashed the branch and had to rebuild it /sigh Have fun guys! (p.s) if in testing the new Z check, you find there is still a need for a "summon bot" command let it be known.. (maybe I'll put the 'puter to making Mmaps tonight when I log off and go to bed )... maybe :rolleyes: Take Care *Edit* if anyone tests this, Id appreciate your thoughts on distance ... how far do you let them follow etc.. I'd say we probably need to put a cap on how far you can let them follow.... maybe 1 less than INTERACTION_DISTANCE which would be 49 (though not sure if anyone would ever have them following that far away).
  19. Thank Kreegoth for pointing out an issue between playerbot and mmaps. The bots don't check Z position and sometimes wind up above or below ground trying to follow you along the X and Y position and dont realize you are above or below them.. Added a section to the following code. The "GetPositionZ" is the added part, between the asterisk lines . you can see where to put it. I'll be adding it to skillbot code. I'm in the middle of working on that section for variable following distance and am too lazy to make a patch atm This just happened to be the very section of code I'm working with... 3 lines down! I still don't have mmaps created, so ... if someone can test it and verify it works, would appreciate it. Compiler liked it okay, just can't test it really... This is NOT a patch, you'll have to enter the lines between the asterisks in the code below to you PlayerbotAI.cpp file and compile. (this is pushed to skillbot branch now) // use player's corpse as distance check target if (pTarget->GetCorpse()) distTarget = pTarget->GetCorpse(); } // is bot too far from the follow target if (!m_bot->IsWithinDistInMap(distTarget, 50)) { DoTeleport(*m_followTarget); return; } //**************************************************************************************** if (m_bot->GetPositionZ() > (pTarget->GetPositionZ() + INTERACTION_DISTANCE) || (m_bot->GetPositionZ() + INTERACTION_DISTANCE) < pTarget->GetPositionZ()) { DoTeleport(*m_followTarget); return; } //**************************************************************************************** if (m_bot->isAlive() && !m_bot->IsBeingTeleported())
  20. Hey Blueboy, It's okay, I figured you misunderstood BUT I had also actually thought about that distance as well, so I'm glad you mentioned what you did about them following too soon for taxi's. Almost done with follow adjust. Will be 3 new sub commands for 'follow', 'near', 'far', 'reset' . Hope that doesnt get confusing.. I'll explain them: 'follow far' will increment the bots min/max follow distance by 1 each time the command is given.. for testing purposes, there is no limit to how far you can make it atm.. 'follow near' will increment the bots min/max follow distance by -1 each time the command is given. once 0 is reached it resets to config file default. 'follow reset' as it seems, resets the follow distance to the config file default distance. When I finish some polishing up, I'll push this, and I'll try to also post a patch (its really not that much code, changes in two files PlayerbotAI.cpp and PlayerbotAI.h . Cyas!
  21. @blueboy, gotcha, I'll look at it. Don't plan to allow much change. I notice though if your party includes tauren, they really invade your private space! lol Its hard to see things at times. I'll test some minute changes and see what happens. while you can set that in the config, I thought maybe an option to tweak that in game might come in handy. Atm I'm using 1.5 / 2.0 in config and thats not bad, so maybe allow a tad more than that.. the initial value is .5/1.0 . ***Edit*** this is working out rather well at the moment.. Ive added a sub command for follow (follow dist) may change that but for now.. thats what it is.. You type it, and bot(s) will increment their follow distance by a set number, up to three times.. I'll explain, /p follow dist Bot whispers -"my follow distance is now set to medium" /p follow dist bot whispers -"my follow distance is now set to high" /p follow dist bot whispers -"my follow distance is now set to highest" /p follow dist bot whispers -"my follow distance is now set to Normal" I'm still working on the specifics and tweaking the added distance.. It has some interesting results I have to say.. for one, when you stop, they dont all dog pile you .. they randomly space out around you in a much neater fashion. You can space them even better by giving each of the bots a different follow distance. It might take some tweaking / changing, but I think it might be work out to be a good addition. I made the command the way I did (incremental) so it would be easy to macro.. I'll let you guys know when I have a copy to test.. first I really need to compare my files to the master and make sure I've gotten rid of all my whitespace/ tab indention errors. I seriously did NOT make all those!! Git has it out for me!
  22. Was thinking of adding a line or two of code allowing the player to adjust the bots follow distance on the fly.. Sound like something anyone would use? It would default to the playerbot.cfg setting, but depending on the situation you could say for example: /p follow low or /p follow medium or med or /p follow high each being a set percentage change of the config settings.. Thoughts?
  23. @faramir.... go ahead and bonk me on the head :8 thanks faramir Out of date mangosscript.dll FTW !
  24. mangos gives this error on server start up ******************** the procedure entry point ?PrintindexError@Object@@ABE_NI_N@z could not be located in the dynamic library mangosd.exe. ******************** BUT i click on ok, and server loads up and plays fine.. when I googled this, all I got was some pastebin logs from 2010 of the same error... but no solutions Is this related to mmaps? I haven't created them yet (I have created the newest dbc, maps, vmaps , just not the mmaps yet, I will tonight after I get done wtih the computer.) This just started after recent update to mangos. I've already recreated the new version of everything , just not made mmaps yet.. Hope thats not confusing lol I'll be making my mmaps tonight, if that resolves it I'll let yas know.
×
×
  • 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