00:06:51 not certain there's much left to do regarding the MSVC PR 00:07:18 can probably review/pull it whenever someone gets a chance 01:04:27 Unstable branch on CRAWL.XTAHUA.COM updated to: 0.23-a0-386-g9c9d49f (34) 02:27:29 Unstable branch on crawl.develz.org updated to: 0.23-a0-386-g9c9d49f (34) 02:58:41 Windows builds of master branch on crawl.develz.org updated to: 0.23-a0-386-g9c9d49f 03:11:46 Unstable branch on crawl.beRotato.org updated to: 0.23-a0-386-g9c9d49f (34) 03:59:09 Monster database of master branch on crawl.develz.org updated to: 0.23-a0-386-g9c9d49f 05:22:42 -!- amalloy is now known as amalloy_ 06:30:11 hi 07:26:39 hi 07:42:08 hello there, is there anyone there? 07:42:39 I'm here 07:43:17 hi mate, i want to build a bot to play crawl, can u guide me please? i dont even know how to start 07:43:46 ugh sorry I'm here to learn how to participate to this game too 07:44:45 thanks anyway, good luck to you, anyway else here? xD 07:47:52 hi there cerpin 08:03:56 hello? 09:16:13 ??qw 09:16:14 qw[1/7]: A fully automated lua bot written by elliptic, with some code borrowed from parabolic and xw. See "!lg qw won 2" for the first ever completely uninterrupted and unassisted bot win. Git repository: https://github.com/elliptic/qw 09:16:19 simbs38: ^ 09:22:16 still nothing? 09:48:44 hi there, i saw that bot, but that has 8600 lines of code, i would like to start with something more simple to learn the api and want i can and canot do 09:53:50 if you have the source, the lua api is documented using ldoc 09:53:57 if you have ldoc installed you can run 'make api' 09:54:05 and it will compile the documentation in to the docs/lua folder 09:54:46 a (not automatically updated) host for them is lua.dcss.xyz 10:12:59 that helps a lot, thanks, but how can i start my bot? is there any skeleton of code of a basic bot? and how to send comands to the game? 10:16:56 simbs38: if you wnat to write a bot in lua, you put your lua code in the .crawlrc file 10:17:12 crawl will call the function named ready() in that file when it wants input from you 10:17:37 ??xv 10:17:37 xv[1/1]: "x-v", it means to examine a monster. Use it to see how quickly a ghost is going to kill you. 10:17:41 rip 10:17:45 wait 10:17:46 ??xw 10:17:47 xw[1/3]: D->lair->D:14->(Snake or Spider)->Vaults:1-4->Orc:1-3->Depths->??? 10:17:49 ??xw[2 10:17:50 xw[2/3]: ah, xw is trying to eat a wand of disintegration 10:17:52 ??xw[3 10:17:52 xw[3/3]: It's like autoexplore But more advanced 10:17:59 ??gw 10:17:59 gw[1/10]: http://crawl.berotato.org/crawl/rcfiles/crawl-0.17/gw.rc 10:18:04 there's another bot 10:18:06 different from qw 10:19:33 in the qw bot to run it we use ./crawl -rc qw.rc, can't i run my bot like that to? 10:19:45 yes 10:20:47 the qw bot ask to pres TAB from time to time to run, why is that? 10:21:08 why doesn't it run automatic? 10:25:34 I'm not superfamiliar with qw, but part of it is when it's running on an online server to ratelimit it (there's an Expect script that drives the ssh connection), also to allow debugging and observation 10:30:15 im running it offline 10:31:34 well, then you can turn it off 10:32:25 how? 10:33:28 by editing qw.rc 10:33:35 like I said, I'm not super familiar with it, Icouldn't tell you what lines exactly to change 10:39:27 ok, thanks mate u gave me a good starting point 10:47:28 mandarbmax (L20 MfGl) ERROR in 'mon-util.cc' at line 664: bogus mc (no monster data): invalid monster_type 1000 (1000) (Depths:2) 10:50:53 hm. that's the second one of those 10:50:56 !crashlog 10:50:58 20356. mandarbmax, XL20 MfGl, T:41973 (milestone): http://crawl.berotato.org/crawl/morgue/mandarbmax/crash-mandarbmax-20181028-144718.txt 12:35:55 A 12:56:13 03stenella02 07https://github.com/crawl/crawl/pull/879 * 0.23-a0-387-gbf9d4db: Console support 10(16 hours ago, 8 files, 329+ 63-) 13https://github.com/crawl/crawl/commit/bf9d4dbfbdf5 13:05:40 Unstable branch on crawl.akrasiac.org updated to: 0.23-a0-386-g9c9d49f (34) 13:43:37 FR for offline versions: add a grand total score of top 100 games 13https://crawl.develz.org/mantis/view.php?id=11735 by RoGGa 15:08:15 Deep elf elementalist casts `Awaken Earth` through transparent stone wall 13https://crawl.develz.org/mantis/view.php?id=11736 by Petrovich 15:18:24 that's how it's meant to work, right? since it doesn't require los generally 15:18:42 (i'm all for fixing it by removing the spell though) 15:25:24 yes, but I can see the intuition that you ought to be able to flee from it by hiding behind enough stone; wonder what happens with non-transparent stone 15:41:44 i think it can just affect any tile in a line between you and the caster, regardless of visibility 15:44:56 killholes or no killholes, it does seem like a bad idea to me to have a spell like that because it's super dependent on hidden monster tracking stuff 15:45:32 i.e. monsters knowing locs of recently seen players out of los 15:46:34 well, I guess it's no different from dig, just smite targeted 15:46:47 so maybe it's the smite targeting + that property that bugs me 15:46:50 %git 3704a81a433fd 15:46:50 07Grunt02 * 0.18-a0-777-g3704a81: Monster spell: Awaken Earth. 10(2 years, 11 months ago, 6 files, 169+ 3-) 13https://github.com/crawl/crawl/commit/3704a81a433f 15:47:25 i think it's just a weird approach to solving however much of a problem killholes are, yeah 15:47:53 i like making player digging substantially rarer (which i think gammafunk was planning on doing to the wand?) 15:48:53 yes, that seems pretty reasonable to me 15:56:45 ok I feel like this problem is my fault: kingbuddyboy pointed out that you can now wield a +Rage weapon (like glaive of the guard), evoke it, and then swap to the weapon you actually want to use 15:58:15 also, peanut gallery comment: i strongly suspect that deep elf elementalists would work better with just regular dig spell 16:26:49 MarvinPA: here's a summary of something I sent you some time back about wand charge reductions 16:27:00 I'm thinking of reducing dig charges to generate at the same level as scattershot per wand (5), disint/enslave/para/poly down to 8 per wand, and maybe flaming/random effects down to 16. 16:27:04 The digging reduction is pretty aggressive, gets us down to made 25 charges for a 3-rune game on-average. For the others mentioned it's a 33% reduction. 16:27:07 Wand charges feels pretty high still, but it's mostly the hex wands that feel perhaps too high. 16:27:10 Give us maybe 32 charges in a game for e.g. enslavement on-average, and about 48 for paralysis. 16:28:04 I can do just the digging adjustment 16:28:14 But unless people have reservations about those other changes, I can do those as well 16:28:42 and feel free to speak up if you think adjustments downward are ok but need to be done with some of the details differently 16:29:58 wasn't planning to change the direct attack wands other than flaming. I guess disint is an attack wand, but MR-checking wands feel like they have too many charges in the game 16:30:15 those look pretty reasonable at a glance, those are the average values on generation right? rather than max charges 16:31:09 oh i'm out of date in how i'm thinking about them anyway right, i forgot about stacking 16:32:45 i guess i would maybe tend towards having disint get more charges than the other MR-checking wands? since it's not quite as overwhelmingly strong an effect 16:33:28 hmm displaying the old max charges on the \ screen is kinda meaningless now 16:42:45 yeah, that's average I guess 16:42:58 man, I made that stacking change but I forget how the charges are done; it's totally randomized right? 16:43:07 not sure what the range is 16:43:43 yeah, disint could remain the same 16:43:43 let me see what they all are 16:48:05 default is 24 charges, clouds/scattershot get 9, acid/iceblast get 15, flame/randomeffects get 48 16:48:25 hrm 16:48:30 so the average is half of that 16:48:35 those are actually max charge values 16:49:00 yeah, then generation is fairly weighted towards the middle of the range up to that max 16:49:00 it's 1 + random2avg(MAX, 3) 16:49:00 right 16:49:19 so we could move dig to the cloud/scattershot tier 16:49:46 I guess enslave/para to the acid/iceblast tier 16:50:27 I suppose poly as well 16:50:41 then remove the 48 tier for flame/randomeffects 16:51:06 er I guess my plan was to make that 32 instead of 48 16:51:27 that sounds good yeah, probably fine for them to still have a bit more than average 16:51:58 alright, I'll go with that and if anyone wants to adjust further, they could 17:25:19 this tukimas bug is nuts 17:29:08 tukimas works properly when it selects the 2nd of 2 weapons. it reproduces the bug whenever it selects the 1st of 2 weapons. in theory it should always select the 1st of 2 weapons, but for some reason sometimes it does not 17:30:01 forcing it to select the second weapon (if it exists) on monsters that carry two weapons works most of the time, but some sizable fraction of the time the remaining weapon is unassigned/corrupted 17:30:33 o____o 17:33:47 this is getting into the weirder areas of code that i have absolutely no experience in 17:40:43 !clap crawlcode 17:40:43 👏 c 👏 r 👏 a 👏 w 👏 l 👏 c 👏 o 👏 d 👏 e 👏 17:43:47 .___________. 17:47:58 MeekVeins (L21 DrFE) ERROR in 'mon-util.cc' at line 664: bogus mc (no monster data): invalid monster_type 1000 (1000) (Vaults:5) 17:51:15 !crash meekveins 17:51:18 1. MeekVeins, XL21 DrFE, T:49164 (milestone): https://underhound.eu/crawl/morgue/MeekVeins/crash-MeekVeins-20181028-214756.txt 17:51:29 doh 17:52:28 hrm signal #6 aborted 17:52:34 oh, i figured it out. 17:53:01 it selects either the first or the second weapon based on an earlier call to target->weapon() which chooses between the first and second randomly 17:53:28 so the broken case was when this call selected the first one, but i forced the second one 17:53:36 h e h 17:54:00 the problem is there are 25 other things that call weapon() and i don't want to fuck with that 17:56:42 (the actual visual bug seems to be due to the way dual-wielding works in tile generation; the second weapon fits in the "shield" attribute, but when the first weapon is unequiped, the second one is moved to the first slot, so it's still the shield attribute that's nullified. the next time the tile is redrawn, it works correctly 17:57:45 BerryKnight (L18 HOAr) ERROR in 'mon-util.cc' at line 1568: bogus mc (no monster data): invalid monster_type 1000 (1000) (Orc:2) 17:58:37 ah 17:58:42 !crash berryknight 17:58:52 1. BerryKnight, XL18 HOAr, T:29664 (milestone): http://crawl.akrasiac.org/rawdata/BerryKnight/crash-BerryKnight-20181028-215728.txt 17:59:01 ok, so another crash 17:59:07 probably something happening with these god conducts then 17:59:24 hrm, this one might not be related 17:59:52 maybe this is memory corruption 18:01:00 monster soul eater using drain life 18:01:14 will definitely take a closer look at that 18:02:59 New branch created: pull/881 (2 commits) 13https://github.com/crawl/crawl/pull/881 18:03:00 03Skrybe02 {GitHub} 07https://github.com/crawl/crawl/pull/881 * 0.23-a0-387-gd7aed64: Address a TODO in layout_cave_pools 10(38 minutes ago, 1 file, 7+ 5-) 13https://github.com/crawl/crawl/commit/d7aed64223c7 18:03:00 03Skrybe02 {GitHub} 07https://github.com/crawl/crawl/pull/881 * 0.23-a0-388-g61f66aa: Address a TODO in layout_concentric_octagons 10(32 minutes ago, 1 file, 5+ 6-) 13https://github.com/crawl/crawl/commit/61f66aafc122 18:11:22 hmm 18:11:28 what do you think is the correct way to fix this bug 18:13:40 If you're talking about the drain life thing, I'll fix it after I push another commit 18:13:47 no, tukimas 18:14:06 oh, haven't read that code, sorry 18:14:18 basically the bug is that the object that should be in the second hand is now in the first 18:14:24 but the game doesn't know it yet so it doesn't draw it 18:27:37 MeekVeins (L23 DrFE) ERROR in 'mon-util.cc' at line 664: bogus mc (no monster data): invalid monster_type 1000 (1000) (Depths:3) 19:18:19 any plans for the datafiles merge? 19:18:55 ideally it can be merged at a time when I'm around, and at least an hour before every other server rebuilds, cos I can watch CPO's compilation and spot any immediate issues 19:21:10 Unstable branch on underhound.eu updated to: 0.23-a0-386-g9c9d49f623 (34) 19:57:14 alexjurkiewicz: I think advil is still planning to give it another once-over as some point; we wanted to have at least one dev around to address issues 20:00:28 gammafunk: do you have thoughts on 881? It looks good to me but I'm not super familiar with this part of the level builder 20:00:33 and dunno if there are gotchas 20:00:43 ah, yeah, I can take a look at that soonish 20:00:51 I have a little bit of a backlog 20:01:12 It's probably a fairly minor change 20:01:26 perhaps a bit hard to test it, but you could just max weight on the affected layouts 20:01:30 and generate some levels 20:01:32 and look at them 20:01:44 but that depends on the nature of the changes, which I haven't even looked at 20:02:02 yeah I've done that 20:02:08 uh, the mantis ticket has some screenshots 20:02:38 I'm writing a patch for hellcrawl which modifies armour in the player's inventory, and it keeps duplicating the inventory item (so you have two items in inventory which are `b - a +0 scale mail`. Can anyone take a look at the code and tell me why? https://github.com/alexjurkiewicz/crawl-ref/blob/anvil/crawl-ref/source/shopping.cc#L1381 20:02:42 https://crawl.develz.org/mantis/view.php?id=11214 20:03:07 I think it's something about how I convert from `int item_slot` into `item_def& item` 20:03:32 (which I do because I want to check the item's base_type and so on) 20:03:40 (and then modify the item) 20:06:27 the screenshots do look nice but yeah, I'd need to read the commit in detail to comment further 20:07:19 alexjurkiewicz, does the first item in inventory also disappear? 20:07:50 you an't assign to refs normally, I think 'item = ...' is overwriting u=you.inv[0] 20:08:07 s/u=// 20:08:46 may need to use a pointer instead of a ref, or declare and initialize item there instead of early 20:13:19 I think I'm gonna run a mapstat run with 881 added in and if it runs well merge it 20:13:50 I agree with the layout writer of yore who thought these would be good D/Lair layouts 20:21:41 in fact I dont' just think (had to swap c++ brain back in), tht is what's happening once initilized, a ref is immutable and assignment modfiies the thing referenced, so it's writing over you.inv[0] 20:22:03 s/happening once/happening. once/ 20:25:53 https://en.cppreference.com/w/cpp/language/reference_initialization 20:26:14 (also the declaration should be "free", so there's no point in declaring it outside the loop) 20:32:28 ah 20:32:37 ok, let me try cleaning up the code 20:32:56 is there some way in a loop like that to say "this variable is constant for each iteration of the loop"? 20:33:39 references are alwasy constant 20:33:39 I guess pull that code into a sub-function 20:33:45 just declare it where you need it 20:34:11 that's what I ment by "free"; there's no guarantee it actually represents anything in memory 20:35:00 (this is also why "assigning" to iot overwrites what it's referencing; it's a alias, not a variable) 20:35:09 an alias 20:36:05 more genrally, you only get "constant per iteration" by declaring it inside the loop 20:36:59 I would not be afraid of doing tis in general, if the compiler's any good it recognizes that it can allocate once and overwrite per loop iteration 20:37:05 so I want to be able to check the item's base_type inside the loop, but then still have that variable be accessible once I exit the loop 20:37:45 so I suppose I need an `item_def` variable outside the loop which I assign to, and I can &-ise it inside the loop temporarily 20:38:49 think you just want a pointer here, not a reference 20:38:56 initialize to NULL 20:39:16 yeah, you are right 20:39:18 then item = &you.item[item_slot] 20:39:41 and if you want to avoid all the *s, initilize a reference from the pointer right after the loop 20:40:17 so itemp = ..., then item_def &item = *itemp 20:46:43 thanks! that looks better now 20:53:34 -!- neunon_ is now known as neunon 21:39:54 fixing the bug is pretty simple, i can do it with 4 or 5 lines of code 21:39:54 but it's super ugly 21:40:04 need a dev's advice on 858 21:40:17 or rather your blessing to make ugly changes 21:40:34 or the call to rewrite the entire module 21:45:43 I'll wager there's a solution in between the two 21:45:59 cleaner than what your first idea is, but far short of a complete re-write 21:46:23 * geekosaur can think of a few source files where that stands a god chance of being false 21:46:31 *good 21:48:05 it feels like some of these bugs are just outside of the edge of the implementation 21:48:22 like the person that put these bugs in should have seen that the codebase wasn't there for it, and rewrote it to compensate 21:49:36 like, regardless of this bug right now, the way the files are written don't allow for more than 2 weapons 21:50:29 that's a reasonable assumption... 21:50:29 the original design only allowed for one ranged and one melee weapon 21:50:34 (monsters) 21:51:03 i mean, they're given 12 inventory slots 21:51:09 it's a fantasy game 21:51:14 maybe someone has 7 hands 21:51:16 you don't know them 21:51:32 oh shit, that's an idea, isn't it 21:51:53 octopodes :p although dual wield is itself a hack. 21:52:18 whch is the real problem, this is an ancient code base that has been perverted into doingthings it was never designed for 21:52:40 it just seems like nobody along the way was like "maybe we should make this scalable" 21:53:33 welcome to crawlcode 21:53:39 stop saying that 21:53:44 design has never been a thing to speak of 21:56:29 ??linley[6 21:56:29 linley henzell[6/7]: Henzell discussing his programming ability: "You see, I gave up on Borland's [C++] manual (which is very good, I'm just lazy) when it started talking about pointers [....] After pointers came structs, enums, pragmas, classes, macros, and a whole lot of other stuff which still means nothing to me." 21:56:41 the original author of Crawl 22:07:24 got to learn those pragmas 22:38:41 #pragma DWIM 22:55:07 ok, mapstat finished. 881 seems good to go so I'm gonna smash that merge button 22:55:35 03gammafunk02 07* 0.23-a0-387-g141017e: Lower the average number of charges for some wand types 10(5 hours ago, 1 file, 5+ 1-) 13https://github.com/crawl/crawl/commit/141017ece01d 22:56:08 oh man that'll make some players mad 22:56:36 well 22:57:00 nerfs do. it's a necessary change 22:57:10 we'll have to keep improving unrands 22:57:12 no more wand of digging (77) 22:57:20 players are easilly fooled by shiny things 22:57:28 yeah, that could still happen of course, but definitely won't be the norm 22:57:37 03Skrybe02 {ebering} 07* 0.23-a0-388-g786a77d: Address a TODO in layout_cave_pools 10(6 hours ago, 1 file, 7+ 5-) 13https://github.com/crawl/crawl/commit/786a77dc79ec 22:57:37 03Skrybe02 {ebering} 07* 0.23-a0-389-g4a5eb33: Address a TODO in layout_concentric_octagons 10(5 hours ago, 1 file, 5+ 6-) 13https://github.com/crawl/crawl/commit/4a5eb334b0ed 23:10:49 Unstable branch on crawl.jorgrun.rocks updated to: 0.23-a0-389-g4a5eb334b0 (34) 23:23:58 vault generating with no way in (if only I could dig with lrd, GAMMAFUNK) 13https://crawl.develz.org/mantis/view.php?id=11737 by paterick 23:27:46 haha, looks like he's still playing https://questionablecontent.net/view.php?comic=3861 23:29:32 indeed