SA-MP Forums Archive
Проподают машины - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Проподают машины (/showthread.php?tid=503109)



Проподают машины - Kuroki - 27.03.2014

Здравствуйте!
Возникла проблема с машинами т.е когда игрок создает машину себе то иногда у другого игрока она забирается
но это очень редко, а когда онлайн высокий то часто
вот так создаю:
PHP код:
new ta4ka[MAX_PLAYERS];
new 
ta4katest[MAX_PLAYERS]; 
вот создаю машину
PHP код:
if(ta4katest[playerid] == 1)DestroyVehicle(ta4ka[playerid]);
            
ta4ka[playerid] = CreateVehicle(idok,X,Y,Z,Angle,random(250),random(250),50000);
            if(
GetPlayerInterior(playerid)) LinkVehicleToInterior(ta4ka[playerid],GetPlayerInterior(playerid));
            
SetVehicleVirtualWorld(ta4ka[playerid],GetPlayerVirtualWorld(playerid));
            
PutPlayerInVehicle(playerid,ta4ka[playerid],0);
            
ta4katest[playerid] = 1
При дисконекте удаляю
PHP код:
if(ta4katest[playerid] == 1)DestroyVehicle(ta4ka[playerid]); 
В чем проблема?


Re: Проподают машины - DartfoL - 27.03.2014

При дисконнекте удаляете, но не обнуляете эти обе переменные. И вообще, тут и одной переменной хватит, это раз, а во-вторых, я бы посоветовал нормально называть их


Re: Проподают машины - Kuroki - 27.03.2014

Quote:
Originally Posted by DartfoL
Посмотреть сообщение
При дисконнекте удаляете, но не обнуляете эти обе переменные. И вообще, тут и одной переменной хватит, это раз, а во-вторых, я бы посоветовал нормально называть их
Та это для теста пока что... как удалять я не понял

DestroyVehicle(ta4katest[playerid]);?


Re: Проподают машины - Kuroki - 27.03.2014

Сделал так
PHP код:
new ta4ka[PLAYERS];
new 
ta4katest
дисконект
PHP код:
DestroyVehicle(ta4ka[playerid]);
        
ta4katest -=1
создание
PHP код:
DestroyVehicle(ta4ka[playerid]);
            
ta4ka[playerid] = CreateVehicle(idok,X,Y,Z,Angle,random(250),random(250),50000);
            
ta4katest ta4ka[playerid];
            
//    Fuell[caridhouse[playerid]] = PlayerInfo[playerid][pFuelcar];
            
ta4katest ++; 
Правильно? или еще перд созданием сделать
PHP код:
 ta4katest -=1
?

Или как вы сказали с одной переменной
PHP код:
DestroyVehicle(ta4ka[playerid]);
            
ta4ka[playerid] = CreateVehicle(idok,X,Y,Z,Angle,random(250),random(250),50000); 



Re: Проподают машины - Diman777 - 28.03.2014

pawn Код:
new vehicle_id[MAX_PLAYERS];
 
//или сразу инициализируем каждую ячейку (тогда при коннекте можно опустить присваивание)
new vehicle_id[MAX_PLAYERS] = { INVALID_VEHICLE_ID, ... };
 
// Создает транспорт для игрока
create_player_vehicle(playerid)
{  
    // Если транспорт уже создан
    if(vehicle_id[playerid] != INVALID_VEHICLE_ID)
    {
        DestroyVehicle(vehicle_id[playerid]);
    }
    vehicle_id[playerid] = CreateVehicle(idok, X, Y, Z, Angle, random(250), random(250), 50000);
   
    if(GetPlayerInterior(playerid))
    {
        LinkVehicleToInterior(vehicle_id[playerid], GetPlayerInterior(playerid));
    }
    SetVehicleVirtualWorld(vehicle_id[playerid], GetPlayerVirtualWorld(playerid));
    PutPlayerInVehicle(playerid, vehicle_id[playerid], 0);
}
 
public OnPlayerConnect(playerid)
{
    vehicle_id[playerid] = INVALID_VEHICLE_ID;
    return 1;
}
 
public OnPlayerDisconnect(playerid, reason)
{
    // Если транспорт был создан
    if(vehicle_id[playerid] != INVALID_VEHICLE_ID)
    {
        DestroyVehicle(vehicle_id[playerid]);
    }
    vehicle_id[playerid] = INVALID_VEHICLE_ID;
    return 1;
}



Re: Проподают машины - Kuroki - 28.03.2014

Спасибо, попробую


Re: Проподают машины - Kuroki - 28.03.2014

Проблема не решилась :/


Re: Проподают машины - Jon_De - 28.03.2014

Quote:
Originally Posted by Kuroki
Посмотреть сообщение
Проблема не решилась :/
код который выше - рабочий
Значит в чем то другом еще причина, где то еще тачки создаются/удаляются


Re: Проподают машины - Kuroki - 28.03.2014

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
код который выше - рабочий
Значит в чем то другом еще причина, где то еще тачки создаются/удаляются
А причина проблемы какая то? переполнение?


Re: Проподают машины - Diman777 - 28.03.2014

Quote:
Originally Posted by Kuroki
Посмотреть сообщение
А причина проблемы какая то? переполнение?
что за переполнение, не понял.
ищи где ещё в моде у тебя есть CreateVehicle, DestroyVehicle, проведи дебаг