DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ OnSelectPlayer()

void ManBase::OnSelectPlayer ( )
inlineprotected

add callbacks for ai target system

См. определение в файле PlayerBase.c строка 6014

6015 {
6016 //Print("PlayerBase | OnSelectPlayer()");
6017 m_PlayerSelected = true;
6018
6019 m_QuickBarBase.updateSlotsCount();
6020
6021 m_WeaponManager.SortMagazineAfterLoad();
6022
6023 PlayerIdentity identity = GetIdentity();
6024
6025#ifdef FEATURE_NETWORK_RECONCILIATION
6026 if (identity)
6027 {
6029 identity.Possess(this);
6030 }
6031#endif
6032
6033 if (GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_SERVER || !g_Game.IsMultiplayer())
6034 {
6035 if (identity)
6036 {
6037 m_CachedPlayerID = identity.GetId();
6038 m_CachedPlayerName = identity.GetName();
6039 }
6040
6042 SetAITargetCallbacks(new AITargetCallbacksPlayer(this));
6043
6044 array<ref Param> params = new array<ref Param>;
6045 if (m_aQuickBarLoad)
6046 {
6047 int count = m_aQuickBarLoad.Count();
6048 Param1<int> paramCount = new Param1<int>(count);
6049 params.Insert(paramCount);
6050 for (int i = 0; i < count; i++)
6051 {
6052 m_QuickBarBase.OnSetEntityNoSync(m_aQuickBarLoad.Get(i).param1,m_aQuickBarLoad.Get(i).param2);
6053 params.Insert(m_aQuickBarLoad.Get(i));
6054 }
6055
6056 if (count > 0 && g_Game.IsMultiplayer())
6057 {
6058 g_Game.RPC(this, ERPCs.RPC_INIT_SET_QUICKBAR, params, true, identity);
6059 }
6060 m_aQuickBarLoad = NULL;
6061 }
6062
6064 GetModifiersManager().SetModifiers(true);
6065
6066 SetSynchDirty();
6067
6068 if (g_Game.IsMultiplayer())
6069 {
6070 //Drop item warning
6072 {
6073 g_Game.RPCSingleParam(this, ERPCs.RPC_WARNING_ITEMDROP, null, true, identity);
6074 m_ProcessUIWarning = false;
6075 }
6076
6077 g_Game.GetMission().SyncRespawnModeInfo(identity);
6078 }
6079 }
6080
6081 if (GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_SERVER)
6082 {
6083 m_ActionManager = new ActionManagerServer(this);
6084 m_ConstructionActionData = new ConstructionActionData();
6085
6086 CheckForGag();
6087 }
6088 else if (GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_CLIENT)
6089 {
6090 m_ActionManager = new ActionManagerClient(this);
6091 m_CraftingManager = new CraftingManager(this,m_ModuleRecipesManager);
6092 m_ConstructionActionData = new ConstructionActionData();
6093
6094 }
6095 else if (GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_AI_SINGLEPLAYER)
6096 {
6097 m_ActionManager = new ActionManagerServer(this);
6098 }
6099
6100 if (GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_CLIENT)
6101 {
6102 if (g_Game.GetMission())
6103 {
6104 g_Game.GetMission().ResetGUI();
6105 // force update player
6106 GetDayZGame().GetBacklit().UpdatePlayer(true);
6107 }
6108
6109 m_DeathCheckTimer = new Timer();
6110 m_DeathCheckTimer.Run(0.1, this, "CheckDeath", null, true);
6111 PPEManagerStatic.GetPPEManager().StopAllEffects(PPERequesterCategory.ALL);
6113
6114 int characterCount = g_Game.GetMenuData().GetCharactersCount() - 1;
6115 int idx = g_Game.GetMenuData().GetLastPlayedCharacter();
6116 if (idx == GameConstants.DEFAULT_CHARACTER_MENU_ID || idx > characterCount)
6117 {
6118 g_Game.GetCallQueue(CALL_CATEGORY_GUI).Call(SetNewCharName);
6119 }
6120
6121 g_Game.GetMission().EnableAllInputs(true);
6122
6124 m_PresenceNotifier.Init(this);
6125 #ifdef DIAG_DEVELOPER
6126 m_TargetTemperatureDiag = PluginTargetTemperature.Cast(GetPlugin(PluginTargetTemperature));
6127 m_TargetTemperatureDiag.Init(this);
6128 #endif
6129 OnGameplayDataHandlerSync();//only here for legacy reasons
6130 }
6131
6132#ifdef BOT
6133 m_Bot = new Bot(this);
6134 m_Bot.Start(true, new MyBotTrigger(this));
6135#endif
6136 }
DayZGame g_Game
Определения DayZGame.c:3942
DayZGame GetDayZGame()
Определения DayZGame.c:3944
ERPCs
Определения ERPCs.c:2
PPERequesterCategory
Определения PPEConstants.c:29
override float Get()
Определения PlayerStatBase.c:134
PluginBase GetPlugin(typename plugin_type)
Определения PluginManager.c:325
void PluginPresenceNotifier()
Определения PluginPresenceNotifier.c:107
PlayerStat< float > GetStatSpecialty()
Определения PlayerBase.c:7915
ref CraftingManager m_CraftingManager
Определения PlayerBase.c:130
void CheckForGag()
Определения PlayerBase.c:6181
ModifiersManager GetModifiersManager()
Определения PlayerBase.c:7838
string m_CachedPlayerName
Определения PlayerBase.c:222
void CheckForBurlap()
Определения PlayerBase.c:6159
bool m_ProcessUIWarning
Определения PlayerBase.c:68
SoftSkillsManager GetSoftSkillsManager()
Определения PlayerBase.c:6978
override void OnGameplayDataHandlerSync()
Определения PlayerBase.c:5758
PluginPresenceNotifier m_PresenceNotifier
Определения PlayerBase.c:80
string m_CachedPlayerID
Определения PlayerBase.c:223
ref array< ref Param2< EntityAI, int > > m_aQuickBarLoad
Определения PlayerBase.c:243
PluginRecipesManager m_ModuleRecipesManager
Определения PlayerBase.c:84
ref WeaponManager m_WeaponManager
Определения PlayerBase.c:129
ref ConstructionActionData m_ConstructionActionData
Определения PlayerBase.c:271
ref Timer m_DeathCheckTimer
Определения PlayerBase.c:146
void SetNewCharName()
Определения PlayerBase.c:6151
QuickBarBase m_QuickBarBase
Определения PlayerBase.c:133
ActionManagerBase m_ActionManager
Определения PlayerBase.c:90
proto string GetName()
nick (short) name of player
proto string GetId()
unique id of player (hashed steamID, database Xbox id...) can be used in database or logs
void InitSpecialty(float specialty_level)
Определения SoftSkillsManager.c:42
DayZPlayerInstanceType
defined in C++
Определения dayzplayer.c:1071
proto native DayZPlayerInstanceType GetInstanceType()
const int CALL_CATEGORY_GUI
Определения 3_Game/DayZ/tools/tools.c:9

Перекрестные ссылки CALL_CATEGORY_GUI, CheckForBurlap(), CheckForGag(), GameConstants::DEFAULT_CHARACTER_MENU_ID, g_Game, Get(), GetDayZGame(), PlayerIdentityBase::GetId(), GetInstanceType(), GetModifiersManager(), PlayerIdentityBase::GetName(), GetPlugin(), PPEManagerStatic::GetPPEManager(), GetSoftSkillsManager(), GetStatSpecialty(), m_ActionManager, m_aQuickBarLoad, m_CachedPlayerID, m_CachedPlayerName, m_ConstructionActionData, m_CraftingManager, m_DeathCheckTimer, m_ModuleRecipesManager, m_PresenceNotifier, m_ProcessUIWarning, m_QuickBarBase, m_WeaponManager, PlayerBase::OnGameplayDataHandlerSync(), PluginPresenceNotifier() и SetNewCharName().

Используется в OnSpawnedFromConsole().