GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Kevin_Carter le 08 Avril 2013, 15:51:31

Titre: Problème commande et chat RP
Posté par: Kevin_Carter le 08 Avril 2013, 15:51:31
Bonjour,

J'ai fais une commande /ooc pour parler en ooc et j'aimerais savoir comment ajouter l'id du joueur qui parle sur le message...
Voilà ma création :
CMD:o(playerid, params[])
{
new pID, pName[MAX_PLAYER_NAME];
new string[300], message[200];
GetPlayerName(playerid, pName, sizeof(pName));
if(!sscanf(params,"s", message))
{
format(string, sizeof(string), "(( [ %i ] | %s : %s ))",pID, pName,message);
SendClientMessageToAll(bleu, string);
}
else return SendClientMessage(playerid, gris, "USAGE: /o <Message>");
return 1;
}

Et je voudrais savoir aussi comment fais un chat RP...
J'ai fais quelque chose dans le OnPlayerText mais le message en couleur apparaît tout le temps. J'aimerais savoir comment le retirer... CODE : for(new i;i<MAX_PLAYERS;i++)
{
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid, x,y,z);
    new string[200], pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "%s : %s", pName, text);
    if(IsPlayerInRangeOfPoint(i, 10, x,y,z))
    {
        SendClientMessageToAll(gris,string);
    }
}

Merci d'avance et à la prochaine.[/i]
Titre: Re : Problème commande et chat RP
Posté par: vincentdu90 le 08 Avril 2013, 16:38:35
Bonjour,

    Pour ton premier problème il te suffit seulement d'utiliser playerid dans ton format.
Pour le second, ce n'est pas SendClientMessageToAll() que tu dois utiliser mais SendClientMessage() avec i comme premier paramètre. De plus tous ce qui précède ton format() peut-être mis en dehors de la boucle car tu as juste besoin de faire tous ça une fois, lorsque le joueur tape la commande  :happy:.

Voilou
Titre: Re : Problème commande et chat RP
Posté par: Kevin_Carter le 08 Avril 2013, 17:17:07
Merci pour le premier problème mais lorsque j'écris IG, ya un message gris et un message avec mon nom orange et mon texte ! Comment puis-je retirer le texte avec la couleur ? qui est d'ailleurs transmis à tout les joueurs...
Titre: Re : Problème commande et chat RP
Posté par: vincentdu90 le 09 Avril 2013, 11:26:25
Ton "chat RP" doit être mis dans OnPlayerCommandText pas dans le OnPlayerText car ton nom en orange doit sûrement être ton pseudo.
Titre: Re : Problème commande et chat RP
Posté par: steve76 le 09 Avril 2013, 17:11:50
Si j'ai bien compris ton soucis:

public OnPlayerText(playerid, text[])
{
ChatNormal(playerid, text); //Ton chat normal RP dans une fonction ou directement ici
return 0; //Retourne 0 pour ne pas afficher le texte par défaut, juste le tient.
}
Titre: Re : Problème commande et chat RP
Posté par: Infu le 09 Avril 2013, 18:40:43
Pour un chat RP, utilise ce que dit cette personne: http://www.gtaonline.fr/forums/index.php?topic=13715.msg233652#msg233652 (http://www.gtaonline.fr/forums/index.php?topic=13715.msg233652#msg233652)
Ensuite, dans OnPlayerText() tu auras juste à utiliser:
Code: (pawn) [Sélectionner]
ProxDetector();

++ :)
Titre: Re : Problème commande et chat RP
Posté par: vincentdu90 le 09 Avril 2013, 21:05:06
Le IsPlayerInRangeOfPoint() fait exactement la même chose que cette commande donc ça ne serait pas très utile.
Titre: Re : Problème commande et chat RP
Posté par: Kevin_Carter le 10 Avril 2013, 12:19:42
Merci de vos réponses; le return 0; est valide merci et pour le playerid aussi. Merci à vous.
Merci aussi à Infu mais je crois que je vais rester sur le IsPlayerInRangeOfPoint(); ;-)