Server Help Forum Index Server Help
Community forums for Subgame, ASSS, and bots
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   StatisticsStatistics   RegisterRegister 
 ProfileProfile   Login to check your private messagesLogin to check your private messages   LoginLogin (SSL) 

Server Help | ASSS Wiki (0) | Shanky.com
Asss 1.5.0
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic Printable version
 View previous topic  Staff Login Post :: Post Billing & Directory Problems  View next topic  
Author Message
Goldeye
Novice


Gender:Gender:Male
Joined: Dec 15 2003
Posts: 57
Offline

PostPosted: Tue May 26, 2009 1:36 am    Post subject: Reply to topic Reply with quote

Initrd.gz wrote:
[..]

Yes, but so is adding "#include <limits.h>" or whatever it is in that one module.


I don't quite follow. What do you mean?
Back to top
View users profile Send private message Add User to Ignore List Send email
Dr Brain
Flip-flopping like a wind surfer


Age:38
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Tue May 26, 2009 6:37 am    Post subject: Reply to topic Reply with quote

There's a bug on some systems that can be fixed by adding a missing limits.h to (I think) admincmd.c. I integrated that change already.

As for release date, I'm hoping to get everything on my list polished off in the next couple of weeks, and release 1.5.0rc1. If that goes smoothly, I'll release 1.5.0 shortly thereafter.
_________________
Hyperspace Owner

Smong> so long as 99% deaths feel lame it will always be hyperspace to me
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Initrd.gz
Seasoned Helper


Joined: Sep 18 2008
Posts: 134
Location: Over there --->
Offline

PostPosted: Tue May 26, 2009 6:49 pm    Post subject: Reply to topic Reply with quote

Goldeye wrote:
[..]



I don't quite follow. What do you mean?
I mean, it would be easier if it was already implemented. It would also imply that it would work.
Back to top
View users profile Send private message Add User to Ignore List AIM Address
Goldeye
Novice


Gender:Gender:Male
Joined: Dec 15 2003
Posts: 57
Offline

PostPosted: Wed May 27, 2009 3:58 am    Post subject: Reply to topic Reply with quote

Hold up; what's "it"?
If "it" is pyint declarations; I doubt most of the people who work with C give a damn about or notice all the py hooks. They write their .h and don't worry about python compatibility. So sure, it would be nice if it was already done; but it's something that the person who wants to utilize it knows more about than the person who originally made it.
Back to top
View users profile Send private message Add User to Ignore List Send email
Bak
?ls -s
0 in


Age:25
Gender:Gender:Male
Joined: Jun 11 2004
Posts: 1826
Location: USA
Offline

PostPosted: Sun May 31, 2009 3:57 pm    Post subject: Reply to topic Reply with quote

include/player.h

IS_STANDARD is a macro defined in include/player.h as "#define IS_STANDARD(p) ((p)->type == T_CONT || (p)->type == T_VIE)"

this isn't explandable to new clients. an easy solution is just to add T_DISC to the client types enum and change the #define to "#define IS_STANDARD(p) ((p)->type == T_CONT || (p)->type == T_VIE || (p)->type == T_DISC)"

----------------------
include/game.h

There are no callbacks to tell when weapons are being fired. I took these callbacks from hz, I believe they allow weapons packet modification in-flight (for example in public in hz you don't receive weapons packets from other players if you've been killed twice in a row, thus preventing spawnkilling):

/** called when a weapon is fired */
#define CB_WEAPON "hz-weapon-0"
/** the type of CB_WEAPON
* @param a arena of the weapon
* @param p player of the weapon
* @param wpn the packet with the weapon that was fired
*/
typedef void (*WeaponFunc)(Arena *a, Player *p, struct C2SPosition *wpn);
/* pyfcb: arena, player, weapons */

/** called to check if a specific player is to receiving a weapon packet*/
#define CB_WEAPON_PLAYER "hz-weapon-player-0"
/** the type of CB_WEAPON_PLAYER
* @param a arena of the weapon
* @param p player to receive the weapon
* @param s player sending the weapon
* @param wpn the packet with the weapon that was fired
*/
typedef void (*WeaponPlayerFunc)(Arena *a, Player* p, Player *s, struct C2SPosition *wpn);
/* pfycb: arena, player, player, weapons */

--------------------
packets/login.h

prevent pragma leeching by adding

#pragma pack(push, disc_login_h, 1)
#pragma pack(1)

to the start of the file and

#pragma pack(pop, disc_login_h)

at the end of the file

also defined

#define LEN_LOGINPACKET_DISC (sizeof(struct LoginPacket) - 64)

(this probably should be generalized with a callback, though)

-------------------
core/arenaman.c

standard clients are assumed a common settings format. this limits clients to a settings format that's 11 years old. right now, on line 288 in SendArenaResponse, arenaman.c acquires the clientsetting interface just in order to send the settings and immediately release it. This should be changed to a callback so that other client types can send a different settings format

--------------
core/core.c

around line 480 should be generalized to a callback, alternatively use this code,

#ifdef CFG_RELAX_LENGTH_CHECKS
else if ( (p->type == T_VIE && l < LEN_LOGINPACKET_VIE) ||
(p->type == T_CONT && l < LEN_LOGINPACKET_CONT) ||
(p->type == T_DISC && l < LEN_LOGINPACKET_DISC))
#else
else if ( (p->type == T_VIE && l != LEN_LOGINPACKET_VIE) ||
(p->type == T_CONT && l != LEN_LOGINPACKET_CONT) ||
(p->type == T_DISC && l != LEN_LOGINPACKET_DISC))
#endif

and then around line 570

if (p->type == T_VIE)
snprintf(p->clientname, sizeof(p->clientname),
"<ss/vie client, v. %d>", pkt->cversion);
else if (p->type == T_CONT)
snprintf(p->clientname, sizeof(p->clientname),
"<continuum, v. %d>", pkt->cversion);
else if (p->type == T_DISC)
snprintf(p->clientname, sizeof(p->clientname),
"<discretion, v. %d>", pkt->cversion);

---------------------
core/fm_normal.c

line 253, "if (s >= SHIP_SPEC)" should be changed to "if (s == SHIP_SPEC)", otherwise everyone is limited to 8 ships. in discretion spec is ship 8, and 9 and up are valid playable ships. This sort of sucks, but the alternative is a massive rehaul of asss not to mention poorly-coded custom modules.

-------------------------------------

core/game.c

Added the interruptable callback macro where, depending on a parameter the callback can stop; this one is from hz, also pretty useful for getting feedback from callbacks. For example, when iterating through weapons, if a callback disables the weapon, there is no need to continue iterating (in fact modules may be confused as to why they get a weapons callback when weapon has been reset to be not a weapon)

#define DO_I_CBS(cb, arena, type, args, interrupt) \
do { \
LinkedList _a_lst; \
Link *_a_l; \
mm->LookupCallback(cb, arena, &_a_lst); \
for (_a_l = LLGetHead(&_a_lst); _a_l; _a_l = _a_l->next) \
{ \
((type)_a_l->data) args ; \
if (interrupt) break; \
} \
mm->FreeLookupResult(&_a_lst); \
} while (0)


added a function to get the maximum number of ships, which is hardcoded in a few places (as you'll see later)

// the maximum ship index allowed by a given client in a given arena
local int getMaxShipIndex(Player* p, Arena* a)
{
int rv = SHIP_SPEC;

if (p->type == T_DISC)
{
// discretion may have more or less than 8 ships!
rv = cfg->GetInt(a->cfg, "Discretion", "NumShips", SHIP_SPEC);
}

return rv;
}

around line 343, added the implementation of the weapon callback, also used in hz

...
if (pos->status & STATUS_FLASH)
{
sendtoall = TRUE;
nflags = NET_RELIABLE;
}

if (pos->weapon.type)
{
DO_I_CBS(CB_WEAPON, p->arena, WeaponFunc, (p->arena, p, pos), !pos->weapon.type);

if (!pos->weapon.type)
sendwpn = FALSE;
/* if the bounty is over 255 */
if (pos->bounty & 0xFF00)
sendwpn = TRUE;
/* if the pid is over 255 */
if (p->pid & 0xFF00)
sendwpn = TRUE;
}

if (sendwpn)
...

changed the conditional at 344 to implement the weaponplayer callback (also used in hz)


if (sendwpn)
{
int range = wpnrange[pos->weapon.type];
struct S2CWeapons wpn = {
S2C_WEAPON, pos->rotation, gtc & 0xFFFF, pos->x, pos->yspeed,
p->pid, pos->xspeed, 0, pos->status, (u8)latency,
pos->y, pos->bounty
};
struct S2CWeapons copywpn;
wpn.weapon = pos->weapon;
wpn.extra = pos->extra;
/* move this field from the main packet to the extra data,
* in case they don't match. */
wpn.extra.energy = pos->energy;
copywpn = wpn;

do_checksum(&wpn);

pd->Lock();
FOR_EACH_PLAYER_P(i, idata, pdkey)
if (i->status == S_PLAYING &&
IS_STANDARD(i) &&
i->arena == arena &&
(i != p || p->flags.see_own_posn))
{
long dist = lhypot(x1 - idata->pos.x, y1 - idata->pos.y);

if (
dist <= range ||
sendtoall ||
/* send it always to specers */
idata->speccing == p ||
/* send it always to turreters */
i->p_attached == p->pid ||
/* and send some radar packets */
( wpn.weapon.type == W_NULL &&
dist <= cfg_pospix &&
randnum > ((double)dist / (double)cfg_pospix *
(RAND_MAX+1.0))) ||
/* bots */
i->flags.see_all_posn)
{
const int plainlen = sizeof(struct S2CWeapons) - sizeof(struct ExtraPosData);
const int nrglen = plainlen + 2;
const int epdlen = sizeof(struct S2CWeapons);

wpn = copywpn;
DO_CBS(CB_WEAPON_PLAYER, p->arena, WeaponPlayerFunc,
(p->arena, i, p, pos));

if (wpn.weapon.type)
idata->wpnsent++;

if (i->p_ship == SHIP_SPEC)
{
if (idata->pl_epd.seeepd && idata->speccing == p)
{
if (len >= 32)
net->SendToOne(i, (byte*)&wpn, epdlen, nflags);
else
net->SendToOne(i, (byte*)&wpn, nrglen, nflags);
}
else if (idata->pl_epd.seenrgspec == SEE_ALL ||
(idata->pl_epd.seenrgspec == SEE_TEAM &&
p->p_freq == i->p_freq) ||
(idata->pl_epd.seenrgspec == SEE_SPEC &&
data->speccing == p))
net->SendToOne(i, (byte*)&wpn, nrglen, nflags);
else
net->SendToOne(i, (byte*)&wpn, plainlen, nflags);
}
else if (idata->pl_epd.seenrg == SEE_ALL ||
(idata->pl_epd.seenrg == SEE_TEAM &&
p->p_freq == i->p_freq))
net->SendToOne(i, (byte*)&wpn, nrglen, nflags);
else
net->SendToOne(i, (byte*)&wpn, plainlen, nflags);
}
}
pd->Unlock();
}

changed line 766 from "if (freq < 0 || freq > 9999 || ship < 0 || ship > SHIP_SPEC)" to "if (freq < 0 || freq > 9999 || ship < 0 || ship > getMaxShipIndex(p, p->arena))"

changed line 830 from "if (ship < SHIP_WARBIRD || ship > SHIP_SPEC)" to "if (ship < SHIP_WARBIRD || ship >getMaxShipIndex(p, p->arena))"

-------------------------
core/net.c

changed #define IS_OURS(p) to include T_DISC

added "int allowdisc" to struct ListenData

near line 816 added

/* cfghelp: Listen:AllowDisc, global, bool, def: 1
* Whether Discretion clients are allowed to connect to this
* port. */
ld->allowdisc = cfg->GetInt(GLOBAL, secname, "AllowDisc", 0);


near line 1843

/* certain ports might allow only one or another client */
if ((type == T_VIE && !ld->allowvie) ||
(type == T_CONT && !ld->allowcont) ||
(type == T_DISC && !ld->allowdisc))
return NULL;


near line 1887

if (type == T_VIE)
astrncpy(p->clientname, "<ss/vie client>", sizeof(p->clientname));
else if (type == T_CONT)
astrncpy(p->clientname, "<continuum>", sizeof(p->clientname));
else if (type == T_DISC)
astrncpy(p->clientname, "<discretion>", sizeof(p->clientname));
else
astrncpy(p->clientname, "<unknown game client>", sizeof(p->clientname));

---------------------------------------

thanks brain! Let me know if there's any trouble!
_________________
SubSpace Discretion: A Third Generation SubSpace Client
Back to top
View users profile Send private message Add User to Ignore List AIM Address
Doc Flabby
Server Help Squatter


Joined: Feb 26 2006
Posts: 636
Offline

PostPosted: Sun May 31, 2009 4:54 pm    Post subject: Reply to topic Reply with quote

This is kinda oftopic, but i've managed to compile ASSS in Visual Studio, you need to download all the dependancies and play with the pre-build events but it does work. Unfortunately its loses all the external modules, and security.so is compiled with the gcc version of pthreads so it won't work, but it might be useful information for someone...Not sure if visual studio support is something we want to add for v1.5 (its a horrible mess how i got it to compile) but it is possible.
_________________
Rediscover online gaming. Get Subspace | STF The future...prehaps
Back to top
View users profile Send private message Add User to Ignore List
Samapico
No, these DO NOT look like penises, ok?


Joined: May 08 2003
Posts: 1252
Offline

PostPosted: Sun May 31, 2009 6:00 pm    Post subject: Reply to topic Reply with quote

Uh... what do you use to compile it normally?
_________________
(Insert a bunch of dead links here)
Back to top
View users profile Send private message Add User to Ignore List
JoWie
Server Help Squatter


Gender:Gender:Male
Joined: Feb 25 2004
Posts: 215
Offline

PostPosted: Sat Jun 20, 2009 5:44 am    Post subject: Reply to topic Reply with quote

in the Pppk function in game.c you find the following :

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;
   }
...
}


Could this be stored in the player object so we can easily find out if the player is waiting for respawn. Right now I have to guess using Kill:EnterDelay and the kill callback.

Something like:

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;
   }
...
}
Back to top
View users profile Send private message Add User to Ignore List
Dr Brain
Flip-flopping like a wind surfer


Age:38
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Sat Jun 20, 2009 8:22 am    Post subject: Reply to topic Reply with quote

That's a good idea. I've added a bug entry for it here: http://bitbucket.org/grelminar/asss/issue/26/

For those of you playing along at home, I've added bug entries for the majority of things I plan on doing, but I'm still missing some. I've also started the process of moving bugs over from the old Mantis bug database.
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Dr Brain
Flip-flopping like a wind surfer


Age:38
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Sat Jun 20, 2009 10:50 am    Post subject: Reply to topic Reply with quote

Bug DB update: I've finished porting bugs from the old Mantis tracker. I added a note to everything I ported in the old tracker, so it should be easy to see the things that I didn't move. Anything that was not moved I do not personally plan on fixing (python and soccer things, mostly). If you see an old bug that you'd still like fixed, feel free to move the bug to the new tracker, or discuss it here.

I still have some bugs from my todo-list to port. I think the only bugs from this thread that aren't in there are:

  • arena->playing
  • optional arena numbering

Though neither of these two are planned for 1.5.0rc1. If a bug you mentioned on this list isn't in the bug tracker, let me know.
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Samapico
No, these DO NOT look like penises, ok?


Joined: May 08 2003
Posts: 1252
Offline

PostPosted: Sun Jun 21, 2009 4:35 pm    Post subject: Reply to topic Reply with quote

How about this:

2 new region data chunks, for LVZ's to toggle when entering / exiting a region.

These chunks can have a variable size... so you could set it to toggle a bunch of different objects at once. Positive values for objon's and negative values for objoff's, kind of like *objset. So you could have 1000, 1001, -2000,-2001
when entering the region, and -1000, -1001, 2000, 2001 when exiting it, for example.

I propose rLVI and rLVO for EnterRegion (in) and ExitRegion (out)

bytes
0-3: "rLVI" or "rLVO"
4-7: uint32: size of data (in bytes; must be multiple of 4)
Next 4xN bytes: objects to toggle in signed int32 format

Where N = size of data / 4

Note that objectID only uses 15bits in the LVZ format standard... so we could use int16's too... However, the chunk would have to be a multiple of 4 bytes anyway to follow the LVZ format. Wouldn't be much more complicated for me to use 2 bytes per object. What you think?

Quicklinks for reference:
http://wiki.minegoboom.com/index.php/LVZ_Format
http://wiki.minegoboom.com/index.php/ELVL_Format
Back to top
View users profile Send private message Add User to Ignore List
Dr Brain
Flip-flopping like a wind surfer


Age:38
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Sun Jun 21, 2009 9:38 pm    Post subject: Reply to topic Reply with quote

Talking with Arnk gave me some ideas about regions: what might be better would be a way to easily add arbitrary data to regions. Tags, for lack of a better term. These might best be represented as strings.

So, for example, you could add a tag "LVZ in" with data "+10,-20,+23" to a region. Then a module could parse the data in the tag to mean turn on objects 10 and 23, and turn off object 20. This is a lot more flexible, and would allow non-core modules to more tightly integrate with maps.

I don't want to add any core modules that I don't have to add. I'd rather add enough functionality to the core so that any module could easily do what needs to be done. The nice thing about the tag solution is that it allows a lot of uses beyond simple lvz toggling. What do you think, Samapico? Would something like this be enough?
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Samapico
No, these DO NOT look like penises, ok?


Joined: May 08 2003
Posts: 1252
Offline

PostPosted: Sun Jun 21, 2009 11:16 pm    Post subject: Reply to topic Reply with quote

True, but LVZ toggling could be worthy to be in the core imo tongue.gif
We could have a standard module to handle it, though

I should be able to make it easy to add various tags to the regions (or the the map itself), with different data types (string, bytes, longs...)

With custom tags, the homemade modules should make sure to validate the data within the chunk, cause different people could create a tag with the same name as someone else, but with different formats.

I'm talking more about custom "chunks", actually... but a simple rATT chunk for attributes, like map attributes, could be made standard. Just like in the map ATTR chunk, you have one chunk per tag you want to add.

Also, not all the regions in the same map will necessarily have the same tags...
Back to top
View users profile Send private message Add User to Ignore List
Arnk Kilo Dylie
Seasoned Helper


Age:36
Gender:Gender:Male
Joined: Jul 14 2006
Posts: 108
Offline

PostPosted: Mon Jun 22, 2009 1:50 am    Post subject: Reply to topic Reply with quote

obviously to make the most use of the tags system, a mapdata function to determine all of the tags of all of the regions the player is in would be necessary. certain things like the "no flags" and "no antiwarp" switches are examples of existing hardcoded tags. one should be able to say "is a player in any region with tag x" or "get me a list of region tags that apply to player x" or "get me the subdatas associated with tag x applying to a player
Back to top
View users profile Send private message Add User to Ignore List Visit posters website
JoWie
Server Help Squatter


Gender:Gender:Male
Joined: Feb 25 2004
Posts: 215
Offline

PostPosted: Mon Jun 22, 2009 4:04 pm    Post subject: Reply to topic Reply with quote

Speaking of regions.

in the Imapdata interface you have the function
Code: Show/Hide

int (*Contains)(Region *rgn, int x, int y);


a simple

Code: Show/Hide

int (*ContainsPlayer)(Region *rgn, Player *p);
// map->Contains(region, p->position.x >> 4, p->position.y >> 4)


could be useful
Back to top
View users profile Send private message Add User to Ignore List
Mine GO BOOM
Hunch Hunch
What What
Hunch Hunch<br>What What


Age:40
Gender:Gender:Male
Joined: Aug 01 2002
Posts: 3614
Location: Las Vegas
Offline

PostPosted: Mon Jun 22, 2009 7:06 pm    Post subject: Reply to topic Reply with quote

JoWie wrote:
Speaking of regions.

in the Imapdata interface you have the function ... a simple ... could be useful

Ships can have difference sizes, so if this is implemented, need to account if you want just the center of the ship, or any part of the ship, or the whole ship contained in a region.
Back to top
View users profile Send private message Add User to Ignore List Send email
JoWie
Server Help Squatter


Gender:Gender:Male
Joined: Feb 25 2004
Posts: 215
Offline

PostPosted: Wed Jun 24, 2009 9:53 am    Post subject: Reply to topic Reply with quote

its seems that net->GetClientStat crashes for Chatnet clients

backtrace of smong's nomysql module, which crashes with chatnet clients:
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]


note the bw=0x0 part, this is the cause of the segfault

EDIT: shouldn't the code tag auto hide?
Back to top
View users profile Send private message Add User to Ignore List
Initrd.gz
Seasoned Helper


Joined: Sep 18 2008
Posts: 134
Location: Over there --->
Offline

PostPosted: Wed Jun 24, 2009 7:34 pm    Post subject: Reply to topic Reply with quote

BTW, how are you going to add support for security.so?
Back to top
View users profile Send private message Add User to Ignore List AIM Address
Bak
?ls -s
0 in


Age:25
Gender:Gender:Male
Joined: Jun 11 2004
Posts: 1826
Location: USA
Offline

