←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Wymiana na 2 perki Prośba o poprawienie

  • +
  • -
Sosna - zdjęcie Sosna 05.03.2014

Mógłby mi ktoś poprawić ten plugin aby wymieniał dobrze 2 perkiem ponieważ zamiast na 2 wymienia 1

#include <amxmodx>




#define PLUGIN "Wymien Perk"
#define VERSION "1.0"
#define AUTHOR "QTM.Peyote & cypis & d0n tHe Pr0oo"




native cod_set_user_perk(id, perk, wartosc=-1, pokaz_info=1, lp=0)
native cod_get_user_class(id)




new bool:dostal_przedmiot[33][2];
new oddaj_id[33];




public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);




register_clcmd("say /wymien", "ZamienPerk");
register_clcmd("say /zamien", "ZamienPerk");
register_clcmd("say /wymien2", "ZamienPerk2");
register_clcmd("say /zamien2", "ZamienPerk2");
register_event("ResetHUD", "cod_perk_changed", "abe");
}




public ZamienPerk(id)
{
new menu = menu_create("Zamien sie perkiem", "ZamienPerk_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_display(id, menu);
}




public cod_perk_changed(id)
{
dostal_przedmiot[id][1] = false;
dostal_przedmiot[id][0] = false;
}




public ZamienPerk_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[oddaj_id[item]][0]){
client_print(id, print_chat, "Wybrany gracz musi poczekac 1 runde.");
return PLUGIN_CONTINUE;
}




if(dostal_przedmiot[id][0]){
client_print(id, print_chat, "Musisz poczekac 1 runde.");
return PLUGIN_CONTINUE;
}




if(!cod_get_user_perk(oddaj_id[item], 0, 0)){
client_print(id, print_chat, "Wybrany gracz nie mam zadnego perka.");
return PLUGIN_CONTINUE;
}




if(!cod_get_user_perk(id, 0, 0)){
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 wartosc1, wartosc2;
new perk_oddajacego = cod_get_user_perk(id2, wartosc1, 0)
new perk_dajacego = cod_get_user_perk(id, wartosc2, 0)




cod_set_user_perk(id2, perk_dajacego, wartosc2, 0);
cod_set_user_perk(id, perk_oddajacego, wartosc1, 0);




dostal_przedmiot[id2][0] = true;
dostal_przedmiot[id][0] = 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 OddajPerk_Callback(id, menu, item)
{
if(oddaj_id[item] == id || !cod_get_user_class(oddaj_id[item]) || !cod_get_user_perk(oddaj_id[item], 0, 0))
return ITEM_DISABLED;
return ITEM_ENABLED;
}




public ZamienPerk2(id)
{
new menu = menu_create("Zamien sie perkiem 2", "ZamienPerk_Handle2");
new cb = menu_makecallback("OddajPerk_Callback2");
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_display(id, menu);
}




public ZamienPerk_Handle2(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[oddaj_id[item]][1]){
client_print(id, print_chat, "Wybrany gracz musi poczekac 1 runde.");
return PLUGIN_CONTINUE;
}




if(dostal_przedmiot[id][1]){
client_print(id, print_chat, "Musisz poczekac 1 runde.");
return PLUGIN_CONTINUE;
}




if(!cod_get_user_perk(oddaj_id[item], 0, 1)){
client_print(id, print_chat, "Wybrany gracz nie mam zadnego perka.");
return PLUGIN_CONTINUE;
}




if(!cod_get_user_perk(id, 0, 1)){
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_wymien2");




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_wymien2(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 wartosc1, wartosc2;
new perk_oddajacego = cod_get_user_perk(id2, wartosc1, 1)
new perk_dajacego = cod_get_user_perk(id, wartosc2, 1)




cod_set_user_perk(id2, perk_dajacego, wartosc2, 1);
cod_set_user_perk(id, perk_oddajacego, wartosc1, 1);




dostal_przedmiot[id2][1] = true;
dostal_przedmiot[id][1] = 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 OddajPerk_Callback2(id, menu, item)
{
if(oddaj_id[item] == id || !cod_get_user_class(oddaj_id[item]) || !cod_get_user_perk(oddaj_id[item], 0, 1))
return ITEM_DISABLED;
return ITEM_ENABLED;
}




/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
Odpowiedz

  • +
  • -
ByQ_Pl - zdjęcie ByQ_Pl 06.03.2014

Łap ! 




Z tego tematu: http://amxx.pl/topic...kow-na-2-perki/

Załączone pliki

Odpowiedz

  • +
  • -
Sosna - zdjęcie Sosna 06.03.2014

Tylko że to jest to... co Ty mi dałeś

 

i nie działa ;x

Odpowiedz

  • +
  • -
ByQ_Pl - zdjęcie ByQ_Pl 06.03.2014

Wiem że to jedyny na Amxx, szukałem i nie ma. 
Możesz prosić kogoś "obeznanego" o przerobienie Wymiany 1 perku na 2 perki, napisz odpowiedni temat w odpowiednim dziale, zapodaj link do wymiany jednego perku, i może ktoś Ci przerobi go na 2.

Odpowiedz

  • +
  • -
Sosna - zdjęcie Sosna 07.03.2014

Przecież ten plugin można normalnie poprawić,.,

 

Po co mam pisac nowy temat..

 

Prosiłbym kogoś obeznanego o poprawienie tego..

Odpowiedz

  • +
  • -
Ojciec Dyrektor - zdjęcie Ojciec Dyrektor 14.03.2014

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XProblemy z pluginami

do

Scripting AMXXPluginy
Odpowiedz