Veteran Member
Join Date: Jun 2012
Location: Athens, Greece
|
03-28-2013
, 10:55
Re: Base Builder Shop
|
#22
|
sorryyy i forgot..., use the steps in the previous post(i mean put the models, cvars, blah blah...)
test now...., untested...
PHP Code:
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#define PLUGIN "[BB]: Shop"
#define VERSION "1.0"
#define AUTHOR "OxYgEn"
#define AK_DAMAGE 1.5
#define MG3_DAMAGE 2
#define MIN_DAMAGE 1.8
#define CROS_DAMAGE 1.3
#define DOUBLE_DAMAGE 2
new
g_iMaxClients,
g_iMsgSayText,
akgold,
mg3,
crossbow,
minigun,
damage,
speed,
menu,
prim,
sec,
pused[33],
secused[33],
ak47_used[33],
mg3_used[33],
cross_used[33],
minigun_used[33],
gdeagle_used[33],
infinity_used[33],
g_bhasSpeed[33],
g_bspeedused[33],
g_bhasDamage[33],
g_bdamageused[33]
//PUT YOUR MODELS BELOW(e.g.on view --> "models/v_ak47gold.mdl" and on player --> "models/p_ak47gold.mdl")
new VIEW_AKGOLD[] = ""
new PLAYER_AKGOLD[] = ""
new VIEW_MG3[] = ""
new PLAYER_MG3[] = ""
new VIEW_CROSSBOW[] = ""
new PLAYER_CROSSBOW[] = ""
new VIEW_MINIGUN[] = ""
new PLAYER_MINIGUN[] = ""
new VIEW_DGLGOLD[] = ""
new PLAYER_DGLGOLD[] = ""
new VIEW_INFINITY[] = ""
new PLAYER_INFINITY[] = ""
public plugin_init()
{
// EVENTS AND PLUBLIC FUNCTIONS
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
RegisterHam(Ham_TakeDamage, "player", "take_damage", 0)
register_event("CurWeapon", "change_weapon", "be", "1=1")
g_iMaxClients = get_maxplayers( );
g_iMsgSayText = get_user_msgid("SayText")
//COMMANDS
register_clcmd("say /bshop", "shop")
//DICTIONARY (DATA/LANG)
register_dictionary("BBShop.txt")
//CVARS
akgold = register_cvar("bb_shop_akgold_price", "6500")
mg3 = register_cvar("bb_shop_mg3_price", "16000")
crossbow = register_cvar("bb_shop_crossbow_price", "12000")
minigun = register_cvar("bb_shop_minigun_price", "6000")
damage = register_cvar("bb_shop_damage_price", "8000")
speed = register_cvar("bb_shop_speed_price", "5000")
}
public plugin_precache()
{
precache_model(VIEW_AKGOLD)
precache_model(PLAYER_AKGOLD)
precache_model(VIEW_MG3)
precache_model(PLAYER_MG3)
precache_model(VIEW_CROSSBOW)
precache_model(PLAYER_CROSSBOW)
precache_model(VIEW_MINIGUN)
precache_model(PLAYER_MINIGUN)
precache_model(VIEW_DGLGOLD)
precache_model(PLAYER_DGLGOLD)
precache_model(VIEW_INFINITY)
precache_model(PLAYER_INFINITY)
}
public shop(id)
{
if(cs_get_user_team(id) == CS_TEAM_CT && is_user_alive(id))
{
menu = menu_create("BaseBuilder Shop ^nBy OxYgEn","shop_handler")
new doubledamage[60];
new doublespeed[60];
formatex(doubledamage, sizeof(doubledamage) - 1, "%L",LANG_SERVER,"2XDAMAGE", get_pcvar_num(damage));
formatex(doublespeed, sizeof(doublespeed) - 1, "%L",LANG_SERVER,"2XSPEED", get_pcvar_num(speed));
new doubledamaged[60];
new doublespeedd[60];
formatex(doubledamaged, sizeof(doubledamage) - 1, "\d%L",LANG_SERVER,"2XDAMAGE", get_pcvar_num(damage));
formatex(doublespeedd, sizeof(doublespeed) - 1, "\d%L",LANG_SERVER,"2XSPEED", get_pcvar_num(speed));
menu_additem(menu, "Select Your Primary Weapon", "1")
menu_additem(menu, "Select Your Sceondary Weapon", "2")
if(cs_get_user_money(id) < get_pcvar_num(damage)) menu_additem(menu, doubledamaged, "3")
else if(g_bdamageused[id]) menu_additem(menu, doubledamaged, "3")
else menu_additem(menu, doubledamage, "3")
if(cs_get_user_money(id) < get_pcvar_num(speed)) menu_additem(menu, doublespeedd, "4")
else if(g_bspeedused[id]) menu_additem(menu, doublespeedd, "4")
else menu_additem(menu, doublespeed, "4")
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0);
}
else
{
ChatColor(id, "%L", LANG_PLAYER, "NOT_ALIVE/CT")
}
}
public primary(id)
{
if(pused[id])
{
ChatColor(id, "%L", LANG_PLAYER, "POWER_USED")
}
else
{
prim = menu_create("Select your Primary Weapon","prim_handler")
new goldak[60];
new mg13[60];
new mini[60];
new cross1[60];
formatex(goldak, sizeof(goldak) - 1, "%L",LANG_SERVER,"GOLDEN_AK47", get_pcvar_num(akgold));
formatex(mg13, sizeof(mg13) - 1, "%L",LANG_SERVER,"MG3", get_pcvar_num(mg3));
formatex(mini, sizeof(mini) - 1, "%L",LANG_SERVER,"MINIGUN", get_pcvar_num(minigun));
formatex(cross1, sizeof(cross1) - 1, "%L",LANG_SERVER,"CROSSBOW", get_pcvar_num(crossbow));
new goldak1[60];
new mg131[60];
new mini1[60];
new cross11[60];
formatex(goldak1, sizeof(goldak) - 1, "\d%L",LANG_SERVER,"GOLDEN_AK47", get_pcvar_num(akgold));
formatex(mg131, sizeof(mg13) - 1, "\d%L",LANG_SERVER,"MG3", get_pcvar_num(mg3));
formatex(mini1, sizeof(mini) - 1, "\d%L",LANG_SERVER,"MINIGUN", get_pcvar_num(minigun));
formatex(cross11, sizeof(cross1) - 1, "\d%L",LANG_SERVER,"CROSSBOW", get_pcvar_num(crossbow));
if(cs_get_user_money(id) < get_pcvar_num(akgold)) menu_additem(prim, goldak1, "1")
else menu_additem(prim, goldak, "1")
if(cs_get_user_money(id) < get_pcvar_num(mg3)) menu_additem(prim, mg131, "2")
else menu_additem(prim, mg13, "2")
if(cs_get_user_money(id) < get_pcvar_num(crossbow)) menu_additem(prim, cross11, "3")
else menu_additem(prim, cross1, "3")
if(cs_get_user_money(id) < get_pcvar_num(minigun)) menu_additem(prim, mini1, "4")
else menu_additem(prim, mini, "4")
menu_setprop(prim, MPROP_EXIT, MEXIT_ALL)
menu_display(id, prim, 0);
}
}
public secondary(id)
{
if(secused[id])
{
ChatColor(id, "%L", LANG_PLAYER, "POWER_USED")
}
else
{
sec = menu_create("Select your Secondary Weapon","secon_handler")
menu_additem(sec, "Golden Deagle", "1")
menu_additem(sec, "Infinity Duels", "2")
menu_setprop(sec, MPROP_EXIT, MEXIT_ALL)
menu_display(id, sec, 0);
}
}
public shop_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
primary(id)
}
case 2:
{
secondary(id)
}
case 3:
{
if(cs_get_user_money(id) < get_pcvar_num(damage))
{
ChatColor(id, "%L", LANG_PLAYER, "NOT_ENOUGH_MONEY")
}
else if(g_bdamageused[id])
{
ChatColor(id, "%L", LANG_PLAYER, "POWER_USED")
}
else
{
g_bhasDamage[id] = true
g_bdamageused[id] = true
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(damage))
}
}
case 4:
{
if(cs_get_user_money(id) < get_pcvar_num(speed))
{
ChatColor(id, "%L", LANG_PLAYER, "NOT_ENOUGH_MONEY")
}
else if(g_bspeedused[id])
{
ChatColor(id, "%L", LANG_PLAYER, "POWER_USED")
}
else
{
g_bspeedused[id] = true
g_bhasSpeed[id] = true
set_user_maxspeed(id, 500.0)
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(speed))
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public prim_handler(id, prim, item)
{
if( item == MENU_EXIT )
{
menu_destroy(prim);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(prim, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
if(cs_get_user_money(id) < get_pcvar_num(akgold))
{
ChatColor(id, "%L", LANG_PLAYER, "NOT_ENOUGH_MONEY")
}
else
{
ak47_used[id] = true;
strip_user_weapons(id)
give_item( id, "weapon_ak47" );
cs_set_user_bpammo( id, CSW_AK47, 90 );
pused[id] = true;
ChatColor(id, "%L", LANG_PLAYER, "BUY_AKGOLD")
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(akgold))
}
}
case 2:
{
if(cs_get_user_money(id) < get_pcvar_num(mg3))
{
ChatColor(id, "%L", LANG_PLAYER, "NOT_ENOUGH_MONEY")
}
else
{
mg3_used[id] = true;
pused[id] = true;
strip_user_weapons(id)
give_item( id, "weapon_m3" );
cs_set_user_bpammo( id, CSW_M3, 90 );
ChatColor(id, "%L", LANG_PLAYER, "BUY_MG3")
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(mg3))
}
}
case 3:
{
if(cs_get_user_money(id) < get_pcvar_num(crossbow))
{
ChatColor(id, "%L", LANG_PLAYER, "NOT_ENOUGH_MONEY")
}
else
{
cross_used[id] = true;
pused[id] = true;
strip_user_weapons(id)
give_item(id, "weapon_m4a1");
cs_set_user_bpammo(id, CSW_M4A1, 90);
ChatColor(id, "%L", LANG_PLAYER, "BUY_CROSS")
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(crossbow))
}
}
case 4:
{
if(cs_get_user_money(id) < get_pcvar_num(minigun))
{
ChatColor(id, "%L", LANG_PLAYER, "NOT_ENOUGH_MONEY")
}
else
{
minigun_used[id] = true;
pused[id] = true;
strip_user_weapons(id)
give_item(id, "weapon_m249");
cs_set_user_bpammo(id, CSW_M249, 200);
ChatColor(id, "%L", LANG_PLAYER, "BUY_MINIGUN")
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(minigun))
}
}
}
menu_destroy(prim)
return PLUGIN_HANDLED;
}
public secon_handler(id, sec, item)
{
if( item == MENU_EXIT )
{
menu_destroy(sec);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(sec, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
gdeagle_used[id] = true;
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
}
case 2:
{
infinity_used[id] = true;
give_item(id, "weapon_elite")
cs_set_user_bpammo(id, CSW_ELITE ,90)
}
}
secused[id] = true
menu_destroy(sec)
return PLUGIN_HANDLED;
}
public player_spawn(id)
{
if(is_user_connected(id))
{
strip_user_weapons(id)
give_item(id, "weapon_knife")
pused[id] = false
secused[id] = false
ak47_used[id] = false
mg3_used[id] = false
cross_used[id] = false
minigun_used[id] = false
gdeagle_used[id] = false
infinity_used[id] = false
g_bhasSpeed[id] = false
g_bspeedused[id] = false
g_bhasDamage[id] = false
g_bdamageused[id] = false
}
}
public change_weapon(id)
{
new weaponID = read_data(2)
switch (get_user_team(id))
{
case 2:
{
if(g_bhasSpeed[id])
{
set_user_maxspeed(id, 500.0)
}
if(ak47_used[id] && weaponID == CSW_AK47)
{
set_pev(id, pev_viewmodel2, VIEW_AKGOLD);
set_pev(id, pev_weaponmodel2, PLAYER_AKGOLD);
}
if(mg3_used[id] && weaponID == CSW_M3)
{
set_pev(id, pev_viewmodel2, VIEW_MG3);
set_pev(id, pev_weaponmodel2, PLAYER_MG3);
}
if(cross_used[id] && weaponID == CSW_AWP)
{
set_pev(id, pev_viewmodel2, VIEW_CROSSBOW);
set_pev(id, pev_weaponmodel2, PLAYER_CROSSBOW);
}
if(minigun_used[id] && weaponID == CSW_M249)
{
set_pev(id, pev_viewmodel2, VIEW_MINIGUN);
set_pev(id, pev_weaponmodel2, PLAYER_MINIGUN);
}
if(gdeagle_used[id] && weaponID == CSW_DEAGLE)
{
set_pev(id, pev_viewmodel2, VIEW_DGLGOLD);
set_pev(id, pev_weaponmodel2, PLAYER_DGLGOLD);
}
if(infinity_used[id] && weaponID == CSW_ELITE)
{
set_pev(id, pev_viewmodel2, VIEW_INFINITY);
set_pev(id, pev_weaponmodel2, PLAYER_INFINITY);
}
}
}
return PLUGIN_CONTINUE
}
public take_damage(pevVictim, pevInflictor, pevAttacker, Float:flDamage, iDmgBits)
{
if( !( 1 <= pevAttacker <= g_iMaxClients) )
{
return HAM_HANDLED;
}
if( !is_user_alive( pevAttacker ) )
{
return HAM_HANDLED;
}
if(cs_get_user_team(pevAttacker) == CS_TEAM_CT)
{
if(ak47_used[pevAttacker])
{
SetHamParamFloat( 4 , flDamage * AK_DAMAGE)
}
if(mg3_used[pevAttacker])
{
SetHamParamFloat( 4 , flDamage * MG3_DAMAGE)
}
if(cross_used[pevAttacker])
{
SetHamParamFloat( 4 , flDamage * CROS_DAMAGE)
}
if(minigun_used[pevAttacker])
{
SetHamParamFloat( 4 , flDamage * MIN_DAMAGE)
}
if(g_bhasDamage[pevAttacker])
{
SetHamParamFloat( 4 , flDamage * DOUBLE_DAMAGE)
}
}
return HAM_IGNORED;
}
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") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
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, g_iMsgSayText, _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
__________________
Quote:
Originally Posted by quark
You're a genius
|
Stopped any pawn work cause of university for computer science
|
|