|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
|
Плагин к myAC
|
|
| X-factor | Дата: Суббота, 24.01.2009, 19:20:16 | Сообщение # 16 |
|
Лейтенант
Группа: Пользователи
Сообщений: 58
Статус: Не в сети
| dArk PomanoB Спасиба вам!!! PomanoB, можеш дать ссылочку на нормальную книжку по С на русском? id = id - TASK_KICK - а почему от индекса отнимают время?
|
| |
|
|
| PomanoB | Дата: Суббота, 24.01.2009, 22:59:21 | Сообщение # 17 |
 Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| http://masterpc.alfaspace.net/books/downloads/podbelski/ TASK_KICK это "смещение" индекса задачи, тк таску передаётся его ид, в плагине используется несколько тасков на одного игрока, и, чтобы их отличать, введено TASK_KICK
http://romanov4400.mybrute.com
Сообщение отредактировал PomanoB - Суббота, 24.01.2009, 23:00:56 |
| |
|
|
| X-factor | Дата: Суббота, 24.01.2009, 23:54:10 | Сообщение # 18 |
|
Лейтенант
Группа: Пользователи
Сообщений: 58
Статус: Не в сети
| PomanoB Спасибо тебе!!! Буду разбератся потехоньку!
Сообщение отредактировал X-factor - Суббота, 24.01.2009, 23:55:25 |
| |
|
|
| dArk | Дата: Воскресенье, 25.01.2009, 02:09:48 | Сообщение # 19 |
|
Подполковник
Группа: Cупер-модеры
Сообщений: 126
Статус: Не в сети
| Quote (PomanoB) http://masterpc.alfaspace.net/books/downloads/podbelski/ Искренне не советую Подбельского, особенно для начала, муть мутью... У Шилдта и Страуструпа всё довольно хорошо, понятно и подробно изложено, сам учился по этим книгам, рекомендую)) З.Ы. Если в нете увижу запостю ссылки))
|
| |
|
|
| DaTa | Дата: Воскресенье, 25.01.2009, 02:31:10 | Сообщение # 20 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote (dArk) У Шилдта и Страуструпа всё довольно хорошо, понятно и подробно изложено Страуструп создатель C++, он там такого гнет, эту книгу нужно после Шилда читать 
|
| |
|
|
| X-factor | Дата: Воскресенье, 25.01.2009, 11:51:46 | Сообщение # 21 |
|
Лейтенант
Группа: Пользователи
Сообщений: 58
Статус: Не в сети
| dArk DaTa Спасиба вам всем, что мне помогаете!!! Искренне благодарю ВАС!!! Начал читать ту книгу, которую PomanoB выложил, пока более-нименее понятно. Буду признателен, если ещё какой-небудь литературки, может даже попроще, чем Подбельский выложите! 
|
| |
|
|
| PomanoB | Дата: Воскресенье, 25.01.2009, 18:37:46 | Сообщение # 22 |
 Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| Я сам учился по Подбельскому, всё понятно и ясно написано
http://romanov4400.mybrute.com
|
| |
|
|
| WhiteBear | Дата: Понедельник, 26.01.2009, 06:11:45 | Сообщение # 23 |
|
Подполковник
Группа: Пользователи
Сообщений: 132
Статус: Не в сети
| по работе самого плагина - он перехватывает кики от маяка? т.к. фактически нет, т.е. клиент маяка выключаешь. и можно играть спокойно (в настройках сервера маяка ClientAltKick=myac_kick) + путь к motd.txt в одном меcте на папку с конфигами ссылается, в другом на папку с плагинами
|
| |
|
|
| X-factor | Дата: Понедельник, 26.01.2009, 17:49:10 | Сообщение # 24 |
|
Лейтенант
Группа: Пользователи
Сообщений: 58
Статус: Не в сети
| WhiteBear Несовсем понял, что ты хочеш сказать!!! Плагин не перехватывает кики маяка!!! В сервере маяка нада ставить жилательно время кика больше чем KICK_TIME в плагине!!! Тогда если не кикнет плагин, то кикнет маяк!!! Да, нада в плагин прописать проверку (запущен ли клиент или нет) на определённую периодичность, что бы нельзя было безнаказанно вырубать клиент маяка!!! Думаю DaTa мне в этом поможет!!!
Сообщение отредактировал X-factor - Понедельник, 26.01.2009, 17:50:54 |
| |
|
|
| WhiteBear | Дата: Понедельник, 26.01.2009, 17:58:58 | Сообщение # 25 |
|
Подполковник
Группа: Пользователи
Сообщений: 132
Статус: Не в сети
| - по кикам я понял - про мотд я имел в виду что есть такая запись Quote #define KICK_MOTD "/addons/amxmodx/configs/kickmotd.txt" а ниже путь уже Quote /addons/amxmodx/plugins/kickmotd.txt не существенно конечно ) ps может тогда уже лучше не проверку запущенности клиента, а перехват киков маяка?
Сообщение отредактировал WhiteBear - Понедельник, 26.01.2009, 18:02:16 |
| |
|
|
| DaTa | Дата: Понедельник, 26.01.2009, 20:36:32 | Сообщение # 26 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote (WhiteBear) + путь к motd.txt в одном меcте на папку с конфигами ссылается, в другом на папку с плагинами завтыкал, нужно править Quote show_motd(id, "/addons/amxmodx/plugins/kickmotd.txt") на Quote show_motd(id, KICK_MOTD) Quote (X-factor) Да, нада в плагин прописать проверку (запущен ли клиент или нет) на определённую периодичность, что бы нельзя было безнаказанно вырубать клиент маяка!!! Думаю DaTa мне в этом поможет!!! :) Боюсь после отключения маяка проверка будет давать положительные результаты, нужно искать другой путь проверки
|
| |
|
|
| dArk | Дата: Понедельник, 26.01.2009, 21:25:12 | Сообщение # 27 |
|
Подполковник
Группа: Cупер-модеры
Сообщений: 126
Статус: Не в сети
| При отключении клиента маяка из setinfo пропадёт строка *myAc, просто ловите это событие, проверяйте наличие строки, и если её нету то кикайте.
|
| |
|
|
| X-factor | Дата: Понедельник, 26.01.2009, 22:46:27 | Сообщение # 28 |
|
Лейтенант
Группа: Пользователи
Сообщений: 58
Статус: Не в сети
| dArk Не, DaTa прав!!! После отключения маяка действительно проверка дает положительный результат!!! Пробовал делать так: Code #include <amxmodx> #include <fakemeta> #include <fakemeta_util>
#define PLUGIN "myAC.Kick" #define VERSION "1.1modif.1" #define AUTHOR "Wonder&DaTa"
//edit after #define ATTENTION_INTERVAL 4.0 #define KICK_TIME 35.0 #define CHECK_TIME 25.0
#define CONFIG_FILE "addons/amxmodx/configs/whitelist.ini" #define MAX_IPS 50
#define KICK_MOTD "/addons/amxmodx/configs/kickmotd.txt"
#define MODEL "models/pingwin/myAC_pingwin.mdl" #define KICK_REASON "[myAC] 3a/7yCTuTe KJlueHT myAC, a /7oToM CS1.6!!! Cka4aTb:http://cs-volia.at.ua" #define KICK_MESSAGE "amx_tsay red %s [IP:%s] HAS BEEN KICKED (NO myAC)"
//dont edit after #define TASK_KICK 32
new g_szWhiteIPs[MAX_IPS][16] new g_iWhiteIPNum
new const g_szModel[] = MODEL new g_sViewModel
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) g_sViewModel = engfunc(EngFunc_AllocString, g_szModel) load_settings(CONFIG_FILE) }
public plugin_precache() precache_model(g_szModel)
public client_putinserver(id) { static i, szIP[16] get_user_ip(id, szIP, 15, 1) for(i = 0; i != g_iWhiteIPNum; ++i) if( equal(szIP, g_szWhiteIPs[i]) ) return static szInfoField[2] get_user_info(id, "*myAC", szInfoField, 1) if( szInfoField[0] ) return set_task(ATTENTION_INTERVAL, "@task_attention", id, _, _, "b") set_task(KICK_TIME, "@task_no_myAc_kick", TASK_KICK+id) set_task(CHECK_TIME, "@task_check", id, _, _, "b") }
public client_disconnect(id) { remove_task(id) remove_task(TASK_KICK+id) }
@task_attention(id) { show_motd(id, KICK_MOTD) if( !is_user_alive(id) ) return static iWeapons iWeapons = pev(id, pev_weapons) if( !iWeapons )//nothink to strip return //c4 drop //http://forums.alliedmods.net/showthread.php?t=40164 tnx VEN if( iWeapons& (1<<CSW_C4) ) engclient_cmd(id, "drop", "weapon_c4") fm_strip_user_weapons(id) set_pev(id, pev_viewmodel, g_sViewModel) }
@task_no_myAc_kick(id) { id -= TASK_KICK static szIP[16], szName[32] get_user_ip(id, szIP, sizeof(szIP)-1, 1) get_user_name(id, szName, sizeof(szName)-1) server_cmd(KICK_MESSAGE, szName, szIP) server_cmd("kick #%d %s", get_user_userid(id), KICK_REASON) }
@task_check(id) { static i, szIP[16] get_user_ip(id, szIP, 15, 1) for(i = 0; i != g_iWhiteIPNum; ++i) if( equal(szIP, g_szWhiteIPs[i]) ) return static szInfoField[2] get_user_info(id, "*myAC", szInfoField, 1) if( szInfoField[0] ) return
set_task(ATTENTION_INTERVAL, "@task_attention", id, _, _, "b") set_task(KICK_TIME, "@task_no_myAc_kick", TASK_KICK+id) }
load_settings(const szConfigName[]) { if ( !file_exists(szConfigName) ) return new szIP[16], iLine, iLen while( g_iWhiteIPNum < MAX_IPS && read_file(szConfigName, iLine++, szIP, 15, iLen) ) { if( szIP[0] == ';' || !iLen ) continue copy(g_szWhiteIPs[g_iWhiteIPNum++], 15, szIP) } } Добавил @task_check!!! Эфекта ноль!!! Может и неправильно я делал? По логике вродебы правельно)
|
| |
|
|
| dArk | Дата: Вторник, 27.01.2009, 00:27:32 | Сообщение # 29 |
|
Подполковник
Группа: Cупер-модеры
Сообщений: 126
Статус: Не в сети
| Вижу, ошибался. Да... Я был лучшего мнения о маяке... Значит его обойти ещё проще чем я это делал.
|
| |
|
|
| DaTa | Дата: Вторник, 27.01.2009, 00:45:43 | Сообщение # 30 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote (X-factor) static i, szIP[16] get_user_ip(id, szIP, 15, 1) for(i = 0; i != g_iWhiteIPNum; ++i) if( equal(szIP, g_szWhiteIPs[i]) ) return в @task_check это ненужно, айпи мы уже проверили  Добавлено (2009-01-27, 0:45 Am) ---------------------------------------------
Quote (dArk) Вижу, ошибался. Да... Я был лучшего мнения о маяке... Значит его обойти ещё проще чем я это делал. Ты коварный читер волк в овечей шкуре скриптера?
|
| |
|
|
 | AMX Mod X Russian Community © 2006-2026  |  |
|
| |