Bom, aqui neste tópico irei criar um simples tutorial de como criar um sistema de skin com a include mSelection. Creio que ela seja boa tanto como para servidor RP/G tanto para MATA-MATA.
Demo:
http://prntscr.com/1dsw4g
Você pode usar esse sistema como exemplo e aprimorar para seu servidor, utilizando ele como um menu para binco / zip com cada um menu com um tipo de skin.
pawn Code:
#include <a_samp> // não há oque explicar. #include <mSelection> // include que utilizaremos para fazer o sistema de skin #include <ZCMD> // Processador de comandos utilizado no sistema new skinlist = mS_INVALID_LISTID; public OnFilterScriptInit() { // abrindo a chave skinlist = LoadModelSelectionMenu("skins.txt"); // nesta função quando o sistema for iniciado ele irá carregar oque ta dentro da skins.txt return 1; // na skin.txt localiza em scriptfiles você pode Adicionar / retirar o ID de skin que você quiser, assim fazendo do seu jeito. } // fechando a chave CMD:skin(playerid) // comando /skin para mostrar o menu { // abrindo a chave do cmd ShowModelSelectionMenu(playerid, skinlist, "Menu de Skin"); // aqui mostrará o menu de skin e em "Menu de Skin" você bota o nome desejado para aparecer como titulo return 1; // retornando o comando. Sem ele virá a mensage } // fechamento da chave do cmd public OnPlayerModelSelection(playerid, response, listid, modelid) // public da include MSelection, esta public quando você clicar em um item será executada uma função. {//abrimento da chave da public if(listid == skinlist) // essa é a listid da skinlist ( skinlist = LoadModelSelectionMenu("skin.txt"); {//chave aberta if(response) if(GetPlayerMoney(playerid) >= 500) // essa função irá checar se o dinheiro do player é maior ou igual a 500 se não executará o else abaixo {//abre chave SendClientMessage(playerid, -1, "[ > ] Você optou por uma nova skin"); // se a função acima for executada o servidor enviará esta mensagem ao player dizendo que ele comprou a skin GivePlayerMoney(playerid, -500); // Essa função irá retirar $500 do player quando ele clicar na skin desejada SetPlayerSkin(playerid, modelid); // Aqui irá setar a skin do player quando ele comprar ela. }//fecha chave else {//abre chave SendClientMessage(playerid, 0xFF0000FF, " [ x ] Você precisa de $500 para obter uma nova skin");//se o player nao tiver 500$ esse else enviará essa mensagem ao player }// fecha chave else SendClientMessage(playerid, 0xFF0000FF, "[ x ] Você decidiu fechar o menu de skin.");// quando o player clicar em Cancelar para fechar o menu, o server enviará esta mensagem ao player. return 1;// retornando true/verdadeiro }//chave fechada return 1; // retornando true/verdadeiro }//fechamento da chave da public
Bom, através de um post do @iMega eu decidi atualizar o tutorial.
Vamos lá..
No arquivo skins.txt ou o arquivo de seu nome que você colocou é possível colocar outros objetos.
Como Ex: Rodas, aerofólios, veículos e etc..
Existe algumas formas de colocar o arquivo, que são essas:
MODELID Rotação:X Rotação:Y Rotação:Z
Ex:
pawn Code:
1000 0.0 1000 0.0 0.1 0.2 1000
A forma correta seria:
pawn Code:
1000 1000 0.0 0.1 0.2 1000
pawn Code:
1000: // ID do objeto / veículo / componente 0.0: // Rotação X 0.1: // Rotação Y 0.2: // Rotação Z
Vamos ao segundo exemplo que seria o menu de rodas.
rodas.txt:
pawn Code:
1073 0.0 .0 90.0 1074 0.0 .0 90.0 1075 0.0 .0 90.0 1076 0.0 .0 90.0 1077 0.0 .0 90.0 1078 0.0 .0 90.0 1079 0.0 .0 90.0 1080 0.0 .0 90.0 1081 0.0 .0 90.0 1082 0.0 .0 90.0 // Vejam o exemplo na imagem abaixo se vocês deixarem essa linha vazia.
Conclusão: http://prntscr.com/1efd4j
Vejam que na imagem ficou o CJ, porque no caso abaixo do modelid 1082 eu deixei um espaço em "branco" que no caso foi considerado como " 0 " que o ID da skin do CJ.
@Créditos
mSelection - d0 tópico: mSelection 1.1
Tópico - Coe1.
O script/exemplo utilizado para explicar as funções é de autoria do D0. ( O script encontra-se no tópico da include. )
Críticas ? Pode falar para que o próximo tópico saia melhor.
Obrigado.
1 comentário
faz um canal explicando falando
Leia antes de comentar:
Os comentários deste blog são todos moderados;
Escreva apenas o que for referente ao tema;
Ofensas pessoais ou spam não serão aceitos;
Faça comentários relevantes;
Obrigado por sua visita e volte sempre.