GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Gr0und3r le 25 Août 2007, 04:23:07

Titre: Aide Dm!
Posté par: Gr0und3r le 25 Août 2007, 04:23:07
Bonjour a tous!

Je suis en train de creer un serveur et je voudrais savoir comment on fait pour que quand on est dans un dm,
Plus aucune commands ne fonctionne a part cele pour aller dans les autre Dm et pour quitté le Dm.

Expliquer moi juste S'il vous plait , pour le reste je me debrouillerais! Merci.

Gr0und3r.
Titre: Re : Aide Dm!
Posté par: Gr0und3r le 25 Août 2007, 06:21:53
Citer
Bonjour a tous!

Je suis en train de creer un serveur et je voudrais savoir comment on fait pour que quand on est dans un dm,
Plus aucune commands ne fonctionne a part cele pour aller dans les autre Dm et pour quitté le Dm.

Expliquer moi juste S'il vous plait , pour le reste je me debrouillerais! Merci.

Gr0und3r.

 Et Aussi quand on est tuer dans le Dm on revien directement dans le Dm au lieu de refaire a chaque fois la meme commande.

Gr0und3r
Titre: Re : Aide Dm!
Posté par: spykerc8 le 25 Août 2007, 07:30:59
Tsss...
Réfléchi un peu : comment tu pourrais faire pour attribuer à un joueur le fait qu'il soit en DM? ...

...

Pas trouver? Bon ok : tu fais un array (ou un bool, mais je suis pas certains qu'on puisse) du genre IsPlayerDM[playerid] = 0; au début, et quand il est en DM, 1. Après tu réutilises ta variable et le tour est joué.

Si tu as besoin de plus de précisions, voit avec les autres, je vais pas être là quelques temps ;).
Titre: Re : Aide Dm!
Posté par: Gr0und3r le 25 Août 2007, 11:46:47
Merci Spycker je n'y avait pas penser!  :laugh
Titre: Re : Aide Dm!
Posté par: Gr0und3r le 25 Août 2007, 16:30:30
Je n'y arrive pas !

J'ai mis sa dans mon OnPlayerSpawn

http://pastebin.com/m53dd5ddf (http://pastebin.com/m53dd5ddf)

Et sa dans ma commande de Dm

http://pastebin.com/f2f59bb4c (http://pastebin.com/f2f59bb4c)

et sa ne fonctionne pas!  :(
Frenchement je ne comprend pas!
Titre: Re : Aide Dm!
Posté par: NatiVe™ le 25 Août 2007, 17:25:29
Il faut perseveré lol.

T'inquiete pour moi aussi c'est dur en ce moment !

NV.

Titre: Re : Aide Dm!
Posté par: Gr0und3r le 25 Août 2007, 17:28:15
Tu ne m'aide pas vrement , mais bn c'est pas grave  :dry
Titre: Re : Aide Dm!
Posté par: Syg le 25 Août 2007, 23:31:05
Toujours cette même erreur avec les variables.
Ton tableau dm[MAX_PLAYERS] DOIT être global, c'est à dire déclaré à l'extérieur de toute fonction.
Dans ton cas, tu as deux tableaux disctints mais avec le même nom. Un dans la fonction OnPlayerSpawn et un dans la fonction OnPlayerCommandText. Mais ce ne sont pas les mêmes tableaux. Et en plus, tes tableaux sont créés quand tu rentres dans la fonction et détruit quand tu en sors donc ils ne servent à rien.

Règle importante en programmation :
LORSQU'UNE VARIABLE DOIT ETRE UTILISEE DANS PLUSIEURS FONCTIONS, IL FAUT LA DECLARER EN GLOBALE !!!

Sinon, tout le reste de ton code me semble correct.

++
Syg
Titre: Re : Aide Dm!
Posté par: Gr0und3r le 26 Août 2007, 05:32:18
Merci Beaucoup Syg je vais corriger tous sa immediatement  :happy
Titre: Re : Aide Dm!
Posté par: Gr0und3r le 26 Août 2007, 06:07:09
Re bonjour!

J'ai mis Ma nouvelle variable au debut de bn gamemode a cet endroit,

http://pastebin.com/m318f3b72 (http://pastebin.com/m318f3b72)

Et mi sa dans OnPlayerSpawn,

http://pastebin.com/m3588a7fb (http://pastebin.com/m3588a7fb)

Puis sa Dans ma commande de telep,

http://pastebin.com/m5f79273b (http://pastebin.com/m5f79273b)

Et sa me donne sa comme erreur! :

Citer
C:\DOCUME~1\Kevin\Bureau\news.pwn(123) : error 017: undefined symbol "Dm"
C:\DOCUME~1\Kevin\Bureau\news.pwn(123) : warning 215: expression has no effect
C:\DOCUME~1\Kevin\Bureau\news.pwn(123) : error 001: expected token: ";", but found "]"
C:\DOCUME~1\Kevin\Bureau\news.pwn(123) : error 029: invalid expression, assumed zero
C:\DOCUME~1\Kevin\Bureau\news.pwn(123) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

La ligne 123 etant celle la

Citer
if(Dm[playerid]==1){
Titre: Re : Aide Dm!
Posté par: Gr0und3r le 26 Août 2007, 11:50:08
J'ai resolu mon probleme!  :P

tout en haut de mon Gamemode j'avais

Citer
#if defined FILTERSCRIPT

Je en savais pas se que c'etait donc je l'ai laisser mais apparement c'etait la cause de mon probleme!

Donc pour le resoudre je l'ai effacer de Mon GameMode Ainsi que ses deux compagnons

Citer
#else
et
Citer
#endif

Et ducou plus de probleme  :laugh
Titre: Re : Aide Dm!
Posté par: Gr0und3r le 27 Août 2007, 11:14:08
L'une de mes question est resolu quelqu'un connaitrer la reponse a la deuxieme?  :D
Titre: Re : Aide Dm!
Posté par: Syg le 27 Août 2007, 14:20:56
Voiulà une solution pour ta deuxième question :

Pour chaque test dans la fonction OnPlayerCommandeText tu rajoute un test sur ton tableau dm[MAX_PLAYERS] pour savoir si le joueur peut ou ne peut pas utiliser telle ou telle commande.
Exemple :

/* Téléport vers Los Santos */
/* Commande non autorisée en DM */
if(strcmp(cmdtext, "/ls", true) == 0 && dm[playerid]==0)
...

/* Sortie du DM */
/* Commande autorisée uniquement en DM */
if(strcmp(cmdtext, "/dm quit", true) == 0 && dm[playerid]==1)
...

/* Dire bonjour */
/* Commande autorisée dans tous les cas */
if(strcmp(cmdtext, "/Hello", true) == 0)
...


Cette solution est longue à mettre en place car il faut repasser sur toutes tes commandes pour décider celles qui sont autorisées en DM, celles qui ne le sont pas et celles qui sont autorisées tout le temps.

++
Syg
Titre: Re : Aide Dm!
Posté par: Gr0und3r le 27 Août 2007, 16:37:04
Merci Syg mais ne t'inquiète pas je viens de commencer mon Gamemode  :laugh

Mais c'est tout ce que j'ai a mettre? Rien d'autre?
Car j'ai l'impression qu'il manque quelque chose  ???


 Non rien sa fonctionne très bien , et je dit un grand merci a tout ceux qui mon aidé!  :D