Runsttren
Members-
Posts
44 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Everything posted by Runsttren
-
sounds like a good idea of course it is a good thing to first remove curses and heal others. Maybe a PlayerbotClassAI function like DoAfterCombat() what will explicitly check for this stuff and only when nothing is to be done the bot state will be set to loot
-
Update: - added support for combat orders 'assist' and 'protect' - added text comand 'orders' - bot will whisper orders and status - bot will set movement order to follow master on creation What changed: The '/p orders' is mainly for debugging or status checking on bots. It will tell you current combat and movement orders and one or two more other things. The COs for assist and protect are implemented within PlayerbotAI::GetCombatTarget (which is called every update cycle spend in combat). For the COs tank and heal there is more to do within the PlayerbotClassAIs. I.e. warrior should change stance to defense, cast Sunder Armor, Thunder Clap, etc... or as an example for CO heal a priest should just concentrate on healing and preventing threat. Known bugs: Sometimes bots do not react properly after combat. They stay around not going back to follow even if movement order is on follow. After some minutes they start to follow again... is this a timer issue?!?! @rrtn: ahhhh u mean the big reprogramming I did for combat and movement orders! Yes, well, I did recode most of the movement and combat stuff within PlayerbotAI I did hope to get everything right in my first commit, but I didn't...
-
@rrtn: Thx. Jaw is fine now. Next wednesday the doc takes the stitches out. And what exactly do you mean by 'problem commit' and which part of code should be omitted to let the movement appear right?!?! [Edit]: btw... do you have any crashes with Playerbot after last changes?
-
The active git repository is http://github.com/playerbot/mangos/tree/master. The other is a early tree by Winslow. This is a leftover from when we started organize our work
-
this was not directly with pet. if a spell was on pet somehow the code managed to get into DoNextCombatManeuver when no combat is going on. And there it was not checked if the pointer is zero.
-
Update: - fixed crash reported by rrtn Have fun guys!
-
Will check this out later today. Think it's just a glitch in null pointer checks. Should be easy to fix Will push it, if solved [EDIT]: @rrtn: ok... compiled current MaNGOS/Playerbot without SD2 (accidently) on my win32 machine. Tried exactly what you told me. Summoned my hunter, invited him to group, told him to follow me (to teleport to my location), and used .die on pet while pet was selected as my target. Nothing... also tried to kill the hunter with die. No problem either. Did you do this while fighting or while doing nothing?!??! [EDIT 1.2]: @rrtn: nevermind. after some .die commands later - 5 or 6 ... was frustrated - the server crashed as you said. will dig in now
-
@rrtn: Ok the weird movement is cause bots are same as players. And player class is never setting the monster movement flag anywhere. But this flag is needed to let the unit appear to run, walk backward, etc. Think we have to implement it on our own for the PlayerbotAI class. Somehow we should check howthe bot is moving and set the movement flag to the correct state... @winslow: Ah ok. I think you mean that the bots are not acting on given combat orders? This is cause the AI for this part is not yet implemented. There are 'just' the basic control functions. I was still thinking about how to implement it in a smooth and easy way But! The movement orders should work as expected? Means: on '/p stay' or point emote at all/single bot(s) they stay where they are and wait to get enemies in attack range. On follow they start following again. @ALL: Anyone managed/know how to get the maximum attack range based on the combat style type? What I mean is: how can I calculate/get the distance of spells?? This is needed for spellcasters and for hunters. For now I hard-coded 15 yard (or something like this) as the distance. But most spells have a higher range - would be nice if the priest is not in the middle of the action Will see what I can implement the next days. I think for the monster movement flag I have to study the MaNGOS core a bit more... Cya later alligator!
-
Hi guys... sorry for not being around last 2 weeks. Had a little jaw surgery and afterwards I got ill for some days. Also the reason I missed some progress here. @Winslow: You wrote my code is not working at all. What exactly do you mean? @rrtn: Will investigate the problems you mentioned. Could be that there are some null pointer glitches here and there What do you exactly mean with odd bot movement? Ok mates going tol pull last version and play around with it.
-
@Porsj: Thx for the info bout this crashes! Did you compile MaNGOS using VC++? Is it installed on the 2k3 Server? If yes, could you please run it in a debug session for a more detailed stack trace and to be able to tell what variable was accessed? Would be helpful!
-
Quick update: - fixed an error in MovementReset() preventing summoning of bots Good night *wave*
-
Ok, mates. I'm planning on implementing the combat orders to the combat behaviour of the AI. The thing is I'm not sure what will be the best way of doing this in the future. But I think it would be best way to add the combat order behaviour stuff to PlayerbotAI instead of PlayerbotClassAI. First thought it could have some advantages to have this managed in the different class AIs. But does it really make a difference? I.e. if I tell a Shaman to also protect the Healer it would be no difference if I tell a Paladin to protect the healer, right? Both would change there current target to one of the combatants attacking the healer. No matter what class they are. Some suggestions would be nice - Think I have some free time next week to really implement the behaviour stuff. Btw., are there any experience reports with the new stuff? I'm interested in hearing some critiques/meanings about the movement orders! I managed to play Blackfathom Deeps with no problems - apart from missing scripting to open the door to Aku'mai's Lair, had to change some states in the DB to have the door opened by default. All my 5 chars were between 22-24. And it was mixed with warrior, hunter, rogue, priest and pala. Everything went smoothly! [Edit]: And I realized it has some advantages to add macros for /wave and /stand and to add keys to those macros. Makes group management easier and much faster
-
Thank to Winslow for fixing my bugs Unfortunately, I pulled to HEAD -after- building and commiting my stuff. Somebody knows for sure? Will git merge when doing git-pull when I only did git-add for files changed by me? Well, normally I add and then commit it to be sure my changes won't be overwritten...
-
Geez, here we go mates! Got newest hardcore update packed and ready for testing! Here is my commit message: - added PlayerbotAI::Movement{Clear|Reset|Update}() functions - added PlayerbotAI:: DoCombatMovement() - added enum CombatStyle and enum MovementOrderType - added functions to manage MovementOrderType - added function PlayerbotAI::isMoving() - modified GetCombatTarget to accept a target as parameter to force a selection - changed PlayerbotAI::UpdateAI to not use m_combatOrder anymore - changed PlayerbotAI:: DoNextCombatManeuver() to first get a target and then call DoCombatMovement - removed PlayerbotAI::Stay(), PlayerbotAI::Follow() and replaced it by calls to SetMovementOrder() - added .bot combatorder - explained in readme What changed? First of all I implemented combat style, combat- and movement-orders to separately set and manage those stuff. Combat style is set by PlayerbotAI constructor and differs by bot's class. For now this is only used by DoCombatMovement(). Combat orders syntax for .bot command is explained in the bot_readme.txt in detail. For now there are this primary and secondary combat orders : tank, assist, heal, protect. Where protect is the only secondary (combinable) order for now. Movement orders includes follow and stay for now. Characters with 'stay' movement order now stand still where they are until an attacker comes in range - makes pulling tactics possible. Also movement for ranged combat style classes now uses own code and tries to stay in a distance of 25 yards from the target without changing the attack angle. I also added code to clear, reset and update current movement. Whereby update also sends a movement heartbeat message to all players in range. This fixes the problem of not correctly seeing the positions of bots. Know problems and bugs! I use movement generators (mostly follow and chase) for bot movement. But it seems that movement generators do not set the unit's movement flag. Cause of this it happens that if bots follow from a distance (i.e. first movement order stay, then movement order follow) they jump from one position to the other. This is cause the heartbeat is not getting the right movement flag and still thinks the unit is standing still. Think I have to implement it by my own within MovementUpdate - check if target is somehow moving: set movement flag. What's on the todo now? - As mentioned above I have to improve all movement stuff to correctly set unit's movement flag - Someone should start implementing the combat orders into the PlayerBot-Class-AIs I look forward for critiques, suggestions and improvements to my code. Hope everyone will test this code extensively Have fun dudes!
-
Greetings to all mates here! Sorry for not being around much lately. Got a whole bunch of work atm. But still trying to manage getting all points on my ToDo-List finished - already done most stuff. Have to test and debug all my changes the next days. Then I'll push it to GIT. Upcoming features: - [done] Movement and combat orders - [done] Combat style (melee or ranged - set on PlayerbotAI construct by class) - [done] Movement order 'stay' will let bots stay till combat target is in attack range (makes pulling possible) - [wip] Ranged attacker will move in spell range correctly (own movement code) @collinsp: 1) Thought it would be enough to call UpdateAttackerInfo() on every update cycle while in combat. There it is cleaned out and build up completely new every update cycle. Would this really become a problem somewhen? 2) Yeah. That's right. After combat there is some delay before bot starts looting. Maybe we reduce the delays for looting and check why there is this delay right after combat. But normally new started combat should override looting, forcing bot back into combat (which also cleans the loot list) 3) As we started working together the distances were much greater. To great for my taste, especially in dungeons. But maybe we should add some settings to the config files? Where one can define minimum and maximum distance. 4) Sure as hell we need something like the auto accept quest feature added lately for game objects. Maybe by '/w Bot loot' while object is selected. (Who is willing to implement it?) 5) My original idea/thoughts about copying/reimplementing stuff like repop and becoming a ghost within PlayerbotAI was that the original Player functions also do heavy communication with the session. There are no standalone functions just doing the repop stuff without packet handling in the player class. And the current stuff it's bugged like hell. I recognized that releasing ghost is creating a corpse but something is not right with the aura?! Dead ghosty bots are not looking like ghosts... !!BUG!!: And I got a weird problem while using bots. Scenario was having a group filled with bots. Then log out and log in with one of your prior bot players. After some time your bots will appear as unknown! Is this a session problem caused by the way we are adding and removing bots???
-
I wonder how it is done for creatures and npcs? They always face in the direction of victim. Will check this out later if I get mangos to compile correctly. Checked out newest Scriptdev2 and now I have to merge latest mangos into our branch. But 'git pull mangos master' just gives me a timeout error? Did I miss something. Oh and forget my last comment about posting the checkout/contribut howto. Had no time to checkout the wiki before. Now I have. Obsolete suggestions made by me
-
Thanks for all the suggestions bout the orientation issue! To cover the facing I added following code in one of my last pushes: void PlayerbotAI::SetInFront( const Unit* obj ) { if( !m_bot->HasInArc( M_PI, obj ) ) { m_bot->SetInFront( obj ); m_bot->SendUpdateToPlayer( m_master ); } } This should be called by ClassAIs in DoNextCombatManeuver and I think I did change the code in every class for this. Well, but it seems that position updates of bot's not always work as expected - shall they send a heartbeat message instead of SendUpdateToPlayer? And for movement I think I will do something similar to a MovementGenerator... an extra function for movement control. Which manages MoveFollow, MoveChase and own code. With own code I mean (as suggested) calling MoveChase and checking distance on update call, eventually clearing movement if in range. [EDIT]: @collinsp: you maybe also add the 'howto checkout git / being a contributor' to your first post.
-
Hi ppl, I just stopped working on my BotAI and joined PlayerbotAI as mentioned above by Natsukawa. It is well developed and already has implemented many things I also planned to do in BotAI. Will implement my loot routines there and see if I can help make this thing more stable. Also trying to seperate actions by death state. Hope ppl will now help developing PlayerbotAI If you have anything, post it in the Bot System threat, please. Cheers
-
Mornin' mates! Got something you might be interested in: yet another Bot-Patch WIP What it does you may ask... simple answer: summon a character of your own account as a bot! What's done: For now it is just a basic study implementation. It features some commands (listed below) to list, summon, dismiss characters. I implemented a 'fake' WorldSession called BotAI, and this one is loading the player just as the real thing would do. Benefits from doing it this way is that your summoned bot can do quests, will loot needed items (needed by a quest I mean), will accept trades, and is also leveling while playing. As mentioned it is very basic, especially in combat. A figther will do melee, a mage/priest will cast combat spells. Priests will always safe some mana to cast heal spells on group members. What's planned: After finalizing the basic features. I will add child classes of BotAI or maybe a brain class which is different for each player class. This will allow me to programm some common behaviour patterns. I.e. to say a warrior he should go to defence stance and tank. Or make a hunter correctly use it's pet and it's fighting abilities, etc. Think you can imageine it. Known bugs: 1) Sometimes after a bot died and came back to life it seems the ghost aura is not removed correctly - the char is alive but looks like a ghost. 2) After combat is done sometimes it happens that spell casters still have the casting aura (or however it would be called). 3) Sometimes after combat teh bots just stuck. Not moving - just a dismiss and resummon solves the problem. Think I will add a state reset command... Questions I have: 1) If you look at the BotIA::_actionCastSpell is there maybe a better way of finding spells? Something like 'get the highest rank of spell id x'? 2) If someone has some ideas about the mentioned bugs please share those with me. BotAI v0.0.2 (patched against mangos r7782) Let me know what you think about it Cheers Runsttren aka WickedImp
Contact Us
To contact us
click here
You can also email us at [email protected]
Privacy Policy | Terms & Conditions

You can also email us at [email protected]
Privacy Policy | Terms & Conditions
Copyright © getMaNGOS. All rights Reserved.
This website is in no way associated with or endorsed by Blizzard Entertainment®
This website is in no way associated with or endorsed by Blizzard Entertainment®