Siemka mam plugin sklepu ze szlugami niestety resetuja sie po zmianie mapy mógł by ktoś zrobić żeby się zapisywały
/* Plugin generated by AMXX-Studio */
#include <amxmodx>#include <amxmisc>#include <sqlx>#include <colorchat>#include <hamsandwich>#include <fun>#include <cstrike>#include <engine>#include <fakemeta_util>#include <nvault>#include <jailbreak>#define prefix "Sklep"#define FL_WATERJUMP (1<<11)#define FL_ONGROUND (1<<9)#define autobhopkeys (1<<0)|(1<<1)new pPcvarDBHost;new pPcvarDBUser;new pPcvarDBPassword;new pPcvarDBBase;new name[33];new Handle:g_SqlTuple;new g_Cache[512];new bool:SQLenabled;new bool:gIntermission;new gTablesLoaded[33];new gSaveKey[33][32];new eliminator_rozrzutu[33];new longjump[33], player_b_froglegs[33];new ilosc_jbpack[33];new bool:bhop_enabled[33];new ilosc_he[33], ilosc_flashbang[33], ilosc_smoke[33];new jb_packi_nvpublic plugin_init() {//--//--//--//--//--//--//--//--//--//--//--//--//--//--//pPcvarDBHost = register_cvar("db_host", ""); //ip bazy danychpPcvarDBUser = register_cvar("db_user", ""); //nazwa uzytkownikapPcvarDBPassword = register_cvar("db_pass", ""); //haslo do bazy danychpPcvarDBBase = register_cvar("db_database", ""); //nazwa bazy danych//--//--//--//--//--//--//--//--//--//--//--//--//--//--//register_clcmd("say /sklep", "jb_sklep")register_clcmd("say_team /sklep", "jb_sklep")register_cvar("jb_maxjp", "1000" );register_cvar("jb_tt", "10" );register_cvar("jb_ct", "10" );register_cvar("jb_hs", "20" );register_cvar("jb_zapis", "1"); //1 - nvault, 2 - sqlif(get_cvar_num("jb_zapis") == 2) {jb_packi_nv = nvault_open("jb_packi")if(jb_packi_nv == INVALID_HANDLE)set_fail_state("Nie moge otworzyc pliku");}register_event("DeathMsg", "DeathMsg", "a")register_logevent("Koniec_Rundy", 2, "1=Round_End")register_forward(FM_CmdStart, "CmdStart");register_concmd("jb_packgiveax", "cmd_give", ADMIN_IMMUNITY, "<nazwa> <ilosc>");register_clcmd("typ_zapisu", "typ");register_forward(FM_PlayerPreThink, "Prethink_froglegs");register_forward(FM_PlayerPreThink, "forward_FM_PlayerPreThink", 0)}public plugin_precache()precache_sound("misc/prosiakjail/cele.wav")public DeathMsg(){new weaponname[20]new kid = read_data(1)new vid = read_data(2)new headshot = read_data(3)read_data(4,weaponname,31)if(kid == vid){return PLUGIN_HANDLED}if(get_user_team(kid) == 1){new maxjp = get_cvar_num("jb_maxjp")if(ilosc_jbpack[kid]<maxjp){if(get_user_team(vid) == 2){new pack_ct = get_cvar_num("jb_ct")ilosc_jbpack[kid] += pack_ctColorChat(kid, GREEN, "[%s] ^x01 Dostales ^x04+%i ^x01 szlugi", prefix, pack_ct);}else{new pack_tt = get_cvar_num("jb_tt")ilosc_jbpack[kid] += pack_ttColorChat(kid, GREEN, "[%s] ^x01 Dostales ^x04+%i ^x01 szlugi", prefix, pack_tt);}if(headshot){new pack_hs = get_cvar_num("jb_hs")ilosc_jbpack[kid] += pack_hsColorChat(kid, GREEN, "[%s] ^x01 Dostales bonus za headshot ^x04+%i ^x01 szlugi", prefix, pack_hs);}}else{ColorChat(kid, GREEN, "[%s] ^x01 Ilosc maksymalnej ilosci szlugow osiagnieta!", prefix);return PLUGIN_CONTINUE}ColorChat(kid, GREEN, "[%s] ^x01 Twoja ilosc szlugow to: ^x04%i/%i", prefix, ilosc_jbpack[kid], maxjp);if(get_cvar_num("jb_zapis") == 1) {sql_save(kid)}else{zapisz_jbpack(kid)}}return PLUGIN_CONTINUE}////----//////public jb_sklep(id){ColorChat(id, GREEN, "[Sklep Za Szlugi] Zasady uzywania sklepu: ");ColorChat(id, GREEN, "[Sklep Za Szlugi] Szlugi to^x03 waluta wiezienna");ColorChat(id, GREEN, "[Sklep Za Szlugi] Kupisz za nie rozne^x03 bonusy");ColorChat(id, GREEN, "[Sklep Za Szlugi] Za zabicie otrzymujesz szlugi");new menu,formats[64];formatex(formats,charsmax(formats),"\wSklep ze szlugami^n\wMasz: \r%i \w szlugow",ilosc_jbpack[id])menu = menu_create(formats,"handle_jb_sklep");if(get_user_team(id) == 1){menu_additem(menu,"\rKlucz Do Cel \y[600 szlugow]")menu_additem(menu,"\wGranat Wybuchajacy \y[25 szlugow]")menu_additem(menu,"\wGranat Oslepiajacy \y[20 szlugow]")menu_additem(menu,"\wGranat Dymny \y[15 szlugow]")menu_additem(menu,"\wNajki Zapierdalajki na jedna runde \y[70 szlugow]")menu_additem(menu,"\wCichobiegi \y[50 szlugow]")menu_additem(menu,"\wKamizelka Kuloodporna \y[30 szlugow]")menu_additem(menu,"\wAutoBH na jedna runde \y[40 szlugow]")menu_additem(menu,"\wEliminator rozrzutu \y[100 szlugow]")menu_additem(menu,"\wDuszek w nastepnej rundzie \y[200 szlugow]")menu_additem(menu,"\wLongjump \y[200 szlugow]")menu_additem(menu,"\wDeagle \y[60 szlugow]")}menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")menu_setprop(menu,MPROP_NEXTNAME,"Dalej")menu_setprop(menu,MPROP_BACKNAME,"Wroc")menu_display(id,menu,0)return PLUGIN_HANDLED}public handle_jb_sklep(id, menu, item){get_user_name(id,name,charsmax(name));switch(item){case 0:{if(!sprawdz(id, 600)) return PLUGIN_HANDLED;jail_open_cele()ColorChat(0, RED, "[Klucz Do Cel]^x01 Gracz o nicku^x04 %s^x01 posiadal^x03 klucz do cel!", name);ColorChat(0, RED, "[Klucz Do Cel]^x01 Gracz o nicku^x04 %s^x01 posiadal^x03 klucz do cel!", name);ColorChat(0, RED, "[Klucz Do Cel]^x01 Gracz o nicku^x04 %s^x01 posiadal^x03 klucz do cel!", name);client_cmd(0, "spk misc/prosiakjail/cele.wav");}case 1:{if(ilosc_he[id] < 2){if(!sprawdz(id,25)) return PLUGIN_HANDLED;give_item(id, "weapon_hegrenade");ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kupiles granat wybuchowy", prefix, name);ilosc_he[id]++;}}case 2:{if(ilosc_flashbang[id] < 2){if(!sprawdz(id,20)) return PLUGIN_HANDLED;give_item(id, "weapon_flashbang");ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kupiles granat oslepiajacy", prefix, name);ilosc_flashbang[id]++}}case 3:{if(ilosc_smoke[id] < 2){if(!sprawdz(id,15)) return PLUGIN_HANDLED;give_item(id, "weapon_smokegrenade");ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kupiles granat oslepiajacy", prefix, name);ilosc_smoke[id]++}}case 4:{if(!sprawdz(id,70)) return PLUGIN_HANDLED;ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kupiles Najki Zapierdalajki", prefix, name);set_user_maxspeed(id, 450.0);}case 5:{if(!sprawdz(id,50)) return PLUGIN_HANDLED;ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kupiles cichobiegi", prefix, name);set_user_footsteps(id, 1);}case 6:{if(!sprawdz(id,30)) return PLUGIN_HANDLED;ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kupiles kamizelke kuloodporna", prefix, name);set_user_armor(id, 250);}case 7:{if(!sprawdz(id,40)) return PLUGIN_HANDLED;ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kupiles Bunny hop na jedna runde", prefix, name);bhop_enabled[id] = true;}case 8:{if(!sprawdz(id,100)) return PLUGIN_HANDLED;ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kupiles eliminator rozrzutu", prefix, name);eliminator_rozrzutu[id] = true;}case 9:{if(!sprawdz(id,200)) return PLUGIN_HANDLED;ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kupiles duszka w nastepnej rundzie", prefix, name);jail_set_prisoner_ghost(id, false, true);}case 10:{if(!sprawdz(id,200)) return PLUGIN_HANDLED;ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kupiles longjumpa", prefix, name);ColorChat(id, GREEN, "[%s]^x03 %s -^x01 Kucaj przez 5 sekund, aby aktywowac supermoc", prefix, name);longjump[id] = true;}case 11:{if(!sprawdz(id,60)) return PLUGIN_HANDLED;ColorChat(id, GREY, "[%s]^x03 %s -^x01 kupiles deagla z jednym nabojem",prefix, name);new ent = give_item(id, "weapon_deagle");if(ent != -1)cs_set_weapon_ammo(ent, 1);}}return PLUGIN_CONTINUE;}public sprawdz(id,jbpack){if (ilosc_jbpack[id] >= jbpack){ilosc_jbpack[id] -= jbpackreturn true;}if(!is_user_alive(id)){ColorChat(id, GREEN, "[%s]^x01 Nie zyjesz", prefix);return false;}if(ilosc_jbpack[id] < jbpack){ColorChat(id, GREEN, "[%s]^x01 Nie masz tylu szlugow, aby to kupic", prefix);return false;}return PLUGIN_CONTINUE;}public Koniec_Rundy(){for(new i =1;i<33;i++){if(is_user_connected(i)){ilosc_he[i] = 0;ilosc_smoke[i] = 0;ilosc_flashbang[i] = 0;bhop_enabled[i] = falseset_user_footsteps(i, 0)}}}public forward_FM_PlayerPreThink(id){if(bhop_enabled[id] == true){entity_set_float(id, EV_FL_fuser2, 0.0)if (entity_get_int(id, EV_INT_button) & 2){new flags = entity_get_int(id, EV_INT_flags)if (flags & FL_WATERJUMP)return PLUGIN_CONTINUEif ( entity_get_int(id, EV_INT_waterlevel) >= 2 )return PLUGIN_CONTINUEif ( !(flags & FL_ONGROUND) )return PLUGIN_CONTINUEnew Float:velocity[3]entity_get_vector(id, EV_VEC_velocity, velocity)velocity[2] += 250.0entity_set_vector(id, EV_VEC_velocity, velocity)entity_set_int(id, EV_INT_gaitsequence, 6)}}return PLUGIN_CONTINUE}public CmdStart(id, uc_handle){if(eliminator_rozrzutu[id] && get_uc(uc_handle, UC_Buttons) & IN_ATTACK){new Float:punchangle[3]pev(id, pev_punchangle, punchangle)for(new i=0; i<3;i++)punchangle[i]*=0.9;set_pev(id, pev_punchangle, punchangle)}}public Prethink_froglegs(id){if (longjump[id] && get_user_button(id) & IN_DUCK){if (player_b_froglegs[id] == 1){player_b_froglegs[id] = floatround(halflife_time())}else{if (floatround(halflife_time())-player_b_froglegs[id] >= 5.0) // Tutaj podajemy czas zamiast X{new Float:fl_iNewVelocity[3]VelocityByAim(id, 1000, fl_iNewVelocity)fl_iNewVelocity[2] = 210.0entity_set_vector(id, EV_VEC_velocity, fl_iNewVelocity)player_b_froglegs[id] = 1}}}else{player_b_froglegs[id] = 1}return PLUGIN_CONTINUE}public cmd_give(id, level, cid){if(!cmd_access(id, level, cid, 3))return PLUGIN_CONTINUE;new arg[33];read_argv(1, arg, 32);new target = cmd_target(id, arg, CMDTARGET_ALLOW_SELF);if(!is_user_connected(target))return PLUGIN_CONTINUE;read_argv(2, arg, 32);new ilejb = str_to_num(arg);ilosc_jbpack[target] = ilosc_jbpack[target] + ilejb;return PLUGIN_CONTINUE;}public plugin_natives(){register_native("get_user_jbpack","return_jbpack", 1)register_native("set_user_jbpack","set_jbpack", 1)}public return_jbpack(id){return ilosc_jbpack[id];}public set_jbpack(id, amount){ilosc_jbpack[id] = amount}//////////////public typ(id) {if(get_cvar_num("jb_zapis") == 1) {client_print(id, print_console, "Uzywasz obecnie zapisu SQL")}else{client_print(id, print_console, "Uzywasz obecnie zapisu nVault")}}public zaladuj_jbpack(id){new name[48]get_user_name(id,name,47)new vaultkey[64],vaultdata[128]formatex(vaultkey,63,"%s-jbpack",name)if(nvault_get(jb_packi_nv,vaultkey,vaultdata,127)) {new jb_packii[16];parse(vaultdata, jb_packii, 15)ilosc_jbpack[id]=str_to_num(jb_packii)}return PLUGIN_CONTINUE}public zapisz_jbpack(id) {new name[48]get_user_name(id,name,47)new vaultkey[64],vaultdata[128]formatex(vaultkey,63,"%s-jbpack",name)formatex(vaultdata,127,"%d", ilosc_jbpack[id])nvault_set(jb_packi_nv,vaultkey,vaultdata)return PLUGIN_CONTINUE}public plugin_cfg(){SQLenabled = false;sql_init();}public plugin_end(){if ( SQLenabled ){SQL_FreeHandle(g_SqlTuple);}}public Message_Intermission(){gIntermission = true;}public client_putinserver(id){gTablesLoaded[id] = 0;if(get_cvar_num("jb_zapis") == 1) {get_save_key(id);}else{zaladuj_jbpack(id);}}public client_disconnect(id){if(get_cvar_num("jb_zapis") == 1) {sql_save(id)}else{zapisz_jbpack(id)}}public sql_init(){new szHost[32], szUser[32], szPass[32], szDB[32];get_pcvar_string(pPcvarDBHost, szHost, 31);get_pcvar_string(pPcvarDBUser, szUser, 31);get_pcvar_string(pPcvarDBPassword, szPass, 31);get_pcvar_string(pPcvarDBBase, szDB, 31);g_SqlTuple = SQL_MakeDbTuple(szHost, szUser, szPass, szDB);SQL_ThreadQuery(g_SqlTuple, "TableHandle", "CREATE TABLE IF NOT EXISTS jbpacki (nazwa_gracza VARCHAR(35), ilosc_jbpack INT(11), PRIMARY KEY (nazwa_gracza))");}public get_save_key(id){get_user_name(id, gSaveKey[id], charsmax(gSaveKey[]));sql_load(id);}public sql_load(id){new index[1];index[0] = id;new tempSaveKey[63];copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]);replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" );formatex(g_Cache, charsmax(g_Cache), "SELECT ilosc_jbpack FROM jbpacki WHERE nazwa_gracza='%s'", tempSaveKey);SQL_ThreadQuery(g_SqlTuple, "SelectHandle", g_Cache, index, 1);}public TableHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize){if ( FailState ){if ( FailState == TQUERY_CONNECT_FAILED ){log_amx("Table - Could not connect to SQL database. [%d] %s", Errcode, Error);}else if ( FailState == TQUERY_QUERY_FAILED ){log_amx("Table Query failed. [%d] %s", Errcode, Error);}SQLenabled = false;return;}SQLenabled = true;}public QueryHandle(FailState, Handle:Query, Error[], Errcode,Data[], DataSize){if ( FailState ){if ( FailState == TQUERY_CONNECT_FAILED ){log_amx("Save - Could not connect to SQL database. [%d] %s", Errcode, Error);}else if ( FailState == TQUERY_QUERY_FAILED ){log_amx("Save Query failed. [%d] %s", Errcode, Error);}return;}}public SelectHandle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize){if ( FailState ){if ( FailState == TQUERY_CONNECT_FAILED ){log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);}else if ( FailState == TQUERY_QUERY_FAILED ){log_amx("Load Query failed. [%d] %s", Errcode, Error);}return;}new id = Data[0];if ( !SQL_NumResults(Query) ){new tempSaveKey[63];copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]);replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" );formatex(g_Cache, charsmax(g_Cache), "INSERT INTO jbpacki VALUES('%s', '0')", tempSaveKey);SQL_ThreadQuery(g_SqlTuple, "QueryHandle", g_Cache);}else{ilosc_jbpack[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"ilosc_jbpack"));}gTablesLoaded[id]++;}public sql_save(id){if ( gTablesLoaded[id] == 1 ){if ( gIntermission ){sql_save_nonthreaded(id);return;}new tempSaveKey[63];copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]);replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" );formatex(g_Cache, charsmax(g_Cache), "UPDATE jbpacki SET ilosc_jbpack=%i WHERE nazwa_gracza=^"%s^"", ilosc_jbpack[id], tempSaveKey);SQL_ThreadQuery(g_SqlTuple, "QueryHandle", g_Cache);}}sql_save_nonthreaded(id){new Errcode, Error[128], Handle:SqlConnection;SqlConnection = SQL_Connect(g_SqlTuple, Errcode, Error, charsmax(Error));if ( !SqlConnection ){log_amx("Save - Could not connect to SQL database. [%d] %s", Errcode, Error);SQL_FreeHandle(SqlConnection);return;}new tempSaveKey[63];copy(tempSaveKey, charsmax(tempSaveKey), gSaveKey[id]);replace_all(tempSaveKey, charsmax(tempSaveKey), "'", "\'" );new Handle:Query;Query = SQL_PrepareQuery(SqlConnection, "UPDATE jbpacki SET ilosc_jbpack=%i WHERE nazwa_gracza=^"%s^"", ilosc_jbpack[id], tempSaveKey);if ( !SQL_Execute(Query) ){Errcode = SQL_QueryError(Query, Error, charsmax(Error));log_amx("Save Query failed. [%d] %s", Errcode, Error);SQL_FreeHandle(Query);SQL_FreeHandle(SqlConnection);return;}SQL_FreeHandle(Query);SQL_FreeHandle(SqlConnection);}