Tablice
conseil
24.07.2009
z dokumentacji AmxModX'a
(http://wiki.alliedmo...Mod_X_Scripting)
if (equali(Arg1[1], "CT"))
Przecież każdy element tablicy zawiera jeden znak.
to znaczy jeżeli tablica
Arg1[] = "@CT"
to:
Arg1[0] = '@'
Arg1[1] = 'C'
Arg1[2] = 'T'
To jaki cudem 1 element tablicy zawiera znak(i) "CT"?
I dlaczego jest użyto " a nie '
(http://wiki.alliedmo...Mod_X_Scripting)
public cmd_hp(id, level, cid) { if (!cmd_access(id, level, cid, 3)) return PLUGIN_HANDLED new Arg1[24] new Arg2[4] //Get the command arguments from the console read_argv(1, Arg1, 23) read_argv(2, Arg2, 3) //Convert the health from a string to a number new Health = str_to_num(Arg2) //Is the first character the @ symbol? if (Arg1[0] == '@') { new Team = 0 //Check which team was specified. //Note that we start from [1], this is okay // it just means the @ isn't included if (equali(Arg1[1], "CT")) { Team = 2 } else if (equali(Arg1[1], "T")) { Team = 1 } //.Zdziwiło mnie to:
if (equali(Arg1[1], "CT"))
Przecież każdy element tablicy zawiera jeden znak.
to znaczy jeżeli tablica
Arg1[] = "@CT"
to:
Arg1[0] = '@'
Arg1[1] = 'C'
Arg1[2] = 'T'
To jaki cudem 1 element tablicy zawiera znak(i) "CT"?
I dlaczego jest użyto " a nie '
mgr inż. Pavulon
24.07.2009
to jest błąd, powinno być samo Cif (equali(Arg1[1], "CT"))
chyba że tablica była by wielo(dwu)wymiarowa.
poza tym chyba nie ma sensu używania equali dla jednego znaku.
if (Arg1[1]=='C')) powinno chyba działać.
A i cudzysłów(") używany jest do string'ów a apostrof (') do char'ów
conseil
24.07.2009
Właśnie też podejrzewałem błąd, ale nie chciałem uważać się za mądrzejszego od twórców AmxModX'a
ok, dzięki +pomógł.
![:]](https://amxx.pl/public/style_emoticons/default/cwaniak.gif)
ok, dzięki +pomógł.
mgr inż. Pavulon
24.07.2009
pomyłki się zdarzają każdemunie chciałem uważać się za mądrzejszego od twórców AmxModX'a

R3X
24.07.2009
Poprawny jest zapis:
natomiast ten jest zły
if (equali(Arg1[1], "CT"))Oznacza, że string Arg1 zostanie porównany od drugiego znaku.
natomiast ten jest zły
if (equali(Arg1[1], "C"))do porównania pojedynczego znaku służy jak napisał Pavulon zwykłe == ,skoro equali to trzeba jeszcze ujednolicić zapis przez &32
if (Arg1[1]&32 == 'c')