Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static enum E_FAMILY_MEMBERS_QUERY_INFO
- {
- Cache: E_FAMILY_MEMBERS_QUERY_CACHE,
- E_FAMILY_MEMBERS_QUERY_UNIX
- }
- static g_family_members_query_info[MAX_FAMILY][E_FAMILY_MEMBERS_QUERY_INFO];
- static g_reset_fam_members_query_info[E_FAMILY_MEMBERS_QUERY_INFO] =
- {
- Cache: 0,
- 0
- };
- stock ShowFamilyMembersAll(playerid)
- {
- new family_id = FamilyPlayer:GetId(playerid);
- if (family_id == INVALID_FAMILY_ID) {
- return false;
- }
- new row_count;
- if (g_family_members_query_info[family_id][E_FAMILY_MEMBERS_QUERY_CACHE] == g_reset_fam_members_query_info[E_FAMILY_MEMBERS_QUERY_CACHE] ||
- g_family_members_query_info[family_id][E_FAMILY_MEMBERS_QUERY_UNIX] < unix)
- {
- if (cache_is_valid(g_family_members_query_info[family_id][E_FAMILY_MEMBERS_QUERY_CACHE]))
- {
- cache_delete(g_family_members_query_info[family_id][E_FAMILY_MEMBERS_QUERY_CACHE]);
- }
- LoadFamilyMembersAll(playerid);
- }
- else
- {
- g_string_4096 = "[";
- cache_unset_active();
- cache_set_active(g_family_members_query_info[family_id][E_FAMILY_MEMBERS_QUERY_CACHE]);
- row_count = cache_num_rows();
- new
- name[MAX_PLAYER_NAME_RUS],
- rank_id,
- warn,
- completed_count,
- status,
- family_rank_name[MAX_FAMILY_RANK_NAME];
- for (new i = 0; i < row_count; i++)
- {
- cache_get_value_int(i, "rank_id", rank_id);
- cache_get_value_int(i, "warn", warn);
- cache_get_value_int(i, "status", status);
- cache_get_value_int(i, "completed_count", completed_count);
- cache_get_value(i, "name", name, sizeof(name));
- FamilyRank:GetName(family_id, rank_id, family_rank_name);
- format(g_string_256, sizeof(g_string_256), "\
- {\
- \"id\":%d,\
- \"status\":\"%d\",\
- \"nickName\":\"%s\",\
- \"post\":\"%s\",\
- \"rank\":%d, \
- \"totalQuests\":%d, \
- \"reprimand\":%d \
- },",
- i,
- status != 1001,
- name,
- family_rank_name,
- completed_count,
- warn
- );
- strcat(g_string_4096, g_string_256);
- if (strlen(g_string_4096) > 3900)
- {
- g_string_4096[strlen(g_string_4096) - 1] = EOS;
- strcat(g_string_4096, "]");
- // SendFamilyMembers(playerid, g_string_4096);
- g_string_4096 = "[";
- }
- }
- g_string_4096[strlen(g_string_4096) - 1] = EOS;
- strcat(g_string_4096, "]");
- // SendFamilyMembers(playerid, g_string_4096);
- }
- return true;
- }
- stock LoadFamilyMembersAll(playerid)
- {
- new family_id = FamilyPlayer:GetId(playerid);
- if (family_id == INVALID_FAMILY_ID)
- {
- return false;
- }
- format(g_string_512, sizeof g_string_512, "\
- SELECT \
- a.NickName AS name, \
- fp.account_id, \
- fp.rank_id, \
- fp.warn, \
- a.Online_status as status, \
- (SELECT COUNT(*) AS completed_count \
- FROM contracts \
- WHERE account_id = fp.account_id AND type = %d AND completed = 1) as contact_count) \
- FROM \
- "#FAMILY_PLAYER_TABLE_NAME" fp \
- INNER JOIN \
- Qelksekm AS a \
- ON \
- a.ID=fp.account_id \
- WHERE \
- fp.family_id=%d \
- ORDER BY \
- fp.rank_id DESC",
- CONTRACT_TYPE_FAMILY,
- Family:GetSQLId(family_id));
- mysql_tquery(connection[HANDLE_SERVER], g_string_512, "OnLoadFamilyMembersAll", "ddd", playerid, ConnectPersonalID[playerid], family_id);
- return true;
- }
- void OnLoadFamilyMembersAll(playerid, connect_id, family_id)
- {
- if (connect_id != ConnectPersonalID[playerid])
- {
- return true;
- }
- new rows = cache_num_rows();
- if (rows == 0)
- {
- return SendErrorNotify(playerid, "Информация о составе семьи не найдена");
- }
- g_family_members_query_info[family_id][E_FAMILY_MEMBERS_QUERY_CACHE] = cache_save();
- g_family_members_query_info[family_id][E_FAMILY_MEMBERS_QUERY_UNIX] = unix + FAMILY_MEMBERS_QUERY_DELAY;
- ShowFamilyMembersAll(playerid);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement