Sistema de skin com mSelection -
Coe1 - 06.07.2013
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:
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.
Re: Sistema de skin com mSelection -
Chean - 06.07.2013
Fico bom +REP eu gostei
Re: Sistema de skin com mSelection -
Don_Speed - 06.07.2013
Quote:
Originally Posted by Coe1
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
|
Quote:
Originally Posted by d0
Example Script
Example #1 Static Lists
Scriptfiles: planes.txt - skins.txt
pawn Код:
#include <a_samp> #include <mSelection>
new planelist = mS_INVALID_LISTID; new skinlist = mS_INVALID_LISTID; public OnFilterScriptInit() { planelist = LoadModelSelectionMenu("planes.txt"); skinlist = LoadModelSelectionMenu("skins.txt"); return 1; }
public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp(cmdtext, "/plane", true) == 0) { ShowModelSelectionMenu(playerid, planelist, "->Planes<-"); return 1; } if(strcmp(cmdtext, "/changeskin", true) == 0) { ShowModelSelectionMenu(playerid, skinlist, "Select Skin"); return 1; } return 0; }
public OnPlayerModelSelection(playerid, response, listid, modelid) { if(listid == planelist) { if(response) { SendClientMessage(playerid, 0xFF0000FF, "Plane Spawned"); new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]); CreateVehicle(modelid, pos[0] + 2.5, pos[1], pos[2] + 2.5, 0.0, random(128), random(128), -1); } else SendClientMessage(playerid, 0xFF0000FF, "Canceled plane selection"); return 1; } if(listid == skinlist) { if(response) { SendClientMessage(playerid, 0xFF0000FF, "Skin Changed"); SetPlayerSkin(playerid, modelid); } else SendClientMessage(playerid, 0xFF0000FF, "Canceled skin selection"); return 1; } return 1; }
Example #2 Dynamic per player lists
pawn Код:
#include <a_samp> #include <mSelection>
#define CUSTOM_TRAILER_MENU 1
public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp(cmdtext, "/selectVehicleTrailer", true) == 0) { new cars[15]; cars[0] = 435; cars[1] = 450; cars[2] = 569; cars[3] = 570; cars[4] = 584; cars[5] = 590; cars[6] = 591; cars[7] = 606; cars[8] = 607; cars[9] = 608; cars[10] = 610; cars[11] = 611; ShowModelSelectionMenuEx(playerid, cars, 12, "Select trailer", CUSTOM_TRAILER_MENU, 16.0, 0.0, -55.0); return 1; } return 0; }
public OnPlayerModelSelectionEx(playerid, response, extraid, modelid) { if(extraid == CUSTOM_TRAILER_MENU) { if(response) { SendClientMessage(playerid, 0xFF0000FF, "Trailer Spawned"); new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]); CreateVehicle(modelid, pos[0] + 2.5, pos[1], pos[2] + 2.5, 0.0, random(128), random(128), -1); } else SendClientMessage(playerid, 0xFF0000FF, "Canceled trailer selection"); } return 1; }
|
Humm
Re: Sistema de skin com mSelection -
Maklister - 06.07.2013
Deu muito trabalho de " fazer " ? ¬¬'
Re: Sistema de skin com mSelection -
Mteck - 06.07.2013
Eu acho esse modo ridнculo de selecionar skin e.e Prefiro por cmd /skin [ID]
Re: Sistema de skin com mSelection -
Coe1 - 06.07.2013
Eu disse que foi eu quem fiz ? D:
Usei o example script como exemplo para que os demais possam fazer o seu entendendo o exemplo.
Agora nгo, vocкs que sгo o "fodгo" nгo sabem ao menos interpretar um texto. --'
Re: Sistema de skin com mSelection -
Schocc - 06.07.2013
Coe1 tem que aprender a aceitar as criticas.
#Topic:Esta bom de sua parte...
@OFF: Uma coisa sу pra deixar bem claro,
eu nгo sou fodгo e nem a maioria aqui dos 'scripters' vou mencionar assim, porque seria um insulto a ciкncia da computaзгo(mundo da programaзгo e Programadores), chamar de Programadores.
A linguagem PAWN й muito й bem Limitada, POREM eu ainda acho que pode ser feito muita coisa.
Coisas incrнveis podem ser feitas com ela (PAWN)!..
Quero dizer que nгo й porque as pessoas que tem um pouco mais de conhecimento й que se acham os
'fodхes' como dizem os novatos aqui do forum, se tem fodгo aqui sгo
poucos
Muitos tbm sу sгo bons em PAWN.
NOTA:2 Numero de postagens nгo significa nada.... SГO APENAS NЪMEROS!....
NOVATOS PAREM DE MENCIONAR QUE OS
'High-roller' sгo fodгo.
e tbm
PAREM DE USAR ISSO CONTRA/ou em FLAME WARS (coisa de crianзa!)
Eu sou High-roller mas sou noob ainda!
P:Como assim vc й noob cara?
R:Sim ainda tem muito o que aprender na linguagem PAWN
Para aqueles que nгo sabem o significado de
newbie = novato
Re: Sistema de skin com mSelection -
Coe1 - 06.07.2013
Quote:
Originally Posted by Schocc
Coe1 tem que aprender a aceitar as criticas.
#Topic:Esta bom de sua parte...
A linguagem PAWN й muito й bem Limitada, POREM eu ainda acho que pode ser feito muita coisa.
Coisas incrнveis podem ser feitas com ela (PAWN)!..
Quero dizer que nгo й porque as pessoas que tem um pouco mais de conhecimento й que se acham os 'fodхes' como dizem os novatos aqui do forum, se tem fodгo aqui sгo poucos
Muitos tbm sу sгo bons em PAWN.
NOTA:2 Numero de postagens nгo significa nada.... SГO APENAS NЪMEROS!....
NOVATOS PAREM DE MENCIONAR QUE OS 'High-roller' sгo fodгo.
e tbm
PAREM DE USAR ISSO CONTRA/ou em FLAME WARS (coisa de crianзa!)
|
Entendo seu lado. E obrigado.
Eu nгo quis dizer que por ele ter "5.000" posts ele й melhor que alguns e etc. Posts nгo significam nada como vocк disse. Tem muitos usuбrios aqui no fуrum que tem 500 posts e sabem muito pouco de pawn ou todos eles foram tуpicos pedindo ajuda...Eu sу acho errado "alguns" aqui por entenderem um pouco a mais que o outro usam isso como uma arma contra ele, assim fazendo-se como se o outro fosse um lixo e ele o melhor. Claro que muitos aqui sгo programadores mas eu nгo quis chegar a este lado.
Quer criticar ? Critique sobre oque foi feito no tуpico e nгo porque eu usei um exemplo para que "outros" que nгo sabem usar a include aprender a usa-la, eles postaram como se eu tivesse dito que eu quem fiz o
script/exemplo.
@Off
Й sу aqui ou o fуrum estб caindo direto ?
Re: Sistema de skin com mSelection -
Don_Speed - 06.07.2013
Jamais fui foda , Jamais serei foda em pawn.
Utilizo o forum dentro das regras , jamais julgue alguem pelo seus post ou reputation.
Vocк em momento nenhum mensionou que nгo teria cido vocк que fez .
Re: Sistema de skin com mSelection -
Coe1 - 06.07.2013
@Don_Spped, nгo quis dizer que era vocк. Mas, "alguns" sim. Acompanho seus trabalhos e sгo уtimos, parabйns por isso.
E desculpe por nгo mencionar que o script usado como exemplo й do
D0.
Acabei de adicionar que o script utilizado como exemplo й de autoria do D0.
Desculpe por qualquer coisa.