GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Bayshore le 22 Février 2008, 12:55:41

Titre: [Résolu] Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 22 Février 2008, 12:55:41
Bonjour :)

Je voudrais créer une commande pour faire une plaque d'immatriculation personalisé, avec SetVehicleNumberPlate (http://wikitmp.sa-mp.com/index.php/SetVehicleNumberPlatel), mais je ne sais pas comment se passe une récupération de texte dans une commande. :(

Donc je vous demande si vous pourriez m'expliquer le fonctionnement de ce code, tiré de ls-parachute. :)

public OnPlayerDeath(playerid, killerid, reason)
{
new name[MAX_PLAYER_NAME+1];
new string[256];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "*** %s died.", name, reason);
SendClientMessageToAll(COLOR_RED, string);
  return 1;
}

Merci d'avance pour votre aide. :happy
Titre: Re : Pourrait-t-on m'expliquer ce code?
Posté par: UrbanGhetto le 22 Février 2008, 12:59:25
Qu'es que ça a à voir avec le SetVehicleNumberPlate ton code  :blink

Ca c'est pour afficher un message quand quel qu'un meurt, Exemple : VirUz_prOd est mort...
Titre: Re : Pourrait-t-on m'expliquer ce code?
Posté par: Bayshore le 22 Février 2008, 13:00:46
Je sais bien, mais je voudrait que l'on m'explique le code ci-dessous pour ensuite faire une fonction avec la plaque. :laugh

Je sais ce que ce code affiche, mais je n'en comprend pas le fonctionnement. :)
Titre: Re : Pourrait-t-on m'expliquer ce code?
Posté par: UrbanGhetto le 22 Février 2008, 13:06:02
Bon c'est simple,

Code: (cpp) [Sélectionner]
public OnPlayerDeath(playerid, killerid, reason){ /* Quand le joueur est mort */
new name[MAX_PLAYER_NAME+1]; /* La variable pour reconnaitre le nom du joueur (GetPlayerName)*/
new string[256]; /* La variable pour reconnaitre le format (string) */
GetPlayerName(playerid, name, sizeof(name)); /* On prend le nom du joueur Mort et on y assigne la variable qu'on a fais (name)*/
format(string, sizeof(string), "*** %s died.", name, reason); /* On crée un format, On y mets la variable du nom, Et pour le reconnaitre on y assigne la variable string */
SendClientMessageToAll(COLOR_RED, string); /* Enfin on fais un SendClientMessage avec la variable pour le format (string)*/
  return 1;
}
Titre: Re : Pourrait-t-on m'expliquer ce code?
Posté par: Bayshore le 22 Février 2008, 13:07:45
Merci bien Urban. :)
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 24 Février 2008, 17:06:52
J'ai un autre problème. :ninja

J'ai repris de je ne sais plus quel autre site ces bouts de code, en les modifiants légèrement
http://pastebin.gtaonline.fr/pastebin.php?show=370
http://pastebin.gtaonline.fr/pastebin.php?show=369

Et bien lorsque je tape par exemple /plate zecko ça me marque Server: unknown command. :( Je ne comprend pas trop pourquoi.

Pourriez-vous s'il-vous-plaît m'aider? :)

Le compilateur ne me renvoit aucune erreur ou warning...

Merci d'avance. :)
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: R@f le 24 Février 2008, 17:26:49
essaye une fois avec cmd à la place de cmdtext
Code: (cpp) [Sélectionner]
if (strcmp("/plate", cmd, true) == 0)
++
R@f
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 24 Février 2008, 17:30:37
Non R@f, ça ne marche pas. :)
error 017: undefined symbol "cmd"
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: GtaManiac le 24 Février 2008, 17:54:21
Lu,

Met sa dans OnPlayerCommandText

new cmd[256];
et

cmd = strtok(cmdtext, idx);


A+  ;)
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 24 Février 2008, 17:57:24
Toujours pas. :(
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: GtaManiac le 24 Février 2008, 20:48:57
rajoute sa n'importe ou dans ton GM ( tout en bas par exemple )

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;
}



Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 24 Février 2008, 22:11:09
Déjà fait. :)
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: GtaManiac le 24 Février 2008, 22:53:11
Sa peut pas te faire la même erreur ou alors tu a mal placer le new et le cmd  ;)
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 25 Février 2008, 11:39:32
Et bien je les ai placé commesur le code précedement donné: http://pastebin.gtaonline.fr/pastebin.php?show=370 :)

