[Tutorial] Sistema de skin com mSelection
#1

Olб,

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 Код:
#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 Код:
1000 0.0
1000 0.0 0.1 0.2
1000
Se vocк colocar dessa forma acima, nгo irб funcionar. Isso quer dizer que na hora de mostrar o menu, ele nгo serб mostrado.
A forma correta seria:
pawn Код:
1000
1000 0.0 0.1 0.2
1000
Conclusгo: 1: http://prntscr.com/1efby4
pawn Код:
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 Код:
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.


@Tуpico atualizado.
Reply


Messages In This Thread
Sistema de skin com mSelection - by Coe1 - 06.07.2013, 02:43
Re: Sistema de skin com mSelection - by Chean - 06.07.2013, 06:04
Re: Sistema de skin com mSelection - by Don_Speed - 06.07.2013, 12:22
Re: Sistema de skin com mSelection - by Maklister - 06.07.2013, 12:27
Re: Sistema de skin com mSelection - by Mteck - 06.07.2013, 12:28
Re: Sistema de skin com mSelection - by Coe1 - 06.07.2013, 12:32
Re: Sistema de skin com mSelection - by Schocc - 06.07.2013, 13:24
Re: Sistema de skin com mSelection - by Coe1 - 06.07.2013, 14:30
Re: Sistema de skin com mSelection - by Don_Speed - 06.07.2013, 15:01
Re: Sistema de skin com mSelection - by Coe1 - 06.07.2013, 15:28

Forum Jump:


Users browsing this thread: 1 Guest(s)