Dr Brain wrote: | ||||
Because no one bothered to write one.
Because playing doesn't mean what one might think. If I recall correctly, playing in this context means game clients capable of entering the game. I think chatnet clients and fake players don't count toward that number. |
Cheese wrote: |
also, looking through the src, i cant seem to find how asss handles setting doors... aka, it doesnt use cfg DoorMode, theres no game->door(250);, etc or did i miss something...? |
Hakaku wrote: |
- The SHIPCHANGE and FREQCHANGE callbacks should return the player's previous ship/freq rather than their current ship/freq. (or both) |
Hakaku wrote: |
- Periodic points should not send the periodic reward packet to the player/frequency if the reward returns 0. (here) |
Hakaku wrote: |
- Antiwarp should be automatically disabled while a player is in safe (here) |
Hakaku wrote: |
- Add Snrrrub's patches (e.g. sendto) |
Hakaku wrote: |
- Ball game win callback (like this) |
Hakaku wrote: |
- A better way to be able to add stuff to the client settings list (i.e. esc+c). |
Hakaku wrote: |
- add ?packetloss, ?laghist |
Hakaku wrote: |
- Imo, remove the "-f" from setship and setfreq commands (i.e. don't respect freqmanager by default). |
Hakaku wrote: |
- Disallow jackpot from being negative using the ?setjackpot command. |
Hakaku wrote: |
- Make zone recycling (?shutdown -r) a separate command (if you accidentally typo, then you've just killed the whole zone) |
Hakaku wrote: |
- Make the arena numbering thing an option (I'd like to be able to use arenas appended with numbers, that aren't necessarily related. i.e. arena2 is [optionally] unrelated to arena) |
Hakaku wrote: |
- Fix the default directory servers so that only "sscentral.sscuservers.net" and "ssdir.playsubspace.com" appear (all others are dead) |
Hakaku wrote: |
I would also like to see a lot of messages cleaned up, especially in playercmd.c (Words without proper capitalization irks me just as much as you dislike ppl writing as3) |
Hakaku wrote: |
Cheating-wise, I would suggest that the server keep track of player's timer drift (and spec them). Higher than 25 or lower than -25 (in *einfo) is an indicator that a player is either of three: 1) cheating, 2) lagging too horribly to play anyways, 3) in an odd time zone (which shouldn't happen) |
Cheese, in the topic he linked to wrote: |
if i recall, mervbot provided BOTH. |
Dr Brain wrote: |
Not sure what you mean here. |
Dr Brain wrote: |
I think they should go through the freqman by default. |
Dr Brain wrote: |
If you make a list then I'll fix them all. I can give it a go myself if you don't have time. |
Initrd.gz wrote: |
Perhaps a FOR_EACH_PLAYER_IN_ARENA macro? |
Hakaku wrote: |
As it is, it's not exactly possible to add custom settings within the in-game command list (server.set I think?). In other words, rather than having to retrieve the file (e.g. arena.conf), modify it, then place it back all the time (whether in-game or via ftp), it is quite a hassle for something that could take a few seconds if it were recognized as a valid setting for esc+c/getsettings/quickfix.
Basically, what I'd like to eventually see is a more dynamic approach for being able to customize the settings list provided in-game, rather than having as an only option to modify clientset.c/def. |
Hakaku wrote: |
Any specific reason for requiring them in the freqman? I would assume moderators responsible enough to know what frequency to place a player on, or what ship to put a player in; but it's honestly really redundant if they can use the '-f' feature anyways. The other advantage is that it provides backwards-compatibility for all bots/plugins (think of people who don't know how to modify bot plugins). |
Hakaku wrote: |
If you really aren't going to change it, I would say at least change it so that it detects if the player using the command is a bot or not. |
Hakaku wrote: |
I made a lot of changes for Deva, most of them involve simple capitalization at the start of sentences, and for titles such as "arena owner" is capitalized as "Arena Owner". I also rendered a few of them more subgame-like, so that ?jackpot doesn't return "jackpot: 0", but "Current Jackpot: 0". I don't care if you don't make it subgame-ish, but at least capitalize some of it all. |
Hakaku wrote: |
Also, the ?uptime command should check if the words need to be pluralized (so that it doesn't say "uptime: 1 days 1 hours 1 minutes...") Oh, and the default ?lag command is ugly :/ |
Hakaku wrote: |
As MTN pointed out to me, billing-wise it's possible for ASSS to rewrite the commands locally so that they're never sent to the biller. This poses a problem since not only can you disable biller commands, but you can easily eaves drop onto what biller operators are doing. |
Hakaku wrote: |
The way scores are stored in ASSS seems to be flawed, I've seen users have their scores reset for basically no reason whatsoever. And it's definitely not ?scorereset (nor biller score resets) as this happens to myself as well, and also seems to happen if you use a chat client to enter the zone. I haven't really had time to look at how scores work, but I suspect somewhere ASSS is resetting the score when a player logs in. |
Hakaku wrote: |
In regards to ?obscene, it would be nice if you could censor a single word, not every single occurence of that string. That is, if I add "nig" to the obscene list, I don't want "night" to be censored as well. Perhaps make it more like:
apple <- Only the word apple is censored apple* <- The word apple, along with any word starting with apple is censored. *apple <- The word apple, along with any word ending with apple is censored. app*le <- All words starting with app-, and ending with -le are censored. etc. |
JoWie wrote: |
A constant for that fuschia color of yours |
JoWie wrote: |
Last time I used ASSS the object module was buggy with a lot of objects (~800). Players entering would simply not get the updated position states (on/off states were fine if I recall correctly, which is a different packet) |
JoWie wrote: |
Smongs objects module patch. I can't find a link but i have it laying around somewhere. This was from 2006 tho, it probably is already in the core |
JoWie wrote: |
Better documentation on locking & threading in ASSS. |
JoWie wrote: |
points_goal: Setting to disable the soccer game. In other words, you score, you get points, nothing more, no game. |
JoWie wrote: |
Perhaps a Callback / Interface so that something like smong's fm_shiplimits doesnt have to replace the normal freq manager. http://www.toktok.sscentral.com/ss-asss.html |
Quote: |
points_goal: Setting to disable the soccer game. In other words, you score, you get points, nothing more, no game. |
Quote: | ||
|
L.C. wrote: |
it be possible to create some sort of "Sentences" file? I wouldn't mind trying to rewrite/grammar-fix/clone Subgame's messages. |
Quote: |
Hakaku wrote: Any specific reason for requiring them in the freqman? I would assume moderators responsible enough to know what frequency to place a player on, or what ship to put a player in; but it's honestly really redundant if they can use the '-f' feature anyways. The other advantage is that it provides backwards-compatibility for all bots/plugins (think of people who don't know how to modify bot plugins). It's more for safety than anything. I think mods typically use it to even teams, rather than to break team/ship limits. Hakaku wrote: If you really aren't going to change it, I would say at least change it so that it detects if the player using the command is a bot or not. Just because I'm not going to change the default behavior doesn't mean I can't add a global.conf option to -f by default. If you think it's useful to your zone, then I'll add it. I just won't change the default behavior for other zones. I can add a config option for bots too, if desired. |
Quote: |
JoWie wrote: Last time I used ASSS the object module was buggy with a lot of objects (~800). Players entering would simply not get the updated position states (on/off states were fine if I recall correctly, which is a different packet) The object module is a scary, confusing place. I don't know that I'm up to debugging it without further details, such as backtraces, or known problem conditions. |
Quote: |
JoWie wrote: Smongs objects module patch. I can't find a link but i have it laying around somewhere. This was from 2006 tho, it probably is already in the core If this is the one I'm thinking of, then it was already merged. |
Hakaku wrote: |
[..] Unfortunately though, the only client that natively supports UTF-8 is Starlight, |
Cheese wrote: |
i would rather have the python modules made into c modules, especially the core ones, like the flag game modules |
Code: Show/Hide clientset = get_interface(I_CLIENTSET) |
Hakaku wrote: |
As it is, it's not exactly possible to add custom settings within the in-game command list (server.set I think?). In other words, rather than having to retrieve the file (e.g. arena.conf), modify it, then place it back all the time (whether in-game or via ftp), it is quite a hassle for something that could take a few seconds if it were recognized as a valid setting for esc+c/getsettings/quickfix. |
Initrd.gz wrote: |
Could you make more modules python compatible? (ex. clientset) |
Goldeye wrote: |
Sometimes this is as easy as adding pyint comments to the interface definition. |
Initrd.gz wrote: |
[..]
Yes, but so is adding "#include <limits.h>" or whatever it is in that one module. |
Goldeye wrote: |
[..]
I don't quite follow. What do you mean? |
Code: Show/Hide void Pppk(Player *p, byte *pkt, int len) { ... if (pos->x == -1 && pos->y == -1) { /* position sent after death, before respawn. these aren't * really useful for anything except making sure the server * knows the client hasn't dropped, so just ignore them. */ return; } ... } |
Code: Show/Hide void Pppk(Player *p, byte *pkt, int len) { ... if (pos->x == -1 && pos->y == -1) { p->flags.waiting_for_respawn = 1; return; } else { p->flags.waiting_for_respawn = 0; } ... } |
Code: Show/Hide int (*Contains)(Region *rgn, int x, int y); |
Code: Show/Hide int (*ContainsPlayer)(Region *rgn, Player *p); // map->Contains(region, p->position.x >> 4, p->position.y >> 4) |
JoWie wrote: |
Speaking of regions.
in the Imapdata interface you have the function ... a simple ... could be useful |
Code: Show/Hide Thread 1 (Thread 0xb7d496b0 (LWP 29174)): #0 0xb7dde9c1 in waitpid () from /lib/libc.so.6 No symbol table info available. #1 0xb7d81b7b in ?? () from /lib/libc.so.6 No symbol table info available. #2 0xb7d81f22 in system () from /lib/libc.so.6 No symbol table info available. #3 0xb7ed182d in system () from /lib/libpthread.so.0 No symbol table info available. #4 0x0809bc9c in handle_sigsegv (sig=11) at core/unixsignal.c:93 cmd = "/bin/sh bin/backtrace bin/asss 29174", '\0' <repeats 91 times> #5 <signal handler called> No symbol table info available. #6 0x0806c9e1 in GetInfo (bw=0x0, buf=0xbf8b9fa2 "", buflen=32) at core/bw_default.c:127 No locals. #7 0x080601ca in GetClientStats (p=0xb2d015c0, stats=0xbf8b9f6c) at core/net.c:2648 conn = (ConnData *) 0xb2d01844 #8 0xb3a905d6 in appendInfo (p=0xb2d015c0) at cnc/nomysql.c:84 f = (FILE *) 0xb2d028f8 fname = 0x80c9be3 "visitors.txt" type = 0xb7db6851 "\201ã?\f" fullpath = "data/visitors.txt\000??\004\a???(???\213?\234z??\037\205?Qd\002\n\b\000\000\000" s = {s2cn = 0, c2sn = 0, pktsent = 0, pktrecvd = 0, bytesent = 0, byterecvd = 0, pktdropped = 0, unused1 = 0, encname = 0x809dee3 "none", ipaddr = "0.0.0.0\000\000\000\000\000\000\000\000", port = 0, bwlimitinfo = '\0' <repeats 31 times>, reserved = "\000\000\004\000\000\000\004\000\000\000WIsy?(?\000\000\000\000:seesysoplogall\000?????\213?\b\000\000\000\030?\213?\206\205?\020\000?\b\000\000\000\020\000???????\v\b?\213???\004\bH?\213?!?\004\b?(?\000\000\000\000\b\000\000\000\020\000?\034\000\000\000\020\000?X?\213???\v\b?(???\v\bX?\213?i?\004\b\b\000\000\000???x?\213?!?\004\b\001\000\000\000?q\000\000?(BJ"} #9 0xb3a90b07 in PlayerAction (p=0xb2d015c0, action=0, arena=0x0) at cnc/nomysql.c:209 No locals. #10 0x08057abd in process_player_states (v=0x0) at core/core.c:342 _a_lst = {start = 0xb2d01548, end = 0xb2d028a8} _a_l = (Link *) 0xb2d028a8 player = (Player *) 0xb2d015c0 d = (pdata *) 0xb2d01a04 oldstatus = 6 ns = 7 oldstatus = 6 requested_ship = 135225440 player = (Player *) 0xb2d015c0 link = (Link *) 0xb2d004d8 actions = {start = 0xb2d004d8, end = 0xb2d004d8} #11 0x0805a0dc in RunLoop () at core/mainloop.c:63 ret = 1 td = (TimerData *) 0x80dacc8 l = (Link *) 0x80dace8 gtc = 30929204 #12 0x0804cf9c in main (argc=1, argv=0xbf8ba254) at main/main.c:293 code = -1081368120 #0 0xb7dde9c1 in waitpid () from /lib/libc.so.6 The program is running. Quit anyway (and detach it)? (y or n) [answered Y; input not from terminal] |
Initrd.gz wrote: |
BTW, how are you going to add support for security.so? |
Dr Brain wrote: |
It was changed at some point to need to start with either /?| or /|?, I forget which, since I rarely use that functionality. |
Hakaku wrote: |
As MTN pointed out to me, billing-wise it's possible for ASSS to rewrite the commands locally so that they're never sent to the biller. This poses a problem since not only can you disable biller commands, but you can easily eaves drop onto what biller operators are doing. |
MikeTheNose wrote: |
[..]
Issue is resolved. |
Cheese wrote: |
would it be possible to use the util.c file as a shim for functions?
like every time the core is recompiled, adding the current functions in util.c into the core, so that the file doesnt need to be manually added to every project? |
Animate Dreams wrote: |
If I understand what sleeping is for a thread, it lets the thread pause for either a set amount of time or until it gets awoken |