Et en essayant de les mettrent dans OnPlayerCommandText et pas directement dans le if (ce qui me semble inutile) ça ne marche pas non plus. :(
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: GtaManiac le 25 Février 2008, 16:17:02
Faut que sa ressemble a sa :

Code: (cpp) [Sélectionner]
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
cmd = strtok(cmdtext, idx);

/*Puis t'es commande ici*/
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 25 Février 2008, 17:35:11
C:\DOCUME~1\DIEULO~1\MESDOC~1\SERVEU~1\7777\GAMEMO~1\test.pwn(248) : error 017: undefined symbol "idx"
C:\DOCUME~1\DIEULO~1\MESDOC~1\SERVEU~1\7777\GAMEMO~1\test.pwn(326) : warning 219: local variable "cmd" shadows a variable at a preceding level

En rajoutant idx:

C:\DOCUME~1\DIEULO~1\MESDOC~1\SERVEU~1\7777\GAMEMO~1\test.pwn(326) : warning 219: local variable "cmd" shadows a variable at a preceding level
C:\DOCUME~1\DIEULO~1\MESDOC~1\SERVEU~1\7777\GAMEMO~1\test.pwn(327) : warning 219: local variable "idx" shadows a variable at a preceding level
Et ça ne marche pas :(
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Sismix84 le 25 Février 2008, 18:46:38
Si c'est comme ça que tu as fait, je sais pas d'où pourrais venir ton problème :( :

Code: (cpp) [Sélectionner]
new cmd[256];
new idx;

cmd = strtok (cmdtext, idx);
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 25 Février 2008, 18:50:01
Oui j'ai fait comme ça. :(
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Sismix84 le 25 Février 2008, 19:15:41
Passe moi ton OnPlayerCommandeText par PM pour voir si je vois le problème.
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: UrbanGhetto le 25 Février 2008, 23:41:52
Non, Mets le return de la commande à 0
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Sismix84 le 26 Février 2008, 12:08:58
Je crois que je sais, tu n'as pas mis ça :

Code: (cpp) [Sélectionner]
new cmd[256];
new idx = 7;
cmd = strtok(cmdtext, idx);

au bon endrois, tu l'as mis dans ta commande au lieu de la mettre après la callback OnPlayerCommandeText, je t'envoie la correction par PM ;)
Titre: Re : Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 26 Février 2008, 12:22:00
Non, Mets le return de la commande à 0

Ca ne fait rien. :(
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: [S_B]j0ris le 26 Février 2008, 12:48:02
Pourquoi voudrais tu faire sa et je suis pas sur que c'est possible a voir
Titre: Re : Re : Pourrait-t-on m'expliquer ces codes?
Posté par: rivoal29 le 26 Février 2008, 12:49:55
Pourquoi voudrais tu faire sa et je suis pas sur que c'est possible a voir
Voir quoi ???
Titre: Re : Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 26 Février 2008, 13:54:12
Pourquoi voudrais tu faire sa et je suis pas sur que c'est possible a voir
C'est fun non? ;)
Et si c'est possible. :)
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: R@f le 26 Février 2008, 15:19:30
je pourrais voir tout ton OnPlayerCommandText s'il te plait ? (dans pastebin)

++
R@f
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 26 Février 2008, 16:33:36
http://zecko.pastebin.com/m4e6af275 ;)
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: R@f le 26 Février 2008, 16:48:51
voila le toute corrigé ;)
http://zecko.pastebin.com/m3a90333d
j'ai juste enlevé le menu des couleurs car j'avais pas le menu en entier, il te reste plus qu'à l'ajouter et c'est bon ;)

++
R@f
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Sismix84 le 26 Février 2008, 16:52:21
R@f, la seul chose que tu as fait, c'est d'enlever "= 7" dans

Code: (cpp) [Sélectionner]
new idx = 7;
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: R@f le 26 Février 2008, 17:00:31
regarde un peu mieux  :P tu verras que j'ai changé un peu plus de choses  :happy

++
R@f
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Bayshore le 26 Février 2008, 17:37:58
Thx R@F. :O :laugh
Titre: Re : Pourrait-t-on m'expliquer ces codes?
Posté par: Sismix84 le 26 Février 2008, 17:39:05
En fait je comparais ta modification par rapport à celle que je lui avait passer pas PM (que tu n'as pas pu voir, bien sûr :happy)