samperonline
Умник
У меня ранги фракций меняются лидерами организаций и сохраняются в бд, хотел сделать возврат стандартных рангов, но че то не получается
сделал через массив как посоветовали, но не могу понять как все это сделать чтобы работало
вот ранги в бд
вот я сделал массив рангов
вот case где лидер меняет ранги
вот тут я пытаюсь сделать возврат ранга но че то не получается вообще
сделал через массив как посоветовали, но не могу понять как все это сделать чтобы работало
вот ранги в бд
C++:
-- Структура таблицы `fraction_ranks`
--
CREATE TABLE IF NOT EXISTS `fraction_ranks` (
`fracid` int(11) NOT NULL,
`rang_0` varchar(40) NOT NULL,
`rang_1` varchar(40) NOT NULL,
`rang_2` varchar(40) NOT NULL,
`rang_3` varchar(40) NOT NULL,
`rang_4` varchar(40) NOT NULL,
`rang_5` varchar(40) NOT NULL,
`rang_6` varchar(40) NOT NULL,
`rang_7` varchar(40) NOT NULL,
`rang_8` varchar(40) NOT NULL,
`rang_9` varchar(40) NOT NULL,
`rang_10` varchar(40) NOT NULL,
`rang_11` varchar(40) NOT NULL,
`rang_12` varchar(40) NOT NULL,
`rang_13` varchar(40) NOT NULL,
`rang_14` varchar(40) NOT NULL,
`settings` varchar(20) NOT NULL DEFAULT '0,0,0',
UNIQUE KEY `fracid` (`fracid`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
--
-- Дамп данных таблицы `fraction_ranks`
--
INSERT INTO `fraction_ranks` (`fracid`, `rang_0`, `rang_1`, `rang_2`, `rang_3`, `rang_4`, `rang_5`, `rang_6`, `rang_7`, `rang_8`, `rang_9`, `rang_10`, `rang_11`, `rang_12`, `rang_13`, `rang_14`, `settings`) VALUES
(0, 'Кадет', 'Офицер', 'Мл. сержант', 'Сержант', 'Ст. сержант', 'Прапорщик', 'Ст. прапорщик', 'Мл. Лейтенант', 'Лейтенант', 'Детектив', 'Капитан', 'Майор', 'Подполковник', 'Полковник', 'Шериф', '14, 14, 14, 14'),
(1, 'Стажёр', 'Мл.агент', 'Агент', 'Ст. агент', 'Агент CID', 'Глава GNK', 'Глава CID', 'Инспектор FBI', 'Зам.Директора FBI', 'Директор FBI', '', '', '', '', '', '9, 9, 9, 9'),
(2, 'Рядовой', 'Ефрейтор', 'Мл. Сержант', 'Сержант', 'Ст. Сержант', 'Старшина', 'Прапорщик', 'Мл. лейтенант', 'Лейтенант', 'Ст. лейтенант', 'Капитан', 'Майор', 'Подполковник', 'Полковник', 'Генерал', '14, 14, 14, 14'),
(3, 'Интерн', 'Санитар', 'Мед.брат', 'Спасатель', 'Нарколог', 'Доктор', 'Психолог', 'Хирург', 'Зам. Гл.врач', 'Глав. врач', '', '', '', '', '', '9, 9, 9, 9'),
(4, 'Новицио', 'Консильери', 'Младший Босс', 'Капо', 'Сотто-Капо', 'Боец', 'Солдато', 'Сомбаттенте', 'Ассосиато', 'Новицио', '', '', '', '', '', '9, 9, 9, 9'),
(5, 'Вакасю', 'Кёдай', 'Сятэйгасира', 'Вакагасира', 'Со-хонбутё', 'Камбу', 'Оядзи', 'Сайко-комон', 'Оябун-кобун', 'Кумитё', '', '', '', '', '', '9, 9, 9, 9'),
(6, 'Стажер', 'Водитель Зам. мэра', 'Водитель мэра', 'Охрана мэрии', 'Ст. охрана', 'Адвокат', 'Телохранитель', 'Депутат', 'Заместитель Мэра', 'Мэр Штата', '', '', '', '', '', '9, 9, 9, 9'),
(7, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0,0,0,0'),
(8, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0,0,0,0'),
(9, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0,0,0,0'),
(10, 'Стажёр', 'Консультант', 'Ассистент инструктора', 'Мл. инструктор', 'Инструктор', 'Ст. инструктор', 'Менеджер', 'Гл. менеджер', 'Зам. директора', 'Директор Автошколы', '', '', '', '', '', '9, 9, 9, 9'),
(11, 'Блайд', 'Бастер', 'Крэкер', 'Гун бро', 'Ап бро', 'Гангстер', 'Федерал блок', 'Фолкс', 'Райч Нига', 'Биг Вилли', '', '', '', '', '', '9, 9, 9, 9'),
(12, 'Новито', 'Ординарио', 'Локал', 'Верификадо', 'Бандито', 'V. E. G', 'Ассесино', 'Лидер V. E. G.', 'Падрино', 'Падре', '', '', '', '', '', '9, 9, 9, 9'),
(13, 'Шнырь', 'Фраер', 'Бык', 'Барыга', 'Блатной', 'Свояк', 'Браток', 'Вор', 'Вор в законе', 'Авторитет', '', '', '', '', '', '9, 9, 9, 9'),
(14, 'Плэйя', 'Хастла', 'Килла', 'Юонг Г', 'Гангста', 'О. Г.', 'Мобста', 'Де кинг', 'Легенд', 'Мэд дог', '', '', '', '', '', '9, 9, 9, 9'),
(15, 'Практикант', 'Стажер', 'Программист', 'Ведущий', 'Папарацци', 'Репортёр', 'Фотограф', 'Журналист', 'Редактор', 'Гл. редактор', 'Тех. директор', 'Зам.директора', 'Директор', '', '', '12, 12, 12, 12'),
(16, 'Перро', 'Тирадор', 'Геттор', 'Лас Геррас', 'Мириндо', 'Сабио', 'Инвасор', 'Тесореро', 'Нестро', 'Падре', '', '', '', '', '', '9, 9, 9, 9'),
(17, 'Ладрон', 'Новато', 'Амиго', 'Мачо', 'Джуниор', 'Эрмано', 'Бандидо', 'Ауторидид', 'Аджунто', 'Падре', '', '', '', '', '', '9, 9, 9, 9'),
(18, 'Рядовой', 'Капрал', 'Мл.Сержант', 'Сержант', 'Ст.Сержант', 'Старшина', 'Прапорщик', 'Мл.Лейтенант', 'Лейтенант', 'Ст.Лейтенант', 'Капитан', 'Майор', 'Полковник', 'Генерал', 'Маршал', '13,13,14,14'),
(19, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0,0,0,0'),
(20, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0,0,0,0'),
(21, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0,0,0,0'),
(22, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0,0,0,0'),
(23, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0,0,0,0'),
(24, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0,0,0,0');
вот я сделал массив рангов
C++:
static const fraction_change_rang[19][15][32] = {
{"Кадет', 'Офицер', 'Мл. сержант', 'Сержант', 'Ст. сержант', 'Прапорщик', 'Ст. прапорщик', 'Мл. Лейтенант', 'Лейтенант', 'Детектив', 'Капитан', 'Майор', 'Подполковник', 'Полковник', 'Шериф"},
{"Стажёр', 'Мл.агент', 'Агент', 'Ст. агент', 'Агент CID', 'Глава GNK', 'Глава CID', 'Инспектор FBI', 'Зам.Директора FBI', 'Директор FBI"},
{"Рядовой', 'Ефрейтор', 'Мл. Сержант', 'Сержант', 'Ст. Сержант', 'Старшина', 'Прапорщик', 'Мл. лейтенант', 'Лейтенант', 'Ст. лейтенант', 'Капитан', 'Майор', 'Подполковник', 'Полковник', 'Генерал"},
{"Интерн', 'Санитар', 'Мед.брат', 'Спасатель', 'Нарколог', 'Доктор', 'Психолог', 'Хирург', 'Зам. Гл.врач', 'Глав. врач"},
{"Новицио', 'Консильери', 'Младший Босс', 'Капо', 'Сотто-Капо', 'Боец', 'Солдато', 'Сомбаттенте', 'Ассосиато', 'Новицио"},
{"Вакасю', 'Кёдай', 'Сятэйгасира', 'Вакагасира', 'Со-хонбутё', 'Камбу', 'Оядзи', 'Сайко-комон', 'Оябун-кобун', 'Кумитё"},
{"Стажер', 'Водитель Зам. мэра', 'Водитель мэра', 'Охрана мэрии', 'Ст. охрана', 'Адвокат', 'Телохранитель', 'Депутат', 'Заместитель Мэра', 'Мэр Штата"},
{"", "", "", "", "", "", "", "", "", "", "", "", "", "", ""},
{"", "", "", "", "", "", "", "", "", "", "", "", "", "", ""},
{"", "", "", "", "", "", "", "", "", "", "", "", "", "", ""},
{"Стажёр', 'Консультант', 'Ассистент инструктора', 'Мл. инструктор', 'Инструктор', 'Ст. инструктор', 'Менеджер', 'Гл. менеджер', 'Зам. директора', 'Директор Автошколы"},
{"Блайд', 'Бастер', 'Крэкер', 'Гун бро', 'Ап бро', 'Гангстер', 'Федерал блок', 'Фолкс', 'Райч Нига', 'Биг Вилли"},
{"Новито', 'Ординарио', 'Локал', 'Верификадо', 'Бандито', 'V. E. G', 'Ассесино', 'Лидер V. E. G.', 'Падрино', 'Падре"},
{"Шнырь', 'Фраер', 'Бык', 'Барыга', 'Блатной', 'Свояк', 'Браток', 'Вор', 'Вор в законе', 'Авторитет"},
{"Плэйя', 'Хастла', 'Килла', 'Юонг Г', 'Гангста', 'О. Г.', 'Мобста', 'Де кинг', 'Легенд', 'Мэд дог"},
{"Практикант', 'Стажер', 'Программист', 'Ведущий', 'Папарацци', 'Репортёр', 'Фотограф', 'Журналист', 'Редактор', 'Гл. редактор', 'Тех. директор', 'Зам.директора', 'Директор"},
{"Перро', 'Тирадор', 'Геттор', 'Лас Геррас', 'Мириндо', 'Сабио', 'Инвасор', 'Тесореро', 'Нестро', 'Падре"},
{"Ладрон', 'Новато', 'Амиго', 'Мачо', 'Джуниор', 'Эрмано', 'Бандидо', 'Ауторидид', 'Аджунто', 'Падре"},
{"Рядовой', 'Капрал', 'Мл.Сержант', 'Сержант', 'Ст.Сержант', 'Старшина', 'Прапорщик', 'Мл.Лейтенант', 'Лейтенант', 'Ст.Лейтенант', 'Капитан', 'Майор', 'Полковник', 'Генерал', 'Маршал"}
};
C++:
case 9395:
{
if(!response) return DeletePVar(playerid,"edit_rank");
if(!PlayerInfo[playerid][pMember]) return 1;
if(strlen(inputtext) <= 0 || strlen(inputtext) >= 40) return SPD(playerid, 9395, DSI, "{FFCC00}Изменение названия ранга", "{FFFFFF}Используйте название ранга", "Выбрать", "Отмена");
new slot = GetPVarInt(playerid, "edit_rank");
format(stringer,112,"%s[%d] изменил ранг \"%d\" с \"%s\" на \"%s\" ",PlayerInfo[playerid][pNames],playerid,slot+1,fRankName[PlayerInfo[playerid][pMember]-1][slot],inputtext);
strmid(fRankName[PlayerInfo[playerid][pMember]-1][slot], inputtext, 0, strlen(inputtext));
SendAdminMessage(COLOR_GREY,stringer);
SendClientMessage(playerid, C_BLUE,stringer);
mysql_format(connects, mysql_query_, sizeof(mysql_query_),"UPDATE `fraction_ranks` SET `rang_%i` = '%e' WHERE `fracid` = '%i'",slot,fRankName[PlayerInfo[playerid][pMember]-1][slot], PlayerInfo[playerid][pMember]-1);
mysql_tquery(connects,mysql_query_,"","");
DeletePVar(playerid,"edit_rank");
return 1;
}
C++:
case 9396:
{
if(!PlayerInfo[playerid][pMember]) return 1;
strmid(fraction_change_rang[PlayerInfo[playerid][pMember]-1]);
mysql_format(connects, mysql_query_, sizeof(mysql_query_),"UPDATE `fraction_ranks` SET `rang_%i` = '%e' WHERE `fracid` = '%i'",fraction_change_rang[PlayerInfo[playerid][pMember]-1], PlayerInfo[playerid][pMember]-1);
mysql_tquery(connects,mysql_query_,"","");
return 1;
}
