• 05 Juin 2026, 16:36:25


Auteur Sujet: SendClientMessage pour une zone  (Lu 3125 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
SendClientMessage pour une zone
« le: 28 Septembre 2008, 11:33:38 »
Bonjour, alors voilà j'ai un petit problème pour un script je voudrais savoir comment on fais quelque chose dans ce genre :

If(SiLeJoueurEstDansCetteZone...)
{
SendClientMessage("...il pourra recevoir se message par exemple : ' %d fini premier ' ", playename); // Et sa serais que les joueurs qui sont dans une zone défini qui pourraient voir le message.
}

Est-ce que c'est possible et comment on fait ?

Ps : j'ai essayer de faire un truc mais sa marche pas...


Merci d'avance.



Cordialement, J0n.
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : SendClientMessage pour une zone
« Réponse #1 le: 28 Septembre 2008, 11:41:57 »
oui c'est possible, va dans le topic tutos ^^ il y a un sujet sur les zones ;)
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
Re : SendClientMessage pour une zone
« Réponse #2 le: 28 Septembre 2008, 13:12:02 »
Justement c'est ce que j'ai fait :

public OnPlayerShootl(playerid)
{
new Float:px, Float:py;
new kickstring[256];
if(IsPlayerInArea(playerid, 1402.4, -2645.111, 1588.739, -2451.671))
        {
GetXYInFrontOfPlayer(playerid, px, py, 16.0);
MoveObject(ball, px, py, 12.851875, 22.5);
format(kickstring, sizeof(kickstring), "[ARBITRE] %s shoot dans le balon!", PlayerName(playerid));
Narracao(kickstring);
        }
}


Mais ca fonctionne pas, quand on se connecte sur le serveur le message se répete tout le temps même quand on est pas dans la zone , ça fait un flood qui ne s'arete pas....

Si quelqu'un peux m'aider... SVP.


Merci d'avance.
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : SendClientMessage pour une zone
« Réponse #3 le: 28 Septembre 2008, 13:21:39 »
public OnPlayerShootl(playerid)
{
new Float:px, Float:py;
new kickstring[256];
if(IsPlayerInArea(playerid, 1402.4, -2645.111, 1588.739, -2451.671))
        {
   GetXYInFrontOfPlayer(playerid, px, py, 16.0);
   MoveObject(ball, px, py, 12.851875, 22.5);
   format(kickstring, sizeof(kickstring), "[ARBITRE] %s shoot dans le balon!", PlayerName(playerid));
   Narracao(kickstring);
           return 1;
        }
return 1;
}

met des return 1;
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
Re : SendClientMessage pour une zone
« Réponse #4 le: 28 Septembre 2008, 13:22:44 »
A je vais essayer merci ;).
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
Re : SendClientMessage pour une zone
« Réponse #5 le: 28 Septembre 2008, 13:30:04 »
humm ça marche mieux mais ça m'empêche de faire une action, est-ce possible de faire comme ça :
public OnPlayerShootl(playerid)
{
new Float:px, Float:py;
new kickstring[256];
   GetXYInFrontOfPlayer(playerid, px, py, 16.0);
   MoveObject(ball, px, py, 12.851875, 22.5);
if(IsPlayerInArea(playerid, 1402.4, -2645.111, 1588.739, -2451.671))
        {
   format(kickstring, sizeof(kickstring), "[ARBITRE] %s shoot dans le balon!", PlayerName(playerid));
   Narracao(kickstring);
           return 1;
        }
return 1;
}

?

Merci d'avance.
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

MadFire

  • Invité
Re : SendClientMessage pour une zone
« Réponse #6 le: 28 Septembre 2008, 13:32:15 »
public OnPlayerShootl(playerid)
{
new Float:px, Float:py;
new kickstring[256];
   GetXYInFrontOfPlayer(playerid, px, py, 16.0);
   MoveObject(ball, px, py, 12.851875, 22.5);
if(IsPlayerInArea(playerid, 1402.4, -2645.111, 1588.739, -2451.671))
        {
   format(kickstring, sizeof(kickstring), "[ARBITRE] %s shoot dans le balon!", PlayerName(playerid));
   Narracao(kickstring);
           return 1;
        }
return 0;
}


Je pense que c'est mieux comme ça  ;)

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
Re : SendClientMessage pour une zone
« Réponse #7 le: 28 Septembre 2008, 19:01:35 »
c'est mieux de mettre un "return 0;" ? pourquoi ?

Ps : Dans tous les cas ca ne fonctionne pas .... :s aidez moi svp
« Modifié: 28 Septembre 2008, 21:52:36 par jonjon »
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
Re : SendClientMessage pour une zone
« Réponse #8 le: 29 Septembre 2008, 18:10:48 »
Bon, sinon quelqu'un veux bien m'aider par msn (ça sera plus simple et on pourra tester ensemble) ? SVP

Merci d'avance.


Cordialement, J0n.
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : SendClientMessage pour une zone
« Réponse #9 le: 29 Septembre 2008, 21:18:51 »
J'aimerais savoir ce que tu entend par "ça marche mieux" ^^ Il y a le message quand tu arrive dans la zone ??

Alors ce que tu va faire, c'est que tu va te faire un petit code, juste avec un message qui s'affiche ( normalement ) quand tu passe dans une zone, quand ce code sera fait et qu'il fonctionnera, tu pourra ajouter ton moveobject ;)

Moi ce que je ramrque, si je ne me trompe pas déjà, c'est pour shooter dans un ballon, donc, quand tu shoot, il bouge, alors pourquoi des as des valeurs fixes dans ton if(IsPlayerInArea(playerid, 1402.4, -2645.111, 1588.739, -2451.671)) ???
Essaye de récupéré la valeur nouvelle quand le ballon est bougé, de ce faite, tu pourra shooter dedans plusieurs fois, car la je pense que ça ne peut fonctionner qu'une seul fois ^^
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
Re : SendClientMessage pour une zone
« Réponse #10 le: 29 Septembre 2008, 21:39:28 »
parce que ces valeurs fixe sont les dimensions du terrain de foot...
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : SendClientMessage pour une zone
« Réponse #11 le: 29 Septembre 2008, 22:56:03 »
Mon français fait pitié ^^ (mon potse précédent lol )

Ok, c'est les valeur du terrain de foot, mais heu, en faite quand il est dans le terrain, il y a un message qui s'affiche, [ARBITRE] %s shoote dans le ballon, même si le joueur a pas shooter dedans lol

sinon essaye comme ça :

public OnPlayerShootl(playerid)
{
new Float:px, Float:py;
new kickstring[256];
   GetXYInFrontOfPlayer(playerid, px, py, 16.0);
   MoveObject(ball, px, py, 12.851875, 22.5);
if(IsPlayerInArea(playerid, 1402.4, -2645.111, 1588.739, -2451.671))
        {
   format(kickstring, sizeof(kickstring), "[ARBITRE] %s shoot dans le balon!", PlayerName(playerid));
   Narracao(kickstring);
           return 1;
        }
}

^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne garderer

  • *
  • Bandit
  • Messages: 271
    • Voir le profil
Re : SendClientMessage pour une zone
« Réponse #12 le: 30 Septembre 2008, 12:43:19 »
[code=]// En haut du script

forward IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy);
forward ZoneEnter();

new Zenter[MAX_PLAYERS];

//OnGameModeInit

SetTimer("ZoneEnter",3000,1); // Le timer qui va tourner en boucle toute les 3secondes

// A la fin du script

public IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    if (x > minx && x < maxx && y > miny && y < maxy) return 1;
    return 0;
}

public BankEnter()
{
    for(new i=0; i < MAX_PLAYERS; i++) // Boucle parcourant les joueurs
    {
             if(IsPlayerInArea(i, Float:minx, Float:maxx, Float:miny, Float:maxy) // si le joueur est dans la zone
             {
                   if(!Zenter[i]) // Si il vient d'y entrer
                {
                    Zenter[i] = 1; // Le joueur est dans la zone
                        SendClientMessage(i, COLOR_GREEN, "Garderer en force"); // on affiche un message
                }
         }
         else if(Zenter[i]) // Si le joueur sort de la zone
         {
                   Zenter[i] = 0; // Le joueur sort de la zone
              SendClientMessage(i, COLOR_RED, "ououou"); // Petit message
          }
    }
}

Tuto sur le Forum Fight-International réalisé par Tunsi[WC]

j'ai 30 Zonnes sur mon serveur *RPG* et avec sa tu aura pas de probléme.

Dsl je suis en cour je répond rapidement.

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
Re : SendClientMessage pour une zone
« Réponse #13 le: 30 Septembre 2008, 19:04:14 »
oki, merci . Mais je met où les coordonnées de mon terrain de foot ? ^^
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : SendClientMessage pour une zone
« Réponse #14 le: 30 Septembre 2008, 21:07:37 »
a la place de

Float:minx, Float:maxx, Float:miny, Float:maxy

;)
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|