Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - QwazyWabbit

Pages: 1 ... 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 ... 75
316
/dev/random / Re: What is the most money you have won at a Casino?
« on: June 09, 2012, 08:05:47 AM »
According to Wikipedia the expected value on any bet is a loss of 5.3 cents for every dollar played. A perfect example of the take your winnings and run philosophy. The payoff on red or black is 1:1 but the odds are 1.111:1 against you. The zeros are the house advantage. The house has a 5.26% advantage, which is pretty high. Single numbers pay off 35:1 but the odds against winning are 37:1. I've never played roulette for money but I've watched it many times. The action is interesting and it's interesting to see the way people bet. The only consistent thing about it though is the house is always sweeping up the chips. :)

317
weapons / Re: Could not exec cfg when map starts
« on: June 09, 2012, 12:12:08 AM »
So if I understand, R1Q2 is trying to run a config file based on the map name, but because that config file doesn't exist on my computer, I get the message "Couldn't exec xxxxx.cfg". Learn something new every day.

poser

Precisely.

318
/dev/random / Re: What is the most money you have won at a Casino?
« on: June 09, 2012, 12:10:29 AM »
Actually, the best odds in the house is craps, where the house has zero advantage on some bets and only about 1.4% on average on pass/don't pass. You can reduce the house advantage but never eliminate it because you can't bet odds (0% advantage) without a pass/don't pass bet just to play the game but the Odds bet can pay as high as 2:1 on a point of 4 or 10. As in all casino games, the longer you play, the better for the house.

Best win: $240
Worst loss: $400

319
/dev/random / Re: Software patens ever work?
« on: May 09, 2012, 07:04:22 PM »
UNIX came out of Bell Labs but they weren't a software company. UNIX was for running telephone switches. They had a narrow focus on their tools so they missed the market completely. It also lacked the pretty GUI and still suffers from cryptic commands to do common functions.

IIRC, in 1997, SCO UNIX for the 80186/80286 was $495 in a huge box set of some 5 boxes and manuals when MS-DOS was $135 in a single box. A huge blunder for SCO, they could have swept the desktop clean of Microsoft forever if they hadn't been so damned proud of a package they didn't even write themselves.

Several of my friends had HP9000's running HP's version of UNIX III called HP/UX.

320
Science / Re: Evidence of water having flowed on Mars
« on: May 08, 2012, 05:13:34 PM »
All this stuff about ozone. Ozone is just O3 as opposed to molecular Oxygen which is O2. Since "more is better" we should develop new ways to generate MORE Ozone so we can all breathe better, more O3 means that fresh smell of a summer thunderstorm every day instead of that foul stuff called O2. We should have a crash program to create nuclear powered Ozone generators on the antarctic coast to reinforce the ozone layer and make the antarctic smell "summer fresh". That'll fix the global warming thing once and for all.


321
/dev/random / Re: Hot bitches
« on: May 08, 2012, 04:41:05 PM »
Now overlay that chart with actual human penis length and circumference plot.

322
/dev/random / Re: Get The Picture #10
« on: April 30, 2012, 06:22:42 PM »
Hat guy: OK now, just stick your hand in here, all the way up to your elbow until you feel the clog.
Blue Shirt: Should I be wearing gloves for this?
Hat guy: Naw, your gonna get shit all over yourself either way.

323
Jokes / Re: Funny articles
« on: April 11, 2012, 05:38:25 PM »
psycho ex

Not really funny but painful to read.

What's interesting to infer from this story is that he was sitting "innocently" at his computer when she broke in to hit him on the head where upon his scrotum was immediately available for her to grab. There is no description of where his pants were or why his scrotum was exposed to her grasp. Methinks he was not so innocently sitting at his computer. Or perhaps they are both nudists?

324
Jokes / Re: Did you know... [Curiosities]
« on: April 03, 2012, 07:15:12 PM »
China has a one-child policy, regardless of the sex of the child. I believe the rural farmers are exempt but still limited. There have been reports of female babies being euthanized since the preference is for males to take over the family farm. Even so, China has a serious population growth problem.

325
Quake / Re: Kicked for hacked q2.exe
« on: March 26, 2012, 01:28:11 PM »
what is anti cheat and how does this work with rich client , back when i played 7 to 8 years ago the anti cheat was built into the clients . my r1q2 is very old as well v6.5.5.5 i think.  No experiments with old hax , if you seen any old demoes of me playing on this sit there wouldnt even be a questionable doubt . loved the tdm but was never very good at it LOL


Anticheat is a DLL that gets loaded by some clients, such as r1q2 and q2pro for example, that examines files that are loaded into your client for what might be considered cheats. The "legal" modified paks and files can be different depending on the admin settings of the server you are on. The spectrum is fairly consistent but there is room for variation.

The reason it's in a DLL is because there are certain techniques it uses to prevent hacking of the DLL to mask cheats. This is what happened to no-cheat clients, the code was hackable, making them useless.

These hack-suppression techniques also account for the false-positive alerts your anti-virus scanners might issue when they scan the DLL since the anti-hacking code looks like malware to the A-V scanners. Put the DLL into your Quake2 root and put it on your A-V product's safe list.

326
Jokes / Re: Funny Pictures
« on: March 23, 2012, 06:19:46 PM »
Strange.

327
0x1337c0de / Re: Entity List Management in Q2 Mods
« on: March 22, 2012, 08:14:44 PM »
I don't think so but I'd like to read your thoughts on why the Loxo server has not crashed with ED_Alloc: no free edicts nor has it crashed with SEG-FAULT or bad data overwrites. Typical LOX num_edicts runs in the 500 to 700 range on 12 players and custom maps. It's been a long time since the server had a heavy load.

