hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.28. 03:16



Jelenlévő felhasználók

Jelenleg 237 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 236 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  [ 12 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
 Hozzászólás témája: mysql
HozzászólásElküldve: 2014.01.16. 16:01 
Offline
Jómunkásember

Csatlakozott: 2013.02.11. 16:06
Hozzászólások: 491
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 50 alkalommal
Hello. valaki lenne olyan kedves, és elmagyarázná, hogyan kell egy mysql-t kötni a pluginhoz? mentést és betöltést? megköszönném...

_________________
Rengeteg új beszólás eléréséhez kattints IDE (Ezek alapból sank soundshoz készültek)

Steam profil:
[steam]http://steamcommunity.com/profiles/76561198089487307[/steam]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: mysql
HozzászólásElküldve: 2014.01.16. 16:30 
Offline
Nagyúr
Avatar

Csatlakozott: 2011.12.18. 10:40
Hozzászólások: 671
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 20 alkalommal
Pl. Milyen pluginhoz?

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: mysql
HozzászólásElküldve: 2014.01.16. 16:36 
Offline
Őskövület
Avatar

Csatlakozott: 2012.03.22. 18:22
Hozzászólások: 2978
Megköszönt másnak: 115 alkalommal
Megköszönték neki: 368 alkalommal
Mutasd meg a pontrendszert :D
1. Meg akarom tanulni én is a mysql-t
2. Ott van mentés,betöltés,ami egyben lekérés és adat adás is :D

_________________
Blasenkampfwagen

https://discord.gg/uBYnNnZP
GTA:PURSUIT MTA


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: mysql
HozzászólásElküldve: 2014.01.16. 20:45 
Offline
Őskövület
Avatar

Csatlakozott: 2012.02.27. 09:42
Hozzászólások: 2588
Megköszönt másnak: 25 alkalommal
Megköszönték neki: 418 alkalommal
tessék egy alap pontrendszerbe beleírtam 1 mentést a fontos dolgokhoz odaírtam hogy mi mit csinál a többi csak sablon

(maga a plugin működik de a leírásban lehetnek hibák eléggé fáradt vagyok ezért elnézést)
SMA Forráskód: [ Mindet kijelol ]
  1. /*
  2. Keszito: qKKKJ
  3.  
  4. Minden jog fenntartva!
  5. */
  6. #include <amxmodx>
  7. #include <amxmisc>
  8. #include <sqlx>
  9. new pont[33]
  10.  
  11.  
  12. new Host[] = "localhost"
  13. new User[] = "root"
  14. new Pass[] = "jelszo"
  15. new Db[] = "adatbazis"
  16.  
  17. new Handle:g_SqlTuple
  18. new g_Error[512]
  19.  
  20. public plugin_init() {
  21. register_plugin("ptrendszersqlmentes","1.0","qKKKJ")
  22. register_event("DeathMsg", "Event_DeathMsg", "a")
  23. set_task(1.0, "MySql_Init") // a mysql init be csatlakozunk az adatbázishoz
  24. }
  25. public Event_DeathMsg()
  26. {
  27. if(read_data(1) != read_data(2))
  28. {
  29. pont[read_data(1)] += 10
  30. }
  31. }
  32. public MySql_Init()
  33. {
  34. g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db) //csatlakozunk az adatbázishoz
  35. new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
  36. if(SqlConnection == Empty_Handle)
  37. set_fail_state(g_Error)
  38. new Handle:Queries
  39. Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS pontrendszer (nev varchar(32),pont INT(11))") //létrehozzuk a pontrendszer táblát név és pont sorokkal
  40.  
  41. if(!SQL_Execute(Queries))
  42. {
  43. SQL_QueryError(Queries,g_Error,charsmax(g_Error))
  44. set_fail_state(g_Error)
  45.  
  46. }
  47. SQL_FreeHandle(Queries)
  48. SQL_FreeHandle(SqlConnection)
  49. }
  50. public plugin_end()
  51. {
  52. SQL_FreeHandle(g_SqlTuple)
  53. }
  54.  
  55. public betoltes(id)
  56. {
  57. new szNev[32], szTemp[512]
  58. get_user_name(id, szNev, charsmax(szNev))
  59.  
  60. new Data[1]
  61. Data[0] = id
  62. format(szTemp,charsmax(szTemp),"SELECT * FROM `pontrendszer` WHERE (`pontrendszer`.`nev` = '%s')", szNev) //kiválasztjuk a játékost a pontrendszer táblából a neve alapján
  63. SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
  64. }
  65.  
  66. public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  67. {
  68. if(FailState == TQUERY_CONNECT_FAILED)
  69. {
  70. log_amx("Kapcsolodas sikertelen. [%d] %s", Errcode, Error)
  71. }
  72. else if(FailState == TQUERY_QUERY_FAILED)
  73. {
  74. log_amx("A QUERY betoltese sikertelen.[%d] %s", Errcode, Error)
  75. }
  76.  
  77. new id
  78. id = Data[0]
  79.  
  80. if(SQL_NumResults(Query) < 1)
  81. {
  82.  
  83. new szNev[32]
  84. get_user_name(id, szNev, charsmax(szNev))
  85.  
  86. new szTemp[512]
  87.  
  88. format(szTemp,charsmax(szTemp),"INSERT INTO `pontrendszer` ( `nev` , `pont`)VALUES ('%s','0');",szNev) //ha a játékos neve nem található a táblában akkor létrehozunk neki egy új sort a nevével és a pont értékét beállítjük 0 ra
  89. SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  90. }
  91. else
  92. {
  93. pont[id] = SQL_ReadResult(Query, 1) // ha van már ilyen név az adatbázisban akkor a pontjait beállítjuk neki a pont sorban található értékre (0 = név, 1= pont)
  94. }
  95.  
  96. return PLUGIN_HANDLED
  97. }
  98. public mentes(id)
  99. {
  100. new szNev[32], szTemp[512]
  101. get_user_name(id, szNev, charsmax(szNev))
  102.  
  103. format(szTemp,charsmax(szTemp),"UPDATE `pontrendszer` SET `pont` = '%i' WHERE `pontrendszer`.`nev` = '%s';",pont[id], szNev) //frissítjük az adatokat tehát a pontrendszer táblán belüli pont sorba beírjuk a játékos jelenlegi pontját ott ahol a név megegyezik a játékos nevével
  104. SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  105. }
  106.  
  107. public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  108. {
  109. SQL_FreeHandle(Query)
  110.  
  111. return PLUGIN_HANDLED
  112. }
  113.  
  114. public client_putinserver(id)
  115. {
  116. betoltes(id)
  117. }
  118.  
  119. public client_disconnect(id)
  120. {
  121. mentes(id)
  122. }

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: mysql
HozzászólásElküldve: 2014.10.08. 10:55 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Leghasznosabb hozzászólás az egész fórumon, köszönöm :)
Egyetlen kérdés. Átalakítottam ezt az egészet,hogy SteamID-re mentse.
Hogyan oldjam meg,hogy az utoljára használt nevét az embernek mindig odaírja egy táblába?
Szóval a nevet azt nem figyeli,csak lementi,ami utoljára volt használva azzal a SteamID-vel.
Az átláthatóság kedvéért :D

EDIT: 50x-i próbálkozásra sikerült megírnom, tárgytalan köszönöm :)

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: mysql
HozzászólásElküldve: 2014.10.08. 15:02 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Vmi baj van,mert random emberek véletlenszerűen megkapják a szerón a legnagyobb pontszámot.
Ez miért van?????????

SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. new Host[] = "xy"
  3. new User[] = "xy"
  4. new Pass[] = "xy"
  5. new Db[] = "xy"
  6.  
  7. new Handle:g_SqlTuple
  8. new g_Error[512]
  9.  
  10. public plugin_init() {
  11. set_task(1.0, "MySql_Init")
  12. }
  13.  
  14. public MySql_Init()
  15. {
  16. g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db) //csatlakozunk az adatbázishoz
  17. new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
  18. if(SqlConnection == Empty_Handle)
  19. set_fail_state(g_Error)
  20. new Handle:Queries
  21. Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS olesek (steamid varchar(32),oles INT(11),nev varchar(32))") //létrehozzuk a pontrendszer táblát név és pont sorokkal
  22.  
  23. if(!SQL_Execute(Queries))
  24. {
  25. SQL_QueryError(Queries,g_Error,charsmax(g_Error))
  26. set_fail_state(g_Error)
  27.  
  28. }
  29. SQL_FreeHandle(Queries)
  30. SQL_FreeHandle(SqlConnection)
  31. }
  32. public plugin_end()
  33. {
  34. SQL_FreeHandle(g_SqlTuple)
  35. }
  36.  
  37. public betoltes(id)
  38. {
  39. new szAuthid[32], szTemp[512]
  40. get_user_authid(id, szAuthid, charsmax(szAuthid))
  41.  
  42. new Data[1]
  43. Data[0] = id
  44. format(szTemp,charsmax(szTemp),"SELECT * FROM `olesek` WHERE (`olesek`.`steamid` = '%s')", szAuthid) //kiválasztjuk a játékost a pontrendszer táblából a neve alapján
  45. SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
  46. }
  47.  
  48. public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  49. {
  50. if(FailState == TQUERY_CONNECT_FAILED)
  51. {
  52. log_amx("Kapcsolodas sikertelen. [%d] %s", Errcode, Error)
  53. }
  54. else if(FailState == TQUERY_QUERY_FAILED)
  55. {
  56. log_amx("A QUERY betoltese sikertelen.[%d] %s", Errcode, Error)
  57. }
  58.  
  59. new id
  60. id = Data[0]
  61.  
  62. if(SQL_NumResults(Query) < 1)
  63. {
  64.  
  65. new szAuthid[32], szName[32]
  66. get_user_authid(id, szAuthid, charsmax(szAuthid))
  67. get_user_name(id, szName, charsmax(szName))
  68.  
  69. new szTemp[512]
  70.  
  71. format(szTemp,charsmax(szTemp),"INSERT INTO `olesek` ( `steamid` , `oles` , `nev`)VALUES ('%s','0','%s');",szAuthid, szName) //ha a játékos neve nem található a táblában akkor létrehozunk neki egy új sort a nevével és a pont értékét beállítjük 0 ra
  72. SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  73. }
  74. else
  75. {
  76. oles[id] = SQL_ReadResult(Query, 1) // ha van már ilyen név az adatbázisban akkor a pontjait beállítjuk neki a pont sorban található értékre (0 = név, 1= pont)
  77. }
  78.  
  79. return PLUGIN_HANDLED
  80. }
  81. public mentes(id)
  82. {
  83. new szAuthid[32], szName[32], szTemp[512]
  84. get_user_authid(id, szAuthid, charsmax(szAuthid))
  85. get_user_name(id, szName, charsmax(szName))
  86.  
  87. format(szTemp,charsmax(szTemp),"UPDATE `olesek` SET `oles` = '%i' , `nev` = '%s' WHERE `olesek`.`steamid` = '%s';",oles[id], szName, szAuthid) //frissítjük az adatokat tehát a pontrendszer táblán belüli pont sorba beírjuk a játékos jelenlegi pontját ott ahol a név megegyezik a játékos nevével
  88. SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  89. }
  90.  
  91. public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  92. {
  93. SQL_FreeHandle(Query)
  94.  
  95. return PLUGIN_HANDLED
  96. }
  97.  
  98. public client_putinserver(id)
  99. {
  100. betoltes(id)
  101. }
  102.  
  103. public client_disconnect(id)
  104. {
  105. mentes(id)
  106. }

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: mysql
HozzászólásElküldve: 2014.10.08. 15:17 
Offline
Tiszteletbeli

