Agatha | "plus you don't call non-API functions from a plugin" <- speaking of . . . I want to call non-API functions from a plugin. | 00:05 |
---|---|---|
Agatha | Some entry points I'm looking at are `getDirectMessageBuffer()`,` nboPackUByte(...)` (etc.), `directMessage(...)`, and the `ShotManager` object. | 00:05 |
Agatha | This actually works—and works correctly—under Linux, but fails to link under Windows. | 00:05 |
blast007 | Agatha: if I set _shotRange from the command line, it does affect the laser length. | 00:07 |
blast007 | yeah, Windows is doing it right | 00:08 |
blast007 | on Linux we need to fix it | 00:08 |
blast007 | GCC has a 'visibility' feature we need to make use of so that we don't export private symbols | 00:08 |
blast007 | so if you need some other plugin-accessible feature, you need to extend the API | 00:10 |
blast007 | not sure what you're trying to do though | 00:10 |
Agatha | blast007, "if I set _shotRange from the command line, it does affect the laser length" <- Yes; in the latest version of the plugin, I compensate for this, assuming "/reset _reloadTime" has been called. | 00:19 |
Agatha | "yeah, Windows is doing it right[; ]on Linux we need to fix it" <- It makes perfect sense to me that the private symbols would not be easily visible. However, the current API has gaps and there are various deficiencies in the way certain flags are implemented that encourage . . . hacky workarounds. And therefore, this may not be the "right thing", but it's also the only way to make progress short of altering the API myself. | 00:19 |
Agatha | And yes, I would be willing to alter some aspects of the API—but this is a bigger deal, and more error-prone, than I'd like. I would rather not do that if there's a way to just see the symbols. It should be theoretically possible. | 00:19 |
Agatha | "not sure what you're trying to do" <- I have two things I'm trying to do. | 00:19 |
Agatha | The first is to tell the client to delete a shot they have just fired. See this block in the plugin for the context, explanation, and code: https://github.com/agatha2/Whacky-Weapons/blob/916a6a0a4244a8ef8cdd76e37837ba9429e2f5db/whacky_weapons.cpp#L855 | 00:19 |
Agatha | The second is because I think I have discovered a way to get SWs of varying sizes to work, but it requires adjusting stuff in the `ShotManager`. | 00:19 |
Agatha | (The first thing is the most immediately important.) | 00:22 |
blast007 | I'm unclear what issue you're seeing with setting _shotRange... | 00:28 |
Agatha | blast007 The issue is: (1) put "-set _shotSpeed 140" in a server's ".conf" file, (2) start the server and join as a client, (3) observe that various shot parameters are unexpected until (4) "/reset _reloadtime" is called by an admin on the server. | 00:31 |
blast007 | which shot parameters? | 00:32 |
blast007 | are there a set of variable values I can set to see this? | 00:32 |
SpringTank | i think i know what agatha is talking about, though it's a vague memory from a long time ago so I might be wrong. agatha, try the same thing on linux and see if it works or not. could be a weird thing with bzfs running on windows. | 00:43 |
Agatha | I noticed it on the laser distance calculation above; the shot range would get clipped, as is described in the docs. The only variable being set in the ".conf" I believe was "-set _shotSpeed 140". However, since I had had this issue, I updated the laser distance calculation as blast007 taught me. Since doing that, I'm having trouble reproducing the issue (meaning most-likely it was related to the error in the laser distance calculation, and therefore that | 00:47 |
Agatha | there is no problem). | 00:47 |
SpringTank | hmmmmmmmmmmm, i had something similar with sets in my config before. try putting some of the sets in the map file itself. | 00:50 |
SpringTank | bzflag doesn't seem to always pars some file properly especially if you used wordpad or notepad because those two, especially wordpad, like to use their own special ascii codes for stuff like new lines, etc. | 00:52 |
SpringTank | well, not special actually. they are standard ascii codes it just uses more of them | 00:52 |
SpringTank | for formatting | 00:52 |
blast007 | you shouldn't be using a rich text editor for plain text files | 00:53 |
Agatha | I use Notepad++, like a normal human being :3 | 00:53 |
the_map | I use a butterfly | 00:53 |
SpringTank | nano | 00:53 |
Agatha | @the_map I tried butterflies, but I couldn't get a very good WPM | 00:54 |
BZNotify | Agatha: Error: "the_map" is not a valid command. | 00:54 |
blast007 | heh | 00:55 |
SpringTank | lol | 00:55 |
allejo | can teleporters only have names without spaces? | 03:04 |
allejo | read through the man page, seems like all names use underscores instead of spaces | 03:08 |
*** I_Died_Once <I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has quit IRC (Ping timeout: 272 seconds) | 03:09 | |
blast007 | might be a limit of links? | 03:10 |
blast007 | hmm, no, I guess that could *technically* support spaces | 03:10 |
allejo | yea, when i have a map with teleporters with spaces in their name, bzfs doesn't link them correctly | 03:11 |
allejo | so wonder if that's a limitation or if there's a way to escape that | 03:11 |
blast007 | I don't see any special parsing for quotes in CustomLink.cxx, so it probably will not work with spaces | 03:12 |
allejo | I don't see any special parsing for `matref` and `material` names either. i wonder if that supports spaces | 03:15 |
allejo | looks like materials supports spaces just fine | 03:19 |
allejo | or... wait | 03:19 |
allejo | nope, doesn't support spaces | 03:20 |
allejo | I definited a material with "Grass Texture" as the name and used a matref of "Grass Blue" and it worked | 03:20 |
allejo | so it stops caring at the first space | 03:20 |
blast007 | yeah, that was my guess how this works | 03:20 |
blast007 | std::istream must read based on space delimited text | 03:21 |
allejo | makes sense | 03:21 |
allejo | mkay, i'll auto replace spaces with underscores in my code | 03:22 |
the_map | I assume you know what you're doing, but I'm concerned you're putting spaces in names in the first place | 03:24 |
allejo | damn. "the map" brings up a good point. wait. the_map* | 03:25 |
the_map | I used to be "the map" years ago, but that space bugged me. I think joining IRC was what finally made me change to an underscore | 03:26 |
allejo | lol | 03:29 |
the_map | I actually like the-map better as a nick, but I don't like dashes as valid token characters so I don't use that | 03:34 |
*** Sgeo <Sgeo!~Sgeo@user/sgeo> has quit IRC (Read error: Connection reset by peer) | 07:41 | |
*** I_Died_Once <I_Died_Once!~I_Died_On@c-73-184-170-223.hsd1.ga.comcast.net> has joined #bzflag | 09:23 | |
blast007 | the linker issue with 64-bit Windows build was an easy fix. msvcrt was on some ignore list. | 11:12 |
blast007 | there's still the 400+ warnings that need fixing though | 11:12 |
*** Sgeo <Sgeo!~Sgeo@user/sgeo> has joined #bzflag | 13:41 | |
*** r0b0 <r0b0!~r0b0@96.44.188.218> has joined #bzflag | 15:23 | |
*** r0b0 <r0b0!~r0b0@96.44.188.218> has quit IRC (Ping timeout: 246 seconds) | 19:43 | |
*** r0b0 <r0b0!~r0b0@23.226.129.162> has joined #bzflag | 19:47 | |
*** Gollum <Gollum!~Gollum@131.93.56.40> has joined #bzflag | 19:52 | |
Agatha | My plugin seems to be crashing when run on SpringTank's server. I'm trying to capture a debug trace. Anyone to join my test server? (And tell me why/if you get kicked?) | 20:24 |
Gollum | which server is it ag | 20:29 |
Gollum | Hey Blast | 20:34 |
Gollum | I have a question about observers | 20:34 |
SpringTank | stupidnet.duckdns.org:5155 | 20:35 |
Agatha | Errr I'm running my tests on laserlady.freemyip.com:5154, but yes, SpringTank's test server is running it too (but might not be running right now) | 20:38 |
blast007 | Gollum: k | 20:51 |
Gollum | is there a way... | 20:51 |
Gollum | now hear me out | 20:51 |
Gollum | is there a way to when u are obs. To see the other persons UI. | 20:51 |
Gollum | instead of just ur own but watching them | 20:51 |
blast007 | you mean a player UI? | 20:52 |
Gollum | For example. Someone new joins Ducati and wants to get into it. And u explain how radar should look. Instead u can just say observe me | 20:52 |
Gollum | the players display settings | 20:52 |
Gollum | the HUD | 20:52 |
Gollum | radar, etc. | 20:52 |
blast007 | if you're asking if we can build a screen-sharing feature into BZFlag, then no, that won't happen | 20:53 |
blast007 | is there something wrong with existing screen sharing applications? | 20:53 |
Gollum | This is harder to explain than I thought | 20:53 |
Gollum | So you have your bz settings, I have mine | 20:53 |
Gollum | nyour radar is black in background mine is see thru | 20:54 |
Gollum | but if I go obs, and swap to you, I see bz as you have it set on ur pc | 20:54 |
blast007 | no | 20:54 |
Gollum | not possible? | 20:54 |
blast007 | oh it's possible, but it won't happen :) | 20:54 |
Gollum | darn haha | 20:54 |
Gollum | I only thought of it cause someone asked me earlier how to set radar, and I was like "I wish u could see" | 20:55 |
blast007 | that seems like a VEEEERY limited usage for such a large amount of work | 20:55 |
blast007 | just take a screenshot | 20:55 |
blast007 | or use chat | 20:56 |
SpringTank | or copy your client config | 20:57 |
SpringTank | post it on pastbin or smth | 20:58 |
blast007 | I'd like if people wouldn't do that since sometimes people forget to remove their password :P | 21:01 |
*** Gollum <Gollum!~Gollum@131.93.56.40> has quit IRC (Quit: Client closed) | 21:11 | |
Agatha | Any potential problems with calling `bz_kickUser(...)` inside a `bz_ePlayerJoinEvent(...)`? I try to send a message and then kick, but people aren't receiving the message always. | 21:15 |
Agatha | Ehh I should probably just `bz_kickUser(...)` only. | 21:17 |
blast007 | can you just reject the user instead of kicking them? | 21:20 |
blast007 | https://www.bzflag.org/documentation/developer/bzfs_api/events/bz_eallowplayer/ | 21:21 |
Optic_Delusion | You gotta use the { correct brackets in your kick message } | 21:22 |
blast007 | Optic_Delusion: what do you mean? | 21:23 |
*** Gollum <Gollum!~Gollum@131.93.56.40> has joined #bzflag | 21:23 | |
Optic_Delusion | the message is required to be in {} brackets | 21:24 |
Gollum | optiic u still around this joint? | 21:24 |
Optic_Delusion | never left, but i was somewhat inactive last year.... back now | 21:24 |
*** Sgeo_ <Sgeo_!~Sgeo@ool-18b9875e.dyn.optonline.net> has joined #bzflag | 21:24 | |
blast007 | Optic_Delusion: what does that mean? | 21:25 |
Gollum | I know u dont leave, I just do haha | 21:25 |
blast007 | the kick message needs to be in quotes, not brackets | 21:25 |
Optic_Delusion | ah, my bad | 21:26 |
blast007 | it's probably just a bad idea to kick a player in the join event | 21:26 |
Gollum | [kick "Gollum"] | 21:26 |
SpringTank | I think she wants to send them a server message first? | 21:26 |
Optic_Delusion | only need quotes if there's a space in the message? | 21:26 |
SpringTank | I would just send the server message, small delay, then kick/reject | 21:26 |
blast007 | what are we kicking the player for again? | 21:26 |
SpringTank | older clients | 21:27 |
blast007 | why? | 21:27 |
SpringTank | agatha is relying on a bug fix for one of her plugins I think | 21:27 |
Optic_Delusion | i do it by player slot. /kick #1 "some unknown reason" | 21:27 |
blast007 | the "fix" that was linked to me was in the *server*, not the client | 21:27 |
SpringTank | right, that's what I thought... | 21:27 |
blast007 | so just stop kicking players for no reason and that'll fix that crash :P | 21:28 |
SpringTank | but that function is still in the plugin | 21:28 |
SpringTank | ^ | 21:28 |
*** Sgeo <Sgeo!~Sgeo@user/sgeo> has quit IRC (Ping timeout: 272 seconds) | 21:28 | |
Gollum | RN with the smaller base of players, removing ppl for older versions is going to just refrain the map from getting play | 21:28 |
Agatha | blast is correct that the fix mostly affects the server, but I am debugging this feature just in case it becomes useful later. I will disable it later for this plugin. | 21:28 |
Gollum | I know I went off of an old version for years | 21:29 |
blast007 | nah, just remove the feature | 21:29 |
Gollum | and if I was rando kicked, I wouldnt think "my client" | 21:29 |
blast007 | it's useless | 21:29 |
Agatha | The crash is apparently a different issue. And if later versions change the client, it won't necessarily be useless, yes? | 21:30 |
blast007 | we try our best to specifically *avoid* any changes that affect the client, even if it's fixing a bug | 21:30 |
blast007 | we try to keep client behavior the same across the same major version | 21:31 |
Optic_Delusion | these {} brackets work for the message too... | 21:31 |
Optic_Delusion | just tested it | 21:31 |
SpringTank | that sounds pretty standard | 21:31 |
blast007 | Optic_Delusion: give more context | 21:31 |
Agatha | blast007, understandable. But still. | 21:31 |
blast007 | but nothing | 21:32 |
blast007 | it's not your plugin's job to get people to upgrade | 21:32 |
Optic_Delusion | did. /kick #2 {some unknown reason}. and they reported seeing the reson | 21:32 |
blast007 | we likely won't have any further 2.4 releases unless some major probje is found | 21:32 |
blast007 | Optic_Delusion: we're talking about the API, not the kick command | 21:33 |
Optic_Delusion | i've always used brakets there, not quotes | 21:33 |
blast007 | the kick command doesn't need brackets or quotes, afaik, except for the name | 21:33 |
Optic_Delusion | oh, would you like to shoot me now, or can it wait until later? | 21:33 |
blast007 | so this should be fine as well: /kick "some user" bla blah blah blah | 21:33 |
allejo | you only need quotes for callsigns with spaces | 21:34 |
allejo | for the /kick command | 21:34 |
Gollum | so for Gollum you wouldnt need quotes? | 21:35 |
allejo | correct | 21:35 |
Agatha | Is there a way for the plugin to check the version of the server it is being loaded upon? | 21:36 |
Gollum | im not quote worthy :( | 21:36 |
SpringTank | agatha, does that matter? have the minimum server version in the readme ;) | 21:37 |
SpringTank | it should be possible though. | 21:37 |
Agatha | I like computers to do checks for me, because I'm daft enough to forget them if left to my own devices. | 21:38 |
allejo | https://www.bzflag.org/documentation/developer/bzfs_api/functions/bz_getserverversion/ | 21:38 |
allejo | but i think that's proto only | 21:38 |
blast007 | that's not the actual version number | 21:38 |
allejo | not a minor version | 21:38 |
blast007 | why do you need that? | 21:39 |
*** BulletCatcher <BulletCatcher!~bc@user/bulletcatcher> has quit IRC (Remote host closed the connection) | 21:43 | |
Agatha | Yeah need the minor version. I couldn't find if it was exposed anywhere. I disagree that a client check isn't useful for future-proofing, and I give up on the server check for now (which doesn't matter super a lot; it just would have been nice). | 21:47 |
*** BulletCatcher <BulletCatcher!~bc@user/bulletcatcher> has joined #bzflag | 21:51 | |
*** r0b0 <r0b0!~r0b0@23.226.129.162> has quit IRC (Quit: Client closed) | 22:16 | |
*** Sgeo_ <Sgeo_!~Sgeo@ool-18b9875e.dyn.optonline.net> has quit IRC (Quit: Leaving) | 22:59 | |
*** Sgeo <Sgeo!~Sgeo@user/sgeo> has joined #bzflag | 22:59 | |
*** Gollum <Gollum!~Gollum@131.93.56.40> has quit IRC (Quit: Client closed) | 23:18 | |
SpringTank | We have been playing on my server and so far using the custom sound function hasnt caused any crashes that i can tell. Granted, im only using the sounds that come with bzflag. | 23:35 |
Generated by irclog2html.py 2.17.3.dev0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!