Итак, сначало сделаем функицю, для сохранения координат(вставить ее можно куда угодно, но желательно, в любое место которое выше паблика OnPlayerExitVehicle):
stock SavePos(playerid)
{
new Float:x,Float:y,Float:z,Float:a,carid,getcarid;
new playername[MAX_PLAYER_NAME];
if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey]) { carid = PlayerInfo[playerid][pPcarkey]; }
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey2]) { carid = PlayerInfo[playerid][pPcarkey2]; }
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey3]) { carid = PlayerInfo[playerid][pPcarkey3]; }
else { return 1; }
getcarid = GetPlayerVehicleID(playerid);
GetPlayerName(playerid, playername, sizeof(playername));
GetVehiclePos(carid, x, y, z);
GetVehicleZAngle(carid, a);
if(IsPlayerInVehicle(playerid,carid) && CarInfo[carid][cOwned] == 1)
{
if(PlayerInfo[playerid][pPcarkey] == -1 && PlayerInfo[playerid][pPcarkey2] == -1 & PlayerInfo[playerid][pPcarkey3])
{
SendClientMessage(playerid, COLOR_GREY, "У вас нет транспорта!");
return 1;
}
if(getcarid == carid)
{
CarInfo[carid][cLocationx] = x;
CarInfo[carid][cLocationy] = y;
CarInfo[carid][cLocationz] = z;
CarInfo[carid][cAngle] = a;
PutPlayerInVehicle(playerid,carid,0);
OnPropUpdate();
OnPlayerUpdate(playerid);
return 1;
}
}
return 1;
}
Пояснение:
Создаем переменные:
new Float:x,Float:y,Float:z,Float:a,carid,getcarid;
Ставим проверки:
if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey]) { carid = PlayerInfo[playerid][pPcarkey]; } // проверка на 1 авто
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey2]) { carid = PlayerInfo[playerid][pPcarkey2]; } // на 2 авто
else if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pPcarkey3]) { carid = PlayerInfo[playerid][pPcarkey3]; } // на 3 авто
else { return 1; } // иначе просто возвращаем 1
getcarid = GetPlayerVehicleID(playerid); // присваеваем переменной значение(функцию) GetPlayerName(playerid, playername, sizeof(playername)); // узнаем ник игрока(для того чтобы узнать владелец он или нет) GetVehiclePos(carid, x, y, z); // узнаем положение авто GetVehicleZAngle(carid, a); // узнаем угол поворота авто
if(IsPlayerInVehicle(playerid,carid) && CarInfo[carid][cOwned] == 1) // проверяем игрок в авто и это авто куплено или нет
{
if(PlayerInfo[playerid][pPcarkey] == -1 && PlayerInfo[playerid][pPcarkey2] == -1 & PlayerInfo[playerid][pPcarkey3]) // проверяем ключи авто
{
SendClientMessage(playerid, COLOR_GREY, "У вас нет транспорта!");
return 1;
}
if(getcarid == carid) // если человек владелец авто значит
{
CarInfo[carid][cLocationx] = x; // устанавливаем для авто координаты x
CarInfo[carid][cLocationy] = y; // устанавливаем для авто координаты y
CarInfo[carid][cLocationz] = z; // устанавливаем для авто координаты z
CarInfo[carid][cAngle] = a; // устанавливаем для авто угол поворота
OnPropUpdate(); // обновляем данные
OnPlayerUpdate(playerid); // обновляем данные
Теперь будем сохранять координаты при выходе из транспорта, нужно в public OnPlayerExitVehicle(playerid, vehicleid) вставить:
SavePos(playerid);
Есть еще один вариант, это просто в public OnPlayerExitVehicle(playerid, vehicleid) поставить(так тоже будет работать):
OnPlayerCommandText(playerid, "/command"); // вместо /command ваша команда парковки
Урок был написан под LARP (возможно и под GF подойдет)
Вот и собственно все! Теперь когда вы выйдите из авто, то ее координаты автоматически сохраняться , и при рестарте авто появится там!
Автор: Mike
Сообщение отредактировал Mike: 19 апреля 2012 - 22:48
Вход
Регистрация
Помощь












