WeaponMod
Содержание
- 1 hl_wpnmod.inc
- 1.1 wpnmod_register_weapon
- 1.2 wpnmod_register_weapon_forward
- 1.3 wpnmod_get_weapon_info
- 1.4 wpnmod_get_weapon_count
- 1.5 wpnmod_register_ammobox
- 1.6 wpnmod_register_ammobox_forward
- 1.7 wpnmod_get_ammobox_info
- 1.8 wpnmod_get_ammobox_count
- 1.9 wpnmod_set_think
- 1.10 wpnmod_set_touch
- 1.11 wpnmod_send_weapon_anim
- 1.12 wpnmod_set_player_anim
- 1.13 wpnmod_set_anim_ext
- 1.14 wpnmod_get_anim_ext
- 1.15 wpnmod_set_offset_int
- 1.16 wpnmod_get_offset_int
- 1.17 wpnmod_set_offset_float
- 1.18 wpnmod_get_offset_float
- 1.19 wpnmod_set_offset_cbase
- 1.20 wpnmod_get_offset_cbase
- 1.21 wpnmod_default_deploy
- 1.22 wpnmod_default_reload
- 1.23 wpnmod_reset_empty_sound
- 1.24 wpnmod_play_empty_sound
- 1.25 wpnmod_fire_bullets
- 1.26 wpnmod_fire_contact_grenade
- 1.27 wpnmod_fire_timed_grenade
- 1.28 wpnmod_radius_damage
- 1.29 wpnmod_radius_damage2
- 1.30 wpnmod_clear_multi_damage
- 1.31 wpnmod_apply_multi_damage
- 1.32 wpnmod_eject_brass
- 1.33 wpnmod_create_item
- 1.34 wpnmod_get_player_ammo
- 1.35 wpnmod_set_player_ammo
- 1.36 wpnmod_get_damage_decal
- 1.37 wpnmod_get_gun_position
- 1.38 wpnmod_explode_entity
- 1.39 wpnmod_decal_trace
- 1.40 wpnmod_trace_texture
- 2 Ссылки
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. |