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

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

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

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

Пропадает оружие в следующем раунде.

, Есть оружие, со своей моделькой. Но после покупки, оно пропадает.. [РЕШЕНО]
Статус пользователя LordDeminian
сообщение 26.3.2016, 18:13
Сообщение #1
Стаж: 11 лет

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

Доброго времени суток. Проблема заключается в следующем: После покупки оружия, (плагин ниже) это оружие пропадает, в начале следующего раунда. Буду благодарен за помощь, спасибо :3

Cкрытый текст


#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <cstrike>

#define is_valid_player(%1) (1 <= %1 <= 32)

new const AWP_BIT_SUM = (1<<CSW_AWP)

new AWP_V_MODEL[64] = "models/goldawp/v_awp_super.mdl"
new AWP_P_MODEL[64] = "models/goldawp/p_awp.mdl"

new gold_damage, golden_model, goldawp_cost
new bool:g_HasAwp[30]

public plugin_init() {
register_plugin("Gold AWP", "1.0", "nick")
register_clcmd("say /goldawp", "cmdGoldenAWP")
register_clcmd("goldawp", "cmdGoldenAWP")

gold_damage = register_cvar("goldenawp_dmg", "200")
golden_model = register_cvar("goldenawp_custommodel", "1")
goldawp_cost = register_cvar("goldenawp_cost", "8000")

register_event("DeathMsg", "Death", "a")
register_event("WeapPickup", "checkModel", "b","1=19")
register_event("CurWeapon", "checkWeapon", "be","1=1")

RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)

register_forward(FM_SetModel, "fw_SetModel")
}

public client_connect(id)
g_HasAwp[id] = false

public client_disconnect(id)
g_HasAwp[id] = false

public Death()
g_HasAwp[read_data(2)] = false

public fwHamPlayerSpawnPost(id)
g_HasAwp[id] = false

public plugin_precache() {
precache_model(AWP_V_MODEL)
precache_model(AWP_P_MODEL)
}

public cmdGoldenAWP(id) {
if(!is_user_alive(id)) return

new money = cs_get_user_money(id)

if(money < get_pcvar_num(goldawp_cost)) {
PrintChat(id, "^1[^4AWP^1]Y Was Nedostatochno sredstv dlya pokypki!")
return
}

drop_weapon(id, 1)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
cs_set_user_money(id, money - get_pcvar_num(goldawp_cost))
PrintChat(id, "^1[^4AWP^1]Wi kypili ^4AWP Azimov!")
g_HasAwp[id] = true
}

public checkModel(id) {
new szWeapID = read_data(2)

if(szWeapID == CSW_AWP && g_HasAwp[id] == true && get_pcvar_num(golden_model) == 1) {
set_pev(id, pev_viewmodel2, AWP_V_MODEL)
set_pev(id, pev_weaponmodel2, AWP_P_MODEL)
}
return PLUGIN_HANDLED
}

public checkWeapon(id) {
new plrWeapId
plrWeapId = get_user_weapon(id)

if (plrWeapId == CSW_AWP && g_HasAwp[id])
checkModel(id)
else
return PLUGIN_CONTINUE

return PLUGIN_HANDLED
}

public fw_TakeDamage(victim, inflictor, attacker, Float:damage) {
if(is_valid_player(attacker) && get_user_weapon(attacker) == CSW_AWP && g_HasAwp[attacker])
SetHamParamFloat(4, damage * get_pcvar_float(gold_damage))
}


stock drop_weapon(id, dropwhat) {
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)

for (i = 0; i < num; i++) {
weaponid = weapons[i]

if ((dropwhat == 1 && ((1<<weaponid) & AWP_BIT_SUM))) {
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}

PrintChat(const iReceiver, const Msg[])
{
message_begin(MSG_ONE, 76, .player=iReceiver);
write_byte(iReceiver);
write_string(Msg);
message_end();
}





Отредактировал: LordDeminian, - 26.3.2016, 18:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя tr0uble
сообщение 26.3.2016, 18:52
Сообщение #2


Стаж: 12 лет

Сообщений: 88
Благодарностей: 31
Полезность: 273

LordDeminian,
как вариант

Код:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <cstrike>
#include <hamsandwich>

#define is_valid_player(%1) (1 <= %1 <= 32)

new AWP_V_MODEL[] = "models/goldawp/v_awp_super.mdl"
new AWP_P_MODEL[] = "models/goldawp/p_awp.mdl"
new AWP_W_MODEL[] = "models/goldawp/w_awp.mdl"

#define XO_WEAPON 4
#define XO_PLAYER 5
#define m_rgpPlayerItems_CWeaponBox 34
#define m_pNext 42
#define m_iId 43
#define m_rgpPlayerItems_CBasePlayer 367

new cvar_dmgmultiplier
new bool:g_HasAWP[33], bool:g_bHasGA[33]
new g_hasZoom[33]
new cvar_cost

#define WK 3333

public plugin_precache()
{
precache_model(AWP_V_MODEL);
precache_model(AWP_P_MODEL);
precache_model(AWP_W_MODEL);
precache_sound("weapons/zoom.wav");
}

public plugin_init()
{
cvar_dmgmultiplier = register_cvar("goldenawp_dmg_multiplier", "1");
cvar_cost = register_cvar("goldenawp_cost", "8000");

register_concmd("amx_goldenawp", "give_awp", ADMIN_RCON, "<name/id>");

register_plugin("Golden AWP", "1.5", "AlejandroSk_Mod")
register_event("DeathMsg", "Death", "a")
register_event("WeapPickup","checkModel","b","1=19")
register_event("CurWeapon","checkWeapon","be","1=1")

RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
register_forward(FM_SetModel, "fw_SetModel")
RegisterHam ( Ham_Item_AttachToPlayer, "weapon_awp", "fw_Item_AttachToPlayer" )
register_event ( "HLTV", "ev_RoundStart", "a", "1=0", "2=0" )

register_clcmd("say /goldenawp", "CmdBuyAWP")
register_forward(FM_CmdStart, "fw_CmdStart")
}

public ev_RoundStart ()
{
new iPlayers[32], iNum
get_players ( iPlayers, iNum )

for ( --iNum; iNum >= 0; --iNum )
g_bHasGA[iPlayers[iNum]] = false
}

public client_connect(id)
{
g_HasAWP[id] = false
g_bHasGA[id] = false
}

public client_disconnect(id)
{
g_HasAWP[id] = false
g_bHasGA[id] = false
}

public Death()
{
g_HasAWP[read_data(2)] = false
g_bHasGA[read_data(2)] = false
}

public fw_SetModel ( ent, model[] )
{
if ( pev_valid ( ent ) != 2 )
return FMRES_IGNORED

if ( strlen ( model ) < 8 )
return FMRES_IGNORED

if ( model[7] != 'w' || model[8] != '_' )
return FMRES_IGNORED

static sClassName[32]
pev ( ent, pev_classname, sClassName, charsmax ( sClassName ) )

if ( !equal ( sClassName, "weaponbox" ) )
return FMRES_IGNORED

new id = pev ( ent, pev_owner )

if ( pev_valid ( id ) != 2 )
return FMRES_IGNORED

#define MAX_ITEM_TYPES 6

for (new i, iItem; i < MAX_ITEM_TYPES; i++)
{
iItem = get_pdata_cbase ( ent, m_rgpPlayerItems_CWeaponBox + i, XO_WEAPON )

if ( pev_valid ( iItem ) == 2 && pev(iItem, pev_impulse) == WK )
{
g_HasAWP[id] = false
engfunc ( EngFunc_SetModel, ent, AWP_W_MODEL )
return FMRES_SUPERCEDE
}
}

return FMRES_IGNORED
}

public fw_Item_AttachToPlayer ( ent, id )
{
if ( pev_valid ( ent ) !=2 || !is_user_alive ( id ) )
return HAM_IGNORED

if ( pev ( ent, pev_impulse ) == WK )
g_HasAWP[id] = true

return HAM_IGNORED
}

public checkModel(id)
{
if ( !g_HasAWP[id] )
return PLUGIN_HANDLED

new szWeapID = read_data(2)

if ( szWeapID == CSW_AWP && g_HasAWP[id] == true )
{
set_pev(id, pev_viewmodel2, AWP_V_MODEL)
set_pev(id, pev_weaponmodel2, AWP_P_MODEL)
}
return PLUGIN_HANDLED
}

public CmdBuyAWP(id)
{
if ( !is_user_alive(id))
{
PrintChat(id, "^1[^4AWP^1] Что бы взять ^4Azimov AWP ^1вы должны быть живы!")
return PLUGIN_HANDLED
}

new money = cs_get_user_money(id)

if (money >= get_pcvar_num(cvar_cost))
{
cs_set_user_money(id, money - get_pcvar_num(cvar_cost))
Player_DropWeapons ( id, 1 )
new iWeapon = give_item(id, "weapon_awp")
set_pev(iWeapon, pev_impulse, WK)

give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
g_HasAWP[id] = true
}

else
{
PrintChat(id, "^1[^4AWP^1] Недостаточно денег.")
}
return PLUGIN_HANDLED
}

public giveawp(id)
{
Player_DropWeapons ( id, 1 )
new iWeapon = give_item(id, "weapon_awp")
set_pev(iWeapon, pev_impulse, WK)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
PrintChat(id, "^1[^4AWP^1] Вы взяли ^4Azimov AWP.")
g_HasAWP[id] = true
}

public give_awp(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)
{
console_print(id, "Give AWP Failed")
return PLUGIN_HANDLED
}
giveawp(player)
return PLUGIN_CONTINUE
}

