Если Вы нашли ответ на вопрос, пожалуйста, пометьте необходимый ответ лучшим (галочка сбоку от сообщения) и поблагодарите автора этого ответа поднятием репутации (плюс в нижней правой части сообщения). Спасибо.
Подробнее:
FAQ по форуму
Как пометить ответ лучшим

Вопросы

1. Помогите сделать систему списка лидеров, что бы было видно кто в данный момент на лидерки и даже кто оффлайн, Пример:
- [Организация] Nick_Name | Выговоров:

Поделиться сообщением


Ссылка на сообщение

9 ответов на этот вопрос

  • 0

Заменить: 
 

Спойлер

forward CheckLeaders(playerid); 
public CheckLeaders(playerid)
{
	new string[400], rows, fields, leaderid, onlinestatus, name[MAX_PLAYER_NAME], online[8]; 
	cache_get_data(rows, fields); 
	if(!rows) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Ошибка", "Лидеров нет!", "Окей", "");
	for(new i; i < rows; i++)
    {
        cache_get_field_content(i, "name", name, dbHandle, MAX_PLAYER_NAME);
     	leaderid = cache_get_field_content_int(i, "leader"); 
        onlinestatus = cache_get_field_content_int(i, "online"); 
        switch(onlinestatus)
       	{
        	case 0: online = "Оффлайн";
            case 1: online = "Онлайн";
       	}
                        
       	format(string, sizeof(string), "%s{FFFFFF}%s - фракция '%s' [%s]\n", name, Fraction_Name[leaderid], online); 
    }
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Лидеры фракций", string, "Закрыть", "");
    return true;
}

 

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Daniil Roslyakov Что у вас в базе данных отвечает за лидерство? Скиньте массив с наименованиями фракций, а также назовите столбец и таблицу, в которой хранится данные о лидерстве игрока. 

Поделиться сообщением


Ссылка на сообщение
  • 0

@stibs

Спойлер

static const stock Fraction_Name[MAX_FRACTIONS][32] = {
    "Нет", // 0
    "Администрация призедента", // 1
    "Полиция", // 2
    "ГИБДД", // 3
    "ФСБ", // 4
    "Больница", // 5
    "Автошкола", // 6
    "Итальянская Мафия",// 7
    "Армия", // 8
    "ОПГ 'Ореховское'", // 9
    "ОПГ 'Солнцевское'", // 10
    "Русская Мафия",// 11
    "СМИ" // 12
};

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@stibs Данные в таблице: accounts
 

Спойлер

