コード例 #1
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;
}
コード例 #2
0
int CNFSaveDataManager::LoadSaveUserCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pSaveDataManager==NULL)
	{
		g_pSaveDataManager = new CNFSaveDataManager();
	} 

	tagSaveUserInfo Info;
	Info.strOpenID = GetStringFromTable("s_open_id",n_column,column_value,column_name);
	Info.strUserName = GetStringFromTable("s_username",n_column,column_value,column_name);
	Info.strPassWord = GetStringFromTable("s_password",n_column,column_value,column_name);

	g_pSaveDataManager->m_SaveUserInfo = Info;
	return 0;
}
コード例 #3
0
CFX_ByteString GetNameFromTT(const uint8_t* name_table,
                             uint32_t name_table_size,
                             uint32_t name_id) {
  if (!name_table || name_table_size < 6) {
    return CFX_ByteString();
  }
  uint32_t name_count = GET_TT_SHORT(name_table + 2);
  uint32_t string_offset = GET_TT_SHORT(name_table + 4);
  // We will ignore the possibility of overlap of structures and
  // string table as if it's all corrupt there's not a lot we can do.
  if (name_table_size < string_offset) {
    return CFX_ByteString();
  }

  const uint8_t* string_ptr = name_table + string_offset;
  uint32_t string_ptr_size = name_table_size - string_offset;
  name_table += 6;
  name_table_size -= 6;
  if (name_table_size < name_count * 12) {
    return CFX_ByteString();
  }

  for (uint32_t i = 0; i < name_count; i++, name_table += 12) {
    if (GET_TT_SHORT(name_table + 6) == name_id &&
        GET_TT_SHORT(name_table) == 1 && GET_TT_SHORT(name_table + 2) == 0) {
      return GetStringFromTable(string_ptr, string_ptr_size,
                                GET_TT_SHORT(name_table + 10),
                                GET_TT_SHORT(name_table + 8));
    }
  }
  return CFX_ByteString();
}
コード例 #4
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;
}
コード例 #5
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;
}
コード例 #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::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;
}
コード例 #8
0
int CNFStaticDataManager::LoadNPCStaticCallBack( void * para, int n_column, char ** column_value, char ** column_name )
{
	if (g_pStaticDataManager==NULL)
	{
		g_pStaticDataManager = new CNFStaticDataManager();
	} 

	int nNPCID = GetIntFromTable("i_npc_id",n_column,column_value,column_name);

	tagNPCStaticInfo Info;
	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_NPCStaticInfoMap[nNPCID] = Info;

	return 0;
}
コード例 #9
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;
}
コード例 #10
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;
}