|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
Немогу добавить функцию
|
|
L3X | Дата: Пятница, 23.03.2007, 06:43:49 | Сообщение # 1 |
Лейтенант
Группа: Скриптеры
Сообщений: 60
Статус: Не в сети
| Немогу добавить функцию. Была идея дописать плагин чтобы выводились разные сообщения. Например если админа на сервере нет то при заходе выдавало сообщение: 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
Статус: Не в сети
| Что за название топика такое? Еще бы написал: Help ME PLEASE!!!!!!!11111oneoneone Автор: настоятельно рекомендую ознакомиться с Общими правилами всех разделов форума. EDIT: Изменил название/описание темы (оригинальные ошибки сохранены ;]).
Сообщение отредактировал VEN - Пятница, 23.03.2007, 12:42:21 |
|
| |
L3X | Дата: Пятница, 23.03.2007, 11:40:14 | Сообщение # 3 |
Лейтенант
Группа: Скриптеры
Сообщений: 60
Статус: Не в сети
| Quote (VEN) | Что за название топика такое? Еще бы написал: Help ME PLEASE!!!!!!!11111oneoneone | Вместо просмотра нажал на опубликацию темы. Сейчас резбегусь и прыгну в окошко. Расчитывал потом подправить название, но не нашел редактирование заголовка, если есть возможность исправь. Не будем отходить от темы.
Сообщение отредактировал L3X - Пятница, 23.03.2007, 11:42:23 |
|
| |
VEN | Дата: Пятница, 23.03.2007, 12:45:53 | Сообщение # 4 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Quote | Изменил название/описание темы (оригинальные ошибки сохранены ;]). | Что именно не получается? Пробежался по нижнему коду - написан слабо, но работать должен. Какая именно проблема? Для справки - что делает нижний код: - если админ - пропускает на сервер
- если не админ
- если сервер пуст - кикает - "только админам можно зайти сейчас"
- если сервер не пуст
- если пароль не верен - кикает - "неверный пароль"
- если пароль верен - пропускает
Сообщение отредактировал VEN - Пятница, 23.03.2007, 12:57:09 |
|
| |
L3X | Дата: Пятница, 23.03.2007, 13:06:24 | Сообщение # 5 |
Лейтенант
Группа: Скриптеры
Сообщений: 60
Статус: Не в сети
| 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
Статус: Не в сети
| 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
Статус: Не в сети
| 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
Статус: Не в сети
| 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
Статус: Не в сети
| 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 Russian Community © 2006-2024 | |
|
| |