Помогите отследить событие

Сообщения
105
Реакции
6
Есть плагин AUW(кастомное оружие) который имеет нативы, но я не могу никак понять, как с помощью их отследить событие. Например, как отследить когда игрок берёт в руку кастомный нож. И как сделать так что б эта проверка выполнялась постоянно?

#if defined _auw_included
#endinput
#endif
#define _auw_included

#if 1
#define __auw__native_str__get_weapon_uid "auw_get_weapon_uid"
#define __auw__native_str__give_weapon "auw_give_weapon"
#define __auw__native_str__valid_weapon "auw_valid_weapon"
#define __auw__native_str__get_weapons_data "auw_get_weapons_data"


#define __auw__native__auw_get_weapon_uid auw_get_weapon_uid
#define __auw__native__auw_give_weapon auw_give_weapon
#define __auw__native__auw_valid_weapon auw_valid_weapon
#define __auw__native__auw_get_weapons_data auw_get_weapons_data
#endif

#define AUW_IMPULSE_OFFSET 128381

enum _:eAUWData
{
eAUWData_WEAPON_REFERENCE[32],
WeaponIdType: eAUWData_WEAPON_ID,
InventorySlotType: eAUWData_WEAPON_SLOT,
eAUWData_MENU_NAME_ITEM[64],
eAUWData_WEAPON_COST,
eAUWData_WEAPON_AMMO,
eAUWData_WEAPON_BPAMMO,
Float: eAUWData_WEAPON_DAMAGE,
eAUWData_WEAPON_ALLOW_ROUND,
eAUWData_WEAPON_TRACE,
eAUWData_MENU_WEAPON_ADD,
eAUWData_WEAPON_ACCESS_FLAGS,
eAUWData_WEAPON_MODEL_VIEW[64],
eAUWData_WEAPON_MODEL_PLAYER[64],
eAUWData_WEAPON_MODEL_WORLD[64]
};

enum eAUWForwards
{
eAUWForwards_OnGiveItemPre,
eAUWForwards_OnParseEnd,
};

enum eAUWWeaponIdReturn
{
eAUWWeaponIdReturn_InvalidId = -1
};

enum eAUWGiveItemTypes
{
eAUWGiveItemTypes_AdminCmd,
eAUWGiveItemTypes_PlayerCmd,
eAUWGiveItemTypes_Native,
eAUWGiveItemTypes_ShopMenu
};

/**
* Retrieves UID by weapon name
*
  • @param sWeaponName Weapon Name
  • @param iUidWithOffset Is UID contain internal offset
  • @return UID otherwise eAUWWeaponIdReturn_InvalidId
*/

native __auw__native__auw_get_weapon_uid(const sWeaponName[], const bool: iUidWithOffset = true);

/**
* Give weapon by weapon name
*
  • @param iPlayer id
  • @param sWeaponName Weapon Name
  • @param notification Show chat notification's
  • @param uid Weapon UID
  • @param iUidWithOffset Is UID contain internal offset
  • @param iBuy Buy
*
* @return true/false
*/

native __auw__native__auw_give_weapon(iPlayer, const sWeaponName[], const bool: notification = true, const uid = -1, const iUidWithOffset = true, const iBuy = 0);

/**
* Checks if the weapon is custom
*
  • @param iItem Weapon Index
  • @param iKey UID
  • @param iKeyWithOffset Is UID contain internal offset
*
* @return true/false
*/

native __auw__native__auw_valid_weapon(iItem, iKey, const bool: iKeyWithOffset = true);

/**
* Writes weapon data to array
*
  • @param iKey UID
  • @param aData Array Data
  • @param iKeyWithOffset Is UID contain internal offset
*
* @return true/false
*/

native __auw__native__auw_get_weapons_data(iKey, aData[eAUWData], const bool: iKeyWithOffset = true);

