/* Plugin generated by AMXX-Studio */
#include
#include
#include
#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "Play"
new bool:dostal_przedmiot[33];
new oddaj_id[33];
new bool:dostal_przedmiots[33];
new oddaj_ids[33];
native cod_set_perk_durability(id, set); // Ustawia wytrzymalosc Perku
native cod_get_perk_durability(id); // Pobiera Wytrzymalosc Perku
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /menu","mymenu");
register_clcmd("say /oddaj", "OddajPerk");
register_clcmd("OddajPerk", "OddajPerk");
register_clcmd("say /daj", "OddajPerk");
register_clcmd("say /wymien", "ZamienPerks");
register_clcmd("say /zamien", "ZamienPerks");
register_event("ResetHUD", "cod_perk_changed", "abe");
}
public mymenu(id){
new menu = menu_create("Co Chcesz Wybrac ?","cbMyMenu");
menu_additem(menu, "\wDaj Perk");//item=0
menu_additem(menu, "\yWymien Perk");//item=1
menu_display(id, menu);
}
public cbMyMenu(id, menu, item){
switch(item){
case 0:{
OddajPerk(id)
}
case 1:{
ZamienPerk(id)
}
}
}
public OddajPerk(id)
{
new menu = menu_create("Przekazywanie Perku", "OddajPerk_Handle");
new cb = menu_makecallback("OddajPerk_Callback");
for(new i=0, n=0; i<=32; i++)
{
if(!is_user_connected(i))
continue;
oddaj_id[n++] = i;
new nazwa_gracza[64];
get_user_name(i, nazwa_gracza, 63)
menu_additem(menu, nazwa_gracza, "0", 0, cb);
}
menu_setprop(menu,MPROP_NUMBER_COLOR,"\y");
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_display(id, menu);
}
public cod_perk_changed(id)
{
dostal_przedmiot[id] = false;
dostal_przedmiots[id] = false;
}
public OddajPerk_Handle(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
if(!is_user_connected(oddaj_id[item]))
{
client_print(id, print_chat, "Nie odnaleziono zadanego gracza.");
return PLUGIN_CONTINUE;
}
if(dostal_przedmiot[id])
{
client_print(id, print_chat, "Musisz poczekac 1 runde.");
return PLUGIN_CONTINUE;
}
new wartosc_perku_dajacego;
new perk_dajacego = cod_get_user_perk(id, wartosc_perku_dajacego);
new wytrzymalosc_dajacego = cod_get_perk_durability(id);
if(!perk_dajacego)
{
client_print(id, print_chat, "Nie masz zadnego perku.");
return PLUGIN_CONTINUE;
}
new nazwa_dajacego[64];
new nazwa_otrzymujacego[64];
get_user_name(id, nazwa_dajacego, 63)
get_user_name(oddaj_id[item], nazwa_otrzymujacego, 63)
dostal_przedmiot[oddaj_id[item]] = true;
cod_set_user_perk(oddaj_id[item], perk_dajacego, wartosc_perku_dajacego, 0);
cod_set_perk_durability(oddaj_id[item], wytrzymalosc_dajacego);
client_print(id, print_chat, "Przekazales perk graczowi %s.", nazwa_otrzymujacego);
client_print(oddaj_id[item], print_chat, "Dostales perk od gracza %s.", nazwa_dajacego);
cod_set_user_perk(id, 0);
return PLUGIN_CONTINUE;
}
public OddajPerk_Callback(id, menu, item)
{
if(oddaj_id[item] == id || !cod_get_user_class(oddaj_id[item]) || cod_get_user_perk(oddaj_id[item]))
return ITEM_DISABLED;
return ITEM_ENABLED;
}
/*===================================*/
public ZamienPerk(id)
{
new menu = menu_create("Zamien sie perkiem", "ZamienPerk_Handle");
new cb = menu_makecallback("OddajPerks_Callback");
for(new i=0, n=0; i<=32; i++)
{
if(!is_user_connected(i))
continue;
oddaj_ids[n++] = i;
new nazwa_gracza[64];
get_user_name(i, nazwa_gracza, 63)
menu_additem(menu, nazwa_gracza, "0", 0, cb);
}
menu_display(id, menu);
}
public ZamienPerk_Handle(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
if(!is_user_connected(oddaj_ids[item])){
client_print(id, print_chat, "Nie odnaleziono zadanego gracza.");
return PLUGIN_CONTINUE;
}
if(dostal_przedmiots[oddaj_ids[item]]){
client_print(id, print_chat, "Wybrany gracz musi poczekac 1 runde.");
return PLUGIN_CONTINUE;
}
if(dostal_przedmiots[id]){
client_print(id, print_chat, "Musisz poczekac 1 runde.");
return PLUGIN_CONTINUE;
}
if(!cod_get_user_perk(oddaj_ids[item])){
client_print(id, print_chat, "Wybrany gracz nie mam zadnego perka.");
return PLUGIN_CONTINUE;
}
if(!cod_get_user_perk(id)){
client_print(id, print_chat, "Nie masz zadnego perka.");
return PLUGIN_CONTINUE;
}
new nazwa_menu[128], nick[64];
get_user_name(id, nick, charsmax(nick))
formatex(nazwa_menu, charsmax(nazwa_menu), "Wymien sie perkiem z %s:", nick)
new menu2 = menu_create(nazwa_menu, "menu_wymien");
menu_additem(menu2, "Tak", nick);
menu_addblank(menu2, 0)
menu_additem(menu2, "Nie", nick);
menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_display(oddaj_id[item], menu2);
return PLUGIN_CONTINUE;
}
public menu_wymien(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new access, callback, data[64];
menu_item_getinfo(menu, item, access, data, charsmax(data), _, _, callback);
new id2 = get_user_index(data)
switch(item)
{
case 0:
{
new perk_oddajacego = cod_get_user_perk(id2)
new perk_dajacego = cod_get_user_perk(id)
new trim_oddajacego = cod_get_perk_durability(id2)
new trim_dajacego = cod_get_perk_durability(id)
cod_set_user_perk(id2, perk_dajacego);
cod_set_user_perk(id, perk_oddajacego);
cod_set_perk_durability(id2, trim_dajacego)
cod_set_perk_durability(id, trim_oddajacego)
dostal_przedmiots[id2] = true;
dostal_przedmiots[id] = true;
new nazwa_dajacego[64];
get_user_name(id, nazwa_dajacego, charsmax(nazwa_dajacego))
client_print(id, print_chat, "Wymieniles sie perkiem z %s.", data);
client_print(id2, print_chat, "Wymieniles sie perkiem z %s.", nazwa_dajacego)
}
case 1: client_print(id2, print_chat, "Wybrany gracz nie zgodzil sie na wymiane perka.")
}
return PLUGIN_CONTINUE;
}
public OddajPerks_Callback(id, menu, item)
{
if(oddaj_ids[item] == id || !cod_get_user_class(oddaj_ids[item]) || !cod_get_user_perk(oddaj_ids[item]))
return ITEM_DISABLED;
return ITEM_ENABLED;
}