WeaponMod

Материал из HLDM Wiki
Перейти к навигации Перейти к поиску

hl_wpnmod.inc

wpnmod_register_weapon

Регистрация нового оружия. Возвращает ID зарегистрированного оружия или -1 в случае ошибки.

native wpnmod_register_weapon(const szName[], const iSlot, const iPosition, const szAmmo1[], const iMaxAmmo1, const szAmmo2[], const,  iMaxAmmo2, const iMaxClip, const iFlags, const iWeight);
szName Имя оружия
iSlot ID слота от 1 до 5
iPosition Позиция в слоте от 1 до 5
szAmmo1 Тип патронов основной атаки ("9mm", "uranium", "MY_AMMO" и т.д.).
iMaxAmmo1 Максимальное количество патронов в обойме для основной атаки
szAmmo2 Тип патронов вторичной атаки
iMaxAmmo2 Максимальное количество патронов в обойме для вторичной атаки
iMaxClip Максимальное количество переносимых игроком патронов (в обойме не считается)
iFlags Флаги оружия (смотри константы).
iWeight Вес оружия (для автопереключения

wpnmod_register_weapon_forward

Регистрирует форвард оружия.

native wpnmod_register_weapon_forward(const iWeaponID, const e_WpnFwds: iForward, const szCallBack[]);
iWeaponID ID оружия
iForward Forward type to register.
szCallBack The forward to call

Пример:

// Weapon settings
#define WEAPON_NAME 			"weapon_deagle"      // Название оружие
#define WEAPON_SLOT			2                    // Второй слот (пистолеты)
#define WEAPON_POSITION			3                    // Третья позиция в слоте
#define WEAPON_PRIMARY_AMMO		"357"                // Тип патронов
#define WEAPON_PRIMARY_AMMO_MAX		36                   // Максимальное количество патронов, исключая патроны в обойме
#define WEAPON_SECONDARY_AMMO		""                   // Вторичного нет
#define WEAPON_SECONDARY_AMMO_MAX	-1                   // Вторичного нет
#define WEAPON_MAX_CLIP			9                    // Патронов в обойме
#define WEAPON_DEFAULT_AMMO		14                   // Патронов по-умолчанию, включая патроны в обойме
#define WEAPON_FLAGS			0                    // Флаг оружия
#define WEAPON_WEIGHT			12                   // Вес оружия, для автосмены
#define WEAPON_DAMAGE			60.0                 // Урон одного патрона

new deagle_id = wpnmod_register_weapon(
    WEAPON_NAME,
    WEAPON_SLOT,
    WEAPON_POSITION,
    WEAPON_PRIMARY_AMMO,
    WEAPON_PRIMARY_AMMO_MAX,
    WEAPON_SECONDARY_AMMO,
    WEAPON_SECONDARY_AMMO_MAX,
    WEAPON_MAX_CLIP,
    WEAPON_FLAGS,
    WEAPON_WEIGHT
);

wpnmod_get_weapon_info

Returns any ItemInfo variable for weapon. Use the e_ItemInfo_* enum.

native wpnmod_get_weapon_info(const iId, const e_ItemInfo: iInfoType, any:...);
iId The ID of registered weapon or weapon entity Id.
iInfoType ItemInfo type

return Weapon's ItemInfo variable.

wpnmod_get_weapon_count

Возвращает количество зарегистрированного оружия.

native wpnmod_get_weapon_count();

wpnmod_register_ammobox

Регистрация нового аммобокса в модуле. Возвращает ID зарегистрированого аммобокса, -1 в случае неудачи.

native wpnmod_register_ammobox(const szClassname[]);
szName Название аммобокса ("uranium", "9mm", "my_ammo" и т.д.)

wpnmod_register_ammobox_forward

Регистрирует форвард аммобокса. Форвард - функция при определенном действии с аммобоксами (напр. спавн).

native wpnmod_register_ammobox_forward(const iWeaponID, const e_AmmoFwds: iForward, const szCallBack[]);
iAmmoboxID ID аммобокса, полученный из регистрации аммобокса.
iForward Тип хука.
szCallBack Функция, которая будет вызвана по этому хуку.

wpnmod_get_ammobox_info

Returns any AmmoInfo variable for ammobox. Use the e_AmmoInfo_* enum.

native wpnmod_get_ammobox_info(const iId, const e_AmmoInfo: iInfoType, any:...);
iId The ID of registered ammobox or ammobox entity Id
iInfoType e_AmmoInfo_* type

return Ammobox's AmmoInfo variable.

wpnmod_get_ammobox_count

Возвращает количество зарегистрированных аммобоксов.

native wpnmod_get_ammobox_count();

wpnmod_set_think

Установка отложенного задания (think функция).

native wpnmod_set_think(const iItem, const szCallBack[]);
iItem Индекс энтити, для которой необходимо вызвать отложенное задание.
szCallBack Функция, которая будет вызвана.

Пример:

wpnmod_set_think(iItem, "M249_CompleteReload");
set_pev(iItem, pev_nextthink, get_gametime() + 1.52);

Через 1.52 секунды будет вызвана функция "M249_CompleteReload".

В вызываемую функцию будут переданы следующие параметры:

iItem Индекс энтити, для которой необходимо вызвать отложенное задание.
iPlayer Индекс игрока, владельца оружия.
iClip Кол-во аммо в обойме (магазине)оружия.
iAmmo Кол-во аммо в запасе у игрока к данному оружию.

wpnmod_set_touch

Sets entity's touch function.

native wpnmod_set_touch(const iEntity, const szCallBack[]);
iEntity Entity index
szCallBack The forward to call

wpnmod_send_weapon_anim

Играть анимацию оружия.

native wpnmod_send_weapon_anim(const iItem, const iAnim);
iItem Индекс энтити оружия.
iAnim Номер анимации модели нашего оружия для проигрывания (можно узнать через Model Viewer).

wpnmod_set_player_anim

Проигрывание определенного типа анимации моделью игрока

native wpnmod_set_player_anim(const iPlayer, const PLAYER_ANIM: iPlayerAnim);
iPlayer Индекс игрока
iPlayerAnim Тип анимации

wpnmod_set_anim_ext

Set animation extension for player.

native wpnmod_set_anim_ext(const iPlayer, const szAnimExt[]);
iPlayer Player id.
szAnimExt[] Animation extension prefix.

wpnmod_get_anim_ext

Get animation extension for player.

native wpnmod_get_anim_ext(const iPlayer, szDest[], iMaxLen);
iPlayer Player id.
szDest[] Buffer.
iMaxLen Max buffer size.

wpnmod_set_offset_int

Установка целочисленного значения по оффсету для энтити

native wpnmod_set_offset_int(const iEntity, const e_Offsets: iOffset, const iValue);
iEntity Индекс энтити
iOffset Тип оффсета
iValue Значение

wpnmod_get_offset_int

Получение целочисленного значения по оффсету для энтити

native wpnmod_get_offset_int(const iEntity, const e_Offsets: iOffset);
iEntity Индекс энтити
iOffset Тип оффсета

return value from private data. (integer)

wpnmod_set_offset_float

Установка вещественного значения по оффсету для энтити

native wpnmod_set_offset_float(const iEntity, const e_Offsets: iOffset, const Float: flValue);
iEntity Entity index.
iOffset Offset (see e_Offsets constants).
flValue Value.

wpnmod_get_offset_float

Получение вещественного значения по оффсету для энтити

native Float: wpnmod_get_offset_float(const iEntity, const e_Offsets: iOffset);
iEntity Entity index.
iOffset Offset (see e_Offsets constants).

return value from private data. (float)

wpnmod_set_offset_cbase

Set the corresponding cbase field in private data with the index.

native wpnmod_set_offset_cbase(const iEntity, const e_CBase: iOffset, const iValue, const iExtraOffset = 0);
iEntity The entity to examine the private data
iOffset Offset (See e_CBase constants)
iValue The index to store
iExtraOffset The extra offset

wpnmod_get_offset_cbase

This will return an index of the corresponding cbase field in private data.

native wpnmod_get_offset_cbase(const iEntity, const e_CBase: iOffset, const iExtraOffset = 0);
iEntity The entity to examine the private data.
iOffset Offset (See e_CBase constants).
iExtraOffset The extra offset.

return value from private data. (integer)

wpnmod_default_deploy

Функция активации оружия по умолчанию.

native wpnmod_default_deploy(const iItem, const szViewModel[], const szWeaponModel[], const iAnim, const szAnimExt[]);
iItem Индекс энтити оружия.
szViewModel Модель оружия, видимая только её владельцу (V)
szWeaponModel Модель оружия в руках игрока, видимая со стороны остальным (P)
iAnim Номер анимации для проигрывания при активации
szAnimExt Расширение анимации для модели игрока

wpnmod_default_reload

Функция перезарядки оружия по умолчанию

native wpnmod_default_reload(const iItem, const iClipSize, const iAnim, const Float: flDelay);
iItem Индекс энтити оружия
iClipSize Размер обоймы (магазина)
iAnim Номер анимации перезарядки для проигрывания
flDelay Длительность перезарядки.

wpnmod_reset_empty_sound

Сброс звука осечки. Необходимо для дальнейшего проигрывания звука осечки.

native wpnmod_reset_empty_sound(const iItem);
iItem Индекс энтити оружия

wpnmod_play_empty_sound

Проигрывание звука осечки

native wpnmod_play_empty_sound(const iItem);
iItem Индекс энтити оружия

wpnmod_fire_bullets

Выстрел из оружия.

native wpnmod_fire_bullets(const iPlayer, const iAttacker, const iShotsCount, const Float: vecSpread[3], const Float: flDistance, const Float: flDamage, const bitsDamageType, const iTracerFreq);
iPlayer Индекс игрока, владельца оружия
iAttacker Индекс атакующего, как правило владельца оружия
iShotsCount Кол-во выстрелов за раз
vecSpread Разброс
flDistance Дальность выстрела
flDamage Урон
bitsDamageType Тип урона
iTracerFreq Частота трасеров

wpnmod_fire_contact_grenade

Fire default contact grenade from player's weapon.

native wpnmod_fire_contact_grenade(const iPlayer, const Float: vecStart[3], const Float: vecVelocity[3], const szCallBack[] = "");
iPlayer Player index
vecStart Start position
vecVelocity Velocity
szCallBack The forward to call on explode

return contact grenade index or -1 on failure. (integer)

wpnmod_fire_timed_grenade

Fire default timed grenade from player's weapon.

native wpnmod_fire_timed_grenade(const iPlayer, const Float: vecStart[3], const Float: vecVelocity[3], const Float: flTime = 3.0, const szCallBack[] = "");
iPlayer Player index.
vecStart Start position.
vecVelocity Velocity.
flTime Time before detonate.
szCallBack The forward to call on explode.

return contact grenade index or -1 on failure. (integer)

wpnmod_radius_damage

Make damage upon entities within a certain range. Only damage ents that can clearly be seen by the explosion.

native wpnmod_radius_damage(const Float: vecSrc[3], const iInflictor, const iAttacker, const Float: flDamage, const Float: flRadius, const iClassIgnore, const bitsDamageType);
vecSrc Origin of explosion.
iInflictor Entity which causes the damage impact.
iAttacker Attacker index.
flDamage Damage amount.
flRadius Damage radius.
iClassIgnore Class to ignore.
bitsDamageType (DMG_BLAST and etc).

wpnmod_radius_damage2

Same as wpnmod_radius_damage, but blocks 'ghost mines' and 'ghost nades'.

native wpnmod_radius_damage2(const Float: vecSrc[3], const iInflictor, const iAttacker, const Float: flDamage, const Float: flRadius, const iClassIgnore, const bitsDamageType);
vecSrc Origin of explosion.
iInflictor Entity which causes the damage impact.
iAttacker Attacker index.
flDamage Damage amount.
flRadius Damage radius.
iClassIgnore Class to ignore.
bitsDamageType (DMG_BLAST and etc).

wpnmod_clear_multi_damage

Resets the global multi damage accumulator.

native wpnmod_clear_multi_damage();

wpnmod_apply_multi_damage

Inflicts contents of global multi damage register on entity.

native wpnmod_apply_multi_damage(const iInflictor, const iAttacker);
iInflictor Entity which causes the damage impact.
iAttacker Attacker index.

wpnmod_eject_brass

Выпадение гильзы из оружия.

native wpnmod_eject_brass(const iPlayer, const iShellModelIndex, const iSoundtype, const Float: flForwardScale, const Float: flUpScale, const Float: flRightScale);
iPlayer Индекс игрока
iShellModelIndex Индекс прекешенной модели гильзы
iSoundtype Тип звука
flForwardScale Смещение вперед относительно игрока
flUpScale Смещение вверх относительно игрока
flRightScale Смещение вбок относительно игрока

wpnmod_create_item

Создание энтити оружия или аммобокса

native wpnmod_create_item(const szName[], const Float: vecOrigin[3] = {0.0, 0.0, 0.0}, const Float: vecAngles[3] = {0.0, 0.0, 0.0});
szName Класснейм энтити, которую хотим создать.
vecOrigin Координаты где заспавнить.
vecAngles Углы, под которыми отспавнить.

return item entity index or -1 on failure. (integer)

wpnmod_get_player_ammo

Получает количество патронов заданного типа у игрока.

native wpnmod_get_player_ammo(const iPlayer, const szAmmoName[]);
iPlayer ID игрока
szAmmoName Название типа патронов ("9mm", "uranium", "MY_AMMO" и т.д.)

wpnmod_set_player_ammo

Set player's ammo inventory.

native wpnmod_set_player_ammo(const iPlayer, const szAmmoName[], const iAmount);
iPlayer ID игрока
szAmmoName Название типа патронов ("9mm", "uranium", "MY_AMMO" и т.д.)
iAmount Количество патронов

wpnmod_get_damage_decal

Returns index of random damage decal for given entity.

native wpnmod_get_damage_decal(const iEntity);
iEntity Энтити

return Index of damage decal. (integer)

wpnmod_get_gun_position

Get player's gun position. Result will set in vecResult.

native wpnmod_get_gun_position(const iPlayer, Float: vecResult[3], const Float: flForwardScale = 1.0, const Float: flRightScale = 1.0, const Float: flUpScale = 1.0);
iPlayer Player index
vecResult Calculated gun position
flForwardScale Forward scale value
flUpScale Up scale value
flRightScale Right scale value

wpnmod_explode_entity

Explode and then remove entity.

native wpnmod_explode_entity(const iEntity, const bitsDamageType = 0, const szCallBack[] = "");

wpnmod_decal_trace

Draw decal by index or name on trace end.

native wpnmod_decal_trace(const iTrace, const iDecalIndex = -1, const szDecalName[] = "");
iTrace Trace handler.
iDecalIndex Decal index.
szDecalName Decal name.

wpnmod_trace_texture

Detects the texture of an entity from a direction.

native wpnmod_trace_texture(const iEntity, const Float: vecSrc[3], const Float: vecEnd[3], szTextureName[], const iLen);
iEntity Entity index that we want to get the texture.
vecSrc The point from where the trace starts.
vecEnd The point where the trace ends.
szTextureName Buffer to save the texture name.
iLen Buffer's length.

Ссылки