/**
* Called before item given, before any internal checks
*
* Return 0 - to continue, any other values to break
*
  • @param eGiveItemType eAUWGiveItemTypes
  • @param iPlayer Player index
  • @param iWeaponKey Weapon raw index (UID - AUW_IMPULSE_OFFSET), can be used with weapons_get_weapons_data + AUW_IMPULSE_OFFSET
  • @param iBuy Is weapon buying, possible should be deprecated due eAUWGiveItemTypes
*
* @return nothing
*/

forward auw_on_give_item_pre(const eAUWGiveItemTypes: eGiveItemType, const iPlayer, const iWeaponKey, const iBuy);

/**
* Called after .ini parsing
*
* @param iCount Parsed weapons count
*
* @return nothing
*/

forward auw_on_parse_end(const iCount);
 
Сообщения
192
Реакции
148
Помог
1 раз(а)
Если знаешь на какой "дефолтной пушке" (reference) у тебя сделанная кастомная
(например нож)
регаешь itemDeploy(post) для неё
Если не знаешь то defaultDeploy(post)
И там уже через натив по uid нужной тебе кастомной пушки проверяешь
Если не знаешь uid
Можешь получить его через натив по имени кастомной пушки
 
Сообщения
105
Реакции
6
Ruby, а можно пожалуйста маленький пример?
4 Авг 2023
Ruby, я не понимаю как пользоваться нативом, можно маленький пример"
И там уже через натив по uid нужной тебе кастомной пушки проверяешь
Если не знаешь uid
"
 
Сообщения
192
Реакции
148
Помог
1 раз(а)
Dau84, с телефона не могу:sclerosis:
 
Сообщения
105
Реакции
6
Ruby, помоги пожалуйста понять, что я делаю не так с нативом
#include <AmxModX>
#include <HamSandwich>
#include <auw>

new const PLUGIN_NAME[] = "AUW_JUMP";
new const PLUGIN_VERSION[] = "0.1";

#define AUW_IMPULSE_OFFSET 128381

new g_DoubleJumpEnabled[MAX_PLAYERS];

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, "RusM");
RegisterHam(Ham_Item_Deploy, "weapon_knife", "Item_Deploy_Post", HAM_OVERRIDE);
}

public Item_Deploy_Post(weapon)
{
new playerid = get_pdata_cbase(weapon, 41, 4);

new weaponUID = auw_get_weapon_uid("ultimate_vlip"); // Название кастомного ножа

if (weaponUID != eAUWWeaponIdReturn_InvalidId && weapon == weaponUID + AUW_IMPULSE_OFFSET)
{
client_print(playerid, print_chat, "Вы взяли в руки кастомный нож");
}
else
{
client_print(playerid, print_chat, "...");
}
return HAM_IGNORED;
}
 
Сообщения
75
Реакции
36
Помог
4 раз(а)
Код:
#include <amxmodx>
#include <hamsandwich>
#include <reapi>
#include <auw>

new g_iUniImpulseWeapon;

public plugin_init() {
   
    RegisterHam(Ham_Item_Deploy, "weapon_knife", "@CBasePlayerWeapon_Deploy_Post", .Post = true);

    //g_iUniImpulseWeapon = auw_get_weapon_uid("ultimate_vlip", false) + AUW_IMPULSE_OFFSET;
    g_iUniImpulseWeapon = auw_get_weapon_uid("ultimate_vlip", true);
}

@CBasePlayerWeapon_Deploy_Post(const pItem) {

    if(get_entvar(pItem, var_impulse) == g_iUniImpulseWeapon)
    {
        client_print(get_member(pItem, m_pPlayer), print_chat, "Вы взяли в руки кастомный нож.");
    }
}

Отредактировал код выше, не обратил внимание что у натива auw_get_weapon_uid 2 аргумента
 
Последнее редактирование:
Сообщения
105
Реакции
6
CSBishop, ошибок при компиляции нет, но он не выводит сообщение.
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
Dau84, это лишь пример, смени данные на свои
 
Сообщения
105
Реакции
6
Nordic Warrior, спасибо, я это понимаю)
5 Авг 2023
CSBishop, спасибо большое, буду сидеть разбираться что к чему)
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу