• 04 Juin 2026, 03:15:27


Auteur Sujet: Nombre de spawns dépendant du nombre de joueurs connectés  (Lu 1293 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Falcon

  • *
  • Nouveau
  • Messages: 12
    • Voir le profil
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;
}

« Modifié: 10 Janvier 2010, 18:58:58 par Falcon »

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Nombre de spawns dépendant du nombre de joueurs connectés
« Réponse #1 le: 11 Janvier 2010, 00:37:56 »
Salut.

Je n'ai pas testé et donc je ne sais pas s'il fonctionne bien ou non. Cependant il y a quelques petits points qui me chiffonnes:

Tout d'abord il y a ça : " if(NombreJoueursConnectes[playerid]>>5 ". Je n'avais encore jamais vu >>. Si tu veux que ce soit supérieur à un Nombre, il suffit d'en mettre 1
Ensuite, dans OnPlayerConnect(playerid) tu écrit NombreJoueursConnectes[playerid]++ (chose qui à l'air juste ), mais dans OnPlayerDisconnect(playerid) tu remet  ++ (ce qui augmente encore le nombre de joueurs). Essaye plutôt de mettre -- à la place ;)

Pour le reste, je n'ai pas regarder en profondeur ni même Tester donc je ne suis pas sur d'avoir raison ;)
Merci à Colonel Marco pour la Signature

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Nombre de spawns dépendant du nombre de joueurs connectés
« Réponse #2 le: 11 Janvier 2010, 08:17:02 »
Ton code ne fonctionnera strictement pas ^^
enfin presque mais pas comme tu le veut  lol


Sinon voila ma func. pour savoir combien de joueur sont connecté

public CombienDeConnecter();
public CombienDeConnecter()
{
new connecter = NULL;
for(new i = 0; i < MAX_PLAYERS;i++)
{
    if(IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
        connecter ++;
    }
}
return connecter;
}

On l' utilise comme ca

if(CombienDeConnecter() > 5){}

Ton code c' est un FS ?
Si, non retire le #define FILTERSCRIPT


Sinon pas besoin de crée plusieurs tableau pour stocker les positions ^^

tu peut en faire qu' un seul et ca suffira



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : Nombre de spawns dépendant du nombre de joueurs connectés
« Réponse #3 le: 11 Janvier 2010, 10:58:31 »
Tu as commis une petite erreur sasuke, forward CombienDeConnecter(); pour la premiere non ?

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Nombre de spawns dépendant du nombre de joueurs connectés
« Réponse #4 le: 11 Janvier 2010, 14:06:11 »
c' est la même chose ^^

public function();
private function();
forward function();


Je ne suis pas sûr pour private ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Falcon

  • *
  • Nouveau
  • Messages: 12
    • Voir le profil
Re : Nombre de spawns dépendant du nombre de joueurs connectés
« Réponse #5 le: 13 Janvier 2010, 17:10:31 »
Bonjour,

Merci beaucoup de vos réponses.
Je vais regarder ça plus attentivement et si jamais je ne comprends pas je reposterai un message sur le même topic.

PS : Je ne vois pas bien comment on ne peut faire qu'un seul tableau et, de plus, en compilant, il me dit qu'il ne connait pas "NULL".

Merci encore, ++

Falcon
« Modifié: 13 Janvier 2010, 18:15:32 par Falcon »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Nombre de spawns dépendant du nombre de joueurs connectés
« Réponse #6 le: 13 Janvier 2010, 18:53:43 »
Salut,

NULL c'est 0 en fait (dans ce cas)

c un nombre vide, tous les bits sont à 0...

++Sim++





Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Nombre de spawns dépendant du nombre de joueurs connectés
« Réponse #7 le: 13 Janvier 2010, 20:42:22 »
Arg ouais j' ai oublié qu' en pawn il y a pas de NULL ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog