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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

[HELP] KnifeMod

Статус пользователя default67
сообщение 11.11.2015, 21:42
Сообщение #1


Стаж: 11 лет

Сообщений: 121
Благодарностей: 11
Полезность: < 0

Привет всем)
Подскажите, как вытащить функцию из плагина knife_mod, хочу сделать ножи для кнайф сервера, но прикол в том, что при выборе какого либо ножа, нужно переключить с оружия обратно на нож, и тогда он появится, пробовал уже что-то удалять, но бессмысленно.
Код:
// [DR] Knifes By BiZoN
// Спасибо Eriurias за качественную регенерацию
// Плагин менее затратен в плане нагрузки, в отличие от своих аналогов, использующих CurWeapon вместо Ham_Item_deploy
// Снята затрата двойного прыжка в плане использования события прыжка, а не форвардов, вызывающихся по десятку раз каждую секунду
// Способности работают только тогда, когда в руках нож
// Ну и многое другое, что вы можете увидеть во время работы плагина
// Огромная просьба: если найдете баги или недочеты, пишите, пожалуйста, мне в скайп: vitya12345629 или в ВК: vk.com/6u3oh
// [DR] Knifes By BiZoN

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "[DR] Knifes"
#define VERSION "1.0"
#define AUTHOR "BiZoN"

#define ADMIN_FLAG ADMIN_BAN // Флаг Админа

#define REGENERATION_DELAY 2.0 // Время до регенерации
#define REGENERATION_STEP 1 // Насколько увеличивать HP
#define REGENERATION_MAX 100 // Максимальное кол-во HP

new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0
new szTwoJump[33]
new szTwoJumpNum[33]
new szDoTwoJump[33]
new KnifeId[33]

public plugin_precache()
{
precache_model("models/v_knife.mdl")
precache_model("models/knifes/v_ferrane.mdl")
precache_model("models/knifes/v_terari.mdl")
precache_model("models/knifes/v_ibuki.mdl")
precache_model("models/knifes/v_katana.mdl")
precache_model("models/knifes/v_blink.mdl")

precache_model("models/p_knife.mdl")
precache_model("models/knifes/p_ferrane.mdl")
precache_model("models/knifes/p_terari.mdl")
precache_model("models/knifes/p_ibuki.mdl")
precache_model("models/knifes/p_katana.mdl")
precache_model("models/knifes/p_blink.mdl")

precache_sound("knifes/health.wav")
precache_sound("knifes/blink_hitwall1.wav")
precache_sound("knifes/katana_hitwall1.wav")
precache_sound("knifes/ibuki_hitwall1.wav")
precache_sound("knifes/ibuki_slash1.wav")
precache_sound("knifes/ibuki_deploy1.wav")
precache_sound("knifes/terari_hitwall1.wav")
precache_sound("knifes/ferrane_hitwall1.wav")
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menu("Menu 1", keys, "menu_knife")
register_clcmd("say /knife", "knife_menu")
register_clcmd("say_team /knife", "knife_menu")
register_clcmd("knife", "knife_menu")
register_clcmd("knifes", "knife_menu")
RegisterHam(Ham_Item_Deploy, "weapon_knife", "SetKnife", 1)
RegisterHam(Ham_Item_Holster, "weapon_knife", "KnifeSet", 1)
RegisterHam(Ham_TakeDamage, "player", "EventDamage", 0)
RegisterHam(Ham_TakeDamage, "player", "TakeDamage", .Post = true)
RegisterHam(Ham_Killed, "player", "KilledPost", .Post = true)
RegisterHam(Ham_Player_Jump, "player", "PreTwoJump")
register_forward(FM_EmitSound, "EmitSound")
}

public client_connect(id)
{
KnifeId[id] = 5
}

public client_disconnect(nClientIndex)
{
remove_task(nClientIndex)
}

public knife_menu(id)
{
static menu[650], iLen
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\r[\yKnifeMenu\r] \wВыберите нож^n^n")

if(!is_user_connected(id))
return PLUGIN_CONTINUE

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wКатана \d(\rДвойной прыжок\d)^n")
keys |= MENU_KEY_1

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wСильный \d(\rБольшой урон\d)^n")
keys |= MENU_KEY_2

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wСтронг \d(\rСкорость\d)^n")
keys |= MENU_KEY_3

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wКомбат \d(\rГравитация\d)^n^n")
keys |= MENU_KEY_4

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wСтандартный \d(\rВосстановление здоровья\d)^n^n")
keys |= MENU_KEY_5

if(get_user_flags(id) & ADMIN_FLAG)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wАдминский нож \d(\rВсё включено\d)^n")
keys |= MENU_KEY_6
}else{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \dАдминский нож (\rВсё включено\d)^n")
}
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход^n")
keys |= MENU_KEY_0

show_menu(id, keys, menu, -1, "Menu 1")
return PLUGIN_HANDLED
}

public menu_knife(id, key)
{
switch(key)
{
case 0:
{
KnifeId[id] = 1
}
case 1:
{
KnifeId[id] = 2
}
case 2:
{
KnifeId[id] = 3
}
case 3:
{
KnifeId[id] = 4
}
case 4:
{
KnifeId[id] = 5
}
case 5:
{
if(get_user_flags(id) & ADMIN_FLAG)
{
KnifeId[id] = 0
}
}
}
return PLUGIN_HANDLED
}

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

if(!is_user_connected(id))
return PLUGIN_CONTINUE

if(KnifeId[id] == 1)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_katana.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_katana.mdl")
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = true
}
if(KnifeId[id] == 2)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_ibuki.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_ibuki.mdl")
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
if(KnifeId[id] == 3)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_terari.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_terari.mdl")
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
if(KnifeId[id] == 4)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_ferrane.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_ferrane.mdl")
set_pev(id, pev_gravity, 0.7)
szTwoJump[id] = false
}
if(KnifeId[id] == 5)
{
set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
if(KnifeId[id] == 0)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_blink.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_blink.mdl")
set_pev(id, pev_gravity, 0.6)
szTwoJump[id] = true
}
return PLUGIN_HANDLED
}

public KnifeSet(ent)
{
set_pev(get_pdata_cbase(ent, 41, 4), pev_gravity, 1.0)
}

public TakeDamage(nClientIndex)
{
if(is_user_alive(nClientIndex))
{
if (!task_exists(nClientIndex))
set_task(REGENERATION_DELAY, "StartRegeneration" , nClientIndex, _, _, "b")
}
}

public KilledPost(nClientIndex)
{
remove_task(nClientIndex)
}

public StartRegeneration(nClientIndex)
{
static Float:g_iHealthPoint; pev(nClientIndex, pev_health, g_iHealthPoint);

if (g_iHealthPoint >= REGENERATION_MAX)
{
remove_task(nClientIndex);
return PLUGIN_HANDLED;
}

if(get_user_weapon(nClientIndex) == CSW_KNIFE && (KnifeId[nClientIndex] == 0 || KnifeId[nClientIndex] == 5))
{
set_pev(nClientIndex, pev_health, g_iHealthPoint + REGENERATION_STEP);
}
return PLUGIN_CONTINUE;
}

public EventDamage(victim, inflicator, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return PLUGIN_HANDLED;

if(victim == attacker || !victim)
return PLUGIN_HANDLED;

if(get_user_team(attacker) != get_user_team (victim) && attacker != victim && get_user_weapon(attacker) == CSW_KNIFE && (KnifeId[attacker] == 0 || KnifeId[attacker] == 2))
SetHamParamFloat(4, damage * 2.0)
return PLUGIN_HANDLED;
}

public PreTwoJump(id)
{
if(szTwoJump[id] && get_user_weapon(id) == CSW_KNIFE)
{
new szButton = pev(id, pev_button)
new szOldButton = pev(id, pev_oldbuttons)

if((szButton & IN_JUMP) && !(pev(id, pev_flags) & FL_ONGROUND) && !(szOldButton & IN_JUMP))
{
if(szTwoJumpNum[id] < 1)
{
szDoTwoJump[id] = true
szTwoJumpNum[id]++

PostTwoJump(id)

return PLUGIN_CONTINUE
}
}
if((szButton & IN_JUMP) && (pev(id, pev_flags) & FL_ONGROUND))
{
szTwoJumpNum[id] = 0
}
}
return PLUGIN_CONTINUE
}

public PostTwoJump(id)
{
if(szTwoJump[id])
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE

if(szDoTwoJump[id])
{
new Float:szVelocity[3]
pev(id, pev_velocity, szVelocity)

szVelocity[2] = random_float(295.0,305.0)
set_pev(id, pev_velocity, szVelocity)

szDoTwoJump[id] = false

return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}

public EmitSound(id, channel, const sound[])
{
if(equal(sound, "weapons/knife_hitwall1.wav"))
{
if(KnifeId[id] == 0)
{
emit_sound(id, channel, "knifes/blink_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 1)
{
emit_sound(id, channel, "knifes/katana_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 2)
{
emit_sound(id, channel, "knifes/ibuki_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 3)
{
emit_sound(id, channel, "knifes/terari_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 4)
{
emit_sound(id, channel, "knifes/ferrane_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}else{
return HAM_IGNORED
}
}
if(equal(sound, "weapons/knife_slash1.wav") || equal(sound, "weapons/knife_slash2.wav"))
{
if(KnifeId[id] == 2)
{
emit_sound(id, channel, "knifes/ibuki_slash1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}else{
return HAM_IGNORED
}
}
if(equal(sound, "weapons/knife_deploy1.wav"))
{
if(KnifeId[id] == 2)
{
emit_sound(id, channel, "knifes/ibuki_deploy1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}else{
return HAM_IGNORED
}
}
return HAM_IGNORED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Vaqtincha
сообщение 11.11.2015, 22:06
Сообщение #2
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

именно какую функцию хочешь вытащить ? Надо поправить этот плагин или нужно какую то функцию из него вытащить?
Цитата
нужно переключить с оружия обратно на нож, и тогда он появится


и что делает оружия если это кнайф сервер.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 11.11.2015, 22:10
Сообщение #3


Стаж: 11 лет

Сообщений: 121
Благодарностей: 11
Полезность: < 0

Цитата(Vaqtincha @ 11.11.2015, 23:01) *
именно какую функцию хочешь вытащить ? Надо поправить этот плагин или нужно какую то функцию из него вытащить?


и что делает оружия если это кнайф сервер.

Вытаскивать ничего не надо, я понял в чём прикол / Ham_Item_Deploy (вызывается когда игрок меняет оружие), а мне надо через CurWeapon сделать, а как? я не в курсе =)

--------------------
Если кто-то не понял, то объясню вкратце, когда игрок выбирает какой либо нож из меню, модель оружия, и его способности не работают, до тех пор, пока не сменить оружие, а оружия на Knife нет, думаю это Вы понимаете :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 11.11.2015, 22:13
Сообщение #4
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

но можешь пробовать "заставить" клиенту переключится на нож когда он выберает/покупает
вот так
Код:
engclient_cmd(id, "weapon_knife")

куда его поставить думаю сам найдешь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя default67
сообщение 11.11.2015, 22:14
Сообщение #5


Стаж: 11 лет

Сообщений: 121
Благодарностей: 11
Полезность: < 0

Поставил через CurWeapon, но толку ноль, но уже хоть что-то радует, меняется моделька, при выборе ножа, и не надо ничего менять, но уже в другом проблема, нету способностей, и опять же, появляются они только тогда, когда изменяется оружие.
Код:
// [DR] Knifes By BiZoN
// Спасибо Eriurias за качественную регенерацию
// Плагин менее затратен в плане нагрузки, в отличие от своих аналогов, использующих CurWeapon вместо Ham_Item_deploy
// Снята затрата двойного прыжка в плане использования события прыжка, а не форвардов, вызывающихся по десятку раз каждую секунду
// Способности работают только тогда, когда в руках нож
// Ну и многое другое, что вы можете увидеть во время работы плагина
// Огромная просьба: если найдете баги или недочеты, пишите, пожалуйста, мне в скайп: vitya12345629 или в ВК: vk.com/6u3oh
// [DR] Knifes By BiZoN

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "[DR] Knifes"
#define VERSION "1.0"
#define AUTHOR "BiZoN"

#define ADMIN_FLAG ADMIN_BAN // Флаг Админа

#define REGENERATION_DELAY 2.0 // Время до регенерации
#define REGENERATION_STEP 1 // Насколько увеличивать HP
#define REGENERATION_MAX 100 // Максимальное кол-во HP

new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0
new szTwoJump[33]
new szTwoJumpNum[33]
new szDoTwoJump[33]
new KnifeId[33]

public plugin_precache()
{
precache_model("models/v_knife.mdl")
precache_model("models/knifes/v_ferrane.mdl")
precache_model("models/knifes/v_terari.mdl")
precache_model("models/knifes/v_ibuki.mdl")
precache_model("models/knifes/v_katana.mdl")
precache_model("models/knifes/v_blink.mdl")

precache_model("models/p_knife.mdl")
precache_model("models/knifes/p_ferrane.mdl")
precache_model("models/knifes/p_terari.mdl")
precache_model("models/knifes/p_ibuki.mdl")
precache_model("models/knifes/p_katana.mdl")
precache_model("models/knifes/p_blink.mdl")

precache_sound("knifes/health.wav")
precache_sound("knifes/blink_hitwall1.wav")
precache_sound("knifes/katana_hitwall1.wav")
precache_sound("knifes/ibuki_hitwall1.wav")
precache_sound("knifes/ibuki_slash1.wav")
precache_sound("knifes/ibuki_deploy1.wav")
precache_sound("knifes/terari_hitwall1.wav")
precache_sound("knifes/ferrane_hitwall1.wav")
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menu("Menu 1", keys, "menu_knife")
register_clcmd("say /knife", "knife_menu")
register_clcmd("say_team /knife", "knife_menu")
register_clcmd("knife", "knife_menu")
register_clcmd("knifes", "knife_menu")
RegisterHam(Ham_Item_Deploy, "weapon_knife", "SetKnife", 1)
register_event("CurWeapon", "SetKnife" ,"be" ,"1=1")
RegisterHam(Ham_Item_Holster, "weapon_knife", "KnifeSet", 1)
RegisterHam(Ham_TakeDamage, "player", "EventDamage", 0)
RegisterHam(Ham_TakeDamage, "player", "TakeDamage", .Post = true)
RegisterHam(Ham_Killed, "player", "KilledPost", .Post = true)
RegisterHam(Ham_Player_Jump, "player", "PreTwoJump")
register_forward(FM_EmitSound, "EmitSound")
}

public client_connect(id)
{
KnifeId[id] = 5
}

public client_disconnect(nClientIndex)
{
remove_task(nClientIndex)
}

public knife_menu(id)
{
static menu[650], iLen
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\r[\yKnifeMenu\r] \wВыберите нож^n^n")

if(!is_user_connected(id))
return PLUGIN_CONTINUE

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wКатана \d(\rДвойной прыжок\d)^n")
keys |= MENU_KEY_1

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wСильный \d(\rБольшой урон\d)^n")
keys |= MENU_KEY_2

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wСтронг \d(\rСкорость\d)^n")
keys |= MENU_KEY_3

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wКомбат \d(\rГравитация\d)^n^n")
keys |= MENU_KEY_4

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wСтандартный \d(\rВосстановление здоровья\d)^n^n")
keys |= MENU_KEY_5

if(get_user_flags(id) & ADMIN_FLAG)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wАдминский нож \d(\rВсё включено\d)^n")
keys |= MENU_KEY_6
}else{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \dАдминский нож (\rВсё включено\d)^n")
}
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход^n")
keys |= MENU_KEY_0

show_menu(id, keys, menu, -1, "Menu 1")
return PLUGIN_HANDLED
}

public menu_knife(id, key)
{
switch(key)
{
case 0:
{
KnifeId[id] = 1
}
case 1:
{
KnifeId[id] = 2
}
case 2:
{
KnifeId[id] = 3
}
case 3:
{
KnifeId[id] = 4
}
case 4:
{
KnifeId[id] = 5
}
case 5:
{
if(get_user_flags(id) & ADMIN_FLAG)
{
KnifeId[id] = 0
}
}
}
return PLUGIN_HANDLED
}

public SetKnife(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE

if(KnifeId[id] == 1)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_katana.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_katana.mdl")
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = true
}
if(KnifeId[id] == 2)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_ibuki.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_ibuki.mdl")
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
if(KnifeId[id] == 3)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_terari.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_terari.mdl")
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
if(KnifeId[id] == 4)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_ferrane.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_ferrane.mdl")
set_pev(id, pev_gravity, 0.7)
szTwoJump[id] = false
}
if(KnifeId[id] == 5)
{
set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
set_pev(id, pev_gravity, 1.0)
szTwoJump[id] = false
}
if(KnifeId[id] == 0)
{
set_pev(id, pev_viewmodel2, "models/knifes/v_blink.mdl")
set_pev(id, pev_weaponmodel2, "models/knifes/p_blink.mdl")
set_pev(id, pev_gravity, 0.6)
szTwoJump[id] = true
}
return PLUGIN_HANDLED
}

public KnifeSet(ent)
{
set_pev(get_pdata_cbase(ent, 41, 4), pev_gravity, 1.0)
}

public TakeDamage(nClientIndex)
{
if(is_user_alive(nClientIndex))
{
if (!task_exists(nClientIndex))
set_task(REGENERATION_DELAY, "StartRegeneration" , nClientIndex, _, _, "b")
}
}

public KilledPost(nClientIndex)
{
remove_task(nClientIndex)
}

public StartRegeneration(nClientIndex)
{
static Float:g_iHealthPoint; pev(nClientIndex, pev_health, g_iHealthPoint);

if (g_iHealthPoint >= REGENERATION_MAX)
{
remove_task(nClientIndex);
return PLUGIN_HANDLED;
}

if(get_user_weapon(nClientIndex) == CSW_KNIFE && (KnifeId[nClientIndex] == 0 || KnifeId[nClientIndex] == 5))
{
set_pev(nClientIndex, pev_health, g_iHealthPoint + REGENERATION_STEP);
}
return PLUGIN_CONTINUE;
}

public EventDamage(victim, inflicator, attacker, Float:damage)
{
if(!is_user_connected(attacker))
return PLUGIN_HANDLED;

if(victim == attacker || !victim)
return PLUGIN_HANDLED;

if(get_user_team(attacker) != get_user_team (victim) && attacker != victim && get_user_weapon(attacker) == CSW_KNIFE && (KnifeId[attacker] == 0 || KnifeId[attacker] == 2))
SetHamParamFloat(4, damage * 2.0)
return PLUGIN_HANDLED;
}

public PreTwoJump(id)
{
if(szTwoJump[id] && get_user_weapon(id) == CSW_KNIFE)
{
new szButton = pev(id, pev_button)
new szOldButton = pev(id, pev_oldbuttons)

if((szButton & IN_JUMP) && !(pev(id, pev_flags) & FL_ONGROUND) && !(szOldButton & IN_JUMP))
{
if(szTwoJumpNum[id] < 1)
{
szDoTwoJump[id] = true
szTwoJumpNum[id]++

PostTwoJump(id)

return PLUGIN_CONTINUE
}
}
if((szButton & IN_JUMP) && (pev(id, pev_flags) & FL_ONGROUND))
{
szTwoJumpNum[id] = 0
}
}
return PLUGIN_CONTINUE
}

public PostTwoJump(id)
{
if(szTwoJump[id])
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE

if(szDoTwoJump[id])
{
new Float:szVelocity[3]
pev(id, pev_velocity, szVelocity)

szVelocity[2] = random_float(295.0,305.0)
set_pev(id, pev_velocity, szVelocity)

szDoTwoJump[id] = false

return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}

public EmitSound(id, channel, const sound[])
{
if(equal(sound, "weapons/knife_hitwall1.wav"))
{
if(KnifeId[id] == 0)
{
emit_sound(id, channel, "knifes/blink_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 1)
{
emit_sound(id, channel, "knifes/katana_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 2)
{
emit_sound(id, channel, "knifes/ibuki_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 3)
{
emit_sound(id, channel, "knifes/terari_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}
else if(KnifeId[id] == 4)
{
emit_sound(id, channel, "knifes/ferrane_hitwall1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}else{
return HAM_IGNORED
}
}
if(equal(sound, "weapons/knife_slash1.wav") || equal(sound, "weapons/knife_slash2.wav"))
{
if(KnifeId[id] == 2)
{
emit_sound(id, channel, "knifes/ibuki_slash1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}else{
return HAM_IGNORED
}
}
if(equal(sound, "weapons/knife_deploy1.wav"))
{
if(KnifeId[id] == 2)
{
emit_sound(id, channel, "knifes/ibuki_deploy1.wav", 1.0, 1.0, 0, 100)
return FMRES_SUPERCEDE
}else{
return HAM_IGNORED
}
}
return HAM_IGNORED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 11.11.2015, 22:16
Сообщение #6
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

default67, хаме получше будет(легко делается) если умеешь как пользоваться.

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 11.11.2015, 22:19
Сообщение #7


Стаж: 11 лет

Сообщений: 121
Благодарностей: 11
Полезность: < 0

Цитата(Vaqtincha @ 11.11.2015, 23:12) *
default67, хаме получше будет(легко делается) если умеешь как пользоваться.

Знаю что он много упрощает, и нагрузки меньше идёт, но для кнайфа это как раз этот плагин, но всё перекрывает этот долбаный хам деплой.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 11.11.2015, 22:19
Сообщение #8
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

default67, я же тебе говорю вызывай SetKnife(id) когда игрок выберает нож из меню

Неужели не доходить?

Подсказка:
public menu_knife(id, key)

Отредактировал: Vaqtincha, - 11.11.2015, 22:34
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 11.11.2015, 22:36
Сообщение #9


Стаж: 11 лет

Сообщений: 121
Благодарностей: 11
Полезность: < 0

Цитата(Vaqtincha @ 11.11.2015, 23:15) *
default67, я же тебе говорю вызывай SetKnife(id) когда игрок выберает нож из меню

Неужели не доходить?

Подсказка:
public menu_knife(id, key)

Да понял я всё, это ты меня наверное не правильно понял, как по твоему можно изменить нож на нож? :D это оружие надо изменять, а не нож, не помогает крч.
Дал Спасибку за то что пытаешься помочь.

Отредактировал: default67, - 11.11.2015, 22:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Vaqtincha
сообщение 11.11.2015, 22:42
Сообщение #10
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

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

default67, ты говорил на сервере есть "что то" кроме ножа на котором можно переключить.
Ну тогда strip в помощь забираешь и дашь.

Отредактировал: Vaqtincha, - 11.11.2015, 22:45
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fullserver
сообщение 11.11.2015, 22:45
Сообщение #11


Иконка группы

Стаж: 11 лет

Сообщений: 5122
Благодарностей: 2100
Полезность: 1394

Готово
Код:
// [DR] Knifes By BiZoN
// Спасибо Eriurias за качественную регенерацию
// Плагин менее затратен в плане нагрузки, в отличие от своих аналогов, использующих CurWeapon вместо Ham_Item_deploy
// Снята затрата двойного прыжка в плане использования события прыжка, а не форвардов, вызывающихся по десятку раз каждую секунду
// Способности работают только тогда, когда в руках нож
// Ну и многое другое, что вы можете увидеть во время работы плагина
// Огромная просьба: если найдете баги или недочеты, пишите, пожалуйста, мне в скайп: vitya12345629 или в ВК: vk.com/6u3oh
// [DR] Knifes By BiZoN
 
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
 
#define PLUGIN "[DR] Knifes"
#define VERSION "1.0"
#define AUTHOR "BiZoN"
 
#define ADMIN_FLAG ADMIN_BAN // Флаг Админа
 
#define REGENERATION_DELAY 2.0 // Время до регенерации
#define REGENERATION_STEP 1 // Насколько увеличивать HP
#define REGENERATION_MAX 100 // Максимальное кол-во HP
 
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0
new szTwoJump[33]
new szTwoJumpNum[33]
new szDoTwoJump[33]
new KnifeId[33]
 
public plugin_precache()
{
   precache_model("models/v_knife.mdl")
   precache_model("models/knifes/v_ferrane.mdl")
   precache_model("models/knifes/v_terari.mdl")
   precache_model("models/knifes/v_ibuki.mdl")
   precache_model("models/knifes/v_katana.mdl")
   precache_model("models/knifes/v_blink.mdl")
    
   precache_model("models/p_knife.mdl")
   precache_model("models/knifes/p_ferrane.mdl")
   precache_model("models/knifes/p_terari.mdl")
   precache_model("models/knifes/p_ibuki.mdl")
   precache_model("models/knifes/p_katana.mdl")
   precache_model("models/knifes/p_blink.mdl")
    
   precache_sound("knifes/health.wav")
   precache_sound("knifes/blink_hitwall1.wav")
   precache_sound("knifes/katana_hitwall1.wav")
   precache_sound("knifes/ibuki_hitwall1.wav")
   precache_sound("knifes/ibuki_slash1.wav")
   precache_sound("knifes/ibuki_deploy1.wav")  
   precache_sound("knifes/terari_hitwall1.wav")
   precache_sound("knifes/ferrane_hitwall1.wav")
}
 
public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   register_menu("Menu 1", keys, "menu_knife")
   register_clcmd("say /knife", "knife_menu")
   register_clcmd("say_team /knife", "knife_menu")
   register_clcmd("knife", "knife_menu")
   register_clcmd("knifes", "knife_menu")
   RegisterHam(Ham_Item_Deploy, "weapon_knife", "SetKnife", 1)
   register_event("CurWeapon", "SetKnife" ,"be" ,"1=1")
   RegisterHam(Ham_Item_Holster, "weapon_knife", "KnifeSet", 1)
   RegisterHam(Ham_TakeDamage, "player", "EventDamage", 0)
   RegisterHam(Ham_TakeDamage, "player", "TakeDamage", .Post = true)
   RegisterHam(Ham_Killed, "player", "KilledPost", .Post = true)
   RegisterHam(Ham_Player_Jump, "player", "PreTwoJump")
   register_forward(FM_EmitSound, "EmitSound")
}
 
public client_connect(id)
{
   KnifeId[id] = 5
}
 
public client_disconnect(nClientIndex)
{
   remove_task(nClientIndex)
}
 
public knife_menu(id)
{
   static menu[650], iLen
   iLen = 0
   iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\r[\yKnifeMenu\r] \wВыберите нож^n^n")
 
   if(!is_user_connected(id))
   return PLUGIN_CONTINUE
 
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wКатана \d(\rДвойной прыжок\d)^n")
   keys |= MENU_KEY_1
 
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wСильный \d(\rБольшой урон\d)^n")
   keys |= MENU_KEY_2
 
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wСтронг \d(\rСкорость\d)^n")
   keys |= MENU_KEY_3
    
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wКомбат \d(\rГравитация\d)^n^n")
   keys |= MENU_KEY_4
 
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wСтандартный \d(\rВосстановление здоровья\d)^n^n")
   keys |= MENU_KEY_5
 
    if(get_user_flags(id) & ADMIN_FLAG)
   {
      iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wАдминский нож \d(\rВсё включено\d)^n")
      keys |= MENU_KEY_6
   }else{
      iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \dАдминский нож (\rВсё включено\d)^n")
   }
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход^n")
   keys |= MENU_KEY_0
 
   show_menu(id, keys, menu, -1, "Menu 1")
   return PLUGIN_HANDLED
}
 
public menu_knife(id, key)
{
   switch(key)
   {
      case 0:
      {
         KnifeId[id] = 1
         SetKnife(id)
      }
      case 1:
      {
         KnifeId[id] = 2
         SetKnife(id)
      }
      case 2:
      {
         KnifeId[id] = 3
         SetKnife(id)
      }
      case 3:
      {
         KnifeId[id] = 4
         SetKnife(id)
      }
      case 4:
      {
         KnifeId[id] = 5
         SetKnife(id)
      }
      case 5:
      {
         if(get_user_flags(id) & ADMIN_FLAG)
         {
            KnifeId[id] = 0
          SetKnife(id)
         }
      }
   }
   return PLUGIN_HANDLED
}
 
public SetKnife(id)
{
   if(!is_user_connected(id))
   return PLUGIN_CONTINUE
    
   if(KnifeId[id] == 1)
   {
      set_pev(id, pev_viewmodel2, "models/knifes/v_katana.mdl")
      set_pev(id, pev_weaponmodel2, "models/knifes/p_katana.mdl")
      set_pev(id, pev_gravity, 1.0)
      szTwoJump[id] = true
   }
   if(KnifeId[id] == 2)
   {
      set_pev(id, pev_viewmodel2, "models/knifes/v_ibuki.mdl")
      set_pev(id, pev_weaponmodel2, "models/knifes/p_ibuki.mdl")
      set_pev(id, pev_gravity, 1.0)
      szTwoJump[id] = false
   }
   if(KnifeId[id] == 3)
   {
      set_pev(id, pev_viewmodel2, "models/knifes/v_terari.mdl")
      set_pev(id, pev_weaponmodel2, "models/knifes/p_terari.mdl")
      set_pev(id, pev_gravity, 1.0)
      szTwoJump[id] = false
   }
   if(KnifeId[id] == 4)
   {
      set_pev(id, pev_viewmodel2, "models/knifes/v_ferrane.mdl")
      set_pev(id, pev_weaponmodel2, "models/knifes/p_ferrane.mdl")
      set_pev(id, pev_gravity, 0.7)
      szTwoJump[id] = false
   }
   if(KnifeId[id] == 5)
   {
      set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
      set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
      set_pev(id, pev_gravity, 1.0)
      szTwoJump[id] = false
   }
   if(KnifeId[id] == 0)
   {
      set_pev(id, pev_viewmodel2, "models/knifes/v_blink.mdl")
      set_pev(id, pev_weaponmodel2, "models/knifes/p_blink.mdl")
      set_pev(id, pev_gravity, 0.6)
      szTwoJump[id] = true
   }
   return PLUGIN_HANDLED
}
 
public KnifeSet(ent)
{
   set_pev(get_pdata_cbase(ent, 41, 4), pev_gravity, 1.0)
}
 
public TakeDamage(nClientIndex)
{
   if(is_user_alive(nClientIndex))
   {
      if (!task_exists(nClientIndex))
      set_task(REGENERATION_DELAY, "StartRegeneration" , nClientIndex, _, _, "b")
   }
}
  
public KilledPost(nClientIndex)
{
   remove_task(nClientIndex)
}
  
public StartRegeneration(nClientIndex)

   static Float:g_iHealthPoint; pev(nClientIndex, pev_health, g_iHealthPoint);
    
   if (g_iHealthPoint >= REGENERATION_MAX)
   {
      remove_task(nClientIndex);
      return PLUGIN_HANDLED;
   }
    
   if(get_user_weapon(nClientIndex) == CSW_KNIFE && (KnifeId[nClientIndex] == 0 || KnifeId[nClientIndex] == 5))
   {
      set_pev(nClientIndex, pev_health, g_iHealthPoint + REGENERATION_STEP);
   }
   return PLUGIN_CONTINUE;
}
 
public EventDamage(victim, inflicator, attacker, Float:damage)
{
   if(!is_user_connected(attacker))
   return PLUGIN_HANDLED;
      
   if(victim == attacker || !victim)
   return PLUGIN_HANDLED;
 
   if(get_user_team(attacker) != get_user_team (victim) && attacker != victim && get_user_weapon(attacker) == CSW_KNIFE && (KnifeId[attacker] == 0 || KnifeId[attacker] == 2))
   SetHamParamFloat(4, damage * 2.0)
   return PLUGIN_HANDLED;
}
 
public PreTwoJump(id)
{
   if(szTwoJump[id] && get_user_weapon(id) == CSW_KNIFE) 
   {
      new szButton = pev(id, pev_button)
      new szOldButton = pev(id, pev_oldbuttons)
  
      if((szButton & IN_JUMP) && !(pev(id, pev_flags) & FL_ONGROUND) && !(szOldButton & IN_JUMP))
      {
         if(szTwoJumpNum[id] < 1)
         {
            szDoTwoJump[id] = true
            szTwoJumpNum[id]++
             
            PostTwoJump(id)
  
            return PLUGIN_CONTINUE
         }
      }
      if((szButton & IN_JUMP) && (pev(id, pev_flags) & FL_ONGROUND))
      {
         szTwoJumpNum[id] = 0
      }
   }
   return PLUGIN_CONTINUE
}
 
public PostTwoJump(id)
{
   if(szTwoJump[id]) 
   {
      if(!is_user_alive(id))
      return PLUGIN_CONTINUE
    
      if(szDoTwoJump[id])
      {
         new Float:szVelocity[3] 
         pev(id, pev_velocity, szVelocity)
  
         szVelocity[2] = random_float(295.0,305.0)
         set_pev(id, pev_velocity, szVelocity)
  
         szDoTwoJump[id] = false
 
         return PLUGIN_CONTINUE
      }
   }
   return PLUGIN_CONTINUE
}
 
public EmitSound(id, channel, const sound[])
{
   if(equal(sound, "weapons/knife_hitwall1.wav"))
   {
      if(KnifeId[id] == 0)
      {
         emit_sound(id, channel, "knifes/blink_hitwall1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }
      else if(KnifeId[id] == 1)
      {
         emit_sound(id, channel, "knifes/katana_hitwall1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }
      else if(KnifeId[id] == 2)
      {
         emit_sound(id, channel, "knifes/ibuki_hitwall1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }
      else if(KnifeId[id] == 3)
      {
         emit_sound(id, channel, "knifes/terari_hitwall1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }
      else if(KnifeId[id] == 4)
      {
         emit_sound(id, channel, "knifes/ferrane_hitwall1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }else{
         return HAM_IGNORED
      }
   }
   if(equal(sound, "weapons/knife_slash1.wav") || equal(sound, "weapons/knife_slash2.wav"))
   {
      if(KnifeId[id] == 2)
      {
         emit_sound(id, channel, "knifes/ibuki_slash1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }else{
         return HAM_IGNORED
      }
   }
   if(equal(sound, "weapons/knife_deploy1.wav"))
   {
      if(KnifeId[id] == 2)
      {
         emit_sound(id, channel, "knifes/ibuki_deploy1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }else{
         return HAM_IGNORED
      }
   }  
   return HAM_IGNORED
}

Подправить совсем чуток нужно было)
ps.gif Прячь код под спойлер. Лагает как censored2.gif

Отредактировал: Fullserver, - 11.11.2015, 22:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 11.11.2015, 22:49
Сообщение #12


Стаж: 11 лет

Сообщений: 121
Благодарностей: 11
Полезность: < 0

Цитата(Fullserver @ 11.11.2015, 23:41) *
Готово
Код:
// [DR] Knifes By BiZoN
// Спасибо Eriurias за качественную регенерацию
// Плагин менее затратен в плане нагрузки, в отличие от своих аналогов, использующих CurWeapon вместо Ham_Item_deploy
// Снята затрата двойного прыжка в плане использования события прыжка, а не форвардов, вызывающихся по десятку раз каждую секунду
// Способности работают только тогда, когда в руках нож
// Ну и многое другое, что вы можете увидеть во время работы плагина
// Огромная просьба: если найдете баги или недочеты, пишите, пожалуйста, мне в скайп: vitya12345629 или в ВК: vk.com/6u3oh
// [DR] Knifes By BiZoN
 
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
 
#define PLUGIN "[DR] Knifes"
#define VERSION "1.0"
#define AUTHOR "BiZoN"
 
#define ADMIN_FLAG ADMIN_BAN // Флаг Админа
 
#define REGENERATION_DELAY 2.0 // Время до регенерации
#define REGENERATION_STEP 1 // Насколько увеличивать HP
#define REGENERATION_MAX 100 // Максимальное кол-во HP
 
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0
new szTwoJump[33]
new szTwoJumpNum[33]
new szDoTwoJump[33]
new KnifeId[33]
 
public plugin_precache()
{
   precache_model("models/v_knife.mdl")
   precache_model("models/knifes/v_ferrane.mdl")
   precache_model("models/knifes/v_terari.mdl")
   precache_model("models/knifes/v_ibuki.mdl")
   precache_model("models/knifes/v_katana.mdl")
   precache_model("models/knifes/v_blink.mdl")
    
   precache_model("models/p_knife.mdl")
   precache_model("models/knifes/p_ferrane.mdl")
   precache_model("models/knifes/p_terari.mdl")
   precache_model("models/knifes/p_ibuki.mdl")
   precache_model("models/knifes/p_katana.mdl")
   precache_model("models/knifes/p_blink.mdl")
    
   precache_sound("knifes/health.wav")
   precache_sound("knifes/blink_hitwall1.wav")
   precache_sound("knifes/katana_hitwall1.wav")
   precache_sound("knifes/ibuki_hitwall1.wav")
   precache_sound("knifes/ibuki_slash1.wav")
   precache_sound("knifes/ibuki_deploy1.wav")  
   precache_sound("knifes/terari_hitwall1.wav")
   precache_sound("knifes/ferrane_hitwall1.wav")
}
 
public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   register_menu("Menu 1", keys, "menu_knife")
   register_clcmd("say /knife", "knife_menu")
   register_clcmd("say_team /knife", "knife_menu")
   register_clcmd("knife", "knife_menu")
   register_clcmd("knifes", "knife_menu")
   RegisterHam(Ham_Item_Deploy, "weapon_knife", "SetKnife", 1)
   register_event("CurWeapon", "SetKnife" ,"be" ,"1=1")
   RegisterHam(Ham_Item_Holster, "weapon_knife", "KnifeSet", 1)
   RegisterHam(Ham_TakeDamage, "player", "EventDamage", 0)
   RegisterHam(Ham_TakeDamage, "player", "TakeDamage", .Post = true)
   RegisterHam(Ham_Killed, "player", "KilledPost", .Post = true)
   RegisterHam(Ham_Player_Jump, "player", "PreTwoJump")
   register_forward(FM_EmitSound, "EmitSound")
}
 
public client_connect(id)
{
   KnifeId[id] = 5
}
 
public client_disconnect(nClientIndex)
{
   remove_task(nClientIndex)
}
 
public knife_menu(id)
{
   static menu[650], iLen
   iLen = 0
   iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\r[\yKnifeMenu\r] \wВыберите нож^n^n")
 
   if(!is_user_connected(id))
   return PLUGIN_CONTINUE
 
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wКатана \d(\rДвойной прыжок\d)^n")
   keys |= MENU_KEY_1
 
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wСильный \d(\rБольшой урон\d)^n")
   keys |= MENU_KEY_2
 
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wСтронг \d(\rСкорость\d)^n")
   keys |= MENU_KEY_3
    
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wКомбат \d(\rГравитация\d)^n^n")
   keys |= MENU_KEY_4
 
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wСтандартный \d(\rВосстановление здоровья\d)^n^n")
   keys |= MENU_KEY_5
 
    if(get_user_flags(id) & ADMIN_FLAG)
   {
      iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wАдминский нож \d(\rВсё включено\d)^n")
      keys |= MENU_KEY_6
   }else{
      iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \dАдминский нож (\rВсё включено\d)^n")
   }
   iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход^n")
   keys |= MENU_KEY_0
 
   show_menu(id, keys, menu, -1, "Menu 1")
   return PLUGIN_HANDLED
}
 
public menu_knife(id, key)
{
   switch(key)
   {
      case 0:
      {
         KnifeId[id] = 1
         SetKnife(id)
      }
      case 1:
      {
         KnifeId[id] = 2
         SetKnife(id)
      }
      case 2:
      {
         KnifeId[id] = 3
         SetKnife(id)
      }
      case 3:
      {
         KnifeId[id] = 4
         SetKnife(id)
      }
      case 4:
      {
         KnifeId[id] = 5
         SetKnife(id)
      }
      case 5:
      {
         if(get_user_flags(id) & ADMIN_FLAG)
         {
            KnifeId[id] = 0
          SetKnife(id)
         }
      }
   }
   return PLUGIN_HANDLED
}
 
public SetKnife(id)
{
   if(!is_user_connected(id))
   return PLUGIN_CONTINUE
    
   if(KnifeId[id] == 1)
   {
      set_pev(id, pev_viewmodel2, "models/knifes/v_katana.mdl")
      set_pev(id, pev_weaponmodel2, "models/knifes/p_katana.mdl")
      set_pev(id, pev_gravity, 1.0)
      szTwoJump[id] = true
   }
   if(KnifeId[id] == 2)
   {
      set_pev(id, pev_viewmodel2, "models/knifes/v_ibuki.mdl")
      set_pev(id, pev_weaponmodel2, "models/knifes/p_ibuki.mdl")
      set_pev(id, pev_gravity, 1.0)
      szTwoJump[id] = false
   }
   if(KnifeId[id] == 3)
   {
      set_pev(id, pev_viewmodel2, "models/knifes/v_terari.mdl")
      set_pev(id, pev_weaponmodel2, "models/knifes/p_terari.mdl")
      set_pev(id, pev_gravity, 1.0)
      szTwoJump[id] = false
   }
   if(KnifeId[id] == 4)
   {
      set_pev(id, pev_viewmodel2, "models/knifes/v_ferrane.mdl")
      set_pev(id, pev_weaponmodel2, "models/knifes/p_ferrane.mdl")
      set_pev(id, pev_gravity, 0.7)
      szTwoJump[id] = false
   }
   if(KnifeId[id] == 5)
   {
      set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
      set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
      set_pev(id, pev_gravity, 1.0)
      szTwoJump[id] = false
   }
   if(KnifeId[id] == 0)
   {
      set_pev(id, pev_viewmodel2, "models/knifes/v_blink.mdl")
      set_pev(id, pev_weaponmodel2, "models/knifes/p_blink.mdl")
      set_pev(id, pev_gravity, 0.6)
      szTwoJump[id] = true
   }
   return PLUGIN_HANDLED
}
 
public KnifeSet(ent)
{
   set_pev(get_pdata_cbase(ent, 41, 4), pev_gravity, 1.0)
}
 
public TakeDamage(nClientIndex)
{
   if(is_user_alive(nClientIndex))
   {
      if (!task_exists(nClientIndex))
      set_task(REGENERATION_DELAY, "StartRegeneration" , nClientIndex, _, _, "b")
   }
}
  
public KilledPost(nClientIndex)
{
   remove_task(nClientIndex)
}
  
public StartRegeneration(nClientIndex)

   static Float:g_iHealthPoint; pev(nClientIndex, pev_health, g_iHealthPoint);
    
   if (g_iHealthPoint >= REGENERATION_MAX)
   {
      remove_task(nClientIndex);
      return PLUGIN_HANDLED;
   }
    
   if(get_user_weapon(nClientIndex) == CSW_KNIFE && (KnifeId[nClientIndex] == 0 || KnifeId[nClientIndex] == 5))
   {
      set_pev(nClientIndex, pev_health, g_iHealthPoint + REGENERATION_STEP);
   }
   return PLUGIN_CONTINUE;
}
 
public EventDamage(victim, inflicator, attacker, Float:damage)
{
   if(!is_user_connected(attacker))
   return PLUGIN_HANDLED;
      
   if(victim == attacker || !victim)
   return PLUGIN_HANDLED;
 
   if(get_user_team(attacker) != get_user_team (victim) && attacker != victim && get_user_weapon(attacker) == CSW_KNIFE && (KnifeId[attacker] == 0 || KnifeId[attacker] == 2))
   SetHamParamFloat(4, damage * 2.0)
   return PLUGIN_HANDLED;
}
 
public PreTwoJump(id)
{
   if(szTwoJump[id] && get_user_weapon(id) == CSW_KNIFE) 
   {
      new szButton = pev(id, pev_button)
      new szOldButton = pev(id, pev_oldbuttons)
  
      if((szButton & IN_JUMP) && !(pev(id, pev_flags) & FL_ONGROUND) && !(szOldButton & IN_JUMP))
      {
         if(szTwoJumpNum[id] < 1)
         {
            szDoTwoJump[id] = true
            szTwoJumpNum[id]++
             
            PostTwoJump(id)
  
            return PLUGIN_CONTINUE
         }
      }
      if((szButton & IN_JUMP) && (pev(id, pev_flags) & FL_ONGROUND))
      {
         szTwoJumpNum[id] = 0
      }
   }
   return PLUGIN_CONTINUE
}
 
public PostTwoJump(id)
{
   if(szTwoJump[id]) 
   {
      if(!is_user_alive(id))
      return PLUGIN_CONTINUE
    
      if(szDoTwoJump[id])
      {
         new Float:szVelocity[3] 
         pev(id, pev_velocity, szVelocity)
  
         szVelocity[2] = random_float(295.0,305.0)
         set_pev(id, pev_velocity, szVelocity)
  
         szDoTwoJump[id] = false
 
         return PLUGIN_CONTINUE
      }
   }
   return PLUGIN_CONTINUE
}
 
public EmitSound(id, channel, const sound[])
{
   if(equal(sound, "weapons/knife_hitwall1.wav"))
   {
      if(KnifeId[id] == 0)
      {
         emit_sound(id, channel, "knifes/blink_hitwall1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }
      else if(KnifeId[id] == 1)
      {
         emit_sound(id, channel, "knifes/katana_hitwall1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }
      else if(KnifeId[id] == 2)
      {
         emit_sound(id, channel, "knifes/ibuki_hitwall1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }
      else if(KnifeId[id] == 3)
      {
         emit_sound(id, channel, "knifes/terari_hitwall1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }
      else if(KnifeId[id] == 4)
      {
         emit_sound(id, channel, "knifes/ferrane_hitwall1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }else{
         return HAM_IGNORED
      }
   }
   if(equal(sound, "weapons/knife_slash1.wav") || equal(sound, "weapons/knife_slash2.wav"))
   {
      if(KnifeId[id] == 2)
      {
         emit_sound(id, channel, "knifes/ibuki_slash1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }else{
         return HAM_IGNORED
      }
   }
   if(equal(sound, "weapons/knife_deploy1.wav"))
   {
      if(KnifeId[id] == 2)
      {
         emit_sound(id, channel, "knifes/ibuki_deploy1.wav", 1.0, 1.0, 0, 100)
         return FMRES_SUPERCEDE
      }else{
         return HAM_IGNORED
      }
   }  
   return HAM_IGNORED
}

Подправить совсем чуток нужно было)
ps.gif Прячь код под спойлер. Лагает как censored2.gif


От души благодарю)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 11.11.2015, 22:52
Сообщение #13
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

default67, тоже самое я выше писал. :D
даже подсказку дал. я хотел чтоб ты сам сделал все (это полезно)

Отредактировал: Vaqtincha, - 11.11.2015, 22:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 11.11.2015, 22:54
Сообщение #14


Стаж: 11 лет

Сообщений: 121
Благодарностей: 11
Полезность: < 0

Цитата(Vaqtincha @ 11.11.2015, 23:47) *
default67, тоже самое я выше писал. :D

Я подумал ты про это:
Код:
engclient_cmd(id, "weapon_knife")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fullserver
сообщение 11.11.2015, 22:57
Сообщение #15


Иконка группы

Стаж: 11 лет

Сообщений: 5122
Благодарностей: 2100
Полезность: 1394

Vaqtincha, так ты зачем то про strip писал, а там функцию забыли вызвать после присвоения типа ножа.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Vaqtincha
сообщение 11.11.2015, 23:01
Сообщение #16
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

default67, это мой фэйл. А если читать ниже есть разумные советы просто ты не читал или не успел читать.
Ну ладн... проблема решена?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fullserver
сообщение 11.11.2015, 23:02
Сообщение #17


Иконка группы

Стаж: 11 лет

Сообщений: 5122
Благодарностей: 2100
Полезность: 1394

Vaqtincha, увидел)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя default67
сообщение 11.11.2015, 23:03
Сообщение #18


Стаж: 11 лет

Сообщений: 121
Благодарностей: 11
Полезность: < 0

Цитата(Vaqtincha @ 11.11.2015, 23:56) *
default67, проблема решена?

Да. Спасибо Вам ребят)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Vaqtincha
сообщение 11.11.2015, 23:05
Сообщение #19
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

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