Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Alexander
    Пользователь

    Статус
    Оффлайн
    Регистрация
    25.12.2013
    Сообщений
    73
    Репутация:
    2 ±

    Вопрос с командами

    Как на основе этого
    PHP код:
        if(!strcmp(cmd,"/makeadmin",true))
        {
            if(
    IsPlayerConnected(playerid))
            {
                new 
    str[100];
                
    tmp strtok(cmdtextidx);
                if(!
    strlen(tmp))return SendClientMessage(playeridCOLOR_GRAD2"{"#cYELLOW"}• [Подсказка]: {"#cWHITE"}/makeadmin [ID игрока] [LVL]");
                
    new para1;
                new 
    level;
                
    para1 ReturnUser(tmp);
                
    tmp strtok(cmdtextidx);
                
    level strval(tmp);
                if(
    pData[para1][pWarnc]) return SendClientMessage(playerid,CGRAY,"У игрока есть варн");
                if(!
    strcmp(pData[playerid][pNickname], "Alexander_Alone"true) || !strcmp(pData[playerid][pNickname], "Dani_Stoun"true) || !strcmp(pData[playerid][pNickname], "Tom_Parket"true))
                {
                     if(
    pData[playerid][pAdmin] >= 8)
                     {
                         if(
    IsPlayerConnected(para1))
                         {
                             if(
    para1 != INVALID_PLAYER_ID)
                             {
                                 if(
    level || level 9) return SendClientMessage(playeridCOLOR_GREY"Админка от 0 до 9");
                                 
    pData[para1][pAdmin] = level;
                                 if(
    level 0)
                                 {
                                     
    format(strsizeof(str), "%s назначил Вас администратором. Ваш пароль 1111"pData[playerid][pNickname]);
                                     
    SendClientMessage(para1COLOR_YELLOWstr);
                                     
    format(strsizeof(str), "Вы назначили %s администратором %i уровня."pData[para1][pNickname], level);
                                     
    SendClientMessage(playeridCOLOR_YELLOWstr);
                                 }
                                 else if(
    level == 0)
                                 {
                                     
    SendMes(playeridCOLOR_YELLOW"Вы сняли %s с должности администратора."pData[para1][pNickname]);
                                     
    SendMes(para1COLOR_YELLOW"%s снял вас с должности администратора."pData[playerid][pNickname]);
                                 }
                                 new 
    query[150];
                                 
    format(query,sizeof(query),"UPDATE `accounts` SET `admin` = '%d' WHERE id = '%d'",pData[para1][pAdmin],pData[para1][pMysqlID]);
                                 
    sql_query(zConnqueryQUERY_THREADED);
                             }
                         }
                     }
                 }
             }
        } 
    сделать вот это
    PHP код:
    CMD:moderator(playeridparams[]) 

         if(
    PlayerLogged[playerid] == 0) return 1
         if(
    PlayerInfo[playerid][pAdmin] < || AdminLogged[playerid] == false) return 1
         new 
    data[32], name[32]; 
         if(
    sscanf(params"s[32]i"nameparams[1])) return SendClientMessage(playeridCOLOR_WHITE"Введите: /moderator [name] [lvl]"); 
         if(
    params[1] < 0) return SendClientMessage(playeridCOLOR_WHITE"Введите: /moderator [name] [lvl]"); 
         
    format(querysizeof(query), "SELECT * FROM "TABLE_ADMIN" WHERE name = '%s'"name); 
         
    mysql_query(query); 
         
    mysql_store_result(); 
         if(
    mysql_fetch_row_format(query)) 
         { 
             if(
    params[1] == 0
             { 
                 
    format(querysizeof(query), "DELETE FROM "TABLE_ADMIN" WHERE `name`='%s'"name); 
                 
    mysql_query(query); 
                 
    mysql_free_result(); 
                 
    SendMes(playeridCOLOR_LIGHTRED"%s успешно удален из списка модераторов"name); 
             } 
             else 
             { 
                 
    format(querysizeof(query), "UPDATE "TABLE_ADMIN" SET  level = '%d' WHERE name = '%s' LIMIT 1"params[1],name); 
                 
    mysql_query(query); 
                 
    SendMes(playeridCOLOR_GREEN"Уровень администрирования у  %s изменен на %d"nameparams[1]); 
             } 
         } 
         else 
         { 
             
    getdate(yearsmonthsdays); 
             
    format(data32"%02d.%02d.%04d"daysmonthsyears); 
             
    format(query512"INSERT INTO "TABLE_ADMIN" (Name, level, LastCon) VALUES ('%s', %d, '%s')"nameparams[1], data); 
             
    mysql_query(query); 
             
    SendMes(playeridCOLOR_GREEN"%s успешно добавлен в список модераторов. Уровень полномочий %d"nameparams[1]); 
         } 
         return 
    true


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

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    Не очень понял, что вам надо, сформулируйте правильно.

  3. Пользователь сказал cпасибо:
    Alexander (11.08.2015)
  4. #3
    Аватар для Alexander
    Пользователь

    Статус
    Оффлайн
    Регистрация
    25.12.2013
    Сообщений
    73
    Репутация:
    2 ±
    вот это
    PHP код:
    CMD:moderator(playeridparams[])  
    {  
         if(
    PlayerLogged[playerid] == 0) return 1;  
         if(
    PlayerInfo[playerid][pAdmin] < || AdminLogged[playerid] == false) return 1;  
         new 
    data[32], name[32];  
         if(
    sscanf(params"s[32]i"nameparams[1])) return SendClientMessage(playeridCOLOR_WHITE"Введите: /moderator [name] [lvl]");  
         if(
    params[1] < 0) return SendClientMessage(playeridCOLOR_WHITE"Введите: /moderator [name] [lvl]");  
         
    format(querysizeof(query), "SELECT * FROM "TABLE_ADMIN" WHERE name = '%s'"name);  
         
    mysql_query(query);  
         
    mysql_store_result();  
         if(
    mysql_fetch_row_format(query))  
         {  
             if(
    params[1] == 0)  
             {  
                 
    format(querysizeof(query), "DELETE FROM "TABLE_ADMIN" WHERE `name`='%s'"name);  
                 
    mysql_query(query);  
                 
    mysql_free_result();  
                 
    SendMes(playeridCOLOR_LIGHTRED"%s успешно удален из списка модераторов"name);  
             }  
             else  
             {  
                 
    format(querysizeof(query), "UPDATE "TABLE_ADMIN" SET  level = '%d' WHERE name = '%s' LIMIT 1"params[1],name);  
                 
    mysql_query(query);  
                 
    SendMes(playeridCOLOR_GREEN"Уровень администрирования у  %s изменен на %d"nameparams[1]);  
             }  
         }  
         else  
         {  
             
    getdate(yearsmonthsdays);  
             
    format(data32"%02d.%02d.%04d"daysmonthsyears);  
             
    format(query512"INSERT INTO "TABLE_ADMIN" (Name, level, LastCon) VALUES ('%s', %d, '%s')"nameparams[1], data);  
             
    mysql_query(query);  
             
    SendMes(playeridCOLOR_GREEN"%s успешно добавлен в список модераторов. Уровень полномочий %d"nameparams[1]);  
         }  
         return 
    true;  

    Надо подогнать под мой мод

    а вот это команда из моего мода
    PHP код:
        if(!strcmp(cmd,"/makeadmin",true)) 
        { 
            if(
    IsPlayerConnected(playerid)) 
            { 
                new 
    str[100]; 
                
    tmp strtok(cmdtextidx); 
                if(!
    strlen(tmp))return SendClientMessage(playeridCOLOR_GRAD2"{"#cYELLOW"}• [Подсказка]: {"#cWHITE"}/makeadmin [ID игрока] [LVL]"); 
                
    new para1
                new 
    level
                
    para1 ReturnUser(tmp); 
                
    tmp strtok(cmdtextidx); 
                
    level strval(tmp); 
                if(
    pData[para1][pWarnc]) return SendClientMessage(playerid,CGRAY,"У игрока есть варн"); 
                if(!
    strcmp(pData[playerid][pNickname], "Alexander_Alone"true) || !strcmp(pData[playerid][pNickname], "Dani_Stoun"true) || !strcmp(pData[playerid][pNickname], "Tom_Parket"true)) 
                { 
                     if(
    pData[playerid][pAdmin] >= 8
                     { 
                         if(
    IsPlayerConnected(para1)) 
                         { 
                             if(
    para1 != INVALID_PLAYER_ID
                             { 
                                 if(
    level || level 9) return SendClientMessage(playeridCOLOR_GREY"Админка от 0 до 9"); 
                                 
    pData[para1][pAdmin] = level
                                 if(
    level 0
                                 { 
                                     
    format(strsizeof(str), "%s назначил Вас администратором. Ваш пароль 1111"pData[playerid][pNickname]); 
                                     
    SendClientMessage(para1COLOR_YELLOWstr); 
                                     
    format(strsizeof(str), "Вы назначили %s администратором %i уровня."pData[para1][pNickname], level); 
                                     
    SendClientMessage(playeridCOLOR_YELLOWstr); 
                                 } 
                                 else if(
    level == 0
                                 { 
                                     
    SendMes(playeridCOLOR_YELLOW"Вы сняли %s с должности администратора."pData[para1][pNickname]); 
                                     
    SendMes(para1COLOR_YELLOW"%s снял вас с должности администратора."pData[playerid][pNickname]); 
                                 } 
                                 new 
    query[150]; 
                                 
    format(query,sizeof(query),"UPDATE `accounts` SET `admin` = '%d' WHERE id = '%d'",pData[para1][pAdmin],pData[para1][pMysqlID]); 
                                 
    sql_query(zConnqueryQUERY_THREADED); 
                             } 
                         } 
                     } 
                 } 
             } 
        } 

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

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    Ну если я правильно понял, то
    PHP код:
    CMD:moderator(playeridparams[])
    {
        new 
    str[100];
        if(!
    strcmp(pData[playerid][pNickname], "Alexander_Alone"true) || !strcmp(pData[playerid][pNickname], "Dani_Stoun"true) || !strcmp(pData[playerid][pNickname], "Tom_Parket"true))
        {
            if(
    sscanf(params"ii"params[0], params[1])) return SendClientMessage(playeridCOLOR_WHITE"Ââåäèòå: /moderator [id] [level]");
              if(
    pData[params[0]][pWarnc]) return SendClientMessage(playerid,CGRAY,"Ó èãðîêà âàðí");
            if(
    pData[playerid][pAdmin] >= 8)
            {
                if(
    IsPlayerConnected(params[0]))
                {
                    if(
    params[0] != INVALID_PLAYER_ID)
                    {
                        if(
    params[1] < || params[1] > 9) return SendClientMessage(playeridCOLOR_GREY"Àäìèíêà îò 0 äî 9");
                        
    pData[params[0]][pAdmin] = params[1];
                        if(
    params[1] > 0)
                        {
                         
    format(strsizeof(str), "%s íàçíà÷èë Âàñ àäìèíèñòðàòîðîì. Âàø ïàðîëü 1111"pData[playerid][pNickname]);
                         
    SendClientMessage(params[0], COLOR_YELLOWstr);
                         
    format(strsizeof(str), "Âû íàçíà÷èëè %s àäìèíèñòðàòîðîì %i óðîâíÿ."pData[params[0]][pNickname], params[1]);
                         
    SendClientMessage(playeridCOLOR_YELLOWstr);
                        }
                        else if(
    params[1] == 0)
                        {
                         
    SendMes(playeridCOLOR_YELLOW"Âû ñíÿëè %s ñ äîëæíîñòè àäìèíèñòðàòîðà."pData[params[0]][pNickname]);
                         
    SendMes(params[0], COLOR_YELLOW"%s ñíÿë âàñ ñ äîëæíîñòè àäìèíèñòðàòîðà"pData[playerid][pNickname]);
                        }
                        new 
    query[150];
                        
    format(query,sizeof(query),"UPDATE `accounts` SET `admin` = '%d' WHERE id = '%d'",pData[params[0]][pAdmin],pData[params[0]][pMysqlID]);
                        
    sql_query(zConnqueryQUERY_THREADED);
                    }
                }
            }
        }
        return 
    true;

    Последний раз редактировалось Sp1ke; 10.08.2015 в 11:14.

  6. Пользователь сказал cпасибо:
    Alexander (11.08.2015)
  7. #5
    Аватар для Роуди.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.07.2015
    Сообщений
    154
    Репутация:
    17 ±
    Цитата Сообщение от Sp1ke Посмотреть сообщение
    Ну если я правильно понял, то
    PHP код:
    CMD:moderator(playeridparams[])
    {
        new 
    str[100];
        if(!
    strcmp(pData[playerid][pNickname], "Alexander_Alone"true) || !strcmp(pData[playerid][pNickname], "Dani_Stoun"true) || !strcmp(pData[playerid][pNickname], "Tom_Parket"true))
        {
            if(
    sscanf(params"ii"params[0], params[1])) return SendClientMessage(playeridCOLOR_WHITE"Ââåäèòå: /moderator [id] [level]");
              if(
    pData[params[0]][pWarnc]) return SendClientMessage(playerid,CGRAY,"Ó èãðîêà âàðí");
            if(
    pData[playerid][pAdmin] >= 8)
            {
                if(
    IsPlayerConnected(params[0]))
                {
                    if(
    params[0] != INVALID_PLAYER_ID)
                    {
                        if(
    params[1] < || params[1] > 9) return SendClientMessage(playeridCOLOR_GREY"Àäìèíêà îò 0 äî 9");
                        
    pData[params[0]][pAdmin] = params[1];
                        if(
    params[1] > 0)
                        {
                         
    format(strsizeof(str), "%s íàçíà÷èë Âàñ àäìèíèñòðàòîðîì. Âàø ïàðîëü 1111"pData[playerid][pNickname]);
                         
    SendClientMessage(params[0], COLOR_YELLOWstr);
                         
    format(strsizeof(str), "Âû íàçíà÷èëè %s àäìèíèñòðàòîðîì %i óðîâíÿ."pData[params[0]][pNickname], params[1]);
                         
    SendClientMessage(playeridCOLOR_YELLOWstr);
                        }
                        else if(
    params[1] == 0)
                        {
                         
    SendMes(playeridCOLOR_YELLOW"Âû ñíÿëè %s ñ äîëæíîñòè àäìèíèñòðàòîðà."pData[params[0]][pNickname]);
                         
    SendMes(params[0], COLOR_YELLOW"%s ñíÿë âàñ ñ äîëæíîñòè àäìèíèñòðàòîðà"pData[playerid][pNickname]);
                        }
                        new 
    query[150];
                        
    format(query,sizeof(query),"UPDATE `accounts` SET `admin` = '%d' WHERE id = '%d'",pData[params[0]][pAdmin],pData[params[0]][pMysqlID]);
                        
    sql_query(zConnqueryQUERY_THREADED);
                    }
                }
            }
        }
        return 
    true;

    Он имел ввиду перевести на стандартный процессор эту команду

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

    Статус
    Оффлайн
    Регистрация
    30.10.2014
    Сообщений
    148
    Репутация:
    37 ±
    Если здесь нет никакой проблемы в плане кода, то Вам в стол заказов.
    Могу посоветовать только почитать о ZCMD и про использование sscanf со стандартным командным процессором: кликабельно.

  9. Пользователь сказал cпасибо:
    $continue$ (10.08.2015)
 

 

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

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

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

Ваши права

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