inklesspen
Не пишу модули под LSD :с
- Сообщения
- 1,775
- Реакции
- 966
- Автор ресурса
- #1
Версия: 1.4.1
Описание:
Выставляет макс.размер обоимы и запаса у оружия. Например у калаша в обоиме вмещается 100 патрон, а в запасе 500
Поддерживаемые игры:
- CSGO
- CSS (С версии 1.4.1, не тестирован, конфиг лишь для CS:GO)
Требования:
- SourceMod (Хотя это и так понятно...)
- DHooks
Конфиги (Для CSS патроны изменяются только в обоиме)
Примеры плагинов, использующих нативы:
Нативы\Форварды
Отдельная благодарность:
Кстати не рекомендую выставлять значение выше, чем 511 для запаса и 255 для обоимы
Запас: если будет 512, покажет 0, 513 = 1 и т.д. Но сами патроны будут в полном порядке
Обоима: если будет 256, покажет 0, 257 = 1 и т.д. Но сами патроны будут в полном порядке
Идеи пишите в ЛС, если есть время и желание, сделаю.
И еще, прошу IP серверов с этим плагином мне писать в ЛС. Хочу знать сколько таких серверов :)
P.S. Что-то может не работать на Windows.
И.... Поидеи должно работать с гранатами, если менять макс.запас
(Ну значение 0 не заблокировало 1-ю флеху, а заблочило вторую)
Резил(ну оно и понятно)
Пофикшена ошибка, связанная с определением game_weapon_manager как оружие
Исправлена утечка Handle
Уменьшен размер массива в команде !getclassindex
(Спасибо RIKO)
Уменьшен размер массива в команде !getclassindex
(Спасибо RIKO)
Убрал лишний SDKUnhook
Изменена проверка подлиности оружия
(Спасибо RIKO)
Изменена проверка подлиности оружия
(Спасибо RIKO)
Исправлена утечка памяти (Когда оружие из разряда ignore)
Добавлена поддержка CSS
Плагин переписан на рекомендуемый синтаксис
Урезан icpack
Плагин переписан на рекомендуемый синтаксис
Урезан icpack
Описание:
Выставляет макс.размер обоимы и запаса у оружия. Например у калаша в обоиме вмещается 100 патрон, а в запасе 500
Поддерживаемые игры:
- CSGO
- CSS (С версии 1.4.1, не тестирован, конфиг лишь для CS:GO)
Требования:
- SourceMod (Хотя это и так понятно...)
- DHooks
Конфиги (Для CSS патроны изменяются только в обоиме)
Определяет макс. колво патрон для оружий
Конфиг, на случай, если попадеться например weapon_revolver, а получит weapon_deagle класс
Так вот плагин дополнительно определяет по этому кфг что это за оружие
Конфиг для игнорирования тех или иных оружий.
Если оружие не будет ни в originalammo.ini ни в этом кфг, плагин сообщит об этом(В логах или в ошибках)
C-подобный:
"weapons"
{
"weapon_usp_silencer"
{
"clip" "12"
"reserve" "24"
}
"weapon_hkp2000"
{
"clip" "13"
"reserve" "52"
}
"weapon_ak47"
{
"clip" "30"
"reserve" "90"
}
"weapon_galilar"
{
"clip" "35"
"reserve" "90"
}
"weapon_famas"
{
"clip" "25"
"reserve" "90"
}
"weapon_negev"
{
"clip" "150"
"reserve" "200"
}
"weapon_m249"
{
"clip" "100"
"reserve" "200"
}
"weapon_mag7"
{
"clip" "5"
"reserve" "32"
}
"weapon_xm1014"
{
"clip" "7"
"reserve" "32"
}
"weapon_nova"
{
"clip" "8"
"reserve" "32"
}
"weapon_awp"
{
"clip" "10"
"reserve" "30"
}
"weapon_mp9"
{
"clip" "30"
"reserve" "120"
}
"weapon_mp7"
{
"clip" "30"
"reserve" "120"
}
"weapon_ump45"
{
"clip" "25"
"reserve" "100"
}
"weapon_p90"
{
"clip" "50"
"reserve" "100"
}
"weapon_bizon"
{
"clip" "64"
"reserve" "120"
}
"weapon_ssg08"
{
"clip" "10"
"reserve" "90"
}
"weapon_aug"
{
"clip" "30"
"reserve" "90"
}
"weapon_scar20"
{
"clip" "20"
"reserve" "90"
}
"weapon_elite"
{
"clip" "30"
"reserve" "120"
}
"weapon_deagle"
{
"clip" "7"
"reserve" "35"
}
"weapon_p250"
{
"clip" "13"
"reserve" "26"
}
"weapon_revolver"
{
"clip" "8"
"reserve" "8"
}
"weapon_fiveseven"
{
"clip" "8"
"reserve" "8"
}
"weapon_glock"
{
"clip" "20"
"reserve" "120"
}
"weapon_tec9"
{
"clip" "24"
"reserve" "120"
}
"weapon_sawedoff"
{
"clip" "7"
"reserve" "32"
}
"weapon_mac10"
{
"clip" "30"
"reserve" "100"
}
"weapon_sg556"
{
"clip" "30"
"reserve" "90"
}
"weapon_g3sg1"
{
"clip" "20"
"reserve" "90"
}
"weapon_m4a1"
{
"clip" "30"
"reserve" "90"
}
"weapon_cz75a"
{
"clip" "12"
"reserve" "12"
}
"weapon_m4a1_silencer"
{
"clip" "20"
"reserve" "40"
}
}
Так вот плагин дополнительно определяет по этому кфг что это за оружие
C-подобный:
"classnames"
{
"64"
{
"name" "weapon_revolver"
}
"60"
{
"name" "weapon_m4a1_silencer"
}
"61"
{
"name" "weapon_usp_silencer"
}
"63"
{
"name" "weapon_cz75a"
}
}
Конфиг для игнорирования тех или иных оружий.
Если оружие не будет ни в originalammo.ini ни в этом кфг, плагин сообщит об этом(В логах или в ошибках)
C-подобный:
"weapons"
{
"weapon_c4"
{
"disable" "1"
}
"weapon_knife"
{
"disable" "1"
}
"weapon_hegrenade"
{
"disable" "1"
}
"weapon_molotov"
{
"disable" "1"
}
"weapon_incgrenade"
{
"disable" "1"
}
"weapon_healthshot"
{
"disable" "1"
}
"weapon_decoy"
{
"disable" "1"
}
"weapon_smokegrenade"
{
"disable" "1"
}
"weapon_tagrenade"
{
"disable" "1"
}
"weapon_flashbang"
{
"disable" "1"
}
"weapon_knifegg"
{
"disable" "1"
}
"weapon_taser"
{
"disable" "1"
}
}
Примеры плагинов, использующих нативы:
Выставляет макс.кол-во патрон для ЛЮБОГО АК47 (100 в обоиме, 30 в запасе)
Выдает АК47 с моделью М4А1 от 1-го лица (100 в обоиме, 500 в запасе)
Все примеры есть в архиве
C-подобный:
#include <ic_ammomanager>
#include <icpack/load>
public ICAM_EntityFirstAmmoFinished(int weapon)
{
decl String:classname[64]
GetEntityClassname(weapon, classname, 64)
// PrintToChatAll("FoundAK: %i", weapon)
if(StrEqual(classname, "weapon_ak47"))
{
ICAM_SetWeaponClipSize(weapon, 100)
ICAM_SetWeaponReserveSize(weapon, 30)
}
}
Выдает АК47 с моделью М4А1 от 1-го лица (100 в обоиме, 500 в запасе)
C-подобный:
#include <icpack/load>
#include <ic_ammomanager>
new bool:ak[2049] = {false,...}
new model = -1
public OnPluginStart()
{
RegConsoleCmd("sm_getnewak", GNA)
}
public OnMapStart()
{
model = PrecacheModel("models/weapons/v_rif_m4a1.mdl")
}
public Action GNA(client,args)
{
new item = ICAM_GivePlayerItem(client, "weapon_ak47", 100, 500)
ak[item]=true
}
public OnEntityCreated(weapon)
{
ak[weapon]=false
}
public OnClientPutInServer(client)
{
SDKHook(client, SDKHook_WeaponSwitchPost, Switch)
SDKHook(client, SDKHook_WeaponEquipPost, Switch)
}
public Switch(client, weap2on)
{
new weapon = GetClientActiveWeapon(client)
if(ak[weapon])
{
SetViewModelIndex(client, model)
}
}
SetViewModelIndex(client, index)
{
if(!YesPlayer(client))
return;
new viewmodel = GetEntPropEnt(client, Prop_Send, "m_hViewModel")
new weapon = GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon")
if(YesEntityMe(weapon))
SetEntProp(weapon, Prop_Send, "m_nModelIndex", 0)
if(YesEntityMe(viewmodel))
SetEntProp(viewmodel, Prop_Send, "m_nModelIndex", index)
}
// SetWorldModelIndex(weapon, index)
// {
// SetEntProp(weapon, Prop_Send, "m_iWorldModelIndex", index);
// SetEntProp(weapon, Prop_Send, "m_PredictableID", index);
// }
Все примеры есть в архиве
Нативы\Форварды
C-подобный:
native ICAM_SetWeaponClipSize(int weapon, int amount) // Устанавливает макс.размер обоимы для оружия
native ICAM_SetWeaponReserveSize(int weapon, int amount) // Устанавливает макс.размер запаса для оружия
native int ICAM_GetWeaponClipSize(int weapon) // Получить макс.размер обоимы
native int ICAM_GetWeaponReserveSize(int weapon) // Получить макс.размер запаса
forward ICAM_EntityFirstAmmoFinished(int weapon) // После этой функции можно выставлять макс.размер обоимы и запаса
// Создать оружие игроку со своим значением макс.размера обоимы и запаса
stock int ICAM_GivePlayerItem(int client, const String:weaponname[], clipsize, reservesize, iSubType = 0)
{
new weapon = GivePlayerItem(client, weaponname) // Создаем оружие
ICAM_SetWeaponClipSize(weapon, clipsize) // Выставляем макс.размер обоимы
ICAM_SetWeaponReserveSize(weapon, reservesize)// Выставляем макс.размер запаса
SetEntProp(weapon, Prop_Send, "m_iPrimaryReserveAmmoCount", reservesize)// Выставляем размер запаса
SetEntProp(weapon, Prop_Send, "m_iClip1", clipsize)// Выставляем размер обоимы
return weapon
}
Отдельная благодарность:
komashchenko - За помощь в оффсетах
Запас: если будет 512, покажет 0, 513 = 1 и т.д. Но сами патроны будут в полном порядке
Обоима: если будет 256, покажет 0, 257 = 1 и т.д. Но сами патроны будут в полном порядке
Идеи пишите в ЛС, если есть время и желание, сделаю.
И еще, прошу IP серверов с этим плагином мне писать в ЛС. Хочу знать сколько таких серверов :)
P.S. Что-то может не работать на Windows.
И.... Поидеи должно работать с гранатами, если менять макс.запас
(Ну значение 0 не заблокировало 1-ю флеху, а заблочило вторую)
Последнее редактирование модератором: