Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

84 Pages«<4142434445>»
Sepefeets Silverfish update (OG, Kara, MSG)
sepefeets
#850 Posted : Thursday, August 25, 2016 5:14:31 AM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
I think a mulligan would be much more important than a combo seeing as how the idea is to dump them all together early game, not really save them. If a combo is even needed then you need to see it play the secrets too early when there were other options and then sim the boards to find what values get your desired outcome.
Dre
#851 Posted : Thursday, August 25, 2016 5:24:39 AM(UTC)

Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 888
Man
Location: The Netherlands

Thanks: 216 times
Was thanked: 480 time(s) in 315 post(s)
sepefeets;40652 wrote:
I think a mulligan would be much more important than a combo seeing as how the idea is to dump them all together early game, not really save them. If a combo is even needed then you need to see it play the secrets too early when there were other options and then sim the boards to find what values get your desired outcome.


I think there will not be allot of situations where u want to keep the card even when you have a secret. Maybe when you have a good 1/2-drop and a coin. But again, i will start making new files after all cards of kara are out. So i have no idea yet if this secret-hunter is worth the time :)
1 user thanked Dre for this useful post.
sepefeets on 8/25/2016(UTC)
sepefeets
#852 Posted : Thursday, August 25, 2016 5:32:19 AM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
V123.2SE released.

prettier startup log messages
fix wicked witchdoctor crash
the rest of kara support + some old sims updated
remove buggy old HB naxx boss sims
disable autoloading the exe if using networking to another machine
improved dll crash logging
revert to old singleton pattern, hopefully fixes random null reference crashes
3 users thanked sepefeets for this useful post.
Dre on 8/25/2016(UTC), zws on 8/25/2016(UTC), er009 on 8/25/2016(UTC)
Dre
#853 Posted : Thursday, August 25, 2016 5:36:48 AM(UTC)

Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 888
Man
Location: The Netherlands

Thanks: 216 times
Was thanked: 480 time(s) in 315 post(s)
sepefeets;40654 wrote:
V123.2SE released.


Changelog Hype! xD or "just" week 3 cards?

EDIT: I was too quick, the changlog is there now :)
1 user thanked Dre for this useful post.
sepefeets on 8/25/2016(UTC)
sepefeets
#854 Posted : Thursday, August 25, 2016 5:42:51 AM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
Dre;40655 wrote:
Changelog Hype! xD or "just" week 3 cards?

All of kara.
1 user thanked sepefeets for this useful post.
Dre on 8/25/2016(UTC)
clee
#855 Posted : Thursday, August 25, 2016 9:39:59 AM(UTC)
Rank: Newbie

Groups: Registered
Posts: 8

Thanks: 1 times
Was thanked: 9 time(s) in 6 post(s)
Silverfish is consistently misplaying turn 2. Even though it has a valid 3 drop, it will coin and do hero-power. It has occurred in Paladin, hunter.
It is also doing this : coin + quick shot on turn 2 with 2 mana wasting coin.

attached log for coin+quick shot on turn 2. 123.2SE.

Silverfish Log



1 user thanked clee for this useful post.
sepefeets on 8/25/2016(UTC)
Dre
#856 Posted : Thursday, August 25, 2016 10:06:04 AM(UTC)

Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 888
Man
Location: The Netherlands

Thanks: 216 times
Was thanked: 480 time(s) in 315 post(s)
clee;40663 wrote:
Silverfish is consistently misplaying turn 2. Even though it has a valid 3 drop, it will coin and do hero-power. It has occurred in Paladin, hunter.
It is also doing this : coin + quick shot on turn 2 with 2 mana wasting coin.

attached log for coin+quick shot on turn 2. 123.2SE.

Silverfish Log



Datasync. It wanted to coin out Animal companion on turn 2, but when it used coin it didnt register that it gained 1 mana, and still tought it had 2 mana instead of 3. Then it used quickshot as 2nd best play because it didnt think it had enough mana for the companion.
1 user thanked Dre for this useful post.
sepefeets on 8/25/2016(UTC)
er009
#858 Posted : Thursday, August 25, 2016 10:37:43 AM(UTC)
er009


Rank: Advanced Member

Groups: Registered
Posts: 238
Man
Location: EU

Thanks: 61 times
Was thanked: 56 time(s) in 42 post(s)
@sepefeets can you please add max priority on killing enemy Brann Bronzebeard? I've seen too many times that the bot does something to it but doesn't kill it in the end, like it quick shots it then leaves it at 1hp without running the only minion he have into it so it dies etc. For me its super crucial that Brann dies unless bot have lethal, I don't know if the rest of the botters agree on this one but I certainly am 100% that minions like Brann is an immense threat that needs to be dealt immidiately.
1 user thanked er009 for this useful post.
sepefeets on 8/25/2016(UTC)
clee
#857 Posted : Thursday, August 25, 2016 11:37:15 AM(UTC)
Rank: Newbie

Groups: Registered
Posts: 8

Thanks: 1 times
Was thanked: 9 time(s) in 6 post(s)
Dre;40664 wrote:
Datasync. It wanted to coin out Animal companion on turn 2, but when it used coin it didnt register that it gained 1 mana, and still tought it had 2 mana instead of 3. Then it used quickshot as 2nd best play because it didnt think it had enough mana for the companion.


If this is the case, can you store a previous board state and make sure the state changes before the next move calculation is carried out, then the play would be correct.

Alternatively, you could introduce a new delay attribute for the cards in the carddb.txt so that individuals can tune their own animation delay catering to their own PC performance.
1 user thanked clee for this useful post.
sepefeets on 8/25/2016(UTC)
sepefeets
#859 Posted : Thursday, August 25, 2016 5:23:46 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
@er009 - Nothing is that simple. What you described sounds like data sync but without logs who knows.

@clee - SF does store the previous board and check it but HR gives data about a PARTIALLY updated board. SF has no control over when HR calls it asking for a move to do and it can't tell HR to double check the data though I asked for this. Or maybe it can now with the recent plugin API library update but I haven't had time to figure out how to diff the dll api (google has a bunch of dead links) or ask Joy...

ps. the carddb is a hearthstone file and has to be extracted+cleaned up every significant game update, no bot data would ever go in there because it would just create a pain every update.
clee
#860 Posted : Friday, August 26, 2016 3:54:01 AM(UTC)
Rank: Newbie

Groups: Registered
Posts: 8

Thanks: 1 times
Was thanked: 9 time(s) in 6 post(s)
sepefeets;40671 wrote:

@clee - SF does store the previous board and check it but HR gives data about a PARTIALLY updated board. SF has no control over when HR calls it asking for a move to do and it can't tell HR to double check the data though I asked for this. Or maybe it can now with the recent plugin API library update but I haven't had time to figure out how to diff the dll api (google has a bunch of dead links) or ask Joy...


I think i found a way to solve the data sync problem.

There is this API call in BotBase which is

public void UpdateGameState(GameState data)
{
this.gameState = data;
}


Assuming we received OnQueryBestMove call but then a subsequent GameState Change occurred after your updateEverything function is called. The most updated gamestate will not be stored in your local variables, thus the out-of-sync issue. We need to override this function to update your local variables and then retrigger calculations whenever the gamestate data changed.

For your convenience, i have done a decompile of HSRangerLib and attached here.

HSRangerLib
3 users thanked clee for this useful post.
Dre on 8/26/2016(UTC), Somerandombot007 on 8/26/2016(UTC), sepefeets on 8/26/2016(UTC)
Somerandombot007
#862 Posted : Friday, August 26, 2016 11:22:01 AM(UTC)
Somerandombot007


Rank: Advanced Member

Groups: Registered
Posts: 33
Location: Zurich

Thanks: 63 times
Was thanked: 20 time(s) in 12 post(s)
Silvefish missed lethal with call of the wild by trading instead of going face:
http://pastebin.com/hJwdU4CG (used this in a test.txt for silverfish and it gave me this result):
Best Board Actions:
attacker: spider id 132, enemy: druid id 92
attacker: hound id 114, enemy: slime id 122
attacker: huffer id 135, enemy: druid id 92
useability
on enemy: druid id 92

Regards Somerandombot007

1 user thanked Somerandombot007 for this useful post.
sepefeets on 8/26/2016(UTC)
bobsmith9999
#864 Posted : Friday, August 26, 2016 11:43:50 AM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 57

Thanks: 29 times
Was thanked: 45 time(s) in 42 post(s)
Doomsayer bug. SF is misplaying by dropping a minion to be destroyed. Log in spoiler.

2 users thanked bobsmith9999 for this useful post.
sepefeets on 8/26/2016(UTC), Somerandombot007 on 8/26/2016(UTC)
sepefeets
#861 Posted : Friday, August 26, 2016 3:49:45 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
clee;40674 wrote:
I think i found a way to solve the data sync problem.

There is this API call in BotBase which is

public void UpdateGameState(GameState data)
{
this.gameState = data;
}


Assuming we received OnQueryBestMove call but then a subsequent GameState Change occurred after your updateEverything function is called. The most updated gamestate will not be stored in your local variables, thus the out-of-sync issue. We need to override this function to update your local variables and then retrigger calculations whenever the gamestate data changed.

For your convenience, i have done a decompile of HSRangerLib and attached here.

HSRangerLib

It's not virtual, abstract, or override so it can't be overridden but that doesn't really matter anyways because I've tried sleeping for considerable time at the start of OnQueryBestMove before it reads the gameState and HR is not updating it in the background while waiting for OnQueryBestMove to finish. Data sync is not about SF being out of sync with HR, it's about HR being out of sync with the game.
sepefeets
#863 Posted : Friday, August 26, 2016 3:51:42 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
Somerandombot007;40684 wrote:
Silvefish missed lethal with call of the wild by trading instead of going face:
http://pastebin.com/hJwdU4CG (used this in a test.txt for silverfish and it gave me this result):
Best Board Actions:
attacker: spider id 132, enemy: druid id 92
attacker: hound id 114, enemy: slime id 122
attacker: huffer id 135, enemy: druid id 92
useability
on enemy: druid id 92

Regards Somerandombot007


In the future give me the full turn, not just a single board. This one is data sync, HR didn't update the attack values of minions with the leokk buff.
1 user thanked sepefeets for this useful post.
Somerandombot007 on 8/26/2016(UTC)
sepefeets
#865 Posted : Friday, August 26, 2016 4:04:16 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
bobsmith9999;40685 wrote:
Doomsayer bug. SF is misplaying by dropping a minion to be destroyed. Log in spoiler.

Maybe it was trying to help you remove a terrible card from your deck. :D

It'll be at the very bottom of the pile unless more notable doomsayer misplays pop up.
1 user thanked sepefeets for this useful post.
Somerandombot007 on 8/26/2016(UTC)
clee
#866 Posted : Saturday, August 27, 2016 6:55:34 PM(UTC)
Rank: Newbie

Groups: Registered
Posts: 8

Thanks: 1 times
Was thanked: 9 time(s) in 6 post(s)
@sepefeets, I see in the code that only IsProcessingPowers is checked and will cause the bot to block. However, there is another parameter which is IsBlockingServer which will be true when the server is still processing. I saw from the FAQ certain events will cause only IsProcessingPowers to be set, but IsBlockingServer will be true whenever the server is still processing.
1 user thanked clee for this useful post.
sepefeets on 8/27/2016(UTC)
sepefeets
#867 Posted : Saturday, August 27, 2016 7:26:40 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
clee;40721 wrote:
@sepefeets, I see in the code that only IsProcessingPowers is checked and will cause the bot to block. However, there is another parameter which is IsBlockingServer which will be true when the server is still processing. I saw from the FAQ certain events will cause only IsProcessingPowers to be set, but IsBlockingServer will be true whenever the server is still processing.

Then test it.

Edit: I'm pretty sure that even if it does work as a test for whether the board is done updating or not, SF will only be able to log it although if we can identify the cause the Joy should be able to fix it. Botmaker originally used the IsProcessingPowers check to send a fake action to get another update later but afaict HR won't accept the fake action anymore since Joy added the "use default ai when SF crashes" option even if you have it disabled. The newer IsProcessingPowers check just sleeps but that doesn't let the gamestate ever update so all it does is log it (much less than data sync actually occurs since other things are causing it too).
clee
#868 Posted : Saturday, August 27, 2016 9:33:13 PM(UTC)
Rank: Newbie

Groups: Registered
Posts: 8

Thanks: 1 times
Was thanked: 9 time(s) in 6 post(s)
sepefeets;40723 wrote:
Then test it.

Edit: I'm pretty sure that even if it does work as a test for whether the board is done updating or not, SF will only be able to log it although if we can identify the cause the Joy should be able to fix it. Botmaker originally used the IsProcessingPowers check to send a fake action to get another update later but afaict HR won't accept the fake action anymore since Joy added the "use default ai when SF crashes" option even if you have it disabled. The newer IsProcessingPowers check just sleeps but that doesn't let the gamestate ever update so all it does is log it (much less than data sync actually occurs since other things are causing it too).


@sepefeets, i have a question. If HR+Silverfish.dll is running under the same process, when the thread sleeps, both with sleep, so HR won't be able to update the gamestate? If I am not wrong, when the thread wakes up then the dll process will write to the text file or network port, the board state which is not changed at all during the sleep? So to solve the problem we may need to detach the process altogether, the dll have to be tasked to simply send the gamestate to the external exe process through IPC calls continously or through a pipe. Only Silverfish.exe will block based on the status of the gamestate, the dll should never block. Please let me know if my thinking is wrong.


Edit: Further thinking, I think to solve this problem Joy needs to add a new bot action type BOT_WAIT, so that Silverfish.dll can exit from OnQueryNextMove function and subsequently process UpdateGameState and then after that call OnQueryNextMove again. Since as long as the call to OnQueryNextMove is not completed, it will never be able to call to UpdateGameState.
sepefeets
#869 Posted : Saturday, August 27, 2016 11:24:54 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 899

Thanks: 1028 times
Was thanked: 584 time(s) in 238 post(s)
clee;40727 wrote:
Edit: Further thinking, I think to solve this problem Joy needs to add a new bot action type BOT_WAIT, so that Silverfish.dll can exit from OnQueryNextMove function and subsequently process UpdateGameState and then after that call OnQueryNextMove again. Since as long as the call to OnQueryNextMove is not completed, it will never be able to call to UpdateGameState.

Yes now you are starting to understand. When HR asks for an action then SF has no choice but to give one or else HR just ends turn and if it gives a malformed action then it thinks SF crashed (or maybe the dll really was crashing, I'm still not sure how to debug the dll very well) which is why I asked Joy to add a "recheck the board" command but it would be even better if we could figure out why HR is updating too quickly so that HR could just send proper data.
84 Pages«<4142434445>»
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Powered by YAF | YAF © 2003-2011, Yet Another Forum.NET
This page was generated in 0.233 seconds.