• 11 Juillet 2025, 10:32:07


Auteur Sujet: DM, encore et toujours.... [Résolu]  (Lu 4424 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
DM, encore et toujours.... [Résolu]
« le: 10 Mai 2008, 11:51:01 »
Bonjour tout le monde,
Me revoila avec un pb de DM.
Dans ma commande pour acceder au dm (/dm) jai ajouter un truc pour modifier le nom du player en player_DM.
Voila ce que jai mit dans la commande

new name[256];  // 1390
new tmp[256]; // 1391
tmp = strtok(cmdtext, idx); // 1392
GetPlayerName(playerid, name, sizeof(name)); // 1393
SetPlayerName(playerid,"%s_DM", name); // 1394

Error: "number of arguments does not match definition" a la ligne 1394
Merci d'avance

++
nikko
« Modifié: 11 Mai 2008, 12:53:12 par nikko12 »

Hors ligne gen_vivien

  • GTA-PARADISE RPG-Life
  • *
  • Tueur en série
  • Messages: 110
    • Voir le profil
    • Serveur RPG-Life
Re : DM, encore et toujours....
« Réponse #1 le: 10 Mai 2008, 12:41:04 »
vérifie que la ligne qui correspond à celle ligne 1394 soit bien conforme. OU un problème de "playerid"

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #2 le: 10 Mai 2008, 12:50:08 »
Jai bien esseyer differents truc, mais rien ne va, jai meme demandé a Native, il ne trouve pas XD

++
nikko

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #3 le: 10 Mai 2008, 12:51:31 »
C'est pas que je trouve pas !

C'est que j'utilise rarement cette fonction donc je connais pas bien tout s'est utilisation

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #4 le: 10 Mai 2008, 12:53:14 »
Ahh ok ... Lol

++
nikko

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #5 le: 10 Mai 2008, 14:17:31 »
La fonction SetPlayerName ne doit avoir que 2 paramètres, pas 3.
Pour faire ce que tu veux faire, il faut passer par une variable intermédiaire :

   new NouveauNom[255];

   format (NouveauNom, sizeof (NouveauNom), "%s_DM", name);
   SetPlayerName (playerid, NouveauNom);

++
Syg
Courtesy of GtaManiac

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #6 le: 10 Mai 2008, 15:05:58 »
Salut,
Il y avais un soucis de symboles donc jai ajouter "new name", ce qui fait ceci:
new NouveauNom[255];
new name[256];
format (NouveauNom, sizeof (NouveauNom), "%s_DM", name);
SetPlayerName (playerid, NouveauNom);

MAis le pb cest que ca ne marque plus dutout le nom du joueur ca met seulement "_DM"

++
nikko

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #7 le: 10 Mai 2008, 15:56:55 »
Tu as oublier de mettre le nom du joueur dans ta variable name ;)

++
ZecKo

MadFire

  • Invité
Re : DM, encore et toujours....
« Réponse #8 le: 10 Mai 2008, 17:22:24 »
ZecKo tu veut dire "playerid" ? ???

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #9 le: 10 Mai 2008, 17:23:54 »
Je te montrais juste comment remplacer ton SetPlayerName.
Il fallait garder ce que tu avais fait autour ...

Ce qui devrait donner :
new name[256];
new tmp[256];
new NouveauNom[255];

tmp = strtok(cmdtext, idx);
GetPlayerName(playerid, name, sizeof(name));
format (NouveauNom, sizeof (NouveauNom), "%s_DM", name);
SetPlayerName (playerid, NouveauNom);

++
Syg
Courtesy of GtaManiac

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #10 le: 10 Mai 2008, 19:20:04 »
Ok merci syg, ca marche, cest bon a savoir ;)
EDIT: Mais pour quand je fait /dmexit, Jai esseyer plusieurs truc mais je n'y arrive pas :(
Peut on m'aider ??  :)

++
nikko
« Modifié: 10 Mai 2008, 19:33:45 par nikko12 »

Hors ligne lepompier

  • *
  • Bandit
  • Messages: 422
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #11 le: 10 Mai 2008, 21:41:32 »
s'est pas compliquer tien regarde

    if(strcmp(cmdtext,"/dmquite", true)==0){
    PlayerPlaySound(playerid, 1137, 0, 0, 0);
    new playerdm[MAX_PLAYER_NAME];
    new PlayerConnecteddm[256];
    DM[playerid] = 0;
    GetPlayerName(playerid, playerdm, sizeof(playerdm));
    format(PlayerConnecteddm, sizeof(PlayerConnecteddm), "Le player %s a quitté un Death Match ", playerdm);
    SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid,2048.7170,1510.3895,10); // Tu change tu mais ta posstion a toi si tu veux aleatoire dit le moi je te monteré
    SendClientMessageToAll(COLOR_YELLOW, PlayerConnecteddm);
    return 1;
}
« Modifié: 10 Mai 2008, 21:43:11 par lepompier »

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #12 le: 10 Mai 2008, 21:41:52 »
Alors, quand le joueur tape /dm tu doit prendre ses positions ;)

au début de ton script :
Code: (pawn) [Sélectionner]
New Float:oldX[MAX_PLAYERS], Float:oldY[MAX_PLAYERS], Float:oldZ[MAX_PLAYERS];
new IsInDm[MAX_PLAYERS];

quand le joueur tape /dm :
Code: (pawn) [Sélectionner]
GetPlayerPos(playerid, oldX[playerid], oldY[playerid], oldZ[playerid]);
IsInDm[playerid] = true;
// Ensuite ton SetPlayerPos, ta fonction qui remplace le nom etc.

quand le joueur tape /exitdm :
Code: (pawn) [Sélectionner]
SetPlayerPos(playerid, oldX[playerid], oldY[playerid], oldZ[playerid]);
IsInDm[playerid] = false;
// Après tu utilise des fonctions de string (désolé je ne connait pas bien ^^) pour enlever le _DM à la fin du nom du joueur

Dans OnPlayerDisconnect :
Code: (pawn) [Sélectionner]
IsInDm[playerid] = false;

Ma méthode est un peu plus clean que le pompier, car elle sauvegarde la position du joueur avant qu'il ai tapé /dm :happy

++
ZecKo


Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #13 le: 10 Mai 2008, 21:56:21 »
Nn cest pas ca, cest comment remettre son nom de départ.
Exmple, le mec s'appele dupont, quand il fait /dm il devient dupont_DM (ca cets bon je l'ai) mais mtn jaimerai qu'il redevienne dupont quand il sort  :) Mais je n'est pas toruver comment faire ... :(

++
nikko

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : DM, encore et toujours....
« Réponse #14 le: 10 Mai 2008, 22:01:55 »
http://wiki.sa-mp.com/wiki/Scripting_Functions_Old#strdel ;)

Voila comment faire (attention je ne garantit aps que ça marche vu que je n'ai jamais utiliser cette fonction !) :
Code: (pawn) [Sélectionner]
new pName[16];  GetPlayerName(playerid, pName, sizeof(pName));
strdel(pName, strlen(pName) - 3, strlen(pName));

;)

++
Alexandre