Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Аватар для #Jason
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.10.2015
    Сообщений
    38
    Репутация:
    0 ±

    Динамическая информация о сервере

    Описание в самом конце.

    В начало мода:
    PHP код:
    enum srInfo
    {
        
    srName[32],
        
    srSite[32],
        
    srAdmin[24]
    }

    new 
    ServerInfo[srInfo]; 
    в конец мода или в любое свободное место

    PHP код:
    forward LoadServerInfo();
    public 
    LoadServerInfo()
    {
        
    cache_get_field_content(0"Name",CarsInfo[srName],connects,32);
        
    cache_get_field_content(0"Site",CarsInfo[srSite],connects,32);
        
    cache_get_field_content(0"Admin",CarsInfo[srAdmin],connects,24);
        
    printf("[ Загрузка ... ] Данные о сервере успешно загружены.");
        return 
    true;

    в OnGameModeInit
    PHP код:
    mysql_function_query(connects,"SELECT * FROM `serverinfo`",true,"LoadServerInfo",""); 
    к Командам
    PHP код:
    CMD:sredit(playeridparams[])
    {
        if(
    PlayerInfo[playerid][pAdmin] < 6) return SendClientMessage(playeridCOLOR_WHITE"[!] Вы не администратор."); // меняете на свою проверку
        
    return ShowPlayerDialog(playerid,8001,DIALOG_STYLE_LIST,"{FFCC00}Редактирование сервера","Изменить название сервера\nИзменить название сайта\nИзменить администратора""Далее""Закрыть");

    к Диалогам

    PHP код:
            case 8001:
            {
                if(!
    response) return true;
                switch(
    listitem)
                {
                    case 
    0:
                    {
                        
    ShowPlayerDialog(playerid8002DIALOG_STYLE_INPUT"{FFCC00}Изменить название сервера""Введите новое название сервера""Сменить""Закрыть");
                    }
                    case 
    1:
                    {
                        
    ShowPlayerDialog(playerid8003DIALOG_STYLE_INPUT"{FFCC00}Изменить название сайта""Введите новое сайта сервера""Сменить""Закрыть");
                    }
                    case 
    2:
                    {
                        
    ShowPlayerDialog(playerid8004DIALOG_STYLE_INPUT"{FFCC00}Изменить администратора""Введите имя нового Гл.администратора""Сменить""Закрыть");
                    }
                }
            }
            case 
    8002:
            {
                if(!
    response) return true;
                
    SetString(ServerInfo[srName],inputtext);
                
    format(string81"UPDATE `serverinfo` SET `Name` = '%s'"inputtext);
                
    mysql_function_query(connectsstringfalse"""");
            }
            
            case 
    8003:
            {
                if(!
    response) return true;
                
    SetString(ServerInfo[srSite],inputtext);
                
    format(string81"UPDATE `serverinfo` SET `Site` = '%s'"inputtext);
                
    mysql_function_query(connectsstringfalse"""");
            }
            case 
    8004:
            {
                if(!
    response) return true;
                
    SetString(ServerInfo[srAdmin],inputtext);
                
    format(stringMAX_PLAYER_NAME+32"UPDATE `serverinfo` SET `Admin` = '%s'"inputtext);
                
    mysql_function_query(connectsstringfalse"""");
            } 
    SQL запрос
    PHP код:
    CREATE TABLE IF NOT EXISTS `serverinfo` (
      `
    Namevarchar(32NOT NULL,
      `
    Sitevarchar(32NOT NULL,
      `
    Adminvarchar(24NOT NULL,
    ENGINE=InnoDB DEFAULT CHARSET=cp1251;

    INSERT INTO `serverinfo` (`Name`, `Site`, `Admin`) VALUES
    ('Server Role Play''www.sitename.ru''Jason_Carter'); 
    В конец мода или в любое другое место.
    PHP код:
    stock SetName()
    {
        new 
    chNamestring[64];
        switch(
    chName)
        {
            case 
    0:
            {
                
    format(string,44,"hostname %s | Client: 0.3.7",ServerInfo[srName]);
                
    SendRconCommand(string);
                
    chName++;
            }
            case 
    1:
            {
                
    format(string,46,"hostname  Форум/сайт сервера: %s",ServerInfo[srSite]); //уже на свое усмотрение пишите.
                
    SendRconCommand(string);
                
    chName=0;
            }
        }

    К таймерам добавьте следующее чтобы обновлять название.

    PHP код:
    SetName(); 
    Пример использования:

    PHP код:
            SendClientMessageToAll(COLOR_LIGHTBLUE,"_________________________________________________________________");
            
    SendClientMessageToAll(COLOR_WHITE,"Используйте {FF9900}/report{FFFFFF} для связи с администрацией");
            
    SendClientMessageToAll(COLOR_WHITE,"Список свободных/занятых лидерок: {FF9900}/leaders");
            
    SendClientMessageToAll(COLOR_WHITE,"Ваш верный путеводитель по серверу: {FF9900}/mm");
            
    format(string,72,"Сайт нашего сервера: {FF0000}%s",ServerInfo[srSite]);
            
    SendClientMessageToAll(COLOR_WHITE,string);
            
    format(string,64,"Главный администратор: {FF0000}%s",ServerInfo[srAdmin]);
            
    SendClientMessageToAll(COLOR_WHITE,string);
            
    SendClientMessageToAll(COLOR_LIGHTBLUE,"_________________________________________________________________"); 
    Если у кого то будут ошибки на SetString вставьте то что ниже в начало мода, у кого нету ошибок на эту функцию, значит данная функция уже есть в вашем моде.
    PHP код:
     #define SetString(%0,%1) (strmid(%0,%1,0,strlen(%1),255)) 
    Вам только осталось изменить название вашего Сервера на переменную ServerInfo[srName], так как теперь она будет содержать название сервера и в любой момент вы сможете изменить это. Надеюсь вы поняли в чем суть системы, вам больше не придется изменять название сервера через pwn.

    Автор: #Jason
    Последний раз редактировалось #Jason; 20.10.2015 в 17:24. Причина: Подправил код.

  2. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    В запросах Вы используете многопоточные функции, а в загрузке однопоточные, где логика?
    Цитата Сообщение от #Jason Посмотреть сообщение
    PHP код:
    publicsLoadServerInfo()
    {
        new 
    rowsfield;
        
    cache_get_data(rowsfield);
        
    cache_get_row(0,0,ServerInfo[srName], connects50);
        
    cache_get_row(0,1,ServerInfo[srSite], connects50);
        
    cache_get_row(0,2,ServerInfo[srAdmin], connects24);
        
    printf("[ Загрузка ... ] Данные о сервере успешно загружены.");
        return 
    true;

    Не подскажете, что такое publics?
    Цитата Сообщение от #Jason Посмотреть сообщение
    PHP код:
    publicsLoadServerInfo() 
    А, что такое SetString(...);
    Цитата Сообщение от #Jason Посмотреть сообщение
    SetString(ServerInfo[srName],inputtext);
    Откуда взялся массив string? И запрос, точно не в 200 символов.
    Цитата Сообщение от #Jason Посмотреть сообщение
    format(string, 200, "UPDATE `serverinfo` SET `Name` = '%s'", inputtext);
    Опять откуда массив string? И опять строка не в 155 символов
    format(string,155,"Сайт нашего сервера: {FF0000}%s",ServerInfo[srSite]);
    format(string,155,"Главный администратор: {FF0000}%s",ServerInfo[srAdmin]);
    Советую скачать учебник Pro - Pawn.Ru
    Советую почитать данный раздел:
      Открыть/закрыть


    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  3. #3
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±

  4. #4
    Аватар для #Jason
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.10.2015
    Сообщений
    38
    Репутация:
    0 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    В запросах Вы используете многопоточные функции, а в загрузке однопоточные, где логика?

    Не подскажете, что такое publics?

    А, что такое SetString(...);

    Откуда взялся массив string? И запрос, точно не в 200 символов.

    Опять откуда массив string? И опять строка не в 155 символов

    Советую скачать учебник Pro - Pawn.Ru
    Советую почитать данный раздел:
      Открыть/закрыть


    Писалось на скорую руку в 12 часов ночи, если вам не нравится берите код переделывайте. Думаю это не составит труда.

  5. #5
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    Тему создал кто? Ты! Пару дней тебе на внесение изменений в код или тема будет закрыта, а после удалена. P.s. писал на скорую руку не отговорка...

  6. #6
    Аватар для #Jason
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.10.2015
    Сообщений
    38
    Репутация:
    0 ±
    Цитата Сообщение от wAx Посмотреть сообщение
    Тему создал кто? Ты! Пару дней тебе на внесение изменений в код или тема будет закрыта, а после удалена. P.s. писал на скорую руку не отговорка...
    Поправил все.

  7. #7
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от #Jason Посмотреть сообщение
    Поправил все.
    Изменении почти ноль.
    sizeof, для кого придуман?
    Многопоточной загрузки я таки не увидел.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  8. #8
    Аватар для Unreal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.09.2014
    Сообщений
    133
    Репутация:
    4 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Изменении почти ноль.
    sizeof, для кого придуман?
    Многопоточной загрузки я таки не увидел.
    Вы о : (?)
    PHP код:
    cache_get_field_content
    cache_get_field_content_int
    cache_get_field_content_float 
    Pro-pawn.ru

  9. #9
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Unreal Посмотреть сообщение
    Вы о : (?)
    PHP код:
    cache_get_field_content
    cache_get_field_content_int
    cache_get_field_content_float 
    Да.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  10. #10
    Аватар для #Jason
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.10.2015
    Сообщений
    38
    Репутация:
    0 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Да.
    Сделал. sizeof не использую так как у меня в моде глобальный new string, а тут уже из за привычки нету sizeof.
    Последний раз редактировалось #Jason; 20.10.2015 в 17:29.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •