[Ajuda] /darvip [id] [nivel] [dias]
#1

Bom, primeiramente bom dia,tarde,noite.

Bom eu queria pedir ajuda de voces pra tentar arrumar esse comando, com antes que perguntem, eu jб tentei fazer de tudo e nгo consegui, eu queria setar vip por dias, e o vip sair sozinho quando acabar os dias,por isso o tуpico pedindo ajuda (Antes que venha nego me chingando), Bom se alguem puder me ajudar agradeзo muito e dou Rep++, Obrigado.

MEU CУDIGO:
Код:
if(strcmp(cmd, "/darvip", true) ==0 || strcmp(cmd, "/setarvip", true) ==0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if(PlayerInfo[playerid][pAdmin] < 1340)
	    	{
				SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo tem autorizaзгo para usar esse comando.");
				return 1;
	    	}
	    	VipVaga();
	    	if(VagaSobrando == 0)
	    	{
				SendClientMessage(playerid, COLOR_GRAD1, "Nгo hб mais vagas na lista use /limparvip primeiro.");
				return 1;
	    	}
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /darvip [ ID ] [Nivel] 1(Prata) 2(Ouro) 3(VIP-Sуcio)");
				return 1;
			}
			new para1;
			new level;
			para1 = ReturnUser(tmp);
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /darvip [ ID ] [Nivel] 1(Prata) 2(Ouro) 3(VIP-Sуcio)");
				return 1;
			}
			level = strval(tmp);
			GetPlayerName(para1, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
		    if(IsPlayerConnected(para1))
		    {
		        if(para1 != INVALID_PLAYER_ID)
		        {
					format(string, sizeof string, "Vocк deu VIP Nнvel %d para %s", level, giveplayer);
					SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					format(string, sizeof string, "Vocк ganhou VIP Nнvel %d do admin {FF34B3}%s", level, sendername);
					SendClientMessage(para1, COLOR_LIGHTBLUE, string);
					getdate(year, month, day);
					gettime(hour,minute,second);
					format(string, sizeof(string), "%s deu vip ao %s nнvel %d (%d/%d/%d - %d:%d)",sendername,giveplayer,level,day, month, year,hour, minute);
					VipsLog(string);
     				PlayerInfo[para1][pVIP] = level;
					new var03 = 0;
					for(new i = 0; i < sizeof(VipInfo); i++)
				    {
				        if(strcmp(giveplayer,VipInfo[i][vNick],true)==0)
				        {
				            VipInfo[i][vTipo] = level;
				            VipInfo[i][vDia] = day;
				            VipInfo[i][vMes] = month+1;
				            VipInfo[i][vAno] = year;
				            SaveVip();
				            var03 = 1;
				            break;
				        }
					}
					if(var03 == 0)
					{
					    for(new i = 0; i < sizeof(VipInfo); i++)
				    	{
				        	if(strcmp("Ninguem",VipInfo[i][vNick],true)==0)
					        {
		    	    		    strmid(VipInfo[i][vNick], giveplayer, 0, strlen(giveplayer), 255);
		    	    		    VipInfo[i][vTipo] = level;
				                VipInfo[i][vDia] = 0;
				                VipInfo[i][vMes] = 0;
				                VipInfo[i][vAno] = 0;
					            SaveVip();
					            break;
							}
						}
					}
				}
			}
		}
		return 1;
	}
Reply
#2

Adapte do jeito que quiser, ZCMD sscanf e tals, nгo fui eu que criei, apenas adaptei para meu uso.
PHP код:
//TOPO
new vip[MAX_PLAYERS];
//Onplayerconnect - Requestclass ou outro que vc queira
new string[256];           
GetPlayerName(playeridnomesizeof(nome));            
format(stringsizeof(string),"PASTA DE SALVAMENTO/%s.txt"nome);
vip[playerid] = DOF2_GetInt(string,"tempoVip");
if(
gettime() > vip[playerid])
{
    
vip[playerid] = 0;
    
DOF2_SetInt(file00,"tempoVip"0);
}
else
{
    
format(stringsizeof(string), "Seu vip expira em %s."convertNumber(vip[playerid]-gettime()));
    
SendClientMessage(playerid0xF6FF00AAstring);
}
//Fim do GM
stock convertNumber(n)
{
    new 
diahrmnsegresto;
    
resto n;
    
seg resto 60;
    
resto /= 60;
    
mn resto 60;
    
resto /= 60;
    
hr resto 24;
    
resto /= 24;
    
dia resto;
    new 
str[50];
    
format(strsizeof(str), "%d dias, %02d horas %02d minutos %02d segundos"diahrmnseg);
    return 
str;
}
stock ConvertDays(dias)
{
    new
        
valueday 86400*dias,
        
daysconvert,
        
gtime gettime()
    ;
    
#emit LOAD.S.PRI gtime
    #emit LOAD.S.ALT valueday
    #emit ADD
    #emit STOR.S.PRI daysconvert
    
return daysconvert;
}
//Comando em STRCMP
if(strcmp(cmd,"/setarvip"true)==0)
{
    new 
nome[MAX_PLAYER_NAME],string[256],string2[256];
    
GetPlayerName(playeridanameMAX_PLAYER_NAME);
    
format(stringsizeof(string), "PASTA_DE_SALVAMENTO/%s.txt"nome);
        new 
iddays;
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp)) {
            
SendClientMessage(playeridVermelho"Digite: /SetarVip [ID] [DIAS]");
            return 
1;
        }
        
id strval(tmp);
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp)) {
            
SendClientMessage(playeridVermelho"Digite: /SetarVip [ID] [DIAS]");
            return 
1;
        }
        
days strval(tmp);
        if(
days < -|| days 999) {
            
SendClientMessage(playeridVermelho"Quantidade invбlida");
            return 
1;
        }
        if(
IsPlayerConnected(id)) {
        
vip[id] = ConvertDays(days);
        new 
pname[MAX_PLAYER_NAME];
        
GetPlayerName(idpnameMAX_PLAYER_NAME);
        
format(stringsizeof(string), "Vocк deu %d dias de VIP para %s."dayspname);
        
SendClientMessage(playerid, -1string);
        
format(stringsizeof(string), "Vocк recebeu %d dias de VIP."days);
        
SendClientMessage(id, -1string);
        
format(string2sizeof(string2), "PASTA_DE_SALVAMENTO/%s.txt"pname);
        
DOF2_SetInt(string2"tempoVip"vip[id]);
            return 
1;
        }
        else {
            
SendClientMessage(playerid, -1"Jogador nгo encontrado.");
            return 
1;
        }
    } 
Reply
#3

Quote:
Originally Posted by Skiinner
Посмотреть сообщение
Adapte do jeito que quiser, ZCMD sscanf e tals, nгo fui eu que criei, apenas adaptei para meu uso.
PHP код:
//TOPO
new vip[MAX_PLAYERS];
//Onplayerconnect - Requestclass ou outro que vc queira
new string[256];           
GetPlayerName(playeridnomesizeof(nome));            
format(stringsizeof(string),"PASTA DE SALVAMENTO/%s.txt"nome);
vip[playerid] = DOF2_GetInt(string,"tempoVip");
if(
gettime() > vip[playerid])
{
    
vip[playerid] = 0;
    
DOF2_SetInt(file00,"tempoVip"0);
}
else
{
    
format(stringsizeof(string), "Seu vip expira em %s."convertNumber(vip[playerid]-gettime()));
    
SendClientMessage(playerid0xF6FF00AAstring);
}
//Fim do GM
stock convertNumber(n)
{
    new 
diahrmnsegresto;
    
resto n;
    
seg resto 60;
    
resto /= 60;
    
mn resto 60;
    
resto /= 60;
    
hr resto 24;
    
resto /= 24;
    
dia resto;
    new 
str[50];
    
format(strsizeof(str), "%d dias, %02d horas %02d minutos %02d segundos"diahrmnseg);
    return 
str;
}
stock ConvertDays(dias)
{
    new
        
valueday 86400*dias,
        
daysconvert,
        
gtime gettime()
    ;
    
#emit LOAD.S.PRI gtime
    #emit LOAD.S.ALT valueday
    #emit ADD
    #emit STOR.S.PRI daysconvert
    
return daysconvert;
}
//Comando em STRCMP
if(strcmp(cmd,"/setarvip"true)==0)
{
    new 
nome[MAX_PLAYER_NAME],string[256],string2[256];
    
GetPlayerName(playeridanameMAX_PLAYER_NAME);
    
format(stringsizeof(string), "PASTA_DE_SALVAMENTO/%s.txt"nome);
        new 
iddays;
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp)) {
            
SendClientMessage(playeridVermelho"Digite: /SetarVip [ID] [DIAS]");
            return 
1;
        }
        
id strval(tmp);
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp)) {
            
SendClientMessage(playeridVermelho"Digite: /SetarVip [ID] [DIAS]");
            return 
1;
        }
        
days strval(tmp);
        if(
days < -|| days 999) {
            
SendClientMessage(playeridVermelho"Quantidade invбlida");
            return 
1;
        }
        if(
IsPlayerConnected(id)) {
        
vip[id] = ConvertDays(days);
        new 
pname[MAX_PLAYER_NAME];
        
GetPlayerName(idpnameMAX_PLAYER_NAME);
        
format(stringsizeof(string), "Vocк deu %d dias de VIP para %s."dayspname);
        
SendClientMessage(playerid, -1string);
        
format(stringsizeof(string), "Vocк recebeu %d dias de VIP."days);
        
SendClientMessage(id, -1string);
        
format(string2sizeof(string2), "PASTA_DE_SALVAMENTO/%s.txt"pname);
        
DOF2_SetInt(string2"tempoVip"vip[id]);
            return 
1;
        }
        else {
            
SendClientMessage(playerid, -1"Jogador nгo encontrado.");
            return 
1;
        }
    } 
Bom eu tentei amigo sу que nгo salva no arquivo. Mais alguem que possa me ajudar?
Reply
#4

Vocк colocou DOF2_SaveFile?
Reply
#5

Aqui o SaveFile buga meu arquivo as vezes e acaba nгo salvando, e quando eu nгo uso o savefile ele salva
ueahuehauea
Reply
#6

Quote:
Originally Posted by Skiinner
Посмотреть сообщение
Aqui o SaveFile buga meu arquivo as vezes e acaba nгo salvando, e quando eu nгo uso o savefile ele salva
ueahuehauea
Sua include pode estб desatualizada ou pode estб havendo conflitos.
Reply
#7

include desatualizada.
Reply
#8

Tem como fazer isso sem usar DOF2, dini por ex.
Reply
#9

Sim, й sу vocк trocar a include e as funзхes.
Reply
#10

Quote:
Originally Posted by xCR7
Посмотреть сообщение
Sim, й sу vocк trocar a include e as funзхes.
e como ficaria isso?

sou novato
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)