hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.29. 02:31



Jelenlévő felhasználók

Jelenleg 156 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 155 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 31 hozzászólás ]  Oldal Előző 1 2 3 4 Következő
Szerző Üzenet
 Hozzászólás témája: Re: [LINUX] SQLx LOCALHOSTON
HozzászólásElküldve: 2013.04.19. 20:09 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Ja megvan.. Nem az sql.cfg-ben kell megadni az adatokat, hanem a plugin cvarjaiban :D
Kód:
g_host = register_cvar("rs_host", "hoszt");
g_user = register_cvar("rs_user", "felhasznalonev");
g_pass = register_cvar("rs_pass", "jelszo");
g_db = register_cvar("rs_db", "adatbazis neve");

vagy
amxx.cfg-be:
Kód:
rs_host "hoszt"
rs_user "felhasznalonev"
rs_pass "jelszo"
rs_db "adatbazis neve"


A hozzászólást 1 alkalommal szerkesztették, utoljára Silent 2013.04.19. 20:18-kor.

Ők köszönték meg Silent nek ezt a hozzászólást: Bruti (2013.04.19. 21:02)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [LINUX] SQLx LOCALHOSTON
HozzászólásElküldve: 2013.04.19. 20:17 
Offline
Lelkes

Csatlakozott: 2012.05.01. 08:38
Hozzászólások: 19
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 1 alkalommal
L 04/19/2013 - 20:11:35: Nemjo mert: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'N' at line 1

kaptam egy ilyet is.
ezt akkor amikor admin_sql.amxx et raktam be.
de akkor a szerver el se indul :s


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [LINUX] SQLx LOCALHOSTON
HozzászólásElküldve: 2013.04.19. 20:21 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
De minek raktad be?
Az advanced_bans_sql.sma-jába írd bele az sql adatokat, forgasd le, rakd be, resizd, élvezd. 8-)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [LINUX] SQLx LOCALHOSTON
HozzászólásElküldve: 2013.04.19. 20:24 
Offline
Lelkes

Csatlakozott: 2012.05.01. 08:38
Hozzászólások: 19
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 1 alkalommal
igenám, de szükségem lenne admin_sql re is :s


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [LINUX] SQLx LOCALHOSTON
HozzászólásElküldve: 2013.04.19. 20:29 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Másold be admins_sql.sma-t is akkor..


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [LINUX] SQLx LOCALHOSTON
HozzászólásElküldve: 2013.04.19. 20:32 
Offline
Lelkes

Csatlakozott: 2012.05.01. 08:38
Hozzászólások: 19
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 1 alkalommal
őőőő, van itt valami...
SMA Forráskód: [ Mindet kijelol ]
  1. PrepareTable()
  2. {
  3. new query[128];
  4. formatex(query, sizeof(query) - 1,\
  5. "CREATE TABLE IF NOT EXISTS `%s` (`%s` varchar(32) NOT NULL, `%s` varchar(35) NOT NULL, `%s` int(10) NOT NULL, `%s` varchar(32) NOT NULL, `%s` varchar(128) NOT NULL, `%s` varchar(64) NOT NULL, `%s` varchar(35) NOT NULL);",\
  6. TABLE_NAME, KEY_NAME, KEY_STEAMID, KEY_BANLENGTH, KEY_UNBANTIME, KEY_REASON, KEY_ADMIN_NAME, KEY_ADMIN_STEAMID
  7. );
  8.  
  9. SQL_ThreadQuery(g_sql_tuple, "QueryCreateTable", query);
  10. }


mindössze ennyi [ SQL_ThreadQuery(g_sql_tuple, "QueryCreateTable", query); ] ami a kapcsolódásra utal. és ez sincsen sehol definiálva :shock:

2.
mit másoljak be admin.sma ból?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [LINUX] SQLx LOCALHOSTON
HozzászólásElküldve: 2013.04.19. 20:41 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
1.Nem értem mit művelsz. Ne nyúlj semmihez, csak amit leírtam, oda helyettesítsd be az sql adataidat.

2.Az admin_sql.sma hibás részét.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [LINUX] SQLx LOCALHOSTON
HozzászólásElküldve: 2013.04.20. 17:55 
Offline
Lelkes

Csatlakozott: 2012.05.01. 08:38
Hozzászólások: 19
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 1 alkalommal
!!!Új részletek!!!

admin_sql.amxx mikor csatlakozna adatbázishoz, lefagy. (log nélkül...) ((NEM TUDSZ BELŐLE KISZEDNI LOGOT))
Lehetséges okok: :?: :shock: :cry:

Valami a mysql táblával lehet. :s
Ha nem létezik a tábla, akkor létre hoz egyet, és azt tudja használni. (restart után is)
DE ha egy létező táblát (amit én hozok létre) adok meg neki, akkor lefagy mielőtt bármeddig is eljuthatna.

Asztali gépemről indult, és működött is, ugyan ezen módszerrel elkészített táblával [windows] on.
Itt már valószínűleg nem is a oprendszer a hiba, hanem inkább ez:

Adatbázis tábla INDEX az asztali gépemen [ezzel működik]
Kulcsnév Típus Egyedi Csomagolt Oszlop Számosság Illesztés Nulla Megjegyzés
PRIMARY BTREE Igen Nem id 5 A Nem


Adatbázis tábla INDEX a VPS en
Kulcsnév Típus Egyedi Csomagolt Oszlop Számosság Illesztés Nulla Megjegyzés
PRIMARY BTREE Igen Nem id 1 A


Mindössze ennyi a különbség a két tábla között. Minden másban megegyeznek.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [LINUX] SQLx LOCALHOSTON
HozzászólásElküldve: 2013.04.20. 18:04 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Ez amit most leírtál lényegtelen. Épp most foglalkoztam ezzel énis, tessék én kijavítottam benne a hibákat.
Szedd ki plugins.ini-ből az admin_sql.amxx-et és az admin.amxx-et is és helyette ezt rakd be. Benne találsz ilyet, hogy kiszolgáló stb, ezeket töltsd ki. Biztonság kedvéért én az sql.cfg fájlba is beleraktam az adataimat.
SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #define USING_SQL
  3.  
  4. #include <amxmodx>
  5. #include <amxmisc>
  6. #if defined USING_SQL
  7. #include <sqlx>
  8. #endif
  9.  
  10.  
  11.  
  12. //new Vector:AdminList;
  13.  
  14. new AdminCount;
  15.  
  16. new PLUGINNAME[] = "AMX Mod X"
  17.  
  18. #define ADMIN_LOOKUP (1<<0)
  19. #define ADMIN_NORMAL (1<<1)
  20. #define ADMIN_STEAM (1<<2)
  21. #define ADMIN_IPADDR (1<<3)
  22. #define ADMIN_NAME (1<<4)
  23.  
  24. new g_cmdLoopback[16]
  25. new bool:g_CaseSensitiveName[33];
  26.  
  27. // pcvars
  28. new amx_mode;
  29. new amx_password_field;
  30. new amx_default_access;
  31.  
  32. public plugin_init()
  33. {
  34. #if defined USING_SQL
  35. register_plugin("AdminSQL", AMXX_VERSION_STR, "AMXX Dev Team")
  36. #else
  37. register_plugin("Admin Base", AMXX_VERSION_STR, "AMXX Dev Team")
  38. #endif
  39. register_dictionary("admin.txt")
  40. register_dictionary("common.txt")
  41. amx_mode=register_cvar("amx_mode", "1")
  42. amx_password_field=register_cvar("amx_password_field", "_pw")
  43. amx_default_access=register_cvar("amx_default_access", "")
  44.  
  45. register_cvar("amx_vote_ratio", "0.02")
  46. register_cvar("amx_vote_time", "10")
  47. register_cvar("amx_vote_answers", "1")
  48. register_cvar("amx_vote_delay", "60")
  49. register_cvar("amx_last_voting", "0")
  50. register_cvar("amx_show_activity", "2")
  51. register_cvar("amx_votekick_ratio", "0.40")
  52. register_cvar("amx_voteban_ratio", "0.40")
  53. register_cvar("amx_votemap_ratio", "0.40")
  54.  
  55. set_cvar_float("amx_last_voting", 0.0)
  56.  
  57. #if defined USING_SQL
  58. register_srvcmd("amx_sqladmins", "adminSql")
  59. register_cvar("amx_sql_table", "admins")
  60. #endif
  61. register_cvar("amx_sql_host", "kiszolgalo")
  62. register_cvar("amx_sql_user", "felhasznalo")
  63. register_cvar("amx_sql_pass", "jelszo")
  64. register_cvar("amx_sql_db", "adatbazisneve")
  65. register_cvar("amx_sql_type", "mysql") //ezt hagyd így
  66.  
  67. register_concmd("amx_reloadadmins", "cmdReload", ADMIN_CFG)
  68. register_concmd("amx_addadmin", "addadminfn", ADMIN_RCON, "<playername|auth> <accessflags> [password] [authtype] - add specified player as an admin to users.ini")
  69.  
  70. format(g_cmdLoopback, 15, "amxauth%c%c%c%c", random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'))
  71.  
  72. register_clcmd(g_cmdLoopback, "ackSignal")
  73.  
  74. remove_user_flags(0, read_flags("z")) // Remove 'user' flag from server rights
  75.  
  76. new configsDir[64]
  77. get_configsdir(configsDir, 63)
  78.  
  79. server_cmd("exec %s/amxx.cfg", configsDir) // Execute main configuration file
  80. server_cmd("exec %s/sql.cfg", configsDir)
  81.  
  82. // Create a vector of 5 cells to store the info.
  83. //AdminList=vector_create(5);
  84.  
  85.  
  86. #if defined USING_SQL
  87. server_cmd("amx_sqladmins")
  88. #else
  89. format(configsDir, 63, "%s/users.ini", configsDir)
  90. loadSettings(configsDir) // Load admins accounts
  91. #endif
  92. }
  93. public client_connect(id)
  94. {
  95. g_CaseSensitiveName[id] = false;
  96. }
  97. public addadminfn(id, level, cid)
  98. {
  99. if (!cmd_access(id, level, cid, 3))
  100. return PLUGIN_HANDLED
  101.  
  102. new idtype = ADMIN_STEAM | ADMIN_LOOKUP
  103.  
  104. if (read_argc() >= 5)
  105. {
  106. new t_arg[16]
  107. read_argv(4, t_arg, 15)
  108.  
  109. if (equali(t_arg, "steam") || equali(t_arg, "steamid") || equali(t_arg, "auth"))
  110. {
  111. idtype = ADMIN_STEAM
  112. }
  113. else if (equali(t_arg, "ip"))
  114. {
  115. idtype = ADMIN_IPADDR
  116. }
  117. else if (equali(t_arg, "name") || equali(t_arg, "nick"))
  118. {
  119. idtype = ADMIN_NAME
  120.  
  121. if (equali(t_arg, "name"))
  122. idtype |= ADMIN_LOOKUP
  123. } else {
  124. console_print(id, "[%s] Unknown id type ^"%s^", use one of: steamid, ip, name", PLUGINNAME, t_arg)
  125. return PLUGIN_HANDLED
  126. }
  127. }
  128.  
  129. new arg[33]
  130. read_argv(1, arg, 32)
  131. new player = -1
  132.  
  133. if (idtype & ADMIN_STEAM)
  134. {
  135. if (containi(arg, "STEAM_0:") == -1)
  136. {
  137. idtype |= ADMIN_LOOKUP
  138. player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF | CMDTARGET_NO_BOTS)
  139. } else {
  140. new _steamid[44]
  141. static _players[32], _num, _pv
  142. get_players(_players, _num)
  143. for (new _i=0; _i<_num; _i++)
  144. {
  145. _pv = _players[_i]
  146. get_user_authid(_pv, _steamid, sizeof(_steamid)-1)
  147. if (!_steamid[0])
  148. continue
  149. if (equal(_steamid, arg))
  150. {
  151. player = _pv
  152. break
  153. }
  154. }
  155. if (player < 1)
  156. {
  157. idtype &= ~ADMIN_LOOKUP
  158. }
  159. }
  160. }
  161. else if (idtype & ADMIN_NAME)
  162. {
  163. player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF | CMDTARGET_NO_BOTS)
  164.  
  165. if (player)
  166. idtype |= ADMIN_LOOKUP
  167. else
  168. idtype &= ~ADMIN_LOOKUP
  169. }
  170. else if (idtype & ADMIN_IPADDR)
  171. {
  172. new len = strlen(arg)
  173. new dots, chars
  174.  
  175. for (new i = 0; i < len; i++)
  176. {
  177. if (arg[i] == '.')
  178. {
  179. if (!chars || chars > 3)
  180. break
  181.  
  182. if (++dots > 3)
  183. break
  184.  
  185. chars = 0
  186. } else {
  187. chars++
  188. }
  189.  
  190. if (dots != 3 || !chars || chars > 3)
  191. {
  192. idtype |= ADMIN_LOOKUP
  193. player = find_player("dh", arg)
  194. }
  195. }
  196. }
  197.  
  198. if (idtype & ADMIN_LOOKUP && !player)
  199. {
  200. console_print(id, "%L", id, "CL_NOT_FOUND")
  201. return PLUGIN_HANDLED
  202. }
  203.  
  204. new flags[64]
  205. read_argv(2, flags, 63)
  206.  
  207. new password[64]
  208. if (read_argc() >= 4)
  209. read_argv(3, password, 63)
  210.  
  211. new auth[33]
  212. new Comment[33]; // name of player to pass to comment field
  213. if (idtype & ADMIN_LOOKUP)
  214. {
  215. get_user_name(player, Comment, sizeof(Comment)-1)
  216. if (idtype & ADMIN_STEAM)
  217. {
  218. get_user_authid(player, auth, 32)
  219. }
  220. else if (idtype & ADMIN_IPADDR)
  221. {
  222. get_user_ip(player, auth, 32)
  223. }
  224. else if (idtype & ADMIN_NAME)
  225. {
  226. get_user_name(player, auth, 32)
  227. }
  228. } else {
  229. copy(auth, 32, arg)
  230. }
  231.  
  232. new type[16], len
  233.  
  234. if (idtype & ADMIN_STEAM)
  235. len += format(type[len], 15-len, "c")
  236. else if (idtype & ADMIN_IPADDR)
  237. len += format(type[len], 15-len, "d")
  238.  
  239. if (strlen(password) > 0)
  240. len += format(type[len], 15-len, "a")
  241. else
  242. len += format(type[len], 15-len, "e")
  243.  
  244. AddAdmin(id, auth, flags, password, type, Comment)
  245. cmdReload(id, ADMIN_CFG, 0)
  246.  
  247. if (player > 0)
  248. {
  249. new name[32]
  250. get_user_info(player, "name", name, 31)
  251. accessUser(player, name)
  252. }
  253.  
  254. return PLUGIN_HANDLED
  255. }
  256.  
  257. AddAdmin(id, auth[], accessflags[], password[], flags[], comment[]="")
  258. {
  259. #if defined USING_SQL
  260. new error[128], errno
  261.  
  262. new Handle:info = SQL_MakeStdTuple()
  263. new Handle:sql = SQL_Connect(info, errno, error, 127)
  264.  
  265. if (sql == Empty_Handle)
  266. {
  267. server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_CON", error)
  268. //backup to users.ini
  269. #endif
  270. // Make sure that the users.ini file exists.
  271. new configsDir[64]
  272. get_configsdir(configsDir, 63)
  273. format(configsDir, 63, "%s/users.ini", configsDir)
  274.  
  275. if (!file_exists(configsDir))
  276. {
  277. console_print(id, "[%s] File ^"%s^" doesn't exist.", PLUGINNAME, configsDir)
  278. return
  279. }
  280.  
  281. // Make sure steamid isn't already in file.
  282. new line = 0, textline[256], len
  283. const SIZE = 63
  284. new line_steamid[SIZE + 1], line_password[SIZE + 1], line_accessflags[SIZE + 1], line_flags[SIZE + 1], parsedParams
  285.  
  286. // <name|ip|steamid> <password> <access flags> <account flags>
  287. while ((line = read_file(configsDir, line, textline, 255, len)))
  288. {
  289. if (len == 0 || equal(textline, ";", 1))
  290. continue // comment line
  291.  
  292. parsedParams = parse(textline, line_steamid, SIZE, line_password, SIZE, line_accessflags, SIZE, line_flags, SIZE)
  293.  
  294. if (parsedParams != 4)
  295. continue // Send warning/error?
  296.  
  297. if (containi(line_flags, flags) != -1 && equal(line_steamid, auth))
  298. {
  299. console_print(id, "[%s] %s already exists!", PLUGINNAME, auth)
  300. return
  301. }
  302. }
  303.  
  304. // If we came here, steamid doesn't exist in users.ini. Add it.
  305. new linetoadd[512]
  306.  
  307. if (comment[0]==0)
  308. {
  309. formatex(linetoadd, 511, "^r^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", auth, password, accessflags, flags)
  310. }
  311. else
  312. {
  313. formatex(linetoadd, 511, "^r^n^"%s^" ^"%s^" ^"%s^" ^"%s^" ; %s", auth, password, accessflags, flags, comment)
  314. }
  315. console_print(id, "Adding:^n%s", linetoadd)
  316.  
  317. if (!write_file(configsDir, linetoadd))
  318. console_print(id, "[%s] Failed writing to %s!", PLUGINNAME, configsDir)
  319. #if defined USING_SQL
  320. }
  321.  
  322. new table[32]
  323.  
  324. get_cvar_string("amx_sql_table", table, 31)
  325.  
  326. new Handle:query = SQL_PrepareQuery(sql, "SELECT * FROM `%s` WHERE (`auth` = '%s')", table, auth)
  327.  
  328. if (!SQL_Execute(query))
  329. {
  330. SQL_QueryError(query, error, 127)
  331. server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error)
  332. console_print(id, "[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error)
  333. } else if (SQL_NumResults(query)) {
  334. console_print(id, "[%s] %s already exists!", PLUGINNAME, auth)
  335. } else {
  336. console_print(id, "Adding to database:^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", auth, password, accessflags, flags)
  337.  
  338. SQL_QueryAndIgnore(sql, "REPLACE INTO `%s` (`auth`, `password`, `access`, `flags`) VALUES ('%s', '%s', '%s', '%s')", table, auth, password, accessflags, flags)
  339. }
  340.  
  341. SQL_FreeHandle(query)
  342. SQL_FreeHandle(sql)
  343. SQL_FreeHandle(info)
  344. #endif
  345.  
  346. }
  347. public plugin_cfg()
  348. {
  349. set_task(6.1, "delayed_load")
  350. }
  351.  
  352. public delayed_load()
  353. {
  354. new configFile[128], curMap[64], configDir[128]
  355.  
  356. get_configsdir(configDir, sizeof(configDir)-1)
  357. get_mapname(curMap, sizeof(curMap)-1)
  358.  
  359. new i=0;
  360.  
  361. while (curMap[i] != '_' && curMap[i++] != '^0') {/*do nothing*/}
  362.  
  363. if (curMap[i]=='_')
  364. {
  365. // this map has a prefix
  366. curMap[i]='^0';
  367. formatex(configFile, sizeof(configFile)-1, "%s/maps/prefix_%s.cfg", configDir, curMap);
  368.  
  369. if (file_exists(configFile))
  370. {
  371. server_cmd("exec %s", configFile);
  372. }
  373. }
  374.  
  375. get_mapname(curMap, sizeof(curMap)-1)
  376.  
  377.  
  378. formatex(configFile, sizeof(configFile)-1, "%s/maps/%s.cfg", configDir, curMap)
  379.  
  380. if (file_exists(configFile))
  381. {
  382. server_cmd("exec %s", configFile)
  383. }
  384.  
  385. }
  386.  
  387. loadSettings(szFilename[])
  388. {
  389. new File=fopen(szFilename,"r");
  390.  
  391. if (File)
  392. {
  393. new Text[512];
  394. new Flags[32];
  395. new Access[32]
  396. new AuthData[44];
  397. new Password[32];
  398.  
  399. while (!feof(File))
  400. {
  401. fgets(File,Text,sizeof(Text)-1);
  402.  
  403. trim(Text);
  404.  
  405. // comment
  406. if (Text[0]==';')
  407. {
  408. continue;
  409. }
  410.  
  411. Flags[0]=0;
  412. Access[0]=0;
  413. AuthData[0]=0;
  414. Password[0]=0;
  415.  
  416. // not enough parameters
  417. if (parse(Text,AuthData,sizeof(AuthData)-1,Password,sizeof(Password)-1,Access,sizeof(Access)-1,Flags,sizeof(Flags)-1) < 2)
  418. {
  419. continue;
  420. }
  421.  
  422. admins_push(AuthData,Password,read_flags(Access),read_flags(Flags));
  423.  
  424. AdminCount++;
  425. }
  426.  
  427. fclose(File);
  428. }
  429.  
  430. if (AdminCount == 1)
  431. {
  432. server_print("[AMXX] %L", LANG_SERVER, "LOADED_ADMIN");
  433. }
  434. else
  435. {
  436. server_print("[AMXX] %L", LANG_SERVER, "LOADED_ADMINS", AdminCount);
  437. }
  438.  
  439. return 1;
  440. }
  441.  
  442. #if defined USING_SQL
  443. public adminSql()
  444. {
  445. new table[32], error[128], type[12], errno
  446.  
  447. new Handle:info = SQL_MakeStdTuple()
  448. new Handle:sql = SQL_Connect(info, errno, error, 127)
  449.  
  450. get_cvar_string("amx_sql_table", table, 31)
  451.  
  452. SQL_GetAffinity(type, 11)
  453.  
  454. if (sql == Empty_Handle)
  455. {
  456. server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_CON", error)
  457.  
  458. //backup to users.ini
  459. new configsDir[64]
  460.  
  461. get_configsdir(configsDir, 63)
  462. format(configsDir, 63, "%s/users.ini", configsDir)
  463. loadSettings(configsDir) // Load admins accounts
  464.  
  465. return PLUGIN_HANDLED
  466. }
  467.  
  468. new Handle:query
  469.  
  470. if (equali(type, "sqlite"))
  471. {
  472. if (!sqlite_TableExists(sql, table))
  473. {
  474. SQL_QueryAndIgnore(sql, "CREATE TABLE %s ( auth TEXT NOT NULL DEFAULT '', password TEXT NOT NULL DEFAULT '', access TEXT NOT NULL DEFAULT '', flags TEXT NOT NULL DEFAULT '' )", table)
  475. }
  476.  
  477. query = SQL_PrepareQuery(sql, "SELECT auth, password, access, flags FROM %s", table)
  478. } else {
  479. SQL_QueryAndIgnore(sql, "CREATE TABLE IF NOT EXISTS `%s` ( `auth` VARCHAR( 32 ) NOT NULL, `password` VARCHAR( 32 ) NOT NULL, `access` VARCHAR( 32 ) NOT NULL, `flags` VARCHAR( 32 ) NOT NULL ) COMMENT = 'AMX Mod X Admins'", table)
  480. query = SQL_PrepareQuery(sql,"SELECT `auth`,`password`,`access`,`flags` FROM `%s`", table)
  481. }
  482.  
  483. if (!SQL_Execute(query))
  484. {
  485. SQL_QueryError(query, error, 127)
  486. server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error)
  487. } else if (!SQL_NumResults(query)) {
  488. server_print("[AMXX] %L", LANG_SERVER, "NO_ADMINS")
  489. } else {
  490.  
  491. AdminCount = 0
  492.  
  493. /** do this incase people change the query order and forget to modify below */
  494. new qcolAuth = SQL_FieldNameToNum(query, "auth")
  495. new qcolPass = SQL_FieldNameToNum(query, "password")
  496. new qcolAccess = SQL_FieldNameToNum(query, "access")
  497. new qcolFlags = SQL_FieldNameToNum(query, "flags")
  498.  
  499. new AuthData[44];
  500. new Password[44];
  501. new Access[32];
  502. new Flags[32];
  503.  
  504. while (SQL_MoreResults(query))
  505. {
  506. SQL_ReadResult(query, qcolAuth, AuthData, sizeof(AuthData)-1);
  507. SQL_ReadResult(query, qcolPass, Password, sizeof(Password)-1);
  508. SQL_ReadResult(query, qcolAccess, Access, sizeof(Access)-1);
  509. SQL_ReadResult(query, qcolFlags, Flags, sizeof(Flags)-1);
  510.  
  511. admins_push(AuthData,Password,read_flags(Access),read_flags(Flags));
  512.  
  513. ++AdminCount;
  514. SQL_NextRow(query)
  515. }
  516.  
  517. if (AdminCount == 1)
  518. {
  519. server_print("[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMIN")
  520. }
  521. else
  522. {
  523. server_print("[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMINS", AdminCount)
  524. }
  525.  
  526. SQL_FreeHandle(query)
  527. SQL_FreeHandle(sql)
  528. SQL_FreeHandle(info)
  529. }
  530.  
  531. return PLUGIN_HANDLED
  532. }
  533. #endif
  534.  
  535. public cmdReload(id, level, cid)
  536. {
  537. if (!cmd_access(id, level, cid, 1))
  538. return PLUGIN_HANDLED
  539.  
  540. //strip original flags (patch submitted by mrhunt)
  541. remove_user_flags(0, read_flags("z"))
  542.  
  543. admins_flush();
  544.  
  545. #if !defined USING_SQL
  546. new filename[128]
  547.  
  548. get_configsdir(filename, 127)
  549. format(filename, 63, "%s/users.ini", filename)
  550.  
  551. AdminCount = 0;
  552. loadSettings(filename); // Re-Load admins accounts
  553.  
  554. if (id != 0)
  555. {
  556. if (AdminCount == 1)
  557. {
  558. console_print(id, "[AMXX] %L", LANG_SERVER, "LOADED_ADMIN");
  559. }
  560. else
  561. {
  562. console_print(id, "[AMXX] %L", LANG_SERVER, "LOADED_ADMINS", AdminCount);
  563. }
  564. }
  565. #else
  566. AdminCount = 0
  567. adminSql()
  568.  
  569. if (id != 0)
  570. {
  571. if (AdminCount == 1)
  572. console_print(id, "[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMIN")
  573. else
  574. console_print(id, "[AMXX] %L", LANG_SERVER, "SQL_LOADED_ADMINS", AdminCount)
  575. }
  576. #endif
  577.  
  578. new players[32], num, pv
  579. new name[32]
  580. get_players(players, num)
  581. for (new i=0; i<num; i++)
  582. {
  583. pv = players[i]
  584. get_user_name(pv, name, 31)
  585. accessUser(pv, name)
  586. }
  587.  
  588. return PLUGIN_HANDLED
  589. }
  590.  
  591. getAccess(id, name[], authid[], ip[], password[])
  592. {
  593. new index = -1
  594. new result = 0
  595.  
  596. static Count;
  597. static Flags;
  598. static Access;
  599. static AuthData[44];
  600. static Password[32];
  601.  
  602. g_CaseSensitiveName[id] = false;
  603.  
  604. Count=admins_num();
  605. for (new i = 0; i < Count; ++i)
  606. {
  607. Flags=admins_lookup(i,AdminProp_Flags);
  608. admins_lookup(i,AdminProp_Auth,AuthData,sizeof(AuthData)-1);
  609.  
  610. if (Flags & FLAG_AUTHID)
  611. {
  612. if (equal(authid, AuthData))
  613. {
  614. index = i
  615. break
  616. }
  617. }
  618. else if (Flags & FLAG_IP)
  619. {
  620. new c = strlen(AuthData)
  621.  
  622. if (AuthData[c - 1] == '.') /* check if this is not a xxx.xxx. format */
  623. {
  624. if (equal(AuthData, ip, c))
  625. {
  626. index = i
  627. break
  628. }
  629. } /* in other case an IP must just match */
  630. else if (equal(ip, AuthData))
  631. {
  632. index = i
  633. break
  634. }
  635. }
  636. else
  637. {
  638. if (Flags & FLAG_CASE_SENSITIVE)
  639. {
  640. if (Flags & FLAG_TAG)
  641. {
  642. if (contain(name, AuthData) != -1)
  643. {
  644. index = i
  645. g_CaseSensitiveName[id] = true
  646. break
  647. }
  648. }
  649. else if (equal(name, AuthData))
  650. {
  651. index = i
  652. g_CaseSensitiveName[id] = true
  653. break
  654. }
  655. }
  656. else
  657. {
  658. if (Flags & FLAG_TAG)
  659. {
  660. if (containi(name, AuthData) != -1)
  661. {
  662. index = i
  663. break
  664. }
  665. }
  666. else if (equali(name, AuthData))
  667. {
  668. index = i
  669. break
  670. }
  671. }
  672. }
  673. }
  674.  
  675. if (index != -1)
  676. {
  677. Access=admins_lookup(index,AdminProp_Access);
  678.  
  679. if (Flags & FLAG_NOPASS)
  680. {
  681. result |= 8
  682. new sflags[32]
  683.  
  684. get_flags(Access, sflags, 31)
  685. set_user_flags(id, Access)
  686.  
  687. log_amx("Login: ^"%s<%d><%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, sflags, ip)
  688. }
  689. else
  690. {
  691.  
  692. admins_lookup(index,AdminProp_Password,Password,sizeof(Password)-1);
  693.  
  694. if (equal(password, Password))
  695. {
  696. result |= 12
  697. set_user_flags(id, Access)
  698.  
  699. new sflags[32]
  700. get_flags(Access, sflags, 31)
  701.  
  702. log_amx("Login: ^"%s<%d><%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, sflags, ip)
  703. }
  704. else
  705. {
  706. result |= 1
  707.  
  708. if (Flags & FLAG_KICK)
  709. {
  710. result |= 2
  711. log_amx("Login: ^"%s<%d><%s><>^" kicked due to invalid password (account ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, AuthData, ip)
  712. }
  713. }
  714. }
  715. }
  716. else if (get_pcvar_float(amx_mode) == 2.0)
  717. {
  718. result |= 2
  719. }
  720. else
  721. {
  722. new defaccess[32]
  723.  
  724. get_pcvar_string(amx_default_access, defaccess, 31)
  725.  
  726. if (!strlen(defaccess))
  727. {
  728. copy(defaccess, 32, "z")
  729. }
  730.  
  731. new idefaccess = read_flags(defaccess)
  732.  
  733. if (idefaccess)
  734. {
  735. result |= 8
  736. set_user_flags(id, idefaccess)
  737. }
  738. }
  739.  
  740. return result
  741. }
  742.  
  743. accessUser(id, name[] = "")
  744. {
  745. remove_user_flags(id)
  746.  
  747. new userip[32], userauthid[32], password[32], passfield[32], username[32]
  748.  
  749. get_user_ip(id, userip, 31, 1)
  750. get_user_authid(id, userauthid, 31)
  751.  
  752. if (name[0])
  753. {
  754. copy(username, 31, name)
  755. }
  756. else
  757. {
  758. get_user_name(id, username, 31)
  759. }
  760.  
  761. get_pcvar_string(amx_password_field, passfield, 31)
  762. get_user_info(id, passfield, password, 31)
  763.  
  764. new result = getAccess(id, username, userauthid, userip, password)
  765.  
  766. if (result & 1)
  767. {
  768. client_cmd(id, "echo ^"* %L^"", id, "INV_PAS")
  769. }
  770.  
  771. if (result & 2)
  772. {
  773. client_cmd(id, "%s", g_cmdLoopback)
  774. return PLUGIN_HANDLED
  775. }
  776.  
  777. if (result & 4)
  778. {
  779. client_cmd(id, "echo ^"* %L^"", id, "PAS_ACC")
  780. }
  781.  
  782. if (result & 8)
  783. {
  784. client_cmd(id, "echo ^"* %L^"", id, "PRIV_SET")
  785. }
  786.  
  787. return PLUGIN_CONTINUE
  788. }
  789.  
  790. public client_infochanged(id)
  791. {
  792. if (!is_user_connected(id) || !get_pcvar_num(amx_mode))
  793. {
  794. return PLUGIN_CONTINUE
  795. }
  796.  
  797. new newname[32], oldname[32]
  798.  
  799. get_user_name(id, oldname, 31)
  800. get_user_info(id, "name", newname, 31)
  801.  
  802. if (g_CaseSensitiveName[id])
  803. {
  804. if (!equal(newname, oldname))
  805. {
  806. accessUser(id, newname)
  807. }
  808. }
  809. else
  810. {
  811. if (!equali(newname, oldname))
  812. {
  813. accessUser(id, newname)
  814. }
  815. }
  816. return PLUGIN_CONTINUE
  817. }
  818.  
  819. public ackSignal(id)
  820. {
  821. server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "NO_ENTRY")
  822. return PLUGIN_HANDLED
  823. }
  824.  
  825. public client_authorized(id)
  826. return get_pcvar_num(amx_mode) ? accessUser(id) : PLUGIN_CONTINUE
  827.  
  828. public client_putinserver(id)
  829. {
  830. if (!is_dedicated_server() && id == 1)
  831. return get_pcvar_num(amx_mode) ? accessUser(id) : PLUGIN_CONTINUE
  832.  
  833. return PLUGIN_CONTINUE
  834. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: [LINUX] SQLx LOCALHOSTON
HozzászólásElküldve: 2013.04.20. 18:42 
Offline
Lelkes

Csatlakozott: 2012.05.01. 08:38
Hozzászólások: 19
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 1 alkalommal
Nem lett jó :s
amúgy miben változtattad?


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 31 hozzászólás ]  Oldal Előző 1 2 3 4 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 5 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole