Hi .
Can it be the reason of stucks
in cases if it executed from bool FoundRandomMovementLocation=Bot.NavigationCache.AttemptFindSafeSpot(out vSafeMovementLocation, Vector3.Zero);
and lastsafepoint really close to current position and bot not had time to reach it yet.
Sorry if i tell stupid things (i told that i am not an programmer)
1)May be it will be good to have separate movement engines "Peace movement" & "battle movement". What it give "Peace movement" is nav point movement, take gold and another stuff . "battle movement" is fightting , complete realtime calculations in short area border configurations, monster places, their vectors of movements , finding free place to avoid damage, etc. Ie anything to be alive even if we will be forced to go far away from current possition where battle started.
2) may be it will be good to have subsystem of checkpoints.
A(xyz coords of checkpoint and 2 second from start movement),
A2(xyz coords of checkpoint and 4 second from start movement),
A3(xyz coords of checkpoint and 6 second from start movement), etc
Logic of work following i guess
1) We run from A to B and have a lot of nav points.
2) We save current position and timestamp
3) start movement
4) if passed 2 seconds of movement without battle compare how far we are from last checkpoint and save next checkpoint (checkpoint number, position, and timestamp)
5) if all good continue running and started to calculate next 2 seconds and goto step 4)
6) if all bad then we stuck need to do something to unstuck and we can combine it with nearest checkpoints which we know already reachable . Also when we stuck we can use Wall follower algorithm to unstuck.
I really not know how much data we can store during run in one area but i guess it is not problem to store 1000 or so checkpoints per area in 2013 year. 1000 checkpoints = almost half hour of real time per area if to place checkpoint every 2 seconds.
What will give to us checkpoint subsystem . We will have total control and will have opportunity to run back whole path and generate new path to navpoint.
I have also couple of question :
1) Is it possible to get monsters coords and how they turned to player. Ie looking on player or not ?
2) Is it possible to detect moment when monster kick and in what direction ?
3) Is it possible to detect positions of everything on screen. Or bot just like in dark room where light points are monsters, shrines , bodyes, chests, and no walls and another stuff ?
PS: I really not happy that i am not programmer. For me it started to be not just botting . For me it is started to be like creation bot which play better than human.
Can it be the reason of stucks
public bool AttemptFindSafeSpot(out Vector3 safespot, Vector3 LOS, bool kiting=false)
{
safespot=vlastSafeSpot;
if (!Bot.Combat.TravellingAvoidance&&DateTime.Now.Subtract(lastFoundSafeSpot).TotalMilliseconds<=800
&&vlastSafeSpot!=Vector3.Zero
&&(!ObjectCache.Obstacles.IsPositionWithinAvoidanceArea(vlastSafeSpot))
&&(!kiting||!ObjectCache.Objects.IsPointNearbyMonsters(vlastSafeSpot,Bot.Settings.Fleeing.FleeMaxMonsterDistance)))
{ //Already found a safe spot in the last 800ms
return true;
}
in cases if it executed from bool FoundRandomMovementLocation=Bot.NavigationCache.AttemptFindSafeSpot(out vSafeMovementLocation, Vector3.Zero);
and lastsafepoint really close to current position and bot not had time to reach it yet.
Sorry if i tell stupid things (i told that i am not an programmer)
1)May be it will be good to have separate movement engines "Peace movement" & "battle movement". What it give "Peace movement" is nav point movement, take gold and another stuff . "battle movement" is fightting , complete realtime calculations in short area border configurations, monster places, their vectors of movements , finding free place to avoid damage, etc. Ie anything to be alive even if we will be forced to go far away from current possition where battle started.
2) may be it will be good to have subsystem of checkpoints.
A(xyz coords of checkpoint and 2 second from start movement),
A2(xyz coords of checkpoint and 4 second from start movement),
A3(xyz coords of checkpoint and 6 second from start movement), etc
Logic of work following i guess
1) We run from A to B and have a lot of nav points.
2) We save current position and timestamp
3) start movement
4) if passed 2 seconds of movement without battle compare how far we are from last checkpoint and save next checkpoint (checkpoint number, position, and timestamp)
5) if all good continue running and started to calculate next 2 seconds and goto step 4)
6) if all bad then we stuck need to do something to unstuck and we can combine it with nearest checkpoints which we know already reachable . Also when we stuck we can use Wall follower algorithm to unstuck.
I really not know how much data we can store during run in one area but i guess it is not problem to store 1000 or so checkpoints per area in 2013 year. 1000 checkpoints = almost half hour of real time per area if to place checkpoint every 2 seconds.
What will give to us checkpoint subsystem . We will have total control and will have opportunity to run back whole path and generate new path to navpoint.
I have also couple of question :
1) Is it possible to get monsters coords and how they turned to player. Ie looking on player or not ?
2) Is it possible to detect moment when monster kick and in what direction ?
3) Is it possible to detect positions of everything on screen. Or bot just like in dark room where light points are monsters, shrines , bodyes, chests, and no walls and another stuff ?
PS: I really not happy that i am not programmer. For me it started to be not just botting . For me it is started to be like creation bot which play better than human.