Итак, сначало сделаем функицю, для сохранения координат(вставить ее можно куда угодно, но желательно, в любое место которое выше паблика 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