PDA

View Full Version : Ultimate WarGods furien Shop



bbb
03-03-2014, 06:32 PM
Autor:WarGods.ro
Versiune:2.0
Download:<b>You have to register to ba able to see this link</b>

Descriere:Acest plugin este utilizat pentru modul furien.Este un meniu care permite jucatorului sa cumpere anumite obiecte.

Instalare:
1.Dezarhivati arhiva cstrike.rar
2.Fisierul WarGods_shop.sma il puneti in addons/amxmodx/scripting
3.Fisierul WarGods_shop.amxx il puneti in addons/amxmodx/plugins
4.Intrati in addons/amxmodx/configs/plugins.ini si treceti WarGods_shop.amxx
5.Sunetele pe puneti in cstrike/sound/misc
6.Modelul de knife il puneti in cstrike/models

Comenzi:/shop

Tiger
03-03-2014, 08:57 PM
Plugin neoptimizat, potentiale mari de a se produce diverse buguri, fisiere header incluse de 2 ori sau incluse doar sa fie, fara a fi nevoie in plugin de ele, lipsa indentare...

Ti-ai testat macar pluginul sa vezi daca merge sau daca n-are buguri?

Am modificat eu pluginul, am fixat bugurile posibile, am sters ce nu era necesar, l-am optimizat in mare: <b>You have to register to ba able to see this link</b> [PLUGINUL ESTE NETESTAT!]

Ca tema de casa, testeaza-l.

bbb
03-03-2014, 09:44 PM
Mersi ca mai lamurit dar eu nu sunt chiar asa de bun:))

Tiger
08-03-2014, 09:55 PM
Iti pun a 2-a versiune de shop/vipshop pe care am facut-o pentru Furien, clasica, fara stil, bineinteles, ca sa mai muncesti si tu, nu doar sa dai copy-paste. Prima versiune de shop pe care am facut-o era ca a ta (cand am inceput server-ul), momentan sunt la a 3-a versiune.



#include <amxmodx>
#include <cstrike>
#include <fun>
#include <colorchat>
#include <hamsandwich>

#define ADMIN_VIP read_flags("v")

new const tagmenu[ 4 ][] =
{
"[T Shop]:",
"[VIP T Shop]:",
"[CT Shop]:",
"[VIP CT Shop]:"
};

// Cate iteme sunt in meniu ...
#define ShopItems 2
new const shop_items[ ShopItems ][ 6 ][] =
{
//Number - Item - T Shop Money - T VipShop Money - CT Shop Money - CT VipShop Money
{ "0", "Mitraliera (Machine Gun)", 10000, 5000, 1000, 5000 },
{ "1", "HE Granade", 5000, 2500, 5000, 2500 }
};

public plugin_init() {
register_plugin("[VIP] SHOP - API", "1.0", "Tiger");

// Sayhook
register_clcmd("say", "checkSay", 0);
register_clcmd("say_team", "checkSay", 0);

register_clcmd("buy", "shop", 0);
register_clcmd("shop", "shop", 0);
register_clcmd("vipshop", "checkVIP", 0);
register_clcmd("shopvip", "checkVIP", 0);
register_clcmd("meniuvip", "checkVIP", 0);

RegisterHam(Ham_Killed, "player", "fw_PlayerKilled");
}

public fw_PlayerKilled(victim, attacker, shouldgib)
{
show_menu(victim, 0, "^n", 1);

return HAM_IGNORED;
}

public checkSay(id)
{
new argv[30]

read_args(argv, charsmax(argv));
remove_quotes(argv);

trim(argv);

if (equali(argv, "/", 1))
format(argv, sizeof (argv) -1, argv[1]);

if(equali(argv,"shop", 4) || equali(argv,"buy", 3) || equali(argv,"meniushop", 9))
{
shop(id);
return PLUGIN_HANDLED;
}

if (equali(argv,"vipmenu",7) || equali(argv,"vipshop", 7) || equali(argv,"meniuvip", 8) || equali(argv,"shopvip", 7))
{
checkVIP(id);
return PLUGIN_HANDLED;
}

return PLUGIN_CONTINUE;
}

public shop(id)
{
if(is_user_alive(id))
{
new CsTeams:Team = cs_get_user_team(id);

switch(Team)
{
case CS_TEAM_T:
Menu(id, 1);

case CS_TEAM_CT:
Menu(id, 2);

default:
return -1;

}
}
return PLUGIN_HANDLED;

}

public checkVIP(id) {
if (is_user_alive(id))
{
if(get_user_flags(id) & ADMIN_VIP)
{
new CsTeams:Team = cs_get_user_team(id);

switch(Team)
{
case CS_TEAM_T:
Menu(id, 1);

case CS_TEAM_CT:
Menu(id, 2);
default:
return -1;

}
}
else
ColorChat(id, RED, "Ne pare rau, nu esti ^3VIP^1!");

}
return PLUGIN_HANDLED;
}

public Menu(id, teamnumber)
{

//Number - Item - T Shop Money - T VipShop Money - CT Shop Money - CT VipShop Money
// 0 1 2 3 4 5

new msg[120];
new shop = 2; // shop, nu vipshop
new cash = cs_get_user_money(id);
if(get_user_flags(id) & ADMIN_VIP) // e vip ?
{
if (teamnumber == 1)
{
shop = 3;
formatex(msg, 119, "T VIP - Shop:^nCash: %d$", cash);
}
else
{
shop = 5;
formatex(msg, 119, "CT VIP - Shop:^nCash: %d$", cash);
}
}
else{
if (teamnumber == 1)
{
shop = 2;
formatex(msg, 119, "T Shop:^nCash: %d$", cash);
}
else
{
shop = 4;
formatex(msg, 119, "CT Shop:^nCash: %d$", cash);
}
}

new Menu = menu_create(msg, "shop_menu");

for ( new i = 0; i < ShopItems; i++ )
{
if (shop_items[i][shop][0] == -1)
continue;

if (cash < shop_items[i][shop][0])
formatex(msg, 99, "\d%s - %d$", shop_items[i][1], shop_items[i][shop]);
else
formatex(msg, 99, "%s - %d$", shop_items[i][1], shop_items[i][shop]);

menu_additem( Menu, msg, shop_items[i][0], 0);
}

menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) ;

menu_display(id, Menu, 0) ;
}

public shop_menu(id, Menu, item)
{
if (item == MENU_EXIT || !is_user_alive(id))
{
menu_destroy(Menu);
return PLUGIN_HANDLED;
}

new shop = 2;
new tag = 0;
new CsTeams:Team = cs_get_user_team(id);

switch(Team)
{
case CS_TEAM_T:
{
if(get_user_flags(id) & ADMIN_VIP) // e vip ?
{
shop = 3;
tag = 1;
}
else
{
shop = 2;
tag = 0;
}
}
case CS_TEAM_CT:
{
if(get_user_flags(id) & ADMIN_VIP) // e vip ?
{
shop = 5;
tag = 3;
}
else
{
shop = 4;
tag = 2;
}
}
}

new iData[6];
new iAccess;
new iCallback;
new iName[64];
menu_item_getinfo(Menu, item, iAccess, iData, 5, iName, 63, iCallback);

new key = str_to_num(iData)

switch (key)
{
case 0:
give_m249(id, shop_items[key][shop][0], key, tag );
case 1:
give_he_grenade(id, shop_items[key][shop][0], key, tag );
}
return PLUGIN_HANDLED
}

stock cs_take_user_money(id, amount)
{
new money = cs_get_user_money(id)
if (money - amount < 0)
return 0

cs_set_user_money(id, clamp( money - amount, 0, 25000))
return 1
}

public give_he_grenade(id, amount, key, tag)
{
if(cs_get_user_money(id) < amount)
ColorChat(id, TEAM_COLOR, "%s Nu ai bani suficienti pentru a cumpara %s!", tagmenu[tag], shop_items[key][1]);
else
{
new clip, ammo;
get_user_ammo(id, CSW_HEGRENADE, clip, ammo);
if (ammo ==1)
{
ColorChat(id, TEAM_COLOR, "%s Ai deja %s!", tagmenu[tag], shop_items[key][1]);
return PLUGIN_HANDLED;
}
else
{
cs_take_user_money(id, amount);
give_item(id, "weapon_hegrenade");
ColorChat(id, TEAM_COLOR, "%s Ai cumparat %s!", tagmenu[tag], shop_items[key][1]);
}
}

return PLUGIN_HANDLED;
}

public give_m249(id, amount, key, tag)
{
if(cs_get_user_money(id) < amount)
ColorChat(id, TEAM_COLOR, "%s Nu ai bani suficienti pentru a cumpara %s!", tagmenu[tag], shop_items[key][1]);
else
{
if (user_has_weapon(id, CSW_M249))
ColorChat(id, TEAM_COLOR, "%s Ai deja %s!", tagmenu[tag], shop_items[key][1]);

else
{
cs_take_user_money(id, amount);
give_item(id, "weapon_m249");
cs_set_user_bpammo(id, CSW_M249, 200);

ColorChat(id, TEAM_COLOR, "%s Ai cumparat %s!", tagmenu[tag], shop_items[key][1]);

}
}

return PLUGIN_HANDLED;
}


Oricum, nu-ti recomand ca sa mergi pe shop-uri de genul, mai ales cum ai facut tu, deoarece cand itemele incep sa se adune nu mai stii cum sa le mai pui si cum sa impaci itemul cu celalalte iteme pentru a nu produce buguri. Din cauza aceasta am renuntat la acest tip de shop in favoarea unuia pe baza de meniu dinamic, shop-ul de pe Furien a devenit mult prea complex pentru a putea a avea un singur plugin.