GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ApocKalipsS le 26 Janvier 2008, 18:39:08
-
Bonjour, (ou re)
Je viens de faire une commandes pour donner une amende.
if(strcmp(cmdtext, "/ticket", true) == 0) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ticket [playerid] [Montant]");
return 1;
}
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ticket [playerid] [Montant]");
return 1;
}
moneys = strval(tmp);
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
if(IsPlayerFlic == 1)
{
GivePlayerMoney(giveplayerid, - moneys);
format(string, sizeof(string), "Vous avez donner une amende à %s (id: %d), de %d$.", giveplayer,giveplayerid, moneys);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "Vous avez reçu une amende de %d$. ", moneys);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
}
else if(IsPlayerFlic == 0)
{
SendClientMessage(playerid, COLOR_GREY, " Tu n'est pas policier !");
}
}
else {
format(string, sizeof(string), "%d n'est pas un joueur connecté.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
Le problème, c'est que elle ne marche pas. si je tape "/ticket" sans le ID et la SOMME ca me met "Utilisation...etc"
Pourtant je suis bien "Flic" et tous mais ca marche pas...
Voila aidez-moi ! Et si vous savez comment faire pour mettre "/ticket [ID] [SOMME] et [RAISON]"Svp...
Merci d'avance :D
-
Voila pour la raison:
format(string, sizeof(string), "Vous avez donner une amende à %s (id: %d), de %d$ Raison %s", giveplayer,giveplayerid, moneys, cmdtext[10]);
Et
format(string, sizeof(string), "Vous avez reçu une amende de %d$ Raison %s ", moneys, cmdtext[10];
NV.
-
Moi presque même problème : Je suis militaire, et je ne peu pas donner d'amende. Pourtant j'aimerais bien le faire. Comme puis-je ???
if(strcmp(cmd, "/amende", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gTeam[playerid] != 2)
{
SendClientMessage(playerid, COLOR_GREY, " Vous n'êtes pas un flic !");
return 1;
}
if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " Vous n'êtes pas en service !");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /amende [ID du joueur/Nom du joueur] [Prix] [Raison]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /amende [ID du joueur/Nom du joueur] [Prix] [Raison]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1 || moneys > 99999) { SendClientMessage(playerid, COLOR_GREY, " Le prix de l'amende ne peut pas être en-dessous de 1 ou au-dessus de 99999!"); return 1; }
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /amende [ID du joueur/Nom du joueur] [Prix] [Raison]");
return 1;
}
format(string, sizeof(string), "* %s vous à donné une amende coutant $%d, raison: %s", giveplayer, moneys, (result));
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Police %s has given you a Ticket costing $%d, reason: %s", sendername, moneys, (result));
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "* Tapper /accepte amende, pour acceptez l'amende");
TicketOffer[giveplayerid] = playerid;
TicketMoney[giveplayerid] = moneys;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Ce joueur n'est pas près de vous !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Ce joueur est Offline !");
return 1;
}
}
return 1;
-
Base toi sur le GF
tu devrai normalement trouver ton bonheur
Cordialement
-
J'ai le GF :D et même avec le GF d'origine, je ne puis donner d'amende.
-
Tu va essayé sa alors
if(strcmp(cmd, "/amende", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gTeam[playerid] != 3)
{
SendClientMessage(playerid, COLOR_GREY, " Vous n'êtes pas un flic !");
return 1;
}
/*if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " Vous n'êtes pas en service !");
return 1;
}*/
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /amende [ID du joueur/Nom du joueur] [Prix] [Raison]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /amende [ID du joueur/Nom du joueur] [Prix] [Raison]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1 || moneys > 99999) { SendClientMessage(playerid, COLOR_GREY, " Le prix de l'amende ne peut pas être en-dessous de 1 ou au-dessus de 99999!"); return 1; }
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /amende [ID du joueur/Nom du joueur] [Prix] [Raison]");
return 1;
}
format(string, sizeof(string), "* %s vous à donné une amende coutant $%d, raison: %s", giveplayer, moneys, (result));
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Police %s has given you a Ticket costing $%d, reason: %s", sendername, moneys, (result));
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "* Tapper /accepte amende, pour acceptez l'amende");
TicketOffer[giveplayerid] = playerid;
TicketMoney[giveplayerid] = moneys;
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Ce joueur n'est pas près de vous !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Ce joueur est Offline !");
return 1;
}
}
return 1;
J'ai pas pu le compiler je suis au taff dit moi si sa ne va pas.
Enfaite je t'explique, les militaire dans le GF de peuvent pas se mettre en Service Donc j'ai desactivé la ligne qui dit "vous n'êtes pas en services" test tout ca et redit moi
Cordialement Franky Patou
-
Ok. Tu as aussi modif ,cette ligne non ?
if(gTeam[playerid] != 3)
Je test ça dans deux jours. Là je ne suis pas chez moi. Merci !
-
oui j'ai modifier cette ligne pourquoi
Car l'id des millitaires est "3" si tu regarde il y avais marqué "2" Car sa prend la police "1" et le FBI "2"
Maintenent que j'ai mis le "3" les militaires pourron le faire.
-
Sa serai pas mieux de faire
if(gTeam[playerid] != 1 || gTeam[playerid] != 2 || gTeam[playerid] != 3)
Comme sa les trois équipes pourrons donner des amendes.
-
Oui mais c'est Pareil enfin de crois ^^
-
Vous vous gouré totalement pour les gTeam XD
Pour avoir plu simple utilier la fonction dispo dans le GF IsaCop ....
-
Un peu plus d'info svp.
--> Sa marche pas se que tu m'a donner.
-
J'avoue que sur ce coup la sa vient du /duty qui bug vivient
-
Non au contraire sa n'est pas un Bug c'est tout symplemant que les militaires ne peuvent pas se mettre en service donc il ne peuvent pas faire la commande /duty
-
Tout faut tout le monde ! cela ne vient pas du duty n'y rien, c'est un seul truc : Les leader ne pouvais pas donner d'amende. Car, quand ont fait /makeleader cela te met leader certes, mais après il m'a fallu que je me mette membre aussi (leader mais pas membre :laugh)
Donc maintenant je suis leader et membre. Du coup je peu donner des amendes etc... La faction aussi. J'étais en "team=11" En métant "team=2" ça marche maintenant !