hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.15. 22:44



Jelenlévő felhasználók

Jelenleg 363 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 361 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [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  [4 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: szerkezetet mutat,de tartalom nincs
HozzászólásElküldve:2016.01.31. 11:08 
Offline
Nagyúr
Avatar

Csatlakozott:2014.04.10. 15:32
Hozzászólások:776
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 60 alkalommal
A következő lenne a problémám
Nem mutatja a tartalmat,szerkezete van

  1. #include <amxmodx>
  2. #include <sqlx>
  3.  
  4. #define PLUGIN "New Plug-In"
  5. #define VERSION "1.0"
  6. #define AUTHOR "author"
  7. new arany[33]
  8. new olesek[33]
  9.  
  10. new Handle:g_SqlTuple
  11. new g_Error[512]
  12.  
  13. new Host[]     = ""
  14. new User[]    = ""
  15. new Pass[]     = ""
  16. new Db[]     = ""
  17.  
  18. public plugin_init() {
  19.     register_plugin(PLUGIN, VERSION, AUTHOR)
  20.    
  21.     // Add your code here...
  22.     set_task(1.0, "MySql_Init") // a mysql init be csatlakozunk az adatbázishoz
  23. }
  24.  
  25. public MySql_Init()
  26.     {
  27.         g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db) //csatlakozunk az adatbázishoz
  28.         new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
  29.         if(SqlConnection == Empty_Handle)
  30.             set_fail_state(g_Error)
  31.         new Handle:Queries
  32.         Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS mod_t (`nev` varchar(32),`arany` INT(11), `oles` INT(11))") //létrehozzuk a pontrendszer táblát név és pont sorokkal
  33.  
  34.         if(!SQL_Execute(Queries))
  35.         {
  36.             SQL_QueryError(Queries,g_Error,charsmax(g_Error))
  37.             set_fail_state(g_Error)
  38.  
  39.         }
  40.         SQL_FreeHandle(Queries)
  41.         SQL_FreeHandle(SqlConnection)  
  42.     }
  43.     public plugin_end()
  44.     {
  45.         SQL_FreeHandle(g_SqlTuple)
  46.     }
  47.  
  48.     public betoltes(id)
  49.     {
  50.         new szNev[32], szTemp[512]
  51.         get_user_name(id, szNev, charsmax(szNev))
  52.  
  53.         new Data[1]
  54.         Data[0] = id
  55.         format(szTemp,charsmax(szTemp),"SELECT * FROM `mod_t` WHERE (`mod_t`.`nev` = '%s')", szNev) //kiválasztjuk a játékost a pontrendszer táblából a neve alapján
  56.         SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
  57.     }
  58.  
  59.     public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  60.     {
  61.         if(FailState == TQUERY_CONNECT_FAILED)
  62.         {
  63.             log_amx("Kapcsolodas sikertelen.  [%d] %s", Errcode, Error)
  64.         }
  65.         else if(FailState == TQUERY_QUERY_FAILED)
  66.         {
  67.             log_amx("A QUERY betoltese sikertelen.[%d] %s", Errcode, Error)
  68.         }
  69.  
  70.         new id
  71.         id = Data[0]
  72.  
  73.         if(SQL_NumResults(Query) < 1)
  74.         {
  75.  
  76.             new szNev[32]
  77.             get_user_name(id, szNev, charsmax(szNev))
  78.  
  79.             new szTemp[512]
  80.  
  81.             format(szTemp,charsmax(szTemp),"INSERT INTO `mod_t` ( `nev` , `arany`, `oles`)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
  82.             SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  83.         }
  84.         else
  85.         {
  86.             arany[id] = SQL_ReadResult(Query, 1)
  87.     olesek[id] = SQL_ReadResult(Query, 2)
  88.     }
  89.  
  90.         return PLUGIN_HANDLED
  91.     }
  92.     public mentes(id)
  93.     {
  94.         new szNev[32], szTemp[512]
  95.         get_user_name(id, szNev, charsmax(szNev))
  96.  
  97.         format(szTemp,charsmax(szTemp),"UPDATE `mod_t` SET `arany` = '%i', `oles` = '%i', WHERE `mod_t`.`nev` = '%s';",arany[id],olesek[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
  98.         SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
  99.     }
  100.  
  101.     public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
  102.     {
  103.         SQL_FreeHandle(Query)
  104.  
  105.         return PLUGIN_HANDLED
  106.     }
  107.  
  108.     public client_putinserver(id)
  109.     {
  110.         betoltes(id)
  111.     }
  112.  
  113.     public client_disconnect(id)
  114.     {
  115.         mentes(id)
  116.     }


Kép

Kép

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szerkezetet mutat,de tartalom nincs
HozzászólásElküldve:2016.01.31. 11:40 
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
  1. format(szTemp,charsmax(szTemp),"INSERT INTO `mod_t` ( `nev` , `arany`, `oles`)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



Mint mondtam 3 mezőhöz 3 érték, nem 2.

Mellesleg ez rossz SQL. Csak úgy jelzem össze fog omlani a sok záratlan lekérés miatt... (tapasztalat)
Használd ezt. SQL Tutorial

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szerkezetet mutat,de tartalom nincs
HozzászólásElküldve:2016.01.31. 12:39 
Offline
Tiszteletbeli
Avatar

Csatlakozott:2015.04.10. 19:49
Hozzászólások:610
Megköszönt másnak: 53 alkalommal
Megköszönték neki: 147 alkalommal
Arról nem is beszélve, h amit mforce bemutatott ( threaded mysql queries ) külön processzor szálat nyit magának, ha tud és így nem várakoztatja a pluginok / egyéb programok futását. Mondhatni szépen lefut a háttérben és amikor végzett visszaadja az értéket a fő programnak, ezért is van szükség minden kérésnél megadni egy függvényt ami meghívódik, ha végzett.

_________________
Néha itt, de többször nem.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szerkezetet mutat,de tartalom nincs
HozzászólásElküldve:2016.01.31. 14:56 
Offline
Nagyúr
Avatar

Csatlakozott:2014.04.10. 15:32
Hozzászólások:776
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 60 alkalommal
Itt van mforce verziójával,de nem ment

  1. #include <amxmodx>
  2. #include <sqlx>
  3.  
  4. new const SQL_INFO[][] = {
  5.     "xx",    // HOST
  6.     "xx",     // USERNAME
  7.     "xx",     // PASSWORD
  8.     "s"      // DATABASE
  9. }
  10.  
  11. new Handle:g_SqlTuple;
  12. new name[33][32]
  13. new arany[33], kulcs[33], szint[33], olesek[33]
  14.  
  15. public plugin_cfg() {
  16.     new Query[512];
  17.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  18.    
  19.     formatex(Query, charsmax(Query), "CREATE TABLE IF NOT EXISTS `tabla_neve` (`username` varchar(32) NOT NULL,`Gold` int(11) NOT NULL,`Kill` INT(11) NOT NULL,`Lvl` INT(11) NOT NULL,`Key` INT(11) NOT NULL)")
  20.    
  21.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  22. }
  23.  
  24. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  25.     if(FailState == TQUERY_CONNECT_FAILED)
  26.         set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
  27.     else if(FailState == TQUERY_QUERY_FAILED)
  28.         set_fail_state("Query Error");
  29.     if(Errcode)
  30.         log_amx("Hibat dobtam: %s",Error);
  31. }
  32.  
  33. public client_putinserver(id) {
  34.     if(!is_user_bot(id)) {
  35.     get_user_name(id, name[id], charsmax(name))
  36.     load(id)
  37.     }
  38. }
  39.  
  40. public load(id) {
  41.     new Query[512], Data[1]
  42.     Data[0] = id
  43.     formatex(Query, charsmax(Query), "SELECT * FROM `tabla_neve` WHERE username = ^"%s^";", name[id])
  44.     SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1)
  45. }
  46.  
  47. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  48.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  49.         log_amx("%s", Error)
  50.         return
  51.     }
  52.     else {
  53.         new id = Data[0];
  54.  
  55.         if(SQL_NumRows(Query) > 0) {    
  56.     arany[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Gold"))
  57.     olesek[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Kill"))
  58.     szint[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Lvl"))
  59.     kulcs[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "Key"))
  60.         }
  61.         else {  
  62.             save(id)    
  63.         }
  64.     }
  65. }
  66.  
  67. public save(id) {
  68.     new text[512];
  69.     formatex(text, charsmax(text), "INSERT INTO `tabla_neve` (`username`, `Gold`,`Kill` ,`Lvl`, `Key`) VALUES (^"%s^", ^"0^", ^"0^", ^"0^", ^"0^");", name[id])
  70.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  71. }
  72.  
  73. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  74.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  75.         log_amx("%s", Error)
  76.         return
  77.     }
  78. }
  79.  
  80. public update(id) {
  81.     new text[512];
  82.     formatex(text, charsmax(text), "UPDATE `tabla_neve` SET Gold = ^"%i^", Kill = ^"%i^", Lvl = ^"%i^", Key = ^"%i^" WHERE username = ^"%s^";", arany[id], olesek[id], szint[id], kulcs[id], name[id])
  83.    
  84.  
  85.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  86. }
  87.  
  88. public client_disconnect(id) {
  89.     if(!is_user_bot(id)) {
  90.         update(id)
  91.     }
  92.     arany[id] = 0
  93.     olesek[id] = 0
  94.     szint[id] = 0
  95.     kulcs[id] = 0
  96.     copy(name[id], charsmax(name[]), "")
  97. }
  98. public plugin_end() {
  99.     SQL_FreeHandle(g_SqlTuple)
  100. }


Kép

_________________
Kép


A hozzászólást 1 alkalommal szerkesztették, utoljára mforce 2016.01.31. 19:04-kor.
dupla posztra figyeljünk!


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  [4 hozzászólás ] 


Ki van itt

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