CREATE TABLE IF NOT EXISTS `accounts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(24) CHARACTER SET utf8 NOT NULL,
  `password` varchar(32) CHARACTER SET utf8 NOT NULL,
  `ip` varchar(16) CHARACTER SET utf8 NOT NULL DEFAULT '0.0.0.0',
  `admin` int(11) NOT NULL DEFAULT '0',
  `securitycode` int(11) NOT NULL DEFAULT '0',
  `checkcode` int(11) NOT NULL DEFAULT '0',
  `mail` varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT 'None',
  `level` int(11) NOT NULL DEFAULT '1',
  `cash` int(11) NOT NULL DEFAULT '200',
  `bank` int(11) NOT NULL DEFAULT '250',
  `exp` int(11) NOT NULL DEFAULT '0',
  `regip` varchar(16) CHARACTER SET utf8 NOT NULL DEFAULT '0.0.0.0',
  `datareg` varchar(15) CHARACTER SET utf8 NOT NULL DEFAULT '0.0.0',
  `leader` int(3) NOT NULL DEFAULT '0',
  `templeader` int(3) NOT NULL DEFAULT '0',
  `member` int(3) NOT NULL DEFAULT '0',
  `rank` int(3) NOT NULL DEFAULT '0',
  `warn` int(11) NOT NULL DEFAULT '0',
  `sex` int(11) NOT NULL DEFAULT '1',
  `age` int(11) NOT NULL DEFAULT '14',
  `model` int(11) NOT NULL DEFAULT '0',
  `memberskin` int(11) NOT NULL DEFAULT '0',
  `lic` varchar(16) CHARACTER SET utf8 NOT NULL DEFAULT '0, 0, 0, 0, 0',
  `guns` varchar(56) COLLATE utf8_bin NOT NULL DEFAULT '0,0,0,0,0,0,0,0,0,0,0,0,0',
  `ammos` varchar(56) COLLATE utf8_bin NOT NULL DEFAULT '0,0,0,0,0,0,0,0,0,0,0,0,0',
  `mute` int(11) NOT NULL DEFAULT '0',
  `pick` int(11) NOT NULL DEFAULT '0',
  `checktime` int(6) NOT NULL DEFAULT '0',
  `news` int(11) NOT NULL DEFAULT '0',
  `phone` int(11) NOT NULL DEFAULT '0',
  `phonenumber` int(11) NOT NULL DEFAULT '0',
  `text` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT '0, 0, 0, 0',
  `jail` int(11) NOT NULL DEFAULT '0',
  `jailtime` int(11) NOT NULL DEFAULT '0',
  `wanted` int(11) NOT NULL DEFAULT '0',
  `wantedtime` int(11) NOT NULL DEFAULT '0',
  `wantedwho` varchar(24) CHARACTER SET utf8 NOT NULL DEFAULT 'None',
  `wantedreason` varchar(32) CHARACTER SET utf8 NOT NULL DEFAULT 'None',
  `heal` varchar(11) CHARACTER SET utf8 NOT NULL DEFAULT '100.0',
  `drugs` int(11) NOT NULL DEFAULT '0',
  `patron` int(11) NOT NULL DEFAULT '0',
  `gunamount` int(11) NOT NULL DEFAULT '0',
  `crimes` int(11) NOT NULL DEFAULT '0',
  `job` int(11) NOT NULL DEFAULT '0',
  `married` int(11) NOT NULL DEFAULT '0',
  `whomarried` varchar(24) CHARACTER SET utf8 NOT NULL DEFAULT 'None',
  `referal` varchar(24) CHARACTER SET utf8 NOT NULL DEFAULT 'None',
  `refmoney` int(11) NOT NULL DEFAULT '0',
  `paycheck` int(11) NOT NULL DEFAULT '0',
  `charity` int(11) NOT NULL DEFAULT '0',
  `vip` int(11) NOT NULL DEFAULT '0',
  `viptime` int(11) NOT NULL DEFAULT '0',
  `time` int(11) NOT NULL DEFAULT '0',
  `fstyle` int(11) NOT NULL DEFAULT '0',
  `credits` int(11) NOT NULL DEFAULT '0',
  `totalcredits` int(11) NOT NULL DEFAULT '0',
  `skin1` int(11) NOT NULL DEFAULT '0',
  `skin2` int(11) NOT NULL DEFAULT '0',
  `skin3` int(11) NOT NULL DEFAULT '0',
  `spawnchange` int(11) NOT NULL DEFAULT '0',
  `sdpistol` int(11) NOT NULL DEFAULT '0',
  `deserteagle` int(11) NOT NULL DEFAULT '0',
  `shotgun` int(11) NOT NULL DEFAULT '0',
  `mp5` int(11) NOT NULL DEFAULT '0',
  `ak47` int(11) NOT NULL DEFAULT '0',
  `m4` int(11) NOT NULL DEFAULT '0',
  `pistol` int(11) NOT NULL DEFAULT '0',
  `microuzi` int(11) NOT NULL DEFAULT '0',
  `hunger` int(11) NOT NULL DEFAULT '100',
  `healths` float NOT NULL DEFAULT '100',
  `sportexp` int(11) NOT NULL DEFAULT '0',
  `online` int(11) NOT NULL DEFAULT '0',
  `zakon` int(11) NOT NULL DEFAULT '0',
  `city` int(11) NOT NULL DEFAULT '0',
  `repcar` varchar(16) CHARACTER SET utf8 NOT NULL DEFAULT '0, 0',
  `bed` int(11) NOT NULL,
  `watch` int(11) NOT NULL DEFAULT '0',
  `ciggare` int(11) NOT NULL DEFAULT '0',
  `sprunk` int(11) NOT NULL DEFAULT '0',
  `mask` int(11) NOT NULL DEFAULT '0',
  `phonebalance` int(11) NOT NULL DEFAULT '100',
  `truckskill` int(11) NOT NULL DEFAULT '0',
  `veh_number` varchar(128) COLLATE utf8_bin NOT NULL DEFAULT 'Транзит/Транзит',
  `cModel` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0/0',
  `cClass` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '1/1',
  `cFuel` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0/0',
  `cMilleage` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0/0',
  `cColor1` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0/0',
  `cColor2` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0/0',
  `cLock` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0/0',
  `cCost` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0/0',
  `cVehcom` varchar(128) COLLATE utf8_bin NOT NULL DEFAULT '0,0,0,0,0,0,0,0,0,0,0,0,0,0/0,0,0,0,0,0,0,0,0,0,0,0,0,0',
  `cPaintjob` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '3/3',
  `cVirtual` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0/0',
  `cX` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0.0/0.0',
  `cY` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0.0/0.0',
  `cZ` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0.0/0.0',
  `cA` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '0.0/0.0',
  `vehiclekey` int(11) NOT NULL DEFAULT '0',
  `vehiclekey1` int(11) NOT NULL DEFAULT '0',
  `aptechka` int(11) NOT NULL DEFAULT '0',
  `Voennik` int(11) NOT NULL DEFAULT '0',
  `music` int(11) NOT NULL DEFAULT '0',
  `improves` varchar(32) CHARACTER SET utf8 NOT NULL DEFAULT '0, 0, 0, 0',
  `datavhod` varchar(15) CHARACTER SET utf8 NOT NULL DEFAULT '0.0.0',
  `settings` varchar(16) COLLATE utf8_bin NOT NULL DEFAULT '1,1,1,1,1,1,1',
  `phnumber1` int(11) NOT NULL DEFAULT '0',
  `phnumber2` int(11) NOT NULL DEFAULT '0',
  `phnumber3` int(11) NOT NULL DEFAULT '0',
  `phnumber4` int(11) NOT NULL DEFAULT '0',
  `phnumber5` int(11) NOT NULL DEFAULT '0',
  `phnumber6` int(11) NOT NULL DEFAULT '0',
  `phnumber7` int(11) NOT NULL DEFAULT '0',
  `phnumber8` int(11) NOT NULL DEFAULT '0',
  `mailconf` int(11) NOT NULL DEFAULT '0',
  `fishki` int(11) NOT NULL DEFAULT '0',
  `thour` int(11) NOT NULL,
  `tday` int(11) NOT NULL,
  `tlastday` int(11) NOT NULL,
  `balon1` int(11) NOT NULL,
  `balon2` int(11) NOT NULL,
  `balon3` int(11) NOT NULL,
  `balon4` int(11) NOT NULL,
  `balon5` int(11) NOT NULL,
  `balon6` int(11) NOT NULL,
  `balon7` int(11) NOT NULL,
  `remont` int(11) NOT NULL,
  `whocity` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT 'Южный',
  `sleep` int(11) NOT NULL DEFAULT '100',
  `fkdonate` int(11) NOT NULL DEFAULT '0',
  `SGU` int(11) NOT NULL DEFAULT '0',
  `SGUCOORD` varchar(64) COLLATE utf8_bin NOT NULL DEFAULT '0.0,0.0,0.0,0.0,0.0,0.0,0.0',
  `vipchangecar` int(32) NOT NULL,
  `sellsimtime` int(32) NOT NULL,
  `fwarn` int(11) NOT NULL DEFAULT '0',
  `gacode` int(11) NOT NULL,
  `token` varchar(255) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

 

Отредактировано пользователем Daniil Roslyakov

Поделиться сообщением


Ссылка на сообщение
  • 0

Ко всем командам: 

CMD:allleaders(playerid)
{
	//проверку на админа
	//прочие проверки: на авторизацию, антифлуд и пр.
	
	mysql_tquery(dbHandle, "SELECT * FROM `accounts` WHERE `leader` != 0", "CheckLeaders", "i", playerid); 

	return true;
}

В конец мода: 

Спойлер

forward CheckLeaders(playerid); 
public CheckLeaders(playerid)
{
	new string[400], rows, fields, leaderid, onlinestatus, name[MAX_PLAYER_NAME]; 
	cache_get_data(rows, fields); 
	if(!rows) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Ошибка", "Лидеров нет!", "Окей", "");
	for(new i; i < rows; i++)
    {
        cache_get_field_content(i, "name", name, dbHandle, MAX_PLAYER_NAME);
     	leaderid = cache_get_field_content_int(i, "leader"); 
        onlinestatus = cache_get_field_content_int(i, "online"); 
        switch(onlinestatus)
       	{
        	case 0: online = "Оффлайн";
            case 1: online = "Онлайн";
       	}
                        
       	format(string, sizeof(string), "%s{FFFFFF}%s - фракция '%s' [%s]\n", name, Fraction_Name[leaderid], online); 
    }
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Лидеры фракций", string, "Закрыть", "");
    return true;
}

 

Так попробуй, будут ошибки - пиши. 

Поделиться сообщением


Ссылка на сообщение
  • 0

@stibs 

Спойлер

J:\Ñåðâåð TimePlay RolePlay\Ìîä\gamemodes\stel.pwn(2863) : error 017: undefined symbol "online"
J:\Ñåðâåð TimePlay RolePlay\Ìîä\gamemodes\stel.pwn(2863) : error 036: empty statement
J:\Ñåðâåð TimePlay RolePlay\Ìîä\gamemodes\stel.pwn(2864) : error 014: invalid statement; not in switch
J:\Ñåðâåð TimePlay RolePlay\Ìîä\gamemodes\stel.pwn(2864) : warning 215: expression has no effect
J:\Ñåðâåð TimePlay RolePlay\Ìîä\gamemodes\stel.pwn(2864) : error 001: expected token: ";", but found ":"
J:\Ñåðâåð TimePlay RolePlay\Ìîä\gamemodes\stel.pwn(2864) : error 029: invalid expression, assumed zero
J:\Ñåðâåð TimePlay RolePlay\Ìîä\gamemodes\stel.pwn(2864) : fatal error 107: too many error messages on one line

Compilation aborted.

Pawn compiler 3.10.20150531              Copyright (c) 1997-2006, ITB CompuPhase


6 Errors.

        	case 0: online = "Оффлайн";
            case 1: online = "Онлайн";

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@stibs Все отлично работает!!! И если не трудно можете помочь? Суть такова что лидерка выдается по ID, а я хочу что бы выдавалась по нику

 

Спойлер

CMD:makeleader(playerid, params[])
{
    if(GetString(GetName(playerid), NAME_DEVELOPER_ONE) || GetString(GetName(playerid), NAME_DEVELOPER_TWO) || GetString(GetName(playerid), NAME_LEADERS_ONE) || GetString(GetName(playerid), NAME_LEADERS_TWO))
    {
        if(PI[playerid][pAdmin] < 7) return 1;
        else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
        else if(sscanf(params, "u", params[0])) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /makeleader [id игрока]");
        else if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, PlayerIsNotOnline);
        else if(PlayerLogged[params[0]] == false) return SCM(playerid, COLOR_GREY, PlayerIsNotAuthorized);
        else if(IsPlayerInAnyVehicle(params[0])) return SCM(playerid, COLOR_GREY, "Игрок не должен находиться в транспорте!");
        else if((PI[params[0]][pAdmin] >= 1 && PI[params[0]][pAdmin] <= 7) && PI[playerid][pAdmin] != 8) return SCM(playerid, COLOR_GREY, "Администратора нельзя ставить на пост лидера!");
        else if(PI[params[0]][pLevel] < 10) return SCM(playerid, COLOR_GREY, "У игрока меньше чем 10 уровень!");
        else if(PI[params[0]][pTempLeader]) return SCM(playerid, COLOR_GREY, "Сначала снимите с себя права временного лидера!");
        if(PI[params[0]][pLeader])
        {
            LeaveFractionPlayer(params[0]);
            SendMes(playerid, COLOR_BLUE, "Вы сняли %s с должности лидера организации",GetName(params[0]));
            SendMes(params[0], COLOR_BLUE, "Администратор %s снял вас с должности лидера организации", GetName(playerid));
        }
        else
        {
            if(PI[params[0]][pLeader] > 0) return SCM(playerid, COLOR_GREY, "Игрок лидер другой организации!");
            else if(PI[params[0]][pMember] > 0) return SCM(playerid, COLOR_GREY, "Игрок находиться в другой организации!");
            new str[64], str2[712];
            for(new i = 1; i < MAX_FRACTIONS; i++)
            {
                format(str, sizeof(str), "№%i - %s\n", i, Fraction_Name);
                strcat(str2, str);
            }
            SetPVarInt(playerid, "actplayerid", params[0]);
            ShowPlayerDialog(playerid, D_FRACMENU, 2, "{ffcc00}Организации", str2, "Принять", "Отмена");
        }
    }
    return 1;
}

Что еще надо скинуть скажите

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Узбек
      От Узбек
      Всем добрый вечер ребят! 
      Я начинающий, сегодня я вам сливаю команду 2(шт) на технические работы
      Ловите 
       
    • nazpol9
      От nazpol9
      Привет всем.

      У меня имеется мод для самп сервера и VPS с Ubuntu, на котором я пытаюсь его запустить.

      В чем суть проблемы: при запуске samp03svr, сервер запускается, но на версии 0.3.DL R-1. Когда я пытаюсь запустить этот же мод локально на Windows, сервер работает на версии 0.3.7 и я могу зайти на него без клиента 0.3.DL.

      Для решения этой проблемы я уже пробовал заменять инклуды и исполнительные файлы теми, что есть в архивах на официальном сайте сампа, перекомпилировал мод, и ничего не изменилось.
       
      #include <a_samp> #include <a_mysql> #include <foreach> #include <Pawn.RakNet> #include <streamer> #include <sscanf2> #include <float2> #include <crashdetect> #include <fmt> #include <a_http> #include <Pawn.CMD> #include <Pawn.Regex> #include <requests> #include <callbacks> #include <MD5> #include <mxdate> #include <TOTP> #include <gvar> #include <md-sort> #include <nex-ac> #include <weapon-config> #include <discord-connector> #include <3DTryg> #include <textdraw-streamer>  
      plugins crashdetect.so streamer.so textdraw-streamer.so sscanf.so pawnraknet.so pawncmd.so mysql.so requests.so profiler.so pawnregex.so TOTP.so gvar.so discord-connector.so

      Если у кого-то будут какие-либо догадки, прошу ими поделиться, если понадобится больше информации - я постараюсь её предоставить.