GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: piki le 29 Février 2008, 01:52:46

Titre: aide skin civils
Posté par: piki le 29 Février 2008, 01:52:46
Salut,

j' ai besoin d'aide, je veux que lorsque un joueur veux changer de skin (civil) il aille l'échanger dans un magasin de vetements.
je me suis aider d'une base, mon soucis c'est que je n'arrive pas, en appuyant sur next à faire changer le skin.

new JoinPed[4][1] = {
{114},//civil
{26},
{7}
};

if(strcmp(cmd, "/clothes", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
        if(PlayerInfo[playerid][pTeam == 3)
        {
            if(IsAtClothShop(playerid))
{
    if(PlayerInfo[playerid][pTeam] == 3) { ChosenSkin[playerid] = 114; SetPlayerSkin(playerid, 114); }
else { return 1; }

.....
 
   
}

public OnPlayerText(playerid, text[])
{
new giver[MAX_PLAYER_NAME];
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new tmp[256];
new string[256];
new giveplayerid;

if(SelectChar[playerid] == 255)
{
    new idx;
    tmp = strtok(text, idx);
    if ((strcmp("next", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("next")))
{
    switch (SelectCharID[playerid])
{
case 12: civi // 12 car car à la suite des autres faction
{
    if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, JoinPed[0][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = JoinPed[0][0]; }
                                                                    else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[1][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = JoinPed[1][0]; }
                                                                    else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, JoinPed[2][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = JoinPed[2][0]; }



tout se passe bien le probleme sais une fois fait /clothes , le choix du skin reste sur celui du 114, pourtant j'ai suivi l'exemple des autres factions. à mon avis le probleme c'est que l'ajout de la case 12 pour les civils ne ce fait pas.
la case un c'est la police le 2 l'armé... l'ajout de cette case et sans doute pas prise comme civil  et donc team==3 c'est pour cela que sa reste bloqué. donc j 'aurai besoin d'aide merci.
Titre: Re : aide skin civils
Posté par: [StAfF]MaN le 29 Février 2008, 12:55:19
Il reste sur le skin 114 parce que, regarde dans ta commande /clothes

if(PlayerInfo[playerid][pTeam] == 3) { ChosenSkin[playerid] = 114; SetPlayerSkin(playerid, 114); }

Si le player est dans la team 3 et qu'il fait /clothes, il choisi le skin 114

Après, ton histoire de next, je ne suis pas sur que ça fonctionne....
Titre: Re : aide skin civils
Posté par: piki le 29 Février 2008, 15:15:34
oui tu as raison, pour moi il ne prend pas en compte la case 12 que j'ai crée, qui permet de prendre en compte les differents skins selectionnés sur le joinped. mais j'ai pris exemple sur les autres factions et c'est pareille sa fait

 if(PlayerInfo[playerid][pMember] == 1) { ChosenSkin[playerid] = 280; SetPlayerSkin(playerid, 280); } // pour la police

et ensuite la case 1 qui ce trouve dans public OnPlayerText(playerid, text[]), qui permet de switcher les differents skin choisit.
 
donc j'ai trois éléments joinped,/clothes et  public OnPlayerText, il doit peut etre me manquer un élément pour mettre en relation la case 12 que j'ai ajouté pour le switch.

ou bien si vous connaissez une autre facon plus simple. merci

Titre: Re : aide skin civils
Posté par: piki le 29 Février 2008, 16:30:40
salut, c'est bon il suffisait de mettre la case 0 pour civil et faire une boucle. à la prochaine sur un nouveau sujet^^