thomasleroi Posté(e) le 14 juin 2008 Signaler Partager Posté(e) le 14 juin 2008 Bonjour, alors je cherche depuis un petit moment mais je trouve pas... Comment faut-il faire pour qu'une commande marche que si on est à une position précise ? if(strcmp(cmd, "/satellite-on", true) == 0) { SendClientMessage(playerid, COLOR_RED, "Connection au sattelite en cours..."); SendClientMessage(playerid, COLOR_RED, "...CHARGEMENT..."); SendClientMessage(playerid, COLOR_GREEN, "Vous êtes connecté"); SendClientMessage(playerid, COLOR_WHITE, "Pour quitter tapes /satellite-off."); SetPlayerCameraPos(playerid,-130.1157,93.9237,93.7372); SetPlayerCameraLookAt(playerid,-125.6706,86.4135,3.0780); TogglePlayerControllable(playerid, 0); ShowPlayerMarkers(1); return 1; } if (strcmp(cmdtext, "/satellite-off", true) == 0) { SendClientMessage(playerid, COLOR_GREEN, "Vous êtes déconnecté"); SpawnPlayer(playerid); return 1; } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 14 juin 2008 Signaler Partager Posté(e) le 14 juin 2008 ha c'est pas dure ^^ : Tu va faire des /save pour récupérer la position de ton perso, tu en fait 4, un carré quoi. Et après tu fait ce que je te dis : En haut de ton script tu place : stock IsPlayerInArea(playerid,Float:max_x,Float:min_x,Float:max_y,Float:min_y) { new Float:X; new Float:Y; new Float:Z; GetPlayerPos(playerid, X, Y, Z); // On récupére la position du joueur if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) { // Si le joueur est dans les cordonnées à définir return 1; } return 0; } et dans ta commande u met : if (IsPlayerInArea(playerid, 0 , 0 , 0 , 0 ) { A la place des zéro tu te réfaire a ça : IsPlayerInArea(playerid,Float:max_x,Float:min_x,Float:max_y,Float:min_y) pour les Max X Y je te dis aussi comment faire ^^ AddPlayerClass(179,-1337.3512,2523.2300,87.0469,270.7198,0,0,0,0,0,0); // min_x AddPlayerClass(179,-1335.2222,2540.2971,86.8081,357.6589,0,0,0,0,0,0); // min_y AddPlayerClass(179,-1286.4272,2536.4910,87.5118,182.1182,0,0,0,0,0,0); // max_x AddPlayerClass(179,-1283.4917,2522.4268,87.3911,177.1048,0,0,0,0,0,0); // max_y Donc il faut mettre dans cette ordre les coordonnées de couleur : en 1er : rouge en 2ième: orange en 3ième: violet en 4ième: vert ==== if (IsPlayerInArea(playerid, -1337.3512 , 2536.4910 , 2540.2971 , -1283.4917 ) { // Dans OnGameModeInit ==== Et voila ^^ Normalement ça fonctionnera a+++ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
thomasleroi Posté(e) le 15 juin 2008 Auteur Signaler Partager Posté(e) le 15 juin 2008 (modifié) Ok, je vais tester et j'édit. Donc voilà mes 4 positions : if (IsPlayerInArea(playerid,-170.4675,175.2094,-172.4469,173.3273) { J'ai mis ça tout en haut : stock IsPlayerInArea(playerid,Float:max_x,Float:min_x,Float:max_y,Float:min_y) { new Float:X; new Float:Y; new Float:Z; GetPlayerPos(playerid, X, Y, Z); // On récupére la position du joueur if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) { // Si le joueur est dans les cordonnées à définir return 1; } return 0; } Ca je les mis en dessous de mes "CreateObject" : if (IsPlayerInArea(playerid,-170.4675,175.2094,-172.4469,173.3273) { Et ça je n'es pas compris ou le placer : IsPlayerInArea(playerid,Float:max_x,Float:min_x,Float:max_y,Float:min_y) EDIT: J'ai compris mais j'ai une erreur... if (IsPlayerInArea(playerid,-170.4675,175.2094,-172.4469,173.3273)); error 036: empty statement Modifié le 15 juin 2008 par thomasleroi Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 15 juin 2008 Signaler Partager Posté(e) le 15 juin 2008 (modifié) Normale que ça ne fonctionne pas xD : if (IsPlayerInArea(playerid,-170.4675,175.2094,-172.4469,173.3273)); Un if avec un point virgule met une accolade { c'est mieux ^^ Et n'oubli pas de refermé l'accolade a la fin de ta commande par } Sache aussi que ça : IsPlayerInArea(playerid,Float:max_x,Float:min_x,Float:max_y,Float:min_y) c'était pour te montrer coment mettre les valeurs de tes /save il ne faut pas le mettre dans ton code ^^ EDIT : Ca je les mis en dessous de mes "CreateObject" : if (IsPlayerInArea(playerid,-170.4675,175.2094,-172.4469,173.3273) { oui mais non ^^ le if tu doit le mettre dans ta commande en dessous de ce qui appel ta commande if (strcmp(cmdtext, "/blabla", true)==0){ Donc ça donnera ça : if (strcmp(cmdtext, "/blabla", true)==0){ if (IsPlayerInArea(playerid,-170.4675,175.2094,-172.4469,173.3273) { BLA BLA } return 1; } Et voila ^^ Modifié le 15 juin 2008 par superpompier Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
thomasleroi Posté(e) le 15 juin 2008 Auteur Signaler Partager Posté(e) le 15 juin 2008 OK, j'ai plus d'erreur mais ça marche pas, je dois faire une erreur dans les positions... Alors, voilà les positions : AddPlayerClass(287,-170.2574,175.3866,8.6155,138.5600,0,0,0,0,0,0); // p1 AddPlayerClass(287,-172.4135,173.6503,8.5195,128.8466,0,0,0,0,0,0); // p2 AddPlayerClass(287,-169.4764,170.3571,7.9811,224.1008,0,0,0,0,0,0); // p3 AddPlayerClass(287,-167.1712,172.4076,8.1396,313.4016,0,0,0,0,0,0); // p4 Voilà l'image : http://apu.mabul.org/up/apu/2008/06/15/img-152942s5fng.jpg Et voilà le script : if (strcmp(cmdtext, "/regarder-on", true) == 0) if (IsPlayerInArea(playerid,-170.3741,169.6984,-166.9072,175.5113)) { { SendClientMessage(playerid, COLOR_WHITE, "Pour quitter tapes /regarder-off"); SetPlayerCameraPos(playerid,-114.2193,95.6963,6.6436); SetPlayerCameraLookAt(playerid,-108.7165,86.1232,3.7206); TogglePlayerControllable(playerid, 0); return 1; } } if (strcmp(cmdtext, "/regarder-off", true) == 0) { TogglePlayerControllable(playerid, 1); SpawnPlayer(playerid); SetPlayerPos(playerid,-170.5633,173.4688,8.4611); return 1; } return 1; } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 15 juin 2008 Signaler Partager Posté(e) le 15 juin 2008 C'est normale : En haut de ton script : new regarde[MAX_PLAYERS]; ta commande : if (strcmp(cmdtext, "/regarder-on", true) == 0) if (IsPlayerInArea(playerid,-170.3741,169.6984,-166.9072,175.5113)) { { SendClientMessage(playerid, COLOR_WHITE, "Pour quitter tapes /regarder-off"); SetPlayerCameraPos(playerid,-114.2193,95.6963,6.6436); SetPlayerCameraLookAt(playerid,-108.7165,86.1232,3.7206); TogglePlayerControllable(playerid, 0); regarde[playerid] = 1; return 1; } if (strcmp(cmdtext, "/regarder-off", true) == 0) { if(regarde[playerid] == 1){ TogglePlayerControllable(playerid, 1); SpawnPlayer(playerid); SetPlayerPos(playerid,-170.5633,173.4688,8.4611); regarde[playerid] = 0; return 1; } } } return 1; } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
thomasleroi Posté(e) le 15 juin 2008 Auteur Signaler Partager Posté(e) le 15 juin 2008 Donc tout à l'air OK, plus d'erreur ni rien mais quand je me met à l'endroit ou je dois taper la commande, rien ne se passe Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 15 juin 2008 Signaler Partager Posté(e) le 15 juin 2008 (modifié) Il n'y a même pas le message "pour quitter tapez /regarder-off" ????? rien ne se passe quand tu rentre dans la zone, mais si tu tape la commande ?? est-ce que ça fonctionne ? de plus j'ai fait une erreur dans le code : if (strcmp(cmdtext, "/regarder-on", true) == 0) if (IsPlayerInArea(playerid,-170.3741,169.6984,-166.9072,175.5113)) { { SendClientMessage(playerid, COLOR_WHITE, "Pour quitter tapes /regarder-off"); SetPlayerCameraPos(playerid,-114.2193,95.6963,6.6436); SetPlayerCameraLookAt(playerid,-108.7165,86.1232,3.7206); TogglePlayerControllable(playerid, 0); regarde[playerid] = 1; return 1; } if (strcmp(cmdtext, "/regarder-off", true) == 0) { if(regarde[playerid] == 1){ TogglePlayerControllable(playerid, 1); SpawnPlayer(playerid); SetPlayerPos(playerid,-170.5633,173.4688,8.4611); regarde[playerid] = 0; return 1; } } } return 1; } Met ça a la place de ce qui est au dessus: if (strcmp(cmdtext, "/regarder-on", true) == 0) { if (IsPlayerInArea(playerid,-170.3741,169.6984,-166.9072,175.5113)) { SendClientMessage(playerid, COLOR_WHITE, "Pour quitter tapes /regarder-off"); SetPlayerCameraPos(playerid,-114.2193,95.6963,6.6436); SetPlayerCameraLookAt(playerid,-108.7165,86.1232,3.7206); TogglePlayerControllable(playerid, 0); regarde[playerid] = 1; return 1; } } else if (strcmp(cmdtext, "/regarder-off", true) == 0) { if(regarde[playerid] == 1){ TogglePlayerControllable(playerid, 1); SpawnPlayer(playerid); SetPlayerPos(playerid,-170.5633,173.4688,8.4611); regarde[playerid] = 0; return 1; } } return 1; } J'ai aussi modifié des accolade alors regarde bien Modifié le 15 juin 2008 par superpompier Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
thomasleroi Posté(e) le 16 juin 2008 Auteur Signaler Partager Posté(e) le 16 juin 2008 J'ai fais un "copier/coller", mais toujours rien, ni le Message n'apparait pas Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 16 juin 2008 Signaler Partager Posté(e) le 16 juin 2008 Le message n'apparait pas puisqu'il est dans DEUX conditions : le "si le player tape /regarder-on" et le "si le player est dans la zone" Tu as essayer de taper ta commande dans ta zone ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
thomasleroi Posté(e) le 17 juin 2008 Auteur Signaler Partager Posté(e) le 17 juin 2008 Le message n'apparait pas puisqu'il est dans DEUX conditions : le "si le player tape /regarder-on" et le "si le player est dans la zone" Tu as essayer de taper ta commande dans ta zone ? Oui oui je me suis mis dans la zone. J'ai une idée pour voir si sa plante dans les positions.. Je vais prendre tout LS, et j'esseré dans LV, si sa ne marche pas je vais à LS et si sa marche sa veut dire que les positions ne sont pas bonne... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 17 juin 2008 Signaler Partager Posté(e) le 17 juin 2008 (modifié) tu as beaucoup plus simpe, tu met un AeraShowToPlayer ou un truck du genre, se qui donnera une couleur a ta zone, tu verra tout de suite si c'est au bon endroit ou quoi Edit : Ce n'est pas AeraShowToPlayer mais : GangZoneShowForAll("nom de ta zone", COLOR_RED); Pour le nom de ta zone c'est pas plus simple que ça : dans ton OnGameModeInit tu met : ZONE = GangZoneCreate(-170.3741,169.6984,-166.9072,175.5113); Et voila ^^ après on va juste faire une petite commande pour que ta zone apparaisse if (strcmp(cmdtext, "/zone", true) == 0) { GangZoneShowForAll("ZONE", COLOR_RED); return 1; } Normalement en tapant /zone, un carré rouge de la taille de la zone va apparaitre sur ta minimap a l'endroit ou est la zone, MAIS, et oui il y a un MAIS ^^ Comme ta zone est minuscule, tu devra allé voir sur ta carte dans le menu du jeu (échappe > carte) et tu zoomera au max (ne te met pas a l'endroit de la zone bien sur sinon tu aura la grosse flèche qui te cachera la zone xD ça serais con ^^ lol ^^ Voila, après ça si ta zone est bien a l'emplacement, ça vient pas de la... Faudra trouver ^^ Bon courage Modifié le 17 juin 2008 par superpompier Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
thomasleroi Posté(e) le 17 juin 2008 Auteur Signaler Partager Posté(e) le 17 juin 2008 (modifié) Sa marche pas... Tanpis je laisse tomber ça pour le moment je continu mon "FS Noob Admin" (Quoi, le nom bous plait pas ?) En tout cas je te remercie Modifié le 17 juin 2008 par thomasleroi Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
StAfF MaN Posté(e) le 18 juin 2008 Signaler Partager Posté(e) le 18 juin 2008 Arf... okay ^^ Mais en tout cas si tu as d'autre prob j'suis la et je suis aussi connu sous le speudo [stAfF]MaN !!! (sur un autre forum ou tu est inscrit depuis peut et où tu poste des demande d'aide ^^ GTAOn.... ^^ ) Bon courage par la suite Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
thomasleroi Posté(e) le 18 juin 2008 Auteur Signaler Partager Posté(e) le 18 juin 2008 Arf... okay ^^ Mais en tout cas si tu as d'autre prob j'suis la et je suis aussi connu sous le speudo [stAfF]MaN !!! (sur un autre forum ou tu est inscrit depuis peut et où tu poste des demande d'aide ^^ GTAOn.... ^^ ) Bon courage par la suite OK, merci !!! ^^ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.