new string[] //A kapcsos zárójelek közé mitõl függ hanyas számot írok, és mely számokat írhatom ide?
new string[200];new pName[MAX_PLAYER_NAME];new Float:x,Float:y,Float:z;GetPlayerPos(playerid,x,y,z);GetPlayerName(playerid,pName,sizeof(pName));format(string, sizeof(string),\"%s mondja: %s\", pName, text[1]);for(new i = 0; i < MAX_PLAYERS; i++){if(IsPlayerConnected(i)){if(IsPlayerInRangeOfPoint(i, 7.0, x, y, z)){SendClientMessage(i, 0x33FF33AA, string);}}}
new karakterlanc[6];
karakterlanc[0];karakterlanc[1];karakterlanc[2];karakterlanc[3];karakterlanc[4];karakterlanc[5];
karakterlanc[6] = \"hello\";
karakterlanc[] = \"hello\";
karakterlanc[0] = \'h\';karakterlanc[1] = \'e\' ;karakterlanc[2] = \'l\';karakterlanc[3] = \'l\';karakterlanc[4] = \'0\';karakterlanc[5] = \'\\0\';
#include <a_samp>publicOnFilterScriptInit(){newstr[] = \"hello\";print(str);printf(\"%c%c%c%c%c\", str[0], str[1], str[2], str[3], str[4]);//***************print(\"\\n\\n\");strteszt();//***************print(\"\\n\\n\");strteszt2();//***************return 1;} stockstrteszt(){newstr[6];str = \"hello\";print(str);printf(\"%c%c%c%c%c\", str[0], str[1], str[2], str[3], str[4]);}stockstrteszt2(){newstr[6];str[0] = \'h\';str[1] = \'e\';str[2] = \'l\';str[3] = \'l\';str[4] = \'0\';str[5] = \'\\0\';print(str);printf(\"%c%c%c%c%c\", str[0], str[1], str[2], str[3], str[4]);}
Nagyon nem részletezem hány byte meg bit a lényeg hogy megértsd: new karakterlanc[6]; Minden egyes cella megszámozva a következõképpen néz ki: karakterlanc[0];karakterlanc[1];karakterlanc[2];karakterlanc[3];karakterlanc[4];karakterlanc[5]; Látványban azt jelenti 6 darab ilyen változót hoztál létre, amit a [] jelek közt számokkal azonosítva meghívhatsz.Ha ezt így írod le pawnban: karakterlanc[6] = \"hello\"; vagy így karakterlanc[] = \"hello\"; azzal gyakorlatilag ezt csináltad: karakterlanc[0] = \'h\';karakterlanc[1] = \'e\' ;karakterlanc[2] = \'l\';karakterlanc[3] = \'l\';karakterlanc[4] = \'0\';karakterlanc[5] = \'\\0\'; Röviden, minden egyes cella egyetlen egy karaktert tartalmaz. (tömörítetlenül,<-ez késõbbi dolog egyelõre ne foglalkozz vele)Természetesen szinte minden írásjelet képes tárolni egy ilyen cella, beleértve a számokat is lásd: http://www.asciitable.com/Létrehozhatsz egy ilyen filterscriptet és lefuttatva, meglátod mit is csinál: #include <a_samp>publicOnFilterScriptInit(){newstr[] = \"hello\";print(str);printf(\"%c%c%c%c%c\", str[0], str[1], str[2], str[3], str[4]);//***************print(\"\\n\\n\");strteszt();//***************print(\"\\n\\n\");strteszt2();//***************return 1;} stockstrteszt(){newstr[6];str = \"hello\";print(str);printf(\"%c%c%c%c%c\", str[0], str[1], str[2], str[3], str[4]);}stockstrteszt2(){newstr[6];str[0] = \'h\';str[1] = \'e\';str[2] = \'l\';str[3] = \'l\';str[4] = \'0\';str[5] = \'\\0\';print(str);printf(\"%c%c%c%c%c\", str[0], str[1], str[2], str[3], str[4]);} Ebbõl igazából azt lehet látni hogy többféleképpen használható az így létrehozott változó, de az eredmény ugyanaz.
new string[];
Ez most így fura, egy kérdés, ha már témánál vagyunk.Ha beírjuk hogy new string[]; Akkor úgy lesz, hogy ha írok valamit, akkor pont annyi karaktert fog használni, ami nekem kell? Lehet rosszul magyaráztam, de normálisan sose tudtam elmagyarázni semmit.
new str[] = \"hello\";
new str[] = \"De ha hosszabb karakterláncot alkalmazunk, már idõigényes megszámolni a karakterek számát, és nekünk megadni.\";