Перейти к содержанию
Авторизация  
АЛЕКСАНДР МАМАЕВ

Парковка авто внутри гаража

Рекомендуемые сообщения

АЛЕКСАНДР МАМАЕВ

При парковке авто внутри гаража при перезаходе в игру после загрузки авто в гараже пусто как исправить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
neoDium

Команду парковки сюда

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@neoDium

CMD:park(playerid,params[])
{
	new count_car[MAX_PLAYERS] = 0, Float: car_pos_x, Float: car_pos_y, Float: car_pos_z, Float: car_pos_r;
	GetVehiclePos(GetPlayerVehicleID(playerid), car_pos_x, car_pos_y, car_pos_z);
	GetVehicleZAngle(GetPlayerVehicleID(playerid), car_pos_r);
	if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!");
	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_WARNING, "Вы должны быть в автомобиле");
	for(new i; i < 4; i++)
	{
		if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][i]) count_car[playerid]++;
	}
	if(!count_car[playerid]) return SendClientMessage(playerid, COLOR_WARNING, "Вы должны быть в своем автомобиле");
	if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][0]) PLAYER_DATA[playerid][data_CARX][0] = car_pos_x, PLAYER_DATA[playerid][data_CARY][0] = car_pos_y, PLAYER_DATA[playerid][data_CARZ][0] = car_pos_z, PLAYER_DATA[playerid][data_CARANGLE][0] = car_pos_r, PLAYER_DATA[playerid][data_WORLD_CAR][0] = 0;
	if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][1]) PLAYER_DATA[playerid][data_CARX][1] = car_pos_x, PLAYER_DATA[playerid][data_CARY][1] = car_pos_y, PLAYER_DATA[playerid][data_CARZ][1] = car_pos_z, PLAYER_DATA[playerid][data_CARANGLE][1] = car_pos_r, PLAYER_DATA[playerid][data_WORLD_CAR][1] = 0;
	if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][2]) PLAYER_DATA[playerid][data_CARX][2] = car_pos_x, PLAYER_DATA[playerid][data_CARY][2] = car_pos_y, PLAYER_DATA[playerid][data_CARZ][2] = car_pos_z, PLAYER_DATA[playerid][data_CARANGLE][2] = car_pos_r, PLAYER_DATA[playerid][data_WORLD_CAR][2] = 0;
	if(GetPlayerVehicleID(playerid) == PLAYER_DATA[playerid][data_VEH][3]) PLAYER_DATA[playerid][data_CARX][3] = car_pos_x, PLAYER_DATA[playerid][data_CARY][3] = car_pos_y, PLAYER_DATA[playerid][data_CARZ][3] = car_pos_z, PLAYER_DATA[playerid][data_CARANGLE][3] = car_pos_r, PLAYER_DATA[playerid][data_WORLD_CAR][3] = 0;
	SendClientMessage(playerid, COLOR_GREEN, "Вы успешно припарковали свой автомобиль на этом месте");
	SavePlayerData(playerid);
	return true;
}
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

UP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Бешенный Кот

мб после перезагрузки авто не спавнится?

Много причин на это

- Сохранение в БД
- Загрузка авто после авторизации
- Виртуальный мир

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

, на улице норм паркуеться

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
hteppl

Покажите загрузку автомобиля после запуска.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

stock LoadCar(playerid, c)
{
	new string[64], str_car[128];
	if(!PLAYER_DATA[playerid][data_CAR][c]) return SendClientMessage(playerid, COLOR_WARNING, "Автомобиль в данном слоте отсутствует");
	if(PLAYER_DATA[playerid][data_VEH][c] != INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_WARNING, "Автомобиль в данном слоте уже загружен на сервере, сначала выгрузите его через /fixcar");
	if(PLAYER_DATA[playerid][data_CARX][c] == 0 && PLAYER_DATA[playerid][data_CARY][c] == 0 && PLAYER_DATA[playerid][data_CARZ][c] == 0)
	{
		new r = random(58);
		PLAYER_DATA[playerid][data_VEH][c] = CreateVehicle(PLAYER_DATA[playerid][data_CAR][c], SalonRandSpawn[r][0], SalonRandSpawn[r][1], SalonRandSpawn[r][2], SalonRandSpawn[r][3], PLAYER_DATA[playerid][data_CAR_COLOR1][c], PLAYER_DATA[playerid][data_CAR_COLOR2][c], 360000);
		new car = PLAYER_DATA[playerid][data_VEH][c];
		ClearCarData(car);
		CAR_DATA[car][data_FUEL] = PLAYER_DATA[playerid][data_CARFUEL][c];
		format(str_car, sizeof str_car, "Ваш автомобиль в слоте №%d не был припаркован после покупки, и поэтому он был припаркован на парковке у автосалона", c+1);
		SendClientMessage(playerid, COLOR_ORANGE, str_car);
		SendClientMessage(playerid, COLOR_ORANGE, "Найти автомобиль можно через /gpsavto -> Найти личный автомобиль. Найдите машину и припаркуйте(/park)");
		GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
		SetVehicleParamsEx(car,engine,lights,alarm,true,bonnet,boot,objective);
		CAR_DATA[car][data_LOCK] = 1;
		SetVehicleTuning(playerid, c);
	}
	else
	{
		PLAYER_DATA[playerid][data_VEH][c] = CreateVehicle(PLAYER_DATA[playerid][data_CAR][c], PLAYER_DATA[playerid][data_CARX][c],  PLAYER_DATA[playerid][data_CARY][c],  PLAYER_DATA[playerid][data_CARZ][c],   PLAYER_DATA[playerid][data_CARANGLE][c], PLAYER_DATA[playerid][data_CAR_COLOR1][c], PLAYER_DATA[playerid][data_CAR_COLOR2][c], 360000);
		new car = PLAYER_DATA[playerid][data_VEH][c];
		ClearCarData(car);
		CAR_DATA[car][data_FUEL] = PLAYER_DATA[playerid][data_CARFUEL][c];
		GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
		SetVehicleParamsEx(car,engine,lights,alarm,true,bonnet,boot,objective);
		CAR_DATA[car][data_LOCK] = 1;
		SetVehicleTuning(playerid, c);
	}
	if(car_label[PLAYER_DATA[playerid][data_VEH][c]] != Text3D:INVALID_3DTEXT_ID)
	{
		DestroyDynamic3DTextLabel(car_label[PLAYER_DATA[playerid][data_VEH][c]]);
		car_label[PLAYER_DATA[playerid][data_VEH][c]] = Text3D:INVALID_3DTEXT_ID;
	}
	if(strcmp(car_NUMBER[playerid][c],"None",true,64) != 0)
	{
		format(string, 64, "%s", car_NUMBER[playerid][c]);
		car_label[PLAYER_DATA[playerid][data_VEH][c]] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, 0, 0, 0, 10.0,INVALID_PLAYER_ID, PLAYER_DATA[playerid][data_VEH][c], 1);
	}
	else
	{
		car_label[PLAYER_DATA[playerid][data_VEH][c]] = CreateDynamic3DTextLabel("---------", 0xFFFFFFFF, 0, 0, 0, 10.0,INVALID_PLAYER_ID, PLAYER_DATA[playerid][data_VEH][c], 1);
	}
	SendClientMessage(playerid, COLOR_GREEN, "Автомобиль успешно загружен");
	SetVehicleVirtualWorld(PLAYER_DATA[playerid][data_VEH][c], PLAYER_DATA[playerid][data_WORLD_CAR][c]);
	return true;
} 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
hteppl

Возможна проблема с функцией 

data_WORLD_CAR

Меняйте значения, может поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

data_WORLD_CAR

оно из мода стандартное а систему гаражай я из скрипта вшивал

Изменено пользователем АЛЕКСАНДР МАМАЕВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

