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

Titre: Comment fair un /skin pour tout les joueurs ?
Posté 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.
Titre: Re : Comment fair un /skin pour tout les joueurs ?
Posté par: Gzsume le 18 Octobre 2012, 21:33:04
(http://uppix.net/c/e/2/1cbdd9b894e6af794813eb3fdaf60.png)
Titre: Re : Comment fair un /skin pour tout les joueurs ?
Posté par: Infu le 18 Octobre 2012, 23:19:05
Un petit coup de « playerid » de « sscanf » et de « SetPlayerSkin ».
Bonne chance
Titre: Re : Comment fair un /skin pour tout les joueurs ?
Posté par: pa2m972 le 21 Octobre 2012, 01:20:00

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.
Titre: Re : Comment fair un /skin pour tout les joueurs ?
Posté par: Ssk le 21 Octobre 2012, 10:49:14
Je t'ai tapé un petit bout de code rapidement avec quelques commentaires pour que tu puisses comprendre comment ça marche.


Code: (pawn) [Sélectionner]
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.
Titre: Re : Comment fair un /skin pour tout les joueurs ?
Posté par: pa2m972 le 21 Octobre 2012, 14:33:19
Presque la meme chose que moi sauf que j'ai pas les commentaires et le ISkinId mais id
Titre: Re : Comment fair un /skin pour tout les joueurs ?
Posté par: Ssk le 21 Octobre 2012, 15:09:00
Bof, ton code est pourri c'est un copié collé d'un gamemode RP.


On sait pas d'où sort cette variable

Code: (pawn) [Sélectionner]
PlayerInfo[playerid][pChar] = id;
Ni ça
Code: (pawn) [Sélectionner]
if(IsACopSkin(id) == 0)
Code: (pawn) [Sélectionner]
if(IsAtClothShop(playerid))
ensuite id et iSkinID, sont juste des noms de variable.
Titre: Re : Re : Comment fair un /skin pour tout les joueurs ?
Posté par: Xartrick le 22 Octobre 2012, 19:36:23
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 ?