All times shown according to UTC.

Time Nick Message
00:00 Cloud_Keeper Chainsol: Looks like were in the same position then :)
00:00 Slade chainsol: they have a basic point datatype you can simply math to get distance
00:00 chainsol Cloud_Keeper: :D I imagine there will be a lot of people on here that aren't pros - but I'm just happy to see such well written code.
00:01 I don't mean to sound like one has to be a professional programmer to be a good programmer - I just was floored by vincent's code style and the way he chose to solve problems. Really impressed!
00:02 Slade Select where xy -x2y2 = 7
00:02 chainsol Slade: Yes, and I think that might work. We'd have to figure out a join that will work with Evennia's exits - we don't want to enforce a grid system
00:02 Slade It's not a grid
00:02 It's a point
00:02 chainsol How does one get a list of points with Evennia as-is, though? I haven't thought of a way to do it.
00:03 Slade They don't have to be uniform.   X can be. 13.99
00:03 chainsol To get to a faster way to do this we'd want to join the rooms within x distance of the initial room and then filter by a specific tag.
00:03 DiscordBot2 <LizardLeliel> Uh, I'm having trouble with something the tutorial says and what the api docs say
00:03 Slade chainsol: indeed
00:04 chainsol I just can't figure that part out - vincent-lg has really improved on my initial solution but neither of us have thought of how to do that part.
00:04 LizardLeliel: Hmm? Which part?
00:04 DiscordBot2 <LizardLeliel> Or at least, the docs say that look just echos what return_appearance() returns, and gives a link to a piece of code that doesn't say return_appearance()
00:05 Slade Db query is the answer. Because you want rooms not yet loaded as well right
00:06 chainsol Slade: Currently we do a loop within x distance of the initial location - we look at room.exits and add all of the locations not in our search to a list, then filter with that list.
00:06 DiscordBot2 <LizardLeliel> This tutorial: https://github.com/evennia/eve[…]ic-MUSH-like-game . The link to the Evennia code shows a function using the look_at() code, which isn't directly using return_appearance() as the tutorial suggests. Which is a bit confusing (I still found return_appearance() else where though)
00:06 chainsol LizardLeliel: Look returns the at_look hook
00:07 at_look is defined in....typeclasses.py?
00:07 *models.py
00:07 Slade chainsol: gets hairy if the rooms aren't all the same size
00:08 But that technique gives you other advantages
00:08 chainsol LizardLeliel: Ignore me - objects.py
00:08 Slade: Default Evennia doesn't have a concept of room size, right?
00:08 Slade No but you stated you didn't want a grid.
00:08 chainsol Slade: You could override the distance function if you wanted, so if you added a way for rooms to have size, you could implement a cost to each room.
00:09 DiscordBot2 <LizardLeliel> Yeah, it shows the at_look hook.
00:09 <LizardLeliel> Which the tutorial doesn't talk about at all
00:09 chainsol Lizard: And at_look uses return_appearance
00:09 Lizard: It just does a permission check first.
00:09 DiscordBot2 <LizardLeliel> Yes, but then you'd have to search for that manually
00:09 chainsol You have a point there - it should be updated. Let's do so! :D
00:10 DiscordBot2 <LizardLeliel> Ok. Also, using the parent class's method that you're inheiting is just super().method(), right?
00:10 <LizardLeliel> I haven't done too much oop in Python before.
00:11 <LizardLeliel> Since I usually use it proceduraly x)
00:11 chainsol Uhm, super(Class, self).method(arguments)
00:11 DiscordBot2 <LizardLeliel> Ok
00:11 chainsol ( Class is whatever your current class is )
00:11 Slade chainsol: indeed. It's basically a*
00:12 chainsol Slade: Yes, actually, I suppose it is! We don't have a concept of room cost/size in default Evennia and this is potentially intended to be a contrib (maybe), so we've got mostly generic functions.
00:13 Slade: The intent is to override anything you don't like - if you wanted to have a room size, override the distance function and you're golden.
00:13 DiscordBot2 <LizardLeliel> Also, where are descriptions stored?
00:13 chainsol I don't think either of us are married to the current implementation - it's a work-in-progress. :D
00:13 Slade well thats python right? you dont want it. override it
00:14 DiscordBot2 <LizardLeliel> I just realized maybe calling super to get the description might not be the best (since it'll return more then that
00:14 chainsol LizardLeliel: db.desc, I think?
00:15 DiscordBot2 <LizardLeliel> I'll check that
00:15 chainsol LizardLeliel: It seems so - it's what return_appearance uses
00:15 Slade chainsol, either way, sounds like you need a solid a* implementation you can throw at things ;P
00:16 world unification stuff i think is always positive to add to a mud
00:17 DiscordBot2 <LizardLeliel> ugh, I'm going to have to get used to searching through the Evennia code x)
00:17 chainsol LizardLeliel: Haha, yes, it becomes a necessity.
00:17 Slade LL: nah, you'll memorize it soon enough
00:18 DiscordBot2 <LizardLeliel> I want %r and %t to be replaced with new line and tab but I realized that its probably easier to overwrite @desc to replace them when setting bd.desc instead of make return_appeance replace them
00:18 <LizardLeliel> But for now
00:18 <LizardLeliel> I'll do the latter
00:18 chainsol "Ah, yes, the at_look hook? Line 5532 in objects.py"
00:18 Slade lizwhats wrong with \n and \t?
00:18 DiscordBot2 <LizardLeliel> Does it work?
00:19 chainsol Slade: Actually, oddly enough: I think vincent-lg is already using A*
00:19 Slade chainsol, not odd at all
00:19 that, or something similar is the right answer
00:19 DiscordBot2 <LizardLeliel> No it doesn't. As for why no /n or /t - other MUs use %r and %t.
00:19 chainsol Perhaps not odd, but serendipitious.
00:20 DiscordBot2 <LizardLeliel> I might write it so both %r%t/\\n\\t can be used
00:20 chainsol LizardLeliel: |n and |r do work as well, but yes, in-game, /n and /t don't work, if I recall correctly.
00:20 Slade in game it doesnt, but if you've got the code and you're outputting stuff.. it should..
00:20 chainsol It works fine in the code, yeah.
00:20 Slade ah, maybe i missed what LL was trying to do :)
00:21 DiscordBot2 <LizardLeliel> I just used it in an #desc here=, it doesn't work
00:21 chainsol I think LL wants in-game use of those tags.
00:21 In which case - no reason not to. :D
00:21 DiscordBot2 <LizardLeliel> Hey, I need my players to understand how to create new lines and tabulation too
00:22 chainsol LizardLeliel: Of course, one option is just to let them know to use |n and |r
00:22 LizardLeliel: The reason Evennia doesn't use %r and %t is that it conflicts with Python's string interpolation.
00:23 "Ah, yes, the at_look hook? Line 5532 in objects.py"
00:23 Slade strange to have players do new lines and tabulations.. tho i guess its possible
00:23 chainsol LOL. Whoops.
00:24 IRSSI gets me again.
00:24 DiscordBot2 <LizardLeliel> Chainsol: was there no way around it?
00:24 <LizardLeliel> I mean, you can write \\n in code easily
00:25 chainsol LizardLeliel: You can use the % formatting just fine - it's just possible to get confused in Python.
00:25 DiscordBot2 <LizardLeliel> But if its a common enough standards in MUDs, I would make sure builders can use %r/%t when using @desc
00:25 chainsol There's even a contrib module.
00:25 That lets you go back to the % formatting for colors and such.
00:25 DiscordBot2 <LizardLeliel> And new lines?
00:25 chainsol Yup. It's in the contrib folder.
00:26 DiscordBot2 <LizardLeliel> Ok. How do I use |n normally then?
00:26 <LizardLeliel> Cause I'll ignore the issue for now and look into contrib modules later
00:26 chainsol Oh, just use |n in place of %n, if that's what you mean. It works in code and in game.
00:27 DiscordBot2 <LizardLeliel> Its not working for me though!
00:27 chainsol Wait
00:27 I'm an idiot.
00:27 |/
00:27 |n returns to normal formatting.
00:27 DiscordBot2 <LizardLeliel> :v
00:27 chainsol Lol.
00:27 DiscordBot2 <LizardLeliel> Thank you
00:27 chainsol That's an excellent face to choose for this moment.
00:28 Now, tabs, that's another story...
00:28 I think |- works, though.
00:28 Right now it inserts a literal tab, but it's planned to change it to 4 spaces? Maybe?
00:29 DiscordBot2 <LizardLeliel> Tabulation isn't as serious at the moment. I want to have new lines for room descriptions but I'm tabulation only becomes important for when players want tabs in their poses
00:29 chainsol Ah, good point. Anyway, yes. Sorry about that. I forgot about the |/ thing.
00:30 DiscordBot2 <LizardLeliel> I also badly, badly, badly, badly need a second monitor
00:30 <LizardLeliel> The lack of one is REALLY affecting my productivity
00:30 chainsol Heh, that helps. It's a pain to have just one.
00:30 DiscordBot2 <LizardLeliel> No, cause I can't have my notes, sublimte text, the google docs, client, and this discord all on one place
00:31 <LizardLeliel> Not the google docs
00:31 <LizardLeliel> I meant the evennia docs
00:31 <LizardLeliel> Especially since discordd takes up so much gosh darn space
00:31 <LizardLeliel> Like holy heck let me shrink the channel list
00:32 <LizardLeliel> Or change where the avatars are placed if its shrunk enough
00:32 chainsol Huh, I don't use it right now so I didn't know it didn't let you. That seems silly.
00:33 I use Ubuntu Gnome right now - I have multiple virtual desktops. That helps.
00:33 DiscordBot2 <LizardLeliel> Oh man, I thought I didn't have a big list of stuff to do but now actually doing stuff, it seems like I have quite a bit of work to do x)
00:38 <LizardLeliel> also, how does xterm tags work? The tutorial gives NO description besides "|500" is red.
00:38 <LizardLeliel> Like, is it in "|fff", with it being |rgb?
00:38 <LizardLeliel> Or is 5 the max?
00:39 <LizardLeliel> Anybody?
00:41 chainsol Sorry, one second
00:41 You can type @color xterm in game to see what you can do.
00:42 https://jonasjacek.github.io/colors/
00:43 Should be able to use those? Maybe?
00:43 DiscordBot2 <LizardLeliel> No, I'm asking how tagging for xterm does work
00:44 chainsol I'm perhaps missing something here - you mean how does it technically work, what do the codes mean?
00:44 DiscordBot2 <LizardLeliel> |500 is red, right?
00:45 chainsol Right.
00:45 DarrenW joined #evennia
00:45 DiscordBot2 <LizardLeliel> Does it go up to |f00, or |900? Or just |500 as the docs kind of imply? Do I do |500000 if I want for a more precise colour? And it IS rgb, right?
00:45 chainsol LizardLeliel: https://github.com/evennia/eve[…]#xterm256-colours describes it as |rgb
00:46 Thus, 3 digits.
00:46 DiscordBot2 <LizardLeliel> The tutorial doesn't.
00:46 <LizardLeliel> It just says |500 is "pure red"
00:46 chainsol Oh, huh, that's also odd!
00:46 Well, each digit goes up 1 5.
00:46 *up to
00:46 so 0, 1, 2, 3, 4, 5
00:46 DiscordBot2 <LizardLeliel> " markup consists of three digits, each an integer from 0 to 5." That's not intuitive!
00:46 <LizardLeliel> And why does it only go up to 5?
00:47 <LizardLeliel> That makes me spiritually mad
00:47 chainsol Haha. Console support is partially why.
00:49 DiscordBot2 <LizardLeliel> I'm still angry
00:49 chainsol I actually am unsure why Evennia does it this way - in theory xterm colors are just 000 - 255
00:49 DiscordBot2 <LizardLeliel> In a comically underwhelming way
00:49 chainsol Perhaps it's because it makes more sense for us to think about |rgb rather than an arbitrary code...
00:50 DiscordBot2 <LizardLeliel> Oh no, it makes sense to do that
00:50 <LizardLeliel> Just I don't feel it makes sense to make the max value 5
00:50 chainsol I think that's why - xterm colors only have 256 choices.
00:50 DiscordBot2 <LizardLeliel> So you have 6 possible numbers, which isn't even binary!
00:51 chainsol Yup, that is why. 6*6*6 = 216, plus the shades of grey.
00:51 That's why it doesn't go to 9 digits - there are only 256 choices.
00:52 Technically recent console emulators support truecolor modes but...
00:52 DiscordBot2 <LizardLeliel> But I thought the shades were just alias for 111, 222, 333...?
00:52 <LizardLeliel> I thought xterm did support full rrggbb though, my bad.
00:53 <LizardLeliel> I have my orange colour though so I'm happy
00:53 chainsol Oh, no worries - I'm not an expert but it only supports 256 colors - 216 xterm colors, 16? ansi, and then 24 greys, I think.
00:53 DiscordBot2 <LizardLeliel> I plan to make the colours involved in desc on the surface orange (and underground blue). And dungeons something else.
00:54 chainsol :D That seems like a nice flavor thing to do for sighted users.
00:54 DiscordBot2 <LizardLeliel> It is nice! the active Pokemon Fusion uses a LOT of colour, but its very nice and makes things way more readable
00:55 chainsol I suppose it's good to keep in mind those that aren't able to see the colors - it's important to not use color as a replacement for clarity. :D
00:55 DiscordBot2 <LizardLeliel> https://cdn.discordapp.com/att[…]0/coloured_MU.PNG
00:56 chainsol Wow, that really does work quite well! Nice job.
00:56 DiscordBot2 <LizardLeliel> Oh yeah, for now I'm just adding it for my sanity
00:56 <LizardLeliel> But I'll be able to set which colours you can use at chargen (ansi, xterm, or none)
00:56 chainsol I can see my warning isn't needed - you've designed it quite well as-is, I imagine anyone could use that interface.
00:56 DiscordBot2 <LizardLeliel> I really want to replicate the exit thing, its so easy to see
00:56 <LizardLeliel> Its not my design
00:57 <LizardLeliel> In fact, I'm a very late-joining staff to the active pokemon fusion.
00:57 <LizardLeliel> I wish there was an easy way to have an 80-character line of dashes in Python
00:58 chainsol "-"*80
00:58 DiscordBot2 <LizardLeliel> I thought that didn't work in Python
00:58 chainsol Yes, it's that easy. :D
00:58 DiscordBot2 <LizardLeliel> Must be Java I'm thinking about
00:58 <LizardLeliel> You can't do that in muf and ugh its anonying
00:58 <LizardLeliel> I swear muf's not that bad but most of the busy work is text formating
00:59 chainsol Blargh.
00:59 I'll stick with Python, haha.
01:00 DiscordBot2 <LizardLeliel> https://hastebin.com/masiruzuse.scala
01:00 <LizardLeliel> Actually, let me paste something that's being used...
01:02 <LizardLeliel> https://hastebin.com/edadojifem.vbs (the lines aren't wrapped into a functiuon since I reused code (copy and pasted) from another mail system and was just easier to keep it in that format)
01:03 chainsol I will 100% be happy to stick with Python, haha. I like the paradigm of keeping code in the filesystem rather than in the game.
01:04 But that is some interesting code. It's not unreadable and I read up a bit on Forth/MUF and it's not too hard to understand.
01:04 But Python is much more readable, heh.
01:04 DiscordBot2 <LizardLeliel> Hoenstly, the filesystem is cool, but I think through the game is just esier
01:04 <LizardLeliel> Easier. And I'm lazy.
01:04 chainsol Have you looked at vincent-lg's In-game Python?
01:04 DiscordBot2 <LizardLeliel> I wish somethings in coding aren't moral decisions ;_;.
01:05 chainsol He feels the same as you, and prefers to be able to code in game.
01:05 And that system works extraordinarily well.
01:05 DiscordBot2 <LizardLeliel> Oh, cool.
01:05 chainsol I think he and I are the only two actively using it? As far as I've heard.
01:05 DiscordBot2 <LizardLeliel> Still, if its outside the game, I might as well keep it out of the game
01:05 <LizardLeliel> Also, I don't know why I'm actually using Evennia for my own MU, given I like writing in muf x)
01:06 chainsol Haha. Do take a look at the IGPS, it's worth it if you want some in-game customization.
01:06 It's not as far-reaching as softcode but it's useful.
01:07 DiscordBot2 <LizardLeliel> oh
01:07 <LizardLeliel> If I'm the only one writing, I can use the word "colour" instead of "color" in my code :^)
01:08 chainsol Ha, I use that spelling too. People always make fun of me.
01:08 It sounds more right to me though.
01:09 DiscordBot2 <LizardLeliel> I'm Canadian so it is correct to me in a technical sense
01:09 chainsol At least you have an excuse then. :D
01:13 DiscordBot2 <LizardLeliel> I love warm colours so much https://cdn.discordapp.com/att[…]_warm_colours.PNG
01:15 <LizardLeliel> (Have them laid out to colour pick, currently the room's typeclass is a test one)
01:17 chainsol Woah, that looks pretty cool.
01:17 DiscordBot2 <LizardLeliel> And to get the desc, its db.desc, right?
01:18 <LizardLeliel> Actually, hold on, maybe I can find something that should answer all my questions...
01:19 streetwitch joined #evennia
01:19 streetwitch Hi
01:20 chainsol Hello streetwitch
01:20 !
01:20 streetwitch Have you seen my new website?
01:20 I made a mobile responsive menu, among some other things
01:22 chainsol I had not seen that! Excellent job.
01:22 streetwitch chainsol are you still working on a webpage for evennia?
01:23 chainsol streetwitch: It's already in the next version
01:23 streetwitch Le me see
01:23 let
01:23 chainsol One moment - I'll swap my dev instance over
01:24 DiscordBot2 <LizardLeliel> Ah! Copy and pasting the code in objects.py and modifying it >:). ...Do I have to give credit for doing that to someone?
01:24 <Cloud_Keeper> Nope
01:24 <LizardLeliel> ok!
01:25 <Cloud_Keeper> And you shouldn't just copy and paste the whole object
01:25 <Cloud_Keeper> You should inherit from the object and just make the changes you need
01:25 <LizardLeliel> Not for this case =p
01:26 <LizardLeliel> Cause then I'll have to do way too much string modifying
01:26 <LizardLeliel> Namely, I'm writing my own return_appearnce() function.
01:26 <LizardLeliel> Cause I want to have colour and stuff.
01:27 chainsol *sigh*
01:27 streetwitch: Just working on moving over my dev instance to the devel branch of Evennia.
01:28 streetwitch: My laptop is being a piece of shit, as per tradition.
01:28 streetwitch Ok
01:29 DiscordBot2 <LizardLeliel> Oh yeah, I should probably figure out how to have a dev mu seperator from my production one.
01:29 <LizardLeliel> Like, I doubt what I'm doing now will work forever, but is fine now due to how innocent it is.
02:05 chainsol streetwitch: http://dev.perfectdisorder.net:4001
02:05 streetwitch -k
02:06 chainsol mobile optimized theme for your viewing pleasure!
02:06 streetwitch Looks good
02:06 Have you seen my mobile page?
02:06 I thought you could give me some pointers
02:07 chainsol your mobile version looks quite good!
02:07 streetwitch :)
02:07 chainsol i dont have any points from my first look at it.
02:07 you're not redirecting me so it's done with css - perfect.
02:07 DiscordBot2 <Cloud_Keeper> That's sick C!
02:09 <LizardLeliel> I'm thinking really hard about colour choices https://cdn.discordapp.com/att[…]Colour_Design.PNG
02:10 <LizardLeliel> For the Overworld
02:11 <LizardLeliel> Ansi doesn't have orange (from what I can remembeR), I'm a bit worried.
02:12 chainsol ll: it probably will fall back to red?
02:12 DiscordBot2 <LizardLeliel> Yeah, I'll probably make it dark red and red
02:12 <LizardLeliel> Or use three colours
02:12 <LizardLeliel> What do you think though? Is it too bright?
02:13 chainsol i like brighter colors myself
02:14 so my opinion is that it's good. :D
02:15 DiscordBot2 <LizardLeliel> Sweet
02:15 <LizardLeliel> Yeah, colour adds a ton of livilieness I find
02:15 <LizardLeliel> livlieness
02:16 <LizardLeliel> Living but ends with a ness
02:16 <LizardLeliel> Gotta repeat it for underworld colours and ansi for each
02:20 chainsol joined #evennia
02:20 Cloud_Keeper Wb
02:21 chainsol thanks! rebooted the server.
02:21 port forwards still aren't working. huh.
02:22 Cloud_Keeper Port forwarding always seems like way more hassle then it actually is
02:22 But whenever something requires port forwarding I totally switch off
02:26 chainsol i just don't want to run evennia as root.
02:28 Cloud_Keeper I've heard that's bad juju
02:34 chainsol it is, haha.
02:36 as per tradition it was stupid. a mistake on my part.
02:48 DiscordBot2 <LizardLeliel> Underworld colours: https://cdn.discordapp.com/att[…]rworld_colour.PNG
02:48 streetwitch How do I pull a single file from git into cloud9?
02:49 For some reason one of my commands is empty
02:49 but on my linode it is still there
02:50 DiscordBot2 <LizardLeliel> Wait...
02:50 <LizardLeliel> Isn't it possible to hold a room containing yourself?
02:51 <LizardLeliel> Also, what do you think of the colours?
02:53 whitenoise LL: You could hold a room containing yourself
02:53 I'm not sure why you would want to, but you could do it
02:53 you would need to use two different references though
02:53 DiscordBot2 <LizardLeliel> 1) I like knowing that's possible for understanding purposes 2) bending time and space sounds funs
02:53 <LizardLeliel> fun
02:56 chainsol you can also pick up other people, endless sillyness can abound.
02:56 you can also build rooms and exits in people.
02:57 now...i must sleep. night all!
02:59 DiscordBot2 <LizardLeliel> nin
03:35 streetwitch Hey
03:35 Guess what?
03:35 Ive come to really like git
04:01 damned_scholar Mwahaha.
04:02 Another soul for Emperor Torvalds.
04:10 streetwitch damned_scholar: I'm getting rid of my tickers
04:10 Do you think you could take a look at the tickers I can't f igure out how to convert?
04:25 damned_scholar Sure.
04:25 I'm trying to not be up too late tonight, though.
04:25 So I may suddenly drop off.
04:32 streetwitch Yeah
04:32 I'm going to bed now too
05:24 chrzyki joined #evennia
05:40 amfl joined #evennia
05:46 evenniacode [evennia] Griatch commented on issue #701: The fix needs to go into the core maintenance task of Evennia, which is responsible for the timeout. It's not difficult (implementation has just been put back for more pressing matters a few times), but it requires some design desicions. The most likely implementation would be to have the task check a lock on the
05:46 object to determine if it should time out or not. https://git.io/v7b4w
06:35 DiscordBot2 <Cloud_Keeper> Locks sound good
07:24 vincent-lg joined #evennia
07:50 vincent-lg joined #evennia
07:50 vincent-lg hi Evennia!
08:08 DiscordBot2 <Ashlan> so guys, is it normal for evennia to take longer to restart as the database gets larger?
08:08 <Ashlan> it used to restart instantly but for some reason today it takes several seconds to restart
08:10 Tehom ashlan: I think several seconds might just be normal if you have other stuff going on, or if it has a lot of idle stuff it needs to shut down. I haven't really noticed a big difference as its grown
08:12 vincent-lg Ashlan: it's hard to say,a s it depends on many many factors
08:13 DiscordBot2 <Cloud_Keeper> How big are we talking?
08:13 <Ashlan> it's not that big, only over 2000 items
08:13 vincent-lg what you call "bigger" database... what machine you run on and so on. Perhaps you could check the memory when it restarts. personally it takes between 2-4 seconds here but I'm doing some stuff between reloads and that might slow down the process a bit. I don't know if Evennia gets slower to reload as the DB gets larger, but it would seem no, since Evennia doesn't load the entire DB on reload
08:13 DiscordBot2 <Ashlan> I took a one day break and left my builder to do whatever, so she might have done something
08:14 vincent-lg though if you have a lot of hooks at_server_stop and so on yeah it might affect, for sure
08:14 DiscordBot2 <Ashlan> well, it used to say server restarting... restarted
08:14 <Ashlan> I haven't got any hooks there, hmm
08:14 <Ashlan> now it has three or so elipses, ... before it restarts
08:14 <Ashlan> takes maybe ten seconds
08:15 <Ashlan> could be related to my amazon ubuntu thing too, it says there's updates available but when I do sudo apt-get update or upgrade it doesn't update them
08:15 vincent-lg well Cloud probably knows more about it but 2K objects doesn't sound like a lot to me
08:15 DiscordBot2 <Cloud_Keeper> 2k is nothing.
08:16 <Cloud_Keeper> But I find when my computer is loaded, or I use my laptop, restarting takes longer. It's not evennia itself that's slow
08:16 vincent-lg in all cases even if you have 200M objects since Evennia doesn't load them before it needs them, I don't see how it could slow down the reloading process. Okay, 200M objects might take some time :D
08:16 DiscordBot2 <Cloud_Keeper> Tehom has tested with hundreds of thousands of objects
08:16 Tehom I think in general that's not really database related so much as the time it takes for it to restart the server. For example, the longest delays I ever see is if I'm doing something on my test machine that's unrelated and very intensive. Then the server reload might just wait until that's done, basically. I don't think database size is really a factor so much
08:17 vincent-lg yeah
08:17 Ashlan: you might want to check on your machine load
08:17 and free memory
08:17 and see if there are peaks in process usage. Perhaps something that is running is just constantly taking up the priority over Evennia
08:18 DiscordBot2 <Ashlan> ok thanks
08:18 vincent-lg since when Evennia reloads for me, it pulls both the Github repository of my game and the Evennia source on master, it can take 1-2 seconds, sometimes more, but not often
08:22 DiscordBot2 <Ashlan> hopefully I can get it sorted later, it's a pretty minor issue atm
08:23 <Ashlan> today I'm coding following code.  Following is working but I can't send a message to i, which is weird because this code will send i to the traversing_object's room:
08:23 <Ashlan> if traversing_object.db.followed_by:             destination = traversing_object.search(t​raversing_object.location, global_search=True)             for i in traversing_object.db.followed_by:                 i.msg("You are following %s.")                 i.move_to(destination)
08:24 <Ashlan> guess I don't need the search in there but the message not working is the biggest issue
08:26 <Cloud_Keeper> What's in traversing object.followed_by
08:27 <Ashlan> ah it's a list that refers to a character object
08:27 <Cloud_Keeper> Sounds silly, but sometimes I put my phone in the freezer, so I always liked to check things are going into the right places
08:27 <Ashlan> followed_by = [<Character: Ashlan>]
08:28 <Ashlan> I thought if the move_to thing works (and it does) the msg thing would also work but it doesn't seem to
08:30 <Cloud_Keeper> Could you paste bin the whole code your working with
08:30 <Cloud_Keeper> I don't think you need the search or the if
08:30 <Cloud_Keeper> Statement
08:30 <Ashlan> ya I took out the search
08:31 <Cloud_Keeper> Because "i for list" just does nothing if the list is empty
08:31 vincent-lg back
08:31 DiscordBot2 <Ashlan> here it is : https://pastebin.com/h2gEL9Pz
08:31 <Cloud_Keeper> May not be relevant to the msg but cleaning things might make it easier to see why
08:32 <Ashlan> traversing_object.msg in the same place works too
08:33 <Cloud_Keeper> You've hard coded a dbref? Bold move.
08:33 <Ashlan>
08:34 <Ashlan> This has been a learning experience for me so at the time I couldn't have thought of another way to do it
08:35 <Cloud_Keeper> No idea why it doesn't work
08:36 <Cloud_Keeper> I assume you haven't messed around with the msg method on the character
08:37 <Ashlan> nope I haven't
08:37 <Ashlan> other messages for the character seem to be working =/
08:38 <Ashlan> ok I made some progress
08:38 <Ashlan> if i put the msg after the move it works
08:38 <Cloud_Keeper> Lol
08:38 <Ashlan> some interaction between the hooks and the messages coming in is overwriting the earlier message I guess?
08:39 <Cloud_Keeper> Problem solved I guess
08:39 <Ashlan> ya it's pretty weird heh
08:41 <Ashlan> Lone Wolf is walking westward. Lone Wolf departs from crow's road passing by ye olde armour shoppe, heading west. Crow's Road Outside a Boutique. room description here! Lone Wolf is here. You see exits leading: in, west, east. You followed Lone Wolf west.
08:42 vincent-lg my current game is a bit unreliable. If you wait too long it taks too much memory and just crash and general back. I have to watch carefully :D
08:42 DiscordBot2 <Ashlan> movement is probably the most spammy thing in my game
08:44 vincent-lg I'm converting movements so you can stay in a room and not see who's arriving/departing
08:45 DiscordBot2 <Cloud_Keeper> Meh, I'm going to have controls over what messages you see
08:47 <Cloud_Keeper> Say and whisper messages already have a type attached to them. The character will have a list of types he wants to see that can be changes in a settings menu and incoming messages will be checked up against that
08:47 <Ashlan> I'm going to have to do stuff like that at a later date
08:48 <Ashlan> one of my next big challenges is going to be invisible following and invisible characters in a room, so that gods can follow mortals around and see what they do easily
08:49 <Ashlan> can you guys think of another way to let a mortal see what a god sees? Maybe tapping into the message class or something?
08:49 <Ashlan> sorry, let a god see what a mortal sees
08:49 vincent-lg Cloud: thatś great! I was thinking of a ẅatch"command to subscribe/unsubscribe from events
08:49 DiscordBot2 <Ashlan> invisibly following was my first theory but there might be a better way
08:49 vincent-lg but your idea makes more sense
08:49 DiscordBot2 <Cloud_Keeper> Sure
08:49 <Cloud_Keeper> Invisible characters are just a lock
08:49 Tehom The 'view' lock is supposed to handle that, for the most part. It's used already in a few different circumstances, so it'd just be a matter of checking it anywhere you want someone not to show up
08:50 Then when you go invisible, you just set '@lock self=view:perm(builders)', for example
08:50 DiscordBot2 <Cloud_Keeper> What T said
08:50 <Cloud_Keeper> As for seeing what they see, that's also simple but super spammy
08:51 Tehom I personally don't have a command like that by default in Arx because of privacy concerns. I'm really uncomfortable with the idea of staff watching players without their knowledge
08:51 DiscordBot2 <Cloud_Keeper> Characters could have a "watching" list, like your following list. In the characters msg method, gave it msg watchers
08:51 Tehom I know other people are probably cool with it, but it's something that'd bother me a ton as a player myself, so I kinda lobbied hard to make it impossible. It's sort of a dealbreaker for me to be snooped on
08:52 DiscordBot2 <Cloud_Keeper> I know T, I've had to take much more extreme measures to stalk you!
08:53 Tehom :o
08:54 DiscordBot2 <Ashlan> I know what you mean Tehom
08:54 <Ashlan> I am playing with the achaea/avalon crowd who are used to gods having massive abilities
08:54 <Ashlan> stuff like, instantly kill player, remove player's skills, etc.
08:54 vincent-lg tehom: you are a builder in ARX? I didn know! Congrats then
08:55 DiscordBot2 <Ashlan> yeah Arx seems to be doing really well
08:55 <Ashlan> it makes me optimistic that my mud will find players once its ready
08:56 vincent-lg privacy is a concern when you have staffspying"on players. WWhat I really disapprove is poofing seeing their commands and what they get in response. But I do allow staff to be invisible and just go to players and see if they want to, because thatś often necessary for debugging. I have a älways invisible"policy for my staff. They know they can go see players without being invisible. Theyuŕe not part of the RP environment and know it
08:56 DiscordBot2 <Ashlan> my goal is to have a pvp mud, if we can't watch players pvp it would be boring for gods
08:56 vincent-lg my reason for allowing players to watch/unwatch movement and other stuff is that, as you said Ashlan, they can get very spammy particularly in areas with lots of characters (NPCs or not).
08:56 DiscordBot2 <Cloud_Keeper> Haha V? He's the lead everything at Arx
08:56 <Cloud_Keeper> How did you miss that?
08:57 vincent-lg and whyile thatś annoying for a sighted user, that can be really problematic for screen reader users to have unimportant messages flashing by every second
08:57 Tehom Well I just do code, really! Other people do lore and GMing stuff, which is probably more important overall for player engagement
08:57 vincent-lg hehe
08:57 I guess I just didn see the connection :D
08:58 DiscordBot2 <Cloud_Keeper> Too modest. They play in the house you built.
08:58 vincent-lg if I can get my ways I plan to code too and let others build. Not players however. But for the time being I guess Iĺl just have to do all three (code, build, play :P )
08:58 DiscordBot2 <Ashlan> a friend once said to me, running a programming project is knowing which things to say no to
08:58 <Ashlan> so far in my mud experience it's pretty true, people have a lot of conflicting ideas and not all of them are good
08:59 vincent-lg thatś probably true
08:59 although not everything you have to decide :DE . wouldn it be great otherwise
08:59 Tehom It's about just prioritization too, I'd say. I've kind of gotten bogged down in projects that weren't as important as other things, in retrospect. Like you can have a bunch of things that are all cool ideas, but they won't give the same value to your players
08:59 vincent-lg and in my own experience if you don listen to other ideas, if only to discuss them, the audience might just leave over a short period of time and never comeback. Itś a difficult balance
09:00 Tehom: it happened to me all the time too. A player arrives with a great set of ideas, but the are just impossible to fit either in the world or current gameplay
09:01 DiscordBot2 <Cloud_Keeper> If they think their ideas are that great they'll be willing to code it themselves :p
09:01 vincent-lg but usually when such a situation occurs I share the idea with builders and sometimes, one comes with a combination for her own project and says she'll integrate it somehow. It won't be a world feature but an area feature that would make sense in the story
09:02 Cloud: sadly lots of players don't want to hear about coding anything
09:02 DiscordBot2 <Cloud_Keeper> Their mustn't be that great then :p
09:02 <Ashlan> I've been wondering actually, how does Arx get 100 players a night when you need approval to log in? I tried to log in and it wouldn't let me and my short attention span brought me to something else lol
09:02 <Ashlan> did you advertise anywhere for example?
09:03 vincent-lg they don't mind keeping ownership for their idea but they beg someone else to code for them. And once the code is here, it's harder to say "well done, but really, I don't think it could work". I prefer to put a stop to the idea right away, if there's time
09:03 and I couldn't afford to say to anyone "if you're not happy, just create your game :P"
09:03 DiscordBot2 <Ashlan> I've had to say that before when my first team was insisting I code certain things I didn't care to see in a game
09:03 vincent-lg Cloud: but non-coders have great ideas too
09:03 Tehom We advertised on the MUsoapbox a while back, Ashlan, but it seems mostly people drawing in friends for RP right now. I'd say we've probably shrunk a little in the last few months, so we might have plateau'd a bit
09:03 DiscordBot2 <Cloud_Keeper> Ashlan: I believe they already had an established player base.
09:04 <Cloud_Keeper> Isn't that right? You didn't start with evennia, you transferred to it?
09:05 <Ashlan> that would do it
09:05 vincent-lg well, back to the signal handler, and soft AI
09:05 Tehom cloud_keeper: sorta kinda - like a lot of people knew each other from various mushes, or FiranMUX that had closed a bit befoe we opened, so there was a number of people interested before we started
09:05 vincent-lg I say "soft", but it's really growing into something huge :D
09:06 DiscordBot2 <Ashlan> I've been wondering if open sourcing my mud might be a good way to get more people interested too, although it would be a double edged sword as they say
09:06 Tehom cloud_keeper: We did start with Evennia, though I made the blunder of not having the correct version of Evennia when we started, which led to a pretty significant upgrade process at one point
09:06 DiscordBot2 <Cloud_Keeper> Open source it with a to do list and I'd be happy to duck my head in
09:06 vincent-lg Ashlan: I keep my code open source. It's a principle. Even for a game. I hide stuff, sure. They don't have access to the database, just the code :D
09:07 DiscordBot2 <Ashlan> ya I made a note not to release the database if I open source it lol
09:07 <Cloud_Keeper> Tehom: ah I remembered incorrectly
09:07 <Ashlan> it had almost slipped my mind
09:07 vincent-lg I didn't have any player looking at the code to get the exact calculation of stats / probabilities for a certain action. Then, even that is hidden in my database file to some extent. However, I didn't get many contributions
09:07 DiscordBot2 <Ashlan> in my game that's all fairly open
09:08 vincent-lg my player base wasn't that impressive, but I'd say, don't open your game code to have contributors. It's not that likely to happen. Tha<t was my experience anyway and I'm more than willing to admit it's not necessarily true
09:08 DiscordBot2 <Ashlan> Offense: 69, Defense: 60. vs. Agility & Stamina: -6 disadvantage. You seek to sheathe your iron dagger in Rogue Hawk! Rogue Hawk grunts in pain. ... You feel yourself starting to tire!
09:09 <Ashlan> that's a standard combat message anyway
09:09 <Ashlan> calculate stats, attack message, hp level message, possible stamina loss message
09:09 vincent-lg some of it is hidden
09:10 DiscordBot2 <Ashlan> ya it's not 100% open I guess
09:10 vincent-lg I have a global script and I just edit some calculations there. So there's nothing in the code but the call to this script
09:10 but really, since my players don't have access to many numbers, they just can't read through and roll dices for themselves  as simply. Too many variables for starters
09:10 DiscordBot2 <Ashlan> my code is pretty sphagetti by now.  There's a melee.py, a CommandCommand with @staticmethods all over and a rules.py
09:10 <Ashlan> sorry, CombatCommand type
09:11 vincent-lg but I plan to provide a sample. To help potential contributors, telling them that it's nothing like the real game
09:11 DiscordBot2 <Ashlan> class MeleeCommand(BaseCommand):
09:11 <Ashlan> that's a good compromise
09:12 <Ashlan> my game has hard coded dbrefs so even if I open source it, they'd have to log in to see it working out of the box
09:12 vincent-lg I did the same for my current game although I didn't release any sample. So when you had the code you had to run it and do it all by hand. And there were basic stuff (like races, skeletons, genres and such) that you had to create by hand... which led to plenty of errors from potential contributors
09:13 but I didn't have the @batchcode utility then :D
09:13 ha okay.
09:14 DiscordBot2 <Ashlan> to-do list before I pitch my MUD to reddit and seek more buildings is down to 6 items
09:14 <Ashlan> I just need to code in starting inventories now, and my magic system which is similar to my melee combat system in code
09:14 vincent-lg you're going to use reddit to recruit builders/players?
09:14 DiscordBot2 <Ashlan> ya I've been on reddit a lot
09:14 <Ashlan> so I figured, I'll do an alpha launch and only tell people on reddit about it
09:16 <Cloud_Keeper> Only tell one of the top 5 most visited websites in the world about it?
09:17 vincent-lg I didn't think about reddit
09:17 as a matter of fact I don't know much about this website
09:17 gotta explore. I was thinking of recruiting builders first, on the mud connector
09:18 Cloud: so what you do is add a "type=... to your obj.msg(), right?
09:18 and then you have overridden the msg method to take into account the type and see if it should be sent to this object?
09:18 DiscordBot2 <Cloud_Keeper> V: that's how I envision it
09:18 <Ashlan> reddit is pretty big but /r/mud specifically is not that huge
09:18 vincent-lg that's a good idea
09:19 and then you would allow players to subscribe to mmessage types
09:19 DiscordBot2 <Cloud_Keeper> As a fellow Pokemon MUD dev I plan on poaching all my players from LizardLeliel
09:19 <Ashlan> heh
09:19 vincent-lg I was thinking of adding a watcher handler or something like this but it would create yet a new handler :P and might slow down a bit for checking stuff and sending every message
09:19 Tehom yoink!
09:20 DiscordBot2 <Ashlan> one of my long term ideas to let players make their own cities, as allies of the more secure cities, then they can war system destroy each other's player cities
09:20 <Ashlan> /dreams
09:20 <Cloud_Keeper> "If type in allowedmsglist: super
09:21 vincent-lg that's an intersting solution
09:21 would it also work if you used room.msg_contents()? could you send a type there too?
09:21 DiscordBot2 <Cloud_Keeper> Ashlan: you could have players "BE" the city as one of their characters. It'd be like one of those passive count down games. Then they can have a character and explore themselves
09:22 <Ashlan> heh
09:22 <Cloud_Keeper> V: of course. By default most system messages don't have a type so you just let those messages pass through automatically
09:22 vincent-lg I have to look into that
09:22 that seems pretty good
09:23 I just have to test quickly if a character is subscribed to this for there will be some messages I will only send if you are watching, since they will require some background calculation :D
09:23 DiscordBot2 <Cloud_Keeper> At least to memory message_contents just straight takes its input and passes it along. I'd have to check
09:24 vincent-lg like when you are driving and do "watch right" to watcht the right side of the street, you see addresses flashing by. But that's a task and if I do that for all cars, that will be overwhelming and the server will be frozen if I get more than 50 at once I guess :D
09:24 if it doesn't I'll just override msg_contents to be sure
09:25 Tehom I wound up using the options dict in msg for that sort of thing, but I think there was some views of that as a bad practice, since that was mostly envisioned for things like protocol-specific msg formatting or something like that. I forget what the exact argument was
09:27 wyrdathru joined #evennia
09:28 DiscordBot2 <Cloud_Keeper> Thats what the big G said but the idea grew on him
09:28 wyrdathru joined #evennia
09:29 DiscordBot2 <Cloud_Keeper> Essentially not having it meant my puppet bots had to parse everything anyone said in case it was something they should be listening to.
09:29 <Cloud_Keeper> Now they just look at the type
09:30 vincent-lg that's definitely useful
09:30 DiscordBot2 <Wyrdathru> Ooh, Discord bot. Sweet.
09:31 vincent-lg I do remember this debate I think
09:31 DiscordBot2 <Cloud_Keeper> For instance, it would decide whether a message was a speech message by checking if the last character was a "
09:31 <Cloud_Keeper> If you did a pose that ended in " then it would mess with the bots :p
09:31 <Cloud_Keeper> Hi Wyrd
09:32 <Wyrdathru> Howdie.
09:32 <Cloud_Keeper> What's crackalackin
09:33 <Wyrdathru> Thought I'd dip my toes back into the conversation of late, re: Evennia. Otherwise, not much! An' chu?
09:33 vincent-lg hi to you :)
09:33 DiscordBot2 <Cloud_Keeper> I'm about to get some train coding done
09:33 <Wyrdathru> Ugh, is it all cramped?
09:34 <Wyrdathru> And dodgy wifi?
09:34 <Wyrdathru> I absolutely hate that.
09:34 vincent-lg well time to go to it too, though not the same project :D .
09:35 DiscordBot2 <Cloud_Keeper> V: if you make a to do list on your open source project I'd be happy to have a look
09:53 vincent-lg Cloud: I'm still not sure on where I'm going actually. Some stuff like the vehicle system is pretty well-defined in my head, but others ike the gang system are really opaque
09:54 I'm a great believer in TDL. But I feel if I right everything I should do I'll just be overwhelmed by the sheer quantity of it all :D
09:54 DiscordBot2 <Wyrdathru> tdl?
09:56 vincent-lg to-do lists
09:56 DiscordBot2 <Cloud_Keeper> Fair call
09:57 vincent-lg I didn't see it shortened this way very often actually
09:57 DiscordBot2 <Cloud_Keeper> I guess I envision a bunch of us, all intimately knowing each other's work, all helping each other out etc etc
09:57 vincent-lg and we're plagued with acronyms as it is :D
09:57 Cloud: but I guess I could still write TDLs for the vehicle system for instance, since I know pretty well where it should lead to
09:57 Cloud: that would be terrific
09:58 DiscordBot2 <Cloud_Keeper> I remember a bunch of us were trialling online ides so we could work in real time together
09:58 vincent-lg already being here, helping and being helped, is great
09:58 collaboration would be a step higher but it would be great too
09:58 DiscordBot2 <Cloud_Keeper> C9 looked best but required a credit card even for the free version
09:59 <Cloud_Keeper> Codeeverywhere was another we tried but wasn't as polished
09:59 vincent-lg I prefer as workflow having each working in her little Git repository and merging/pushing. Much easier to see who modified what and staying o n track. But perhaps not as much as a live collaboration on the surface
10:00 I'm a bit wary of these systems as they probably will not be great in accessibility. But I would be intersting in testing them (without a credit card, though :P )
10:01 DiscordBot2 <Cloud_Keeper> Yeah, that scared me off
10:01 vincent-lg perhaps they changed thei rpolicies
10:01 DiscordBot2 <Cloud_Keeper> Getting used to collaborating through git is probably the closest to professional work
10:01 vincent-lg you can find a lot of "tiral" products online where you can test without giving your credit card. They have understood that more testers come (and might stay and give their credit card eventually) if they limited the constraints on subscription
10:02 well, collaborating with Git does avoid some problems of close-collaboration like editing the same file
10:03 but Git doesn't do it all. With a chat nearby, however, it might be the best solution.
10:03 DiscordBot2 <Cloud_Keeper> Those online ides updated in real time and you could see where their cursor was
10:03 <Cloud_Keeper> Accessibility would be an issue
10:03 <Wyrdathru> What are you guys working on together? Just contributing code to the evennia/contrib that might be generic enough to use amongst youse?
10:04 <Cloud_Keeper> I'm working on a Pokemon MUD. V is working on a generic gangsta mud
10:04 vincent-lg lol
10:04 I like the defintion
10:04 right now though I'm working on an even more generic AI system for NPCs
10:04 with Chainsol
10:06 Cloud: some BTS like Redmine on Planio present the other side of collaboration. You still need a CVS like Git to keep the code safe, but you can chat online, share documents, open/close issues (that is, edit the roadmap) and such. I like the service and get it even when I'm working by myself :D
10:08 DiscordBot2 <Cloud_Keeper> Sounds like githubwith a chat
10:09 vincent-lg Cloud: mostly yeah :D . Github is another BTS after all. Redmine offers a bit more, like forums, but mostly they both provide issue tracking, milestone tracking, document sharing. Ho there's a dev blog on Redmine too but I never use it
10:10 Planio has also interfaced a great agile board, so you can plan your sprint, move issues in it and change who's assign to it with just drag and drop in real-time (so others can participate in the sprint definition too). It's a good way to see where you're going. There's a Gantt chart for the project too but, again, I don't use it (and it's not surprising)
10:25 there's something odd in Vim
10:25 I have set auto-indentation on
10:26 but if I write an indented block, press return twice, the cursor will still be at the same indentation level which is expected. However, the line in the middle will still have only spaces and nothing else
10:26 it's not such a problem but I don't see much point to keep these spaces either
10:28 DiscordBot2 <Cloud_Keeper> Haha
10:29 <Cloud_Keeper> Your OCD playing up?
10:31 vincent-lg Cloud: OCD? that's an acronym I don't know :D
10:31 gotta run, called for lunch!
10:34 DiscordBot2 <Ashlan> so guys, is there a way to write a help file and have it not show up in the HELP index? I'd like to make something that indexes lore help files to avoid cluttering things up, and I might want to hide the list of emotes
10:39 <Cloud_Keeper> Obsessive compulsive disorder
10:39 <Cloud_Keeper> Edit the help command?
10:41 <Cloud_Keeper> There's nothing magical about it. All that automatic help doc string stuff is just the help command
11:05 vincent-lg Ashlan: sorry, my remark is coming late
11:05 but you could create help topics and just modify their lock
11:05 your usperuser would still see it. Since help topics have locks you could write help just for builders or wizards or whatever
11:05 that's the easiest solution and probably someone already provided it
11:06 hu, are you talking about help topics or command help... if you want to create a command that doesn't show up in help
11:06 just modify it's autohelp class variable
11:06 class ...Cmd(BaseCommand):
11:06 """... your docstring..."
11:06 autohelp = False
11:07 but if it's a help entry, you can modify the lock easily enough
11:07 (I'm trying to remove having to override the help command which is a bit complex and just offer alternatives)
11:07 going to walk the dog!
11:33 I'm back
11:39 Cloud: ha, you have said ADD / ADHD I would have gotten it
11:39 so many acronyms to know :D
11:40 is anyone among you using Vim on a daily basis to code?
11:43 chainsol vincent-lg: not exclusively but yes. :)
11:43 i use vim and atom.
11:44 vincent-lg I think I'm going to try to get the spell checker we talked about yesterday
11:44 I'm not sure I can effectively use it... particularly how it will report spelling errors when I type (probably at the bottom of the window) but it will be better than nothing :D
11:45 chainsol vincent-lg: https://robots.thoughtbot.com/vim-spell-checking
11:45 built in vim spellcheck might be the best solution for you. :D
11:46 vincent-lg chainsol: thanks :)
11:47 chainsol :D i hope that link helps some.
11:49 vincent-lg it does
11:49 but I don't see highlighted words. Dunno how they are shown
11:50 chainsol they're underlined, i don't know if the braille display can show you that.
11:52 vincent-lg ho wow!
11:52 I could just turn on "see attributes in Braille" and now I see the mispelled words... blinking... which is a bit scary :P but will help tremendously
11:52 chainsol it sounds as if you can use ]s to jump to the next mispelled word.
11:53 vincent-lg chainsol: I guess now it will show every kind of attributes the same way. I hope it doesn't become too verbose :P
11:53 wow
11:53 chainsol and...z= to see the options to replace with. is it working?
11:53 vincent-lg I keep on reading this interesting article
11:53 I just stopped at this point
11:57 ptrefall joined #evennia
11:58 ptrefall Hi Griatch, what timezone are you in?
12:00 vincent-lg chainsol: where did you find this information? It doesn't seem to be in the article itself
12:00 the shortcuts to go to correction proposals
12:01 DiscordBot2 <Cloud_Keeper> ptrefall: He's in Sweden
12:01 chainsol vincent-lg http://go2linux.garron.me/linu[…]ll-check-vim-795/
12:01 DiscordBot2 <Cloud_Keeper> Anything we can help you with?
12:05 vincent-lg thanks chainsol
12:07 chainsol: I'm not sure the two articles talk about the same thing
12:07 the first doesn't require to install anything
12:07 chainsol vincent-lg: i noticed that - i think the spellchecker automatically downloaded the dict
12:07 vincent-lg and use :setlocal spell to turn on. The second ask to install something and just :set spell . But perhaps setlocal and set in vim do a similar thing at a different level
12:08 quite likely
12:08 let me see
12:10 ]s ... what is this first symbol... :P I sound dumb today but the change in my Braille table... ha wait
12:10 no it's not }
12:10 ha it's ]
12:10 chainsol what is that called?
12:11 a square bracket?
12:14 vincent-lg wow that works perfectly well
12:15 yeah that's what I would say... right square bracket... but that might not be the right word
12:42 Griatch ptrefall: As said, I'm in Sweden. GMT+2 right now
12:46 DiscordBot2 <Cloud_Keeper> Oh wait, that's Ptrefall the Roguelike Radio guy.
12:49 <LizardLeliel> For setting up a git repository - what should I have in my .gitignore?
12:52 <Cloud_Keeper> Doesn't evennia mygame files automatically come with a gitignore
12:54 <LizardLeliel> let me check
12:56 <LizardLeliel> It does, I guess winscp just doesn't show hidden files (nor do I know how to make it show them)
13:03 vincent-lg yeah Evennia generates a .gitignore with everything inside
13:03 ignoring server/evennia.db3, server/conf/secret_settings.py, all the .pyc and a few other files
13:03 back I am
13:05 DiscordBot2 <LizardLeliel> I hate how rmdir doesn't let you remove aa dir if there's stuff in it
13:05 <LizardLeliel> Its such an inconvience
13:12 <LizardLeliel> And now its all tracked on git! Whoo
13:15 vincent-lg you can use rm -R instead
13:15 rm -R dir will jsut remove the dir even if it yhas files/directories in it
13:15 but if it's tracked in git
13:15 you should do
13:15 git rm -Rf directoryname
13:15 that way it will be both removed from git and your system
13:16 (note that it will not be removed from every file system sharing the same git however, Git will not remove these automatically I think, it's cautious)
13:16 DiscordBot2 <LizardLeliel> ok
13:16 vincent-lg I don't remember if' it's -r or -R
13:16 yeah
13:16 it's lowercase
13:17 git rm -r directoryname
13:18 DiscordBot2 <LizardLeliel> Also, I should be editing this class, instead of only inheriting from this, right? https://cdn.discordapp.com/att[…]94442250/room.PNG
13:20 <LizardLeliel> I just want to make sure I do the right thing from the beginning
13:20 chainsol edit that class or inherit, whichever suits you better
13:20 DiscordBot2 <LizardLeliel> Ok, I'll probably at least edit it to have the default behaviour of return_appearance be changed
13:21 chainsol inheritance is useful for heirarchy - maybe an item typeclass, and an edible typeclass that inherits from the item tpeclass
13:23 DiscordBot2 <LizardLeliel> I'm just afraid of doing what looks intuitive but turns out to be an idea so bad that I'm a bad programmer or something
13:27 <Cloud_Keeper> Don't sweat it Liz
13:27 <Cloud_Keeper> I've restarted a few times
13:28 <Cloud_Keeper> I'll put heaps of effort into an implementation, code myself into a corner then start over
13:28 <Ashlan> nice color scheme liz
13:28 <LizardLeliel> Thank you
13:29 <LizardLeliel> For the code?
13:29 <Cloud_Keeper> Don't feel like you're doing something wrong, or that you'll waste time. Do what's most intuitive for you. You'll learn from it and have code you reference for next time
13:29 <LizardLeliel> ok
13:29 <LizardLeliel> But asking early can save me time
13:29 <Wyrdathru> Pro tip: Everyone's a bad programmer. Some are just not as bad as others!
13:29 <LizardLeliel> And I do know if I have too much freedom, I'll do lazy things
13:29 <Wyrdathru> This shit's hard.
13:29 <LizardLeliel> And I'm more worried about people judging me
13:29 <Wyrdathru> Some people will judge you. There are geek snobs all over.
13:30 <Wyrdathru> Just don't let it bother you.
13:30 <LizardLeliel> Yeah but employers judge too
13:30 <Cloud_Keeper> We all just copy and paste different pieces of code from stack over flow and hope it'll work
13:30 <LizardLeliel> ok
13:30 <Wyrdathru> Any worthwhile employer won't be an issue.
13:30 <Cloud_Keeper> Have a private repo then
13:30 <LizardLeliel> I'm considering it for my MU
13:30 <Cloud_Keeper> Bitbucket had private repos for free
13:31 <Cloud_Keeper> Has*
13:31 <Wyrdathru> A downside to to private repos is that you're not open source enough to qualify for some tools, though.
13:31 <Wyrdathru> But yeah, some people like the idea of closed repos vs open for games.
13:31 <Wyrdathru> Or someone might pick apart your code and twink.
13:31 <LizardLeliel> I'm honestly am a bit worried if someone takes it and uses it for themself
13:31 <LizardLeliel> I know its improbablye
13:31 <LizardLeliel> Improbable
13:31 <Cloud_Keeper> Liz: We're making muds
13:32 <Cloud_Keeper> No one cares what we're doing except us :p
13:32 <LizardLeliel> My imagination can be ambitious
13:32 <LizardLeliel> But its fine in the end, I'm just focusing on working on it for now x)
13:32 <Cloud_Keeper> And your horrible code is insurance that no one will steal it :p
13:32 <LizardLeliel> uhhh
13:33 <Cloud_Keeper> The fact you worry about what your code looks like puts you ahead of most
13:33 <Cloud_Keeper> Just don't let that feeling cripple you.
13:33 vincent-lg Wyrdathru: this is a depressing thought :P
13:33 Cloud: agreed
13:33 DiscordBot2 <Wyrdathru> Why are you afraid of people using your code?
13:34 <Wyrdathru> You're using Evennia's.
13:34 <LizardLeliel> Its not crippling me since I know ultimately that working, complete code is more valuable then good code
13:34 <Wyrdathru> Open source is about giving back, too.
13:34 <LizardLeliel> Because Evennia gave it to me
13:34 <Wyrdathru> I definitely suggest private repos then, if you want to keep it hidden and to yourself.
13:34 <LizardLeliel> But I know I'm just paranoid
13:35 <Cloud_Keeper> Private repos are good when you want to do the stealing ;)
13:35 vincent-lg as I said I never had that issue in my previous game
13:35 DiscordBot2 <Wyrdathru> It's not paranoia. If your code is public, someone will look at it, potentially. Someone will copy it, potentially.
13:35 <Wyrdathru> I don't think this is a bad thing.
13:35 vincent-lg and I run open-source from the beginning, that was 8 years ago
13:35 DiscordBot2 <Wyrdathru> If you don't like the idea of that, keep it private, for sure!
13:35 vincent-lg (well, it wasn't the beginning, but the first projedct was trashed anyway)
13:36 DiscordBot2 <LizardLeliel> Don't you want to quell my paranoia, not make it worst? -_-
13:36 vincent-lg <Wyrdathru>: I agree. Open-source is to share, from the beginning. For games whetehr it's a good thing or bad is up to you. I presonnally believe in opening the code of my game, but it doesn't mean I share every single thing to clone the game either
13:36 DiscordBot2 <Wyrdathru> I'm just being realistic! There's no need to be paranoid.
13:37 vincent-lg I'm over-worried about lots of stuff but having a player "guess" my game from reading the source code has never been one of them. First of all it's pretty impossible without having the database file :P
13:37 I really don't think it should worry you
13:38 DiscordBot2 <LizardLeliel> I'm honestly more worried about what you guys are saying more then what I'm saying -_-
13:38 vincent-lg there are very simple strategies to prevent opening your source code means having all your game open
13:38 DiscordBot2 <LizardLeliel> Can we move off this topic?
13:38 vincent-lg I don't really like global variables...
13:38 but I don't see how I could effectively share the information without reloading the script every time here
13:38 DiscordBot2 <Wyrdathru> MY_QUESTION = "Why not?"
13:39 <Cloud_Keeper> V: the fun of the game isn't from the values of the items. You're game loops should be more robust than that
13:40 <Cloud_Keeper> To be perfectly honest, the game ideas I have in my head, I just want them real. If someone were to steal them and make it quicker than I could I would be happy about it
13:41 <LizardLeliel> Heh
13:42 vincent-lg getting some interests on the game profit wouldn't hurt though :P
13:42 DiscordBot2 <LizardLeliel> I have a lot of pride. I want people to be impressed by what I creat
13:42 chainsol vincent-lg: what are you trying to do?
13:42 DiscordBot2 <LizardLeliel> create
13:42 <LizardLeliel> Also, how do you force all rooms to update?
13:42 chainsol LizardLeliel: People will be impressed by how the game plays - the code doesn't matter.
13:42 vincent-lg chainsol: basically I have different modules
13:42 and they would need to have access to a global script which is not instanciated when the code is loaded
13:42 DiscordBot2 <LizardLeliel> Well, people will be impressed I was able to code it
13:42 chainsol LizardLeliel: As for updating the typeclass of all the rooms, that's what you want to do?
13:43 vincent-lg Evennia's solution is to put a variable in a module, say SCRIPT, and then have a function _load_script that will edit the vvariable globally
13:43 DiscordBot2 <LizardLeliel> Well, just the ones using the stand room typeclass, but that could be useful sometime too
13:43 vincent-lg but with different moduels needing the same variable it doesn't look like a good solution to me...
13:43 chainsol LizardLeliel: When you want to change a typeclass in game, you can use @type
13:43 DiscordBot2 <LizardLeliel> I know that
13:44 chainsol LizardLeliel: There's a method on all typeclasses objects
13:44 DiscordBot2 <LizardLeliel> I need to @update all the games in the room though. the at_creation() initializes some variables that return_appearnce() needs
13:44 vincent-lg you could browse with @py to perform
13:44 chainsol LizardLeliel: swap_typeclass
13:44 DiscordBot2 <LizardLeliel> And I'm pretty sure there's a better way then going to each room and typing @update
13:44 vincent-lg just import the typeclass and browse over all its objects and do whatever you please
13:45 chainsol Grrrr. My webclient doesn't work. T.T
13:46 vincent-lg @py/edit
13:46 from typeclasses.rooms import Room
13:46 for room in Room.objects.all(): # Browsing all rooms
13:46 room.db.whatever = True
13:46 :wq
13:47 chainsol There you have it.
13:47 vincent-lg of course you would need to customize this code to get just one typeclass if you want
13:47 that's just a template
13:47 chainsol vincent-lg coming in strong.
13:47 DiscordBot2 <LizardLeliel> found the doc saying how to do it
13:47 vincent-lg that doesn't solve my issue however
13:47 I'm too generous :P
13:47 chainsol Couldn't you run at_object_creation manually?
13:47 LizardLeliel: Will you share with the class? :D
13:48 vincent-lg LizardLeliel: I gave you the code above
13:48 though I didn't tag you
13:48 your pseudo is long :P and I'm lazy
13:48 chainsol Doesn't discord only highlight on @ anyway?
13:48 @LizardLeliel
13:49 vincent-lg what if I force the script to be a singleton... write the only instance in a class variable... then pull from it each time...
13:49 DiscordBot2 <LizardLeliel> I could run it manually, I meant I didn't want to go through every room in the game and use @update
13:49 <LizardLeliel> Its fine, I got it figured out though
13:49 * vincent-lg sniffles
13:50 * chainsol pats vincent-lg on the back
13:50 DiscordBot2 <LizardLeliel> sorry ;_;
13:50 chainsol It's ok bud, I appreciated the code.
13:50 vincent-lg thank you :P
13:50 well let's try that I don't have a better idea
13:51 DiscordBot2 <Wyrdathru> +1 brownie point.
13:51 chainsol Now, I'm going to fuck with Evennia's webclient code.
13:51 vincent-lg why has it broken on you?
13:51 chainsol I'm using SSL
13:52 So I think I can just tell it to use secure websockets...but let's see.
13:52 vincent-lg you have succeeded in putting Evennia's website behind SSL?
13:52 * vincent-lg jumps up and down
13:52 chainsol Haha, easily, but it's because I forward through apache.
13:53 dev.perfectdisorder.net
13:53 That's behind SSL.
13:53 vincent-lg ho
13:53 I don't use Apache
13:53 and I would rather not to
13:53 chainsol I imagine you can use nginx as well.
13:53 vincent-lg I wonder if I still can put Evennia's website behind SSL without it though. Looks a bit more complicated :D
13:54 chainsol Do you mean using only twisted?
13:54 vincent-lg I just use the web server provided by Evennia
13:54 it avoids me problems with procying
13:54 yeah... I wouldn't mind keeping it active :D
13:54 chainsol Yeah. That's Twisted. You could do so.
13:55 I forward to the Twisted server anyway.
13:55 vincent-lg but perhaps I should just put on Apache and see how you did the forwarding to the website
13:55 chainsol It's actually only three lines in a vhost.
13:55 vincent-lg perhaps it won't be that bad. My last experience with mod_proxy turned into a nightmare+disaster
13:56 chainsol Though, I used Let's Encrypt for the certificate - and told it to force https
13:56 vincent-lg however, with my need for mailing lists, I will probably need to get apache running anyway
13:57 well if it works and was easy to configure
13:57 I might do the same. And I would really appreciate to run through https, to have data between client and server encrypted... including passwords
13:59 DiscordBot2 <LizardLeliel> I need to put object variables into the object's .db variable, don't I?
14:01 vincent-lg LizardLeliel: I'm not sure I'm getting your question, but yeah, you can store object variables in persistent attributes (in .db.whatever)
14:01 DiscordBot2 <LizardLeliel> That's kind of what I'm asking
14:01 <LizardLeliel> Each time I reload, the rooms don't have their colour variables assigned
14:02 vincent-lg ha, that, I can't tell, I don't know how you store the room colors
14:02 but if it's an attribute they should be kept. A persistent attribute, that is
14:03 DiscordBot2 <LizardLeliel> I was doing it by just doing self.name_colour, etc.
14:04 chainsol Oh, you can't store them that way, yes, you have to use db
14:05 vincent-lg yeah
14:05 if you do room.stuff, it will just create a non-persistent attribute
14:05 room.stuff would be equivalent to room.ndb.stuff (non-persistent attribute, lost when the server restarts)
14:05 room.db.stuff would be kept though
14:05 DiscordBot2 <LizardLeliel> You can't store "functions" in db, right?
14:06 vincent-lg wait though there's something intriguing in the excerpt you gave
14:06 DiscordBot2 <LizardLeliel> like room.db.some_event_hook = handler (where handler is a callable)
14:06 <LizardLeliel> Right?
14:06 Griatch It's recommended to use .ndb.stuff over just assigning .stuff. This is because things on .ndb excludes the object from certain automated recaching operations. Also, things on .ndb will be nicely visible with @examine.
14:06 vincent-lg self.name.color (I assume self is a room... name is a str... it's surprising Python let's you create attributes in a str and it's definitely not saved)
14:07 LizardLeliel: you can store functions, as long as they are top-level functions
14:07 DiscordBot2 <LizardLeliel> Named ones?
14:07 vincent-lg (defined right in a module, like utils.delay for instance)
14:07 DiscordBot2 <LizardLeliel> What about in a class?
14:07 chainsol You could use a property for that.
14:08 vincent-lg as far as I know, if it's in a class, just drop it out of a class
14:08 DiscordBot2 <LizardLeliel> ok. But just knowing I can use ones defined i nmodules is helpful.
14:08 chainsol https://github.com/evennia/ain[…]ses/characters.py
14:08 Griatch What vincent-lg said. What is stored is not actually the code of the function but a reference to it. A method will store too. Is there some particular reason you want to store a function/method though? Over just storing what to call?
14:08 vincent-lg othwerise you can't store it. There are exceptions for instance methods but not always clear (to me anyway)
14:08 so I just would recommend to pull the method out of the class and store it as a simple function
14:08 DiscordBot2 <LizardLeliel> I don't have a particular reason, I just wanted to know beforehand in case I do get a particular reason.
14:09 Griatch I often find it easier to store data and not code in the database - store the name of the function, and its arguments, say, and then use that to look up the function and call it.
14:10 That said, we do store functions and methods when it comes to callbacks.
14:10 vincent-lg I got some errors while pickling methods but sometimes there is a way around, like the persistent utils.delay and... tickers? I don't remember. so I go for the easy route :D
14:10 Griatch The tickerhandler in particular.
14:10 DiscordBot2 <LizardLeliel> Writing a class for every kind of medicine would get anonying
14:10 vincent-lg that's why classes are not the only solution :)
14:11 part of design
14:11 Griatch Prototypes would probably be better for types of medicine.
14:11 DiscordBot2 <LizardLeliel> Yes, I could store a reference to what the medicine does.
14:12 <LizardLeliel> It could heal poison, only heal a bit of poison, recover health, apply regeneration, heal health but you get a stat penality, cause the user to scream, heal a bone...
14:12 vincent-lg Griatch: I have a little question on sharing information between modules, if you have the time
14:12 usually global variables are used in Evennia inside of a module
14:13 Griatch vincent-lg: Sorry, just heading out the door, will look at it later. :)
14:13 DiscordBot2 <LizardLeliel> I probably will use prototypes.
14:13 vincent-lg but what if you want to use it from different modules... and the global variable will get its proper content somehwhat afterward?
14:13 Griatch vincent-lg: This is how singleton handlers already work.
14:13 Or Evennia's __init__ module
14:13 vincent-lg to be clear: I have a script and several modules need it. I don't want to call ScriptDB.objects.get() each time, it would slow things done with a lot of queries
14:14 Griatch Make a singleton
14:14 DiscordBot2 <LizardLeliel> But thanks for having me, Griatch
14:14 Griatch having you?
14:14 vincent-lg okay, I'll look at it
14:14 DiscordBot2 <LizardLeliel> Giving me help
14:15 vincent-lg but if I import from the top of the file and the script hasn't been loaded, modifying the global variable won't modify it in a different module I expect
14:15 hu... I'm not being clear
14:15 DiscordBot2 <LizardLeliel> Also, I did this with my game already, I have a feeling you'll appreciate seeing it: https://cdn.discordapp.com/att[…]Colour_Design.PNG
14:15 Griatch Ok, bye for now
14:15 DiscordBot2 <LizardLeliel> oh ok
14:15 vincent-lg no worries though, I'll wait and try different ways
14:21 DiscordBot2 <LizardLeliel> I will probably get you guys to look over my code and make suggestions at some point though, the example griatch linked used scripts and stuff and I didn't really expect it.
14:35 <Ashlan> so guys, I have a character who's joined a channel but getting it to unmute is being tricky.  channel.connect(caller) doesn't cause an error but the channel doesn't unmute
14:36 <Ashlan> channel = ChannelDB.objects.get_channel("Corinth")                 channel.connect(caller)
14:43 <Ashlan> channel.unmute(caller) similarly doesn't cause an error but it doesn't unmute the channel eitehr
14:43 chainsol Hmmm.
14:45 DiscordBot2 <Ashlan> actually, correction
14:45 <Ashlan> one of the two is working but when I type in channels (to bring up the list) it says the character isn't subbed to the channel
14:46 <Ashlan> maybe I just need to manipulate a list object somewhere
15:00 PM joined #evennia
15:04 DiscordBot2 <LizardLeliel> Ok, why are there some rooms where I can't use look?
15:05 <Ashlan> I dunno but their room type must block that command or not return things
15:05 <Ashlan> I made room types that don't show other people or objects
15:05 <LizardLeliel> Oh, "l" works
15:05 <LizardLeliel> Like, L
15:06 <LizardLeliel> Does "L" have to be free in order for "look" to work?
15:06 <Ashlan> also, this code connects a character to a channel but it shows up as unconnected in the channel list.  If I try to addcom/delcom the aliases start causing obsucre errors... still not sure how to add someone to a channel without causing any problems
15:06 <Ashlan> channel = find_channel(caller, "Corinth")                 caller.msg(channel)                 channel.connect(caller)
15:06 <Ashlan> maybe, it should bring up a list of possible commands if l does more than one thing
15:06 <LizardLeliel> wait
15:06 <LizardLeliel> Now look works
15:06 <LizardLeliel> Oh wait
15:07 <LizardLeliel> Pressing l made me use the exit
15:07 chainsol LizardLeliel: When you set an alias or a name of a comamnd to the same thing, the higher priority one overrides the lower.
15:07 DiscordBot2 <LizardLeliel> But just typing 'look' gives me this message: "Command 'look here' is not available. Type "help" for help."
15:07 chainsol They're considered to be the same command.
15:07 DiscordBot2 <LizardLeliel> Ok, so because l is an alias of an exit and l is an alias of look, I can't use look?
15:07 chainsol So that means if you have a command "look" with an alias "l" and a command "lump" with and alias "l", you can't use look anymore.
15:08 Right.
15:08 DiscordBot2 <LizardLeliel> ok
15:08 <LizardLeliel> How do I remove aliases from exits?
15:09 chainsol @name whatever_exit=whatever
15:09 DiscordBot2 <LizardLeliel> I'm guessing I have to remove all the aliases and reassign the
15:09 chainsol I think.
15:09 DiscordBot2 <LizardLeliel> ok.
15:09 <LizardLeliel> Also, the name of the exit will always be a command who you can use to use the exit, right?
15:10 chainsol Right, yes.
15:10 DiscordBot2 <LizardLeliel> Ok. I want to my exits to display as something like (U)nder(g)round where ug can be used to use the exit, as well as underground.
15:11 chainsol Hmmmm.
15:11 You'll have to mess with the exit typeclass.
15:11 DiscordBot2 <LizardLeliel> Yeah
15:11 chainsol get_display_name is the hook you want, I think.
15:11 DiscordBot2 <LizardLeliel> But at the same time
15:11 <Ashlan> does anyone know where the channel object's code is? That might help me sort my problem out
15:12 <LizardLeliel> I guess it doesn't hurt for (U)nder(g)round to be used as an command for using the exit
15:12 chainsol Ashlan: I'm sorry, I didn't forget about you, I just can't figure out why it's not working.
15:12 Ashlan: https://github.com/evennia/eve[…]ia/comms/comms.py
15:13 I'm not sure how much that will help, of course.
15:13 DiscordBot2 <LizardLeliel> But making a typeclass to make (U)nder(g)round be the display name means that I need to give the exit object some information about what has to be shown. I figured the best appraoch would be to just make the name itself not be the command so I can write @dig place=(U)nder(g)round;underground;ug, etc.
15:13 <Ashlan> thx
15:13 <LizardLeliel> But at that point, why am I goign out of my way to make (u)nder(g)round not a command?
15:14 <LizardLeliel> Do you think its fine if I just keep the notation as a command?
15:14 chainsol Very true, you don't really have to worry about that part. Yes, I think that's fine.
15:15 PM BlauFeuer: It might be odd if you didn't, as some bots might try using (u)nder(g)round as the exit.
15:16 chainsol True, they won't know to use an alias.
15:16 DiscordBot2 <Ashlan> these channels are really hard to figure out, I made a new test character and it joined a channel by default that isn't in settings.py as a default channel, but didn't join one of the settings.py default channels
15:17 PM BlauFeuer: Several clients have built-in mappers, too.
15:17 DiscordBot2 <Ashlan> apparently default channel joining is connected to the player object somehow since another account does it differently
15:18 PM BlauFeuer: Hmm, maybe the change only affects new accounts.
15:19 DiscordBot2 <Ashlan> has_sub = self.subscriptions.has(subscriber)         if not has_sub and hasattr(subscriber, "player"):             # it's common to send an Object when we             # by default only allow Players to subscribe.             has_sub = self.subscriptions.has(subscriber.player)
15:20 <Ashlan> maybe it's related to me using a multisession mode with characters and this code may be referencing players
15:20 <Ashlan> and that's why they can join the channel and use it but the command won't update the list accordingly
15:31 evenniacode [forum] Ashlan posted 'Are channel objects and commands attaching to players and not characters (in a multi-session mode with characters), if so how would I make channels work with characters?' https://groups.google.com/d/ms[…]Pxww/0jqTGaJWCQAJ

← Previous day | Index | Server Index | Channel Index | Today | Atom Feed | Search | Google Search | Plain-Text | plain, newest first

Evennia