hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.06. 04:05



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: nincs regisztrált felhasználó 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  [ 5 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Sorok Tördelése
HozzászólásElküldve: 2016.08.21. 01:40 
Offline
Nagyúr
Avatar

Csatlakozott: 2016.03.05. 20:56
Hozzászólások: 663
Megköszönt másnak: 27 alkalommal
Megköszönték neki: 124 alkalommal
Sziasztok.

Nem fordul le egy pluginom mert túl hosszú sorokat tartalmaz.

Ezt, hogy tudnám ugy megtörni, hogy ne legyen túl hosszú?

  1. public update(id) {
  2.     new text[512];
  3.     formatex(text, charsmax(text), "UPDATE `TESZTMENTES` SET valami_ertek = ^"%i^",ak47_st1 = ^"%i^",ak47_st2 = ^"%i^",ak47_st3 = ^"%i^",ak47_st4 = ^"%i^",ak47_st5 = ^"%i^",ak47_st6 = ^"%i^",m4a1_st1 = ^"%i^",m4a1_st2 = ^"%i^",m4a1_st3 = ^"%i^",m4a1_st4 = ^"%i^",m4a1_st5 = ^"%i^",m4a1_st6 = ^"%i^" WHERE username = ^"%s^";", pontok[id],ak47_st[1][id],ak47_st[2][id],ak47_st[3][id],ak47_st[4][id],ak47_st[5][id],ak47_st[6][id],m4a1_st[1][id],m4a1_st[2][id],m4a1_st[3][id],m4a1_st[4][id],m4a1_st[5][id],m4a1_st[6][id], name[id])
  4.     SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
  5. }

_________________
Global Offensive modok:

Global Offensive Mode 1.0
Global Offensive Mode 3.0
exodus Global Offensive 4.0


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Sorok Tördelése
HozzászólásElküldve: 2016.08.21. 04:07 
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
  1. public update( id )
  2. {
  3.     static s_sText[ 512 ];
  4.    // static, hogy ne kelljen minden meghíváskor lefoglalni a memóriát, ami ekkora méretnél lassú lehet pawnban. Biztos kell ekkora tömb?
  5.     new len;
  6.  
  7.     len = formatex( s_sText, charsmax( s_sText ), " Amit akarsz csak normálisan férjen ki " );
  8.     len += formatex( s_sText[ len ], charsmax( s_sText ) - len, " Amit akarsz csak ismét ne haladd meg a határt" );
  9.     len += formatex( s_sText[ len ], charsmax( s_sText ) - len, " ezt a formát ismételgeted, esetleg ciklussal is megoldható, ha úgy vannak felépítve változóid" );
  10.  
  11.     SQL_ThreadQuery( g_sSqlTuple, "QuerySetData", s_sText );
  12.     s_sText = EOS; // statikus változóként ugye muszáj nullázni, vagy benne marad az érték és csúnya dolgok lesznek.
  13.  
  14.     //return ha kéne
  15. }


Kommentek a kódban.

_________________
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: Sorok Tördelése
HozzászólásElküldve: 2016.08.21. 10:41 
Offline
Nagyúr
Avatar

Csatlakozott: 2016.03.05. 20:56
Hozzászólások: 663
Megköszönt másnak: 27 alkalommal
Megköszönték neki: 124 alkalommal
Így van megcsinálva:

Ezt a hibaüzenetet dobja a hlds:

  1. L 08/21/2016 - 11:18:45: Start of error session.
  2. L 08/21/2016 - 11:18:45: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160821.log")
  3. L 08/21/2016 - 11:18:45: [AMXX] Plugin ("SQLmentes.amxx") is setting itself as failed.
  4. L 08/21/2016 - 11:18:45: [AMXX] Plugin says: Query Error
  5. L 08/21/2016 - 11:18:45: [AMXX] Displaying debug trace (plugin "SQLmentes.amxx")
  6. L 08/21/2016 - 11:18:45: [AMXX] Run time error 1: forced exit
  7. L 08/21/2016 - 11:18:45: [AMXX]    [0] rdm5z293.sma.p::createTableThread (line 1091)


Jelen esetben a 17. sorban írja a hibát (line 1091)

  1. public plugin_cfg()
  2. {
  3.     static Query[512];
  4.     //static s_sText[ 512 ];
  5.     g_sSqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  6.    
  7.     new len
  8.    
  9.     len = formatex( Query, charsmax( Query ), "CREATE TABLE IF NOT EXISTS `TESZTMENTES` (`username` varchar(32) NOT NULL,`valami_ertek` int(11) NOT NULL,`ak47_st1` int(11) NOT NULL,`ak47_st2` int(11) NOT NULL,`ak47_st3` int(11) NOT NULL,`ak47_st4` int(11) NOT NULL,,`ak47_st5` int(11) NOT NULL,`ak47_st6` int(11) NOT NULL")
  10.     len += formatex( Query[ len ], charsmax( Query ) - len, "`m4a1_st1` int(11) NOT NULL,`m4a1_st2` int(11) NOT NULL,`m4a1_st3` int(11) NOT NULL,`m4a1_st4` int(11) NOT NULL,`m4a1_st5` int(11) NOT NULL,`m4a1_st6` int(11) NOT NULL,`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY")
  11.    
  12.     SQL_ThreadQuery(g_sSqlTuple,"createTableThread", Query)
  13. }
  14. public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  15.     if(FailState == TQUERY_CONNECT_FAILED)
  16.         set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
  17.     else if(FailState == TQUERY_QUERY_FAILED)
  18.         set_fail_state("Query Error");
  19.     if(Errcode)
  20.         log_amx("Hibat dobtam: %s",Error);
  21. }
  22. public client_putinserver(id) {
  23.     if(!is_user_bot(id)) {
  24.         get_user_name(id, name[id], charsmax(name))
  25.         load(id)
  26.     }
  27. }
  28. public load(id) {
  29.     new Query[512], Data[1]
  30.     Data[0] = id
  31.     formatex(Query, charsmax(Query), "SELECT * FROM `TESZTMENTES` WHERE username = ^"%s^";", name[id])
  32.     SQL_ThreadQuery(g_sSqlTuple, "QuerySelectData", Query, Data, 1)
  33. }
  34. public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  35.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  36.         log_amx("%s", Error)
  37.         return
  38.     }
  39.     else {
  40.         new id = Data[0];
  41.  
  42.         if(SQL_NumRows(Query) > 0) {    // Ha talált legalább 1 sort, akkor ezek történnek.
  43.             awp_st[1][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "valami_ertek"))
  44.             ak47_st[1][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "ak47_st1"))
  45.             ak47_st[2][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "ak47_st2"))
  46.             ak47_st[3][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "ak47_st3"))
  47.             ak47_st[4][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "ak47_st4"))
  48.             ak47_st[5][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "ak47_st5"))
  49.             ak47_st[6][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "ak47_st6"))
  50.             m4a1_st[1][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "m4a1_st1"))
  51.             m4a1_st[2][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "m4a1_st2"))
  52.             m4a1_st[3][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "m4a1_st3"))
  53.             m4a1_st[4][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "m4a1_st4"))
  54.             m4a1_st[5][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "m4a1_st5"))
  55.             m4a1_st[6][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "m4a1_st6"))
  56.             // Ez a parancs szöveg, szám és float esetében is másképp van, ehhez infó lentebb.
  57.         }
  58.         else {  // Ha nem talált sort, mert még nem volt a szerveren, akkor készítünk neki egyet.
  59.             save(id)    // Ehhez infó a Játékos sorainak létrehozásánál.
  60.         }
  61.     }
  62. }
  63. public save(id) {
  64.     new text[512];
  65.     formatex(text, charsmax(text), "INSERT INTO `TESZTMENTES` (`username`, `valami_ertek`) VALUES (^"%s^", ^"0^");", name[id])
  66.     SQL_ThreadQuery(g_sSqlTuple, "QuerySetData", text)
  67. }
  68. public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime) {
  69.     if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED) {
  70.         log_amx("%s", Error)
  71.         return
  72.     }
  73. }
  74. public update(id)
  75. {
  76.     static text[512];
  77.     //static s_sText[ 512 ];
  78.  
  79.     new len;
  80.    
  81.     len = formatex( text, charsmax( text ), "UPDATE `TESZTMENTES` SET valami_ertek = ^"%i^",ak47_st1 = ^"%i^",ak47_st2 = ^"%i^",ak47_st3 = ^"%i^",ak47_st4 = ^"%i^",ak47_st5 = ^"%i^",ak47_st6 = ^"%i^"", awp_st[1][id],ak47_st[1][id],ak47_st[2][id],ak47_st[3][id],ak47_st[4][id],ak47_st[5][id],ak47_st[6][id]);
  82.     len += formatex( text[ len ], charsmax( text ) - len, "m4a1_st1 = ^"%i^",m4a1_st2 = ^"%i^",m4a1_st3 = ^"%i^",m4a1_st4 = ^"%i^",m4a1_st5 = ^"%i^",m4a1_st6 = ^"%i^" WHERE username = ^"%s^";", m4a1_st[1][id],m4a1_st[2][id],m4a1_st[3][id],m4a1_st[4][id],m4a1_st[5][id],m4a1_st[6][id], name[id]);
  83.    
  84.     SQL_ThreadQuery(g_sSqlTuple, "QuerySetData", text )
  85. }
  86. public client_disconnect(id) {
  87.     if(!is_user_bot(id)) {
  88.         update(id)
  89.     }
  90.     awp_st[1][id] = 0
  91.     ak47_st[1][id] = 0
  92.     ak47_st[2][id] = 0
  93.     ak47_st[3][id] = 0
  94.     ak47_st[4][id] = 0
  95.     ak47_st[5][id] = 0
  96.     ak47_st[6][id] = 0
  97.     m4a1_st[1][id] = 0
  98.     m4a1_st[2][id] = 0
  99.     m4a1_st[3][id] = 0
  100.     m4a1_st[4][id] = 0
  101.     m4a1_st[5][id] = 0
  102.     m4a1_st[6][id] = 0
  103.     copy(name[id], charsmax(name[]), "")
  104. }

_________________
Global Offensive modok:

Global Offensive Mode 1.0
Global Offensive Mode 3.0
exodus Global Offensive 4.0


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Sorok Tördelése
HozzászólásElküldve: 2016.08.21. 12:19 
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
Van ahol nem tettél vesszőt a fegyvernevek közt van ahol kettőt is, nézd át.

_________________
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: Sorok Tördelése
HozzászólásElküldve: 2016.08.21. 12:35 
Offline
Nagyúr
Avatar

Csatlakozott: 2016.03.05. 20:56
Hozzászólások: 663
Megköszönt másnak: 27 alkalommal
Megköszönték neki: 124 alkalommal
Mostmár csak ezzel van a probléma:

Első sorban így van:


  1. (`username`


Viszont a végén nincs ) ami zárná ezt.
Már mindenféle kombinációban próbáltam de nem az username elötti sort zárja.


  1. public plugin_cfg()
  2. {
  3.     static Query[5120], Len
  4.     g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
  5.    
  6.     Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `TESZMENTES`")
  7.     Len += formatex(Query[Len], charsmax(Query)-Len, "(`username` varchar(32) NOT NULL")
  8.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`valami_ertek` int(11) NOT NULL")
  9.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men2` int(11) NOT NULL")
  10.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men3` int(11) NOT NULL")
  11.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men4` int(11) NOT NULL")
  12.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men5` int(11) NOT NULL")
  13.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men6` int(11) NOT NULL")
  14.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men7` int(11) NOT NULL")
  15.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men8` int(11) NOT NULL")
  16.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men9` int(11) NOT NULL")
  17.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men10` int(11) NOT NULL")
  18.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men11` int(11) NOT NULL")
  19.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`men12` int(11) NOT NULL")
  20.     Len += formatex(Query[Len], charsmax(Query)-Len, ",`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  21.    
  22.     SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
  23. }


Alap esetben is így van:

Az (`username` -vel kezdődően az AUTO_INCREMENT PRIMARY KEY) zárja ezt.

  1. formatex(Query, charsmax(Query), "CREATE TABLE IF NOT EXISTS `tabla_neve` (`username` varchar(32) NOT NULL,`valami_ertek` int(11) NOT NULL,`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)

_________________
Global Offensive modok:

Global Offensive Mode 1.0
Global Offensive Mode 3.0
exodus Global Offensive 4.0


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


Ki van itt

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