Prima di tutto vediamo la struttura di una matrice
new NOMEMATRICE[Numero Argomenti][]
In NOMEMATRICE va messo il nome per definire la matrice
In numero argomenti va messo il numero di argomenti contenuti in essa esempio
new we[3][]={ "we", "wee", "rte" };
In questo caso ci sn tre argomenti (le parole we,wee e rte
Ciò che si mette nelle seconde parentesi "[]" cambia in base agli argomenti definiti, esempio se gli argomenti contenuti nella matrice sono delle frasi e o delle parole metti la lughezza delle stringhe, se invece gli argomenti sono delle coordinate, mettiamo tanti numeri quante sono le Float delle coordinate, esempio se la coordinata sarà strutturata così
1020.5,2321.4,123.4,98.9
metteremo 4 tra le parentesi xk i float sono 4
X, Y, Z e L'angolo.
Esempi con le matrici:
1° Fare un random spawn
Prima di tutto creiamo la nostra Variabile
new Float:RandomSpawns[3][3]={//metto new Float perchè le coordinate sono dei Float {COORDINATA 1}, {COORDINATA 2}, {COORDINATA 3}, {COORDINATA 4} };
Analiziamo il codice: viene creata una specie di tabella che contiene tre coordinate, il primo [4] sta per il numero delle coordinate presenti mentre il secondo [3] sta per X,Y e Z.
Continuamo la guida:
Nel comando /dm mettiamo:
if(!strcmp(cmd,"/dm",true)){ new dmrand=random(sizeof(RandomSpawns)); //crea un random tra le 4 coordinate SetPlayerPos(playerid,RandomSpawns[dmrand][0],RandomSpawns[dmrand][1],RandomSpawns[dmrand][2]);//setta la posizione del player in una delle 4 coordinate a caso. return 1; }
Analiziamo il codice: Prima di tutto creiamo un random della tabella che abbiamo creato(quindi crea un random tra le 4 coordinate)
Poi Settiamo la pos del player Ad una delle 4 coordinate
[dmrand] è il random che abbiamo creato,
[0],[1],[2] sono le posizioni X, Y, Z della coordinate scelta(per questo sopra abbiamo messo [3] per definire X Y e Z.
2° Usare le tabelle con degli ID
new Veicoli[3]={522,520,411};
Con questo codice possiamo dire che se il player entra in uno di questi veicoli viene kickato, esempio:
public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger) { for(new v=0;v<100;v++) if(vehicleid==Veicoli[v]) Kick(playerid); return 1; }
3° Usare le tabelle con delle parole
new Strings[4][100]={ //in questo caso nelle seconde parentesi metto la lunghezza delle stringhe "Cornuto", "Bastardo", "Troia", "Puttana" };
Con questa tabella potremmo creare un sistema anti parolaccie esempio
public OnPlayerText(playerid,text[]) { for(new t=0;t<4;t++) if(!strfind(text,Strings[t],true)) return 0; return 1; }
4° creare un sistema di annunci
new Annunci[3][128]={//metto sempre la lunghezza della stringa {"we sono io"}, {"we sei te"}, {"we non c'è .-."} }; new we=0; In OnGameModeInit SetTimer("ann",600000,true);//setta un timer per far eseguire il callback "ann" Fuori dai callback forward ann(); public ann() { if(we==0){SendClientMessageToAll(COLOR_RED,Annunci[0]);we++;} if(we==1){SendClientMessageToAll(COLOR_RED,Annunci[1]);we++;} if(we==2){SendClientMessageToAll(COLOR_RED,Annunci[2]);we=0;} }
In questo modo dopo il primo msg invierà il secondo e dopo il secondo il terzo e così via
Quindi come vedete queste tabelle sono utilissime
Spero che la guida sia comprensibile
Messaggio modificato da [PNC]Angelo il 31 agosto 2010 - 16:22