GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Warlem le 18 Octobre 2012, 20:28:23
-
Salut !Je trouve pas comment faire une commande pour tout les joueurs avec tout les skin qui existe.Enfaite je parle comme le /skin comme sur Lalu'Stunt mais je veux pas volé un peu de votre GM.Juste savoir comment on fait car la je me noie dans le Pawn.Merci.
-
(http://uppix.net/c/e/2/1cbdd9b894e6af794813eb3fdaf60.png)
-
Un petit coup de « playerid » de « sscanf » et de « SetPlayerSkin ».
Bonne chance
-
if(strcmp(cmd, "/skin", true) == 0 || strcmp(cmd, "/clothes", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsAtClothShop(playerid))
{
tmp = strtok(cmdtext, idx);
new id = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREEN, "Erreur ! il faut faire /skin [ID DU SKIN]");
return 1;
}
if(IsACopSkin(id) == 0)
{
if(IsValidSkin(id))
{
SetPlayerSkin(playerid,id);
PlayerInfo[playerid][pChar] = id;
SendClientMessage(playerid, COLOR_LIGHTBLUE, "[Vendeur] : Jolie Tenue !");
return 1;
}
Personnelement, sur ce script, y'avait qu'une poignée de Skin et pas la totalité, j'ai du changé a fond
pour faire comme tu le voulais.
-
Je t'ai tapé un petit bout de code rapidement avec quelques commentaires pour que tu puisses comprendre comment ça marche.
public OnPlayerText(playerid, cmdtext[])
{
new szMessage[128];
new iSkinID;
/* Ici je compare les 5 premières lettres de la commande tapé par le joueur*/
/* avec le mot /skin */
if(strcmp(cmdtext, "/skin", true, 5) == 0)
{
/* Si le joueur a tapé /skin*/
iSkinID = strval(cmdtext[5]); // Ici je récupère ce qu'il a écrit après /skin, mais je le récupère en valeur numérique.
/* je lui met le skin */
SetPlayerSkin(playerid, iSkinID);
/* ça c'est simple tu devrais comprendre. */
format(szMessage, sizeof(szMessage), "Tu as choisit le skin n° %d.", iSkinID);
SendClientMessage(playerid, 0xAAAAAAFF, szMessage);
return 1;
}
return 0;
}
Par contre le joueur peut aussi mettre des skins invalides, si tu veux régler ce problème fait le tout seul, c'est très simple à faire.
-
Presque la meme chose que moi sauf que j'ai pas les commentaires et le ISkinId mais id
-
Bof, ton code est pourri c'est un copié collé d'un gamemode RP.
On sait pas d'où sort cette variable
PlayerInfo[playerid][pChar] = id;
Ni ça
if(IsACopSkin(id) == 0)if(IsAtClothShop(playerid))
ensuite id et iSkinID, sont juste des noms de variable.
-
Presque la meme chose que moi sauf que j'ai pas les commentaires et le ISkinId mais id
À part copier/coller, tu fais quoi ?
Les fonctions IsAtClothShop(), IsACopSkin() et IsValidSkin() ne sont pas présente, on est bien d'accord ?