Portal SAMP
[Pedido] Alterar skins com teclas ou textdraws - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Pedido] Alterar skins com teclas ou textdraws (/showthread.php?tid=3533)



Alterar skins com teclas ou textdraws - Rcon2014 - 18/04/2023

Boa tarde, queria te perguntar uma coisa. Estou editando um gamemode, estou na seção de compra de roupas (skins), pois estou um tanto entediado com MSelection, gostaria de mudar isso e colocar de forma que as skins possam ser alterei com as setas do teclado ou com um clique ou seja algo como ID 2 < Skins > ID 3 que é através das teclas ou textdraw, isso é opcional. Não falo português, portanto estou usando um tradutor , espero que meu pedido seja entendido. Desde já muito obrigado..


RE: Alterar skins com teclas ou textdraws - Carlos Victor - 18/04/2023

Hello, I made a prototype that you can adapt to your gamemode.

Código PHP:
new selectingSkin[MAX_PLAYERS];
new 
skinIndex[MAX_PLAYERS];

CMD:teste(playerid)
{
    
selectingSkin[playerid] = !selectingSkin[playerid];

    if(
selectingSkin[playerid]) {
        
TogglePlayerControllable(playeridfalse);
        
SendClientMessage(playerid, -1"You activated skin selection, press < left or > right.");
    }
    else {
        
SetCameraBehindPlayer(playerid);
        
TogglePlayerControllable(playeridtrue);
        
SendClientMessage(playerid, -1"You have disabled the selection of skins.");
    }
    return 
1;
}

public 
OnPlayerUpdate(playerid)
{
    static
        
str[128],
        
keysupdownleftright;

    GetPlayerKeys(playeridkeysupdownleftright);
 
     if(
selectingSkin[playerid])
     {
         switch(
leftright)
         {
             case 
KEY_LEFT: {

                 
skinIndex[playerid]--;

                 if(
skinIndex[playerid] < 0)
                     
skinIndex[playerid] = 311;

                 
SetPlayerSkin(playeridskinIndex[playerid]);

                 
format(strsizeof(str), "Current skin: %d"skinIndex[playerid]);
                 
SendClientMessage(playerid, -1str);
             }
             case 
KEY_RIGHT: {

                 
skinIndex[playerid]++;

                 if(
skinIndex[playerid] > 311)
                     
skinIndex[playerid] = 0;

                 
SetPlayerSkin(playeridskinIndex[playerid]);

                 
format(strsizeof(str), "Current skin: %d"skinIndex[playerid]);
                 
SendClientMessage(playerid, -1str);
             }
         }
     }
     return 
1;


You can see more about the function GetPlayerKeys by clicking here.