• 23 Avril 2025, 04:08:29


Auteur Sujet: Commande non fonctionnante  (Lu 2531 fois)

0 Membres et 2 Invités sur ce sujet

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Commande non fonctionnante
« le: 09 Janvier 2008, 16:51:18 »
Bonjour je viens de crée une commande qui normalement doit faire dessendre un mur quand un admin arrive et qui met un message d'avetissement si la personne n'est pas admin.
mais en la testant j'ai vu que l'on soit admin ou pas rien ne se pas.
Mais le compilateur ne trouve aucune erreur

Les code n'etant pas trop long je n el'ais pas mi sur pastbin

Code: (cpp) [Sélectionner]
public Hangar(){

new Float:X, Float:Y, Float:Z;
for (new a = 0; a < MAX_PLAYERS; a++) {
if(IsPlayerAdmin(a) && IsPlayerInArea(a,1628.8588, 1634.0248, 1265.4135, 1154.4926))
{ MoveObject(mur,0,0,-10,50); }

if(IsPlayerAdmin(a) && !IsPlayerInArea(a,1628.8588, 1634.0248, 1265.4135, 1154.4926)){
GetObjectPos(mur, X, Y, Z);

if (X == 1585.106323 && Y == 1221.822754 && Z ==-20.489473)
{SetObjectPos(mur,1585.106323, 1221.822754, -10.489473); }
}

if(!IsPlayerAdmin(a) && IsPlayerInArea(a,1628.8588, 1634.0248, 1265.4135, 1154.4926) && avert == 0){
SendClientMessage(a,COLOR_DRED,"Sors de cette zone pour admins");
avert = 1;
}
if(!IsPlayerAdmin(a) && !IsPlayerInArea(a,1628.8588, 1634.0248, 1265.4135, 1154.4926) && avert == 1){
avert = 0;
}

}
return 1;
}

Merci de votre aide
« Modifié: 09 Janvier 2008, 21:55:09 par Tetra-S »

Hors ligne Malppower

  • Chef de la TEC
  • *
  • Tueur en série
  • Messages: 190
    • Voir le profil
    • Elevage des Sym'
Re : Commande non fonctionnante
« Réponse #1 le: 09 Janvier 2008, 20:18:00 »
Edite ton message et mets ton code du coté gauche, et pas centré comme il est...

Sinon je serai pas t'aider...

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #2 le: 09 Janvier 2008, 21:50:55 »
Voila le texte a ete re-editer

« Modifié: 09 Janvier 2008, 21:56:09 par Tetra-S »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #3 le: 09 Janvier 2008, 23:18:24 »
salut Tetra-s,

je ne suis pas sûr mais,

si je me rapelle bien, avec le MoveObject il faut donner la nouvelle position de l'objet, non pas la différence avec la position précedente : :bangin

et puis pour ton IsPlayerInArea,

ton Min x est plus grand que le max x et pareil pour le y ;D

je crois qu'après cela, ta fonction devrais fonctionner :cheers

P.S. C'est IsPlayerInArea(playerid,Min X,Min Y, Max X,Max Y) ;)

++Sim++





Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #4 le: 10 Janvier 2008, 06:56:40 »
je doute je v re verifier mais bon

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #5 le: 10 Janvier 2008, 07:01:50 »
apres avoir re verifier tout les ciffre sont bon a mon avis tu doit prendre exemple sur un autre truc car le modele de mon Isplayerinarea c'est

IsPlayerInArea(playerid,Float:max_x,Float:min_x,Float:max_y,Float:min_y)

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : Commande non fonctionnante
« Réponse #6 le: 10 Janvier 2008, 10:36:25 »
Jutement regarde 1628.8588 est plu petit que 1634.0248 donc inverse les enfin c'est le matin j'ai pa toute ma tête je me trompe p-e

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #7 le: 10 Janvier 2008, 10:48:25 »
Voici ce qui ne marche pas :
- Comme l'a dit Malppower, il faut mettre les corrdonnées finales dans la fonction MoveObject, pas le déplacement relatif.
- Tu fais une boucle sur tous les joueurs il serait bien de faire un premier test sur IsPlayerConnected qui éviterais de faire des tests sur des joueurs qui n'existent pas
- Dans ta boucle, tu modifies la position du mur en fonction de la position d'un joueur. Mais que va-t-il se passer si tu as deux joueurs admins et que l'un est dans la zone et pas l'autre ? Si le joueur 3 est admin et dans le zone, tu vas bouger le mur en position ouverte quand ta boucle traitera le joueur 3. Si en même temps, le joueur 26 est admin et en dehors de la zone, que ta boucle traitera le joueur 26, tu vas bouger le mur en position fermée !! (Et si il y a d'autres admin ton mur risque de ressembler à un yoyo.
La solution, c'est de ne pas bouger le mur dans la zone mais une seule fois à la fin (et en dehors) de la boucle. Et la boucle ne sert qu'à déterminer si il y a au moins un admin dans la zone (pour savoir si on doit ouvrir ou fermer le mur).
- La variable avert doit être déclarée sous forme de tableau sinon, d'un joueur à l'autre sa valeur va changer dans la boucle (même principe qu'expliqué précédement).
- Le mieux c'est de téléporter les joueurs non-admins en dehors de la zone lorsqu'ils sont dedans.

Je te propose donc une correction : http://pastebin.gtaonline.fr/pastebin.php?show=291 masi le mieux c'est que tu essaies de le faire toi-même.
NB : Je n'ai pas testé ce bout de code, je te laisse le soin de le corriger si besoin mais n'hésite pas à poser des questions.

PS : Et effectivement, vérifies les Min et les Max dans tes appels à la fonction IsPlayerInArea comme te l'as dit Malppower.

++Syg
Courtesy of GtaManiac

Hors ligne Malppower

  • Chef de la TEC
  • *
  • Tueur en série
  • Messages: 190
    • Voir le profil
    • Elevage des Sym'
Re : Commande non fonctionnante
« Réponse #8 le: 10 Janvier 2008, 13:58:38 »
J'ai rien dit moi lol

???

Enfin bon voilà...

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #9 le: 10 Janvier 2008, 14:41:53 »
Ah mince, désolé Malppower, c'est Sim et mister-fred que j'aurais du citer.
Sim pour les coordonnées dans la fonction MoveObject.
Sim et mister-fred pour avoir remarqué l'inversion dans les paramètres de IsPlayerInArea.

++
Syg
Courtesy of GtaManiac

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #10 le: 10 Janvier 2008, 17:16:35 »
Merci Syg je vais tester ton code mais je ne vais pas faire se que tu a mi avec le setplayerpos car si quelq'un passe en avion au dessus bonjour les probleme

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #11 le: 10 Janvier 2008, 17:36:24 »
Et bien pour empêcher ça, fais une test sur le Z du joueur.

++
Syg
Courtesy of GtaManiac

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #12 le: 10 Janvier 2008, 17:39:38 »
voila j'ai re verifier re-tester mais je commence vraiment a douter de mon isplayerinarea car malgré ton code ba c'est encore la même chose
Pas de message ni de descente de mur
mais j'ai re-modifier les donner des X Y Z http://pastebin.gtaonline.fr/pastebin.php?show=293

P.S :  j'ai récupérer mon isplayerinaera dans le tuto de se site donc l'erreur doit peut être venir de la
« Modifié: 10 Janvier 2008, 19:16:58 par Tetra-S »

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #13 le: 10 Janvier 2008, 21:51:02 »
je crois que g trouver mon erreur je crois quel vien du timer au que g mis 0 et non 1 a la fin

Hors ligne Tetra-S

  • Codeur C/C++ Mais pas encore quelque incomprention de certaine truc mais le plus gros est passer
  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Commande non fonctionnante
« Réponse #14 le: 10 Janvier 2008, 21:57:12 »
Et bas voila je viens de passer pour le rois des con :king a cause d'un timer mal regler :lmfao

maintenant c'est bon tout marche