[FilterScript] mCoins Sistema de Coins
#1

Bom Dia,Boa Tarde, Boa Noite
Hoje Venho apresentar meu Sistema de Coins mCoins
Vamos lб.

Comeзo

o Sistema mCoins, foi feito especialmente para algumas pessoas que pesquisavam por sistema de coins
antigamente eu pesquisava tambйm por este sistema, e eu tinha achado um bбsico e melhorei ele bastante
e em cima dele trouxe o mCoins

Comandos
Comando /comprar Para comprar Um Veнculo ou Armas
Comando /ajuda

ChangeLog
PHP код:
v1.0 14/12/2017
Release inicial.
v2.0 15/12/2017
Retirado Comando 
/deagle
Novo Modo de Compras no 
/comprar
Comprar armas agora em dialog
Sistema de Salvamento dos coins
Retirado o 
= new valorpago
Atualizado para a define sugestгo de RAMIRES
Retirado 
Public's que nгo estavam em uso
v3.0 - 15/12/2017
Sistema de Login/Registro Salvamento em DOF2
Ele Salva, Vida,Colete,Dinheiro,Coins,Senha(Sem Encrypt)
Agora no Comando /comprar, vocк pode transferir Coins a outro jogador
Salvamento Funcionando 100%
Algumas  Variбveis, Foram Juntadas Exemplo (new new mCoins[MAX_PLAYERS],EditGive[MAX_PLAYERS]...)
Juntei elas, assim deixando o Sistema Mas Leve
Nova TextDraw do Coins agora ficando em Cima do Mapa Como No Print Abaixo 
Comando /creditos retirado
o  enumrador mInfo
Foi Retirado, assim se tornando uma varнavel agora ficou mas fбcil e complexo o sistema
Algumas Partes do Cуdigo, do Marllun Foram Acoplados, no Sistema 
Agradecimentos
- Media
- Ramires
- Crewz_Stannley
- Marllun

Imagens 1.0:

https://imgur.com/NpLnZll
https://imgur.com/rZVRJjE
https://imgur.com/rRGIDxE

Imagens 2.0:

https://imgur.com/a/iyD0j
Imagens 3.0: - FINAL

https://imgur.com/a/dgnWk

Download 1.0:
https://pastebin.com/raw/zTGxeeLu

Download 2.0:
https://pastebin.com/TSgTyyG8

Download 3.0: - FINAL
https://pastebin.com/6HPf5fMU

Obs: Nгo usei o Cуdigo do Marllun Pelos Seguintes motivos
quando, eu fui testar o cуdigo dele todos os comandos tinham parado de funcionar, eu nunca mexi com pawn.cmd
por isso nгo usei, mas para vocкs acharem que fui vista grossa, ou que desprezei o trabalho dele para melhorar o cуdigo nгo foi isso, eu apenas nгo consegui usar o cуdigo mas ficou bem definido o cуdigo dele, por isso que atй em alguns momentos eu usei o cуdigo que ele mandou !

Lembrando: estб e a versгo final do sistema !
Reply
#2

Й boa sua intenзгo, nгo tб tгo ruim mais e esse static stock ai? Nгo sou especialista em PAWN mais pode ser melhorado em muitas coisas esse seu filterscript.
Reply
#3

Qual a necessidade de fazer
PHP код:
    new Valorpago 1000;
    if(
PlayerInfo[playerid][mCoins] < Valorpago
Podendo fazer apenas
PHP код:
    if(PlayerInfo[playerid][mCoins] < 1000
Reply
#4

Quote:
Originally Posted by Ramires
Посмотреть сообщение
Qual a necessidade de fazer
PHP код:
    new Valorpago 1000;
    if(
PlayerInfo[playerid][mCoins] < Valorpago
Podendo fazer apenas
PHP код:
    if(PlayerInfo[playerid][mCoins] < 1000
Verdade. Se quiser deixar esse valor configurбvel, й melhor utilizar defines.
Reply
#5

A Intenзгo й muito boa, porйm por minha parte seria melhor fazer um tutorial se nгo for muito trabalho, pois o FS em si nгo й grande.. Enfim bom FS.
Reply
#6

Obrigado, pela dica vou melhorar o FS na Proxima versгo, vou melhorar o cуdigo obrigado !
Reply
#7

PHP код:
v1.0 14/12/2017 

Release inicial

v2.0 14/12/2017 

Retirado Comando 
/deagle 
Novo Modo de Compras no 
/comprar 
Comprar armas agora em dialog 
Sistema de Salvamento dos coins 
Retirado o 
= new valorpago 
Atualizado para a define sugestгo de RAMIRES 
Retirado 
Public's que nгo estavam em uso 
Reply
#8

Esse sistema em si estб bom, mais pode melhorar.

1 -
PHP код:
if(PlayerInfo[playerid][mCoins] < 1000)
{
    
SendClientMessage(playerid, -1"Vocк nгo possui coins o suficiente");
    return 
1;

para:

PHP код:
if(PlayerInfo[playerid][mCoins] < 1000) return SendClientMessage(playerid, -1"Vocк nгo possui coins o suficiente"); 
Lembrando, vocк nгo й obrigado a passar a fazer assim. isso й sу uma dica que vocк pode seguir ou nгo.

2 -

PHP код:
new para1;
new 
level;
new 
giveplayer[MAX_PLAYER_NAME];
new 
sendername[MAX_PLAYER_NAME]; 
para:

PHP код:
new para1levelgiveplayer[MAX_PLAYER_NAME], sendername[MAX_PLAYER_NAME]; 
3 -

Код:
new Coinsstr[128];
format(Coinsstr,sizeof(Coinsstr),"Coins ~b~%d",PlayerInfo[playerid][mCoins]);
PlayerTextDrawSetString(playerid, Textdraw0[playerid], Coinsstr);
A variбvel nгo necessita de tanta cйlulas assim.

4 -

Sobre o comando que vocк botou, o /creditos e o /ajuda. nгo й necessбrio, pois as informaзхes jб estгo no topico.

+rep
Reply
#9

Muito Obrigado, pelas dicas mano
Vou Melhorar o Cуdigo ! Valeu Mesmo !
Reply
#10

muito bбsico, use mselection coloque todas as armas e carros. ficaria maneiro.

"eu tinha achado um bбsico e melhorei ele bastante" coloque os crйditos do dono do sistema bбsico que vocк achou.
Reply
#11

Eu nгo me identifico muito com mSelection, vou tentar aprender mas sei lб... nгo gosto muito desse tipo saca ?
eu coloquei os crйditos do cara que eu achei
й o Crewz
Reply
#12

Bom FS nota 8

Quote:

enum mInfo
{
mCoins
};
new PlayerInfo[MAX_PLAYERS][mInfo];

1• Nгo й bom usar variaveis com os seguintes nomes "PlayerInfo" ou "InfoPlayer" pois tem elas em varios sistemas de login e pode causar conflitos
2• Porque usou um enumerador jб que sу armazenou uma variavel, seria o mesmo que new mCoins[MAX_PLAYERS]; nгo tem problema usar mas acho meio inutнl usar ela pra uma sу variavel

Quote:

CMD:creditos(playerid)
{
SendClientMessage(playerid, -1, "{00FFFF} » {FFFFFF}Media_Wallker Pela Criaзгo do Sistema");
return 1;
}
CMD:ajuda(playerid)
{
SendClientMessage(playerid, -1, "{00FFFF} » {FFFFFF}/comprar,/creditos,/darcoins");
return 1;
}

3• Como eu disse acima todos os servidores tem os cmd "ajuda" e "creditos" e com esse fs daria conflito tente por nomeclaturas diferentes.


O resto esta bom, e nгo esqueзa de seguir as dicas do iianZ
Reply
#13

Obrigado tambйm C4rtm4n
Jб segui as dicas do ilanZ
Reply
#14

Arrumei o fs todo. agora vocк pode postar a versгo 3.0


PHP Code:
/*sistema feito totalmente por media
nгo retire os crйditos !
Primeira release do Sistema
Falta Fazer:
Salvamento do Coins
que estб incompleto
e adicionar um veнculo a mas para testes
*/
#include <a_samp>
#include <sscanf2>
#include <pawn.cmd>
#include <dof2>
#define DIRETORIO "Coins/%s.ini"
#define function
#define FILTERSCRIPT
new
PlayerText:Textdraw0[MAX_PLAYERS],
stringglobal[70],
attcoins[MAX_PLAYERS],
mCoins[MAX_PLAYERS]
;
public 
OnFilterScriptInit()
{
    print(
"\nSistema de mCoins Carregado com Sucesso\n");
    print(
" Sistema feito por Media_Wallker");
    print(
"Nгo Retire os Crйditos\n");
    return 
1;
}
public 
OnFilterScriptExit() DOF2_Exit();
function 
CarregarPlayer(playerid){
    
format(stringglobalsizeof(stringglobal), DIRETORIOPlayerName(playerid));
    
attcoins[playerid] = SetTimerEx("atualizartxd"1000true"i"playerid);
    if(
DOF2_FileExists(stringglobal))
    {
        
        
mCoins[playerid] = DOF2_GetInt(stringglobal"Coins");
    }
    else
    {
        
        
DOF2_CreateFile(stringglobal);
    }
    return 
1;
}
function 
SalvarPlayer(playerid){
    
format(stringglobalsizeof(stringglobal), DIRETORIOPlayerName(playerid));
    
DOF2_SetInt(stringglobal,"Coins",mCoins[playerid]);
    
KillTimer(attcoins[playerid]);
    
DOF2_SaveFile();
    return 
1;
}
function 
PlayerName(playerid){
    static 
Name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNamesizeof Name);
    return 
Name;
}
public 
OnPlayerConnect(playerid)
{
    
CarregarPlayer(playerid);
    
Textdraw0[playerid] = CreatePlayerTextDraw(playerid532.799865111.253349"Coins: ~w~0");
    
PlayerTextDrawLetterSize(playeridTextdraw0[playerid], 0.4499991.600000);
    
PlayerTextDrawAlignment(playeridTextdraw0[playerid], 1);
    
PlayerTextDrawColor(playeridTextdraw0[playerid], 16777215);
    
PlayerTextDrawSetShadow(playeridTextdraw0[playerid], 0);
    
PlayerTextDrawSetOutline(playeridTextdraw0[playerid], 1);
    
PlayerTextDrawBackgroundColor(playeridTextdraw0[playerid], 51);
    
PlayerTextDrawFont(playeridTextdraw0[playerid], 1);
    
PlayerTextDrawSetProportional(playeridTextdraw0[playerid], 1);
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason) return SalvarPlayer(playerid);
public 
OnPlayerSpawn(playerid)
{
    
SendClientMessage(playerid, -1"{00FFFF} » {FFFFFF}Sistema Criado por Media_Wallker");
    
SendClientMessage(playerid, -1"{00FFFF} » {FFFFFF}Para ver os Comandos use /ajuda");
    
PlayerTextDrawShow(playeridTextdraw0[playerid]);
    return 
1;
}
forward atualizartxd(playerid);
public 
atualizartxd(playerid)
{
    
format(stringglobal,sizeof(stringglobal),"Coins ~b~%d",mCoins[playerid]);
    
PlayerTextDrawSetString(playeridTextdraw0[playerid], stringglobal);
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == 2316)
    {
        
        if(
response)
        {
            
            new 
Float:pp;
            new 
Float:ppp;
            new 
Float:pppp;
            new 
Float:ppppp;
            if(
listitem == 0)
            {
                
                if(
mCoins[playerid] < 1000) return SendClientMessage(playerid, -1"Vocк nгo possui coins o suficiente");
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou uma Sanchez por 1.000 Coins");
                
GetPlayerPos(playeridpp,ppp,pppp);
                
GetPlayerFacingAngle(playeridppppp);
                
CreateVehicle(468pp,ppp,pppp,ppppp, -1, -1, -1);
                
mCoins[playerid] -= 1000;
            }
            if(
listitem == 1)
            {
                
                if(
mCoins[playerid] < 5000) return SendClientMessage(playerid, -1"Vocк nгo possui coins o suficiente");
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou uma NRG-500 por 5000 Coins");
                
GetPlayerPos(playeridpp,ppp,pppp);
                
GetPlayerFacingAngle(playeridppppp);
                
CreateVehicle(522pp,ppp,pppp,ppppp, -1, -1, -1);
                
mCoins[playerid] -= 5000;
            }
            if(
listitem == 2)
            {
                
                if(
mCoins[playerid] < 5000) return SendClientMessage(playerid, -1"Vocк nгo possui coins o suficiente");
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou um Buffalo por 5000 Coins");
                
GetPlayerPos(playeridpp,ppp,pppp);
                
GetPlayerFacingAngle(playeridppppp);
                
CreateVehicle(402pp,ppp,pppp,ppppp, -1, -1, -1);
                
mCoins[playerid] -= 5000;
            }
            if(
listitem == 3)
            {
                
                if(
mCoins[playerid] < 10000) return SendClientMessage(playerid, -1"Vocк nгo possui coins o suficiente");
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou um Super-GT por 10000 Coins");
                
GetPlayerPos(playeridpp,ppp,pppp);
                
GetPlayerFacingAngle(playeridppppp);
                
CreateVehicle(506pp,ppp,pppp,ppppp, -1, -1, -1);
                
mCoins[playerid] -= 10000;
            }
            if(
listitem == 4)
            {
                
                if(
mCoins[playerid] < 9000) return SendClientMessage(playerid, -1"Vocк nгo possui coins o suficiente");
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou um Turismo por 9000 Coins");
                
GetPlayerPos(playeridpp,ppp,pppp);
                
GetPlayerFacingAngle(playeridppppp);
                
CreateVehicle(451pp,ppp,pppp,ppppp, -1, -1, -1);
                
mCoins[playerid] -= 9000;
            }
            if(
listitem == 5)
            {
                
                if(
mCoins[playerid] < 15000) return SendClientMessage(playerid, -1"Vocк nгo possui coins o suficiente");
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou um Jetpack por 15000 Coins");
                
SetPlayerSpecialAction(playerid2);
                
mCoins[playerid] -= 15000;
            }
        }
    }
    if(
dialogid == 2318)
    {
        
        if(
response)
        {
            
            if(
listitem == 0)
            {
                
                
ShowPlayerDialog(playerid23165"Comprar Veiculos",
                
"Veiculo\tPreзo(Coins)\n\
                Sanchez\t{33AA33}Ђ{FFFFFF}1.000 Coins\n\
                NRG-500\t{33AA33}Ђ{FFFFFF}5.000 Coins\n\
                Buffalo\t{33AA33}Ђ{FFFFFF}5.000 Coins\n\
                Super-GT\t{33AA33}Ђ{FFFFFF}10.000 Coins\n\
                Turismo\t{33AA33}Ђ{FFFFFF}9.000 Coins\n\
                Jetpack\t{33AA33}Ђ{FFFFFF}15.000 Coins"
"Selecionar""Sair");
            }
            if(
listitem == 1)
            {
                
                
ShowPlayerDialog(playerid23175"Comprar Armas",
                
"Arma\tBalas\tPreзo(Coins)\n\
                Deagle\t150\t{33AA33}Ђ{FFFFFF}1.000 Coins\n\
                ShotGun\t160\t{33AA33}Ђ{FFFFFF}2.000 Coins\n\
                MP5\t300\t{33AA33}Ђ{FFFFFF}3.000 Coins\n\
                Ak-47\t450\t{33AA33}Ђ{FFFFFF}4.000 Coins\n\
                Soco Ingкs\t{FF0000}N/A\t{33AA33}Ђ{FFFFFF}2.000 Coins"
"Selecionar""Sair");
            }
        }
        return 
1;
    }
    if(
dialogid == 2317)
    {
        
        if(
response)
        {
            
            if(
listitem == 0)
            {
                
                if(
mCoins[playerid] < 1000) return SendClientMessage(playerid, -1"Seus Coins Sгo Insuficientes para Realizar a Compra.");
                
GivePlayerWeapon(playerid24150);
                
mCoins[playerid] -= 1000;
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou uma Deagle com 150 Balas");
            }
            if(
listitem == 1)
            {
                
                if(
mCoins[playerid] < 2000) return SendClientMessage(playerid, -1"Seus Coins Sгo Insuficientes para Realizar a Compra.");
                
GivePlayerWeapon(playerid25160);
                
mCoins[playerid] -= 2000;
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou uma ShotGun com 160 Balas");
            }
            if(
listitem == 2)
            {
                
                if(
mCoins[playerid] < 3000) return SendClientMessage(playerid, -1"Seus Coins Sгo Insuficientes para Realizar a Compra.");
                
GivePlayerWeapon(playerid29300);
                
mCoins[playerid] -= 3000;
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou uma MP5 com 300 Balas");
            }
            if(
listitem == 3)
            {
                
                if(
mCoins[playerid] < 4000) return SendClientMessage(playerid, -1"Seus Coins Sгo Insuficientes para Realizar a Compra.");
                
GivePlayerWeapon(playerid30450);
                
mCoins[playerid] -= 4000;
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou uma AK47 com 450 Balas");
            }
            if(
listitem == 4)
            {
                
                if(
mCoins[playerid] < 2000) return SendClientMessage(playerid, -1"Seus Coins Sгo Insuficientes para Realizar a Compra.");
                
GivePlayerWeapon(playerid11);
                
mCoins[playerid] -= 2000;
                
SendClientMessage(playerid, -1"{FF6347}Comprado:{9C9C9C}Vocк comprou um Soco Inglкs");
            }
        }
    }
    return 
1;
}
CMD:darcoins(playeridparams[])
{
    new 
para1level;
    static 
giveplayer[MAX_PLAYER_NAME],sendername[MAX_PLAYER_NAME];
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"Vocк nгo й admininistrador!");
    if(
sscanf(params"ui"para1level)) return  SendClientMessage(playerid, -1"{FF6347}USE:{9C9C9C} /darcoins [id] [quantia]");
    
GetPlayerName(para1giveplayersizeof(giveplayer));
    
GetPlayerName(playeridsendernamesizeof(sendername));
    if(
IsPlayerConnected(para1))
    {
        
        
format(stringglobalsizeof stringglobal"Vocк deu R$%d para %s"levelgiveplayer);
        
SendClientMessage(playerid, -1stringglobal);
        
format(stringglobalsizeof stringglobal"O Admininstrador %s te deu R$%d"sendernamelevel);
        
SendClientMessage(para1, -1stringglobal);
        
mCoins[playerid] +=level;
    }
    return 
1;
}
CMD:comprar(playerid)
{
    static 
string[128];
    
format(stringsizeof string"{00FFFF} » {FFFFFF}Comprar Veнculos\n{00FFFF} » {FFFFFF}Comprar Armas");
    
ShowPlayerDialog(playerid2318DIALOG_STYLE_LIST"Menu Coins",string,"Selecionar""Sair");
    return 
1;
}
CMD:creditos(playerid) return SendClientMessage(playerid, -1"{00FFFF} » {FFFFFF}Media_Wallker Pela Criaзгo do Sistema");
CMD:ajuda(playerid) return SendClientMessage(playerid, -1"{00FFFF} » {FFFFFF}/comprar,/creditos,/darcoins"); 
Reply
#15

Algumas coisas poderiam ser otimizadas e organizadas melhor.

+REP pelo esforзo e tempo gasto.
Reply
#16

PHP Code:
v3.0 15/12/2017 
Sistema de Login
/Registro Salvamento em DOF2 
Ele Salva
Vida,Colete,Dinheiro,Coins,Senha(Sem Encrypt
Agora no Comando /comprarvocк pode transferir Coins a outro jogador 
Salvamento Funcionando 100

Algumas  VariбveisForam Juntadas Exemplo (new new mCoins[MAX_PLAYERS],EditGive[MAX_PLAYERS]...) 
Juntei elasassim deixando o Sistema Mas Leve 
Nova TextDraw 
do Coins agora ficando em Cima do Mapa Como No Print Abaixo  
Comando 
/creditos retirado 
o  enumrador mInfo 
Foi Retirado
assim se tornando uma varнavel agora ficou mas fбcil e complexo o sistema 
Algumas Partes 
do Cуdigo, do Marllun Foram Acopladosno Sistema 
Reply
#17

Melhorou muito +rep. Uma dica tira a atualizaзгo do textdraw do onplayerupdate e colocar function em vez de stock.
Reply
#18

Agora melhorou, mais ainda tem uma coisa que nгo entendi que й o porque dessa variбvel "Logou", qual o motivo de salvar?
Reply
#19

Vezes que logou no servidor
Reply
#20

Essa variavel eu tinha usado para verificar quantas vezes o player tinha logado, para fazer um RG Bбsico
mas acabei esquecendo deste detalhe
Ops:Link Atualizado
Reply


Forum Jump:


Users browsing this thread: 7 Guest(s)