result check, wrong indexing

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
Tetusis

result check, wrong indexing

Post 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        }

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: result check, wrong indexing

Post 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.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Tetusis

Re: result check, wrong indexing

Post 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?

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: result check, wrong indexing

Post 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

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: result check, wrong indexing

Post 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.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Tetusis

Re: result check, wrong indexing

Post 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

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: result check, wrong indexing

Post 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".

Tetusis

Re: result check, wrong indexing

Post 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.

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: result check, wrong indexing

Post 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.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests