AMX MOD X
Понедельник, 29.04.2024, 15:41:45



Приветствую Вас Гость | RSS
[ Главная ] [ Немогу добавить функцию - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Немогу добавить функцию (Плагин для Доступа на КВ сервер с паролем)
Немогу добавить функцию
L3XДата: Пятница, 23.03.2007, 06:43:49 | Сообщение # 1
Лейтенант
Группа: Скриптеры
Сообщений: 60
Репутация: 2
Статус: Не в сети
Немогу добавить функцию.

Была идея дописать плагин чтобы выводились разные сообщения. Например если админа на сервере нет то при заходе выдавало сообщение:
Only admin's allowed now. Если на сервере есть админ, то: "ВВеден неверный пасс". Либо что-то в этом роде.
Сейчас стоит так: Если на сервере в течении 1 минуты никого нету(после самой игры), то пасс сбрасывает на дефольтный, который естественно никто незнает(в данном случае "unknown"). И в дальнейшем заходит админ и выставляет пароль.
Нужно так чтобы для этих случаев выдавало разные сообщения. Т.е. Если админа нету на сервере то:"Only admin's allow..... ", Если на сервере админ, то шла проверка setinfo. Сейчас-же просто стоит дефольтный левый пасс.
Я пробывал дописать но неполучается.
Code

public client_putinserver(id)
{  
  if(!get_cvar_num("amx_checkpass"))
   return PLUGIN_HANDLED
  if(get_user_flags(id) & ACCESS_LEVEL)
   return PLUGIN_HANDLED
  if (is_user_hltv(id))  
   return PLUGIN_HANDLED

/*======================================================          
if(get_playersnum()==0)
          server_cmd("kick #%d ^"Only admin's allowed now^"",get_user_userid(id))
========================================================*/
   

new user_pass[40]
  get_user_info(id, "_cw", user_pass, 39)
     
  if(!equal(szPass, user_pass))
   server_cmd("kick #%d ^"He BEPHbIu' nAPO/b! BBEDu B KOHCO/|u: 'setinfo _cw password'^"",get_user_userid(id))
   
  return PLUGIN_CONTINUE
}

Способ примитивный но и он неработает в идеале естественно подругому надо.
Может кто знает как это сделать?

Сообщение отредактировал L3X - Понедельник, 26.03.2007, 11:41:01
 
VENДата: Пятница, 23.03.2007, 10:46:38 | Сообщение # 2
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Quote
some help
Что за название топика такое? Еще бы написал: Help ME PLEASE!!!!!!!11111oneoneone

  • Автор: настоятельно рекомендую ознакомиться с Общими правилами всех разделов форума.

    EDIT: Изменил название/описание темы (оригинальные ошибки сохранены ;]).

    Сообщение отредактировал VEN - Пятница, 23.03.2007, 12:42:21
  •  
    L3XДата: Пятница, 23.03.2007, 11:40:14 | Сообщение # 3
    Лейтенант
    Группа: Скриптеры
    Сообщений: 60
    Репутация: 2
    Статус: Не в сети
    Quote (VEN)
    Что за название топика такое? Еще бы написал: Help ME PLEASE!!!!!!!11111oneoneone

    Вместо просмотра нажал на опубликацию темы. Сейчас резбегусь и прыгну в окошко.
    Расчитывал потом подправить название, но не нашел редактирование заголовка, если есть возможность исправь.

    Не будем отходить от темы.

    Сообщение отредактировал L3X - Пятница, 23.03.2007, 11:42:23
     
    VENДата: Пятница, 23.03.2007, 12:45:53 | Сообщение # 4
    AMXX-Скриптинг-Эксперт
    Группа: Админы
    Сообщений: 1892
    Репутация: 45
    Статус: Не в сети
    Quote
    Изменил название/описание темы (оригинальные ошибки сохранены ;]).

    Что именно не получается? Пробежался по нижнему коду - написан слабо, но работать должен. Какая именно проблема?

    Для справки - что делает нижний код:

    • если админ - пропускает на сервер
    • если не админ
      • если сервер пуст - кикает - "только админам можно зайти сейчас"
      • если сервер не пуст
        • если пароль не верен - кикает - "неверный пароль"
        • если пароль верен - пропускает


    Сообщение отредактировал VEN - Пятница, 23.03.2007, 12:57:09
     
    L3XДата: Пятница, 23.03.2007, 13:06:24 | Сообщение # 5
    Лейтенант
    Группа: Скриптеры
    Сообщений: 60
    Репутация: 2
    Статус: Не в сети
    Code

    public client_putinserver(id)  
    {    
       if(!get_cvar_num("amx_checkpass"))  
        return PLUGIN_HANDLED  
       if(get_user_flags(id) & ACCESS_LEVEL)  
        return PLUGIN_HANDLED  
       if (is_user_hltv(id))    
        return PLUGIN_HANDLED

    Вот между ними нужно добавить переменную которая делала бы еще один запрос.
    Опишу его по русски: "Если на сервере нет админа, тогда будет выводится вот это сообщение: Only admin's allowed now", если на сервере есть админ то вот это:"He BEPHbIu' nAPO/b! BBEDu B KOHCO/|u: 'setinfo _cw password'"

    Quote

    new user_pass[40]
    get_user_info(id, "_cw", user_pass, 39)

    if(!equal(szPass, user_pass))
    server_cmd("kick #%d ^"He BEPHbIu' nAPO/b! BBEDu B KOHCO/|u: 'setinfo _cw password'^"",get_user_userid(id))

    (сейчас выводится только это сообщение т.е. идет проверка setinfo клиента, если оно верно, то сервер его пускает, если нет, то выводит это сообщение, но проблема в том что надо сделать проверку setinfo после того как на сервере будет хоть один админ, сейчас запрос идет постоянно и выводится всегда одно сообщение, только ставится автоматом левый пасс)

    return PLUGIN_CONTINUE
    }

    Добавлено (2007-03-23, 1:06 Pm)
    ---------------------------------------------
    Quote (VEN)
    Для справки - что делает нижний код:если админ - пропускает на сервересли не админ если сервер пуст - кикает - "только админам можно зайти сейчас"если сервер не пуст если пароль не верен - кикает - "неверный пароль"если пароль верен - пропускает

    То что делает этот код я знаю, я его писал. Попытался дописать он нехочет реагировать на вторую переменную.

    Но он не реагирует на: if(get_playersnum()==0)
    server_cmd("kick #%d ^"Only admin's allowed now^"",get_user_userid(id))

    А сразу перескакивает на:
    Code

    if(!equal(szPass, user_pass))
    server_cmd("kick #%d ^"He BEPHbIu' nAPO/b! BBEDu B KOHCO/|u: 'setinfo _cw password'^"",get_user_userid(id))


    Сообщение отредактировал L3X - Пятница, 23.03.2007, 13:26:12
     
    slogicДата: Пятница, 23.03.2007, 13:42:32 | Сообщение # 6
    Генералиссимус
    Группа: Админы
    Сообщений: 1941
    Репутация: 47
    Статус: Не в сети
    Quote (L3X)
    Но он не реагирует на: if(get_playersnum()==0)server_cmd("kick #%d ^"Only admin's allowed now^"",get_user_userid(id))

    Потому что get_playersnum() > 0 в client_putinserver. Делай лучше подсчет игроков по командам, т.к. во время putinserver новый игрок еще не определился с командой. Или перенеси проверку в обаботчик client_connect.


    Сообщение отредактировал slogic - Пятница, 23.03.2007, 13:43:46
     
    L3XДата: Пятница, 23.03.2007, 17:35:13 | Сообщение # 7
    Лейтенант
    Группа: Скриптеры
    Сообщений: 60
    Репутация: 2
    Статус: Не в сети
    Quote (slogic)
    Или перенеси проверку в обаботчик client_connect

    Перенес. Сейчас вообще никого не пускает.

    Code

    public client_connect(id){
      if(get_user_flags(id) & ACCESS_LEVEL)
       return PLUGIN_HANDLED
       
              if(get_playersnum()==0)
       
    server_cmd("kick #%d ^"Only admin's allowed now!^"",get_user_userid(id))
    }

    Ни хлтв не пускает, ни админов.
    Пытался объеденить putinserver и client_connect все равно перескакивает на серверную команду.

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

    Сообщение отредактировал L3X - Пятница, 23.03.2007, 18:19:49
     
    slogicДата: Пятница, 23.03.2007, 20:52:12 | Сообщение # 8
    Генералиссимус
    Группа: Админы
    Сообщений: 1941
    Репутация: 47
    Статус: Не в сети
    Quote (L3X)
    Перенес. Сейчас вообще никого не пускает.

    Значит setinfo клиента не инициализировался для сервака на данной стадии. Вообще пиши в коде отладочные сообщения, что соджежит важная для тебя переменная и в каком обработчике, если сомневаешься. Очень полезно. Ты думаешь я помню все сосояния тех или иных объектов на определенной стадии игры? Да нафиг мне это надо.

    Code

    new players[32]
    new iInGame, iNumCT, iNumT
    get_players(players, iNumCT, "e", "CT")
    get_players(players, iNumT, "e", "TERRORIST")
    iInGame = iNumCT + iNumT

     
    L3XДата: Воскресенье, 25.03.2007, 17:30:37 | Сообщение # 9
    Лейтенант
    Группа: Скриптеры
    Сообщений: 60
    Репутация: 2
    Статус: Не в сети
    Quote (slogic)
    new players[32]
    new iInGame, iNumCT, iNumT
    get_players(players, iNumCT, "e", "CT")
    get_players(players, iNumT, "e", "TERRORIST")i
    InGame = iNumCT + iNumT

    Все работает, благодарю.

    Сообщение отредактировал L3X - Воскресенье, 25.03.2007, 17:31:25
     
    AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Немогу добавить функцию (Плагин для Доступа на КВ сервер с паролем)
    • Страница 1 из 1
    • 1
    Поиск:

    AMX Mod X Russian Community © 2006-2024