Покажи команду покупки гаража.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@#Pawno,

	if(PRESSED(KEY_YES))
	{
	    if(GetPVarInt(playerid, "GAR_PRICE") != 0)
	    {
	        new id = GetPVarInt(playerid, "GAR_PLAYERID"), price = GetPVarInt(playerid, "GAR_PRICE");
	        if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Продавец не на сервере!"), DeletePVar(playerid, "GAR_PRICE"), DeletePVar(playerid, "GAR_PLAYERID");
	        if(GetPlayerGarage(id) == 0) return SendClientMessage(playerid, -1, "У продавца уже нет гаража!"), DeletePVar(playerid, "GAR_PRICE"), DeletePVar(playerid, "GAR_PLAYERID");
			GivePlayerMoney(playerid, -price), GivePlayerMoney(id, price);
			SendClientMessage(playerid, -1, "Вы успешно купили гараж! Используйте: /garagemenu");
			SendClientMessage(id, -1, "Игрок согласился купить у Вас гараж!");
			new i = GetPVarInt(id, "PlayerGarage");
			new names[24];
			GetPlayerName(playerid, names, sizeof(names));
			strmid(Garage[i][gOwner], names, 0, strlen(names), 24);
			SetGarageStr(i, "Owner", Garage[i][gOwner]);
			DeletePVar(id, "PlayerGarage");
			DeletePVar(playerid, "GAR_PRICE"), DeletePVar(playerid, "GAR_PLAYERID");
	    }
     }
  if(PRESSED(KEY_WALK))
	{
	    for(new i = 1; i <= ALLGARAGE; i++)//Цикл
	    {
	        if(IsPlayerInRangeOfPoint(playerid, 2.0, Garage[i][gX1], Garage[i][gY1], Garage[i][gZ1]))//Если игрок стоит рядом с гаражом...
	        {
	            SetPVarInt(playerid, "G_ID", i);
	            if(!strcmp(Garage[i][gOwner], "None", true)) //продается
	            {
	                new str[250];
	                format(str, sizeof(str), "{ffffff}Гараж номер %d продается!\nГосударственная стоимость гаража состовляет %d рублей.", i, Garage[i][gPrice]);
					ShowPlayerDialogFix(playerid, dialog_garage, DIALOG_STYLE_MSGBOX, "Гараж продается!", str, "Купить", "Отмена");
	            }
	            else//Куплен
	            {
	                new str[250];
	                format(str, sizeof(str), "{ffffff}Номер гаража: %d\nВладелец данного гаража %s.\nГосударственная стоимость гаража состовляет %d рублей.",
					i, Garage[i][gOwner], Garage[i][gPrice]);
					ShowPlayerDialogFix(playerid, dialog_garage, DIALOG_STYLE_MSGBOX, "Гараж куплен!", str, "Войти", "Отмена");
	            }
			}
			else if(IsPlayerInRangeOfPoint(playerid, 2.0, Garage[i][gX4], Garage[i][gY4], Garage[i][gZ4]) && GetPlayerVirtualWorld(playerid) == i)//Если игрок в гараже
			{
			    new id = GetPVarInt(playerid, "G_ID");
			    SetPlayerPos(playerid, Garage[id][gX1], Garage[id][gY1], Garage[id][gZ1]);
			    SetPlayerVirtualWorld(playerid, 0), SetPlayerInterior(playerid, 0);
			}
		}
	} 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno
stock LoadCar(playerid, c)
{
new string[64], str_car[128];
if(!PLAYER_DATA[playerid][data_CAR][c]) return SendClientMessage(playerid, COLOR_WARNING, "Автомобиль в данном слоте отсутствует");
if(PLAYER_DATA[playerid][data_VEH][c] != INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_WARNING, "Автомобиль в данном слоте уже загружен на сервере, сначала выгрузите его через /fixcar");
if(PLAYER_DATA[playerid][data_CARX][c] == 0 && PLAYER_DATA[playerid][data_CARY][c] == 0 && PLAYER_DATA[playerid][data_CARZ][c] == 0)
{
new r = random(58);
PLAYER_DATA[playerid][data_VEH][c] = CreateVehicle(PLAYER_DATA[playerid][data_CAR][c], SalonRandSpawn[r][0], SalonRandSpawn[r][1], SalonRandSpawn[r][2], SalonRandSpawn[r][3], PLAYER_DATA[playerid][data_CAR_COLOR1][c], PLAYER_DATA[playerid][data_CAR_COLOR2][c], 360000);
new car = PLAYER_DATA[playerid][data_VEH][c];
ClearCarData(car);
CAR_DATA[car][data_FUEL] = PLAYER_DATA[playerid][data_CARFUEL][c];
format(str_car, sizeof str_car, "Ваш автомобиль в слоте №%d не был припаркован после покупки, и поэтому он был припаркован на парковке у автосалона", c+1);
SendClientMessage(playerid, COLOR_ORANGE, str_car);
SendClientMessage(playerid, COLOR_ORANGE, "Найти автомобиль можно через /gpsavto -> Найти личный автомобиль. Найдите машину и припаркуйте(/park)");
GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(car,engine,lights,alarm,true,bonnet,boot,objective);
CAR_DATA[car][data_LOCK] = 1;
SetVehicleTuning(playerid, c);
}
else
{
PLAYER_DATA[playerid][data_VEH][c] = CreateVehicle(PLAYER_DATA[playerid][data_CAR][c], PLAYER_DATA[playerid][data_CARX][c], PLAYER_DATA[playerid][data_CARY][c], PLAYER_DATA[playerid][data_CARZ][c], PLAYER_DATA[playerid][data_CARANGLE][c], PLAYER_DATA[playerid][data_CAR_COLOR1][c], PLAYER_DATA[playerid][data_CAR_COLOR2][c], 360000);
new car = PLAYER_DATA[playerid][data_VEH][c];
ClearCarData(car);
CAR_DATA[car][data_FUEL] = PLAYER_DATA[playerid][data_CARFUEL][c];
GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(car,engine,lights,alarm,true,bonnet,boot,objective);
CAR_DATA[car][data_LOCK] = 1;
SetVehicleTuning(playerid, c);
}
if(car_label[PLAYER_DATA[playerid][data_VEH][c]] != Text3D:INVALID_3DTEXT_ID)
{
DestroyDynamic3DTextLabel(car_label[PLAYER_DATA[playerid][data_VEH][c]]);
car_label[PLAYER_DATA[playerid][data_VEH][c]] = Text3D:INVALID_3DTEXT_ID;
}
if(strcmp(car_NUMBER[playerid][c],"None",true,64) != 0)
{
format(string, 64, "%s", car_NUMBER[playerid][c]);
car_label[PLAYER_DATA[playerid][data_VEH][c]] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, 0, 0, 0, 10.0,INVALID_PLAYER_ID, PLAYER_DATA[playerid][data_VEH][c], 1);
}
else
{
car_label[PLAYER_DATA[playerid][data_VEH][c]] = CreateDynamic3DTextLabel("---------", 0xFFFFFFFF, 0, 0, 0, 10.0,INVALID_PLAYER_ID, PLAYER_DATA[playerid][data_VEH][c], 1);
}
SendClientMessage(playerid, COLOR_GREEN, "Автомобиль успешно загружен");
SetVehicleVirtualWorld(PLAYER_DATA[playerid][data_VEH][c], 0);
return true;
} [/

Попробуй заменить свой LoadCar

Изменено пользователем #Pawno

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

 #Pawno так PLAYER_DATA[playerid][data_WORLD_CAR] при парковке используеться при команде /park

Изменено пользователем АЛЕКСАНДР МАМАЕВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

Тебе это не надо , у тебя гаражи в 0 виртуальном вирте

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@#Pawno, а для улицы тоже это ненадо? тоесть будут видеть друг друга игроки? 

Изменено пользователем АЛЕКСАНДР МАМАЕВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

Буду видеть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

@#Pawno, и тогда получеться машина на машине будет если не один спавнит тут вир мир задаёться да? 

CMD:addgarage(playerid, params[])//Создать гараж
{
    new str[1024];
    new query[2000];
	if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Вы не авторизированы!");
	if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, -1, "Используйте: /addgarage [стоимость]");
	ALLGARAGE++;
	new i = ALLGARAGE;
	new Float:POS[3];
	GetPlayerPos(playerid, POS[0], POS[1], POS[2]);
	strmid(Garage[i][gOwner], "None", 0, strlen("None"), MAX_PLAYER_NAME);
	Garage[i][gPrice] = params[0], Garage[i][gInter] = i, Garage[i][gVirtual] = i;
	Garage[i][gX1] = POS[0], Garage[i][gY1] = POS[1], Garage[i][gZ1] = POS[2];
	Garage[i][gX4] = 2346.09, Garage[i][gY4] = -234.782, Garage[i][gZ4] = -32.5;
	format(str, 100, "{FFFFFF}Гараж №%d продается!\nСтоимость: %d", i, Garage[i][gPrice]);
	Garage[i][gText] = Create3DTextLabel(str, -1, Garage[i][gX1], Garage[i][gY1], Garage[i][gZ1], 10.0, 0, 1);
	Garage[i][gPickup] = CreatePickup(1239, 23, Garage[i][gX1], Garage[i][gY1], Garage[i][gZ1]);
	format(query, 1000, "INSERT INTO "TABLE_GARAGE" (ID, Owner, Price) VALUES ('%i', '%s', '%i')", i, Garage[i][gOwner], Garage[i][gPrice]);
	mysql_function_query(dbHandle, query, false, "", "");
	SetGarageFloat(i, "X1", POS[0]), SetGarageFloat(i, "Y1", POS[1]), SetGarageFloat(i, "Z1", POS[2]);
    SetGarageInter(i, "Inter", i), SetGarageInter(i, "Virtual", i);
    format(str, sizeof(str), "Гараж #%d успешно добавлен. Стоимость: %d", i, Garage[i][gPrice]);
	SendClientMessage(playerid, -1, str);
	SendClientMessage(playerid, -1, "Теперь измените координаты появления транспорта при выезде из гаража (/edgarage).");
	return true;
} 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

Ну я точно незнаю , может там по идам , но вероятнее всего если 1 инт для всех гаражей , то машина на машине может быть. 
Проверь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.