Problema com Arrays -
mafelis - 15.12.2010
Dem um Olhado no Scirpt que FIZ
Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
#define FILTERSCRIPT
#include <a_samp>
enum scInfo
{
scID,
Float:scEntranceX,
Float:scEntranceY,
Float:scEntranceZ,
Float:scEntranceA,
scColor1,
scColor2,
scRespawn,
};
new SCarInfo[12][scInfo];
//----------------------------------------------
forward LoadCars();
forward split(const strsrc[], strdest[][], delimiter);
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("Cars AutoSpawn - Script RC1");
print("--------------------------------------\n");
print("Carregando Carros....");
new RLoad;
RLoad = LoadCars();
if (RLoad == 1)
{
print("Carros foram Carregados");
return 1;
}
else
print("Problemas ao Carregar Carros");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n--------------------------------------");
print("Cars AutoSpawn - Script RC1");
print("By Marcelo - KrySky_ADM");
print("--------------------------------------\n");
}
#endif
//------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
for(new i = 0; i < sizeof(SCarInfo); i++)
{
new TmpID;
new Float:TmpX;
new Float:TmpY;
new Float:TmpZ;
new Float:TmpA;
new TmpCor1;
new TmpCor2;
new TmpResp;
new string[128];
TmpID = SCarInfo[i][scID];
TmpX = SCarInfo[i][scEntranceX];
TmpY = SCarInfo[i][scEntranceY];
TmpZ = SCarInfo[i][scEntranceZ];
TmpA = SCarInfo[i][scEntranceA];
TmpCor1 = SCarInfo[i][scColor1];
TmpCor2 = SCarInfo[i][scColor2];
TmpResp = SCarInfo[i][scRespawn];
new resultCreate;
resultCreate = CreateVehicle(TmpID,TmpX,TmpY,TmpZ,TmpA,TmpCor1,TmpCor2,TmpResp);
if(resultCreate == 0)
{
format(string, sizeof(string), "Carro: %i Obteve Erro ao Ser Criado!", i);
print(string);
}
format(string, sizeof(string), "Carro: %i Foi Criado com ID: %i ", i, resultCreate);
print(string);
}
}
///-----------------------------------------------------------------------------
public LoadCars()
{
new arrCoords[16][64];
new strFromFile2[256];
new File: file = fopen("vehicles/spawns.cfg", io_read);
if (file)
{
new idx;
new idx2;
idx2 = sizeof(SCarInfo);
while (idx < idx2)
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
SCarInfo[idx][scID] = strval(arrCoords[0]);
SCarInfo[idx][scEntranceX] = floatstr(arrCoords[1]);
SCarInfo[idx][scEntranceY] = floatstr(arrCoords[2]);
SCarInfo[idx][scEntranceZ] = floatstr(arrCoords[3]);
SCarInfo[idx][scEntranceA] = floatstr(arrCoords[4]);
SCarInfo[idx][scColor1] = strval(arrCoords[5]);
SCarInfo[idx][scColor2] = strval(arrCoords[6]);
SCarInfo[idx][scRespawn] = strval(arrCoords[7]);
idx++;
}
fclose(file);
new string[128];
format(string, sizeof(string), "Foram Carregados: %i", sizeof(SCarInfo));
print(string);
return 1;
}
return 0;
}
//------------------------------------------------------------------------------
public split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}
A Idйia e de que ele va no arquivo spawns.cfg. e peguei os carros listados lб e crie eles no jogo, assim fica mais facil ao invйs de add por CУDIGO num FS ou no GM, mas nгo funciona ele preenche errado a array,e acaba dizendo que tem 11 carros carregados e lб verdade й somente 1. e nem carrega esse se eu pesso para exibe a variavel TmpX por exemplo ela volta como 0 e esta errado jб revisei o que tem de errado ai.
Arquivo SPAWNS.cfg
Код:
475|-1929.5627|185.5200|26.0797|176.6911|119|1
A Idйia й minha por favor nгo copiar sem pedir ok??
Re: Problema com Arrays -
KevinsL - 15.12.2010
se isso n й copiado meu nome й barack obama
Re: Problema com Arrays -
mafelis - 15.12.2010
Eu Crei do 0, n й copiado e q estou criando, BARACK OBAMA
Re: Problema com Arrays -
Gabriel6 - 15.12.2010
kkkkkkkkkkkkkkkkkk, boa sorte poorq so nuub e num intendo desses cmd dificil '_-_
Re: Problema com Arrays -
mafelis - 15.12.2010
Na verdade preciso de alguem que me ajuda a consertar e fazer o q й planejado na rotina
Re: Problema com Arrays - rjjj - 15.12.2010
@mafelis, nгo percebi nenhum erro do cуdigo que possa interferir no carregamento dos dados do arquivo, mas aqui estб ele, fiz algumas alteraзхes.
pawn Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
#define FILTERSCRIPT
#include <a_samp>
enum scInfo
{
scID,
Float:scEntranceX,
Float:scEntranceY,
Float:scEntranceZ,
Float:scEntranceA,
scColor1,
scColor2,
scRespawn,
};
new SCarInfo[12][scInfo];
new RLoad;// Variбvel Global
//----------------------------------------------
forward LoadCars();
forward split(const strsrc[], strdest[][], delimiter);
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("Cars AutoSpawn - Script RC1");
print("--------------------------------------\n");
print("Carregando Carros....");
/*new RLoad;
RLoad = LoadCars();*/
LoadCars(); //Cheque o que eu coloquei no final dessa public.
if (RLoad == 1)
{
print("Carros foram Carregados");
return 1;
}
else
{
print("Problemas ao Carregar Carros");
}
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n--------------------------------------");
print("Cars AutoSpawn - Script RC1");
print("By Marcelo - KrySky_ADM");
print("--------------------------------------\n");
}
#endif
//------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
for(new i = 0; i < sizeof(SCarInfo); i++)
{
new TmpID;
new Float:TmpX;
new Float:TmpY;
new Float:TmpZ;
new Float:TmpA;
new TmpCor1;
new TmpCor2;
new TmpResp;
new string[128];
TmpID = SCarInfo[i][scID];
TmpX = SCarInfo[i][scEntranceX];
TmpY = SCarInfo[i][scEntranceY];
TmpZ = SCarInfo[i][scEntranceZ];
TmpA = SCarInfo[i][scEntranceA];
TmpCor1 = SCarInfo[i][scColor1];
TmpCor2 = SCarInfo[i][scColor2];
TmpResp = SCarInfo[i][scRespawn];
new resultCreate;
resultCreate = CreateVehicle(TmpID,TmpX,TmpY,TmpZ,TmpA,TmpCor1,TmpCor2,TmpResp);
if(resultCreate == 0)
{
format(string, sizeof(string), "Carro: %i Obteve Erro ao Ser Criado!", i);
print(string);
}
format(string, sizeof(string), "Carro: %i Foi Criado com ID: %i ", i, resultCreate);
print(string);
}
}
///-----------------------------------------------------------------------------
public LoadCars()
{
new arrCoords[8][64];
new strFromFile2[256];
new File: file = fopen("vehicles/spawns.cfg", io_read);
if (file)
{
new idx;
new idx2;
idx2 = sizeof(SCarInfo);
while (idx < idx2)
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
SCarInfo[idx][scID] = strval(arrCoords[0]);
SCarInfo[idx][scEntranceX] = floatstr(arrCoords[1]);
SCarInfo[idx][scEntranceY] = floatstr(arrCoords[2]);
SCarInfo[idx][scEntranceZ] = floatstr(arrCoords[3]);
SCarInfo[idx][scEntranceA] = floatstr(arrCoords[4]);
SCarInfo[idx][scColor1] = strval(arrCoords[5]);
SCarInfo[idx][scColor2] = strval(arrCoords[6]);
SCarInfo[idx][scRespawn] = strval(arrCoords[7]);
idx++;
}
fclose(file);
new string[128];
format(string, sizeof(string), "Foram Carregados: %i", sizeof(SCarInfo));
print(string);
RLoad = 1; //Aqui =D =D =D
return 1;
}
return 0;
}
//------------------------------------------------------------------------------
public split(const strsrc[], strdest[][], delimiter)
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}
Mas, esse arquivo que vocк postou foi criado pelo sistema de salvamento desse FS ?
Se nгo, vocк deve salvar os dados no arquivo usando um cуdigo de salvamento e depois tentar usar o carregamento.
Se ocorrer Bugs apуs isso, poste seu cуdigo de salvamento para que possamos analisб-lo.
Espero ter ajudado