Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Переделать Antireconnect

, убрать сохранение денег и счёта игрокам
Статус пользователя -Владимир-
сообщение 2.3.2009, 22:25
Сообщение #1
Стаж: 17 лет

Сообщений: 55
Благодарностей: 3
Полезность: < 0

Прошу переделать код плагина. Уберите в нём алгоритм сохранения счёта и денег, ибо такая уже где херня..
Пусть только кикает реконектчиков, заранее спасибо.
P.S сам файл *.sma выложить тут не могу, недостаточно прав. Код:
CODE
/* AMX Mod X
* Anti Reconnect Plugin 3.0
*
* Версии антиреконнекта:
3.0 - два режима работы: отсчёт времени после попытки зайти или отсчёт времени после использования команды reconnect
задаётся командой amx_reconnect_static <0|1> 0 - каждый раз заного отсчитывать время, запрещающее заходить.
1 - отсчитывать время только после выхода с сервера
amx_reconnect_stime - кол-во секунд, на протяжении которых сохраняется счёт для пользователя по ip юзера.
- перед киком проверка производится так же на ip пользователя... если зашёдший имеет другой ip - он не кикается.
2.0 - исправлен баг с уведомлением о том, что надо подождать, прежде чем войти на сервер
- добавлена команда amx_reconnect_ss <1|0> - запоминать счёт игрока или нет (работает при amx_reconnect_can 1)
1.01 - кикает всех, кто заходит раньше установленного времени после того как вышел (т.е. использует реконнект)
- поддерживаемые команды:
amx_reconnect_can <1|0> - можно или нет реконнектиться
amx_reconnect_time <sec> - время в секундах, которое нужно ждать после ухода с сервера, чтобы сного на него зайти

*/

#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"
new SCORESAVE[]="amx_reconnect_ss"
new RSTATIC[]="amx_reconnect_static"
new RSTIME[]="amx_reconnect_stime"

new t_disconnect[33] = {0, ...}
new t_scoresave[33] = {0, ...}
new ips[33][24]
new sfrags[33] = {0, ...}
new sdeaths[33] = {0, ...}
new money[33] = {0, ...}
new useretry[33] = {0, ...}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar(RTIME, "45")
register_cvar(RCAN, "0")
register_cvar(SCORESAVE, "0")
register_cvar(RSTATIC, "1")
register_cvar(RSTIME, "0")
register_event("TeamInfo","outspec","a") // восстанавливает счёт игроку в соответствии с настройками как только тот зайдёт за команду
}

public client_connect(id)
{
if ((is_user_bot(id)) || (get_user_flags(id) & ADMIN_RESERVATION) || (is_user_hltv(id)))
return PLUGIN_HANDLED
new maxexit = get_cvar_num(RTIME)
new maxstata = get_cvar_num(RSTIME)
new canreconnect = get_cvar_num(RCAN)
new ssave = get_cvar_num(SCORESAVE)
new ip[24]
get_user_ip(id,ip,23,0)

if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
{
new Float:nexTime = get_gametime()

if (t_disconnect[id] > nexTime)
{
new stat = get_cvar_num(RSTATIC)
new timewait
if (stat==0)
{
t_disconnect[id] = floatround(nexTime) + maxexit
t_scoresave[id] = floatround(nexTime) + maxstata
timewait=maxexit
}
else
{
timewait=t_disconnect[id]-floatround(nexTime)
}
server_cmd("kick #%d ^"Вы часто перезаходите на сервер, ждите %d сек.^"", get_user_userid(id), timewait)
return PLUGIN_CONTINUE
}
}
if (ssave==1 && (equali(ip,ips[id])))
{
new Float:nexTime = get_gametime()

if (t_scoresave[id] <= nexTime)
{
sdeaths[id]=false
money[id]=false
sfrags[id]=false
useretry[id]=false
}
return PLUGIN_CONTINUE
}

return PLUGIN_CONTINUE
}

