• 24 Avril 2025, 06:43:18


Auteur Sujet: Activer le Private Message sur SA-MP 0.3a  (Lu 880 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne [T_StAfF]Benji

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Activer le Private Message sur SA-MP 0.3a
« le: 03 Novembre 2009, 02:05:39 »
Salut , je vais vous expliquer comment activer le private message dans SA-MP 0.3

Donc tout d'abord nous allons ajouter sa en haut du script


// Defines

#define ADMINFS_MESSAGE_COLOR 0xFF444499
#define PM_INCOMING_COLOR     0xFFFF22AA
#define PM_OUTGOING_COLOR     0xFFCC2299

// news

new cmd[256];
new tmp[256];
new Message[256];
new gMessage[256];
new pName[MAX_PLAYER_NAME+1];
new iName[MAX_PLAYER_NAME+1];
new idx;


Ensuite nous allons ajouter la commande :


if(strcmp("/pm", cmd, true) == 0)
{
tmp = strtok(cmdtext,idx);

if(!strlen(tmp) || strlen(tmp) > 5) {
SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Utilisation : /pm [ID] [MESSAGE]");
return 1;
}

new id = strval(tmp);
        gMessage = strrest(cmdtext,idx);
       
if(!strlen(gMessage)) {
SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Utilisation : /pm [ID] [MESSAGE]");
return 1;
}

if(!IsPlayerConnected(id)) {
SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"L'ID que tu as saisie est incorrecte.");
return 1;
}

if(playerid != id) {
GetPlayerName(id,iName,sizeof(iName));
GetPlayerName(playerid,pName,sizeof(pName));
format(Message,sizeof(Message),"%s(%d): %s",iName,id,gMessage);
SendClientMessage(playerid,PM_OUTGOING_COLOR,Message);
format(Message,sizeof(Message),"%s(%d): %s",pName,playerid,gMessage);
SendClientMessage(id,PM_INCOMING_COLOR,Message);
PlayerPlaySound(id,1085,0.0,0.0,0.0);

printf("PM: %s",Message);

}
else {
SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Tu ne pas pas t'envoyé de PM.");
}
return 1;
}



Et voila , vous avez activez le private message !

PS : Je pense grandement que l'identation est a refaire ^^

++
[StAfF]Benji
« Modifié: 03 Novembre 2009, 02:20:00 par [T_StAfF]Benji »

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Activer le Private Message sur SA-MP 0.3a
« Réponse #1 le: 03 Novembre 2009, 09:18:47 »
plus simple il suffit de prendre le base.pwn mais a savoir il y a plus simple pour ce genre de code avec le SendPlayerMessageToPlayer  http://wiki.sa-mp.com/wiki/SendPlayerMessageToPlayer
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Activer le Private Message sur SA-MP 0.3a
« Réponse #2 le: 03 Novembre 2009, 11:18:55 »
Le problème de SendPlayerMessageToPlayer c'est que l'affichage dans le chat se fait de la même façon que pour un message normal, la seule différence c'est qu'un seul joueur peu le voir. Mais il ne peut pas faire la différence entre un message envoyé à tout le monde et un message qui n'est destiné qu'à lui même (il risque donc de répondre sur le chat public).

L'avantage du vrai PM c'est que c'est clairement indiqué et celui qui reçoit sait qu'il est le seul destinataire.

++
Syg
Courtesy of GtaManiac

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Activer le Private Message sur SA-MP 0.3a
« Réponse #3 le: 03 Novembre 2009, 11:28:01 »
j'avais pas penser a sa
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
Re : Activer le Private Message sur SA-MP 0.3a
« Réponse #4 le: 03 Novembre 2009, 13:22:48 »
lol, c'est le base.pwn en traduit c'est tout ^^. Mais c'est sympa de partager l'astuce
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Activer le Private Message sur SA-MP 0.3a
« Réponse #5 le: 03 Novembre 2009, 13:33:13 »
ne pas oublier

#include "../include/gl_common.inc"
ou bien
stock strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}

new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}

stock strrest(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[128];
while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici