2
« le: 10 Janvier 2010, 18:57:09 »
Bonjour,
Voilà, je suis débutant sous PAWNO et j'ai voulu réaliser un script (à priori pas trop compliqué) qui permettrait de définir le nombre de spawns en fonction du nombre de joueurs connectés.
Cela serait pour éviter à la fois les spawnkills ainsi que de devoir traverser toute la map pour trouver un joueur.
J'ai réalisé ce script. Pouvez-vous s'il vous plaît me dire s'il est correct et, dans le cas contraire, ce qui cloche?
Merci, Falcon.
#define FILTERSCRIPT
#include <a_samp>
new NombreJoueursConnectes[MAX_PLAYERS];
new Float:Spawns1Joueur[2][3] = { // 2 positions aléatoires (si nbre de joueurs connectés est compris entre 6 et 10)
{1958.3783,1343.1572,15.3746},
{2199.6531,1393.3678,10.8203}
};
new Float:Spawns2Joueur[3][3] = { // 3 positions aléatoires (si nbre de joueurs connectés est compris entre 11 et 15)
{1958.3783,1343.1572,15.3746},
{2199.6531,1393.3678,10.8203},
{2483.5977,1222.0825,10.8203}
};
new Float:Spawns3Joueur[4][3] = { // 3 positions aléatoires (si nbre de joueurs connectés est compris entre 16 et 20)
{1958.3783,1343.1572,15.3746},
{2199.6531,1393.3678,10.8203},
{2637.2712,1129.2743,11.1797},
{2483.5977,1222.0825,10.8203}
};
new Float:Spawns4Joueur[5][3] = { // 5 positions aléatoires (si nbre de joueurs connectés est strictement supérieur à 20)
{1958.3783,1343.1572,15.3746},
{2199.6531,1393.3678,10.8203},
{2637.2712,1129.2743,11.1797},
{2637.2712,1129.2743,11.1797},
{2483.5977,1222.0825,10.8203}
};
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("Random Spawn by Falcon");
print("--------------------------------------\n");
return 1;
}
public OnPlayerConnect(playerid) // Quand un joueur se connecte
{
NombreJoueursConnectes[playerid]++; // Nombre de joueurs connectés : +1
return 1;
}
public OnPlayerSpawn(playerid)
{
new rand1 = random(sizeof(Spawns1Joueur));
new rand2 = random(sizeof(Spawns2Joueur));
new rand3 = random(sizeof(Spawns3Joueur));
new rand4 = random(sizeof(Spawns4Joueur));
if(NombreJoueursConnectes[playerid]<=5) // Si le nombre de joueurs connectés est inférieur ou égal à 5
{
SetPlayerPos(playerid, 1523.5126,-1012.0200,24.0504); // Le joueur apparaitra aux positions définies
}
else if(NombreJoueursConnectes[playerid]>>5 && NombreJoueursConnectes[playerid]<=10) // Si le nombre de joueurs connectés est compris entre 6 et 10
{
SetPlayerPos(playerid, Spawns1Joueur[rand1][0], Spawns1Joueur[rand1][1], Spawns1Joueur[rand1][2]); // Le joueur apparaitra aléatoirement à une des 2 positions définies
}
else if(NombreJoueursConnectes[playerid]>>10 && NombreJoueursConnectes[playerid]<=15) // Si le nombre de joueurs connectés est compris entre 11 et 15
{
SetPlayerPos(playerid, Spawns2Joueur[rand2][0], Spawns2Joueur[rand2][1], Spawns2Joueur[rand2][2]); // Le joueur apparaitra aléatoirement à une des 3 positions définies
}
else if(NombreJoueursConnectes[playerid]>>15 && NombreJoueursConnectes[playerid]<=20) // Si le nombre de joueurs connectés est compris entre 16 et 20
{
SetPlayerPos(playerid, Spawns3Joueur[rand3][0], Spawns3Joueur[rand3][1], Spawns3Joueur[rand3][2]); // Le joueur apparaitra aléatoirement à une des 4 positions définies
}
else // Si le nombre de joueurs connectés est strictement supérieur à 20
{
SetPlayerPos(playerid, Spawns4Joueur[rand4][0], Spawns4Joueur[rand4][1], Spawns4Joueur[rand4][2]); // Le joueur apparaitra aléatoirement à une des 4 positions définies
}
return 1;
}
public OnPlayerDisconnect(playerid) // Quand un joueur se déconnecte
{
NombreJoueursConnectes[playerid]++; // Nombre de joueurs connectés : -1
return 1;
}