PDA

Просмотр полной версии : [Вопрос] DIALOG_STYLE_LIST



Mr.DeViLsS
13.04.2014, 00:06
Название рангов берется из БД,их всего 20,но почему только 14 отображаются в "DIALOG_STYLE_LIST". В чем проблема,подскажите пожалуйста.


CMD:giverank(playerid, params[])
{
if(PlayerLogged[playerid] == 0) return true;
if(PlayerInfo[playerid][pLeader] > 0 || PlayerInfo[playerid][pRank] >= 9 || PlayerInfo[playerid][pMember] > 0 && strcmp(PlayerInfo[playerid][pSendername],FracInfo[PlayerInfo[playerid][pMember]][fAssistant],true) == 0)
{
if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /giverank [id игрока]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_GREY, TPLAYEROFFLINE);
if(PlayerLogged[params[0]] == 0) return SendClientMessage(playerid, COLOR_GREY, TPLAYERNLOGGED);
if(PlayerInfo[playerid][pLeader] > 0 && params[0] == playerid) return SendClientMessage(playerid, COLOR_GREY, "Лидер не может дать себе ранг!");
if(PlayerInfo[params[0]][pMember] == 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок не находиться в организации!");
if(PlayerInfo[params[0]][pLeader] > 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок лидер другой организации!");
if(!IsPlayerInRangeOfPlayer(8.0, playerid, params[0])) return SendClientMessage(playerid, COLOR_GREY, "Игрок слишком далеко!");
if(PlayerInfo[params[0]][pMember] != PlayerInfo[playerid][pMember]) return SendClientMessage(playerid, COLOR_GREY, "Игрок находиться в другой организации!");
new str[90], str2[1200], full = 0;
for(new i = 1; i <= MAX_RANK; i++)
{
if(PlayerInfo[playerid][pMember] == F_ARMY && i == 13) break;
if(PlayerInfo[playerid][pMember] == F_AVIO && i == 13) break;
if(!strcmp(FracRank[PlayerInfo[playerid][pMember]][i+1], "None",true)) break;
format(str,sizeof(str),"Ранг №%i - %s\n",i,FracRank[PlayerInfo[playerid][pMember]][i]);
strcat(str2, str);
full++;
}
if(full == 0) return SendClientMessage(playerid, COLOR_GREY, "Ошибка! Обратитесь к администрации!");
SetPVarInt(playerid, "PlayerRank", params[0]);
ShowPlayerDialog(playerid, D_FRACMENU+1, 2, "Ранг", str2, "Принять", "Отмена");
}
else SendClientMessage(playerid, COLOR_GREY, YouCanNot);
return true;
}

L0ndl3m
13.04.2014, 00:11
Попробуйте увеличить количество ячеек в массиве str2.

Mr.DeViLsS
13.04.2014, 00:15
Попробуйте увеличить количество ячеек в массиве str2.
:scratch_one-s_head: str2[512] - так было, поставил str2[1200] - не помогло

^_^
13.04.2014, 00:22
:scratch_one-s_head: str2[512] - так было, поставил str2[1200] - не помогло
Какое значение присвоено макросу/константы MAX_RANK?

Mr.DeViLsS
13.04.2014, 00:28
Какое значение присвоено макросу/константы MAX_RANK?


#define MAX_RANK 14

^_^
13.04.2014, 00:30
#define MAX_RANK 14

их всего 20,но почему только 14 отображаются
Ты сам себе ответил на свой же вопрос ;).
p.s: Советую разобраться с циклами, в учебнике Даньэля это хорошо описано.

Mr.DeViLsS
13.04.2014, 00:35
Ты сам себе ответил на свой же вопрос ;).
p.s: Советую разобраться с циклами, в учебнике Даньэля это хорошо описано.
Спасибо! Закройте тему.