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

◆ LoadSceneObjects()

void PluginConfigHandler::LoadSceneObjects ( SceneData scene)
inlineprotected

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

556 {
557 CfgParamInt cfg_obj_count = CfgParamInt.Cast( GetParamByName(PARAM_OBJ_COUNT, CFG_TYPE_INT) );
558 int obj_count = cfg_obj_count.GetValue();
559
560 for ( int i = 0; i < obj_count; ++i )
561 {
562 string param_name = PARAM_OBJ_NAME+"_"+i.ToString();
563
564 // Load scene object name
565 CfgParamArray cfg_obj = CfgParamArray.Cast( GetParamByName(param_name, CFG_TYPE_ARRAY) );
566
567 CfgParamString cfg_obj_type = CfgParamString.Cast( cfg_obj.GetValueByName(PARAM_OBJ_TYPE, CFG_TYPE_STRING) );
568 CfgParamString cfg_obj_pos = CfgParamString.Cast( cfg_obj.GetValueByName(PARAM_OBJ_POS, CFG_TYPE_STRING) );
569 CfgParamFloat cfg_obj_rot = CfgParamFloat.Cast( cfg_obj.GetValueByName(PARAM_OBJ_ROT, CFG_TYPE_FLOAT) );
570 CfgParamFloat cfg_obj_hlt = CfgParamFloat.Cast( cfg_obj.GetValueByName(PARAM_OBJ_HLT, CFG_TYPE_FLOAT) );
571 CfgParamString cfg_obj_iscr = CfgParamString.Cast( cfg_obj.GetValueByName(PARAM_OBJ_ISCR, CFG_TYPE_STRING) );
572
573//PrintString(itoa(i)+ " Loading param_name: "+ param_name+ " => object type: "+ cfg_obj_type.GetValue());
574
575 // Create Scene Object + position
576 SceneObject scn_obj = scene.CreateSceneObject(cfg_obj_type.GetValue(), cfg_obj_pos.GetValue().ToVector());
577
578 // Setup rotation
579 scn_obj.SetRotation(cfg_obj_rot.GetValue());
580 // Setup health
581 scn_obj.SetHealth(cfg_obj_hlt.GetValue());
582 // Setup init script
583 scn_obj.SetInitScript( DecodeInitScript(cfg_obj_iscr.GetValue()) );
584
585 // Setup indices for linked objects
586 CfgParamArray cfg_obj_param_links = CfgParamArray.Cast( GetParamByName(param_name + "_" + PARAM_OBJ_LNK, CFG_TYPE_ARRAY) );
587 array<ref CfgParam> cfg_obj_links = cfg_obj_param_links.GetValues();
588
589 for ( int lnko = 0; lnko < cfg_obj_links.Count(); lnko++ )
590 {
591 CfgParamInt cfg_obj_param_lnk_int = CfgParamInt.Cast( cfg_obj_links.Get(lnko) );
592 scn_obj.m_LinkedSceneObjectsIndices.Insert( cfg_obj_param_lnk_int.GetValue() );
593 }
594
595 string param_name_att = param_name +"_"+ PARAM_OBJ_ATT;
596
597 if ( ParamExist(param_name_att) )
598 {
599 CfgParamArray cfg_param_att = CfgParamArray.Cast( GetParamByName(param_name_att, CFG_TYPE_ARRAY) );
600
601 array<ref CfgParam> cfg_param_attachments = cfg_param_att.GetValues();
602
603 for ( int j = 0; j < cfg_param_attachments.Count(); ++j )
604 {
605 CfgParamString cfg_param_att_str = CfgParamString.Cast( cfg_param_attachments.Get(j) );
606 scn_obj.GetObject().GetInventory().CreateAttachment( cfg_param_att_str.GetValue() );
607 }
608 }
609 }
610 }
const int CFG_TYPE_ARRAY
Определения CfgParam.c:5
const int CFG_TYPE_INT
Определения CfgParam.c:2
const int CFG_TYPE_STRING
Определения CfgParam.c:1
const int CFG_TYPE_FLOAT
Определения CfgParam.c:3
const string PARAM_OBJ_ISCR
Определения PluginConfigScene.c:27
const string PARAM_OBJ_LNK
Определения PluginConfigScene.c:21
const string PARAM_OBJ_ATT
Определения PluginConfigScene.c:20
const string PARAM_OBJ_TYPE
Определения PluginConfigScene.c:22
const string PARAM_OBJ_ROT
Определения PluginConfigScene.c:24
const string PARAM_OBJ_HLT
Определения PluginConfigScene.c:26
const string PARAM_OBJ_POS
Определения PluginConfigScene.c:23
string DecodeInitScript(string script)
Определения PluginConfigScene.c:143
const string PARAM_OBJ_NAME
Определения PluginConfigScene.c:19
const string PARAM_OBJ_COUNT
Определения PluginConfigScene.c:18
SceneObject CreateSceneObject(string obj_name, vector pos)
Определения SceneData.c:285
void SetInitScript(string init_script)
Определения SceneObject.c:91
void SetRotation(float rot)
Определения SceneObject.c:504
ref array< int > m_LinkedSceneObjectsIndices
Определения SceneObject.c:15
void SetHealth(float value)
Определения SceneObject.c:453
EntityAI GetObject()
Определения SceneObject.c:59

Перекрестные ссылки CFG_TYPE_ARRAY, CFG_TYPE_FLOAT, CFG_TYPE_INT, CFG_TYPE_STRING, SceneData::CreateSceneObject(), DecodeInitScript(), SceneObject::GetObject(), SceneObject::m_LinkedSceneObjectsIndices, PARAM_OBJ_ATT, PARAM_OBJ_COUNT, PARAM_OBJ_HLT, PARAM_OBJ_ISCR, PARAM_OBJ_LNK, PARAM_OBJ_NAME, PARAM_OBJ_POS, PARAM_OBJ_ROT, PARAM_OBJ_TYPE, SceneObject::SetHealth(), SceneObject::SetInitScript() и SceneObject::SetRotation().

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