|
Стаж: 3 года 3 месяца
Сообщений: 3
Благодарностей: 1
Полезность: 0
|
Доброго времени суток! Надеюсь у вас получится мне помочь) >1) Проблема заключается в том, что когда я покупаю к примеру > AK47 ICE(Моделька поменялась на соответствующую!), после покупаю AK47 ASIMOV(Моделька не поменялась на соответствующую!) < Моделька не меняется!2) Хочу сделать так, чтобы когда у меню есть одно оружие, оно не плюсовалось, а менялосьКоды на эти оружия внизу Код:
#include <amxmodx> #include <fakemeta> #include <fun> #include <hamsandwich> #include <cstrike> #include <amxmisc>
#define PLUGIN "ICE AK47" #define VERSION "1.0" #define AUTHOR "===="
#define is_valid_player(%1) (1 <= %1 <= 32)
new AK_V_MODEL[64] = "models/v_ice_ak47.mdl" new AK_P_MODEL[64] = "models/p_ice_ak47.mdl"
/* Pcvars */ new cvar_dmgmultiplier, cvar_bullets, cvar_custommodel, cvar_uclip, cvar_cost, cvar_flag_admin new flag_admin[18]
new bool:g_HasAkIce[33]
new bullets[ 33 ]
// Sprite new m_spriteTexture
const Wep_ak = ((1<<CSW_AK47))
public plugin_init() { /* CVARS */ cvar_dmgmultiplier = register_cvar("cvar_ice_ak47_dmg_multiplier", "2") cvar_custommodel = register_cvar("cvar_ice_ak47_custom_model", "1") cvar_bullets = register_cvar("cvar_ice_ak47_bullets", "1") cvar_uclip = register_cvar("cvar_ice_ak47_unlimited_clip", "0") cvar_cost = register_cvar("cvar_ice_ak47_cost", "3000") cvar_flag_admin=register_cvar("cvar_ice_ak47_flag_admin", "t") // Флаг для Привилегированного игрока // Register The Buy Cmd register_clcmd("iceak47", "CmdBuyAk") register_clcmd("say /iceak47", "CmdBuyAk") register_clcmd("say_team /iceak47", "CmdBuyAk") register_concmd("amx_asimovak47", "CmdGiveAk", ADMIN_BAN, "<name>") // Register The Plugin register_plugin(PLUGIN, VERSION, AUTHOR) // Death Msg register_event("DeathMsg", "Death", "a") // Weapon Pick Up register_event("WeapPickup","checkModel","b","1=19") // Current Weapon Event register_event("CurWeapon","checkWeapon","be","1=1") register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0") // Ham TakeDamage RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1) }
public plugin_cfg() { new configsdir[128] get_localinfo("amxx_configsdir", configsdir, 127) server_cmd("exec %s/ShopGun/ShopGun.cfg", configsdir) server_exec()
get_pcvar_string(cvar_flag_admin, flag_admin, 17) }
public client_connect(id) { g_HasAkIce[id] = false }
public client_disconnected(id) { g_HasAkIce[id] = false }
public Death() { g_HasAkIce[read_data(2)] = false }
public fwHamPlayerSpawnPost(id) { g_HasAkIce[id] = false }
public plugin_precache() { precache_model(AK_V_MODEL) precache_model(AK_P_MODEL) m_spriteTexture = precache_model("sprites/dot.spr") }
public checkModel(id) { if ( !g_HasAkIce[id] ) return PLUGIN_HANDLED new szWeapID = read_data(2) if ( szWeapID == CSW_AK47 && g_HasAkIce[id] == true && get_pcvar_num(cvar_custommodel) ) { set_pev(id, pev_viewmodel2, AK_V_MODEL) set_pev(id, pev_weaponmodel2, AK_P_MODEL) } return PLUGIN_HANDLED }
public checkWeapon(id) { new plrClip, plrAmmo, plrWeap[32] new plrWeapId plrWeapId = get_user_weapon(id, plrClip , plrAmmo) if (plrWeapId == CSW_AK47 && g_HasAkIce[id]) { checkModel(id) } else { return PLUGIN_CONTINUE } if (plrClip == 0 && get_pcvar_num(cvar_uclip)) { // If the user is out of ammo.. get_weaponname(plrWeapId, plrWeap, 31) // Get the name of their weapon give_item(id, plrWeap) engclient_cmd(id, plrWeap) engclient_cmd(id, plrWeap) engclient_cmd(id, plrWeap) } return PLUGIN_HANDLED }
public fw_TakeDamage(victim, inflictor, attacker, Float:damage) { if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AK47 && g_HasAkIce[attacker] ) { SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) ) } }
public make_tracer(id) { if (get_pcvar_num(cvar_bullets)) { new clip,ammo new wpnid = get_user_weapon(id,clip,ammo) new pteam[16] get_user_team(id, pteam, 15) if ((bullets[id] > clip) && (wpnid == CSW_AK47) && g_HasAkIce[id]) { new vec1[3], vec2[3] get_user_origin(id, vec1, 1) // origin; your camera point. get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only) //BEAMENTPOINTS message_begin( MSG_BROADCAST,SVC_TEMPENTITY) write_byte (0) //TE_BEAMENTPOINTS 0 write_coord(vec1[0]) write_coord(vec1[1]) write_coord(vec1[2]) write_coord(vec2[0]) write_coord(vec2[1]) write_coord(vec2[2]) write_short( m_spriteTexture ) write_byte(1) // framestart write_byte(5) // framerate write_byte(2) // life write_byte(5) // width write_byte(0) // noise write_byte( 255 ) // r, g, b write_byte( 69 ) // r, g, b write_byte( 0 ) // r, g, b write_byte(100) // brightness write_byte(200) // speed message_end() } bullets[id] = clip } }
public CmdBuyAk(id) { if ( !is_user_alive(id) ) { ChatColor(id, "!t[!gМагазин Оружий!t] Вы мертвы!"); return PLUGIN_HANDLED } new money = cs_get_user_money(id) if (money >= get_pcvar_num(cvar_cost) && get_user_flags(id) & read_flags(flag_admin)) { cs_set_user_money(id, money - get_pcvar_num(cvar_cost)) give_item(id, "weapon_ak47") g_HasAkIce[id] = true ChatColor(id, "!t[!gМагазин Оружий!t] Вы купили оружие !gICE AK47 !tза !g%d$", get_pcvar_num(cvar_cost)); } else { ChatColor(id, "!t[!gМагазин Оружий!t] Вам не хватает денег, нужно !g%d$", get_pcvar_num(cvar_cost)); } return PLUGIN_HANDLED }
public CmdGiveAk(id,level,cid) { if (!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED; new arg[32]; read_argv(1,arg,31); new player = cmd_target(id,arg,7); if (!player) return PLUGIN_HANDLED; new name[32]; get_user_name(player,name,31); give_item(player, "weapon_ak47") g_HasAkIce[player] = true return PLUGIN_HANDLED }
stock drop_prim(id) { new weapons[32], num get_user_weapons(id, weapons, num) for (new i = 0; i < num; i++) { if (Wep_ak & (1<<weapons[i])) { static wname[32] get_weaponname(weapons[i], wname, sizeof wname - 1) engclient_cmd(id, "drop", wname) } } }
stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } }
Код:
#include <amxmodx> #include <fakemeta> #include <fun> #include <hamsandwich> #include <cstrike> #include <amxmisc>
#define PLUGIN "ASIMOV AK47" #define VERSION "1.0" #define AUTHOR "==="
#define is_valid_player(%1) (1 <= %1 <= 32)
new AK_V_MODEL[64] = "models/v_asimov_ak47.mdl" new AK_P_MODEL[64] = "models/p_asimov_ak47.mdl"
/* Pcvars */ new cvar_dmgmultiplier, cvar_bullets, cvar_custommodel, cvar_uclip, cvar_cost, cvar_flag_admin new flag_admin[18]
new bool:g_HasAkAsimov[33]
new bullets[ 33 ]
// Sprite new m_spriteTexture
const Wep_ak = ((1<<CSW_AK47))
public plugin_init() { /* CVARS */ cvar_dmgmultiplier = register_cvar("cvar_asimov_ak47_dmg_multiplier", "2") cvar_custommodel = register_cvar("cvar_asimov_ak47_custom_model", "1") cvar_bullets = register_cvar("cvar_asimov_ak47_bullets", "1") cvar_uclip = register_cvar("cvar_asimov_ak47_unlimited_clip", "0") cvar_cost = register_cvar("cvar_asimov_ak47_cost", "3000") cvar_flag_admin=register_cvar("cvar_asimov_ak47_flag_admin", "t") // Флаг для Привилегированного игрока // Register The Buy Cmd register_clcmd("asimovak47", "CmdBuyAk") register_clcmd("say /asimovak47", "CmdBuyAk") register_clcmd("say_team /asimovak47", "CmdBuyAk") register_concmd("amx_asimovak47", "CmdGiveAk", ADMIN_BAN, "<name>") // Register The Plugin register_plugin(PLUGIN, VERSION, AUTHOR) // Death Msg register_event("DeathMsg", "Death", "a") // Weapon Pick Up register_event("WeapPickup","checkModel","b","1=19") // Current Weapon Event register_event("CurWeapon","checkWeapon","be","1=1") register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0") // Ham TakeDamage RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1) }
public plugin_cfg() { new configsdir[128] get_localinfo("amxx_configsdir", configsdir, 127) server_cmd("exec %s/ShopGun/ShopGun.cfg", configsdir) server_exec()
get_pcvar_string(cvar_flag_admin, flag_admin, 17) }
public client_connect(id) { g_HasAkAsimov[id] = false }
public client_disconnected(id) { g_HasAkAsimov[id] = false }
public Death() { g_HasAkAsimov[read_data(2)] = false }
public fwHamPlayerSpawnPost(id) { g_HasAkAsimov[id] = false }
public plugin_precache() { precache_model(AK_V_MODEL) precache_model(AK_P_MODEL) m_spriteTexture = precache_model("sprites/dot.spr") }
public checkModel(id) { if ( !g_HasAkAsimov[id] ) return PLUGIN_HANDLED new szWeapID = read_data(2) if ( szWeapID == CSW_AK47 && g_HasAkAsimov[id] == true && get_pcvar_num(cvar_custommodel) ) { set_pev(id, pev_viewmodel2, AK_V_MODEL) set_pev(id, pev_weaponmodel2, AK_P_MODEL) } return PLUGIN_HANDLED }
public checkWeapon(id) { new plrClip, plrAmmo, plrWeap[32] new plrWeapId plrWeapId = get_user_weapon(id, plrClip , plrAmmo) if (plrWeapId == CSW_AK47 && g_HasAkAsimov[id]) { checkModel(id) } else { return PLUGIN_CONTINUE } if (plrClip == 0 && get_pcvar_num(cvar_uclip)) { // If the user is out of ammo.. get_weaponname(plrWeapId, plrWeap, 31) // Get the name of their weapon give_item(id, plrWeap) engclient_cmd(id, plrWeap) engclient_cmd(id, plrWeap) engclient_cmd(id, plrWeap) } return PLUGIN_HANDLED }
public fw_TakeDamage(victim, inflictor, attacker, Float:damage) { if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AK47 && g_HasAkAsimov[attacker] ) { SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) ) } }
public make_tracer(id) { if (get_pcvar_num(cvar_bullets)) { new clip,ammo new wpnid = get_user_weapon(id,clip,ammo) new pteam[16] get_user_team(id, pteam, 15) if ((bullets[id] > clip) && (wpnid == CSW_AK47) && g_HasAkAsimov[id]) { new vec1[3], vec2[3] get_user_origin(id, vec1, 1) // origin; your camera point. get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only) //BEAMENTPOINTS message_begin( MSG_BROADCAST,SVC_TEMPENTITY) write_byte (0) //TE_BEAMENTPOINTS 0 write_coord(vec1[0]) write_coord(vec1[1]) write_coord(vec1[2]) write_coord(vec2[0]) write_coord(vec2[1]) write_coord(vec2[2]) write_short( m_spriteTexture ) write_byte(1) // framestart write_byte(5) // framerate write_byte(2) // life write_byte(5) // width write_byte(0) // noise write_byte( 255 ) // r, g, b write_byte( 69 ) // r, g, b write_byte( 0 ) // r, g, b write_byte(100) // brightness write_byte(200) // speed message_end() } bullets[id] = clip } }
public CmdBuyAk(id) { if ( !is_user_alive(id) ) { ChatColor(id, "!t[!gМагазин Оружий!t] Вы мертвы!"); return PLUGIN_HANDLED } new money = cs_get_user_money(id) if(!g_HasAkAsimov[id]) { if (money >= get_pcvar_num(cvar_cost) && get_user_flags(id) & read_flags(flag_admin)) { cs_set_user_money(id, money - get_pcvar_num(cvar_cost)) give_item(id, "weapon_ak47") g_HasAkAsimov[id] = true ChatColor(id, "!t[!gМагазин Оружий!t] Вы купили оружие !gASIMOV AK47 !tза !g%d$", get_pcvar_num(cvar_cost)); } else { ChatColor(id, "!t[!gМагазин Оружий!t] Вам не хватает денег, нужно !g%d$", get_pcvar_num(cvar_cost)); } } else { ChatColor(id, "!t[!gМагазин Оружий!t] У вас уже есть это оружие!"); } return PLUGIN_HANDLED }
public CmdGiveAk(id,level,cid) { if (!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED; new arg[32]; read_argv(1,arg,31); new player = cmd_target(id,arg,7); if (!player) return PLUGIN_HANDLED; new name[32]; get_user_name(player,name,31); give_item(player, "weapon_ak47") g_HasAkAsimov[player] = true return PLUGIN_HANDLED }
stock drop_prim(id) { new weapons[32], num get_user_weapons(id, weapons, num) for (new i = 0; i < num; i++) { if (Wep_ak & (1<<weapons[i])) { static wname[32] get_weaponname(weapons[i], wname, sizeof wname - 1) engclient_cmd(id, "drop", wname) } } }
stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } }
|