Game Freazee
#1

I'm trying to make a vehicle system.... but when i enter in car it send me the message "This Is Your Owned" and the game freeze
The Code....

pawn Код:
#include <a_samp>

enum vInfo
{
vModelID,
Float:vX,
Float:vY,
Float:vZ,
Float:vRotation,
vColor1,
vColor2,
vPrice,
vOwned,
vOwner[MAX_PLAYERS],
vVehID,
};
new VehicleInfo[MAX_VEHICLES][vInfo];

public OnFilterScriptInit()
{
LoadHouse();
return 1;
}

public OnFilterScriptExit()
{
for(new vID = 0; vID < sizeof(VehicleInfo); vID++)
{
DestroyVehicle(VehicleInfo[vID][vVehID]);
}
return 1;
}

stock LoadHouse()
{
new arrCoords[12][64];
new strFromFile2[128];
new File: vFile = fopen("Vehicle.ini", io_read);
if (vFile)
{
new vID;
while (vID < sizeof(VehicleInfo))
{
fread(vFile, strFromFile2);
split(strFromFile2, arrCoords, '|');
VehicleInfo[vID][vModelID] = strval(arrCoords[0]);
VehicleInfo[vID][vX] = floatstr(arrCoords[1]);
VehicleInfo[vID][vY] = floatstr(arrCoords[2]);
VehicleInfo[vID][vZ] = floatstr(arrCoords[3]);
VehicleInfo[vID][vRotation] = floatstr(arrCoords[4]);
VehicleInfo[vID][vColor1] = strval(arrCoords[5]);
VehicleInfo[vID][vColor2] = strval(arrCoords[6]);
VehicleInfo[vID][vPrice] = strval(arrCoords[7]);
VehicleInfo[vID][vOwned] = strval(arrCoords[8]);
strmid(VehicleInfo[vID][vOwner], arrCoords[9], 0, strlen(arrCoords[9]), 255);
VehicleInfo[vID][vVehID] = strval(arrCoords[10]);

VehicleInfo[vID][vVehID] = CreateVehicle(VehicleInfo[vID][vModelID], VehicleInfo[vID][vX], VehicleInfo[vID][vY], VehicleInfo[vID][vZ], VehicleInfo[vID][vRotation], VehicleInfo[vID][vColor1], VehicleInfo[vID][vColor2], 0);

vID++;
}
fclose(vFile);
}
return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new vID;
while (vID < sizeof(VehicleInfo))
{
new pName[MAX_PLAYER_NAME], vOwnerS[50];
GetPlayerName(playerid, pName, sizeof(pName));
format(vOwnerS, sizeof vOwnerS, "%s", VehicleInfo[vID][vOwner]);

if(strcmp(pName, vOwnerS, true) == 0)
{
SendClientMessage(playerid, 0x00FF00FF,"This Is Your Owned");
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF0000FF,"This Vehicle Is Owned");
}
}
}
return 1;
}

stock 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;
}
Reply
#2

Just a simple mistake. In the

while (vID < sizeof(VehicleInfo))

you do not increase vID, so this will loop forever.
Add vID ++; at the end of the while loop.
Reply
#3

Mauzen, agreed.
Reply
#4

The code now but still same problem

pawn Код:
if(newstate == PLAYER_STATE_DRIVER)
{
new vID;
while (vID < sizeof(VehicleInfo))
{
new vOwnerString[34], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
format(vOwnerString, sizeof vOwnerString, "%s", VehicleInfo[vID][vOwner]);

if(strcmp(pName, vOwnerString, true) == 0)
{
SendClientMessage(playerid, SYSTEMSUCESSFULL_COLOR,"[SYSTEM]: This Is Your Private Vehicle");
}
else
{
SendClientMessage(playerid, SYSTEMERROR_COLOR,"[SYSTEM]: This Is A Private Vehicle");
}
vID++;
}
}
Reply
#5

[SOLVED] Thanks to Mauzen
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)