GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ShaDowxx™ le 29 Juin 2013, 18:07:31
-
Bonjour !
Je viens de me replonger dans le script sur le PAWN et je voudrais savoir comment faire pour pouvoir attribuer des randomspawns aux deux teams que je viens de créer.
Je n'ai aucune idées... Hein. :sad:
Voici le pastebin (http://pastebin.com/h8JgNFAN).
Merci de votre aide !
-
Bonjour
new Float:RandomSpawnsTERRORIST[0][3] =
{
{240.5144, 1875.8291, 11.4609, 359.7776}, // Randomspawn
{242.4310, 1865.9208, 11.4609, 0.7804}, // Randomspawn
{245.1731, 1859.6997, 14.0840, 1.7437}, // Randomspawn
};
En fait dedans tu ne dois pas mettre de virgule à la fin de la dernière ligne. Et il me semble que tu dois initialiser ton tableau comme ceci:
new Float:RandomSpawnsTERRORIST[][3] =
Et laisser [] vide puis [3] pour le nombre d'arguments par ligne. (J'emploi peut-être pas les bons mots mais je suis débutant :smile: )
-
Salut
Tu es sur pour les [] [] ? Je suis sûr que c'est 0 à x randoms spawns :huh:
Ceci pour la virgule, je ne l'avais pas vu :o merci encore de l'avoir indiqué !
Par contre, j'ai pas d'idée pour les attribuer aux gTeams :/
Merci de votre aide au fait !
Cordialement.
-
Salut,
L'initialisation d'un tableau à deux dimensions doit se faire par l'usage de boucles. La première lit le tableau de lignes en lignes tandis que la seconde le lit de cases en cases. Voici un exemple :
// Pour ce tableau
new Float:tValeurs[3][5];
// On utilise ces boucles
for(new ligne = 0; ligne < 3; ligne++)
{
for(new tcase = 0; tcase < 5; tcase++)
{
tValeurs[ligne][tcase] = 13.37;
}
}
// Ainsi, toutes les cases de toutes les lignes du tableau tValeurs sont initialisées avec la valeur 13.37
Edit - modification du code, le mot clé case ne pouvant être utilisé comme nom de variable.
-
Une condition et 2 tableaux avec les positions pour chaque team :
new Float:SPAWNTEAMONE[NOMBRE_DE_LIGNE][NOMBRE_DE_COORDONNEE] = {
{100.5698, -165.1987, 0.5},
{149.8767, -103.7393, 23},
{66.1463, -120.2624, 3717},
{62.4328, -178.3873, 6},
{37.4471, -205.9436, 7},
{145.3468, -26.7778, 71},
{160.8089, -2122.6721, 543},
{86.2626, -1354, 505}
};
new Float:SPAWNTEAMTWO[NOMBRE_DE_LIGNE][NOMBRE_DE_COORDONNEE] = {
{100.5698, -165.1987, 0.5},
{149.8767, -103.7393, 23},
{66.1463, -120.2624, 3717},
{62.4328, -178.3873, 6},
{37.4471, -205.9436, 7},
{145.3468, -26.7778, 71},
{160.8089, -2122.6721, 543},
{86.2626, -1354, 505}
};
// Ensuite avec une condition simple au spawn :
if(gTeam[playerid] == TEAM_ONE)
{
new SP = random(sizeof(SPAWNTEAMONE)); // Random entre 0 et la taille du tableau.
SetPlayerPos(playerid, SPAWNTEAMONE[SP][0], SPAWNTEAMONE[SP][1], SPAWNTEAMONE[SP][2]); // et les coordonnée.
}
Sinon y'a plus simple :
if(gTeam[playerid] == TEAM_ONE)
{
new SP = random(NOMBRE_DE_SPAWN);
if(SP == 0) SetPlayerPos(playerid, X, Y, Z);
else if(SP == 1) SetPlay...
...
else if(SP == NOMBRE_DE_SPAWN)
}
-
Problème réglé, merci à vous tous (surtout à toi Xolokos ! :kiss:)