Просмотр полной версии : [Вопрос] по MySQL, лидеркам
GodFather
07.06.2014, 14:25
Короче, такая проблема... Вот у меня есть сис-ма лидерок, фракции создаются из игры, но как сделать, чтобы в диалоге автоматически выводило столько лидерок, сколько и в БД, то есть например, у меня в базе 8 лидерок, надо чтобы и в диалоге (DIALOG_STYLE_LIST) было 8 строк? А если сразу через игру создам девятую, выдал девять строк.
GodFather
07.06.2014, 15:47
Вот команда:
CMD:makeleaders(playerid,params[])
{
if(GetPVarInt(playerid,"Login") != 1) return SendMes(playerid,COLOR_B,"Необходимо авторизоваться!");
if(PlayerInfo[playerid][pAdmin] < 0) return 0;
new str[256];
format(str,sizeof(str),"{FFFFFF}%s - %s\n%s - %s",LeaderInfo[1][lName],LeaderInfo[1][lLeader],LeaderInfo[2][lName],LeaderInfo[2][lLeader]);
ShowPlayerDialog(playerid, 150, DIALOG_STYLE_LIST, "{FFFFFF}Панель управления лидерами", str, "Продолжить", "Отмена");
return 1;
}
Но она выводит только две фракции указанные в коде, а мне надо чтобы она сама узнавала сколько фракций в базе и выводила их в диалог.
Посылаем запрос в бд, узнаём число строк и циклом заполняем
GodFather
07.06.2014, 16:16
Посылаем запрос в юд, узнаём число строк и циклом заполняем
Можно по подробнее про "циклом заполняем"? :to_take_umbrage:
underwoker
07.06.2014, 16:49
Можно по подробнее про "циклом заполняем"? :to_take_umbrage:
Почитайте в вики про цикл. Так же в интернете можно найти множество примеров.
В общем так, можно наверно сделать лучше)
Сделал так, т.к. ни когда не связывался с РП модами :-)
MySQL R7
#define TABLE_FRAC "`fraction`"
new str[256],
rows,
fields,
buffer[24],
fname[20],
leader[24],
clickFraction[50][MAX_PLAYERS];
forward liderPanel(playerid);
CMD:makeleaders(playerid,params[])
{
if(GetPVarInt(playerid,"Login") != 1) return SendMes(playerid,COLOR_B,"Необходимо авторизоваться!");
if(PlayerInfo[playerid][pAdmin] < 0) return 0;
showLiderPanel(playerid);
return true;
}
showLiderPanel(playerid) {
str = "";
format(str, sizeof str, "SELECT * FROM "TABLE_FRAC"")
mysql_function_query(MYSQL, true, str, "liderPanel", "i", playerid);
return true;
}
public liderPanel(playerid) {
str = "";
cache_get_data(rows, fields);
if (!rows) ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "{FFFFFF}Панель управления лидерами", "{ffffff}На сервере еще нет созданных фракций", "Выход", "");
for (new i = 0; i != rows; i++) {
cache_get_field_content(i, "ID", buffer); sscanf(buffer, "d", clickFraction[i][playerid]);
cache_get_field_content(i, "Name", fname);
cache_get_field_content(i, "Leader", leader);
format(str, sizeof str, "%s %s - %s\n", str, fname, leader);
}
ShowPlayerDialog(playerid, 150, DIALOG_STYLE_LIST, "{FFFFFF}Панель управления лидерами", str, "Продолжить", "Отмена");
return true;
}
GodFather
07.06.2014, 20:21
В общем так, можно наверно сделать лучше)
Сделал так, т.к. ни когда не связывался с РП модами :-)
MySQL R7
#define TABLE_FRAC "`fraction`"
new str[256],
rows,
fields,
buffer[24],
fname[20],
leader[24],
clickFraction[50][MAX_PLAYERS];
forward liderPanel(playerid);
CMD:makeleaders(playerid,params[])
{
if(GetPVarInt(playerid,"Login") != 1) return SendMes(playerid,COLOR_B,"Необходимо авторизоваться!");
if(PlayerInfo[playerid][pAdmin] < 0) return 0;
showLiderPanel(playerid);
return true;
}
showLiderPanel(playerid) {
str = "";
format(str, sizeof str, "SELECT * FROM "TABLE_FRAC"")
mysql_function_query(MYSQL, true, str, "liderPanel", "i", playerid);
return true;
}
public liderPanel(playerid) {
str = "";
cache_get_data(rows, fields);
if (!rows) ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "{FFFFFF}Панель управления лидерами", "{ffffff}На сервере еще нет созданных фракций", "Выход", "");
for (new i = 0; i != rows; i++) {
cache_get_field_content(i, "ID", buffer); sscanf(buffer, "d", clickFraction[i][playerid]);
cache_get_field_content(i, "Name", fname);
cache_get_field_content(i, "Leader", leader);
format(str, sizeof str, "%s %s - %s\n", str, fname, leader);
}
ShowPlayerDialog(playerid, 150, DIALOG_STYLE_LIST, "{FFFFFF}Панель управления лидерами", str, "Продолжить", "Отмена");
return true;
}
Благодарю.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot