Witam, mam problem z pluginem dotyczący systemem szlugów, pojawiają sie 4 błędy podczas kompilacji:
// C:\Users\User\Desktop\compiler\szlugi_acnologia.sma(190) : error 017: undefined symbol "MenuInformacje" // C:\Users\User\Desktop\compiler\szlugi_acnologia.sma(191) : error 017: undefined symbol "WyslijSzlugi" // C:\Users\User\Desktop\compiler\szlugi_acnologia.sma(192) : error 017: undefined symbol "PostawSzlugi" // C:\Users\User\Desktop\compiler\szlugi_acnologia.sma(193) : error 017: undefined symbol "KupSzlugi"
Oto całe sma:
#include <amxmodx> #include <amxmisc> #include <sqlx> #include <colorchat> #include <nvault> //#include <jailbreak> #include < hamsandwich > #include <engine> #include <cstrike> #define PLUGIN "[SZLUGI] System" #define VERSION "1.1" #define AUTHOR "Eryk172" new const prefix[] = "Szlugi" 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 jb_packi_nv new msgtext; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) //--//--//--//--//--//--//--//--//--//--//--//--//--//--// pPcvarDBHost = register_cvar("db_host", "cenzura"); //ip bazy danych pPcvarDBUser = register_cvar("db_user", "cenzura"); //nazwa uzytkownika pPcvarDBPassword = register_cvar("db_pass", "cenzura"); //haslo do bazy danych pPcvarDBBase = register_cvar("db_database", "szlugi_jb"); //nazwa bazy danych //--//--//--//--//--//--//--//--//--//--//--//--//--//--// register_cvar("jb_ct", "5" ); // Ilosc przyznawanych Szlugow za zabicie. register_cvar("jb_tt", "1" ); // Ilosc przyznawanych Szlugow za zabicie Wieznia. register_cvar("jb_tt_hs", "10" ); // Ilosc przyznawanych Szlugow za zabicie Wieznia HS. register_cvar("jb_ct_vip", "10" ); // Ilosc przyznawanych Szlugow za zabicie. ( VIP ) register_cvar("jb_hs", "10" ); // Ilosc dodatkowych szlugow za headShota. register_cvar("jb_hs_vip", "15" ); // Ilosc dodatkowych szlugow za headShot. ( VIP ) register_cvar("jb_zapis", "1"); //1 - SQL, 2 - nVault register_cvar("jb_hud", "1"); //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_event("ResetHUD","HUD", "b"); register_clcmd("say /szlugi", "MenuSzlugi") register_clcmd("say_team /szlugi", "MenuSzlugi") register_concmd("jb_packgive", "cmd_give", ADMIN_IMMUNITY, "<nazwa> <ilosc>"); register_concmd("szlugi_give", "cmd_give", ADMIN_IMMUNITY, "<nazwa> <ilosc>"); msgtext = get_user_msgid("StatusText"); set_task(6.0, "HUD",0,"",0,"b"); } public HUD(id) { for (new id=0; id < 32; id++) { if (!is_user_connected(id)) continue if (get_user_team(id) == 2) continue if(is_user_alive(id)){ new HUD[128]; format(HUD, 127,"SZLUGI: %i",ilosc_jbpack[id]); if(get_cvar_num("jb_hud") == 1){ message_begin(MSG_ONE_UNRELIABLE, 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 Killer = read_data( 1 ); new Victim = read_data( 2 ); new headshot = read_data(3); new flagi = get_user_flags( Killer ) & ADMIN_LEVEL_H || ADMIN_LEVEL_G; if(Killer == Victim) { return PLUGIN_HANDLED } if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_CT && flagi ) { ColorChat(Killer, GREEN, "[%s] ^x01Za zabicie straznika otrzymujesz ^x04+%i Szlugow (VIP)",prefix, get_cvar_num("jb_ct_vip")); ilosc_jbpack[Killer] += get_cvar_num("jb_ct_vip") } if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_CT && flagi && headshot ) { ColorChat(Killer, GREEN, "[%s] ^x01Za zabicie HeadShotem otrzymujesz dodatkowo ^x04+%i Szlugow (VIP)",prefix, get_cvar_num("jb_hs_vip")); ilosc_jbpack[Killer] += get_cvar_num("jb_hs_vip") } if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_CT && !is_user_admin( Killer ) && headshot) { ColorChat( Killer, GREEN, "[%s] ^x01Otrzymales dodatkowo ^x04%d Szlugi ^x01za zabicie headshotem.",prefix, get_cvar_num("jb_hs") ); ilosc_jbpack[Killer] += get_cvar_num("jb_hs") } if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_CT && !is_user_admin( Killer )) { ColorChat( Killer, GREEN, "[%s] ^x01Otrzymales ^x04%d Szlugi ^x01za zabicie straznika.",prefix, get_cvar_num("jb_ct") ); ilosc_jbpack[Killer] += get_cvar_num("jb_ct") } if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_T ) { ColorChat( Killer, GREEN, "[%s] ^x01Otrzymales ^x04%d Szlugi ^x01za zabicie Wieznia",prefix, get_cvar_num("jb_tt") ); ilosc_jbpack[Killer] += get_cvar_num("jb_tt") } if ( cs_get_user_team( Killer ) == CS_TEAM_T && cs_get_user_team( Victim ) == CS_TEAM_T && headshot) { ColorChat( Killer, GREEN, "[%s] ^x01Otrzymales dodatkowe ^x04%d Szlugow ^x01za zabicie Wieznia HeadShotem!",prefix, get_cvar_num("jb_tt_hs") ); ilosc_jbpack[Killer] += get_cvar_num("jb_tt_hs") } if(get_cvar_num("jb_zapis") == 1) { sql_save(Killer) } else { zapisz_jbpack(Killer) } return PLUGIN_HANDLED; } // MENU public MenuSzlugi(id) { new menu,formats[64]; formatex(formats,charsmax(formats),"\wMenu Szlugow^n\wIlosc Szlugow: \y%i",ilosc_jbpack[id]) menu = menu_create(formats,"handle_szlugi"); menu_additem(menu,"Szlugi - Informacje","0") menu_additem(menu,"Wyslij Szlugi","1") menu_additem(menu,"Postaw Szlugi \r(hazard)","2") menu_additem(menu,"Kup Szlugi za Dolary","3") menu_additem(menu,"Quiz - \yOdpowiedz i Wygraj","4") 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_szlugi(id, menu, item) { switch(item) { case 0: MenuInformacje(id); case 1: WyslijSzlugi(id); case 2: PostawSzlugi(id); case 3: KupSzlugi(id); case 4: client_cmd(id, "say /quiz"); } 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 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 szlugi (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 szlugi 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 szlugi 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 szlugi 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 szlugi 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); }