Witam serdecznie,
chciałem skorzystać z gotowca do utworzenia menu graczy z tego poradnika, lecz nie wychodzi:
http://amxx.pl/topic...tworzenia-menu/
A swój problem opisałem w ostatnim poście, lecz jak nie dostałem odpowiedzi to zakładam osobny temat:
Ten post: http://amxx.pl/topic...e-2#entry600649
Taki mam kod obecnie:
public handleSay(id){
new args[64], arg1[16], arg2[32];
read_args(args, charsmax(args))
remove_quotes(args)
strbreak(args, arg1, charsmax(arg1), arg2, charsmax(arg2))
if (equal(arg1,"/daj", 4)){
if(arg2[0]){
new wartosc = str_to_num(arg2)
if(wartosc <= 0){
ColorChat(id, GREEN,"[AP] ^x01Poprawne polecenie: ^x04/daj liczba")
return PLUGIN_HANDLED;
}
if(wartosc <= zp_get_user_ammo_packs(id))
show_przelew(id, wartosc)
else{
ColorChat(id, GREEN,"[AP] ^x01Nie posiadasz tyle AP !")
return PLUGIN_HANDLED;
}
}
else{
ColorChat(id, GREEN,"[AP] ^x01Poprawne polecenie: ^x04/daj liczba")
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public show_przelew(id, wartosc){
new menu = menu_create("Wybierz gracza ktoremu dasz AP", "handle_przelew");
new players[32], num;
new name[32], info[25];
get_players(players, num);
for(new i=0; i<num; ++i){
if(id == players[i] || is_user_hltv(players[i])) continue;
get_user_name(players[i], name, 31);
formatex(info, 24, "%08X%08X%08X", wartosc, players[i], get_user_userid(players[i]));
menu_additem(menu, name, info);
}
menu_display(id, menu);
}
public handle_przelew(id, menu, item) {
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new info[25], access, callback;
menu_item_getinfo(menu, item, access, info, 24,_, _, callback);
new tid = hexstr_to_num(info[8], 8);
new tuserid = hexstr_to_num(info[16], 8);
new wartosc = hexstr_to_num(info, 8);
client_print(0,print_chat,"id: %d tid: %d tuserid: %d wartosc: %d",id,tid,tuserid,wartosc)
if(is_user_connected(tid) && tuserid == get_user_userid(tid)){
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - wartosc)
zp_set_user_ammo_packs(tid, zp_get_user_ammo_packs(tid) + wartosc)
new aName[32], vName[32]
get_user_name(id, aName, 31)
get_user_name(tid, vName, 31)
set_hudmessage(255, 0, 0, -1.0, 0.3, 0, 6.0, 6.0)
show_hudmessage(0, "%s przekazal %d Ammo Packi dla %s!", aName, wartosc, vName)
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
hexstr_to_num(string[], chars) {
new result=0;
for(new i=0; i<chars && string[i]!='^0'; ++i)
result = result<<4 + (string[i]>'9'?string[i]>'F'?string[i]-'a'+10:string[i]-'A'+10:string[i]-'0');
return result;
}
W tej linijce sprawdzającej ( client_print(0,print_chat ....) , wszystkie wartości oprócz ID są zerem.
Myślę, że ta heksalna technika mogła zawieść ![]()
Użytkownik Lacostii edytował ten post 04.01.2014 13:24


Dodatki SourceMod














