GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: garderer le 17 Avril 2008, 10:56:21

Titre: Minicarte ! Question
Posté par: garderer le 17 Avril 2008, 10:56:21
Bonjour je voudrai un peut d'aide svp  :-[ :
        Je voudrai que sur toute la carte on voit les joueurs de sa team (sur toute la carte).
        J'aimerai que ont voit sur la carte les pseudos des enemies au bout d'une distance de (10 mettres).

Il y'a trois team dans le sript :
         TEAM_ATTACK 1
         TEAM_DEFENCE 2
         TEAM_FOLLE 3
Si vous pourriez m'aidez pouriez vous up quelque chose je ne sait pas utiliser playerinarea et je ne peut pas le tester c'est quelq'un d'autre qui le fait etant donné que que je suis pas sur mon pc pendant 1 moi.
Titre: Re : Minicarte ! Question
Posté par: [StAfF]MaN le 17 Avril 2008, 13:24:37
Salut !!

Pour tes speudos sur la minicarte je ne pense pas que se soit possible, ou alors j'aimerais bien savoir comment faire aussi ;)
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 17 Avril 2008, 13:46:28
Je pense pas non plus que les pseudos sur carte soit possible, parceque dans le jeu en solo il n'y a pas de texte sur la carte.
Titre: Re : Minicarte ! Question
Posté par: garderer le 17 Avril 2008, 14:18:06
Vous n'avez pas comprit j'ai du male formuler:
J'aimerai que sur la mini carte on voit des point Orange ceux de notre equipe et quand on va vers un enemie on voit un point rouge sur la minicarte quand on et proche de lui (environ dix métre je pense que c'est largement possible)
Quelqu'un pourait au moin me donner quelque chose que sur la mini carte on voit les joueur de son equipe juste

merci
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 17 Avril 2008, 16:08:53
Alors la c'est possible ^^. Si je me souvient bien, il faut utiliser le ProxDetector. Qui definira une zone autour du personnage, tu insere l'affichage des "icone map" dans le if du ProxDetector et ca devrait marcher.

Je vais essayer de trouver le public ProxDetector tu le modifiera comme tu veut ;).

EDIT: je l'ai retrouvé mais c'est celui du GodFather, le public et fait pour les message par distance :s. Si tu le veut comme meme pour essayer de le modif demande moi le.
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 19 Avril 2008, 10:55:41
Bonjour, J'ai pas fais de nouveau sujet parce que cest pour la minicarte ....
Voila, Jei créé un serveur de stunt et jai placer un check point de teleportation....
Le probleme, cest qu'il saffiche en permanence SUR LA CARTE ... Est ce qu'il y a un truc qui peu faire qu'on le vois que a une certaine distance...
Est ce qu'il faut le faire ac le proxdetector ??
Merci
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 19 Avril 2008, 14:57:56
Je pense que oui, que le checkpoint s'active uniquement quand le joueur entre dans la zone du checkpoint.
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 19 Avril 2008, 16:08:38
Mais quel code il faut metre ????
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 19 Avril 2008, 17:56:15
Je vais essayer d'adapter parceque c'est pas si simple en fait avec le ProxDetector.
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 19 Avril 2008, 21:01:59
Mais comment faire alors ? pcq j'aimeré qu'on voit le point rouge du checkpoint que quand on est a 10 mettre ou carément l'enlever .... cest possible de l'enlever ??
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 19 Avril 2008, 23:03:22
Tu peut faire un systeme avec PlayerToPoint:

        if(PlayerToPoint(25.0/*ca c'est la zone autour du checkpoint pour l'afficher*/,playerid, x, y, z /*de ton check point*/))
{
                    SetPlayerCheckpoint(playerid, x, y, z, taille);
    return 1;
}
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 20 Avril 2008, 12:02:35
if(PlayerToPoint(25.0, playerid, x, y, z)) <<< Je laisse 25.0 ?? et je met quoi a la place de x, y, z ????
{
SetPlayerCheckpoint(playerid, x, y, z, taille);  <<< La aussi je met quoi a la place de x, y, z ??
return 1;
}

++
nikko
Titre: Re : Minicarte ! Question
Posté par: kikite02 le 20 Avril 2008, 13:18:09
x , y , z

c'est le float x , y , z

exemple 200.250 , 300.100 , 400.500
Titre: Re : Minicarte ! Question
Posté par: [StAfF]MaN le 20 Avril 2008, 14:20:30
je pense que tu laisse et tu met dans le public dans lequel ce code est placé

new Float X, Float Y, Float Z;
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 20 Avril 2008, 14:59:14
Salut,

25.0  c'est la zone ou le code va s'activer. Donc tu met en fonction de la taille que tu veut qu'il s'affiche. Fait un test 50.0.
x, y, z c'est la position du centre du playertopoint donc tu met les "float" de ton checkpoint.

Exemple avec des données au hasard:

Si ton Checkpoint est :

SetPlayerCheckpoint(playerid, 2000.0, 2000.0, 2000.0, 6.0);

Pour faire une zone autour de ton checkpoint pour l'affichage tu fait:

if(PlayerToPoint(50.0, playerid,  2000.0, 2000.0, 2000.0)); pour le "50.0" c'est la taille de la zone d'affichage, en fonction des test, tu augmentera/diminuera a ta guise pour qu'il s'affiche quand tu veut.

Pour supprimer le checkpoint quand on sort de la zone je suis pas trop sur de comment faire faut que je fasse des tests (et oui encore des test mais j'aime pas donner des infos éronné).

Voila ++
Titre: Re : Minicarte ! Question
Posté par: [StAfF]MaN le 20 Avril 2008, 15:07:14
Oui mais lui c'est sur des persos donc ce ne sont pas des coordonnées fixes...
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 20 Avril 2008, 15:11:30
Re.
Donc je vais tester si ca marche mais ce code la:
if(PlayerToPoint(25.0, playerid, -152.3, 257.65, -4586.4))
{
SetPlayerCheckpoint(playerid, -152.3, 257.65, -4586.4, 4);
return 1;
}

Je le met ou ???

++
nikko
Titre: Re : Re : Minicarte ! Question
Posté par: feldbrau le 20 Avril 2008, 16:19:43
Oui mais lui c'est sur des persos donc ce ne sont pas des coordonnées fixes...

Oui mais ce n'est pas un detecteur de Position joueur, mais une zone ou l'on rentre dedans pour activer quelque chose.

Pour nikkocz:

forward checkpoint(playerid);
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);

public OnGameModeInit()
{
SetTimer("checkpoint",200,1);
return 1;
}

public checkpoint(playerid)
{
if(PlayerToPoint(50.0, playerid, 2039.7375,1342.7982,10.6719))
{
SetPlayerCheckpoint(playerid, 2039.7375,1342.7982,10.6719, 4);
}
else
{
    DisablePlayerCheckpoint(playerid);
}
}

public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
    if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}

Bon, c'est vraiment du basique de chez basique. Je ne vais quand pas faire tous ton mode ^^. Donc voila a quoi ca ressemble, le timer je l'ai pris pour eviter de devoir activer par commande. les position tu les changera comme tu veut, faudra que tu fasse pas mal de variable parceque ca va te détruire tous les checkpoints des joueurs si il ne sont pas dans la zone. La taille 50.0 je l'a trouve un peu petite donc fais tes propres essai et tu verra le meilleur pour toi.
Les positions qui sont definit sont au spawn de base quand on creer un GM (Las Venturas). Le public et le forward PlayerToPoint c'est au cas ou tu ne les aurais pas.

++
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 20 Avril 2008, 17:31:22
Super ca marche mais quand tu dit de creer des variable ??? Moi jfais pas faire ca encore :(

++
nikko
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 20 Avril 2008, 18:27:20
Par exemple a chaque fois que tu creera un nouveau checkpoint tu devra mettre une variable et dans le public du timer mettre:

public checkpoint(playerid)
{
    if("nom de la variable"[playerid] == 0)
   {
if(PlayerToPoint(50.0, playerid, 2039.7375,1342.7982,10.6719))
{
SetPlayerCheckpoint(playerid, 2039.7375,1342.7982,10.6719, 4);
}
else
{
    DisablePlayerCheckpoint(playerid);
}
   }
}

En fait a chaque checkpoint créé tu mettra:

SetPlayerCheckpoint . . .
"nom de la variable"[playerid] = 1;
return 1;

comme ca si il y a une course avec des checkpoints, il ne s'enleveront pas.
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 20 Avril 2008, 20:35:19
Nn mais jen est pas besoin, c'été juste un check point sur ma map stunt. Merci quand meme

++
nikko
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 21 Avril 2008, 19:38:38
Salut,
Je vien de tester le truc ac plusiseurs personne sur le serv et ya certaines personne, le point s'affiche sr la carte, et d'autre nn..!
Compren pas du tout la ..... ???

++
nikko
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 21 Avril 2008, 20:42:02
Est-ce qu'il rentre chacun dans la zone?
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 21 Avril 2008, 20:53:48
NN, Tout a l'heure, j n'était pas dans la zone, une autre personne non plus et lui voyait le point sur sa carte mais moi nn.... ???

++
nikko
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 21 Avril 2008, 21:36:59
C'est normal, le checkpoint est affiché pour la personne qui rentre dans la zone, comme tu l'as demandé. Tous le monde doit etre dans la zone si il veulent le checkpoint
Titre: Re : Minicarte ! Question
Posté par: _FsK_Ray le 22 Avril 2008, 17:19:24
Voila, j'ai une question qui concerne aussi la minimap: Est-ce qu'il serai possible de l'enlever (je ne parle pas de masquer les ICON :) )?
Titre: Re : Re : Minicarte ! Question
Posté par: Micka le 22 Avril 2008, 17:22:40
Voila, j'ai une question qui concerne aussi la minimap: Est-ce qu'il serai possible de l'enlever (je ne parle pas de masquer les ICON :) )?
J'pense pas.
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 22 Avril 2008, 17:32:38
Salut,
Feldbrau je croi que tu n'a pas compris le petit soucis.
Le truc, cest qu'a certaines personnes (Je parle quand on est pas dans la zone) le point s'affiche quand meme sur la carte. Moi je ne le voyait pas, mais une autre personne le voyait pourtant (sans etre dans la zone).

++
nikko
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 22 Avril 2008, 18:02:18
C'est bizarre, soit il t'a mito ^^ soit il n'etait pas dans la zone c'est pas possible autrement ^^. Le checkpoint est definit pour le joueur donc c'est pas possible. A moins qu'il ait activé un autre checkpoint definit dans ton mode.
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 22 Avril 2008, 18:11:35
Nn il ma pas mito il n'a pas que ca a faire ^^ moi aussi je trouve bizzar mais tkt pas je n'en mourai pas pour ca  ;)

++
nikko
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 22 Avril 2008, 18:18:15
Desactive tous les checkpoints sauf celui que je t'ai fais et réessaye, ca devrait marcher. Ensuite tu regarde tous tes checkpoint pour voir comment il se lance ... Je suis quasi sur qu'il a activé un autre checkpoint.

++
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 22 Avril 2008, 19:00:57
Il n'y a pas d'autre check point Mdr.
On est bien clair que je doit laisser le Check1 = Createcheckpoint(...............); dans le spawn du player ?? Ou je doit lenlever ?

++
nikko
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 22 Avril 2008, 19:25:21
Non pas du tout ^^.
Je n'ai jamais dit de mettre ceci dans le spawn. Tu met seulement SetTimer("checkpoint",200,1); dans ongamemodeinit c'est tous ;)
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 22 Avril 2008, 19:35:48
MAis apré moi j'ai mi des actions dans le Oneplayerentercheckpoint.....
Voila tout ce que jai mi:

new Check1;   <<< en haut

Check1 = SetPlayerCheckpoint(playerid, 1439.8232,-2504.5081,13.5547, 4);  <<< oneplayerspawn

public OnPlayerEnterCheckpoint(playerid)
{
      
      if (Check1){ // Si le joueur est dans le CheckPoint définis :
      if(IsPlayerInAnyVehicle(playerid)) {
      new Float:X;
      new Float:Y;
      new Float:Z;
      new VehicleID;
      GetPlayerPos(playerid, X, Y, Z);
      VehicleID = GetPlayerVehicleID(playerid);
      SetVehiclePos(VehicleID, 1206.806885, -2496.227783, 219.106369);
      GameTextForPlayer(playerid,"~g~Vous etes a road",3000,3);
      } else {
      new Float:X;
      new Float:Y;
      new Float:Z;
      GetPlayerPos(playerid, X, Y, Z);
      SetPlayerPos(playerid, 1206.806885, -2496.227783, 219.106369);
      GameTextForPlayer(playerid,"~g~Vous etes a road",3000,3);
      }

      return 1;
}

+ Tes truc.
Quest ce que je doit enlever/rajouter ???

++
nikko
Titre: Re : Re : Minicarte ! Question
Posté par: feldbrau le 22 Avril 2008, 19:37:39
Quest ce que je doit enlever/rajouter ???
Check1 = SetPlayerCheckpoint(playerid, 1439.8232,-2504.5081,13.5547, 4);  <<< oneplayerspawn

++ ^^
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 22 Avril 2008, 19:39:15
Oui mais si j'enleve ca, la commande ne marche plus en bah, donc faut enlever aussi le "if(check1.....);" je pense.

++
nikko
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 22 Avril 2008, 20:21:59
public checkpoint(playerid)
{
if(PlayerToPoint(50.0, playerid, 2039.7375,1342.7982,10.6719))
{
Check1 = SetPlayerCheckpoint(playerid, 2039.7375,1342.7982,10.6719, 4);
}
else
{
    DisablePlayerCheckpoint(playerid);
}
}

C'est le dedans que tu le definit ;)
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 22 Avril 2008, 21:47:59
Donc j'enleve le check1 = create.......
Et je met ca ??? Et je rajoute la commande dedant ?

++
nikko
Titre: Re : Minicarte ! Question
Posté par: feldbrau le 22 Avril 2008, 22:12:40
Tu n'ajoute rien dedans tu enleve le setplayercheckpoint dans onplayerspawn et tu met check1 = Set... dans le public checkpoint, se que tu a mis de onplayerenter.... tu le laisse puisque check1 est definit par le public.
Titre: Re : Minicarte ! Question
Posté par: Nikko™ le 22 Avril 2008, 22:21:24
Ok merciii

++
nikko