Csatlakozott: 2010.02.04. 19:12
Hozzászólások: 3528
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 180 alkalommal
ugyan az az idjük?
steam_id_lan
valve_id_lan
stb

_________________
http://www.ebateam.eu/


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: mysql
HozzászólásElküldve: 2014.10.08. 15:20 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Nem, és steam_id_lan,valve_id_lan,hltv nálam fel se jöhet,dprotoba elutasítva. Külön-külön ID,csak egyszerűen megkapja a legnagyobb ölést.

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: mysql
HozzászólásElküldve: 2014.10.08. 15:23 
Offline
Tiszteletbeli

Csatlakozott: 2010.02.04. 19:12
Hozzászólások: 3528
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 180 alkalommal
"oles" változót nullázd amikor felcsatlakozott a szerverre(illetve amikor lement), még a lekérés előtt(mentés után)
(ha nincs még olyan sor mysqlbe akkor megtartja az előző ember által használt változó értékét, és ha nem öl senkit és lemegy akkor odaírja saját magának)

_________________
http://www.ebateam.eu/


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: mysql
HozzászólásElküldve: 2014.10.08. 15:27 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Konkrétabban le tudnád írni mit írjak oda?
oles[id] számolja a pontokat.

Itt egy kép a hibáról (kilépéskor megkapják a legnagyobb pontot,de csak aki szerencsés + az ő pontjukat)
Kép

_________________
GitHub - mforce


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  [ 12 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 31 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