Вопросы

Суть в том что в моде есть система гаражей, она существует как дополение (его можно купить в меню). Однако когда в доме нету гаража машина спавнится у дома.

 

P.S. Иметь можно 3 машины :)

P.S.S. Когда гараж есть машина не спавнится вообще!

Отредактировано пользователем Remmi_Feed

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


Ссылка на сообщение

41 ответ на этот вопрос

  • 0

Вверх!

Заметка от Гость , создано

Устное предупреждение, далее рольное! 3.6. Запрещено поднимать (апать) свою тему чаще, чем 1 раз в 24 часа.

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


Ссылка на сообщение
  • 0

тут ванг нету, надо код смотреть 

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


Ссылка на сообщение
  • 0

@MuhammadPawn что именно кидать?

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


Ссылка на сообщение
  • 0

@Remmi_Feed код спавна машины, очевидно. 

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


Ссылка на сообщение
  • 0

Может быть конечно такое по теории:

Есть проверка на то: Если у игрока есть дом, то она спавнится у дома, а другой нет, но можно сделать так:

Если у игрока есть дом, но нет гаража, то оно спавнится у дома.

Если у игрока есть дом и гараж, ну или просто гараж, то оно спавнится в гараже.

Ребят, включайте голову.

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


Ссылка на сообщение
  • 0

@SCRIPTMAN Ребят, вы сказали элементарные вещи. ТС просит, чтобы ему код дали, а не теорию объясняли, которая и так всем ясна.  

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


Ссылка на сообщение
  • 0

@DEST что мешает ее перевести на Pawn?

 

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


Ссылка на сообщение
  • 0

@SCRIPTMAN Ничего не мешает, вы бы лучше вместо очевидных фраз и сделали бы это сразу. А сразу это сделать нельзя, так как не автор пока не прикрепил код, который у него уже запрошен. Вывод = наша реплика имеет 0 ценной информации. 

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


Ссылка на сообщение
  • 0

@DEST Вот код из /fixcar. Загрузка авто нужна?

Команда:

CMD:fixcar(playerid)
{
	if(PlayerInfo[playerid][pCash] < 500) return SendClientMessage(playerid, COLOR_RED, "Не достаточно денег!");
	if(PlayerInfo[playerid][pHouse] == -1) return SCM(playerid, -1, "• {AC0000}[Ошибка] {ffffff}Вы не имеете дома");
	format(stringer, 250, "{"#cBLUE"}Выберите автомобиль для доставки!\n{FFFFFF}Транспортное средство {"#cBLUE"}[%s]\n{FFFFFF}Транспортое средство {"#cBLUE"}[%s]\n{FFFFFF}Транспортое средство {"#cBLUE"}[%s]",VehicleNames[PlayerInfo[playerid][pCar][0]-400],VehicleNames[PlayerInfo[playerid][pCar][1]-400],VehicleNames[PlayerInfo[playerid][pCar][2]-400]);
	SPD(playerid, 8237, DIALOG_STYLE_LIST,"{FF6F00}Служба доставки автомобилей.",stringer,"Принять","Отмена");
	return 1;
}

case 8237

	case 8237:
		{
			if(!response) return 1;
			if(!listitem) return cmd::fixcar(playerid);
			return LoadCarPlayer(playerid, listitem);
		}

Вот еще что-то из LoadCarPlayer

if(PlayerInfo[playerid][pHouse] != -1 && PlayerInfo[playerid][pSpawn] == 1 && !GetPVarInt(playerid, "BasePopitka") && !GetPVarInt(playerid, "baseBB"))
	{
		new house = PlayerInfo[playerid][pHouse];
		SetPlayerInterior(playerid,HouseInfo[house][hInt]);
		SetPlayerPosEx(playerid, HouseInfo[house][hExit][0], HouseInfo[house][hExit][1],HouseInfo[house][hExit][2]); // Warp the player
		PlayerInfo[playerid][pLocal] = house;
		SetPlayerVirtualWorld(playerid, house+50);
		LoadCarPlayer(playerid, 1); LoadCarPlayer(playerid, 2); LoadCarPlayer(playerid, 3);
		return 1;
	}

ну и на всякий случай сам LoadCarPlayer

stock LoadCarPlayer(playerid, carid)
{
	if(PlayerInfo[playerid][pHouse] == -1) return 1;
	new house = PlayerInfo[playerid][pHouse];
	if(caridhouse[playerid][carid-1] != 0) DestroyVehicleEx(caridhouse[playerid][carid-1]), caridhouse[playerid][carid-1] = 0;
	if(HouseInfo[house][hGarage])
	{
	    switch(carid)
	    {
	    	case 1: caridhouse[playerid][0] = CreateVehicleEx(PlayerInfo[playerid][pCar][carid-1], 1767.3323,-1909.7667,498.2790,299.1555, vehicle_components_add[playerid][carid-1][0] ,vehicle_components_add[playerid][carid-1][1], 7200);
	    	case 2: caridhouse[playerid][1] = CreateVehicleEx(PlayerInfo[playerid][pCar][carid-1], 1786.7787,-1909.7526,498.2790,306.0369, vehicle_components_add[playerid][carid-1][0] ,vehicle_components_add[playerid][carid-1][1], 7200);
			case 3: caridhouse[playerid][2] = CreateVehicleEx(PlayerInfo[playerid][pCar][carid-1], 1783.1346,-1897.0148,498.2790,239.1440, vehicle_components_add[playerid][carid-1][0] ,vehicle_components_add[playerid][carid-1][1], 7200);
		}
		VehInfo[caridhouse[playerid][carid-1]-1][vDrived] = HouseInfo[house][CarDrived][carid-1];
		LinkVehicleToInterior(caridhouse[playerid][carid-1], 1);
		SetVehicleVirtualWorld(caridhouse[playerid][carid-1], house+50);
		SetVehicleNumberPlate(caridhouse[playerid][carid-1], NumberVehicle[playerid][carid-1]);
	   	for(new i = 0, b = 12; i != 3; i++)
		{
			if(!i && vehicle_components_add[playerid][carid-1][b]) AddVehicleComponent (caridhouse[playerid][carid-1], vehicle_components_add[playerid][carid-1][b]), AddVehicleComponent (caridhouse[playerid][carid-1], vehicle_components_add[playerid][carid-1][b+1]);
			if(i < 2) ChangeVehicleColor(caridhouse[playerid][carid-1], vehicle_components_add[playerid][carid-1][i],vehicle_components_add[playerid][carid-1][i]);
			else if(i > 2 && vehicle_components_add[playerid][carid-1][i]) AddVehicleComponent (caridhouse[playerid][carid-1], vehicle_components_add[playerid][carid-1][i]);
		}
		if(PJ(caridhouse[playerid][carid-1]))
		{
			for(new i = 3; i != 11; i++)
			{
	  			if(i & 3) ChangeVehiclePaintjob(caridhouse[playerid][carid-1], vehicle_components_add[playerid][carid-1][i]);
				else if(i != 3 && vehicle_components_add[playerid][carid-1][i]) AddVehicleComponent (caridhouse[playerid][carid-1], vehicle_components_add[playerid][carid-1][i]);
			}
		}
	}
	else
	{
		caridhouse[playerid][0] = CreateVehicleEx(PlayerInfo[playerid][pCar][carid-1], HouseInfo[house][hCar][0],HouseInfo[house][hCar][1],HouseInfo[house][hCar][2],HouseInfo[house][hCar][3], vehicle_components_add[playerid][carid-1][0] ,vehicle_components_add[playerid][carid-1][1], 7200);
		VehInfo[caridhouse[playerid][0]-1][vDrived] = HouseInfo[house][CarDrived][carid-1];
		LinkVehicleToInterior(caridhouse[playerid][0], 0);
		SetVehicleVirtualWorld(caridhouse[playerid][0], 0);
		SetVehicleNumberPlate(caridhouse[playerid][0], NumberVehicle[playerid][carid-1]);
		for(new i = 0, b = 12; i != 3; i++)
		{
			if(!i && vehicle_components_add[playerid][carid-1][b]) AddVehicleComponent (caridhouse[playerid][0], vehicle_components_add[playerid][carid-1][b]), AddVehicleComponent (caridhouse[playerid][0], vehicle_components_add[playerid][carid-1][b+1]);
			if(i < 2) ChangeVehicleColor(caridhouse[playerid][0], vehicle_components_add[playerid][carid-1][i],vehicle_components_add[playerid][carid-1][i]);
			else if(i > 2 && vehicle_components_add[playerid][carid-1][i]) AddVehicleComponent (caridhouse[playerid][0], vehicle_components_add[playerid][carid-1][i]);
		}
		if(PJ(caridhouse[playerid][0]))
		{
			for(new i = 3; i != 11; i++)
			{
			    if(i & 3) ChangeVehiclePaintjob(caridhouse[playerid][0], vehicle_components_add[playerid][carid-1][i]);
				else if(i != 3 && vehicle_components_add[playerid][carid-1][i]) AddVehicleComponent (caridhouse[playerid][0], vehicle_components_add[playerid][carid-1][i]);
			}
		}
	}
	LockCar(caridhouse[playerid][carid-1]);
	VehInfo[caridhouse[playerid][carid-1]][vFuel] = 50;
	PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
	return 1;
}

ну и на всякий случай спавн авто:

public OnVehicleSpawn(vehicleid)
{
	UpdateVehiclePos(vehicleid,false);
	VehHealth[vehicleid]=1000;
	if(gVehicleGun[vehicleid][vGunLoading] || gVehicleGun[vehicleid][vGunUnloading])
	{
		gVehicleGun[vehicleid][vGunGunAmount] = 0;
		gVehicleGun[vehicleid][vGunLoading] = false;
		gVehicleGun[vehicleid][vGunUnloading] = false;
		if(gVehicleGun[vehicleid][vGunText] != Text3D:INVALID_3DTEXT_ID) DestroyDynamic3DTextLabel(gVehicleGun[vehicleid][vGunText]);
		gVehicleGun[vehicleid][vGunText] = Text3D:INVALID_3DTEXT_ID;
		DestroyDynamicArea(gVehicleGun[vehicleid][vGunArea]);
		DestroyDynamicPickup(gVehicleGun[vehicleid][vGunPickup]);
		gVehicleGun[vehicleid][vGunArea] = 0;
		gVehicleGun[vehicleid][vGunPickup] = 0;
	}
	VehInfo[vehicleid][vFuel] = 50;
	if(Taxi_Duty[vehicleid]) Taxi_Duty[vehicleid] = 0;
	if(Start{vehicleid} == true)
	{
		DestroyDynamic3DTextLabel(mats3Dtxt[vehicleid]);
		DestroyPickup(autopick_mats[vehicleid]);
		Start{vehicleid} = false;
	}
	foreach(new i: Player)
	{
		if(vehicleid == caridhouse[i][0]) LoadCarPlayer(i, 1);
		else if(vehicleid == caridhouse[i][2]) LoadCarPlayer(i, 2);
		else if(vehicleid == caridhouse[i][3]) LoadCarPlayer(i, 3);
		if(PlayerInfo[i][pAvia] != -1 && vehicleid == caridhouse[i][1]) DestroyVehicleEx(vehicleid), caridhouse[i][1]=0;
		if(GetPVarInt(i, #arenda_took) == vehicleid && GetPVarInt(i, #arenda_took) && GetPVarInt(i, #check_arenda_moped))
		{
			DestroyVehicleEx(vehicleid);
			DeletePVar(i, #arenda_took);
			DeletePVar(i, #check_arenda_moped);
			SendClientMessage(i,COLOR_GREY,"Ваш арендованый мопед был удален!");
			break;
		}
	}
	if(vehicleid == fbicar[2])
	{
		police[fbicar[2]] = CreateObject(19419,0,0,0,0,0,0,100.0);
		AttachObjectToVehicle(police[fbicar[2]], fbicar[2], 0.0, 0.0, 0.85, 0.0, 0.0, 0.0);
		AddVehicleComponent(fbicar[2], 1010);
		AddVehicleComponent(fbicar[2], 1170);
		AddVehicleComponent(fbicar[2], 1029);
		AddVehicleComponent(fbicar[2], 1030);
		AddVehicleComponent(fbicar[2], 1031);
		AddVehicleComponent(fbicar[2], 1033);
		AddVehicleComponent(fbicar[2], 1139);
		AddVehicleComponent(fbicar[2], 1140);
	}
	else if(vehicleid == fbicar[3])
	{
		police[fbicar[3]] = CreateObject(19419,0,0,0,0,0,0,100.0);
		AttachObjectToVehicle(police[fbicar[3]], fbicar[3], 0.0, 0.0, 0.85, 0.0, 0.0, 0.0);
		AddVehicleComponent(fbicar[3], 1010);
		AddVehicleComponent(fbicar[3], 1170);
		AddVehicleComponent(fbicar[3], 1029);
		AddVehicleComponent(fbicar[3], 1030);
		AddVehicleComponent(fbicar[3], 1031);
		AddVehicleComponent(fbicar[3], 1033);
		AddVehicleComponent(fbicar[3], 1139);
		AddVehicleComponent(fbicar[3], 1140);
	}
	else if(vehicleid == fbicar[4])
	{
		police[fbicar[4]] = CreateObject(19419,0,0,0,0,0,0,100.0);
		AttachObjectToVehicle(police[fbicar[4]], fbicar[4], 0.0, 0.0, 0.85, 0.0, 0.0, 0.0);
		AddVehicleComponent(fbicar[4], 1010);
		AddVehicleComponent(fbicar[4], 1170);
		AddVehicleComponent(fbicar[4], 1029);
		AddVehicleComponent(fbicar[4], 1030);
		AddVehicleComponent(fbicar[4], 1031);
		AddVehicleComponent(fbicar[4], 1033);
		AddVehicleComponent(fbicar[4], 1139);
		AddVehicleComponent(fbicar[4], 1140);
	}
	return 1;
}

Вроде все

Заметка от Гость , создано

3.2. Код больше 10 строк брать еще и под спойлер

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


Ссылка на сообщение
  • 0
  В 11/9/2017 в 04:44, Remmi_Feed сказал:

1767.3323,-1909.7667,498.2790,299.1555

Читать далее...  

Это что за координаты? Тпхнитесь туда, смените себе интерьер на 1 и виртуальный мир на 51 и проверьте. Скорее всего, это как раз таки гараж. 

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


Ссылка на сообщение
  • 0

@DEST это и есть гараж (проверил через редактор), как сделать так чтобы машины там появлялись?

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


Ссылка на сообщение
  • 0

@Remmi_Feed по коду они там и должны появляться. Скорее всего вы ее просто не видите, из-за того что разные интерьеры или виртуальные миры.

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


Ссылка на сообщение
  • 0

@stibs это я понимаю а где менять инт? На пикапе?

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


Ссылка на сообщение
  • 0

@Remmi_Feed там где вход в гараж для игрока идет, там и смотри какой вирт. мир ставится, или просто скинь код появления в гараже.

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


Ссылка на сообщение
  • 0

@stibs 

  Код (открыть спойлер)

 

  код (открыть спойлер)

 

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


Ссылка на сообщение
  • 0

@stibs первый код

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


Ссылка на сообщение
  • 0

Попробовал поставить SetPlayerInterior(playerid, -1); эффекта нету. Хелп

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


Ссылка на сообщение
  • 0

@Remmi_Feed Если по коду должно все работать, а на деле ничего не работает, значит будем действовать методом отладки.

Свой код входа в гараж заменить: 

  Код (открыть спойлер)

Половину стока LoadCarPlayer (до else) заменить: 

  Код (открыть спойлер)

Потом вызовите два данных кода и скиньте логи. И там уже поймем где ошибка. 

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


Ссылка на сообщение
  • 0

@DEST вот то что получилось

  консоль (открыть спойлер)

 

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


Ссылка на сообщение
  • 0

@Remmi_Feed Теперь киньте эту команду себе в мод, и с помощью нее телепортируйтесь к авто с ид 396, 397 или 398. И посмотрите где они заспавнились: 
 

CMD:gotocar(playerid, params[])
{
	if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, -1, "Ввести: /gotocar [id car]");
	new Float:X, Float:Y, Float:Z; 
	GetVehiclePos(params[0], X, Y, Z); 
	SetPlayerPos(playerid, X, Y, Z); 
	SetPlayerInterior(playerid, 1); 
	SetPlayerVirtualWorld(playerid, GetVehicleVirtualWorld(params[0])); 
	SendClientMessage(playerid, -1, "Успешная телепортация!");
  	printf("%d - virt world", GetPlayerVehicleVirtualWorld(params[0]));
	return true; 
}

И если увидите машину, опять скиньте логи. 

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


Ссылка на сообщение
  • 0

@DEST undefined symbol "GetPlayerVehicleVirtualWorld"

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


Ссылка на сообщение
  • 0

@Remmi_Feed опечатка, замените на GetVehicleVirtualWorld

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


Ссылка на сообщение
  • 0

@DEST я уж догадался

@DEST меня телепортировало в гараж однако там машин нету

  консоль (открыть спойлер)

 

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


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

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

  • Похожий контент

    • djxxx
      От djxxx
      приветствую всех.
       
      Задался таким вопросом при добавлении одной системы на DIALOG_STYLE_TABLIST_HEADERS.
       
      Суть проблемы в том, что диалог не выравнивается под нужные показатели, а просто как будто находиться по середине, в диалоге используется \t, но они особо не помогают в решении, также не ровно.
       
      а если попытаться выравнивать большим количеством \t, оно компилируется но в игре происходят вылеты
       
      Код такой:
       
      DialogAdmShop
      (
      playerid, DIALOG_EPOINTSHOP, DIALOG_STYLE_TABLIST_HEADERS,
      fmt_str,
      ""BR"номер\t"BR"наименование\t"BR"доступное действие\n"\
      "{EB4C42}#1\t{FFFFFF}Виртуальная валюта\t{888888}нажмите для взаимодействия\n"\
      "{EB4C42}#2\t{FFFFFF}Донат валюта\t{888888}нажмите для взаимодействия\n"\
      "{EB4C42}#3\t{FFFFFF}Вип статусы\t{888888}нажмите для взаимодействия\n"\
      "{EB4C42}#4\t{FFFFFF}Кейсы\t{888888}нажмите для взаимодействия\n"\
      "{EB4C42}#5\t{FFFFFF}Уникальные аксессуары\t{888888}нажмите для взаимодействия",
      "Выбрать", "Закрыть"
      );
      }
       
      сток dialogadmshop:
       
      stock DialogAdmShop(playerid, dialogid, style, title[], text[], button[], button2[])
      {
        if(style == 5)
        {
           ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "...", "...", "...", ""); 
        }
        ShowPlayerDialog(playerid, dialogid, style, title, text, button, button2);
        return 1;
      }