Chciałem wgrać plugin AmmoPacks znalazłem .sma (chciałem troche przerobic i skompilowac), lecz kompiluje standardowe a i tak error wyskakuje:
SMA:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <nVault> #define PLUGIN "BB ammo_packs" #define VERSION "1.0" #define AUTHOR "G[o]Q" new mKup_przedmiot // Menu new mcbKup_przedmiot // Menu Callback const AP_HANDLED=120 new ammo_packi[33] new liczba_itemow new pack_bonus,pack_bonus2,vault new Array:nazwy_itemow new Array:teamy_itemow new Array:koszta_itemow new kup_item new g_vault new nazwa_gracza[33][64] public plugin_init() { register_clcmd("say /buy","pokaz_menu") register_concmd("give_ap","cmd_daj_ap",ADMIN_IMMUNITY,"<Nick> <Ilosc>") register_clcmd("","use_command_4_item") register_clcmd("say","use_command_4_item") nazwy_itemow=ArrayCreate(64,1); teamy_itemow=ArrayCreate(1,1); koszta_itemow=ArrayCreate(1,1); cache_comands_first() //cache_comands_second() set_task(1.0,"cache_comands_second") register_event("DeathMsg", "DeathMsg", "a") register_event("Damage", "Damage", "b", "2!=0") RegisterHam(Ham_Spawn,"player","spwn") pack_bonus=register_cvar("BB_ammo_per_kill","5") // ile ammo_packow za kill pack_bonus2=register_cvar("BB_ammo_per_dmg","5") // za ile dmg jeden ammopack vault=register_cvar("BB_save_ap","1") //1 zapis wlaczony , 0 zapis wylaczony if(get_pcvar_num(vault)) g_vault=nvault_open("Base_Builder") kup_item = CreateMultiForward("wybrano_item", ET_CONTINUE, FP_CELL, FP_CELL) //wybrano_item(id,item_id) } public cache_comands_first(){ new linijka=0,text[128],chars static configdir[64],plik[128] get_configsdir(configdir,63) formatex(plik,127,"%s/bb-commands.ini",configdir) do{ linijka = read_file(plik,linijka,text,127,chars) if((text[0]==';') || !chars) continue register_clcmd(text,"pokaz_menu") } while(linijka!=0) } public cache_comands_second(){ new name_item[33] new komenda[33] new size=ArraySize(teamy_itemow) for(new i=0;i<size;i++){ ArrayGetString(nazwy_itemow,i,name_item,32) replace_all(name_item,32,"+","") register_clcmd(name_item,"use_command_4_item") format(komenda,33,"say %s",name_item) register_clcmd(komenda,"use_command_4_item") } return PLUGIN_CONTINUE } public use_command_4_item(id){ new param[3][33],name_item[33] new result,team read_argv(0, param[0], 32) read_argv(1, param[1], 32) new size=ArraySize(teamy_itemow) for(new i=0;i<size;i++){ ArrayGetString(nazwy_itemow,i,name_item,32) replace_all(name_item,32,"+","") team=ArrayGetCell(teamy_itemow,i) if((equal(param[1],name_item)) || (equal(param[0],name_item))){ if(!team || team==get_user_team(id)){ ExecuteForward(kup_item, result, id, i); if(result>=AP_HANDLED){ return PLUGIN_HANDLED } new koszt =ArrayGetCell(koszta_itemow,i) kup(id,koszt) } } } return PLUGIN_CONTINUE } public client_connect(id){ get_user_name(id,nazwa_gracza[id],63) if(get_pcvar_num(vault)==1) wczytaj_dane(id) } public client_disconnect(id){ if(get_pcvar_num(vault)==1) zapisz_dane(id) ammo_packi[id]=0 } public DeathMsg() { new kid = read_data(1) //zabojca new vid = read_data(2) // ofiara ammo_packi[kid]+=get_pcvar_num(pack_bonus) if(task_exists(vid+241)) remove_task(vid+241) } public Damage(id) { new damage = read_data(2) new kid = get_user_attacker(id) // Gracz atakujacy if(kid==id || !kid || !is_user_alive(kid)) return PLUGIN_HANDLED while(damage>=get_pcvar_num(pack_bonus2)){ damage-=get_pcvar_num(pack_bonus2) ammo_packi[kid]+=1 } return PLUGIN_CONTINUE } public pokaz_packi(id){ id-=241 new text[128] format(text,127,"Ammo Packi: %d",ammo_packi[id]) message_begin(MSG_ONE,get_user_msgid("StatusText"),{0,0,0}, id) write_byte(0) write_string(text) message_end() } public spwn(id){ if(task_exists(id+241)) remove_task(id+241) set_task(0.6,"pokaz_packi",id+241,_,_,"b") } public dodaj_item(const nazwa[],koszt,team){ //team 1 - TT 2 - CT param_convert(1) ArrayPushString(nazwy_itemow, nazwa); ArrayPushCell(teamy_itemow, team); ArrayPushCell(koszta_itemow,koszt); liczba_itemow++ return liczba_itemow-1 } public pokaz_menu(id){ if(!is_user_alive(id)){ client_print(id,print_chat,"Musisz byc zywy aby korzystac ze sklepu") return PLUGIN_HANDLED } mKup_przedmiot = menu_create("Kup_przedmiot", "mh_Kup_przedmiot") mcbKup_przedmiot = menu_makecallback("mcb_Kup_przedmiot") new size=ArraySize(koszta_itemow) for(new i=0;i<size;i++){ static text[128],nazwa[33],koszt,team,teams[16] ArrayGetString(nazwy_itemow,i,nazwa,32) koszt=ArrayGetCell(koszta_itemow,i) team=ArrayGetCell(teamy_itemow,i) switch(team){ case 0:{ teams="ALL" } case 1:{ teams="ZOMBIE" } case 2:{ teams="HUMAN" } } if(team!=get_user_team(id) && team!=0) format(text,127,"%s - Tylko dla %s ",nazwa,teams) else format(text,127,"%s -\y%d\w (%s)",nazwa,koszt,teams) menu_additem(mKup_przedmiot, text,"ma_Kup_prezdmiot", ADMIN_ALL, mcbKup_przedmiot) } menu_display(id, mKup_przedmiot, 0) return PLUGIN_CONTINUE } public kup(id,koszt){ ammo_packi[id]-=koszt } public mh_Kup_przedmiot(id, menu, item) { new result if(item>-1){ ExecuteForward(kup_item, result, id, item); if(result>=AP_HANDLED){ menu_destroy(menu) return PLUGIN_HANDLED } new koszt =ArrayGetCell(koszta_itemow,item) kup(id,koszt) menu_destroy(menu) } return PLUGIN_CONTINUE } public ma_Kup_prezdmiot(id){} public mcb_Kup_przedmiot(id, menu, item) { new team=ArrayGetCell(teamy_itemow,item) if(ammo_packi[id]<ArrayGetCell(koszta_itemow,item) || (get_user_team(id)!=team && team>0)) return ITEM_DISABLED return ITEM_ENABLED } public plugin_natives(){ register_native("dodaj_extra_item", "dodaj_item", 1) register_native("BB_get_user_ap", "get_ap",1) register_native("BB_set_user_ap", "set_ap",1) } public get_ap(id){ return ammo_packi[id] } public set_ap(id,ammount){ ammo_packi[id]=ammount } public zapisz_dane(id){ new vaultkey[64],vaultdata[64] format(vaultkey,63,"%s-bb",nazwa_gracza[id]) format(vaultdata,63,"%d",ammo_packi[id]) nvault_set(g_vault,vaultkey,vaultdata) return PLUGIN_CONTINUE } public wczytaj_dane(id){ new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-bb",nazwa_gracza[id]) format(vaultdata,255,"%d",ammo_packi[id]) nvault_get(g_vault,vaultkey,vaultdata,255) // pobieramy dane ammo_packi[id]=str_to_num(vaultdata) return PLUGIN_CONTINUE } public cmd_daj_ap(id,level,cid){ if(is_user_connected(id)){ new name[32], count[32] read_argv(1, name, 31) read_argv(2, count, 31) new ilosc=str_to_num(count) new player = cmd_target(id, name, CMDTARGET_ALLOW_SELF) ammo_packi[player]+=ilosc } return PLUGIN_HANDLED }
ERROR:
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team bb_ammopacks.sma(6) : fatal error 100: cannot read from file: "nVault" Compilation aborted. 1 Error.
Może mi ktoś ten plugin naprawić i dać naprawione .sma?
Dam +