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

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

    Система снятия админа

    Добрый день помогите пожалуйста сделал такую систему снятие с админки через команду /unmakeadmin Ник игрока но почему-то не срабатывает.

    И не получается реализовать если аккаунт в базе данных не найден чтоб писало аккаунт не найден. И если у игрока нет админки чтоб писало игрок не админ.

    PHP код:
    CMD:unmakeadmin(playerid,params[])
    {
        new 
    name[24],string[128];
        if(
    sscanf(params,"s[24]",name))return send(playerid,0x00BFFFAA,"[КОМАНДЫ] {FFFFFF}/unmakeadmin [Ник игрока].");
         
    mysql_format(dbHandle,string,sizeof(string),"UPDATE "T_ACCOUNTS" SET `admin` = '0' WHERE `name` = '%s'",name);
        
    mysql_tquery(dbHandle,string,"SetUnAdmin","is",playerid,name);
        return 
    1;

    PHP код:
    forward SetUnAdmin(playerid,name[]);
    public 
    SetUnAdmin(playerid,name[])
    {
        new 
    rows,fields,string[63];
        
    cache_get_data(rows,fields);
        if(!
    rows)return SendClientMessage(playeridCOLOR_GRAD1"Не найдено совпадений!");
        if(
    GetPlayerID(name) != INVALID_PLAYER_IDPI[GetPlayerID(name)][pAdmin] = 0;
        
    mysql_format(dbHandlestringsizeof(string), "DELETE FROM "T_ADMIN" WHERE `name`='%s'"name);
        
    mysql_tquery(dbHandlestring"""");
        
    format(query,256,"UPDATE "T_ACCOUNTS" SET `admin` = '0' WHERE name = '%s' LIMIT 1",name);
        
    mysql_tquery(dbHandle,string,"","");
        
    f(string,"Вы сняли %s с должности администратора"name);
        
    SendClientMessage(playeridCOLOR_YELLOWstring);
        
    f(string,"%s снял %s с должности администратора",GetName(playerid),name);
        return 
    1;


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

    Статус
    Оффлайн
    Регистрация
    21.08.2016
    Сообщений
    58
    Репутация:
    24 ±
    PHP код:
    CMD:unmakeadmin(playeridparams[])
    {
        if(
    sscanf(params,"s[24]",params))
            return 
    SendClientMessage(playerid, -1, !"[КОМАНДЫ] /unmakeadmin [Ник игрока].");

        new 
    mysql_str[65MAX_PLAYER_NAME];

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "SELECT * FROM `"T_ACCOUNTS"` WHERE `name` = '%s' AND `admin` > '0'"params);
        
    mysql_tquery(connectsmysql_strtrue"SetUnAdmin""is"playeridparams);
        return 
    1;
    }
    //-------
    forward SetUnAdmin(playeridname[]);
    public 
    SetUnAdmin(playeridname[])
    {
        if(!
    cache_get_row_count(dbHandle))
            return 
    SendClientMessage(playeridCOLOR_GRAD1, !"Не найдено совпадений!");

        new 
    mysql_str[70 MAX_PLAYER_NAME];
        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "DELETE FROM "T_ADMIN" WHERE `name`='%s'"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "UPDATE "T_ACCOUNTS" SET `admin` = '0' WHERE name = '%s' LIMIT 1"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    f(mysql_str"Вы сняли %s с должности администратора"name);
        
    SendClientMessage(playeridCOLOR_YELLOWmysql_str);
        return 
    1;


  3. #3
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Цитата Сообщение от Saibot Посмотреть сообщение
    PHP код:
    CMD:unmakeadmin(playeridparams[])
    {
        if(
    sscanf(params,"s[24]",params))
            return 
    SendClientMessage(playerid, -1, !"[КОМАНДЫ] /unmakeadmin [Ник игрока].");

        new 
    mysql_str[65MAX_PLAYER_NAME];

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "SELECT * FROM `"T_ACCOUNTS"` WHERE `name` = '%s' AND `admin` > '0'"params);
        
    mysql_tquery(connectsmysql_strtrue"SetUnAdmin""is"playeridparams);
        return 
    1;
    }
    //-------
    forward SetUnAdmin(playeridname[]);
    public 
    SetUnAdmin(playeridname[])
    {
        if(!
    cache_get_row_count(dbHandle))
            return 
    SendClientMessage(playeridCOLOR_GRAD1, !"Не найдено совпадений!");

        new 
    mysql_str[70 MAX_PLAYER_NAME];
        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "DELETE FROM "T_ADMIN" WHERE `name`='%s'"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "UPDATE "T_ACCOUNTS" SET `admin` = '0' WHERE name = '%s' LIMIT 1"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    f(mysql_str"Вы сняли %s с должности администратора"name);
        
    SendClientMessage(playeridCOLOR_YELLOWmysql_str);
        return 
    1;

    Вообще не чего не происходит.

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

    Статус
    Оффлайн
    Регистрация
    21.08.2016
    Сообщений
    58
    Репутация:
    24 ±
    1
      Открыть/закрыть
    PHP код:
    CMD:unmakeadmin(playeridparams[])
    {
        if(
    sscanf(params,"s[24]",params))
            return 
    SendClientMessage(playerid, -1, !"[КОМАНДЫ] /unmakeadmin [Ник игрока].");

        new 
    mysql_str[80MAX_PLAYER_NAME];

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "SELECT * FROM `"T_ACCOUNTS"` WHERE `name` = '%s'"params);
        
    mysql_tquery(dbHandlemysql_strtrue"SetUnAdmin""is"playeridparams);
        return 
    1;
    }
    //-------
    forward SetUnAdmin(playeridname[]);
    public 
    SetUnAdmin(playeridname[])
    {
        if(!
    cache_get_row_count(dbHandle))
            return 
    SendClientMessage(playeridCOLOR_GRAD1, !"Не найдено совпадений!");

        if(!
    cache_get_field_content_int(0"admin"dbHandle))
            return 
    SendClientMessage(playeridCOLOR_GRAD1, !"Игрок не администратор!");
            
        new 
    mysql_str[80 MAX_PLAYER_NAME];
        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "DELETE FROM "T_ADMIN" WHERE `name`='%s'"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "UPDATE "T_ACCOUNTS" SET `admin` = '0' WHERE name = '%s' LIMIT 1"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    f(mysql_str"Вы сняли %s с должности администратора"name);
        
    SendClientMessage(playeridCOLOR_YELLOWmysql_str);
        return 
    1;



    2
      Открыть/закрыть
    PHP код:
    CMD:unmakeadmin(playeridparams[])
    {
        if(
    sscanf(params,"s[24]",params))
            return 
    SendClientMessage(playerid, -1, !"[КОМАНДЫ] /unmakeadmin [Ник игрока].");

        new 
    mysql_str[80 MAX_PLAYER_NAME];

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "SELECT * FROM `"T_ACCOUNTS"` WHERE `name` = '%s' AND `admin` > '0'"params);
        
    mysql_tquery(dbHandlemysql_strtrue"SetUnAdmin""is"playeridparams);
        return 
    1;
    }
    //-------
    forward SetUnAdmin(playeridname[]);
    public 
    SetUnAdmin(playeridname[])
    {
        if(!
    cache_get_row_count(dbHandle))
            return 
    SendClientMessage(playeridCOLOR_GRAD1, !"Не найдено совпадений!");

        new 
    mysql_str[80 MAX_PLAYER_NAME];
        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "DELETE FROM "T_ADMIN" WHERE `name`='%s'"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "UPDATE "T_ACCOUNTS" SET `admin` = '0' WHERE name = '%s' LIMIT 1"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    f(mysql_str"Вы сняли %s с должности администратора"name);
        
    SendClientMessage(playeridCOLOR_YELLOWmysql_str);
        return 
    1;


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

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    69
    Репутация:
    2 ±
    PHP код:
    CMD:unmakeadmin(playeridparams[])
    {
        if(
    isnull(params))
            return 
    SendClientMessage(playerid, -1, !"[КОМАНДЫ] /unmakeadmin [Ник игрока].");
        new 
    string[100];
        
    mysql_format(dbHandlestringsizeof(string),"SELECT `admin` FROM `"T_ACCOUNTS"` WHERE `name` = '%s'"params);
        new 
    Cache:result mysql_query(dbHandlestring);
        if(
    cache_num_rows() == 0)
              return 
    SendClientMessage(playeridCOLOR_GRAD1, !"Не найдено совпадений!"),cache_delete(result);
        if(!
    cache_get_field_content_int(0"admin"dbHandle))
            return 
    SendClientMessage(playeridCOLOR_GRAD1, !"Игрок не администратор!");
        
    mysql_format(dbHandlestringsizeof(string),"DELETE FROM "T_ADMIN" WHERE `name`='%s'"params);
        
    mysql_function_query(dbHandlestringfalse"""");
        
    mysql_format(dbHandlestringsizeof(string),"UPDATE "T_ACCOUNTS" SET `admin` = '0' WHERE name = '%s' LIMIT 1"params);
        
    mysql_function_query(dbHandlestringfalse"""");
        
    f(string"Вы сняли %s с должности администратора"params);
        
    SendClientMessage(playeridCOLOR_YELLOWstring);
        return 
    cache_delete(result);


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

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Цитата Сообщение от Saibot Посмотреть сообщение
    1
      Открыть/закрыть
    PHP код:
    CMD:unmakeadmin(playeridparams[])
    {
        if(
    sscanf(params,"s[24]",params))
            return 
    SendClientMessage(playerid, -1, !"[КОМАНДЫ] /unmakeadmin [Ник игрока].");

        new 
    mysql_str[80MAX_PLAYER_NAME];

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "SELECT * FROM `"T_ACCOUNTS"` WHERE `name` = '%s'"params);
        
    mysql_tquery(dbHandlemysql_strtrue"SetUnAdmin""is"playeridparams);
        return 
    1;
    }
    //-------
    forward SetUnAdmin(playeridname[]);
    public 
    SetUnAdmin(playeridname[])
    {
        if(!
    cache_get_row_count(dbHandle))
            return 
    SendClientMessage(playeridCOLOR_GRAD1, !"Не найдено совпадений!");

        if(!
    cache_get_field_content_int(0"admin"dbHandle))
            return 
    SendClientMessage(playeridCOLOR_GRAD1, !"Игрок не администратор!");
            
        new 
    mysql_str[80 MAX_PLAYER_NAME];
        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "DELETE FROM "T_ADMIN" WHERE `name`='%s'"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "UPDATE "T_ACCOUNTS" SET `admin` = '0' WHERE name = '%s' LIMIT 1"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    f(mysql_str"Вы сняли %s с должности администратора"name);
        
    SendClientMessage(playeridCOLOR_YELLOWmysql_str);
        return 
    1;



    2
      Открыть/закрыть
    PHP код:
    CMD:unmakeadmin(playeridparams[])
    {
        if(
    sscanf(params,"s[24]",params))
            return 
    SendClientMessage(playerid, -1, !"[КОМАНДЫ] /unmakeadmin [Ник игрока].");

        new 
    mysql_str[80 MAX_PLAYER_NAME];

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "SELECT * FROM `"T_ACCOUNTS"` WHERE `name` = '%s' AND `admin` > '0'"params);
        
    mysql_tquery(dbHandlemysql_strtrue"SetUnAdmin""is"playeridparams);
        return 
    1;
    }
    //-------
    forward SetUnAdmin(playeridname[]);
    public 
    SetUnAdmin(playeridname[])
    {
        if(!
    cache_get_row_count(dbHandle))
            return 
    SendClientMessage(playeridCOLOR_GRAD1, !"Не найдено совпадений!");

        new 
    mysql_str[80 MAX_PLAYER_NAME];
        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "DELETE FROM "T_ADMIN" WHERE `name`='%s'"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    mysql_format(dbHandlemysql_strsizeof(mysql_str),
                
    "UPDATE "T_ACCOUNTS" SET `admin` = '0' WHERE name = '%s' LIMIT 1"name);
        
    mysql_pquery(dbHandlemysql_str);

        
    f(mysql_str"Вы сняли %s с должности администратора"name);
        
    SendClientMessage(playeridCOLOR_YELLOWmysql_str);
        return 
    1;

    В обоих случаях на строчку ругается.

    PHP код:
       mysql_tquery(dbHandlemysql_strtrue"SetUnAdmin""is"playeridparams); 
    PHP код:
    C:\Users\Владелец\Desktop\Motion RP\gamemodes\motiongm.pwn(19057) : error 035argument type mismatch (argument 3)
    Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase


    1 Error


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

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    Цитата Сообщение от kala4iks Посмотреть сообщение
    В обоих случаях на строчку ругается.

    PHP код:
       mysql_tquery(dbHandlemysql_strtrue"SetUnAdmin""is"playeridparams); 
    PHP код:
    C:\Users\Владелец\Desktop\Motion RP\gamemodes\motiongm.pwn(19057) : error 035argument type mismatch (argument 3)
    Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase


    1 Error

    PHP код:
       mysql_tquery(dbHandlemysql_str"SetUnAdmin""is"playeridparams); 

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

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Цитата Сообщение от Sp1ke Посмотреть сообщение
    PHP код:
       mysql_tquery(dbHandlemysql_str"SetUnAdmin""is"playeridparams); 
    Не срабатывает почему-то.

  9. #9
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Определись уже с стилем кода. То ты используешь send и f, то пишешь нормальные SendClientMessage и format. В запросах то format, то mysql_format. Это не есть хорошо

    PHP код:
    CMD:unmakeadmin(playeridparams[]) 

        if(
    isnull(params)) return SendClientMessage(playerid0x00BFFFAA,"[КОМАНДЫ] {FFFFFF}/unmakeadmin [Ник игрока]."); 
        new 
    string[45+MAX_PLAYER_NAME];
        
    mysql_format(dbHandlestringsizeof(string), "SELECT `admin` FROM "T_ACCOUNTS" WHERE name = '%s'"params); 
        
    mysql_tquery(dbHandlestring"SetUnAdmin""is"playeridparams); 
        return 
    1

    PHP код:
    forward SetUnAdmin(playeridname[]); 
    public 
    SetUnAdmin(playeridname[]) 
    {  
        if(!
    cache_get_row_count(dbHandle))
            return 
    SendClientMessage(playeridCOLOR_GRAD1"Не найдено совпадений!"); 

        if(
    GetPlayerID(name) != INVALID_PLAYER_IDPI[GetPlayerID(name)][pAdmin] = 0

        new 
    string[55+MAX_PLAYER_NAME];
        
    mysql_format(dbHandlestringsizeof(string), "DELETE FROM "T_ADMIN" WHERE name = '%s'"name); 
        
    mysql_tquery(dbHandlestring""""); 

        
    mysql_format(dbHandlestringsizeof(string), "UPDATE "T_ACCOUNTS" SET admin = 0 WHERE name = '%s' LIMIT 1"name); 
        
    mysql_tquery(dbHandlestring""""); 

        
    format(stringsizeof(string), "Вы сняли %s с должности администратора"name); 
        
    SendClientMessage(playeridCOLOR_YELLOWstring); 
        return 
    1

    Последний раз редактировалось DeimoS; 05.09.2016 в 17:33.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  10. Пользователь сказал cпасибо:
    Nexius_Tailer (05.09.2016)
  11. #10
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Определись уже с стилем кода. То ты используешь send и f, то пишешь нормальные SendClientMessage и format. В запросах то format, то mysql_format. Это не есть хорошо

    PHP код:
    CMD:unmakeadmin(playeridparams[]) 

        if(
    isnull(params)) return SendClientMessage(playerid0x00BFFFAA,"[КОМАНДЫ] {FFFFFF}/unmakeadmin [Ник игрока]."); 
        new 
    string[45+MAX_PLAYER_NAME];
        
    mysql_format(dbHandlestringsizeof(string), "SELECT `admin` FROM "T_ACCOUNTS" WHERE name = '%s'"params); 
        
    mysql_tquery(dbHandlestring"SetUnAdmin""is"playeridparams); 
        return 
    1

    PHP код:
    forward SetUnAdmin(playeridname[]); 
    public 
    SetUnAdmin(playeridname[]) 
    {  
        if(!
    cache_get_row_count(mysql_connect_ID))
            return 
    SendClientMessage(playeridCOLOR_GRAD1"Не найдено совпадений!"); 

        if(
    GetPlayerID(name) != INVALID_PLAYER_IDPI[GetPlayerID(name)][pAdmin] = 0

        new 
    string[55+MAX_PLAYER_NAME];
        
    mysql_format(dbHandlestringsizeof(string), "DELETE FROM "T_ADMIN" WHERE name = '%s'"name); 
        
    mysql_tquery(dbHandlestring""""); 

        
    mysql_format(dbHandlestringsizeof(string), "UPDATE "T_ACCOUNTS" SET admin = 0 WHERE name = '%s' LIMIT 1"name); 
        
    mysql_tquery(dbHandlestring""""); 

        
    format(stringsizeof(string), "Вы сняли %s с должности администратора"name); 
        
    SendClientMessage(playeridCOLOR_YELLOWstring); 
        return 
    1

    Спасибо, работает а как можно сделать чтоб если у игрока пытающегося снять 11уровень админки чтоб писало что его нельзя снять.?

 

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

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

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

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

Ваши права

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