PostPosted: Thu Jun 25, 2009 2:50 am    Post subject: Reply to topic Reply with quote

Initrd.gz wrote:
BTW, how are you going to add support for security.so?


I don't think they're making changes to the security module. In either case, I'm pretty sure grel has the source.
Back to top
View users profile Send private message Add User to Ignore List AIM Address
Dr Brain
Flip-flopping like a wind surfer


Age:38
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Thu Jun 25, 2009 7:12 am    Post subject: Reply to topic Reply with quote

I had to change some of the things in security.so to get it to work for 64-bit already, so recompiling it isn't an issue.
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Hakaku
Server Help Squatter


Joined: Apr 07 2006
Posts: 299
Location: Canada
Offline

PostPosted: Mon Jun 29, 2009 5:53 pm    Post subject: Reply to topic Reply with quote

Here's a vaguely related question, but does the CMD_MULTI_CHAR (aka |) actually work? From my understanding, it's suppose to allow multiple commands to be used in a single line (e.g. /?setship 3|?setfreq 1), or am I using it wrong? If it's right, then could this be added into the fix list?

On another note, would it be possible to clean up the groupdef directory? There are some commands that don't exist (?myscore), while a few others are missing (e.g. in sgcompat, ?owner). And if I may also propose an additional group for bots, with at least "unlimitedchat" and "broadcastbot" in them? It would be useful for beginners who wouldn't know to add those features because their bot is getting silenced or can't perform certain object changes.
Back to top
View users profile Send private message Add User to Ignore List Send email
Dr Brain
Flip-flopping like a wind surfer


Age:38
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Mon Jun 29, 2009 10:52 pm    Post subject: Reply to topic Reply with quote

It was changed at some point to need to start with either /?| or /|?, I forget which, since I rarely use that functionality.

About the groupdefs, yes they should be cleaned, but it only does limited good because of the fact that they don't get changed during the upgrade process.
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Hakaku
Server Help Squatter


Joined: Apr 07 2006
Posts: 299
Location: Canada
Offline

PostPosted: Mon Jun 29, 2009 11:20 pm    Post subject: Reply to topic Reply with quote

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.

Oh thanks, the first one is the correct one (/?|lag|setship...).
Back to top
View users profile Send private message Add User to Ignore List Send email
JoWie
Server Help Squatter


Gender:Gender:Male
Joined: Feb 25 2004
Posts: 215
Offline

PostPosted: Wed Jul 08, 2009 9:12 am    Post subject: Clientset Reply to topic Reply with quote

There is a bug in the security / clientset module with overrides.

If you override something and decide to wait a little while to send the settings packet, (because we already sent one 0.1 second ago). The security module keeps warning about settings checksum mismatches because we haven't sent the packet yet.

One solution would be to store what setting packet was last sent for every player.

If your interested, I have attached the modified clientset module we use (changed from asss 1.4.4). Which contains some 2 other minor changes which I needed for our custom settings system.

  • Stores sent settings packet per player, uses this for checksums
  • GetArenaOverride & GetPlayerOverride. Returns what the current override is set to, I use this to figure out if I need to send a settings packet. I could have made my own method to store what the old setting is, but this is the most efficient since it was already stored anyway
  • Global setting clientset:DetectConfigChange (default 1). if this is set to 0 and you update something using ?quickfix, a new settings packet is not sent to players, an arena recycle will have to be used. I use this because I have my own method of sending settings packets.




Modified clientset (original from ASSS 1.4.4)

clientset144.tar.gz - 5.59 KB
File downloaded or viewed 26 time(s)
Back to top
View users profile Send private message Add User to Ignore List
MikeTheNose
Newbie


Gender:Gender:Male
Joined: Sep 23 2003
Posts: 2
Offline

PostPosted: Sat Jul 25, 2009 4:39 pm    Post subject: Reply to topic Reply with quote

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.


Issue is resolved.
Back to top
View users profile Send private message Add User to Ignore List Send email Visit posters website
Display posts from previous:   
Post new topic   Reply to topic    Server Help Forum Index -> ASSS Questions All times are GMT - 5 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum
View online users | View Statistics | View Ignored List


Software by php BB © php BB Group
Server Load: 879 page(s) served in previous 5 minutes.

phpBB Created this page in 0.558441 seconds : 51 queries executed (81.8%): GZIP compression disabled