コード例 #1
0
int CNFStaticDataManager::LoadWaveStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 

	int nStageID = GetIntFromTable("i_stage_id",n_column,column_value,column_name);
	int nWaveID = GetIntFromTable("i_wave_id",n_column,column_value,column_name);

	int nEnemyID = GetIntFromTable("i_enemy_id",n_column,column_value,column_name);
	int nEnemyLevel = GetIntFromTable("i_enemy_level",n_column,column_value,column_name);
	int nStartTime = GetIntFromTable("i_start_time",n_column,column_value,column_name);
	int nSpaceTime = GetIntFromTable("i_space_time",n_column,column_value,column_name);
	int nEnemyCount = GetIntFromTable("i_enemy_count",n_column,column_value,column_name);
	float fCreatePosX = GetIntFromTable("f_pos_x",n_column,column_value,column_name);
	float fCreatePosY = GetIntFromTable("f_pos_y",n_column,column_value,column_name);

	//遍历敌人个数,添加敌人
	for (int i=0;i<nEnemyCount;i++)
	{
		tagWaveItemInfo WaveItemInfo;
		WaveItemInfo.nEnemyID = nEnemyID;
		WaveItemInfo.nEnemyLevel = nEnemyLevel;
		WaveItemInfo.fCreatePosX = fCreatePosX;
		WaveItemInfo.fCreatePosY = fCreatePosY;
		WaveItemInfo.nStartTime = nStartTime + i*nSpaceTime;

		g_pStaticDataManager->m_StageWaveStaticInfoMap[nStageID][nWaveID].push_back(WaveItemInfo);
	}

	return 0;
}
コード例 #2
0
int CNFStaticDataManager::LoadSkillStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 

	int nRoleID = GetIntFromTable("i_role_id",n_column,column_value,column_name);
	int nSkillID = GetIntFromTable("i_skill_id",n_column,column_value,column_name);

	tagSkillStaticInfo Info;
	Info.nSkillCD = GetIntFromTable("i_skill_cd",n_column,column_value,column_name);
	Info.nSkillCD_g = GetIntFromTable("i_skill_cd_g",n_column,column_value,column_name);
	Info.fCostMp = GetFloatFromTable("f_cost_mp",n_column,column_value,column_name);
	Info.fCostMp_g = GetFloatFromTable("f_cost_mp_g",n_column,column_value,column_name);
	Info.nIsCommonSkill = GetIntFromTable("i_is_common_skill",n_column,column_value,column_name);

	/************************************************************************/
	/*			技能块信息操作                                                                     */
	/************************************************************************/
	//1.得到Json的字符串
	string strSkillItem = GetStringFromTable("s_skill_item_vec",n_column,column_value,column_name);	
	//2.解析Json,得到Item信息
	CNFJsonTranslater::SharedData()->GetSkillItemInfoFromJson(strSkillItem.c_str(),Info.vecSkillItem,nRoleID,nSkillID);

	//排序:根据延迟时间,升序排列
	sort(Info.vecSkillItem.begin(),Info.vecSkillItem.end(),lessmark);
	
	for (CNFSkillItemVec::iterator iter = Info.vecSkillItem.begin();iter != Info.vecSkillItem.end();iter++)
	{
		iter->bIsCommonSkill = Info.nIsCommonSkill>0?true:false;
	}

	Info.strAniName = GetStringFromTable("s_ani_name",n_column,column_value,column_name);
	Info.strSkillName = GetStringFromTable("s_skill_name",n_column,column_value,column_name);
	Info.strSkillIntroduce = GetStringFromTable("s_skill_introduce",n_column,column_value,column_name);

	g_pStaticDataManager->m_SkillStaticInfoMap[nRoleID][nSkillID] = Info;

	////得到Json
	//char * szJson = NULL;
	//CNFJsonTranslater::SharedData()->GetJsonFromSkillItemInfo(szJson,ItemInfo);

	return 0;
}
コード例 #3
0
int CNFStaticDataManager::LoadDoorStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 

	int nDoorID = GetIntFromTable("i_door_id",n_column,column_value,column_name);

	tagDoorStaticInfo Info;
	Info.nRelaceStageID = GetIntFromTable("i_replace_stage_id",n_column,column_value,column_name);
	Info.strArmatureName = GetStringFromTable("s_armature_name",n_column,column_value,column_name);
	Info.fLength = GetFloatFromTable("f_length",n_column,column_value,column_name);
	Info.fWidth = GetFloatFromTable("f_width",n_column,column_value,column_name);
	Info.fHeight = GetFloatFromTable("f_height",n_column,column_value,column_name);

	g_pStaticDataManager->m_DoorStaticInfoMap[nDoorID] = Info;

	return 0;
}
コード例 #4
0
int CNFStaticDataManager::LoadArticleStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 

	int nArticleID = GetIntFromTable("i_article_id",n_column,column_value,column_name);

	tagArticleStaticInfo NewArticleStaticInfo;
	NewArticleStaticInfo.fHp = GetFloatFromTable("f_hp",n_column,column_value,column_name);
	NewArticleStaticInfo.nIsInvincible = GetIntFromTable("i_is_invincible",n_column,column_value,column_name);
	NewArticleStaticInfo.fLength_Hold = GetFloatFromTable("f_length_hold",n_column,column_value,column_name);
	NewArticleStaticInfo.fWidth_Hold = GetFloatFromTable("f_width_hold",n_column,column_value,column_name);
	NewArticleStaticInfo.fHeight_Hold = GetFloatFromTable("f_height_hold",n_column,column_value,column_name);

	g_pStaticDataManager->m_ArticleStaticInfoMap[nArticleID]=NewArticleStaticInfo;

	return 0;
}
コード例 #5
0
int CNFStaticDataManager::LoadProtagonistStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 

	int nRoleID = GetIntFromTable("i_role_id",n_column,column_value,column_name);

	tagProtagonistStaticInfo NewProtagonistStaticInfo;
	NewProtagonistStaticInfo.fHP = GetFloatFromTable("f_hp",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fHp_g = GetFloatFromTable("f_hp_g",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fMP = GetFloatFromTable("f_mp",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fMp_g = GetFloatFromTable("f_mp_g",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fDefense = GetFloatFromTable("f_defense",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fDefense_g = GetFloatFromTable("f_defense_g",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fAttack = GetFloatFromTable("f_attack",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fAttack_g = GetFloatFromTable("f_attack_g",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fDomination = GetFloatFromTable("f_domination",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fMoveSpeed = GetFloatFromTable("f_move_speed",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fAttackSpeed = GetFloatFromTable("f_attack_speed",n_column,column_value,column_name);
	
	NewProtagonistStaticInfo.nCrit = GetIntFromTable("i_crit",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fCritDamage = GetFloatFromTable("f_crit_damage",n_column,column_value,column_name);
	NewProtagonistStaticInfo.nCrickTime = GetIntFromTable("i_crick_time",n_column,column_value,column_name);
	NewProtagonistStaticInfo.nConverselyTime = GetIntFromTable("i_conversely_time",n_column,column_value,column_name);
	NewProtagonistStaticInfo.nHitTarget = GetIntFromTable("i_hit_target",n_column,column_value,column_name);
	NewProtagonistStaticInfo.nAvoid = GetIntFromTable("i_avoid",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fTreatCoefficient = GetFloatFromTable("f_treat_coefficient",n_column,column_value,column_name);

	NewProtagonistStaticInfo.fLength_Hold = GetFloatFromTable("f_length_hold",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fWidth_Hold = GetFloatFromTable("f_width_hold",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fHeight_Hold = GetFloatFromTable("f_height_hold",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fLength_Move = GetFloatFromTable("f_length_move",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fWidth_Move = GetFloatFromTable("f_width_move",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fHeight_Move = GetFloatFromTable("f_height_move",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fLength_Conversely = GetFloatFromTable("f_length_conversely",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fWidth_Conversely = GetFloatFromTable("f_width_conversely",n_column,column_value,column_name);
	NewProtagonistStaticInfo.fHeight_Conversely = GetFloatFromTable("f_height_conversely",n_column,column_value,column_name);
	
	//主角ai的Json
	string strProAIJson = GetStringFromTable("s_protagonist_ai_json",n_column,column_value,column_name);
	CNFJsonTranslater::SharedData()->GetProtagonistAIInfoFromJson(strProAIJson.c_str(),NewProtagonistStaticInfo.tProtagonistAIInfo,nRoleID);
	
	NewProtagonistStaticInfo.strBeHitSoundName = GetStringFromTable("s_behit_sound_name",n_column,column_value,column_name);
	NewProtagonistStaticInfo.strDeadSoundName = GetStringFromTable("s_dead_sound_name",n_column,column_value,column_name);
	NewProtagonistStaticInfo.strArmatureName = GetStringFromTable("s_armature_name",n_column,column_value,column_name);
	NewProtagonistStaticInfo.nCommonAttackNum = GetIntFromTable("i_common_attack_num",n_column,column_value,column_name);

	g_pStaticDataManager->m_ProtagonistStaticInfoMap[nRoleID]=NewProtagonistStaticInfo;

	return 0;
}
コード例 #6
0
int CNFSaveDataManager::LoadSaveServerCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pSaveDataManager==NULL)
	{
		g_pSaveDataManager = new CNFSaveDataManager();
	} 

	tagSaveServerInfo Info;
	Info.nServerID = GetIntFromTable("i_server_id",n_column,column_value,column_name);
	Info.strServerName = GetStringFromTable("s_server_name",n_column,column_value,column_name);

	g_pSaveDataManager->m_SaveServerInfo = Info;
	return 0;
}
コード例 #7
0
int CNFStaticDataManager::LoadLevelUpExpStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 

	int nLevelID = GetIntFromTable("i_level_id",n_column,column_value,column_name);

	tagLevelUpExpStaticInfo NewLevelUpExpStaticInfo;
	NewLevelUpExpStaticInfo.fLevelUpExp = GetFloatFromTable("f_levelup_exp",n_column,column_value,column_name);
	
	g_pStaticDataManager->m_LevelUpexpStaticInfoMap[nLevelID]=NewLevelUpExpStaticInfo;

	return 0;
}
コード例 #8
0
int CNFStaticDataManager::LoadEnemyStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 
	
	int nRoleID = GetIntFromTable("i_role_id",n_column,column_value,column_name);

	tagEnemyStaticInfo NewEnemyStaticInfo;
	NewEnemyStaticInfo.fHP = GetFloatFromTable("f_hp",n_column,column_value,column_name);
	NewEnemyStaticInfo.fHp_g = GetFloatFromTable("f_hp_g",n_column,column_value,column_name);
	NewEnemyStaticInfo.fMP = GetFloatFromTable("f_mp",n_column,column_value,column_name);
	NewEnemyStaticInfo.fMp_g = GetFloatFromTable("f_mp_g",n_column,column_value,column_name);
	NewEnemyStaticInfo.fDefense = GetFloatFromTable("f_defense",n_column,column_value,column_name);
	NewEnemyStaticInfo.fDefense_g = GetFloatFromTable("f_defense_g",n_column,column_value,column_name);
	NewEnemyStaticInfo.fAttack = GetFloatFromTable("f_attack",n_column,column_value,column_name);
	NewEnemyStaticInfo.fAttack_g = GetFloatFromTable("f_attack_g",n_column,column_value,column_name);
	NewEnemyStaticInfo.fDomination = GetFloatFromTable("f_domination",n_column,column_value,column_name);
	NewEnemyStaticInfo.fMoveSpeed = GetFloatFromTable("f_move_speed",n_column,column_value,column_name);
	NewEnemyStaticInfo.fAttackSpeed = GetFloatFromTable("f_attack_speed",n_column,column_value,column_name);

	NewEnemyStaticInfo.nCrit = GetIntFromTable("i_crit",n_column,column_value,column_name);
	NewEnemyStaticInfo.fCritDamage = GetFloatFromTable("f_crit_damage",n_column,column_value,column_name);
	NewEnemyStaticInfo.nCrickTime = GetIntFromTable("i_crick_time",n_column,column_value,column_name);
	NewEnemyStaticInfo.nConverselyTime = GetIntFromTable("i_conversely_time",n_column,column_value,column_name);
	NewEnemyStaticInfo.nTurnRoundTime = GetIntFromTable("i_turn_round_time",n_column,column_value,column_name);
	NewEnemyStaticInfo.nHitTarget = GetIntFromTable("i_hit_target",n_column,column_value,column_name);
	NewEnemyStaticInfo.nAvoid = GetIntFromTable("i_avoid",n_column,column_value,column_name);
	NewEnemyStaticInfo.fTreatCoefficient = GetFloatFromTable("f_treat_coefficient",n_column,column_value,column_name);

	NewEnemyStaticInfo.fLength_Hold = GetFloatFromTable("f_length_hold",n_column,column_value,column_name);
	NewEnemyStaticInfo.fWidth_Hold = GetFloatFromTable("f_width_hold",n_column,column_value,column_name);
	NewEnemyStaticInfo.fHeight_Hold = GetFloatFromTable("f_height_hold",n_column,column_value,column_name);
	NewEnemyStaticInfo.fLength_Move = GetFloatFromTable("f_length_move",n_column,column_value,column_name);
	NewEnemyStaticInfo.fWidth_Move = GetFloatFromTable("f_width_move",n_column,column_value,column_name);
	NewEnemyStaticInfo.fHeight_Move = GetFloatFromTable("f_height_move",n_column,column_value,column_name);
	NewEnemyStaticInfo.fLength_Conversely = GetFloatFromTable("f_length_conversely",n_column,column_value,column_name);
	NewEnemyStaticInfo.fWidth_Conversely = GetFloatFromTable("f_width_conversely",n_column,column_value,column_name);
	NewEnemyStaticInfo.fHeight_Conversely = GetFloatFromTable("f_height_conversely",n_column,column_value,column_name);
	NewEnemyStaticInfo.fNearDis = GetFloatFromTable("f_near_dis",n_column,column_value,column_name);
	NewEnemyStaticInfo.fFarDis = GetFloatFromTable("f_far_dis",n_column,column_value,column_name);
	NewEnemyStaticInfo.strArmatureName = GetStringFromTable("s_armature_name",n_column,column_value,column_name);

	g_pStaticDataManager->m_EnemyStaticInfoMap[nRoleID]=NewEnemyStaticInfo;

	return 0;
}
コード例 #9
0
int CNFStaticDataManager::LoadStageStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 

	int nStageID = GetIntFromTable("i_stage_id",n_column,column_value,column_name);

	tagStageStaticInfo NewStageStaticInfo;
	NewStageStaticInfo.fRate = GetFloatFromTable("f_stage_rate",n_column,column_value,column_name);
	NewStageStaticInfo.fGravity = GetFloatFromTable("f_stage_gravity",n_column,column_value,column_name);
	NewStageStaticInfo.fLength = GetFloatFromTable("f_3d_length",n_column,column_value,column_name);
	NewStageStaticInfo.fWidth = GetFloatFromTable("f_3d_width",n_column,column_value,column_name);
	NewStageStaticInfo.fHeight = GetFloatFromTable("f_3d_height",n_column,column_value,column_name);
	NewStageStaticInfo.fProtagonistX =GetFloatFromTable("f_protagonist_x",n_column,column_value,column_name);
	NewStageStaticInfo.fProtagonistY = GetFloatFromTable("f_protagonist_y",n_column,column_value,column_name);
	NewStageStaticInfo.fProtagonistZ = GetFloatFromTable("f_protagonist_z",n_column,column_value,column_name);
	NewStageStaticInfo.strTMXWorldName = GetStringFromTable("s_tmx_world_name",n_column,column_value,column_name);
	
	//得到tmx地图 Json信息
	string strTmxJson = GetStringFromTable("s_tmx_json",n_column,column_value,column_name);
	CNFJsonTranslater::SharedData()->GetTmxInfoFromJson(strTmxJson.c_str(),NewStageStaticInfo.TmxStaticInfoMap,nStageID);

	//得到npc Json信息
	string strNPCJson = GetStringFromTable("s_npc_json",n_column,column_value,column_name);
	CNFJsonTranslater::SharedData()->GetNPCInfoFromJson(strNPCJson.c_str(),NewStageStaticInfo.NPCJsonInfoVec,nStageID);
	//得到npc 静态信息
	for (CNFNPCJsonInfoVec::iterator iter = NewStageStaticInfo.NPCJsonInfoVec.begin();iter != NewStageStaticInfo.NPCJsonInfoVec.end();iter++)
		CNFStaticDataManager::SharedData()->GetNPCStaticInfo(iter->nNPCID,iter->NPCStaticInfo);

	//得到door Json信息
	string strDoorJson = GetStringFromTable("s_door_json",n_column,column_value,column_name);
	CNFJsonTranslater::SharedData()->GetDoorInfoFromJson(strDoorJson.c_str(),NewStageStaticInfo.DoorJsonInfoVec,nStageID);
	//得到door 静态信息
	for (CNFDoorJsonInfoVec::iterator iter = NewStageStaticInfo.DoorJsonInfoVec.begin();iter != NewStageStaticInfo.DoorJsonInfoVec.end();iter++)
		CNFStaticDataManager::SharedData()->GetDoorStaticInfo(iter->nDoorID,iter->DoorStaticInfo);

	g_pStaticDataManager->m_StageStaticInfoMap[nStageID]=NewStageStaticInfo;

	return 0;
}
コード例 #10
0
ファイル: winsvc.c プロジェクト: starwing/luvi
static int table_to_ServiceStatus(lua_State *L, SERVICE_STATUS *status) {
  memset(status, 0, sizeof(SERVICE_STATUS));
  if (lua_isnil(L, -1)) {
    return 0;
  }
  if (!lua_istable(L, -1)) {
    return luaL_error(L, "table expected");
  }

  status->dwCheckPoint = GetIntFromTable(L, "dwCheckPoint");
  status->dwControlsAccepted = GetIntFromTable(L, "dwControlsAccepted");
  status->dwCurrentState = GetIntFromTable(L, "dwCurrentState");
  status->dwServiceSpecificExitCode = GetIntFromTable(L, "dwServiceSpecificExitCode");
  status->dwServiceType = GetIntFromTable(L, "dwServiceType");
  status->dwWaitHint = GetIntFromTable(L, "dwWaitHint");
  status->dwWin32ExitCode = GetIntFromTable(L, "dwWin32ExitCode");

  return 0;
}
コード例 #11
0
int CNFStaticDataManager::LoadEquipStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 

	int nEquip = GetIntFromTable("i_equip_id",n_column,column_value,column_name);

	tagEquipStaticInfo Info;
	Info.strEquipName = GetStringFromTable("s_equip_name",n_column,column_value,column_name);
	Info.nEquipPositionID = GetIntFromTable("i_equip_position_id",n_column,column_value,column_name);
	Info.nEquipQuality = GetIntFromTable("i_equip_quality",n_column,column_value,column_name);
	Info.nEquipMustAID = GetIntFromTable("i_equip_must_a_id",n_column,column_value,column_name);
	Info.fEquipMustABasicPoint = GetIntFromTable("f_equip_must_a_basic_point",n_column,column_value,column_name);
	Info.fEquipMustAGroupPoint = GetIntFromTable("f_equip_must_a_group_point",n_column,column_value,column_name);

	g_pStaticDataManager->m_EquipStaticInfoMap[nEquip] = Info;

	return 0;
}
コード例 #12
0
int CNFStaticDataManager::LoadEnemyAIStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 

	int nRoleID = GetIntFromTable("i_role_id",n_column,column_value,column_name);

	CMapAI NewMapAI;
	//敌人AI条件1
	CMapAIActionOnKind NewAIKind1;
	NewAIKind1[enEnemyAIHold] = GetIntFromTable("i_samecross_inrangelong_and_hold",n_column,column_value,column_name);
	NewAIKind1[enEnemyAICrosswiseApproach] = GetIntFromTable("i_samecross_inrangelong_and_crossapproach",n_column,column_value,column_name);
	NewAIKind1[enEnemyAICrosswiseDisapproach] = GetIntFromTable("i_samecross_inrangelong_and_crossdisapproach",n_column,column_value,column_name);
	NewAIKind1[enEnemyLengthwaysApproach] = GetIntFromTable("i_samecross_inrangelong_and_lengthwaysapproach",n_column,column_value,column_name);
	NewAIKind1[enEnemyLengthwaysDisapproach] = GetIntFromTable("i_samecross_inrangelong_and_lengthwaysdisapproach",n_column,column_value,column_name);
	NewAIKind1[enEnemyDirectlyApproach] = GetIntFromTable("i_samecross_inrangelong_and_directlyapproach",n_column,column_value,column_name);
	NewAIKind1[enEnemyCircuity] = GetIntFromTable("i_samecross_inrangelong_and_circuiy",n_column,column_value,column_name);
	NewAIKind1[enEnemyAttackTypeShort] = GetIntFromTable("i_samecross_inrangelong_and_attackshort",n_column,column_value,column_name);
	NewAIKind1[enEnemyAttackTypeLong] = GetIntFromTable("i_samecross_inrangelong_and_attacklong",n_column,column_value,column_name);
	NewMapAI[enEnemyCondition_SameCrosswise_InRangeLong] = NewAIKind1;
	
	//敌人AI条件2
	CMapAIActionOnKind NewAIKind2;
	NewAIKind2[enEnemyAIHold] = GetIntFromTable("i_samecross_inrangeshort_and_hold",n_column,column_value,column_name);
	NewAIKind2[enEnemyAICrosswiseApproach] = GetIntFromTable("i_samecross_inrangeshort_and_crossapproach",n_column,column_value,column_name);
	NewAIKind2[enEnemyAICrosswiseDisapproach] = GetIntFromTable("i_samecross_inrangeshort_and_crossdisapproach",n_column,column_value,column_name);
	NewAIKind2[enEnemyLengthwaysApproach] = GetIntFromTable("i_samecross_inrangeshort_and_lengthwaysapproach",n_column,column_value,column_name);
	NewAIKind2[enEnemyLengthwaysDisapproach] = GetIntFromTable("i_samecross_inrangeshort_and_lengthwaysdisapproach",n_column,column_value,column_name);
	NewAIKind2[enEnemyDirectlyApproach] = GetIntFromTable("i_samecross_inrangeshort_and_directlyapproach",n_column,column_value,column_name);
	NewAIKind2[enEnemyCircuity] = GetIntFromTable("i_samecross_inrangeshort_and_circuiy",n_column,column_value,column_name);
	NewAIKind2[enEnemyAttackTypeShort] = GetIntFromTable("i_samecross_inrangeshort_and_attackshort",n_column,column_value,column_name);
	NewAIKind2[enEnemyAttackTypeLong] = GetIntFromTable("i_samecross_inrangeshort_and_attacklong",n_column,column_value,column_name);
	NewMapAI[enEnemyCondition_SameCrosswise_InRangeShort] = NewAIKind2;

	//敌人AI条件3
	CMapAIActionOnKind NewAIKind3;
	NewAIKind3[enEnemyAIHold] = GetIntFromTable("i_samecross_noinrange_and_hold",n_column,column_value,column_name);
	NewAIKind3[enEnemyAICrosswiseApproach] = GetIntFromTable("i_samecross_noinrange_and_crossapproach",n_column,column_value,column_name);
	NewAIKind3[enEnemyAICrosswiseDisapproach] = GetIntFromTable("i_samecross_noinrange_and_crossdisapproach",n_column,column_value,column_name);
	NewAIKind3[enEnemyLengthwaysApproach] = GetIntFromTable("i_samecross_noinrange_and_lengthwaysapproach",n_column,column_value,column_name);
	NewAIKind3[enEnemyLengthwaysDisapproach] = GetIntFromTable("i_samecross_noinrange_and_lengthwaysdisapproach",n_column,column_value,column_name);
	NewAIKind3[enEnemyDirectlyApproach] = GetIntFromTable("i_samecross_noinrange_and_directlyapproach",n_column,column_value,column_name);
	NewAIKind3[enEnemyCircuity] = GetIntFromTable("i_samecross_noinrange_ands_circuiy",n_column,column_value,column_name);
	NewAIKind3[enEnemyAttackTypeShort] = GetIntFromTable("i_samecross_noinrange_and_attackshort",n_column,column_value,column_name);
	NewAIKind3[enEnemyAttackTypeLong] = GetIntFromTable("i_samecross_noinrange_and_attacklong",n_column,column_value,column_name);
	NewMapAI[enEnemyCondition_SameCrosswise_NotInRange] = NewAIKind3;

	//敌人AI条件4
	CMapAIActionOnKind NewAIKind4;
	NewAIKind4[enEnemyAIHold] = GetIntFromTable("i_notsamecross_near_and_hold",n_column,column_value,column_name);
	NewAIKind4[enEnemyAICrosswiseApproach] = GetIntFromTable("i_notsamecross_near_and_crossapproach",n_column,column_value,column_name);
	NewAIKind4[enEnemyAICrosswiseDisapproach] = GetIntFromTable("i_notsamecross_near_and_crossdisapproach",n_column,column_value,column_name);
	NewAIKind4[enEnemyLengthwaysApproach] = GetIntFromTable("i_notsamecross_near_and_lengthwaysapproach",n_column,column_value,column_name);
	NewAIKind4[enEnemyLengthwaysDisapproach] = GetIntFromTable("i_notsamecross_near_and_lengthwaysdisapproach",n_column,column_value,column_name);
	NewAIKind4[enEnemyDirectlyApproach] = GetIntFromTable("i_notsamecross_near_and_directlyapproach",n_column,column_value,column_name);
	NewAIKind4[enEnemyCircuity] = GetIntFromTable("i_notsamecross_near_and_circuiy",n_column,column_value,column_name);
	NewAIKind4[enEnemyAttackTypeShort] = GetIntFromTable("i_notsamecross_near_and_attackshort",n_column,column_value,column_name);
	NewAIKind4[enEnemyAttackTypeLong] = GetIntFromTable("i_notsamecross_near_and_attacklong",n_column,column_value,column_name);
	NewMapAI[enEnemyCondition_NotSameCrosswiss_Near] = NewAIKind4;

	//敌人AI条件5
	CMapAIActionOnKind NewAIKind5;
	NewAIKind5[enEnemyAIHold] = GetIntFromTable("i_notsamecross_far_faceplayer_and_hold",n_column,column_value,column_name);
	NewAIKind5[enEnemyAICrosswiseApproach] = GetIntFromTable("i_notsamecross_far_faceplayer_and_crossapproach",n_column,column_value,column_name);
	NewAIKind5[enEnemyAICrosswiseDisapproach] = GetIntFromTable("i_notsamecross_far_faceplayer_and_crossdisapproach",n_column,column_value,column_name);
	NewAIKind5[enEnemyLengthwaysApproach] = GetIntFromTable("i_notsamecross_far_faceplayer_and_lengthwaysapproach",n_column,column_value,column_name);
	NewAIKind5[enEnemyLengthwaysDisapproach] = GetIntFromTable("i_notsamecross_far_faceplayer_and_lengthwaysdisapproach",n_column,column_value,column_name);
	NewAIKind5[enEnemyDirectlyApproach] = GetIntFromTable("i_notsamecross_far_faceplayer_and_directlyapproach",n_column,column_value,column_name);
	NewAIKind5[enEnemyCircuity] = GetIntFromTable("i_notsamecross_far_faceplayer_and_circuiy",n_column,column_value,column_name);
	NewAIKind5[enEnemyAttackTypeShort] = GetIntFromTable("i_notsamecross_far_faceplayer_and_attackshort",n_column,column_value,column_name);
	NewAIKind5[enEnemyAttackTypeLong] = GetIntFromTable("i_notsamecross_far_faceplayer_and_attacklong",n_column,column_value,column_name);
	NewMapAI[enEnemyCondition_NotSameCrosswiss_Far_FacePlayer] = NewAIKind5;

	//敌人AI条件6
	CMapAIActionOnKind NewAIKind6;
	NewAIKind6[enEnemyAIHold] = GetIntFromTable("i_notsamecross_far_notfaceplayer_and_hold",n_column,column_value,column_name);
	NewAIKind6[enEnemyAICrosswiseApproach] = GetIntFromTable("i_notsamecross_far_notfaceplayer_and_crossapproach",n_column,column_value,column_name);
	NewAIKind6[enEnemyAICrosswiseDisapproach] = GetIntFromTable("i_notsamecross_far_notfaceplayer_and_crossdisapproach",n_column,column_value,column_name);
	NewAIKind6[enEnemyLengthwaysApproach] = GetIntFromTable("i_notsamecross_far_notfaceplayer_and_lengthwaysapproach",n_column,column_value,column_name);
	NewAIKind6[enEnemyLengthwaysDisapproach] = GetIntFromTable("i_notsamecross_far_notfaceplayer_and_lengthwaysdisapproach",n_column,column_value,column_name);
	NewAIKind6[enEnemyDirectlyApproach] = GetIntFromTable("i_notsamecross_far_notfaceplayer_and_directlyapproach",n_column,column_value,column_name);
	NewAIKind6[enEnemyCircuity] = GetIntFromTable("i_notsamecross_far_notfaceplayer_and_circuiy",n_column,column_value,column_name);
	NewAIKind6[enEnemyAttackTypeShort] = GetIntFromTable("i_notsamecross_far_notfaceplayer_and_attackshort",n_column,column_value,column_name);
	NewAIKind6[enEnemyAttackTypeLong] = GetIntFromTable("i_notsamecross_far_notfaceplayer_and_attacklong",n_column,column_value,column_name);
	NewMapAI[enEnemyCondition_NotSameCrosswiss_Far_NotFacePlayer] = NewAIKind6;

	g_pStaticDataManager->m_EnemyAIStaticInfoMap[nRoleID]=NewMapAI;

	return 0;
}
コード例 #13
0
ファイル: winsvc.c プロジェクト: starwing/luvi
static int lua_ChangeServiceConfig2(lua_State *L) {
  SC_HANDLE h = lua_touserdata(L, 1);
  DWORD dwInfoLevel = luaL_checkint(L, 2);
  union {
    SERVICE_DELAYED_AUTO_START_INFO autostart;
    SERVICE_DESCRIPTION description;
    SERVICE_FAILURE_ACTIONS failure_actions;
    SERVICE_FAILURE_ACTIONS_FLAG failure_actions_flag;
    SERVICE_PREFERRED_NODE_INFO preferred_node;
    SERVICE_PRESHUTDOWN_INFO preshutdown_info;
    SERVICE_REQUIRED_PRIVILEGES_INFO privileges_info;
    SERVICE_SID_INFO sid_info;
    SERVICE_LAUNCH_PROTECTED_INFO protected_info;
  } info, *infop = &info;
  memset(infop, 0, sizeof(info));
  luaL_checktype(L, 3, LUA_TTABLE);

  switch (dwInfoLevel)
  {
  case SERVICE_CONFIG_DELAYED_AUTO_START_INFO:
    info.autostart.fDelayedAutostart = GetIntFromTable(L, "fDelayedAutostart");
    break;
  case SERVICE_CONFIG_DESCRIPTION:
    info.description.lpDescription = (char*)GetStringFromTable(L, "lpDescription");
    break;
  case SERVICE_CONFIG_FAILURE_ACTIONS:
    info.failure_actions.dwResetPeriod = GetIntFromTable(L, "dwResetPeriod");
    info.failure_actions.lpRebootMsg = (char*)GetStringFromTable(L, "lpRebootMsg");
    lua_pushstring(L, "lpsaActions");
    lua_gettable(L, -2);
    if (lua_type(L, -1) == LUA_TTABLE) {
      info.failure_actions.cActions = lua_objlen(L, -1);
      if (info.failure_actions.cActions) {
        info.failure_actions.lpsaActions = LocalAlloc(LPTR, sizeof(SC_ACTION) * info.failure_actions.cActions);
      }
      DWORD i = 0;
      while (i < info.failure_actions.cActions) {
        lua_rawgeti(L, -1, i+1);
        luaL_checktype(L, -1, LUA_TTABLE);
        info.failure_actions.lpsaActions[i].Delay = GetIntFromTable(L, "Delay");
        info.failure_actions.lpsaActions[i].Type = GetIntFromTable(L, "Type");
        lua_pop(L, 1);
        ++i;
      }
      lua_pop(L, 1);
    }
    break;
  case SERVICE_CONFIG_FAILURE_ACTIONS_FLAG:
    info.failure_actions_flag.fFailureActionsOnNonCrashFailures = GetIntFromTable(L, "fFailureActionsOnNonCrashFailures");
    break;
  case SERVICE_CONFIG_PREFERRED_NODE:
    info.preferred_node.usPreferredNode = GetIntFromTable(L, "usPreferredNode");
    info.preferred_node.fDelete = GetIntFromTable(L, "fDelete");
    break;
  case SERVICE_CONFIG_PRESHUTDOWN_INFO:
    info.preshutdown_info.dwPreshutdownTimeout = GetIntFromTable(L, "dwPreshutdownTimeout");
    break;
  case SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO:
    info.privileges_info.pmszRequiredPrivileges = (char*)GetStringFromTable(L, "pmszRequiredPrivileges");
    break;
  case SERVICE_CONFIG_SERVICE_SID_INFO:
    info.sid_info.dwServiceSidType = GetIntFromTable(L, "dwServiceSidType");
    break;
  /* case SERVICE_CONFIG_TRIGGER_INFO unsupported by ANSI version of ChangeServiceConfig2 */
  case SERVICE_CONFIG_LAUNCH_PROTECTED:
    info.protected_info.dwLaunchProtected = GetIntFromTable(L, "dwLaunchProtected");
    break;
  default:
    infop = NULL;
    break;
  }

  BOOL ret = ChangeServiceConfig2(h, dwInfoLevel, infop);

  switch (dwInfoLevel)
  {
  case SERVICE_CONFIG_FAILURE_ACTIONS:
    LocalFree(info.failure_actions.lpsaActions);
    break;
  default:
    break;
  }
  lua_pushboolean(L, ret);
  if (ret) {
    lua_pushnil(L);
  }
  else {
    lua_pushinteger(L, GetLastError());
  }
  return 2;
}