Page 1 of 1

result check, wrong indexing

Posted: 2013 Feb 13 20:20
by Tetusis

Code: Select all

    get_user_ip(id, IP, charsmax(IP), 1)    get_user_authid(id, AUTH, charsmax(AUTH))    get_user_name(id, NAME, charsmax(NAME))    get_time("%d-%m-%y %H:%M:%S", DATE, charsmax(DATE))            // if more results than 0    if (SQL_MoreResults(query) > 0) {                new result_ip[16], result_auth[32], result_name[64]                        new result_id = SQL_ReadResult(query, 0)         SQL_ReadResult(query, 1, result_ip, charsmax(result_ip))        SQL_ReadResult(query, 2, result_name, charsmax(result_name))        SQL_ReadResult(query, 3, result_auth, charsmax(result_auth))                server_print("CORE: recieved %i %s %s %s", result_id, result_ip, result_auth, result_name)                if (result_name[id] != NAME[id]) {            server_print("CORE: database has found nickname %s and its != %s", result_name[id], NAME[id])            // TODO        }                /*        else if(result_auth[id] != AUTH[id]) {            server_print("CORE: client auth is not logged in database")        }        */                      // We have got results        SQL_NextRow(query)    }
ip paslepiau...


CORE: recieved 2 000.222.52.000 bahh STEAM_0:0:59688539
CORE: database has found nickname EAM_0:0:59688539 and its != hh

2 line outputo fail'as, manau del indexing, realiai turetu buti
CORE: database has found nickname bahh and its != hhab

edit: dar viena nesamone, result_name apkeiciau su result_auth pagaliau gavau name is duomenu bazes, bet keista jeigu pirmam outpute raso pagal kintamaji result_name tikra nick kaip ir turetu, o su salyga sokineja per duomenu bazes columns..

sis kodas veikia, bet ne su tuo kintamuoju su kuriuo turetu, result_auth[id] printina tik 2 paskutinius char'us gautus....

Code: Select all

        if (result_auth[id] != NAME[id]) {            server_print("CORE: database has found nickname %s and its != %s", result_auth[id], NAME[id])            // TODO        }

Re: result check, wrong indexing

Posted: 2013 Feb 13 22:43
by aaarnas
Sorry, bet visiškos nesąmonės parašytos.

1. SQL_MoreResults(query) gražina 1 tada, kai yra dar daugiau rezultatų. Jei tikrini čia pirmą rezultatą, o jų viso yra tik 1, tai šita sąlyga bus neteisinga. Taip pat SQL_NextRow(query) labai keistoje vietoje naudojamas. Toks jausmas, kad čia ciklas turėtų būti, o parašei vietoje jo IF. Na arba pas tave algoritmas toks keistas, kad dar kažką tikrini po šio bloko.

2.

Code: Select all

result_name[id] != NAME[id]
Čia kas per velnias parašyta? result_name ir NAME yra vienmačiai masyvai, kuriuos naudoji kaip string masyvus. Su tokiu palyginimu tu žiūri ar kažkokie 2 char'ai masyvuose nėra lygūs. Jei čia taip mėgini palyginti 2 string masyvus, tai visiškai neteisingai. Reikia naudoti equal funkciją. Id visai be logikos imamas. Kaip suprantu, čia žaidėjo Id. Jei nori, kad kiekvienam žaidėjui turėti po kintamąjį, tai reikia dviejų dimensijų masyvo.

3.

Code: Select all

server_print("CORE: database has found nickname %s and its != %s", result_name[id], NAME[id])
Ta pati nesąmonė su id. Dėl to ir spausdina tik nuo to char, kokio nurodo kintamasis id. Pats masyvas yra adresas atmintyje. id nurodo postūmi nuo adreso ir tai atitinka kažkokį char.

3.

Re: result check, wrong indexing

Posted: 2013 Feb 14 00:19
by Tetusis
@aarnas

1. sorry im new at this :(

2. jo kvailai as ta nelygybe panaudojau, beje equal tik arba mazosiomis arba didziosimis veikia, reikia equali naudoti vietoi jo, universalesnis arba containi

3. code example kaip tai igyvendinti?

Re: result check, wrong indexing

Posted: 2013 Feb 14 10:01
by newb
Tetusis wrote:2. jo kvailai as ta nelygybe panaudojau, beje equal tik arba mazosiomis arba didziosimis veikia, reikia equali naudoti vietoi jo, universalesnis arba containi
Cia tipo aaarnui sakai kaip equal ir equali veikia? :D

Re: result check, wrong indexing

Posted: 2013 Feb 14 10:37
by aaarnas
Na iš tavęs tokios klaidos nesitikėjau. Masyvą yra privalu mokėti.

O kas #3 tokio ten turi būti? [id] nutrink ir viskas.

Re: result check, wrong indexing

Posted: 2013 Feb 14 15:06
by Tetusis
newb wrote:
Tetusis wrote:2. jo kvailai as ta nelygybe panaudojau, beje equal tik arba mazosiomis arba didziosimis veikia, reikia equali naudoti vietoi jo, universalesnis arba containi
Cia tipo aaarnui sakai kaip equal ir equali veikia? :D
taip kadangi su equal nebutu teisingi rezultatai, nes nick ne vien buna "petras" ar "jonas" esme,kad gali buti ir "JonAs" jis aisku jau ta zinojo

Re: result check, wrong indexing

Posted: 2013 Feb 14 15:58
by newb
Tetusis wrote:
newb wrote:
Tetusis wrote:2. jo kvailai as ta nelygybe panaudojau, beje equal tik arba mazosiomis arba didziosimis veikia, reikia equali naudoti vietoi jo, universalesnis arba containi
Cia tipo aaarnui sakai kaip equal ir equali veikia? :D
taip kadangi su equal nebutu teisingi rezultatai, nes nick ne vien buna "petras" ar "jonas" esme,kad gali buti ir "JonAs" jis aisku jau ta zinojo
Hmm, gal as neteisingai supratau, bet pagal mane, tu galvoji, kad equal grazins false tikrindamas "JonAs" ir "JonAs".

Re: result check, wrong indexing

Posted: 2013 Feb 14 16:17
by Tetusis
newb wrote:
Hmm, gal as neteisingai supratau, bet pagal mane, tu galvoji, kad equal grazins false tikrindamas "JonAs" ir "JonAs".
Arba "jonas" "JonAs", alliedmoduose radau sia informacija ir ji pasitvirtino bent kai kazkada precache naudojau MuSic.mp3 - equal neaptikdavo.

Re: result check, wrong indexing

Posted: 2013 Feb 14 19:49
by aaarnas
Equal yra case sensitive. Ta prasme c == c, C != c. equali c == c, C == c. Be to, su equali galima nurodyti dar kiek stringo tikrinti.