Posts: 1,329
Threads: 294
Joined: Dec 2003
Reputation:
0
It's the white disc fix.. Evil_admin proved it by taking the fix out and running rico which didn't crash, he put the fix back in, crash...
I don't see anyone else volunteering to help.
BTW I figured out why those discs were staying, when I went to paste the reconnector fix into the code it didn't work right :wacko:
<@Miagi> !8 Am I spamming?
<@ChanServ> Miagi: Yes.
<@Miagi> !8 Should I stop?
<@ChanServ> Miagi: Oh, please, PLEASE, make it stop!
Posts: 1,329
Threads: 294
Joined: Dec 2003
Reputation:
0
11-21-2004, 03:23 PM
(This post was last modified: 11-21-2004, 03:25 PM by Miagi.)
I was looking and saw groupinfo, it looked like it sets the players colors or something.
Near the top of Cdiscarena they have this...
Code: // Spawn all the players in the round
for ( int i = 0; i < (m_iPlayersPerTeam * 2); i++ )
{
 CBasePlayer *pPlayer = ((CBasePlayer*)(CBaseEntity*)m_hCombatants[i]);
 if ( pPlayer )
 {
 // make sure the player's groupinfo is set the arena's groupinfo
 pPlayer->pev->groupinfo = pev->groupinfo;
 // is the player an observer?
 if ( pPlayer->IsObserver() )
 {
  SpawnCombatant( pPlayer );
 }
 // Remove any powerups
 pPlayer->RemoveAllPowerups();
 }
}
I'm going to try and see if that will work. This is what I have so far to see if we can fix the white disc fix.
Code: // Freeze everyone until there's 3 seconds to go
if ( m_iSecondsTillStart == 3 )
{
 for ( int i = 0; i < (m_iPlayersPerTeam * 2); i++ )
 {
 //white disc haxxx...
 // if the player is "dead" during the round countdown,
 Â
 CBasePlayer *pPlayer = ((CBasePlayer*)(CBaseEntity*)m_hCombatants[i]);
 if(!m_hCombatants[i]->IsAlive() && pPlayer->m_bHasDisconnected != TRUE )
 Â
pPlayer->pev->groupinfo = pev->groupinfo;
 // end hax
 if (m_hCombatants[i])
  ((CBaseEntity*)m_hCombatants[i])->pev->maxspeed = 320;
 }
}
<@Miagi> !8 Am I spamming?
<@ChanServ> Miagi: Yes.
<@Miagi> !8 Should I stop?
<@ChanServ> Miagi: Oh, please, PLEASE, make it stop!
Posts: 1,329
Threads: 294
Joined: Dec 2003
Reputation:
0
11-21-2004, 03:51 PM
(This post was last modified: 11-21-2004, 04:00 PM by Miagi.)
K so that didn't work. Was kind of hard to create the white disc though. But with the above coded added I believe did change something.
Grits helped me test it, she finally got the white disc but when she did, I died(as if falling off a cliff onto the pad) and she fell. :blink:
<@Miagi> !8 Am I spamming?
<@ChanServ> Miagi: Yes.
<@Miagi> !8 Should I stop?
<@ChanServ> Miagi: Oh, please, PLEASE, make it stop!
Posts: 458
Threads: 53
Joined: Feb 2003
Reputation:
0
11-21-2004, 04:24 PM
(This post was last modified: 11-21-2004, 04:26 PM by Pique.)
use rc_2v2 for whitedisc....or another teamplay map...and whitedisc will ALWAYS happen on teamplay maps (unless you use the spectate command)...when teammates get whitedisc its the same thing as if a 1v1 got whitedisc, and you will understand why they get whitedisc....
Posts: 4,208
Threads: 795
Joined: Jan 2003
Reputation:
0
maybe all the computer guys could hash it out on irc.... I know when .asm first fixed it he said it was a 'quick fix', I am thinking he understands the code enough, that if he has time maybe he could make it a more stable fix instead of trying to fix a fix.
does that make sense?:wacko:
Posts: 1,329
Threads: 294
Joined: Dec 2003
Reputation:
0
11-22-2004, 05:03 PM
(This post was last modified: 11-22-2004, 05:13 PM by Miagi.)
Browsing alittle more I noticed a "null" check.. I can't remember if when in DM, when you go to spectate people and you switch who you are spec'ing, if there is sometimes a missing person and in place of the name is NULL.
If thats true then maybe in arena, the asm fix is trying to spawn that NULL...
I do know that
Code: pPlayer->StopObserver();
Stops the floating bug that is caused from respawning.
I'll be running a server(won't be able to play hl2 :() for awhile, so if you see "Miagi Test Server" up try and get people to join, only can put up 4 slots as I'm only on adsl.
I'll be trying this code.
Code: void CDiscArena::CountDownThink( void )
{
// Freeze everyone until there's 3 seconds to go
if ( m_iSecondsTillStart == 3 )
{
 for ( int i = 0; i < (m_iPlayersPerTeam * 2); i++ )
 {
 //white disc haxxx asm...
 // if the player is "dead" during countdown and they are not NULL respawn
  Â
 CBasePlayer *pPlayer = ((CBasePlayer*)(CBaseEntity*)m_hCombatants[i]);
 if( m_hCombatants[i] != NULL && !m_hCombatants[i]->IsAlive() )
     Â
 {
  pPlayer->StopObserver();
  pPlayer->Spawn(); Â
 }
 Â
Â
 // end hax
As far as 2v2...
This little image says it all...:blink:
It looks like its following arena's 1v1 rules where if theres a match in progress remove them from the arena, make them spectate that arena. Then it looks like it just respawns them if its the same "match".
<@Miagi> !8 Am I spamming?
<@ChanServ> Miagi: Yes.
<@Miagi> !8 Should I stop?
<@ChanServ> Miagi: Oh, please, PLEASE, make it stop!
Posts: 651
Threads: 121
Joined: Feb 2003
Reputation:
0
Miagi,
Can you paste all of the code for the CountDownThink() method and I will compile it and try it also.
thanks,
desNotes
Posts: 1,329
Threads: 294
Joined: Dec 2003
Reputation:
0
NP. Thanks :thumb:
Code: //-----------------------------------------------------------------------------
// Purpose: Countdown to the round start
//-----------------------------------------------------------------------------
void CDiscArena::CountDownThink( void )
{
// Freeze everyone until there's 3 seconds to go
if ( m_iSecondsTillStart == 3 )
{
for ( int i = 0; i < (m_iPlayersPerTeam * 2); i++ )
{
//white disc haxxx asm...
// if the player is "dead" during countdown and they are not NULL
CBasePlayer *pPlayer = ((CBasePlayer*)(CBaseEntity*)m_hCombatants[i]);
if( m_hCombatants[i] != NULL && !m_hCombatants[i]->IsAlive() )
{
pPlayer->StopObserver();
pPlayer->Spawn();
// difference in ? m_hCombatants[i]->Spawn();
}
// end hax
if (m_hCombatants[i])
((CBaseEntity*)m_hCombatants[i])->pev->maxspeed = 320;
}
}
m_iSecondsTillStart--;
// Play countdown VOX
if (m_iSecondsTillStart < 5)
{
// Speech
for ( int i = 0; i < (m_iPlayersPerTeam * 2); i++ )
{
if (m_hCombatants[i])
((CBasePlayer*)(CBaseEntity*)m_hCombatants[i])->ClientHearVox( g_szCountDownVox[ m_iSecondsTillStart ] );
}
}
// Send the message to the clients in the arena
for ( int i = 1; i <= gpGlobals->maxClients; i++ )
{
CBasePlayer *pPlayer = (CBasePlayer *)UTIL_PlayerByIndex( i );
if (pPlayer && (pPlayer->pev->groupinfo & pev->groupinfo) && pPlayer->m_bHasDisconnected != TRUE)
{
MESSAGE_BEGIN( MSG_ONE, gmsgStartRnd, NULL, pPlayer->edict() );
WRITE_BYTE( m_iCurrRound );
WRITE_BYTE( m_iSecondsTillStart );
WRITE_BYTE( 0 );
MESSAGE_END();
}
}
if (m_iSecondsTillStart)
{
pev->nextthink = gpGlobals->time + 1.0;
}
else
{
m_iArenaState = ARENA_BATTLE_IN_PROGRESS;
// Enable powerups
CBaseEntity *pFunc = NULL;
while ((pFunc = UTIL_FindEntityByClassname( pFunc, "item_powerup" )) != NULL)
{
((CDiscwarPowerup*)pFunc)->Enable();
}
pev->nextthink = gpGlobals->time + 1.0;
SetThink( BattleThink );
}
}
//-----------------------------------------------------------------------------
<@Miagi> !8 Am I spamming?
<@ChanServ> Miagi: Yes.
<@Miagi> !8 Should I stop?
<@ChanServ> Miagi: Oh, please, PLEASE, make it stop!
Posts: 1,329
Threads: 294
Joined: Dec 2003
Reputation:
0
11-27-2004, 02:14 PM
(This post was last modified: 11-27-2004, 02:14 PM by Miagi.)
At first I wondered if it was even entering the whitedisc fix but it is because I put a console print in when it goes through the if and it does enter the "if"
Don't know about you, but to me it seems to be working. :bg:
<@Miagi> !8 Am I spamming?
<@ChanServ> Miagi: Yes.
<@Miagi> !8 Should I stop?
<@ChanServ> Miagi: Oh, please, PLEASE, make it stop!
Posts: 651
Threads: 121
Joined: Feb 2003
Reputation:
0
I haven't been in the server when conditions fit the "white disk" but then again, it happened rarely for me before any fixes. I can say that since putting in your code and running the arena map, I have had no crashes where I was getting several crashes per day with .asm's fix.
Has anyone tried to force the white disk scenario on your server or on mine?
Posts: 1,329
Threads: 294
Joined: Dec 2003
Reputation:
0
I tried a few times, don't know why because for the life of me I can not create white disc with or without the fix in arena. I fell exactly before the timer started and I respawned immediately in your server.
<@Miagi> !8 Am I spamming?
<@ChanServ> Miagi: Yes.
<@Miagi> !8 Should I stop?
<@ChanServ> Miagi: Oh, please, PLEASE, make it stop!
Posts: 1,329
Threads: 294
Joined: Dec 2003
Reputation:
0
Evil_admin sent me the linux source and I put the above fix in, except I removed pPlayer->StopObserver();. I have it compiled and running on my DTC server which I will leave as arena for awhile.
If you could test for white disc that would be great.
Again this is to stop arena from crashing while providing a white disc fix.
<@Miagi> !8 Am I spamming?
<@ChanServ> Miagi: Yes.
<@Miagi> !8 Should I stop?
<@ChanServ> Miagi: Oh, please, PLEASE, make it stop!
Posts: 1,329
Threads: 294
Joined: Dec 2003
Reputation:
0
Don't know if anyone noticed, but the crash bug has been fixed along with the map vote plugin, so voting works.
<@Miagi> !8 Am I spamming?
<@ChanServ> Miagi: Yes.
<@Miagi> !8 Should I stop?
<@ChanServ> Miagi: Oh, please, PLEASE, make it stop!
Posts: 4,208
Threads: 795
Joined: Jan 2003
Reputation:
0
naw people only notice when something goes wrong not when it is actually fixed:)
Thanks miagi I appreciate it and so do others, they just dont realize it yet:thumb:
Posts: 1,329
Threads: 294
Joined: Dec 2003
Reputation:
0
Don't forget evil_admin, who was nice enough to send me his converted linux source files. Otherwise I would've been tearing my server apart with my bare hands from "trying" to convert the files myself.
Is that an oxymoron? Evil, nice.
<@Miagi> !8 Am I spamming?
<@ChanServ> Miagi: Yes.
<@Miagi> !8 Should I stop?
<@ChanServ> Miagi: Oh, please, PLEASE, make it stop!
Posts: 622
Threads: 42
Joined: Dec 2004
Reputation:
0
04-02-2005, 12:02 PM
(This post was last modified: 04-02-2005, 12:03 PM by NITRO!.)
hehe, I noticed the voting works:P
Thanks Miagi you are our god:thumb:
EDIT: Ok then is Evil_Admin our goddess:lol:
|