swich

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
morka
Gana aktyvus vartotojas
Posts: 292
Joined: 2011 Jan 08 00:21

swich

Post by morka »

Kaip elgtis su tuo masyvu, tarkim yra grupes 3 ir 4
3 butu suteikti bit
4 butu surteikti bitam flagai.
Kad nereiktu kurti atskiro stulpelio butu galima plugine priskirt flagus tai grupei.
Error kai kompiliuoju dabar error 033: array must be indexed (variable "-unknown-")
error rodo ant switch(szGroup)

Code: Select all

new szGroup[33]                g_aNum = 0                new qcolAuth = SQL_FieldNameToNum(query, "members_display_name")        new qcolPass = SQL_FieldNameToNum(query, "members_pass_hash")        new qcolSalt = SQL_FieldNameToNum(query, "members_pass_salt")        new qcolGroup = SQL_FieldNameToNum(query, "member_group_id")                while (SQL_MoreResults(query))        {            SQL_ReadResult(query, qcolAuth, g_aName[g_aNum], charsmax(g_aName))            SQL_ReadResult(query, qcolPass, g_aPassword[g_aNum], charsmax(g_aPassword))            SQL_ReadResult(query, qcolGroup, szGroup, charsmax(szGroup))            SQL_ReadResult(query, qcolSalt, g_aSalt[g_aNum], charsmax(g_aSalt))                        new vip[33], admin[33]                        get_cvar_string("amx_vip_access", vip, 33)            get_cvar_string("amx_admin_access", admin, 33)                        switch(szGroup)            {            case 3: g_aGroup[g_aNum] = read_flags(vip)            case 4: g_aGroup[g_aNum] = read_flags(admin)            }                        //g_aGroup[g_aNum] = read_flags(szGroup)                        ++g_aNum            SQL_NextRow(query)            
Image

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

Re: swich

Post by aaarnas »

Pamiršai indeksuoti szGroup masyvą. Turėtų būti kažkas panašaus: switch(szGroup[id])
Palikau CS pasaulį ;/ . Nebepasiekiamas.

morka
Gana aktyvus vartotojas
Posts: 292
Joined: 2011 Jan 08 00:21

Re: swich

Post by morka »

Sukompiliuoja tik kazko flagu neprisikiria.
Image

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

Re: swich

Post by aaarnas »

Pasitikrink dar kartą kodą. Kažkaip man nelabai logiškai atrodo.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

morka
Gana aktyvus vartotojas
Posts: 292
Joined: 2011 Jan 08 00:21

Re: swich

Post by morka »

Tipo taip? Bet irgi nelabai veikia...

Code: Select all

                         new vip[33], admin[33]            new sflags[33]             get_pcvar_string(amx_vip_access, vip, 31)            get_pcvar_string(amx_admin_access, admin, 31)                        switch(g_aGroup[index])            {                case 3:                {                    set_user_flags(id, vip[31])                    get_flags(vip[31], sflags, charsmax(sflags))                    }                case 4:                {                    set_user_flags(id, admin[31])                    get_flags(admin[31], sflags, charsmax(sflags))                  }            }                log_amx("Login: ^"%s<%d><%s><>^" became an admin (account ^"%s^") (access ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, g_aName[index], sflags, ip)        }        else        {            result |= 1            log_amx("Login: ^"%s<%d><%s><>^" kicked due to invalid password (account ^"%s^") (address ^"%s^")", name, get_user_userid(id), authid, g_aName[index], ip)        }    }    else     {        new defaccess[33]        get_pcvar_string(amx_default_access, defaccess, 31)                if (!strlen(defaccess))            copy(defaccess, 33, "z")                new idefaccess = read_flags(defaccess)        if (idefaccess)        {            result |= 8            set_user_flags(id, idefaccess)        }    }    return result}
Image

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

Re: swich

Post by aaarnas »

Kam visur nustatinėji array dydį funkcijose? To daryti nereikia, nebent kažką labai jau special darai.

result |= 1 ? Kas čia? Toks aprašymas tikrai veikia, ir reikšmė nustatoma?

Be to nepamrišk, kad set_user_flags prideda flagus prie jau žaidėjo turimų, o ne perrašo. Norint nustatyti flagus, prieš tai reikia juos pašalinti su remove_user_flags.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

morka
Gana aktyvus vartotojas
Posts: 292
Joined: 2011 Jan 08 00:21

Re: swich

Post by morka »

krc nesigauna net neiraso access flagu, turbut netikrina switch
Image

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

Re: swich

Post by aaarnas »

Su log_amx tikrink visur viską ir rasi kur kuri sąlyga nesuveikia ir kuriam kintamajam ne tokia reikšmė.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

morka
Gana aktyvus vartotojas
Posts: 292
Joined: 2011 Jan 08 00:21

Re: swich

Post by morka »

Sutvarkyta
Image

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 5 guests