AMX MOD X
Понедельник, 19.01.2026, 17:09:18



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

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

  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: slogic, AlMod  
Плагин к myAC
X-factorДата: Суббота, 24.01.2009, 19:20:16 | Сообщение # 16
Лейтенант
Группа: Пользователи
Сообщений: 58
Репутация: 2
Статус: Не в сети
dArk PomanoB
Спасиба вам!!! PomanoB, можеш дать ссылочку на нормальную книжку по С на русском?
id = id - TASK_KICK - а почему от индекса отнимают время?
 
PomanoBДата: Суббота, 24.01.2009, 22:59:21 | Сообщение # 17
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
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
Репутация: 2
Статус: Не в сети
PomanoB
Спасибо тебе!!! Буду разбератся потехоньку!


Сообщение отредактировал X-factor - Суббота, 24.01.2009, 23:55:25
 
dArkДата: Воскресенье, 25.01.2009, 02:09:48 | Сообщение # 19
Подполковник
Группа: Cупер-модеры
Сообщений: 126
Репутация: 1
Статус: Не в сети
Quote (PomanoB)
http://masterpc.alfaspace.net/books/downloads/podbelski/

Искренне не советую Подбельского, особенно для начала, муть мутью... У Шилдта и Страуструпа всё довольно хорошо, понятно и подробно изложено, сам учился по этим книгам, рекомендую))

З.Ы. Если в нете увижу запостю ссылки))

 
DaTaДата: Воскресенье, 25.01.2009, 02:31:10 | Сообщение # 20
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
Quote (dArk)
У Шилдта и Страуструпа всё довольно хорошо, понятно и подробно изложено

Страуструп создатель C++, он там такого гнет, эту книгу нужно после Шилда читать :D

 
X-factorДата: Воскресенье, 25.01.2009, 11:51:46 | Сообщение # 21
Лейтенант
Группа: Пользователи
Сообщений: 58
Репутация: 2
Статус: Не в сети
dArk DaTa

Спасиба вам всем, что мне помогаете!!! Искренне благодарю ВАС!!!
Начал читать ту книгу, которую PomanoB выложил, пока более-нименее понятно. Буду признателен, если ещё какой-небудь литературки, может даже попроще, чем Подбельский выложите! :)

 
PomanoBДата: Воскресенье, 25.01.2009, 18:37:46 | Сообщение # 22
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Я сам учился по Подбельскому, всё понятно и ясно написано

http://romanov4400.mybrute.com
 
WhiteBearДата: Понедельник, 26.01.2009, 06:11:45 | Сообщение # 23
Подполковник
Группа: Пользователи
Сообщений: 132
Репутация: 2
Статус: Не в сети
по работе самого плагина - он перехватывает кики от маяка? т.к. фактически нет, т.е. клиент маяка выключаешь. и можно играть спокойно (в настройках сервера маяка ClientAltKick=myac_kick)
+ путь к motd.txt в одном меcте на папку с конфигами ссылается, в другом на папку с плагинами
 
X-factorДата: Понедельник, 26.01.2009, 17:49:10 | Сообщение # 24
Лейтенант
Группа: Пользователи
Сообщений: 58
Репутация: 2
Статус: Не в сети
WhiteBear
Несовсем понял, что ты хочеш сказать!!! Плагин не перехватывает кики маяка!!! В сервере маяка нада ставить жилательно время кика больше чем KICK_TIME в плагине!!! Тогда если не кикнет плагин, то кикнет маяк!!! Да, нада в плагин прописать проверку (запущен ли клиент или нет) на определённую периодичность, что бы нельзя было безнаказанно вырубать клиент маяка!!! Думаю DaTa мне в этом поможет!!! :)


Сообщение отредактировал X-factor - Понедельник, 26.01.2009, 17:50:54
 
WhiteBearДата: Понедельник, 26.01.2009, 17:58:58 | Сообщение # 25
Подполковник
Группа: Пользователи
Сообщений: 132
Репутация: 2
Статус: Не в сети
- по кикам я понял
- про мотд я имел в виду что есть такая запись
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
Репутация: 16
Статус: Не в сети
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
Репутация: 1
Статус: Не в сети
При отключении клиента маяка из setinfo пропадёт строка *myAc, просто ловите это событие, проверяйте наличие строки, и если её нету то кикайте.
 
X-factorДата: Понедельник, 26.01.2009, 22:46:27 | Сообщение # 28
Лейтенант
Группа: Пользователи
Сообщений: 58
Репутация: 2
Статус: Не в сети
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
Репутация: 1
Статус: Не в сети
Вижу, ошибался. Да... Я был лучшего мнения о маяке... Значит его обойти ещё проще чем я это делал.
 
DaTaДата: Вторник, 27.01.2009, 00:45:43 | Сообщение # 30
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
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)
Вижу, ошибался. Да... Я был лучшего мнения о маяке... Значит его обойти ещё проще чем я это делал.

Ты коварный читер волк в овечей шкуре скриптера? :D
 
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

AMX Mod X Russian Community © 2006-2026