public outspec()
{
new id=read_data(1)
if ((useretry[id]) && (is_user_connected(id)))
{
cs_set_user_deaths(id,sdeaths[id])
set_user_frags(id,sfrags[id])
cs_set_user_money(id, money[id])
useretry[id]=false
sdeaths[id]=false
sfrags[id]=false
money[id]=false
}
return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
if ((is_user_bot(id)) || (get_user_flags(id) & ADMIN_RESERVATION) || (is_user_hltv(id)))
return PLUGIN_HANDLED
new maxexit = get_cvar_num(RTIME)
new maxstata = get_cvar_num(RSTIME)
new ssave = get_cvar_num(SCORESAVE)

new Float:theTime = get_gametime()
t_disconnect[id] = floatround(theTime) + maxexit
t_scoresave[id] = floatround(theTime) + maxstata
get_user_ip(id,ips[id],23,0)

if (ssave==1)
{
sdeaths[id] = get_user_deaths(id)
sfrags[id] = get_user_frags(id)
money[id] = cs_get_user_money(id)
useretry[id]=true
}
return PLUGIN_CONTINUE
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя -Владимир-
сообщение 4.3.2009, 22:43
Сообщение #2
Стаж: 17 лет

Сообщений: 55
Благодарностей: 3
Полезность: < 0

актуально
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Fedcomp
сообщение 5.3.2009, 1:24
Сообщение #3
Стаж: 17 лет

Сообщений: 3899
Благодарностей: 701
Полезность: 0

Интересно сколько я буду пялиться на эту строчку ещё?
Цитата
1.01 - кикает всех, кто заходит раньше установленного времени после того как вышел (т.е. использует реконнект) - поддерживаемые команды: amx_reconnect_can <1|0> - можно или нет реконнектиться amx_reconnect_time <sec> - время в секундах, которое нужно ждать после ухода с сервера, чтобы сного на него зайти

?
просто настрой два квара и все

Отредактировал: Fedcomp, - 5.3.2009, 1:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя -Владимир-
сообщение 5.3.2009, 7:59
Сообщение #4
Стаж: 17 лет

Сообщений: 55
Благодарностей: 3
Полезность: < 0

Буго
Неужели ты думаешь, что я до этого сам бы не додумался? Если я эту тему создал, значит кривой плагин, из-за чего, собственно, и прошу убрать выше перечисленное.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Fedcomp
сообщение 5.3.2009, 11:46
Сообщение #5
Стаж: 17 лет

Сообщений: 3899
Благодарностей: 701
Полезность: 0

На форуме уже наплыв нубов потому и сказал, ты ещё не видел КАКИЕ тут вопросы задают.
ps.gif Куда cvars пихаешь? (server.cfg amxx.cfg)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
holoc
сообщение 5.3.2009, 12:19
Сообщение #6
Стаж: 19 лет

Сообщений: 749
Благодарностей: 5723
Полезность: 0

Цитата(-Владимир- @ 2.3.2009, 23:25) *
Пусть только кикает реконектчиков
CODE
#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"

new t_disconnect[33] = {0, ...}
new ips[33][24]
new useretry[33] = {0, ...}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar(RTIME, "45")
register_cvar(RCAN, "0")
}

public client_connect(id)
{
if ((is_user_bot(id)) || (get_user_flags(id) & ADMIN_RESERVATION) || (is_user_hltv(id)))
return PLUGIN_HANDLED
new maxexit = get_cvar_num(RTIME)
new canreconnect = get_cvar_num(RCAN)
new ip[24]
get_user_ip(id,ip,23,0)

if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
{
new Float:nexTime = get_gametime()

if (t_disconnect[id] > nexTime)
{
new timewait
if (stat==0)
{
t_disconnect[id] = floatround(nexTime) + maxexit
timewait=maxexit
}
else
{
timewait=t_disconnect[id]-floatround(nexTime)
}
server_cmd("kick #%d ^"Вы часто перезаходите на сервер, ждите %d сек.^"", get_user_userid(id), timewait)
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
if ((is_user_bot(id)) || (get_user_flags(id) & ADMIN_RESERVATION) || (is_user_hltv(id)))
return PLUGIN_HANDLED
new maxexit = get_cvar_num(RTIME)

new Float:theTime = get_gametime()
t_disconnect[id] = floatround(theTime) + maxexit
get_user_ip(id,ips[id],23,0)
return PLUGIN_CONTINUE
}
Попробуй так.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 10 раз
   + Цитировать сообщение
Статус пользователя -Владимир-
сообщение 5.3.2009, 14:49
Сообщение #7
Стаж: 17 лет

Сообщений: 55
Благодарностей: 3
Полезность: < 0

holoc, в твоём коде, конечно, чуть меньше ошибок, чем в том, что я переделовал, но всё-таки плагин до конца не компилируется.
Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 5.3.2009, 21:07
Сообщение #8


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

:biggrin: вы такие смешные :biggrin:
поставь
Код
amx_reconnect_ss 0


и он не будет сохранять
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя -Владимир-
сообщение 5.3.2009, 21:34
Сообщение #9
Стаж: 17 лет

Сообщений: 55
Благодарностей: 3
Полезность: < 0

да-аааа...
Ты вообще читаешь сообщения, опубликованные выше?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
holoc
сообщение 5.3.2009, 22:18
Сообщение #10
Стаж: 19 лет

Сообщений: 749
Благодарностей: 5723
Полезность: 0

CODE
#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"

new t_disconnect[33] = {0, ...}
new ips[33][24]

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar(RTIME, "45")
register_cvar(RCAN, "0")
}

public client_connect(id)
{
if ((is_user_bot(id)) || (get_user_flags(id) & ADMIN_RESERVATION) || (is_user_hltv(id)))
return PLUGIN_HANDLED
new maxexit = get_cvar_num(RTIME)
new canreconnect = get_cvar_num(RCAN)
new ip[24]
get_user_ip(id,ip,23,0)

if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
{
new Float:nexTime = get_gametime()

if (t_disconnect[id] > nexTime)
{
new timewait
timewait=t_disconnect[id]-floatround(nexTime)
server_cmd("kick #%d ^"Вы часто перезаходите на сервер, ждите %d сек.^"", get_user_userid(id), timewait)
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
if ((is_user_bot(id)) || (get_user_flags(id) & ADMIN_RESERVATION) || (is_user_hltv(id)))
return PLUGIN_HANDLED
new maxexit = get_cvar_num(RTIME)

new Float:theTime = get_gametime()
t_disconnect[id] = floatround(theTime) + maxexit
get_user_ip(id,ips[id],23,0)
return PLUGIN_CONTINUE
}
Просто писал на коленке, не было времени посмотреть. Попробуй так.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 11 раз
   + Цитировать сообщение
Fedcomp
сообщение 5.3.2009, 22:37
Сообщение #11
Стаж: 17 лет

Сообщений: 3899
Благодарностей: 701
Полезность: 0

Цитата(-Владимир- @ 5.3.2009, 22:34) *
да-аааа...
Ты вообще читаешь сообщения, опубликованные выше?

Цитата
- добавлена команда amx_reconnect_ss <1|0> - запоминать счёт игрока или нет (работает при amx_reconnect_can 1)

Ты пробовал прежде чем говорить? :biggrin:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя -Владимир-
сообщение 5.3.2009, 22:40
Сообщение #12
Стаж: 17 лет

Сообщений: 55
Благодарностей: 3
Полезность: < 0

Цитата(Fedcomp @ 5.3.2009, 22:37) *
Ты пробовал прежде чем говорить? :biggrin:

Представляешь себе, да. Даже в плагине по дефолту ставил 0. Но при данном параметре бред с этой статистикой вообще.
holoc, большое спасибо. Всё замечательно откомпилировалось.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: