[Ajuda] Criando um arquivo Dini basico
#1

Olб pessoal! estou desenvolvendo este simples sistema, й o seguinte, eu estou estudando Dini, e estou vendo um tutorial, eu queria saber como faзo para criar um arquivo acima de um outro criado, ou seja, nos aquivos nъmeros 1, 2, 3, 4 e etc.. ae tipo se caso tiver uma 4 e uma 6 criar uma 5 e caso tenha uma 2 criar uma 3 caso tenha nenhuma criar uma 1.. e assim em diante, mais estou na duvida, como faзo para criar.. tenho isso!

Код HTML:
format(file, sizeof(file), "Concessionaria/Veiculos/%s.ini", name);

			dini_Create(file);
			dini_Set(file, "Owner", name);
			dini_IntSet(file, "Vehicle ID", 411);
			dini_IntSet(file, "Color 1", 1);
			dini_IntSet(file, "Color 2", 1);
			dini_FloatSet(file, "Position X", X);
			dini_FloatSet(file, "Position Y", Y);
			dini_FloatSet(file, "Position Z", Z);
			dini_FloatSet(file, "Facing Angle", A);
			VehicleInfo[vid][vID] = 411;
			VehicleInfo[vid][vOwner] = name;
			VehicleInfo[vid][vColor1] = 1;
			VehicleInfo[vid][vColor2] = 1;
			VehicleInfo[vid][vX] = X;
			VehicleInfo[vid][vY] = Y;
			VehicleInfo[vid][vZ] = Z;
			VehicleInfo[vid][vA] = A;
			vid++;
Isso acima й uma parte do cуdigo, mais tipo, presisa de um caminho para criar a dini.. como faзo? pq tб definido name no caminho da concessionaria lб em cima? pois a gente usava por nome e troquei pra numero, agora nгo sei criar por numero o arquivo. vlw por ter lido!

@edit
Outra duvida.. que isso?
Код HTML:
vid++;
Reply
#2

Loop

Exemplo:
PHP код:
new st[15];
for(new 
i3i++)
{
    
format(stsixeof st"numero%d.txt"i);
    if(!
fexist(st))
    {
        
// caso o arquivo nгo existe
        
break; // para a loop
    
}
}
/*
A loop vai de 0 a 2
0 - verifica se um arquivo chamado numero0.txt existe caso nгo existir para a loop
1 - verifica se um arquivo chamado numero1.txt existe caso nгo existir para a loop
2 - verifica se um arquivo chamado numero2.txt existe caso nгo existir para a loop
*/ 
PHP код:
vid++; 
https://sampforum.blast.hk/showthread.php?tid=240266
Reply
#3

Quote:
Originally Posted by MultiKill
Посмотреть сообщение
Loop

Exemplo:
PHP код:
new st[15];
for(new 
i3i++)
{
    
format(stsixeof st"numero%d.txt"i);
    if(!
fexist(st))
    {
        
// caso o arquivo nгo existe
        
break; // para a loop
    
}
}
/*
A loop vai de 0 a 2
0 - verifica se um arquivo chamado numero0.txt existe caso nгo existir para a loop
1 - verifica se um arquivo chamado numero1.txt existe caso nгo existir para a loop
2 - verifica se um arquivo chamado numero2.txt existe caso nгo existir para a loop
*/ 
PHP код:
vid++; 
https://sampforum.blast.hk/showthread.php?tid=240266
vlw!! mais como faзo para aumentar a quantia de nъmeros de aquivos?? de 1 hб 100?

assim?

Код HTML:
for(new i; i < 100; i++)
@edit

codigo atual

Код HTML:
new st[15];
for(new i; i < 3; i++)
{
    format(st, sixeof st, "Concessionaria/Veiculos/%s.ini", i);
    if(!fexist(st))
    {
        // caso o arquivo nгo existe
        break; // para a loop
    }
}
Reply
#4

A loop comeзa a roda normalmente do 0, mas para vocк fazer de 1 a 100 vocк pode fazer assim:

PHP код:
for(new 1101i++) // Quando a loop chegar em 101 ela para, ela vai rodar de 1 a 100
{

/*

Vai rodar assim:

1
2
3
4
...
96
97
98
99
100
*/

Reply
#5

Quote:
Originally Posted by MultiKill
Посмотреть сообщение
A loop comeзa a roda normalmente do 0, mas para vocк fazer de 1 a 100 vocк pode fazer assim:

PHP код:
for(new 1101i++) // Quando a loop chegar em 101 ela para, ela vai rodar de 1 a 100
{
/*
Vai rodar assim:
1
2
3
4
...
96
97
98
99
100
*/

Serб que tem como fazer assim?

Код HTML:
new st[15];
for(new i = 1; i < MAX_VEHICLES; i++) // mudei para MAX_VEHICLES, ae posso colocar couquer valor nй amigo? atй 1000 por exemplo?
{
    format(st, sixeof st, "Concessionaria/Veiculos/%s.ini", i);
    if(!fexist(st))
    {
			dini_Create(file);
			dini_Set(file, "Owner", name);
			dini_IntSet(file, "Vehicle ID", 411);
			dini_IntSet(file, "Valor", 1500000);
			dini_IntSet(file, "Color 1", 1);
			dini_IntSet(file, "Color 2", 1);
			dini_FloatSet(file, "Position X", X);
			dini_FloatSet(file, "Position Y", Y);
			dini_FloatSet(file, "Position Z", Z);
			dini_FloatSet(file, "Facing Angle", A);
			VehicleInfo[vid][vOwner] = name;
			VehicleInfo[vid][vID] = 411;
			VehicleInfo[vid][vValor] = 1500000;
			VehicleInfo[vid][vColor1] = 1;
			VehicleInfo[vid][vColor2] = 1;
			VehicleInfo[vid][vX] = X;
			VehicleInfo[vid][vY] = Y;
			VehicleInfo[vid][vZ] = Z;
			VehicleInfo[vid][vA] = A;
			vid++;
        break; // para a loop
    }
}
Cуdigo acima й funcional?
Reply
#6

Se vocк quiser definir qualquer valor em MAX_VEHICLES, vocк deve usar isso.

PHP код:
#if defined MAX_VEHICLES
    #undef MAX_VEHICLES
    #define MAX_VEHICLES 200
#endif 
Reply
#7

Nгo, faзa o seguinte:

PHP код:
new st[35];
for(new 
1MAX_VEHICLESi++) // mudei para MAX_VEHICLES, ae posso colocar couquer valor nй amigo? atй 1000 por exemplo?
{
    
format(stsixeof st"Concessionaria/Veiculos/%d.ini"i);
    if(!
fexist(st))
    {
            
dini_Create(st);
            
dini_Set(st"Owner"name);
            
dini_IntSet(st"Vehicle ID"411);
            
dini_IntSet(st"Valor"1500000);
            
dini_IntSet(st"Color 1"1);
            
dini_IntSet(st"Color 2"1);
            
dini_FloatSet(st"Position X"X);
            
dini_FloatSet(st"Position Y"Y);
            
dini_FloatSet(st"Position Z"Z);
            
dini_FloatSet(st"Facing Angle"A);
            
VehicleInfo[i][vOwner] = name;
            
VehicleInfo[i][i] = 411;
            
VehicleInfo[i][vValor] = 1500000;
            
VehicleInfo[i][vColor1] = 1;
            
VehicleInfo[i][vColor2] = 1;
            
VehicleInfo[i][vX] = X;
            
VehicleInfo[i][vY] = Y;
            
VehicleInfo[i][vZ] = Z;
            
VehicleInfo[i][vA] = A;
            break; 
// para a loop
    
}

Vocк pode ter problemas, pois tenho certeza que estб editando outro sistema. Й mais fбcil criar o seu, exemplo:

PHP код:
#define MAX_MKV 500
enum mk
{
    
MKID,
    
MKModelo,
    
FloatMKX
    Float
MKY,
    
FloatMKZ,
    
FloatMKAng,
    
MKCor1,
    
MKCor2,
    
MKDono[MAX_PLAYER_NAME],
    
MKValor
}
new 
Veiculo[MAX_MKV][mk];
CriarVeiculo(valormodeloFloatxFloatyFloatzFloatangcor1cor2)
{
    new 
st[35];
    for(new 
0MAX_MKVi++)
    {
        
format(stsixeof st"Concessionaria/Veiculos/%d.ini"i);
        if(!
fexist(st))
        {
                
dini_Create(st);
                
dini_Set(st"Dono""Ninguem");
                
dini_IntSet(st"Modelo"modelo);
                
dini_IntSet(st"Valor"valor);
                
dini_IntSet(st"Cor 1"cor1);
                
dini_IntSet(st"Cor 2"cor2);
                
dini_FloatSet(st"X"x);
                
dini_FloatSet(st"Y"y);
                
dini_FloatSet(st"Z"z);
                
dini_FloatSet(st"FAng"ang);
                
Veiculo[i][MKModelo] = modelo;
                
Veiculo[i][MKX] = x;
                
Veiculo[i][MKY] = y;
                
Veiculo[i][MKZ] = z;
                
Veiculo[i][MKAng] = ang;
                
Veiculo[i][MKCor1] = cor1;
                
Veiculo[i][MKCor2] = cor2;
                
format(Veiculo[i][MKDono], MAX_PLAYER_NAME"Ninguem");
                
Veiculo[i][MKValor] = valor;
                
Veiculo[i][MKID] = CreateVehicle(modeloxyzangcor1cor2, -1);
                return 
1;
        }
    }
    return 
0;

Reply
#8

Nossa cara, vlw ajudou bastante nessa parte! vou usar este sistema!

Agora estou alterando esse sistema, na hora que o veiculo й criado ao ligar o servidor.

PHP код:
public OnGameModeInit()
{
    for(new 
0MAX_VEHICLESi++)
    {
        new 
file[50];
        
format(filesizeof(file), "Concessionaria/Veiculos/%s.ini"i);
        if(
fexist(file))
        {
            
strmid(Veiculo[i][MKDono], dini_Get(file"Owner"), falsestrlen(dini_Get(file"Owner")), MAX_PLAYER_NAME);
            
Veiculo[i][MKModelo] = dini_Int(file"Modelo");
            
Veiculo[i][MKValor] = dini_Int(file"Valor");
            
Veiculo[i][MKCor1] = dini_Int(file"Cor 1");
            
Veiculo[i][MKCor2] = dini_Int(file"Cor 2");
            
Veiculo[i][MKX] = dini_Float(file"X");
            
Veiculo[i][MKY] = dini_Float(file"Y");
            
Veiculo[i][MKZ] = dini_Float(file"Z");
            
Veiculo[i][MKAng] = dini_Float(file"FAng");
            
AddStaticVehicle(Veiculo[i][vID], Veiculo[i][vX], Veiculo[i][vY], Veiculo[i][vZ], Veiculo[i][vA], Veiculo[i][vColor1], Veiculo[i][vColor2]); //erro nessa linha
            
printf("Veiculo modelo/ID: %d - CARREGADO"Veiculo[i][vID]); //erro nessa linha
            
        
}
    }
    return 
true;

@edit
tб dando esses erros
Код:
C:\Users\Administrador PC\Desktop\Nova pasta (2)\filterscripts\Concessonaria.pwn(49) : error 017: undefined symbol "vID"
C:\Users\Administrador PC\Desktop\Nova pasta (2)\filterscripts\Concessonaria.pwn(50) : error 017: undefined symbol "vID"
estou estudando o mesmo e tб dando certo
Reply
#9

Primeiro, troque:
PHP код:
format(filesizeof(file), "Concessionaria/Veiculos/%s.ini"i); 
//Por:
format(filesizeof(file), "Concessionaria/Veiculos/%d.ini"i); 
Aqui simplesmente faзa somente isso:

PHP код:
strmid(Veiculo[i][MKDono], dini_Get(file"Owner"), falsestrlen(dini_Get(file"Owner")), MAX_PLAYER_NAME); 
//Para
format(Veiculo[i][MKDono], MAX_PLAYER_NAMEdini_Get(file"Dono")); 
Se estб usando o sistema do exemplo que eu te dei, nгo confunda os enumeradores que estб usando, no seu cуdigo vocк usou o enumerador mk e logo embaixo o enumerador que jб estava no seu script.

PHP код:
AddStaticVehicle(Veiculo[i][vID], Veiculo[i][vX], Veiculo[i][vY], Veiculo[i][vZ], Veiculo[i][vA], Veiculo[i][vColor1], Veiculo[i][vColor2]);
//Para
Veiculo[i][MKID] = AddStaticVehicle(Veiculo[i][MKModelo], Veiculo[i][MKX], Veiculo[i][MKY], Veiculo[i][MKZ], Veiculo[i][MKAng], Veiculo[i][MKCor1], Veiculo[i][MKCor2]); 
E

PHP код:
printf("Veiculo modelo/ID: %d - CARREGADO"Veiculo[i][vID]);
//Para
printf("Veiculo modelo/ID: %d - CARREGADO"Veiculo[i][MKID]);
//ou
printf("Veiculo modelo/ID: %d - CARREGADO"i); 
Reply
#10

Quote:
Originally Posted by MultiKill
Посмотреть сообщение
Primeiro, troque:
PHP код:
format(filesizeof(file), "Concessionaria/Veiculos/%s.ini"i); 
//Por:
format(filesizeof(file), "Concessionaria/Veiculos/%d.ini"i); 
Aqui simplesmente faзa somente isso:

PHP код:
strmid(Veiculo[i][MKDono], dini_Get(file"Owner"), falsestrlen(dini_Get(file"Owner")), MAX_PLAYER_NAME); 
//Para
format(Veiculo[i][MKDono], MAX_PLAYER_NAMEdini_Get(file"Dono")); 
Se estб usando o sistema do exemplo que eu te dei, nгo confunda os enumeradores que estб usando, no seu cуdigo vocк usou o enumerador mk e logo embaixo o enumerador que jб estava no seu script.

PHP код:
AddStaticVehicle(Veiculo[i][vID], Veiculo[i][vX], Veiculo[i][vY], Veiculo[i][vZ], Veiculo[i][vA], Veiculo[i][vColor1], Veiculo[i][vColor2]);
//Para
Veiculo[i][MKID] = AddStaticVehicle(Veiculo[i][MKModelo], Veiculo[i][MKX], Veiculo[i][MKY], Veiculo[i][MKZ], Veiculo[i][MKAng], Veiculo[i][MKCor1], Veiculo[i][MKCor2]); 
E

PHP код:
printf("Veiculo modelo/ID: %d - CARREGADO"Veiculo[i][vID]);
//Para
printf("Veiculo modelo/ID: %d - CARREGADO"Veiculo[i][MKID]);
//ou
printf("Veiculo modelo/ID: %d - CARREGADO"i); 
VLW! reputado! agora estou quase no fim do sistema, com sua ajuda claro! agora estou aqui onde altera as definis dentro do arquivo do dono.. mais eu tentei aqui e nгo deu, tipo, eu acho que й impossнvel eu abrir um arquivo e esse arquivo(carro) deve ser da pessoa que deu o comando(nгo consigo fazer isso, agora!), ae altera o valor.

Nesse caso ae atualiza o local do veiculo, eu que fiz o comando.
PHP код:
CMD:autoestacionar(playeridparams[])
{
    new 
file[50], Float:XFloat:YFloat:ZFloat:A;
    
GetPlayerPos(playeridXYZ);
    
GetPlayerFacingAngle(playeridA);
    
format(filesizeof(file), "Concessionaria/Veiculos/%d.ini"i);
    if(!
fexist(file)) return SendClientMessage(playerid, -1"{FF0000}ERROR: {FFFFFF}Vocк nгo tem qualquer carro, entгo vocк nгo pode usar este comando.");
    
VehicleInfo[vid][vX] = X;
    
VehicleInfo[vid][vY] = Y;
    
VehicleInfo[vid][vZ] = Z;
    
VehicleInfo[vid][vA] = A;
    if(
fexist(file))
    {
        
dini_FloatSet(file"Position X"X);
        
dini_FloatSet(file"Position Y"Y);
        
dini_FloatSet(file"Position Z"Z);
        
dini_FloatSet(file"Facing Angle"A);
        
SendClientMessage(playerid, -1"{FF6136}Info:A posiзгo do seu carro foi atualizado, a posiзгo do carro vai estar aqui.");
    }
    return 
true;

@edit
Код:
C:\Users\Administrador PC\Desktop\Nova pasta (2)\filterscripts\Concessonaria.pwn(105) : error 017: undefined symbol "i"
C:\Users\Administrador PC\Desktop\Nova pasta (2)\filterscripts\Concessonaria.pwn(107) : error 017: undefined symbol "VehicleInfo"
C:\Users\Administrador PC\Desktop\Nova pasta (2)\filterscripts\Concessonaria.pwn(107) : error 017: undefined symbol "vid"
C:\Users\Administrador PC\Desktop\Nova pasta (2)\filterscripts\Concessonaria.pwn(107) : error 029: invalid expression, assumed zero
C:\Users\Administrador PC\Desktop\Nova pasta (2)\filterscripts\Concessonaria.pwn(107) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


5 Errors.
Abraзos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)