Например: У спецназов в начале раунда usp и когда берёшь из вип меню m4a1 она становиться usp но стреляет как m4a1 и патроны как у m4a1 и так со всеми.
Вот код если я что-то делаю не правильно помогите кто сможет
- Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#include <fakemeta_util>
#define PLUGIN "ShowMenu"
#define AUTHOR "Test"
#define VERSION "1.0"
#define VIP_FLAG ADMIN_RESERVATION
new VIEW_MODEL1[ 64 ] = "models/vipgold/v_ak47.mdl"
new PLAYER_MODEL2[ 64 ] = "models/vipgold/p_ak47.mdl"
new WORLD_MODEL3[ 64 ] = "models/vipgold/w_ak47.mdl"
new VIEW_MODEL4[ 64 ] = "models/vipgold/v_m4a1.mdl"
new PLAYER_MODEL5[ 64 ] = "models/vipgold/p_m4a1.mdl"
new WORLD_MODEL6[ 64 ] = "models/vipgold/w_m4a1.mdl"
new VIEW_MODEL7[ 64 ] = "models/vipgold/v_awp.mdl"
new PLAYER_MODEL8[ 64 ] = "models/vipgold/p_awp.mdl"
new WORLD_MODEL9[ 64 ] = "models/vipgold/w_awp.mdl"
new VIEW_MODEL10[ 64 ] = "models/vipgold/v_famas.mdl"
new PLAYER_MODEL11[ 64 ] = "models/vipgold/p_famas.mdl"
new WORLD_MODEL12[ 64 ] = "models/vipgold/w_famas.mdl"
new VIEW_MODEL13[ 64 ] = "models/vipgold/v_scout.mdl"
new PLAYER_MODEL14[ 64 ] = "models/vipgold/p_scout.mdl"
new WORLD_MODEL15[ 64 ] = "models/vipgold/w_scout.mdl"
new VIEW_MODEL16[ 64 ] = "models/vipgold/v_deagle.mdl"
new PLAYER_MODEL17[ 64 ] = "models/vipgold/p_deagle.mdl"
new WORLD_MODEL18[ 64 ] = "models/vipgold/w_deagle.mdl"
new VIEW_MODEL19[ 64 ] = "models/vipgold/v_usp.mdl"
new PLAYER_MODEL20[ 64 ] = "models/vipgold/p_usp.mdl"
new OLDWORLD_MODEL1[ 64 ] = "models/vipgold/w_ak47.mdl"
new OLDWORLD_MODEL2[ 64 ] = "models/vipgold/w_m4a1.mdl"
new OLDWORLD_MODEL3[ 64 ] = "models/vipgold/w_deafle.mdl"
new OLDWORLD_MODEL4[ 64 ] = "models/vipgold/w_awp.mdl"
new OLDWORLD_MODEL5[ 64 ] = "models/vipgold/w_famas.mdl"
new OLDWORLD_MODEL6[ 64 ] = "models/vipgold/w_scout.mdl"
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
new nweap[32]
public plugin_init()
{
register_plugin("ShowMenu", "1.0", "Test")
register_menu("Menu_2", keys, "vip_menu")
register_clcmd("vipmenu", "menu")
RegisterHam(Ham_TakeDamage, "player", "hook_TakeDamage")
register_event("CurWeapon", "Event_CurWeapon", "be","1=1")
register_forward(FM_SetModel, "fw_SetModel")
RegisterHam(Ham_Spawn, "player", "player_respawn")
}
public player_respawn(id){
nweap[id] = 0
}
public menu(id)
{
if(nweap[id]){
client_print(0, print_chat, "Вы уже брали Gold оружие в этом раунде")
return PLUGIN_HANDLED
}
static menu[512], iLen
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\rВИП МЕНЮ^n^n")
if(get_user_flags(id) & VIP_FLAG)
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y1. \wВзять Gold M4A1^n")
keys |= MENU_KEY_1
if(get_user_flags(id) & VIP_FLAG)
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y2. \wВзять Gold AK47^n")
keys |= MENU_KEY_2
if(get_user_flags(id) & VIP_FLAG)
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y3. \wВзять Gold AWP^n")
keys |= MENU_KEY_3
if(get_user_flags(id) & VIP_FLAG)
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y4. \wВзять Gold Famas^n")
keys |= MENU_KEY_4
if(get_user_flags(id) & VIP_FLAG)
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y5. \wВзять Gold Scout^n")
keys |= MENU_KEY_5
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\y0. \wВыход^n")
keys |= MENU_KEY_0
show_menu(id, keys, menu, -1, "Menu_2");
return PLUGIN_HANDLED
}
public vip_menu(id, key)
{
new name[32]
get_user_name(id, name, 31)
switch(key)
{
case 0:
{
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 120)
client_print(0, print_chat, "Вип игрок %s взял оружие Gold M4A1", name)
nweap[id] = true
}
case 1:
{
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 120)
client_print(0, print_chat, "Вип игрок %s взял оружие Gold AK47", name)
nweap[id] = true
}
case 2:
{
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 40)
client_print(0, print_chat, "Вип игрок %s взял оружие Gold AWP", name)
nweap[id] = true
}
case 3:
{
give_item(id, "weapon_famas")
cs_set_user_bpammo(id, CSW_FAMAS, 125)
client_print(0, print_chat, "Вип игрок %s взял оружие Gold FAMAS", name)
nweap[id] = true
}
case 4:
{
give_item(id, "weapon_scout")
cs_set_user_bpammo(id, CSW_SCOUT, 100)
client_print(0, print_chat, "Вип игрок %s взял оружие Gold SCOUT", name)
nweap[id] = true
}
case 5:
{
give_item(id, "weapon_scout")
cs_set_user_bpammo(id, CSW_SCOUT, 100)
client_print(0, print_chat, "Вип игрок %s взял оружие Gold SCOUT", name)
nweap[id] = true
}
}
}
public hook_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
{
if( !is_user_connected( attacker ) )
return;
new sViewModel[ 64 ];
pev(attacker, pev_viewmodel2, sViewModel, charsmax( sViewModel ) );
if( !equal( sViewModel, "models\vipgold\v_m4a1.mdl" ) )
return;
SetHamParamFloat(4, damage*0.4) // Умножаем урон на 0.4
if( !equal( sViewModel, "models/vipgold/v_ak47.mdl" ) )
return;
SetHamParamFloat(4, damage*0.5) // Умножаем урон на 0.4
if( !equal( sViewModel, "models/vipgold/v_awp.mdl" ) )
return;
SetHamParamFloat(4, damage*0.6) // Умножаем урон на 0.4
if( !equal( sViewModel, "models/vipgold/v_famas.mdl" ) )
return;
SetHamParamFloat(4, damage*0.7) // Умножаем урон на 0.4
if( !equal( sViewModel, "models/vipgold/v_scout.mdl" ) )
return;
SetHamParamFloat(4, damage*0.8) // Умножаем урон на 0.4
if( !equal( sViewModel, "models/vipgold/v_deagle.mdl" ) )
return;
SetHamParamFloat(4, damage*0.9) // Умножаем урон на 0.4
if( !equal( sViewModel, "models/vipgold/v_usp.mdl" ) )
return;
SetHamParamFloat(4, damage*0.9) // Умножаем урон на 0.4
}
public plugin_precache()
{
precache_model ( VIEW_MODEL1 );
precache_model ( PLAYER_MODEL2 );
precache_model ( WORLD_MODEL3 );
precache_model ( VIEW_MODEL4 );
precache_model ( PLAYER_MODEL5 );
precache_model ( WORLD_MODEL6 );
precache_model ( VIEW_MODEL7 );
precache_model ( PLAYER_MODEL8 );
precache_model ( WORLD_MODEL9 );
precache_model ( VIEW_MODEL10 );
precache_model ( PLAYER_MODEL11 );
precache_model ( WORLD_MODEL12 );
precache_model ( VIEW_MODEL13 );
precache_model ( PLAYER_MODEL14 );
precache_model ( WORLD_MODEL15 );
precache_model ( VIEW_MODEL16 );
precache_model ( PLAYER_MODEL17 );
precache_model ( WORLD_MODEL18 );
precache_model ( VIEW_MODEL19 );
precache_model ( PLAYER_MODEL20 );
}
public Event_CurWeapon(id)
{
// Получаем ID оружия, может не работать для других модов
new weaponID = read_data(2)
// Если оружие не M4A1, то возвращаем PLUGIN_CONTINUE
if (weaponID != CSW_M4A1)
if (weaponID != CSW_AK47)
if (weaponID != CSW_AWP)
if (weaponID != CSW_FAMAS)
if (weaponID != CSW_SCOUT)
if (weaponID != CSW_USP)
if (weaponID != CSW_DEAGLE)
return PLUGIN_CONTINUE
// Установка v_ модели, которая отображается в руках игрока
set_pev(id, pev_viewmodel2, VIEW_MODEL4)
set_pev(id, pev_viewmodel2, VIEW_MODEL1)
set_pev(id, pev_viewmodel2, VIEW_MODEL7)
set_pev(id, pev_viewmodel2, VIEW_MODEL10)
set_pev(id, pev_viewmodel2, VIEW_MODEL13)
set_pev(id, pev_viewmodel2, VIEW_MODEL16)
set_pev(id, pev_viewmodel2, VIEW_MODEL19)
// Установка p_ модели, которая отображается, когда мы смотрим на игрока
set_pev(id, pev_weaponmodel2, PLAYER_MODEL5)
set_pev(id, pev_weaponmodel2, PLAYER_MODEL2)
set_pev(id, pev_weaponmodel2, PLAYER_MODEL8)
set_pev(id, pev_weaponmodel2, PLAYER_MODEL11)
set_pev(id, pev_weaponmodel2, PLAYER_MODEL14)
set_pev(id, pev_weaponmodel2, PLAYER_MODEL17)
set_pev(id, pev_weaponmodel2, PLAYER_MODEL20)
return PLUGIN_CONTINUE
}
public fw_SetModel(entity, model[])
{
// Проверяем существует ли объект
if (!pev_valid(entity))
return FMRES_IGNORED
// Проверяем та ли это w_ модель, которую му хотим изменить
if (!equali(model, OLDWORLD_MODEL2))
return FMRES_IGNORED
if (!equali(model, OLDWORLD_MODEL1))
return FMRES_IGNORED
if (!equali(model, OLDWORLD_MODEL3))
return FMRES_IGNORED
if (!equali(model, OLDWORLD_MODEL4))
return FMRES_IGNORED
if (!equali(model, OLDWORLD_MODEL5))
return FMRES_IGNORED
if (!equali(model, OLDWORLD_MODEL6))
return FMRES_IGNORED
new className[128]
// Получаем класс объекта
pev(entity, pev_classname, className, 127)
// Сравниваем равняется ли полученный класс объекта weaponbox (выкинутое оружие) или armoury_entity (оружие, которое лежит на карте), или grenade (C4 и гранаты)
if(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
{
// Установка w_ модели, которая отображается на земле
engfunc(EngFunc_SetModel, entity, WORLD_MODEL6)
return FMRES_SUPERCEDE
engfunc(EngFunc_SetModel, entity, WORLD_MODEL3)
return FMRES_SUPERCEDE
engfunc(EngFunc_SetModel, entity, WORLD_MODEL9)
return FMRES_SUPERCEDE
engfunc(EngFunc_SetModel, entity, WORLD_MODEL12)
return FMRES_SUPERCEDE
engfunc(EngFunc_SetModel, entity, WORLD_MODEL15)
return FMRES_SUPERCEDE
engfunc(EngFunc_SetModel, entity, WORLD_MODEL18)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}