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

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

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

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

Wolverine Claws regeneration

Статус пользователя Andrushkaa
сообщение 9.6.2016, 22:32
Сообщение #1
Стаж: 10 лет

Сообщений: 134
Благодарностей: 16
Полезность: 90

Собственно, обращался на амх-х за помощью, но увы не дождался ответа)
Навыками скриптинга не владею, поэтому обращусь к вам. Хотелось бы сделать так, что бы регенерация здоровья работала только на определенном флаге, а не у всех игроков.
~220 строка, не очень помню. Спасибо
p/s. кварами изменить не предусмотрено, если что

Отредактировал: Andrushkaa, - 9.6.2016, 22:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 9.6.2016, 23:23
Сообщение #2


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Исходник забыл прикрепить


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Inline
сообщение 10.6.2016, 7:23
Сообщение #3


Стаж: 10 лет

Сообщений: 139
Благодарностей: 80
Полезность: 447

Цитата(Andrushkaa @ 9.6.2016, 22:32) *
Собственно, обращался на амх-х за помощью, но увы не дождался ответа)
Навыками скриптинга не владею, поэтому обращусь к вам. Хотелось бы сделать так, что бы регенерация здоровья работала только на определенном флаге, а не у всех игроков.
~220 строка, не очень помню. Спасибо
p/s. кварами изменить не предусмотрено, если что

Делаешь проверки.
Код:
if(get_user_flags(id) & НУЖНЫЙ_ФЛАГ)


Не читай
Не забывай нажимать кнопку "спасибо"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrushkaa
сообщение 10.6.2016, 7:56
Сообщение #4
Стаж: 10 лет

Сообщений: 134
Благодарностей: 16
Полезность: 90

Девствительно забыл, прикрепил
Inline, я вообще не очень в этом, толком не знаю куда ставить)
Прикрепленные файлы:
Прикрепленный файл  wolverine_claws.sma ( 7,4 килобайт ) Кол-во скачиваний: 4
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 10.6.2016, 8:27
Сообщение #5


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Andrushkaa, проверь
Код:
#include <amxmodx>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN "Wolverine_Claws"
#define VERSION "1.1"
#define AUTHOR "Psycrow"

#define is_entity_player(%1) (1<=%1<=g_maxPlayers)

#define MODEL_V_CLAWS "models/n21_admin_wolverine/v_claws.mdl"
#define MODEL_P_CLAWS "models/n21_admin_wolverine/p_claws.mdl"
#define MODEL_V_HANDS "models/n21_admin_wolverine/v_hands.mdl"
#define MODEL_P_HANDS "models/n21_admin_wolverine/p_hands.mdl"

#define TASK_REGEN 1234
#define MAX_HEALTH 100
#define ADMIN_FLAG ADMIN_KICK

new g_maxPlayers, msgIndexWeaponList, regen_type, bool:logan_claws[33]

public plugin_precache()
{
precache_model(MODEL_V_CLAWS)
precache_model(MODEL_P_CLAWS)
precache_model(MODEL_V_HANDS)
precache_model(MODEL_P_HANDS)

precache_sound("n21_admin_wolverine/idle.wav")
precache_sound("n21_admin_wolverine/draw.wav")
precache_sound("n21_admin_wolverine/slash1.wav")
precache_sound("n21_admin_wolverine/slash2.wav")
precache_sound("n21_admin_wolverine/slash3.wav")
precache_sound("n21_admin_wolverine/slash4.wav")
precache_sound("n21_admin_wolverine/hit1.wav")
precache_sound("n21_admin_wolverine/hit2.wav")
precache_sound("n21_admin_wolverine/hit3.wav")
precache_sound("n21_admin_wolverine/hit4.wav")
precache_sound("n21_admin_wolverine/wall1.wav")
precache_sound("n21_admin_wolverine/wall2.wav")

precache_sound("n21_admin_wolverine/claws_off.wav")
precache_sound("n21_admin_wolverine/draw_B.wav")
precache_sound("n21_admin_wolverine/slash1_B.wav")
precache_sound("n21_admin_wolverine/slash2_B.wav")
precache_sound("n21_admin_wolverine/slash3_B.wav")
precache_sound("n21_admin_wolverine/hit1_B.wav")
precache_sound("n21_admin_wolverine/hit2_B.wav")
precache_sound("n21_admin_wolverine/hit3_B.wav")
precache_sound("n21_admin_wolverine/hit4_B.wav")

precache_generic("sprites/weapon_n21_claws.txt")
precache_generic("sprites/n21_admin_wolverine/640hud21.spr")
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("HLTV", "fw_RoundStart", "a", "1=0", "2=0")

RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Item_AddToPlayer, "weapon_knife", "fw_AddToPlayerKnife", 1)
RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_KnifeDeploy", 1)

register_forward(FM_EmitSound, "fw_EmitSound")

register_clcmd("drop", "change_to_claws")
register_clcmd("weapon_n21_claws", "ClientCommand_SelectClaws" )

register_cvar("n21wc_admin","1")
register_cvar("n21wc_2xdamage","1")
register_cvar("n21wc_regen","1")
// 1 - только если в руках ничего нет. 2 - если переключен на нож. 3 - в любое время, 0 - отключить регенерацию

g_maxPlayers = get_maxplayers()
msgIndexWeaponList = get_user_msgid("WeaponList")
}

public client_putinserver(id)
{
logan_claws[id] = false
}

public fw_RoundStart()
{
regen_type = get_cvar_num("n21wc_regen")

if(regen_type && !task_exists(TASK_REGEN))
set_task(1.0, "regeneration", TASK_REGEN, _, _, "b")

if(!regen_type && task_exists(TASK_REGEN))
remove_task(TASK_REGEN)
}

public fw_TakeDamage(victim, weapon, attacker, Float:damage, bits)
{
if(!(bits & DMG_BULLET))
return HAM_IGNORED

if(!attacker || !weapon || !is_entity_player(attacker) || !logan_claws[attacker])
return HAM_IGNORED

if(get_user_team(attacker) == get_user_team(victim) || get_user_weapon(attacker) != CSW_KNIFE || !get_cvar_num("n21wc_2xdamage"))
return HAM_IGNORED

SetHamParamFloat(4, damage * 2.0)
return HAM_OVERRIDE
}

public fw_AddToPlayerKnife(const item, const player)
{
if(pev_valid(item) && is_user_alive(player) && (get_user_flags(player) & ADMIN_FLAG || !get_cvar_num("n21wc_admin")))
{
message_begin( MSG_ONE, msgIndexWeaponList, .player = player )
{
write_string("weapon_n21_claws")
write_byte(-1)
write_byte(-1)
write_byte(-1)
write_byte(-1)
write_byte(2)
write_byte(1)
write_byte(CSW_KNIFE)
write_byte(0)
}
message_end()
}
}

public fw_KnifeDeploy(weapon)
{
new id = get_pdata_cbase(weapon, 41, 4)

if(get_user_flags(id) & ADMIN_FLAG || !get_cvar_num("n21wc_admin"))
{
set_pev(id, pev_viewmodel2, logan_claws[id] ? MODEL_V_CLAWS : MODEL_V_HANDS)
set_pev(id, pev_weaponmodel2, logan_claws[id] ? MODEL_P_CLAWS : MODEL_P_HANDS)
}
}

public fw_EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
{
if(!is_entity_player(id))
return FMRES_IGNORED

if(get_user_weapon(id) != CSW_KNIFE)
return FMRES_IGNORED

if(!get_cvar_num("n21wc_admin") || get_user_flags(id) & ADMIN_FLAG)
{
if(equal(sample, "weapons/knife_hit1.wav"))
{
emit_sound(id, channel, logan_claws[id] ? "n21_admin_wolverine/hit1.wav" : "n21_admin_wolverine/hit1_B.wav", volume, attn, flags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, "weapons/knife_hit2.wav"))
{
emit_sound(id, channel, logan_claws[id] ? "n21_admin_wolverine/hit2.wav" : "n21_admin_wolverine/hit2_B.wav", volume, attn, flags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, "weapons/knife_hit3.wav"))
{
emit_sound(id, channel, logan_claws[id] ? "n21_admin_wolverine/hit3.wav" : "n21_admin_wolverine/hit3_B.wav", volume, attn, flags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, "weapons/knife_hit4.wav"))
{
emit_sound(id, channel, logan_claws[id] ? "n21_admin_wolverine/hit4.wav" : "n21_admin_wolverine/hit4_B.wav", volume, attn, flags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, "weapons/knife_hitwall1.wav"))
{
emit_sound(id, channel, logan_claws[id] ? "n21_admin_wolverine/wall1.wav" : "n21_admin_wolverine/hit3_B.wav", volume, attn, flags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, "weapons/knife_hitwall2.wav"))
{
emit_sound(id, channel, logan_claws[id] ? "n21_admin_wolverine/wall2.wav" : "n21_admin_wolverine/hit4_B.wav", volume, attn, flags, pitch)
return FMRES_SUPERCEDE
}

if(equal(sample, "weapons/knife_stab.wav"))
return FMRES_SUPERCEDE

if(equal(sample, "weapons/knife_slash1.wav"))
return FMRES_SUPERCEDE

if(equal(sample, "weapons/knife_slash2.wav"))
return FMRES_SUPERCEDE
}

return FMRES_IGNORED
}

public change_to_claws(id)
{
if(!is_user_alive(id) || get_user_weapon(id) != CSW_KNIFE)
return PLUGIN_CONTINUE

if(get_user_flags(id) & ADMIN_FLAG || !get_cvar_num("n21wc_admin"))
{
logan_claws[id] = !logan_claws[id]
ExecuteHamB(Ham_Item_Deploy, fm_find_ent_by_owner(-1, "weapon_knife", id))
if(!logan_claws[id]) UTIL_PlayWeaponAnimation(id, 8)
else UTIL_PlayWeaponAnimation(id, 3)

return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public ClientCommand_SelectClaws(const client) engclient_cmd(client, "weapon_knife")

public regeneration()
{
new hp
for(new id = 1; id <= g_maxPlayers; id++)
{
if(!is_user_alive(id)) continue

hp = get_user_health(id)

if(hp >= MAX_HEALTH) continue

static bool: inKnife; inKnife = get_user_weapon(id) == CSW_KNIFE

if(regen_type == 1 && (logan_claws[id] || !inKnife)) continue
if(regen_type == 2 && !inKnife) continue
if(get_user_flags(id) & ADMIN_FLAG) fm_set_user_health(id, min(MAX_HEALTH, hp + 2))


}
}

UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
set_pev(Player, pev_weaponanim, Sequence)

message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
write_byte(Sequence)
write_byte(pev(Player, pev_body))
message_end()
}


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Andrushkaa
сообщение 10.6.2016, 10:23
Сообщение #6
Стаж: 10 лет

Сообщений: 134
Благодарностей: 16
Полезность: 90

Да, спасибо
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: