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

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

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

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

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

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

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

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

Блок РТВ

Статус пользователя Maxopka
сообщение 9.5.2013, 14:19
Сообщение #1


Стаж: 13 лет

Сообщений: 572
Благодарностей: 163
Полезность: 175

Есть плагин Блок РТВ.
Но можно его перехитрить, пишем в чат rtva или rtvashdvsa(Любой набор букв после rtv) и ртв засчитывает ваш голос.
Можно как нибудь это запретить?Кроме отключения самого плагина.
Скрытый текст
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "Block RTV"
#define VERSION "1.4"
#define AUTHOR "MMYTH"

new g_on

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_dictionary("block_rtv.txt")

g_on = register_cvar("amx_block_rtv", "1")

new configdir[50] ; get_configsdir(configdir, charsmax(configdir))
add(configdir, charsmax(configdir), "/block_rtv.ini", 0)

new fp = fopen(configdir, "rt"), buffer[301]

if(fp)
{
while(!feof(fp))
{
fgets(fp, buffer, charsmax(buffer))

trim(buffer)

if(!buffer[0] || buffer[0] == ';' || buffer[0] == '/' && buffer[1] == '/')
continue

register_clcmd(buffer, "blockRTV")
}
}
else
{
set_fail_state("File ^"block_rtv.ini^" Required")
}

fclose(fp)
}

public blockRTV(id)
{
if(get_pcvar_num(g_on))
{
new players[32]
new playerCount, i, player
get_players(players, playerCount, "ch")

for(i = 0; i < playerCount; i++)
{
player = players[i]

if(is_user_admin(player) && cs_get_user_team(player) != CS_TEAM_SPECTATOR)
{
client_print(id, print_chat, "%L", id, "BLOCK_RTV_MSG1")

return PLUGIN_HANDLED
}
}
}

return PLUGIN_CONTINUE
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1046\\ f0\\ fs16 \n\\ par }
*/



Отредактировал: Maxopka, - 9.5.2013, 14:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Cracky
сообщение 9.5.2013, 15:42
Сообщение #2


Стаж: 15 лет

Сообщений: 768
Благодарностей: 197
Полезность: 506

Во первых сделано через жопу, один плагин не должен ограничивать доступ к другому. Поэтому надо переделать сам плагин предоставляющий rtv, чтобы он не отрабатывал команду когда не надо.
Во вторых, если уж и продолжать этим методом, то опять же надо редактировать основной плагин, а именно отредачить register_clcmd с say на say rtv
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
letsplayer
сообщение 9.5.2013, 16:13
Сообщение #3
Стаж: 13 лет

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

Код:

#include <amxmodx>

#define PLUGIN "Block RTV"
#define VERSION "1.4"
#define AUTHOR "MMYTH"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say rtv", "BlockCMD")
register_clcmd("say rockthevote", "BlockCMD")
}

public BlockCMD(id)
{
return PLUGIN_HANDLED
}


Отредактировал: letsplayer, - 9.5.2013, 16:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: