[Ajuda] comando /comprarvip
#4

Mano eu nгo entendi direito oque vocк queria dizer com esse cуdigo, ai crie um baseado!

PHP код:
//usa um processador de comando e melhor e vou usar dialogs, fica mais bonitinho, mas se nao quiser a base e a mesma!
#include "ocmd" //ou
#include "ZCMD"
#define SendStringMsg(%0,%1,%2,%3) do{new _string[128]; \
format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(False)
#define SendStringMsgToAll(%0,%1,%2) do{new _string[128]; \
format(_string,sizeof(_string),%1,%2); SendClientMessageToAll(%0,_string);} while(False)
new 
False=false;
#define VIPS 1
ocmd:comprarvip(playerid,params[]) //usa o zmcd se quiser

   if(!
IsPlayerConnected(playerid)) return 0;
   if(
PlayerInfo[playerid][pVIP] >= 1) return SendClientMessage(playeridCOLOR_WHITE"Vocк jб possui um VIP ativo."); 
   
VipVaga(); 
   if(
VagaSobrando == 0) return SendClientMessage(playeridCOLOR_WHITE"Nгo possui mais vagas de VIP."); 
   
   
ShowPlayerDialog(playeridVIPSDIALOG_STYLE_LIST"Vips disponiveis""BASIC VIP\n PREMIUM VIP\n SУCIO VIP""Ok""Nгo"); 
   return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
   if(
dialogid == VIPS)
   {
    if(!
response//aqui vocde pode tira o '!' tira o "nгo" do ShowPlayer la, e fica so o response do ok, caso ele aperte esc na hora de escolher, somente ira sai do comando
    
{
        
SendClientMessage(playerid, -1"Vocк cancelou a compra do vip!");
    } 
//fechando botao cancelar
    
else //abrindo botгo ok
    
{
         
/*
         Aqui vocк coloca a variavel dos dias e anos, aqui era vira uma global para o dialog vips, nao precisa criar outras destas aqui
         */
        
if(Mesv == 12 && Anov == 2012) { Mesv 1Anov++;} else { Mesv++; } 
        if(
listitem == 0//basico
       
{
            
/*
                       if (PlayerInfo[playerid][tCash] < 1000) 
                        { 
                            SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo possui '1000' de CASH."); 
                            return 1; 
                        } 
                        creio que seja dinheiro! ent uzarei essa forma de abaixo
            */
            
if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playeridCOR_ERROR"ERRO: Vocк nгo tem R$1000 $CASH!");
            
//se ele tiver os 1000 agora nos vai tirar dele, como compra do vip
            
GivePlayerMoney(playerid, -1000);
            
SetPlayerScore(playeridGetPlayerScore(playerid) + 1); //ganhou mais um score, pelo oque eu entendi ai
            //vou criar uma funзгo pra usar strings com variaveis, sem fica criando strings (em cima do gm)
            
new Nome[500]; GetPlayerName(playeridNomesizeof(Nome));
            
SendStringMsgToAll(COR_ERROR"[ VIP ANNCIO ] > O jogador %s acabou de comprar o vip pacote BASICO com 1000 cash!"Nome);
            
SendStringMsg(playerid, -1"Parabйns %s vocк agora й vip"Nome);
            
PlayerInfo[playerid][pVIP] = 1//setando que ele jб e vip no nivel basico = 1
            //aqui vocк coloca o tanto de cash vip etc os dias etc
            
SendStringMsg(playerid, -1"Vocк ganhou %s de cash vip"varial );
            
SendStringMsg(playerid, -1"Vocк ganhou +1 level e foi para o %i "GetPlayerScore(playerid));
            
SendStringMsg(playerid, -1"Vencimento: %d dias %d mкs %d ano %d As %d %d e %d Segundos!"Diav,Mesv,Anov,Horav,Minutov,SegV);
            
SendClientMessage(playerid, -1"Aproveite as funзхes vips /comandosvips"); //comando ficticio 
            
            //e o resto do sistema
            //salva
            /*
            new String[128];
            GetPlayerName(playerid, Nome, sizeof(Nome));
            format(String, sizeof(String), "LOCAL/DO/VIP/%s.ini", Nome); %s vai pega o nome do jogador vip
            */
            
new String[128];
            
GetPlayerName(playeridNomesizeof(Nome));
            
format(Stringsizeof(String), "SERVER/VIPS/%s.ini"Nome); 
           
//coloca a #include dof2 se for usa esse metodo de salvamento, se nao use o preferido
            //e usa DOF2_Exit() no Gamemode exit
            
DOF2_CreateFile(String);
            
DOF2_SetString(String"Pacote""Basico");
            
DOF2_SetInt(String"Setado"); //1 do pacote 1
            //tu coloca pra salvar os dias tbm, mas acho qeu vc ja tem seu salvamento ai, ent tu sabe oque fazer
           //para salva voce pode usar o DOF2_SaveFile mas um jeito mais eu fasso de um jeito mais pratico com stocks
            //com esses dados vocк cria uma checagem pra olha quem passo dos dias de vencimento, caso sim perde o vip etc
 
       
}
       if(
listitem == 1)//premium
       
{
       }
       if(
listitem == 2)//socio
       
{
       }
    }  
//fechando botao ok
   
}//fechando dialog vip
    
return 1;
}
LoadPlayer(playerid)
{
new 
String[128], Nome[MAX_PLAYER_NAME];
GetPlayerName(playeridNomesizeof(Nome));
format(Stringsizeof(String), "SERVER/VIPS/%s.ini"Nome);
    if( 
DOF2_FileExists( String) )
    {
         
        
PlayerInfo[playerid][pVIP] = DOF2_GetIntString"Setado"  ); // Coloca LoadPlayer quando o jogador fazer o loguim dele, ai vai carrega que ele vip 1
    
}
    return 
1;
}
SavePlayer(playerid)
{
new 
String[128], Nome[MAX_PLAYER_NAME];
GetPlayerName(playeridNomesizeof(Nome));
format(Stringsizeof(String), "SERVER/VIPS/%s.ini"Nome);
    if( 
DOF2_FileExists( String ) )
    {
        
DOF2_CreateFile(String);
        
DOF2_SetIntString"Setado"PlayerInfo[playerid][pVIP]); //aqui mostra que o salvamento setado e PlayerInfo[playerid][pVIP]
        
DOF2_SaveFile();
    }
    return 
1;

Reply


Messages In This Thread
comando /comprarvip - by gilvanmarques - 07.07.2017, 00:30
Re: comando /comprarvip - by Jonorusc - 08.07.2017, 16:49
Re: comando /comprarvip - by gilvanmarques - 08.07.2017, 17:55
Re: comando /comprarvip - by Jonorusc - 08.07.2017, 18:02
Re: comando /comprarvip - by gilvanmarques - 08.07.2017, 21:11
Re: comando /comprarvip - by Jonorusc - 08.07.2017, 21:30

Forum Jump:


Users browsing this thread: 1 Guest(s)