Witam! Czy mógłby mi ktoś przerobić plugin JB Packi, tak aby dawało "szlugi" też dla CT? tzn. Plugin jest przerobiony na "Szlugi" tylko w tym problem żę TT dostaje te szlugi a CT już nie. Proszę o przerobienie żeby CT też dostawało. Zielony w tym jestem a uczę się dopiero.
/* 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> #define PLUGIN "JB PACKI" #define VERSION "1.0" #define AUTHOR "Zero" #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 Handle:g_SqlTuple; new g_Cache[512]; new bool:SQLenabled; new bool:gIntermission; new gTablesLoaded[33]; new gSaveKey[33][32]; new ilosc_jbpack[33]; new bool:bhop_enabled[33]; new bool:blokada new jb_packi_nv new msgtext; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) //--//--//--//--//--//--//--//--//--//--//--//--//--//--// pPcvarDBHost = register_cvar("db_host", "xx"); //ip bazy danych pPcvarDBUser = register_cvar("db_user", "zz"); //nazwa uzytkownika pPcvarDBPassword = register_cvar("db_pass", "cc"); //haslo do bazy danych pPcvarDBBase = register_cvar("db_database", "vv"); //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", "15" ); register_cvar("jb_czas", "60"); register_cvar("jb_zapis", "1"); //1 - nvault, 2 - sql register_cvar("jb_hud", "2"); //0 - off, 1 - status, 2 - hud if(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_logevent("Poczatek_Rundy", 2, "1=Round_Start") register_event("ResetHUD","HUD", "b"); register_concmd("jb_packgive", "cmd_give", ADMIN_IMMUNITY, "<nazwa> <ilosc>"); register_clcmd("typ_zapisu", "typ"); msgtext = get_user_msgid("StatusText"); register_forward(FM_PlayerPreThink, "forward_FM_PlayerPreThink", 0) set_task(0.8, "HUD",0,"",0,"b"); } public HUD(id) { for (new id=0; id < 32; id++) { if (!is_user_connected(id)) continue if(is_user_alive(id)){ new HUD[128]; format(HUD, 127,"Szlugow: %i",ilosc_jbpack[id]); if(get_cvar_num("jb_hud") == 1){ message_begin(MSG_ONE, msgtext, {0,0,0}, id); write_byte(0); write_string(HUD); message_end(); return PLUGIN_CONTINUE; } else if(get_cvar_num("jb_hud") == 2) { set_hudmessage(0, 255, 0, 0.02, 0.63, 0, 0.01, 0.8, _, _, 3) show_hudmessage(id, "%s",HUD) } } } return PLUGIN_CONTINUE; } /*public client_PreThink(id){ if(!is_user_alive(id)){ return PLUGIN_CONTINUE; } if(is_user_alive(id) && !is_user_bot(id) && get_cvar_num("jb_hud") > 0){ HUD(id); } return PLUGIN_HANDLED; }*/ 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_ct ColorChat(kid, GREEN, "[%s] ^x01 Dostales ^x04+%i ^x01Szlugow", prefix, pack_ct); } else { new pack_tt = get_cvar_num("jb_tt") ilosc_jbpack[kid] += pack_tt ColorChat(kid, GREEN, "[%s] ^x01 Dostales ^x04+%i ^x01Szlugow", prefix, pack_tt); } if(headshot) { new pack_hs = get_cvar_num("jb_hs") ilosc_jbpack[kid] += pack_hs ColorChat(kid, GREEN, "[%s] ^x01 Dostales bonus za headshot ^x04+%i ^x01Szlugow", prefix, pack_hs); } } else { ColorChat(kid, GREEN, "[%s] ^x01 Maksymalna ilosc 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) { if(blokada == true){ new czynny_sklep = get_cvar_num("jb_czas") ColorChat(id, GREEN, "[%s] Sklep jest czynny tylko %d sekund po rozpoczeciu rundy", prefix, czynny_sklep); return PLUGIN_HANDLED } new menu,formats[64]; formatex(formats,charsmax(formats),"\wSklep ^n\wIlosc Szlugow: \r%i",ilosc_jbpack[id]) menu = menu_create(formats,"handle_jb_sklep"); if(get_user_team(id) == 0) { menu_additem(menu,"\wGranat dymny \r[\w10 Szlugow\r]","0") menu_additem(menu,"\wGranat oslepiajacy \r[\w15 Szlugow\r]","1") menu_additem(menu,"\wGranat wybuchajacy \r[\w25 Szlugow\r]","2") menu_additem(menu,"\wKamizelka \r[\w45 Szlugow\r]","3") menu_additem(menu,"\wAutoBH na jedna runde \r[\w70 Szlugow\r]","4") menu_additem(menu,"\w+60 HP \r[\w100 Szlugow\r]","5") menu_additem(menu,"\wNajki Zapierdalajki na jedna runde \r[\w400 Szlugow\r]","6") menu_additem(menu,"\wPeleryna Niewidka \r[\w800 Szlugow\r]","7") } 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) { switch(item) { case 0: { if(!sprawdz(id,10)) return PLUGIN_HANDLED; give_item(id, "weapon_smokegrenade"); ColorChat(id, GREEN, "[%s] Kupiles granat dymny", prefix); } case 1: { if(!sprawdz(id,15)) return PLUGIN_HANDLED; give_item(id, "weapon_flashbang"); ColorChat(id, GREEN, "[%s] Kupiles granat oslepiajacy", prefix); } case 2: { if(!sprawdz(id,25)) return PLUGIN_HANDLED; give_item(id, "weapon_hegrenade"); ColorChat(id, GREEN, "[%s] Kupiles granat wybuchowy", prefix); } case 3: { if(!sprawdz(id,45)) return PLUGIN_HANDLED; give_item(id, "item_kevlar") give_item(id, "item_assaultsuit") ColorChat(id, GREEN, "[%s] Kupiles kamizelke", prefix); } /*case 4: { if(!sprawdz(id,10)) return PLUGIN_HANDLED; give_item(id, "weapon_glock18") new weapon_id = find_ent_by_owner(-1, "weapon_glock18", id); if(weapon_id) { cs_set_weapon_ammo(weapon_id, 4); } ColorChat(id, GREEN, "[%s] Kupiles glocka", prefix); }*/ case 4: { if(!sprawdz(id,70)) return PLUGIN_HANDLED; bhop_enabled[id] = true ColorChat(id, GREEN, "[%s] Kupiles AutoBH na jedna runde", prefix); } case 5: { if(!sprawdz(id,100)) return PLUGIN_HANDLED; set_user_health(id, get_user_health(id) + 60) ColorChat(id, GREEN, "[%s] Kupiles +60hp", prefix); } case 6: { if(!sprawdz(id,400)) return PLUGIN_HANDLED; set_user_footsteps(id, 1) ColorChat(id, GREEN, "[%s] Kupiles ciche chodzenie na jedna runde", prefix); } case 7: { if(!sprawdz(id,800)) return PLUGIN_HANDLED; set_user_rendering(id, kRenderFxNone, 0,0,0, kRenderTransAlpha, 140); ColorChat(id, GREEN, "[%s] Kupiles Peleryne Niewidke", prefix); } } return PLUGIN_CONTINUE; } public sprawdz(id,jbpack){ if (ilosc_jbpack[id] >= jbpack){ ilosc_jbpack[id] -= jbpack return true; } if(!is_user_alive(id)){ ColorChat(id, GREEN, "[%s] Nie zyjesz", prefix); return false; } if(ilosc_jbpack[id] < jbpack) { ColorChat(id, GREEN, "[%s] Nie masz tylu Szlugow, aby to kupic", prefix); return false; } return PLUGIN_CONTINUE; } public Poczatek_Rundy() { blokada = false new czynny_skle = get_cvar_float("jb_czas") set_task(czynny_skle, "Blokuj") } public Koniec_Rundy(){ for(new i =1;i<33;i++){ if(is_user_connected(i)) { bhop_enabled[i] = false set_user_footsteps(i, 0) } } } public Blokuj(){ blokada = true } 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_CONTINUE if ( entity_get_int(id, EV_INT_waterlevel) >= 2 ) return PLUGIN_CONTINUE if ( !(flags & FL_ONGROUND) ) return PLUGIN_CONTINUE new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) velocity[2] += 250.0 entity_set_vector(id, EV_VEC_velocity, velocity) entity_set_int(id, EV_INT_gaitsequence, 6) } } 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); } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */