• 04 Juin 2026, 01:01:01


Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Falcon

Pages: [1]
1
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

2
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;
}


3
Scripting SA-MP [Pawn center] / Re : Variable "i"
« le: 06 Juillet 2009, 20:14:03 »
Ah ok, d'accord, je vois mieux. Merci beaucoup.

Si jamais j'ai un autre souci avec cette variable, je me permettrai de solliciter à nouevau votre aide.

A+, Falcon

4
Scripting SA-MP [Pawn center] / Re : Variable "i"
« le: 06 Juillet 2009, 18:57:56 »
Merci de vos réponses.

J'avais à peu près compris cela mais ce que je ne comprends pas c'est définir un "i" qui correspond à seulement un groupe de personne.
Je ne sais pas si vous voyez ce que je veux dire?

Je m'explique :

Une course à lieu, et je veux que quand un joueur arrive au dernier checkpoint, le checkpoint soit détruit pour tous les participants.

Comment faire, s'il vous plaît?

Merci, Falcon.

5
Scripting SA-MP [Pawn center] / Variable "i"
« le: 06 Juillet 2009, 18:05:19 »
Scripteurs, bonjour.

Pourriez-vous m'expliquer précisément une ligne de code qui me pose des problèmes depuis un bout de temps et que je n'arrive toujours pas à comprendre?

Il s'agit de celle-ci :

for(new i = 0; i <MAX_PLAYERS; i++)
Merci de votre aide.

Des exemples concrets seront les bienvenus. ;=)

A+, Falcon.

6
Si j'ai bien compris, tu comptes donner un skin et des armes aux joueurs quand ils entrent une commande.
C'est bien ça?

Bah ne suffit-il pas de mettre dans OnPlayerCommandText  :
if(strcmp(cmd, "/equipement1", true) == 0)
{
     SetPlayerSkin(playerid, idduskin);
     GivePlayerWeapon(playerid, iddelarme, nbre de munitions);
     ...
     return 1;
}



7
Scripting SA-MP [Pawn center] / Re : Missions
« le: 02 Juillet 2009, 11:30:53 »
Scripteurs, bonjour.

Après pas mal de temps passé à essayer de scripter la mission pour laquelle vous m'aviez aidé, je l'ai hier essayé, et le verdict est tombé : elle ne fonctionne pas parfaitement.

En effet, les inscriptions se font, la mission se lance, mais elle ne se termine pas... ce qui fait qu'il n'y a pas de vainqueurs et qu'on ne peut pas relancer une mission derrière quand on est mort.

Je vous laisse là mon script.

Si quelqu'un pouvait me le regarder et me dire ce qui ne va pas, ce serait cool.

Merci, Falcon.

8
Scripting SA-MP [Pawn center] / Re : Missions
« le: 30 Juin 2009, 11:25:16 »
Salut,

Ah, merci, c'est niquel, parce que j'admets avoir un peu du mal à comprendre la différence entre "==" et "=". Je regarderai à l'occasion.

Ceci étant dit, voilà que j'ai un autre problème avec ma mission.

Quand un joueur s'inscrit, soit il s'inscrit en 1er, 3eme, 5eme, ... et il est allemand soit il s'inscrit en 2nd, 4eme, 6eme, ... et il est anglais. Donc je définis : Anglais[playerid] = true; ou Allemand[playerid] = true;


Puis je définis en haut :
IsPlayerAllemand(playerid)
{
     Allemand[playerid] = true;
     return 0;
}
 et de même pour anglais.


Quand ensuite, un joueur tape /go, la mission doit démarrer, donc je dis

if(IsPlayerAllemand(playerid) || IsPlayerAnglais(playerid))
{
         OK
}
else(!IsPlayerAllemand(playerid) && !IsPlayerAnglais(playerid))
{
      ERREUR
}

L'inscription marche niquel mais dés qu'un joueur (inscrit) entre la commande /go, le message d'erreur apparait.

Pouvez-vous m'aider s'il vous plaît?

Falcon

En définitive, j'ai réussi. Il ne fallait pas définir de IsPlayerAllemand et IsPlayerAnglais et ça fonctionne.

9
Scripting SA-MP [Pawn center] / Re : Missions
« le: 29 Juin 2009, 17:24:20 »
Ah, ok.

Merci de m'avoir éclairé sur certain points.
Je vais essayer de progresser à nouveau et si je bloque, je laisse un post.  ;)

A+

10
Scripting SA-MP [Pawn center] / Re : Missions
« le: 29 Juin 2009, 16:38:58 »
Merci beaucoup de ta réponse, c'est maintenant beaucoup plus clair.  :D

Mais bon, à y être, je me permets d'abuser : si tu définis 2 équipes (par exemple Anglais et Allemands), et que tu veux que chaque équipe apparaisse à un endroit différent, faut-il définir 2 "i"?


PS : En tant que débutant, je ne suis sur de rien, mais il me semble que ce n'est pas " if(missionok==1) " mais " if(missionok=1) " . Non?

Merci encore de ta patience.

Falcon.

11
Scripting SA-MP [Pawn center] / Re : Missions
« le: 29 Juin 2009, 15:28:38 »
Merci de me répondre aussi rapidement,

Je comprends bien qu'il faut mettre une variable quand le joueur s'inscrit dans le /mission et la faire correspondre dans le /start mais je ne comprends pas comment on défini cette variable...

Concrétement, il faut remplacer le playerid n'est ce pas? (par exemple pour la fonction SetPlayerPosition). Mais que mettre à la place et comment définir que ce que tu mets à la place corresponds aux joueurs ayant entré la commande /mission?

Si tu pouvais m'expliquer un petit peu plus en détail, ce serait niquel. Merci. 

12
Scripting SA-MP [Pawn center] / Missions
« le: 29 Juin 2009, 14:57:45 »
Bonjour scripteurs.

Voilà que je me remets à SA:MP et, par la même occasion, aux joies du scripting.

En effet, je souhaiterai créer un Filterscript "Mission", dans laquelle 2 équipes s'affronteraient. L'équipe perd dés que tous ses membres sont tués. L'idée est plutôt simple, seulement, voilà :

Ce que j'arrive à faire :
- Quand un joueur tape la commande /mission, le joueur est inscrit (Joueurinscrit = true) et le nombre de participants augmente (NombreParticipants++)

Ce que je n'arrive pas à faire :
- Quand un joueur inscrit tape la commande /start, TOUS les joueurs inscrits sont téléportés vers une zone, et freezés jusqu'à ce que le compte à rebours soit écoulé.

Vous l'aurez compris, ce qui m'est difficile est de faire en sorte que TOUS les joueurs INSCRITS soient téléportés.

J'attends votre aide avec impatience, merci de me répondre.

Falcon.

Pages: [1]