Official GHost++ Home - Codelain.com
May 21, 2013, 10:41:11 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
 
   Home   Help Search Login Register  
Pages: 1 2 3 [4] 5
  Print  
Author Topic: GenPatch: FakePlayers in lobby  (Read 3567 times)
0 Members and 1 Guest are viewing this topic.
styler_ro
Distinct Contributor
***
Offline Offline

Posts: 595



View Profile
« Reply #45 on: August 07, 2012, 05:51:54 PM »

uninstall it and all work perfect.
Logged
Official GHost++ Home - Codelain.com
« Reply #45 on: August 07, 2012, 05:51:54 PM »

 Logged
thesavagepony
Devoted Member
**
Offline Offline

Posts: 257


View Profile
« Reply #46 on: August 07, 2012, 08:53:25 PM »

Gen, can I use this patch with regualr ghost?

Logged
Gen
Distinct Contributor
***
Offline Offline

Posts: 749


View Profile
« Reply #47 on: August 07, 2012, 10:28:31 PM »

uninstall it and all work perfect.
your patching of multiple patches wasn't good enough. The patches might not be compatible with each other. In your case, one'd collide and circumvent the FP patch.

Gen, can I use this patch with regualr ghost?
I haven't tested it on ghost++. FP patch Version 1.0 works fine on GhostOne. Since GhostOne based off ghost++, so it should work on ghost++.
Version 1.1 is in the last testing. I'll post version 1.1 of this patch by tomorrow. So, come back tomorrow.
Logged

Review Gen modded GhostOne version info by
1- ghost.cfg
2- details with changelog
Gen
Distinct Contributor
***
Offline Offline

Posts: 749


View Profile
« Reply #48 on: August 09, 2012, 04:57:26 PM »

Technically, look at the patch, TCP socket problems (though they're rare) are generated by auto inserting fakeplayers in event player left void (when a player left). Func CreateInitialFakePlayers() is recalled, in it, a while loop to create one-by-one FP does create 2-3-4 of them(2-3-4 fps at once as C++ is fast), the slot info is sent 2-3-4 times to update it. Sending slot info too fastly reproduces the problem.

I tried removed calling CreateInitialFakePlayers() and relied on  CreateFakePlayer() which means to creat A FP instead in that event with the same condition (as below) but it even generated more TCP socket errors (talking about frequency).
Code:
if (GetNumHumanPlayers( ) < 4 && GetSlotsOpen() > 2)
CreateFakePlayer( );

I put the whole // auto insert part in if (!show) as it means for lobby. show ==true, means a player left in game not in lobby. but Ghost crashed after a while of running. The above part is also tested in if(!show) but the problem has not been resolved.

The player left event is messing it up and making the //auto insert go awry. I don't admin TCP socket errors are caused by this patch. AS there're dozen of reasons players get this error, especially if you broadcast to Garena. But I esteem very few TCP socket errors (1%) in my hosting of 4 games simultaneously.

Now, I think of putting //auto insert part in event player join, as it's surely where players are just about in lobby, no  in-game leaving would mess it up. There must be a better place to put the part but I haven't found it yet.
Whenever I find out or think there's a good solution, there could be a better or even best solution. The helps from good coders are welcome.
 
Logged

Review Gen modded GhostOne version info by
1- ghost.cfg
2- details with changelog
Gen
Distinct Contributor
***
Offline Offline

Posts: 749


View Profile
« Reply #49 on: August 11, 2012, 02:00:23 PM »

fakeplayer1.1_fix4version1.0.patch & fkplayers1.1 Released.

If you never install fakeplayers.patch, give fkplayers1.1.patch a shot.
If you have installed, please use the fix to update.

PLS get back to this thread and give some feedbacks after your patching, testing, hosting & playing.
« Last Edit: August 11, 2012, 06:05:23 PM by Gen » Logged

Review Gen modded GhostOne version info by
1- ghost.cfg
2- details with changelog
Gen
Distinct Contributor
***
Offline Offline

Posts: 749


View Profile
« Reply #50 on: August 15, 2012, 03:44:57 PM »

This is for 1.1b to prevent the outnumber of fps in lobby and better do a clean-up. Tested & worked well.

Code:
//auto delete fake player(s)
if (m_FPEnable){
if ( ( GetSlotsOpen( ) < 2 || GetNumHumanPlayers( ) > 3 ) && !m_FakePlayers.empty() )
DeleteAFakePlayer( ); // we delete a fp when the lobby has < 2 open slots or > 3 human players
else if ( GetSlotsOpen( ) > 3 && GetNumHumanPlayers( ) < 4 && m_FakePlayers.size() < 3 )
CreateFakePlayer( ); // we only allow a maximum of 3 fps to be created, no fp added once there're >=4 human ppls in lobby, the number of them then declines gradually
}

fix for !df. modify this in DeleteAFakePlayer() function
Code:
@@ -8477,11 +8549,11 @@
  m_Slots[i] = CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, m_Slots[i].GetTeam( ), m_Slots[i].GetColour( ), m_Slots[i].GetRace( ) );
  SendAll( m_Protocol->SEND_W3GS_PLAYERLEAVE_OTHERS( *j, PLAYERLEAVE_LOBBY ) );
  m_FakePlayers.erase(j);
- break;
+ SendAllSlotInfo( );
+ return;
  }
  }
  }
- SendAllSlotInfo( );
 }
 
 void CBaseGame :: DeleteFakePlayer( )
« Last Edit: August 30, 2012, 10:40:57 AM by Gen » Logged

Review Gen modded GhostOne version info by
1- ghost.cfg
2- details with changelog
thesavagepony
Devoted Member
**
Offline Offline

Posts: 257


View Profile
« Reply #51 on: August 27, 2012, 01:17:22 AM »

is this working well?
Logged
Gen
Distinct Contributor
***
Offline Offline

Posts: 749


View Profile
« Reply #52 on: August 27, 2012, 04:43:05 AM »

working perfectly.
Logged

Review Gen modded GhostOne version info by
1- ghost.cfg
2- details with changelog
doughnet
Distinct Contributor
***
Offline Offline

Posts: 713


View Profile WWW
« Reply #53 on: August 27, 2012, 03:28:39 PM »

I never come to understand what was good about having a fakeplayer in the lobby.  Anyone able to provide input?
Logged

Europe - Germany
USA - Dallas
www.w00ds.info
uakf.b
Chief Technical Officer
Distinct Contributor
*
Offline Offline

Posts: 5141



View Profile
« Reply #54 on: August 27, 2012, 04:01:13 PM »

I think it's to make players think that there are more players in the game than there actually are. If this is correct, then it's really stupid and no one should use it.
Logged
Gen
Distinct Contributor
***
Offline Offline

Posts: 749


View Profile
« Reply #55 on: August 28, 2012, 06:57:42 AM »

well it's up to you. Apart from dota games ( i never host) it's quite often 1-2 ppls join lobby and leave so early (all the time) b'cuz they can't afford to wait until all slots filled up. An outcome of a gameful of ppls is just amazing.
Logged

Review Gen modded GhostOne version info by
1- ghost.cfg
2- details with changelog
uakf.b
Chief Technical Officer
Distinct Contributor
*
Offline Offline

Posts: 5141



View Profile
« Reply #56 on: August 28, 2012, 10:35:33 AM »

That doesn't mean you should trick them into staying.
Logged
King_Crusher
Regular
*
Offline Offline

Posts: 77


View Profile
« Reply #57 on: August 28, 2012, 12:20:37 PM »

For most bots and games, if everyone who joined stayed for at least 2 minutes, then games would get started A LOT faster. The problem isn't always that people don't join, the problem is that they join and leave almost instantly when they see the lobby is nearly empty - and therefore the lobby stays nearly empty.
Logged
uakf.b
Chief Technical Officer
Distinct Contributor
*
Offline Offline

Posts: 5141



View Profile
« Reply #58 on: August 28, 2012, 02:04:33 PM »

That doesn't mean you should trick them into staying.

Now you're just wasting their time. They think the game is full, but nope, it's actually empty so they have to wait for another thirty minutes until the fake players are gone; while they could have finished a game of DotA in the meantime.
« Last Edit: August 28, 2012, 02:06:14 PM by uakf.b » Logged
styler_ro
Distinct Contributor
***
Offline Offline

Posts: 595



View Profile
« Reply #59 on: August 28, 2012, 06:10:29 PM »

btw, who use this? this patch kick users with tcp error.
Logged
Pages: 1 2 3 [4] 5
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!