I'll bring maxentities down to 1024 for a while and see what happens when krenZ has his way with it again. It's quite possible the faster spawn search is responsible and not the size of the entity array.

But why does it say this in the original game.h?

Code: [Select]
//
// global variables shared between game and server
//

// The edict array is allocated in the game dll so it
// can vary in size from one game to another.
//
// The size will be fixed when ge->Init() is called
struct edict_s *edicts;
int edict_size;
int num_edicts; // current number, <= max_edicts
int max_edicts;

328
0x1337c0de / Re: Entity List Management in Q2 Mods
« on: March 22, 2012, 09:13:04 AM »
No, there is a difference between game entities, server entities and client entities. The MAX_EDICTS limit is only for those entities that must be passed from server to client. It's perfectly acceptable to have more entities in the game than are passed to the client.

329
0x1337c0de / Re: Entity List Management in Q2 Mods
« on: March 21, 2012, 07:08:08 PM »
Interesting point. But then why does the cvar maxentities exist and why is globals.max_edicts set to game.maxentities in g_save.c in the historical game mod?
And why does this line exist in the same code"
Code: [Select]
g_edicts =  gi.TagMalloc (game.maxentities * sizeof(g_edicts[0]), TAG_GAME);

330
0x1337c0de / Entity List Management in Q2 Mods
« on: March 20, 2012, 10:20:04 PM »
Several extensive attempts were made to crash the Loxophilia server via the entity list crash pathway. These attempts did not succeed. The crash is produced when the active entity list is filled and a subseqent call to G_Spawn in the game mod can't find space in the entity list to instantiate a new entity. The function fails with a call to gi.error ("ED_Alloc: no free edicts"); which halts the game server resulting in a temporary denial of service.

There are two factors influencing this relative immunity to DoS.

1. Entity list size: old game default is 1024 entities. Loxo uses 2048 by default.
2. List management code in LOX was modified long ago and is now an historic artifact in LOX.

Three functions were modified in g_utils.c to speed up entity initialization and freeing.
The functions are listed below. These functions are common to all Quake2 mods.
NOTE: The entity member "classnum" is used in LOX to speed up class comparisons instead of using string matching based on "classname". The CN_* values are simply #defines or enumated constants for all entity classes in the relevant mod. You may freely discard the code dealing with this data member.

Code: [Select]
void G_InitEdict (edict_t *e)
{
e->inuse = QTRUE;
e->classname = "noclass";
e->classnum = CN_NOCLASS;
e->gravity = 1.0;
e->s.number = e - g_edicts;

// Clear what the free-edict list may have set.
e->chain = NULL;

// This is another headache.
e->think = NULL;
e->nextthink = 0;
}

// The free-edict list.  Meant to vastly speed up G_Spawn().
edict_t *g_freeEdictsH = NULL;
edict_t *g_freeEdictsT = NULL;

/*
=================
G_Spawn

Either finds a free edict, or allocates a new one.
Try to avoid reusing an entity that was recently freed, because it
can cause the client to think the entity morphed into something else
instead of being removed and recreated, which can cause interpolated
angles and bad trails.
=================
*/

edict_t *G_Spawn (void)
{
int i;
edict_t *e;
// char string[64];

// If the free-edict queue can help, let it.
while (g_freeEdictsH != NULL)
{
// Remove the first item.
e = g_freeEdictsH;
g_freeEdictsH = g_freeEdictsH->chain;
if (g_freeEdictsH == NULL)
g_freeEdictsT = NULL;

// If it's in use, get another one.
if (e->inuse)
continue;

// If it's safe to use it, do so.
if (e->freetime < 2 || level.time - e->freetime > 0.5)
{
G_InitEdict (e);
return e;
}

// If we can't use it, we won't be able to use any of these -- anything
// after it in the queue was freed even later.
else
break;
}

// The old way to find a free edict.
e = &g_edicts[(int)maxclients->value+1];
for ( i = (int) maxclients->value + 1 ; i < globals.num_edicts ; i++, e++)
{
// the first couple seconds of server time can involve a lot of
// freeing and allocating, so relax the replacement policy
if (!e->inuse && ( e->freetime < 2 || level.time - e->freetime > 0.5 ) )
{
G_InitEdict (e);
return e;
}
}

if (i == game.maxentities)
gi.error ("ED_Alloc: no free edicts");

globals.num_edicts++;
G_InitEdict (e);
// sprintf(string, "num_edicts is %i\n", globals.num_edicts);
// OutputDebugString(string);
return e;
}

/*
=================
G_FreeEdict

Marks the edict as free
=================
*/
void G_FreeEdict (edict_t *ed)
{
gi.unlinkentity (ed); // unlink from world

if ((ed - g_edicts) <= (maxclients->value + BODY_QUEUE_SIZE))
{
// gi.dprintf("tried to free special edict\n");
return;
}

memset (ed, 0, sizeof(*ed));
ed->classname = "freed";
ed->classnum = CN_NOCLASS;
ed->freetime = level.time;
ed->inuse = QFALSE;

// Put this edict into the free-edict queue.
if (g_freeEdictsH == NULL)
g_freeEdictsH = ed;
else
g_freeEdictsT->chain = ed;
g_freeEdictsT = ed;
ed->chain = NULL;
}

In server configuration files you can set maxentities 2048 or you can modify g_save.c in the game source:

Code: [Select]
maxentities = gi.cvar ("maxentities", "2048", CVAR_LATCH);

Pages: 1 ... 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 ... 75