@@ -14,42 +14,43 @@ public static bool CreatePlayer(UIPlayerBuildCtrl __instance)
1414 {
1515 if ( __instance . actionOk )
1616 {
17+ __instance . actionOk = false ;
18+ __instance . Invoke ( "ResetActionOK" , 2.0f ) ;
19+
1720 var name = Traverse . Create ( __instance ) . Field ( "mNameInput" ) . Property ( "text" ) . GetValue < string > ( ) ;
1821
1922 if ( ! string . IsNullOrEmpty ( name ) )
2023 {
24+ if ( GameClientLobby . Self . myRoles . Any ( r => r . deletedFlag == 0 && r . name == name ) )
25+ {
26+ MessageBox_N . ShowOkBox ( PELocalization . GetString ( ErrorMessage . NAME_HAS_EXISTED ) ) ;
27+ return false ;
28+ }
29+
2130 var playerModel = Traverse . Create ( __instance ) . Field ( "mCurrent" ) . GetValue < PlayerModel > ( ) ;
2231 byte [ ] appearData = playerModel . mAppearData . Serialize ( ) ;
2332 byte [ ] nudeData = playerModel . mNude . Serialize ( ) ;
2433
2534 var steamId = SteamFriendPrcMgr . Instance . GetMyInfo ( ) . _SteamID . m_SteamID ;
2635
27- var roleId = steamId . GetHashCode ( ) ;
28-
29- if ( roleId > int . MaxValue - 4 )
30- {
31- roleId = 1 ;
32- }
36+ var roleId = steamId . GetHashCode ( ) ^ name . GetHashCode ( ) ;
3337
3438 var role = new CustomData . RoleInfo ( )
3539 {
3640 appearData = appearData ,
3741 nudeData = nudeData ,
3842 name = name ,
3943 sex = ( byte ) ( int ) Traverse . Create ( __instance ) . Property ( "Sex" ) . GetValue ( ) ,
40- steamId = SteamFriendPrcMgr . Instance . GetMyInfo ( ) . _SteamID . m_SteamID ,
41- roleID = roleId + GameClientLobby . Self . myRoles . Where ( r => r . deletedFlag != 1 ) . Select ( r => r . roleID ) . DefaultIfEmpty ( 0 ) . Max ( ) + 1
44+ steamId = steamId ,
45+ roleID = roleId
4246 } ;
4347
4448 GameClientLobby . Self . myRoles . Add ( role ) ;
4549 GameClientLobby . Self . myRolesExisted . Add ( role ) ;
46- role . roleID = GameClientLobby . Self . myRoles . Count ;
4750
4851 PatchUtils . SaveMultiplayerData ( ) ;
4952
5053 MLPlayerInfo . Instance . SetSelectedRole ( role . name ) ;
51- MLPlayerInfo . Instance . UpdateScene ( ) ;
52-
5354
5455 PeSceneCtrl . Instance . GotoMultiRoleScene ( ) ;
5556
0 commit comments