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

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

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

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

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

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

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

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

Yes recoil

Статус пользователя Stalcker
сообщение 4.8.2011, 10:22
Сообщение #1


Стаж: 18 лет

Сообщений: 87
Благодарностей: 10
Полезность: 93

Plugin "Anty NoRecoil"

Возник вопрос о противодействии клиентам, использующим скрипты или программы, для уменьшения отдачи при стрельбе.
Искал в интернете действующий плагин, но нашел только коды, предлагаемые для борьбы с этим.
Так как не разбираюсь в их устройстве и эффективности, решил поделиться с вами и узнать ваше мнение на их счет.

Какой, более грамотный и эффективный?

Возможно, совместные усилия умельцев форума + готовые исходники помогут созданию действительно чего-то стоящего.
Plugin #1
Код
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <engine>

#define PLUGIN "No Recoil"
#define VERSION "1.0"
#define AUTHOR "Pike & brigada alliedmods"
#define MAXPLAYERS 32
#define RECOIL 4

new g_nCurWeapon[MAXPLAYERS+1][2]
new Float:recoil_LastAng[MAXPLAYERS+1][3]
new userDetections[MAXPLAYERS+1][5]
new g_MaxPlayers

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_event( "CurWeapon", "No_recoil",  "b" )
    set_task(1.0,"ClearRecoil",128,_,_,"b")
}
public No_Recoil(id)    
{

    new Float:aim[3]
    new weaponID = read_data( 2 )    
    new wAmmo = read_data( 3 )    

    entity_get_vector(id,EV_VEC_angles,aim)
      
    if( g_nCurWeapon[id-1][0] != weaponID ) // User Changed Weapons..    
    {    
     g_nCurWeapon[id-1][0] = weaponID    
     g_nCurWeapon[id-1][1] = wAmmo    
     return PLUGIN_CONTINUE    
    }    
    if( g_nCurWeapon[id-1][1] < wAmmo ) // User Reloaded..    
    {    
     g_nCurWeapon[id-1][1] = wAmmo    
     return PLUGIN_CONTINUE    
    }    
    if( g_nCurWeapon[id-1][1] == wAmmo ) // User did something else, but didn't shoot..    
     return PLUGIN_CONTINUE    
    g_nCurWeapon[id-1][1] = wAmmo    
    g_nCurWeapon[id-1][0] = weaponID    

    if (weaponID == CSW_HEGRENADE    
    || weaponID == CSW_SMOKEGRENADE    
    || weaponID == CSW_FLASHBANG    
    || weaponID == CSW_KNIFE    
    || weaponID == CSW_C4
    || weaponID == CSW_GLOCK18) {    
     return PLUGIN_HANDLED    
    }else{    
     if((aim[0]==recoil_LastAng[id][0] && recoil_LastAng[id][0]!=0))
     {
      userDetections[id][RECOIL]++
     }else{
      userDetections[id][RECOIL]--
     }
     recoil_LastAng[id][0]=aim[0]
        

     if (userDetections[id][RECOIL] > 10)
      cheatDetected(id,RECOIL)

    }
      
    return PLUGIN_CONTINUE    
}    
public client_connect(id)
{
    userDetections[id][RECOIL] = 0
}
public ClearRecoil()
{
    for(new i=0;i<=g_MaxPlayers;i++)
    {
     userDetections[i][RECOIL] = userDetections[i][RECOIL] - 10

     if (userDetections[i][RECOIL] < 0)
      userDetections[i][RECOIL] = 0
    }
}
public cheatDetected(id, rcode)
{
    new name[32]
    new ip[32], reason[64]
    new authid[32],map[32]
    get_user_name(id, name, 31)
    get_user_ip(id, ip, 31, 1)
    get_user_authid(id, authid, 31)
    get_mapname(map,31)
    if (rcode==RECOIL)
    reason = "Norecoil hack"

    server_cmd("kick #%d [Anti-Cheats] %s", get_user_userid(id), reason)

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

Plugin #2
Код
#include <amxmodx>
#include <fakemeta>

#define VERSION "0.0.1"

public plugin_init()
{
    register_plugin("Anto No Recoil Script", VERSION, "ConnorMcLeod")
}

public client_connect( id )
{
    client_cmd(id, "cl_pitchspeed 225")
}

public client_putinserver( id )
{
    remove_task(id)
    if( !is_user_bot(id) && !is_user_hltv(id) )
    {
        set_task(0.1, "LaunchPitchSpeedChecks", id)
    }
}

public LaunchPitchSpeedChecks( id )
{
    if( is_user_connected(id) )
    {
        query_client_cvar(id, "cl_pitchspeed", "ClPitchSpeedResult")
    }
}

public ClPitchSpeedResult(id, szCvar[], szValue[])
{
    if( szValue[0] != '2' || szValue[1] != '2' || szValue[2] != '5' || szValue[3] != 0 )
    {
        set_pev(id, pev_angles, Float:{0.0,100.0,0.0})
        client_cmd(id, "cl_pitchspeed 225")
    }
    query_client_cvar(id, "cl_pitchspeed", "ClPitchSpeedResult")
}

Plugin #3
Код
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Anty NR script"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)    
    set_task(1.0, "hook_bind", _, _, _, "b")
}

public hook_bind()
{
    client_cmd(0, "bind mouse1 +attack")
}

Все исходники компилируются без ошибок - вопрос, их эффективность и целесообразность поставленной задаче

Отредактировал: Stalcker, - 4.8.2011, 10:23
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя STILL47DEATH
сообщение 4.8.2011, 10:56
Сообщение #2


Стаж: 18 лет

Сообщений: 662
Благодарностей: 83
Полезность: 150

Stalcker,
в скриптинге не понимаю, но отдал бы предпочтение первому после того, как увидел авторов!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Cracky
сообщение 4.8.2011, 11:01
Сообщение #3


Стаж: 15 лет

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

и что ты там увидел:? второй не менее авторитетный
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Stalcker
сообщение 4.8.2011, 11:43
Сообщение #4


Стаж: 18 лет

Сообщений: 87
Благодарностей: 10
Полезность: 93

первый, я ставил на свой сервер, но не заметил разницы что с ним, что без него
может кто-то возьмется потестить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Asmodai
сообщение 4.8.2011, 12:15
Сообщение #5
Стаж: 15 лет

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

1) Не разбираюсь, как он угол отдачи определяет, но вроде идея верная. Может забанить ошибочно и может портить стрельбу.
2) Толку 0.
3) Неплохо. Надо заменить на повтор в начале каждого раунда и добавить проверку на cl_pitchspeed.
Обойти несложно, но нубы не догадаются, а опытным надоест.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 19.8.2011, 16:22
Сообщение #6
Стаж: 17 лет

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

Цитата(Asmodai @ 4.8.2011, 13:15) *
1) Не разбираюсь, как он угол отдачи определяет, но вроде идея верная. Может забанить ошибочно и может портить стрельбу.
2) Толку 0.
3) Неплохо. Надо заменить на повтор в начале каждого раунда и добавить проверку на cl_pitchspeed.
Обойти несложно, но нубы не догадаются, а опытным надоест.

Бред.

1. Стрельбу портить? :biggrin: Инетерсно каким же образом? Если угол не меняеться. Да насчет фейков согласен возможны.
2. Самый идеальный вариант. Ибо идея очень хорошая. (cl_pitchspeed меняеться при использовании norecoil любым скриптом для того чтобы прицел отображался в верной точке). Поетому етот вариант с отловом изменения cl_pitchspeed и сбивании прицела являеться самый стопроцентовым. Кроме одного НО: используеться query_client_cvar которая не поддерживаеться у клиентов со старым патчем (ниже 27 вроде), поемотому при проверке их будет выкидывать с каким-то из Host_Error-ов. Для стим или емуляционного сервера же ето вариант идеальный.
3. Не будет работать против НЕ скриптовых Norecoil. Да и со скриптовым достаточно просто обходиться.

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