CSHOP Extra Item: Golden AK47
-
<GOSH>
Извън линия - Потребител
- Мнения: 66
- Регистриран на: 11 Окт 2016, 00:19
- Се отблагодари: 1 път
- Получена благодарност: 2 пъти
- Обратна връзка:
Re: CSHOP Extra Item: Golden AK47
@OciXCrom, мога ли да добавя този "Golden AK47" плъгин?
Special thanks to OciXCrom™ & NiTriX
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: CSHOP Extra Item: Golden AK47
<GOSH> написа:@OciXCrom, мога ли да добавя този "Golden AK47" плъгин?
sm_golden_ak47.sma
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <customshop>
#define is_valid_player(%1) (1 <= %1 <= 32)
new AK_V_MODEL[] = "models/csdm_weapon/v_golden_ak47.mdl";
new AK_P_MODEL[] = "models/csdm_weapon/p_golden_ak47.mdl";
new iItemID;
new bool:BuyAK[33];
new Float:fDamage;
new const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
public plugin_init()
{
register_plugin("[SHOP] Golden AK-47", "1.0", "Realution");
register_clcmd("drop", "drop_item");
register_event("WeapPickup", "checkModel", "b", "1=19");
register_event("CurWeapon", "checkWeapon", "be", "1=1");
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamagePre", false);
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", true);
fDamage = cshop_get_float(iItemID, "Damage");
}
public cshop_item_selected(id, itemid)
{
if(itemid == iItemID)
{
give_item_ex(id, "weapon_ak47", 90, 1);
BuyAK[id] = true;
}
}
public fwHamPlayerSpawnPost(id)
BuyAK[id] = false;
public drop_item(id)
{
if(is_user_alive(id) && get_user_weapon(id) == CSW_AK47 && BuyAK[id]) BuyAK[id] = false;
return PLUGIN_CONTINUE;
}
public plugin_precache()
{
precache_model(AK_V_MODEL);
precache_model(AK_P_MODEL);
iItemID = cshop_register_item("goldenak", "Золотой AK-47", 4500, 1);
cshop_set_float(iItemID, "Damage", 0.5)
}
public checkModel(id)
{
if(read_data(2) == CSW_AK47)
{
if(!BuyAK[id]) return;
set_pev(id, pev_viewmodel2, AK_V_MODEL);
set_pev(id, pev_weaponmodel2, AK_P_MODEL);
}
}
public checkWeapon(id)
{
static weapon; weapon = read_data(2);
if(weapon == CSW_AK47 && BuyAK[id])
checkModel(id);
}
public fw_TakeDamagePre(victim, inflictor, attacker, Float:damage)
{
if(is_valid_player(attacker) && get_user_weapon(attacker) == CSW_AK47 && !IsGrenade(inflictor) && BuyAK[attacker])
SetHamParamFloat(4, damage * fDamage);
}
stock give_item_ex(id, currWeaponName[], ammoAmount, dropFlag = 0)
{
static weaponsList[32], weaponName[32], weaponsNum, currWeaponID;
currWeaponID = get_weaponid(currWeaponName);
if(dropFlag)
{
weaponsNum = 0;
get_user_weapons(id, weaponsList, weaponsNum);
for (new i; i < weaponsNum; i++)
{
if(((1 << currWeaponID) & PRIMARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & PRIMARY_WEAPONS_BITSUM) | ((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList[i]) & SECONDARY_WEAPONS_BITSUM))
{
get_weaponname(weaponsList[i], weaponName, charsmax(weaponName));
engclient_cmd(id, "drop", weaponName);
}
}
}
fm_give_item(id, currWeaponName);
fm_set_user_bpammo(id, currWeaponID, ammoAmount);
return 1;
}
stock fm_give_item(id, const item[])
{
static ent; ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item));
if(!pev_valid(ent)) return;
static Float:originF[3];
pev(id, pev_origin, originF);
set_pev(ent, pev_origin, originF);
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, ent);
static save; save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, id);
if(pev(ent, pev_solid) != save)
return;
engfunc(EngFunc_RemoveEntity, ent);
}
stock fm_set_user_bpammo(id, weaponid, amnt)
{
static offset;
switch(weaponid)
{
case CSW_AWP: offset = 377;
case CSW_SCOUT,CSW_AK47,CSW_G3SG1: offset = 378;
case CSW_M249: offset = 379;
case CSW_FAMAS,CSW_M4A1,CSW_AUG,CSW_SG550,CSW_GALI,CSW_SG552: offset = 380;
case CSW_M3,CSW_XM1014: offset = 381;
case CSW_USP,CSW_UMP45,CSW_MAC10: offset = 382;
case CSW_FIVESEVEN,CSW_P90: offset = 383;
case CSW_DEAGLE: offset = 384;
case CSW_P228: offset = 385;
case CSW_GLOCK18,CSW_MP5NAVY,CSW_TMP,CSW_ELITE: offset = 386;
case CSW_FLASHBANG: offset = 387;
case CSW_HEGRENADE: offset = 388;
case CSW_SMOKEGRENADE: offset = 389;
default: return 0;
}
set_pdata_int(id, offset, amnt, 5);
return 1;
}
stock bool:IsGrenade(Inflictor)
{
static ClassName[8]; pev(Inflictor, pev_classname, ClassName, charsmax(ClassName));
return equal(ClassName, "grenade") ? true : false;
}
-
deadlylord
Извън линия - Потребител
- Мнения: 572
- Регистриран на: 04 Апр 2017, 16:35
- Местоположение: Бургас, България
- Получена благодарност: 2 пъти
- Обратна връзка:
Re: CSHOP Extra Item: Golden AK47
А как може да се квара този ?
Код за потвърждение: Избери целия код
/* AMX Mod script
*
* (c) 2009, AlejandroSk
* This file is provided as is (no warranties).
*
*/
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <amxmisc>
#define is_valid_player(%1) (1 <= %1 <= 32)
new AK_V_MODEL[64] = "models/v_golden_ak47.mdl"
new AK_P_MODEL[64] = "models/p_golden_ak47.mdl"
/* Pcvars */
new cvar_dmgmultiplier, cvar_goldbullets, cvar_custommodel, cvar_uclip, cvar_cost
new bool:g_HasAk[33]
new g_hasZoom[ 33 ]
new bullets[ 33 ]
// Sprite
new m_spriteTexture
const Wep_ak47 = ((1<<CSW_AK47))
public plugin_init()
{
/* CVARS */
cvar_dmgmultiplier = register_cvar("goldenak_dmg_multiplier", "1.25")
cvar_custommodel = register_cvar("goldenak_custom_model", "1")
cvar_goldbullets = register_cvar("goldenak_gold_bullets", "1")
cvar_uclip = register_cvar("goldenak_unlimited_clip", "1")
cvar_cost = register_cvar("goldenak_cost", "0")
// Register The Buy Cmd
register_clcmd("say /goldenak", "CmdBuyAk")
register_clcmd("say_team /goldenak", "CmdBuyAk")
register_concmd("amx_goldenak", "CmdGiveAk", ADMIN_BAN, "<name>")
// Register The Plugin
register_plugin("Golden Ak 47", "1.0", "AlejandroSk")
// 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")
register_forward( FM_CmdStart, "fw_CmdStart" )
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
}
public client_connect(id)
{
g_HasAk[id] = false
}
public client_disconnect(id)
{
g_HasAk[id] = false
}
public Death()
{
g_HasAk[read_data(2)] = false
}
public fwHamPlayerSpawnPost(id)
{
g_HasAk[id] = false
}
public plugin_precache()
{
precache_model(AK_V_MODEL)
precache_model(AK_P_MODEL)
m_spriteTexture = precache_model("sprites/dot.spr")
precache_sound("weapons/zoom.wav")
}
public checkModel(id)
{
if ( !g_HasAk[id] )
return PLUGIN_HANDLED
new szWeapID = read_data(2)
if ( szWeapID == CSW_AK47 && g_HasAk[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_HasAk[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_HasAk[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_AK47 && g_HasAk[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.20, 2.40, 0, 100 )
}
else if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && g_hasZoom[id])
{
g_hasZoom[ id ] = false
cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
}
}
return PLUGIN_HANDLED
}
public make_tracer(id)
{
if (get_pcvar_num(cvar_goldbullets))
{
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_HasAk[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(10) // width
write_byte(0) // noise
write_byte( 255 ) // r, g, b
write_byte( 215 ) // r, g, b
write_byte( 0 ) // r, g, b
write_byte(200) // brightness
write_byte(150) // speed
message_end()
}
bullets[id] = clip
}
}
public CmdBuyAk(id)
{
if ( !is_user_alive(id) )
{
client_print(id,print_chat, "[AMXX] To buy golden Ak 47 You need to be alive!")
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))
give_item(id, "weapon_ak47")
g_HasAk[id] = true
}
else
{
client_print(id, print_chat, "[AMXX] You dont hav enough money to buy Golden Ak 47. Cost $%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_HasAk[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_ak47 & (1<<weapons[i]))
{
static wname[32]
get_weaponname(weapons[i], wname, sizeof wname - 1)
engclient_cmd(id, "drop", wname)
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par }
*/
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: CSHOP Extra Item: Golden AK47
deadlylord написа:А как може да се квара този ?
Код за потвърждение: Избери целия код
/* AMX Mod script
*
* (c) 2009, AlejandroSk
* This file is provided as is (no warranties).
*
*/
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <amxmisc>
#include <customshop>
#define is_valid_player(%1) (1 <= %1 <= 32)
new AK_V_MODEL[64] = "models/v_golden_ak47.mdl"
new AK_P_MODEL[64] = "models/p_golden_ak47.mdl"
/* Pcvars */
new Float:cvar_dmgmultiplier, cvar_goldbullets, cvar_custommodel, cvar_uclip, itemid
new bool:g_HasAk[33]
new g_hasZoom[ 33 ]
new bullets[ 33 ]
// Sprite
new m_spriteTexture
const Wep_ak47 = ((1<<CSW_AK47))
public plugin_init()
{
/* CVARS */
cvar_dmgmultiplier = cshop_get_float(itemid, "Multiplier")
cvar_custommodel = cshop_get_int(itemid, "Model")
cvar_goldbullets = cshop_get_int(itemid, "Bullets")
cvar_uclip = cshop_get_int(itemid, "Unlimited Clip")
// Register The Plugin
register_plugin("Golden Ak 47", "1.0", "AlejandroSk")
// 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")
register_forward( FM_CmdStart, "fw_CmdStart" )
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
}
public client_connect(id)
{
g_HasAk[id] = false
}
public client_disconnect(id)
{
g_HasAk[id] = false
}
public Death()
{
g_HasAk[read_data(2)] = false
}
public fwHamPlayerSpawnPost(id)
{
g_HasAk[id] = false
}
public plugin_precache()
{
itemid = cshop_register_item("goldenak", "Golden AK47", 4500, 1)
cshop_set_float(itemid, "Multiplier", 1.25)
cshop_set_int(itemid, "Model", 1)
cshop_set_int(itemid, "Bullets", 1)
cshop_set_int(itemid, "Unlimited Clip", 1)
precache_model(AK_V_MODEL)
precache_model(AK_P_MODEL)
m_spriteTexture = precache_model("sprites/dot.spr")
precache_sound("weapons/zoom.wav")
}
public cshop_item_selected(id, item)
{
if(item == itemid)
{
give_item(id, "weapon_ak47")
g_HasAk[id] = true
}
}
public cshop_item_removed(id, item)
{
if(item == itemid)
{
g_HasAk[id] = false
}
}
public checkModel(id)
{
if ( !g_HasAk[id] )
return PLUGIN_HANDLED
new szWeapID = read_data(2)
if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && 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_HasAk[id])
{
checkModel(id)
}
else
{
return PLUGIN_CONTINUE
}
if (plrClip == 0 && 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_HasAk[attacker] )
{
SetHamParamFloat(4, damage * 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_AK47 && g_HasAk[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.20, 2.40, 0, 100 )
}
else if ( szWeapID == CSW_AK47 && g_HasAk[id] == true && g_hasZoom[id])
{
g_hasZoom[ id ] = false
cs_set_user_zoom( id, CS_RESET_ZOOM, 0 )
}
}
return PLUGIN_HANDLED
}
public make_tracer(id)
{
if (cvar_goldbullets)
{
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_HasAk[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(10) // width
write_byte(0) // noise
write_byte( 255 ) // r, g, b
write_byte( 215 ) // r, g, b
write_byte( 0 ) // r, g, b
write_byte(200) // brightness
write_byte(150) // speed
message_end()
}
bullets[id] = clip
}
}
stock drop_prim(id)
{
new weapons[32], num
get_user_weapons(id, weapons, num)
for (new i = 0; i < num; i++) {
if (Wep_ak47 & (1<<weapons[i]))
{
static wname[32]
get_weaponname(weapons[i], wname, sizeof wname - 1)
engclient_cmd(id, "drop", wname)
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par }
*/
-
deadlylord
Извън линия - Потребител
- Мнения: 572
- Регистриран на: 04 Апр 2017, 16:35
- Местоположение: Бургас, България
- Получена благодарност: 2 пъти
- Обратна връзка:
-
deadlylord
Извън линия - Потребител
- Мнения: 572
- Регистриран на: 04 Апр 2017, 16:35
- Местоположение: Бургас, България
- Получена благодарност: 2 пъти
- Обратна връзка:
CSHOP Extra Item: Golden AK47
Хаха, сега пък да се оправили и си работят точно както трябва ... следват си патроните. ОБАЧЕ, когато имам друго оръжие и си купя този "златен калашник" имам безкраен пълнител, тъй като не получавам http://i.imgur.com/sSvJruv.png или иначе казано 30/200 патрона.
Както и да е, опитах се да редактирам твоя плъгин и да му добавя /goldenak, обаче някой ще трябва да ми каже как да направя командата да си "говори" с главния плъгин и да има ограничението от 1, без значение как се взима ... с командата или от /shop
Също така по самия плъгин трябва да се оправят лазерите и да следват куршумите на човека, че в момента са доста зле и само пречат, тъй като не можеш да видиш реално къде целиш...
Като цяло имам 2 предложения:
1) Да се добави командата /goldenak и IF define за zoom, тъй като хората са свикнали с тях от другите версии на плъгина!
Както и да е, опитах се да редактирам твоя плъгин и да му добавя /goldenak, обаче някой ще трябва да ми каже как да направя командата да си "говори" с главния плъгин и да има ограничението от 1, без значение как се взима ... с командата или от /shop
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cstrike>
#include <customshop>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#define PLUGIN_VERSION "4.x"
additem ITEM_GOLDENAK
#define GOLDENAK_ID "goldenak"
#define GOLDENAK_NAME "Golden AK47"
#define GOLDENAK_PRICE 16000
#define GOLDENAK_LIMIT 1
#define GOLDENAK_SOUND "weapons/gauss2.wav"
#define GOLDENAK_VMODEL "models/custom_shop/v_goldenak.mdl"
#define GOLDENAK_PMODEL "models/custom_shop/p_goldenak.mdl"
#define GOLDENAK_WEAPON_STR "weapon_ak47"
#define GOLDENAK_WEAPON_CSW CSW_AK47
#define GOLDENAK_DAMAGE 1.25
#define GOLDENAK_AMMO 500
new bool:g_blGoldenAK[33]
// Comment this line to disable the bullets.
//#define USE_BULLETS
#if defined USE_BULLETS
// You can add a shoot sound in this line, after you remove the comment.
//#define BULLET_SOUND "weapons/ak47-1.wav"
#define BULLET_MODEL "sprites/dot.spr"
#define BULLET_STARTFRAME 1
#define BULLET_FRAMERATE 5
#define BULLET_LIFE 2
#define BULLET_WIDTH 10
#define BULLET_NOISE 0
#define BULLET_COLOR_RED 255
#define BULLET_COLOR_GREEN 215
#define BULLET_COLOR_BLUE 0
#define BULLET_BRIGHTNESS 200
#define BULLET_SPEED 150
new g_iGoldenBullet
#endif
#define DEFAULT_VMODEL "models/v_ak47.mdl"
#define DEFAULT_PMODEL "models/p_ak47.mdl"
public plugin_init()
{
register_plugin("Custom Shop: Golden AK47", PLUGIN_VERSION, "OciXCrom")
RegisterHam(Ham_TakeDamage, "player", "eventTakeDamage")
register_event("CurWeapon", "goldenModel", "be", "1=1")
register_clcmd("say /goldenak", "CmdBuyAk")
register_clcmd("say_team /goldenak", "CmdBuyAk")
#if defined USE_BULLETS
RegisterHam(Ham_Weapon_PrimaryAttack, GOLDENAK_WEAPON_STR, "eventPrimaryAttack", 1)
#endif
}
public plugin_precache()
{
ITEM_GOLDENAK = cshopRegisterItem(GOLDENAK_ID, GOLDENAK_NAME, GOLDENAK_PRICE, GOLDENAK_LIMIT)
precache_model(GOLDENAK_VMODEL)
precache_model(GOLDENAK_PMODEL)
#if defined USE_BULLETS
g_iGoldenBullet = precache_model(BULLET_MODEL)
#endif
#if defined BULLET_SOUND
precache_sound(BULLET_SOUND)
#endif
}
public cshopItemBought(id, iItem)
if(iItem == ITEM_GOLDENAK) { g_blGoldenAK[id] = true; give_item(id, GOLDENAK_WEAPON_STR); cs_set_user_bpammo(id, GOLDENAK_WEAPON_CSW, GOLDENAK_AMMO); goldenModel(id); }
public cshopItemRemoved(id, iItem)
if(iItem == ITEM_GOLDENAK) { g_blGoldenAK[id] = false; set_default_model(id); }
public eventTakeDamage(iVictim, iInflictor, iAttacker, Float:flDamage, iDamageBits)
if(is_user_alive(iAttacker) && iAttacker != iVictim)
if(g_blGoldenAK[iAttacker] && get_user_weapon(iAttacker) == GOLDENAK_WEAPON_CSW && iAttacker == iInflictor)
SetHamParamFloat(4, flDamage * GOLDENAK_DAMAGE)
#if defined USE_BULLETS
public eventPrimaryAttack(iWeapon)
{
new id = pev(iWeapon, pev_owner)
if(!g_blGoldenAK[id])
return
new iClip, iAmmo
new iWeapon = get_user_weapon(id, iClip, iAmmo)
if(!iClip || iWeapon != GOLDENAK_WEAPON_CSW)
return
#if defined BULLET_SOUND
player_emitsound(id, BULLET_SOUND)
#endif
new iVec1[3], iVec2[3]
get_user_origin(id, iVec1, 1)
get_user_origin(id, iVec2, 3)
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_BEAMPOINTS)
write_coord(iVec1[0])
write_coord(iVec1[1])
write_coord(iVec1[2])
write_coord(iVec2[0])
write_coord(iVec2[1])
write_coord(iVec2[2])
write_short(g_iGoldenBullet)
write_byte(BULLET_STARTFRAME)
write_byte(BULLET_FRAMERATE)
write_byte(BULLET_LIFE)
write_byte(BULLET_WIDTH)
write_byte(BULLET_NOISE)
write_byte(BULLET_COLOR_RED)
write_byte(BULLET_COLOR_GREEN)
write_byte(BULLET_COLOR_BLUE)
write_byte(BULLET_BRIGHTNESS)
write_byte(BULLET_SPEED)
message_end()
}
#endif
public CmdBuyAk(id)
{
if ( !is_user_alive(id) )
{
client_print(id,print_chat, "[AMXX] To buy golden Ak 47 You need to be alive!")
return PLUGIN_HANDLED
}
new money = cs_get_user_money(id)
if (money >= 0)
{
{ g_blGoldenAK[id] = true; remove_weapons(id, 1); give_item(id, GOLDENAK_WEAPON_STR); cs_set_user_bpammo(id, GOLDENAK_WEAPON_CSW, GOLDENAK_AMMO); goldenModel(id); }
}
else
{
client_print(id, print_chat, "[AMXX] You dont have enough money to buy Golden Ak 47.")
}
return PLUGIN_HANDLED
}
public goldenModel(id)
{
if(get_user_weapon(id) == GOLDENAK_WEAPON_CSW && g_blGoldenAK[id])
{
set_pev(id, pev_viewmodel2, GOLDENAK_VMODEL)
set_pev(id, pev_weaponmodel2, GOLDENAK_PMODEL)
}
}
set_default_model(id)
{
if(get_user_weapon(id) == GOLDENAK_WEAPON_CSW)
{
set_pev(id, pev_viewmodel2, DEFAULT_VMODEL)
set_pev(id, pev_weaponmodel2, DEFAULT_PMODEL)
}
}
#if defined BULLET_SOUND
player_emitsound(id, szSound[])
emit_sound(id, CHAN_WEAPON, szSound, 1.0, ATTN_NORM, 0, PITCH_HIGH)
#endif
Като цяло имам 2 предложения:
1) Да се добави командата /goldenak и IF define за zoom, тъй като хората са свикнали с тях от другите версии на плъгина!
Последно промяна от deadlylord на 30 Авг 2017, 16:54, променено общо 4 пъти.
-
deadlylord
Извън линия - Потребител
- Мнения: 572
- Регистриран на: 04 Апр 2017, 16:35
- Местоположение: Бургас, България
- Получена благодарност: 2 пъти
- Обратна връзка:
CSHOP Extra Item: Golden AK47
изтриване
Последно промяна от deadlylord на 30 Авг 2017, 16:49, променено общо 1 път.
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: CSHOP Extra Item: Golden AK47
Нищо не разбрах. Защо си добавял команда ако искаш да работи с /shop, както е направено?!... Както и да е, в самата команда можеш да ползваш cshop_get_limit(id, ITEM_GOLDENAK) за да разбереш какъв е лимитът в момента.
-
deadlylord
Извън линия - Потребител
- Мнения: 572
- Регистриран на: 04 Апр 2017, 16:35
- Местоположение: Бургас, България
- Получена благодарност: 2 пъти
- Обратна връзка:
CSHOP Extra Item: Golden AK47
Намерих проблем с плъгина, функцията за звук не работи, Crom-че, би я оправил ?
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 1 Отговори
- 2046 Преглеждания
-
Последно мнение от Marinovv
-
- 1 Отговори
- 2176 Преглеждания
-
Последно мнение от OciXCrom
-
- 0 Отговори
- 2756 Преглеждания
-
Последно мнение от OciXCrom
-
- 0 Отговори
- 2150 Преглеждания
-
Последно мнение от Marinovv
-
- 2 Отговори
- 1704 Преглеждания
-
Последно мнение от Marinovv
-
- 1 Отговори
- 1494 Преглеждания
-
Последно мнение от Huehue
-
- 1 Отговори
- 435 Преглеждания
-
Последно мнение от illusion
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 4 госта