GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: lilem le 31 Décembre 2007, 20:07:37

Titre: Comment Faire ?
Posté par: lilem le 31 Décembre 2007, 20:07:37
Salut, Je voudrais savoire ce que je dois metre.
Je voudrais que quand Le joueur ecrit /taxi que sa marque a tout les joueurs
Players a besoins d'un taxi!
Merci
Titre: Re : Comment Faire ?
Posté par: GtaManiac le 31 Décembre 2007, 21:52:19
Bonsoir,

Rien de plus simple, met ceci dans OnPlayerCommandText :

Code: (cpp) [Sélectionner]
if (strcmp(cmdtext, "/taxi", true)==0)
{
new pid, tmpp[256];
new pidName[MAX_PLAYER_NAME];
tmpp = strtok(cmdtext, idx);

GetPlayerName(pid, pidName, sizeof(pidName)); // définie le nom du joueur qui effectue la commande
format(tmpp, sizeof(tmpp), "~y~%s a besoin d'un taxi",pidName); // envoye le texte " a besoin d'un taxi " en jaune avec la récupération du nom du joueur qui effectue la commande .
GameTextForAll(tmpp,3000,3); // envoye le texte en gros au millieu de l'ecran a tout le monde pendant 3 seconde (3000 seconde ) et le 3 s'agit du format du texte .
return 1;
  }

Sa donne sa :

(http://img255.imageshack.us/img255/8884/gtasa2007123121580415cu1.th.jpg) (http://img255.imageshack.us/my.php?image=gtasa2007123121580415cu1.jpg)

C'est se que tu voulais ?

A+
Maniac  ;)
Titre: Re : Comment Faire ?
Posté par: UrbanGhetto le 31 Décembre 2007, 22:05:56
Oula Maniac, T'as oublier de définir le strtok...

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

A mettre nimport ou dans le script.
Titre: Re : Comment Faire ?
Posté par: lilem le 31 Décembre 2007, 22:24:25
Oui Gta Maniac, Merci Beaucoup   :)
Mais 4 erreur

Code: (actionscript-french) [Sélectionner]
C:\Program Files\rockstar games\filterscripts\Car.pwn(350) : error 010: invalid function or declaration
C:\Program Files\rockstar games\filterscripts\Car.pwn(354) : error 010: invalid function or declaration
C:\Program Files\rockstar games\filterscripts\Car.pwn(356) : error 021: symbol already defined: "GetPlayerName"
C:\Program Files\rockstar games\filterscripts\Car.pwn(359) : error 010: invalid function or declaration
Titre: Re : Comment Faire ?
Posté par: GtaManiac le 31 Décembre 2007, 23:56:23
Citer
Oula Maniac, T'as oublier de définir le strtok...

J'ai penser qu'il l'avait deja .... et pour t'es erreur tu peut nous passer les lignes ? ...
Titre: Re : Comment Faire ?
Posté par: lilem le 01 Janvier 2008, 00:17:02
Code: (actionscript-french) [Sélectionner]
C:\Documents and Settings\Yo\Bureau\new.pwn(20) : error 010: invalid function or declaration
C:\Documents and Settings\Yo\Bureau\new.pwn(23) : error 017: undefined symbol "MAX_PLAYER_NAME"
C:\Documents and Settings\Yo\Bureau\new.pwn(24) : error 010: invalid function or declaration
C:\Documents and Settings\Yo\Bureau\new.pwn(26) : warning 219: local variable "pid" shadows a variable at a preceding level
C:\Documents and Settings\Yo\Bureau\new.pwn(26) : warning 219: local variable "pidName" shadows a variable at a preceding level
C:\Documents and Settings\Yo\Bureau\new.pwn(26) : error 010: invalid function or declaration
C:\Documents and Settings\Yo\Bureau\new.pwn(26) : error 010: invalid function or declaration
C:\Documents and Settings\Yo\Bureau\new.pwn(26 -- 27) : error 010: invalid function or declaration
C:\Documents and Settings\Yo\Bureau\new.pwn(26 -- 27) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


7 Errors.
Titre: Re : Comment Faire ?
Posté par: aramela le 01 Janvier 2008, 00:17:57
lu
il parle des ligne de ton script
les ligne des erreur
Titre: Re : Comment Faire ?
Posté par: Syg le 02 Janvier 2008, 14:32:59
De toutes façons, en voyant la première erreur, il y a 99 % de chance pour qu'il ai collé le bout de script de Maniac au mauvais endroit.

++
Syg
Titre: Re : Comment Faire ?
Posté par: R@f le 02 Janvier 2008, 14:34:43
la ligne 20  :lmfao 

++
R@f
Titre: Re : Comment Faire ?
Posté par: lilem le 02 Janvier 2008, 16:08:33
je mis connais pas trop Alor J'ai Pris New Puis J'ai tout coller  :blink
cetai pas sa ???

PS:jai meme esssayer sur mon gamemode et mon filterscripte il y a des erreur ;D
Titre: Re : Comment Faire ?
Posté par: ApocKalipsS le 02 Janvier 2008, 21:32:55
Tu rajoute un public :
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;
}

public OnPlayerCommandText
{
if (strcmp(cmdtext, "/taxi", true)==0)
{
new pid, tmpp[256];
new pidName[MAX_PLAYER_NAME];
tmpp = strtok(cmdtext, idx);
GetPlayerName(pid, pidName, sizeof(pidName)); // définie le nom du joueur qui effectue la commande
format(tmpp, sizeof(tmpp), "~y~%s a besoin d'un taxi",pidName); // envoye le texte " a besoin d'un taxi " en jaune avec la récupération du nom du joueur qui effectue la commande.
GameTextForAll(tmpp,3000,3); // envoye le texte en gros au millieu de l'ecran a tout le monde pendant 3 seconde (3000 MILIseconde ::) ::) et le 3 s'agit du format du texte .
return 1;
}

Voila tu rajoute ca en dessous de
public OnGameModeInit
{
//tes vehicules etc...
}

Voila
++