Проблема с авторынком
#1

Здравствуйте. Давненько в свой мод поставил авторынок (вырезал и сансити), и на днях перевел сервер на 0.3d. Появились проблемы: паркую авто, делаю рестарт, и авто пропадает куда то или на место его становится следующее авто по списку. В файле auto.cfg все координаты, все правильно.. Не понимаю что уже и делать.
Подскажите пожалуйста, могла возникнуть эта проблема из-за перехода на 0.3d ?
Спасибо заранее
Reply
#2

Выложи код.
Reply
#3

Quote:
Originally Posted by js
View Post
Выложи код.
Ну собственно вот
LoadAuto
PHP Code:
public LoadAuto()
{
    new 
arrCoords[26][64];
    new 
strFromFile2[256];
    new 
Filefile fopen("auto.cfg"io_read);
    if (
file)
    {
        new 
idx;
        while (
idx CAR_PROD)
        {
            
fread(filestrFromFile2);
            
split(strFromFile2arrCoords',');
            
AutoInfo[idx+1][aStats] = strval(arrCoords[0]);
            
AutoInfo[idx+1][aModel] = strval(arrCoords[1]);
            
AutoInfo[idx+1][aAutoX] = floatstr(arrCoords[2]);
            
AutoInfo[idx+1][aAutoY] = floatstr(arrCoords[3]);
            
AutoInfo[idx+1][aAutoZ] = floatstr(arrCoords[4]);
            
AutoInfo[idx+1][aAutoAngle] = floatstr(arrCoords[5]);
            
AutoInfo[idx+1][aColor1] = strval(arrCoords[6]);
            
AutoInfo[idx+1][aColor2] = strval(arrCoords[7]);
            
strmid(AutoInfo[idx+1][aOwner], arrCoords[8], 0strlen(arrCoords[8]), 255);
            
AutoInfo[idx+1][aPrice] = strval(arrCoords[9]);
            
AutoInfo[idx+1][aKey] = strval(arrCoords[10]);
            
AutoInfo[idx+1][a0] = strval(arrCoords[11]);
            
AutoInfo[idx+1][a1] = strval(arrCoords[12]);
            
AutoInfo[idx+1][a2] = strval(arrCoords[13]);
            
AutoInfo[idx+1][a3] = strval(arrCoords[14]);
            
AutoInfo[idx+1][a4] = strval(arrCoords[15]);
            
AutoInfo[idx+1][a5] = strval(arrCoords[16]);
            
AutoInfo[idx+1][a6] = strval(arrCoords[17]);
            
AutoInfo[idx+1][a7] = strval(arrCoords[18]);
            
AutoInfo[idx+1][a8] = strval(arrCoords[19]);
            
AutoInfo[idx+1][a9] = strval(arrCoords[20]);
            
AutoInfo[idx+1][a10] = strval(arrCoords[21]);
            
AutoInfo[idx+1][a11] = strval(arrCoords[22]);
            
AutoInfo[idx+1][a12] = strval(arrCoords[23]);
            
AutoInfo[idx+1][a13] = strval(arrCoords[24]);
            
AutoInfo[idx+1][aPaintJob] = strval(arrCoords[25]);
            
idx++;
        }
        
fclose(file);
    }
    return 
1;

SaveAuto
PHP Code:
public SaveAuto()
{
    new 
idx;
    new 
Filefile2;
    while (
idx CAR_PROD)
    {
        new 
coordsstring[256];
        
format(coordsstringsizeof(coordsstring), "%d,%d,%f,%f,%f,%f,%d,%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
        
AutoInfo[idx+1][aStats],
        
AutoInfo[idx+1][aModel],
        
AutoInfo[idx+1][aAutoX],
        
AutoInfo[idx+1][aAutoY],
        
AutoInfo[idx+1][aAutoZ],
        
AutoInfo[idx+1][aAutoAngle],
        
AutoInfo[idx+1][aColor1],
        
AutoInfo[idx+1][aColor2],
        
AutoInfo[idx+1][aOwner],
        
AutoInfo[idx+1][aPrice],
        
AutoInfo[idx+1][aKey],
        
AutoInfo[idx+1][aLock],
        
AutoInfo[idx+1][a0],
        
AutoInfo[idx+1][a1],
        
AutoInfo[idx+1][a2],
        
AutoInfo[idx+1][a3],
        
AutoInfo[idx+1][a4],
        
AutoInfo[idx+1][a5],
        
AutoInfo[idx+1][a6],
        
AutoInfo[idx+1][a7],
        
AutoInfo[idx+1][a8],
        
AutoInfo[idx+1][a9],
        
AutoInfo[idx+1][a10],
        
AutoInfo[idx+1][a11],
        
AutoInfo[idx+1][a12],
        
AutoInfo[idx+1][a13],
        
AutoInfo[idx+1][aPaintJob]);
        if(
idx == 0)
        {
            
file2 fopen("auto.cfg"io_write);
        }
        else
        {
            
file2 fopen("auto.cfg"io_append);
        }
        
fwrite(file2coordsstring);
        
idx++;
        
fclose(file2);
    }
    return 
1;

И команда /park , после которой происходит данная проблема
PHP Code:
    if (strcmp(cmd"/park"true) == 0)
    {
        if(
IsPlayerConnected(playerid))
        {
            if(
PlayerInfo[playerid][pCarKey2] == && PlayerInfo[playerid][pCarKey] == 0)
            {
                
SendClientMessage(playerid,COLOR_GREY,"Ó âàñ íåò òà÷êè");
                return 
1;
            }
            if(
IsPlayerInAnyVehicle(playerid))
            {
                new 
cari GetPlayerVehicleID(playerid);
                if(
cari == PlayerInfo[playerid][pCarKey2] || cari == PlayerInfo[playerid][pCarKey]|| cari == PlayerInfo[playerid][pCarKey3])
                {
                    
RemovePlayerFromVehicle(playerid);
                    
TogglePlayerControllable(playerid1);
                    new 
Float:xcarFloat:ycarFloat:zcarFloat:ancar;
                    new 
mods GetVehicleModel(cari);
                    
GetVehicleZAngle(cariancar);
                    
GetVehiclePos(cari,xcar,ycar,zcar);
                    
DestroyVehicle(cari);
                    
CreateVehicle(mods,xcar,ycar,zcar,ancar,AutoInfo[cari][aColor1],AutoInfo[cari][aColor2],SPAWN_CARS);
                    
AutoInfo[cari][aAutoX] = xcar;
                    
AutoInfo[cari][aAutoY] = ycar;
                    
AutoInfo[cari][aAutoZ] = zcar;
                    
AutoInfo[cari][aAutoAngle] = ancar;
                    
SaveAuto();
                    if(
AutoInfo[cari][a0] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a0]);
                    }
                    if(
AutoInfo[cari][a1] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a1]);
                    }
                    if(
AutoInfo[cari][a2] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a2]);
                    }
                    if(
AutoInfo[cari][a3] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a3]);
                    }
                    if(
AutoInfo[cari][a4] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a4]);
                    }
                    if(
AutoInfo[cari][a5] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a5]);
                    }
                    if(
AutoInfo[cari][a6] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a6]);
                    }
                    if(
AutoInfo[cari][a7] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a7]);
                    }
                    if(
AutoInfo[cari][a8] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a8]);
                    }
                    if(
AutoInfo[cari][a9] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a9]);
                    }
                    if(
AutoInfo[cari][a10] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a10]);
                    }
                    if(
AutoInfo[cari][a11] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a11]);
                    }
                    if(
AutoInfo[cari][a12] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a12]);
                    }
                    if(
AutoInfo[cari][a13] != 0)
                    {
                        
AddVehicleComponent(cariAutoInfo[cari][a13]);
                    }
                    if(
AutoInfo[cari][aPaintJob] != 0)
                    {
                        
ChangeVehiclePaintjob(cari,AutoInfo[cari][aPaintJob]);
                    }
                    
SendClientMessage(playerid,COLOR_YELLOW,"Òðàíñïîðò ïðèïàðêîâàí!");
                }
                else
                {
                    
SendClientMessage(playerid,COLOR_GREY,"Âû íå â ñâîåé êóïëåííîé òà÷êå");
                }
            }
            else
            {
                
SendClientMessage(playerid,COLOR_GREY,"Âû íå â òà÷êå");
            }
        }
        return 
1;
    } 
Reply
#4

По моему у тебя тачка создаётся по любому, но в /park ты уверен, что пересозданная машина будет всегда иметь ид тот же, что у удалённой?!
Reply
#5

Просмотрел код, ничего такого не нашел. У вас вообще машина создается после выгрузки из файла ? я имею ввиду CreateVehicle(...) у меня в авто рынке сразу после выгрузки строчки из файла создается машина, потом из другой строчки другая и т.д.
Reply
#6

idx+1 - не понятно разве в чом проблема?
Reply
#7

Quote:
Originally Posted by Mutha_X
View Post
По моему у тебя тачка создаётся по любому, но в /park ты уверен, что пересозданная машина будет всегда иметь ид тот же, что у удалённой?!
Да, уверен, ведь на 0.3c все работало прекрасно
Reply
#8

Quote:
Originally Posted by seeeca
View Post
idx+1 - не понятно разве в чом проблема?
Делал уже просто idx, все равно не помогает... (
Reply
#9

Замени свой LoadAuto на:

PHP Code:
public LoadAuto()
{
    new 
arrCoords[26][64];
    new 
strFromFile2[256];
    new 
Filefile fopen("auto.cfg"io_read);
    if (
file)
    {
        new 
idx;
        while(
idx sizeof(AutoInfo))
        {
            
fread(filestrFromFile2);
            
split(strFromFile2arrCoords',');
            
AutoInfo[idx][aStats] = strval(arrCoords[0]);
            
AutoInfo[idx][aModel] = strval(arrCoords[1]);
            
AutoInfo[idx][aAutoX] = floatstr(arrCoords[2]);
            
AutoInfo[idx][aAutoY] = floatstr(arrCoords[3]);
            
AutoInfo[idx][aAutoZ] = floatstr(arrCoords[4]);
            
AutoInfo[idx][aAutoAngle] = floatstr(arrCoords[5]);
            
AutoInfo[idx][aColor1] = strval(arrCoords[6]);
            
AutoInfo[idx][aColor2] = strval(arrCoords[7]);
            
strmid(AutoInfo[idx][aOwner], arrCoords[8], 0strlen(arrCoords[8]), 255);
            
AutoInfo[idx][aPrice] = strval(arrCoords[9]);
            
AutoInfo[idx][aKey] = strval(arrCoords[10]);
            
AutoInfo[idx][a0] = strval(arrCoords[11]);
            
AutoInfo[idx][a1] = strval(arrCoords[12]);
            
AutoInfo[idx][a2] = strval(arrCoords[13]);
            
AutoInfo[idx][a3] = strval(arrCoords[14]);
            
AutoInfo[idx][a4] = strval(arrCoords[15]);
            
AutoInfo[idx][a5] = strval(arrCoords[16]);
            
AutoInfo[idx][a6] = strval(arrCoords[17]);
            
AutoInfo[idx][a7] = strval(arrCoords[18]);
            
AutoInfo[idx][a8] = strval(arrCoords[19]);
            
AutoInfo[idx][a9] = strval(arrCoords[20]);
            
AutoInfo[idx][a10] = strval(arrCoords[21]);
            
AutoInfo[idx][a11] = strval(arrCoords[22]);
            
AutoInfo[idx][a12] = strval(arrCoords[23]);
            
AutoInfo[idx][a13] = strval(arrCoords[24]);
            
AutoInfo[idx][aPaintJob] = strval(arrCoords[25]);
            
idx++;
        }
        
fclose(file);
    }
    return 
1;

Если не поможет замени строку
PHP Code:
while(idx sizeof(AutoInfo)) 
на
PHP Code:
while(idx CAR_PROD
Проверь есть ли у тебя
PHP Code:
LoadAuto(); 
в OnGameModeInit

Больше не знаю как помочь.
Reply
#10

Quote:
Originally Posted by murzik555
View Post
Да, уверен, ведь на 0.3c все работало прекрасно
Дело не в версии сампа.
Смотри: ты создаёшь 3 машины, удаляешь(неизвестно по какой причине) вторую, "паркуешь" третью, в результате получаешь, что ид припаркованной машины станет = иду удалённой(2), а записываешь ты новые координаты в переменные машины с ид3(которой нет), получается так, что у пересозданной машины на ид 2 координаты нулевые(вероятно, до этого при удалении машины сбрасываются и все данные о ней), при сохранении инфа об этой машине так и записывается; разве что ввод 2х раз /park поможет, но не сохранит цвета/модификации машины.
Reply
#11

js, спасибо, но предложенные варианты не помогают..

Quote:
Originally Posted by Mutha_X
View Post
разве что ввод 2х раз /park поможет
Пробывал, не помогает. Также создавал заново машины, никакие не удалял, и все равно происходит данная путанница.
Reply
#12

Может быть вам повторно вырезать авто рынок ?
Reply
#13

Все, я разобрался. Оказывается у меня стоял автобус-бот, и каким то боком загружался первым в авторынке, хотя его в файле не было. Я бота убрал, и все стало нормально работать. Спасибо всем за помощь!
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)