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

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

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

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

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

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

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

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

Плагин Cuftrom Knife Distance !

, Нужно помочь привязать плагин на меня тоесть чтобы я им только пользов
Статус пользователя Dragonvlad
сообщение 26.11.2012, 13:10
Сообщение #1
Стаж: 13 лет

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

Помогите переделать плагин custrom Cuftrom Knife Distance на админа чтобы работало только у админов понятно?

Вот исходник
Код
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <xs>

/*===============================================================================
=
[Constants, Offsets, Macros]
================================================================================
=*/

// Plugin Version
new const PLUGIN_VERSION[] = "2.0"

/*===============================================================================
=
[Global Variables]
================================================================================
=*/

// Player vars
new g_attacking[33] // get attacking

// Game vars
new g_maxplayers // max players counter

// Cvar
new cvar_kf1, cvar_kf2


// Cached stuff for players
#define is_user_valid_connected(%1) (1 <= %1 <= g_maxplayers && is_user_connected(%1))

/*===============================================================================
=
[Precache and Init]
================================================================================
=*/

public plugin_precache()
{
    // Register earlier to show up in plugins list properly after plugin disable/error at loading
    register_plugin("CFD", PLUGIN_VERSION, "Dragonvlad")
}

public plugin_init()
{
    // Events
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    
    // FM Forwards
    RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fw_PrimaryAttack")
    RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fw_SecondaryAttack")
    RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fw_PrimaryAttack_Post", 1)
    RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fw_SecondaryAttack_Post", 1)
    register_forward(FM_TraceLine, "fw_TraceLine")
    register_forward(FM_TraceHull, "fw_TraceHull")
    
    // Register Cvar
    cvar_kf1 = register_cvar("knife_distance1", "50.0")
    cvar_kf2 = register_cvar("knife_distance2", "14448.0")
    
    // Get Max Players
    g_maxplayers = get_maxplayers()
}

/*===============================================================================
=
[Main Events]
================================================================================
=*/

// Event Round Start
public event_round_start()
{
    // Show the messages
    
    colored_print(0, "^x04Главный админ^x03 BoG.")
}

/*===============================================================================
=
[Main Forwards]
================================================================================
=*/

public fw_PrimaryAttack(weapon_ent)
{
    // Not valid
    if (!pev_valid(weapon_ent))
        return;
    
    // Get owner
    static owner
    owner = pev(weapon_ent, pev_owner)
    
    // Replace these for zombie only
    if (!is_user_valid_connected(owner))
        return;
    
    g_attacking[owner] = 1
}

public fw_SecondaryAttack(weapon_ent)
{
    // Not valid
    if (!pev_valid(weapon_ent))
        return;
    
    // Get owner
    static owner
    owner = pev(weapon_ent, pev_owner)
    
    // Replace these for zombie only
    if (!is_user_valid_connected(owner))
        return;
    
    g_attacking[owner] = 2
}

public fw_PrimaryAttack_Post(weapon_ent)
{
    // Not valid
    if (!pev_valid(weapon_ent))
        return;
    
    // Get owner
    static owner
    owner = pev(weapon_ent, pev_owner)
    
    // Replace these for zombie only
    if (!is_user_valid_connected(owner))
        return;
    
    g_attacking[owner] = 0
}

public fw_SecondaryAttack_Post(weapon_ent)
{
    // Not valid
    if (!pev_valid(weapon_ent))
        return;
    
    // Get owner
    static owner
    owner = pev(weapon_ent, pev_owner)
    
    // Replace these for zombie only
    if (!is_user_valid_connected(owner))
        return;
    
    g_attacking[owner] = 0
}

public fw_TraceLine(Float:vector_start[3], Float:vector_end[3], ignored_monster, id, handle)
{
    // Replace these for zombie only
    if (!is_user_valid_connected(id))
        return FMRES_IGNORED;
    
    // Not alive
    if (!is_user_alive(id))
        return FMRES_IGNORED;
    
    // Not using knife
    if (get_user_weapon(id) != CSW_KNIFE)
        return FMRES_IGNORED;
    
    // Not attacking
    if (!g_attacking[id])
        return FMRES_IGNORED;
    
    pev(id, pev_v_angle, vector_end)
    angle_vector(vector_end, ANGLEVECTOR_FORWARD, vector_end)
    
    if (g_attacking[id] == 1)
        xs_vec_mul_scalar(vector_end, get_pcvar_float(cvar_kf1), vector_end)
    else
        xs_vec_mul_scalar(vector_end, get_pcvar_float(cvar_kf2), vector_end)
    
    xs_vec_add(vector_start, vector_end, vector_end)
    engfunc(EngFunc_TraceLine, vector_start, vector_end, ignored_monster, id, handle)
    
    return FMRES_SUPERCEDE;
}

public fw_TraceHull(Float:vector_start[3], Float:vector_end[3], ignored_monster, hull, id, handle)
{
    // Replace these for zombie only
    if (!is_user_valid_connected(id))
        return FMRES_IGNORED;
    
    // Not alive
    if (!is_user_alive(id))
        return FMRES_IGNORED;
    
    // Not using knife
    if (get_user_weapon(id) != CSW_KNIFE)
        return FMRES_IGNORED;
    
    // Not attacking
    if (!g_attacking[id])
        return FMRES_IGNORED;
    
    pev(id, pev_v_angle, vector_end)
    angle_vector(vector_end, ANGLEVECTOR_FORWARD, vector_end)
    
    if (g_attacking[id] == 1)
        xs_vec_mul_scalar(vector_end, get_pcvar_float(cvar_kf1), vector_end)
    else
        xs_vec_mul_scalar(vector_end, get_pcvar_float(cvar_kf2), vector_end)
    
    xs_vec_add(vector_start, vector_end, vector_end)
    engfunc(EngFunc_TraceHull, vector_start, vector_end, ignored_monster, hull, id, handle)
    
    return FMRES_SUPERCEDE;
}

// Colored print by MeRcyLeZZ
colored_print(target, const message[], any:...)
{
    static buffer[512], i, argscount, g_msgSayText
    argscount = numargs()
    g_msgSayText = get_user_msgid("SayText")
    
    // Send to everyone
    if (!target)
    {
        static player
        for (player = 1; player <= g_maxplayers; player++)
        {
            // Not connected
            if (!is_user_connected(player))
                continue;
            
            // Remember changed arguments
            static changed[5], changedcount // [5] = max LANG_PLAYER occurencies
            changedcount = 0
            
            // Replace LANG_PLAYER with player id
            for (i = 2; i < argscount; i++)
            {
                if (getarg(i) == LANG_PLAYER)
                {
                    setarg(i, 0, player)
                    changed[changedcount] = i
                    changedcount++
                }
            }
            
            // Format message for player
            vformat(buffer, charsmax(buffer), message, 3)
            
            // Send it
            message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player)
            write_byte(player)
            write_string(buffer)
            message_end()
            
            // Replace back player id's with LANG_PLAYER
            for (i = 0; i < changedcount; i++)
                setarg(changed[i], 0, LANG_PLAYER)
        }
    }
    // Send to specific target
    else
    {
        // Format message for player
        vformat(buffer, charsmax(buffer), message, 3)
        
        // Send it
        message_begin(MSG_ONE, g_msgSayText, _, target)
        write_byte(target)
        write_string(buffer)
        message_end()
    }
}


Отредактировал: Dragonvlad, - 29.11.2012, 18:47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Takashi Murakami
сообщение 26.11.2012, 21:32
Сообщение #2
Стаж: 14 лет

Сообщений: 797
Благодарностей: 459
Полезность: 514

Всем понятно? punishment.gif помогите ему переделать! rofl.gif

По теме топикстартеру напишите название плагина правильно или исходник в студию.

Скрытый текст

custrom knife distancer
Cuftrom Knife Distancer,


Гуглил нет таких плагинов вообще. dntknw.gif

Отредактировал: Takashi Murakami, - 26.11.2012, 21:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RedL1ne
сообщение 27.11.2012, 0:22
Сообщение #3


Стаж: 15 лет

Сообщений: 3828
Благодарностей: 1854
Полезность: 876

Догадываюсь, что это хитрый плаг что б ножом с 5 метров убивать :D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 27.11.2012, 6:25
Сообщение #4


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

ТС дважды его выкладывал, я его дважды удалял.
В теме не понятно было написано что он хочет сделать, выглядело так, будто он хочет его привязать к своему серверу и при этом выкладывает исходник. Поэтому он получил замечание от меня и плагин был удален. Если вопрос в том "чтобы для админов работало" то ТС пусть выкладывает исходник под спойлер в теге code


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