public checkWeapon(id)
{
new plrClip, plrAmmo
new plrWeapId

plrWeapId = get_user_weapon(id, plrClip , plrAmmo)

if (plrWeapId == CSW_AWP && g_HasAWP[id])
checkModel(id)
else
return PLUGIN_CONTINUE

return PLUGIN_HANDLED
}

public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AWP && g_HasAWP[attacker] )
{
SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
}
}

public fw_CmdStart( id, uc_handle, seed )
{
if( !is_user_alive( id ) )
return PLUGIN_HANDLED

if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
{
new szClip, szAmmo
new szWeapID = get_user_weapon( id, szClip, szAmmo )

if( szWeapID == CSW_AWP && g_HasAWP[id] == true && !g_hasZoom[id] == true)
{
g_hasZoom[id] = true
cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 0 )
emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.40, 2.40, 0, 100 )
}

else if ( szWeapID == CSW_AWP && g_HasAWP[id] == true && g_hasZoom[id])
{
g_hasZoom[ id ] = false
cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )

}
}
return PLUGIN_HANDLED
}

Player_DropWeapons(const iPlayer, const iSlot)
{
new szWeaponName[32], iItem = get_pdata_cbase(iPlayer, m_rgpPlayerItems_CBasePlayer + iSlot, XO_PLAYER);

while (pev_valid(iItem) == 2)
{
pev(iItem, pev_classname, szWeaponName, charsmax(szWeaponName));
engclient_cmd(iPlayer, "drop", szWeaponName);

iItem = get_pdata_cbase(iItem, m_pNext, XO_WEAPON);
}
}

PrintChat(const iReceiver, const Msg[])
{
message_begin(MSG_ONE, 76, .player=iReceiver);
write_byte(iReceiver);
write_string(Msg);
message_end();
}



Отредактировал: tr0uble, - 26.3.2016, 18:54
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя LordDeminian
сообщение 26.3.2016, 20:00
Сообщение #3
Стаж: 11 лет

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

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