Вопросы

archiboy6
Гуру форума

Как сделать что бы машину получить через пикап например встал на пикап заплатил 1500р и появилась машина в определенном месте, у меня 2 лвл автомобилей дальнобойщиков trucker1lvl и trucker2lvl

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

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


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

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

  • 0
archiboy6
Гуру форума

@stibs Ну что?

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

2.17. Запрещено флудить, оффтопить, заниматься флеймом.

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


Ссылка на сообщение
  • 0
Гость stibs
Новичок

@archiboy6 Это форум, тут не нужно ждать ежеминутного ответа. В дальнейшем, такие сообщения будут приравнены к оффтопу. 

@stibs Я вам давал правильный варинант ответа. Вы его сами заменили на неверный. Если в дальнейшем это будет продолжаться, я буду закрывать темы. 

Вот правильный вариант, тут нужно всего лишь ПОДСТАВИТЬ свои данные, а не менять всю структуру кода. 

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

 

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


Ссылка на сообщение
  • 0
archiboy6
Гуру форума

@stibs 

    if(pickupid == dalnoboypick)
{
  	if(PI[playerid][pJob] != JOB_TRUCKER)
	{
      SCM(playerid, COLOR_DARKORANGE, "Вы не дальнобойщик!");
      SCM(playerid, COLOR_DARKORANGE, "Устроиться на работу можно в правительстве (/gps - 1 - 1).");
	  RemoveFromVehicle(playerid);
	  return 1;
	}
	if(PI[playerid][pTruckSkill] == TRUCK_LEVEL_2)
	{
		veh_dalnoboy[playerid] = CreateVehicle(515, 1746.5354,2263.7712,16.5069, 187.3303, -1, -1, -1); //выдаем машину для 2 уровня дальнобойщика
	} // по аналогии продолжать далее, оставил один, так как в моде только один уровень дальнобойщиков
	PI[playerid][pMember] -= 1500;
	GivePlayerMoney(playerid, -1500);
	SendClientMessage(playerid, -1, "Вы получили машину!");
	PutPlayerInVehicle(veh_dalnoboy[playerid], playerid, 0); // сажаем в созданную машину
	return true;
}

Так правильно?

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


Ссылка на сообщение
  • 0
archiboy6
Гуру форума

@stibs Теперь, машина не появляется, но деньги снимаются может нужно не CreateVehicle? использовать

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


Ссылка на сообщение
  • 0
Гость stibs
Новичок

Попробуйте свой код заменить на этот и попробовать еще раз: 
 

    if(pickupid == dalnoboypick)
{
  	if(PI[playerid][pJob] != JOB_TRUCKER)
	{
      SCM(playerid, COLOR_DARKORANGE, "Вы не дальнобойщик!");
      SCM(playerid, COLOR_DARKORANGE, "Устроиться на работу можно в правительстве (/gps - 1 - 1).");
	  RemoveFromVehicle(playerid);
	  return 1;
	}
	if(PI[playerid][pTruckSkill] == TRUCK_LEVEL_2)
	{
		veh_dalnoboy[playerid] = CreateVehicle(515, 1746.5354,2263.7712,16.5069, 187.3303, -1, -1, -1); //выдаем машину для 2 уровня дальнобойщика
	} // по аналогии продолжать далее, оставил один, так как в моде только один уровень дальнобойщиков
	PI[playerid][pMember] -= 1500;
	GivePlayerMoney(playerid, -1500);
	SendClientMessage(playerid, -1, "Вы получили машину!");
	PutPlayerInVehicle(playerid, veh_dalnoboy[playerid], 0); // сажаем в созданную машину
	return true;
}

 

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


Ссылка на сообщение
  • 0
archiboy6
Гуру форума

@stibs 

CMD:tskill(playerid)
{
	new string[128], status[20], count[40], target;
	if(PI[playerid][pTruckSkill] >= TRUCK_LEVEL_2) { status = "Стабильный работник"; target = 0; }
	else { status = "Начинающий работник"; target = TRUCK_LEVEL_2; }
	if(!target) format(count, sizeof(count), "%d", PI[playerid][pTruckSkill]);
	else format(count, sizeof(count), "%d/%d", PI[playerid][pTruckSkill], target);
	format(string, sizeof(string),"{FFFFFF}Статус: %s\nПеревезено груза: %s кг", status, count);
	ShowPlayerDialog(playerid, D_NULL, DIALOG_STYLE_MSGBOX, "{ffa500}Дальнобойщик", string, "Закрыть", "");
	return 1;
}

Может все таки лвл 2?

 

@stibs И из-за того этого не выдает авто

@stibs Вот проверка на ЛВЛ есть

new trucklevel, price;
						if(vehicleid >= trucker1lvl[0] && vehicleid <= trucker1lvl[1]) { trucklevel = 1; price = 200; }
						else if(vehicleid >= trucker2lvl[0] && vehicleid <= trucker2lvl[1]) { trucklevel = 2; price = 300; }
						if((trucklevel == 2 && PI[playerid][pTruckSkill] < TRUCK_LEVEL_2))
						{
							SCM(playerid, COLOR_GREY, "Ваш опыт работы дальнобойщиком не достаточен для этого транспорта");
							RemoveFromVehicle(playerid);
							return 1;
						}

 

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


Ссылка на сообщение
  • 0
Гость stibs
Новичок

@archiboy6 Попробуйте свой код заменить этим: 
 

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

 

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


Ссылка на сообщение
  • 0
Гость stibs
Новичок

@archiboy6 Свой код замените этим, после вызовите его в игре и скиньте логи. 

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

 

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


Ссылка на сообщение
  • 0
archiboy6
Гуру форума

@stibs 

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

 

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


Ссылка на сообщение
  • 0
archiboy6
Гуру форума

@stibs В моде у меня созданы вот так AddStaticVehicleEx другие авто

@stibs AddVehicleEX может попробовать? 

 

@archiboy6 Нет, все таки CreateVehicleEx я тут посмотрел у меня так прицеп создается, сейчас проверю

@archiboy6 Да все работает, Это удалять можно?

if((vehicleid >= trucker1lvl[0] && vehicleid <= trucker1lvl[1]) || (vehicleid >= trucker2lvl[0] && vehicleid <= trucker2lvl[1]))
					{
						if(PI[playerid][pJob] != JOB_TRUCKER)
						{
						    SCM(playerid, COLOR_DARKORANGE, "Вы не дальнобойщик!");
						    SCM(playerid, COLOR_DARKORANGE, "Устроиться на работу можно в правительстве (/gps - 1 - 1).");
							RemoveFromVehicle(playerid);
							return 1;
						}
						new trucklevel, price;
						if(vehicleid >= trucker1lvl[0] && vehicleid <= trucker1lvl[1]) { trucklevel = 1; price = 200; }
						else if(vehicleid >= trucker2lvl[0] && vehicleid <= trucker2lvl[1]) { trucklevel = 2; price = 300; }
						if((trucklevel == 2 && PI[playerid][pTruckSkill] < TRUCK_LEVEL_2))
						{
							SCM(playerid, COLOR_GREY, "Ваш опыт работы дальнобойщиком не достаточен для этого транспорта");
							RemoveFromVehicle(playerid);
							return 1;
						}
						if(GetMoney(playerid) < price)
						{
							new string[128];
							format(string, sizeof(string), "Вам нужно %d руб, чтобы арендовать этот грузовик", price);
							SCM(playerid, COLOR_GREY, string);
							RemoveFromVehicle(playerid);
							return 1;
						}
						SetPVarInt(playerid, "truckprice", price);
						new string[150];
						if(PI[playerid][TruckerCarID] == vehicleid) { }
						else
						{
						    SetTimerEx("CheckRentCar",8000,0,"i",playerid);
							format(string, sizeof(string), "{ffffff}Вы хотите арендовать данный тягач?\nСтоимость аренды: {33ccff}%i руб", price);
							ShowPlayerDialog(playerid, 11212, DIALOG_STYLE_MSGBOX, "{ffa500}Аренда", string, "Да", "Нет");
						}
					}
				}

 

@stibs

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

 

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


Ссылка на сообщение
  • 0
Гость stibs
Новичок

@archiboy6 не нужно много раз одно и то же писать, система анти-спам объединяет ваши сообщения автоматически. Насчет этого кода, то можете удалить. 

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


Ссылка на сообщение
  • 0
archiboy6
Гуру форума

@stibs Хорошо, помогите еще сделать так что когда игрок вышел из авто через 60 сек оно удалялось

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


Ссылка на сообщение
  • 0
Гость stibs
Новичок

@archiboy6 В OnPlayerExitVehicle: 
 

if(PI[playerid][pJob] == JOB_TRUCK)
{
	SendClientMessage(playerid, -1, "Вы покинули авто дальнобойщика. У вас осталось 60 секунд или машина будет зареспавнена!");
	SetTimerEx("ExitVehicleTruck", 60*1000, false, "ii", playerid, vehicleid); 
	return true; 
}

И в конце мода: 
 

forward ExitVehicleTruck(playerid, carr);
public ExitVehicleTruck(playerid, carr)
{
	SetVehicleToRespawn(carr); 
	SendClientMessage(playerid, -1, "Ваш автомобиль зареспавнен!");
	return true; 
}

 

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


Ссылка на сообщение
  • 0
archiboy6
Гуру форума

@stibs Теперь когда устроен дальнобойщиком и выхожу с любой машины, она спавнится, и мне надо не спавн а удаление 

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


Ссылка на сообщение
  • 0
archiboy6
Гуру форума

@DEST  когда устроен дальнобойщиком и выхожу с любой машины пишет

Вы покинули авто дальнобойщика. У вас осталось 60 секунд или машина будет зареспавнена!

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


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

@archiboy6

Замените свой код в OnPlayerExitVehicle на данный: 

if(PI[playerid][pJob] == JOB_TRUCK && vehicleid >= trucker1lvl[0] && vehicleid <= trucker1lvl[1]) || vehicleid >= trucker2lvl[0] && vehicleid <= trucker2lvl[1])
{
	SendClientMessage(playerid, -1, "Вы покинули авто дальнобойщика. У вас осталось 60 секунд или машина будет зареспавнена!");
	SetTimerEx("ExitVehicleTruck", 60*1000, false, "ii", playerid, vehicleid); 
	return true; 
}

Так попробуй

 

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


Ссылка на сообщение
  • 0
archiboy6
Гуру форума

@DEST 

D:\GHEKA\Моды\AVRP\gamemodes\stel.pwn(34113) : warning 217: loose indentation
D:\GHEKA\Моды\AVRP\gamemodes\stel.pwn(37496) : warning 217: loose indentation
D:\GHEKA\Моды\AVRP\gamemodes\stel.pwn(39968) : warning 217: loose indentation
D:\GHEKA\Моды\AVRP\gamemodes\stel.pwn(39968) : error 017: undefined symbol "JOB_TRUCK"
D:\GHEKA\Моды\AVRP\gamemodes\stel.pwn(39968) : warning 215: expression has no effect
D:\GHEKA\Моды\AVRP\gamemodes\stel.pwn(39968) : error 001: expected token: ";", but found "]"
D:\GHEKA\Моды\AVRP\gamemodes\stel.pwn(39968) : error 029: invalid expression, assumed zero
D:\GHEKA\Моды\AVRP\gamemodes\stel.pwn(39968) : fatal error 107: too many error messages on one line






if(PI[playerid][pJob] == JOB_TRUCK && vehicleid >= trucker1lvl[0] && vehicleid <= trucker1lvl[1]) || vehicleid >= trucker2lvl[0] && vehicleid <= trucker2lvl[1])

 

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


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

@archiboy6 Так сделайте: 
 

if((vehicleid >= trucker1lvl[0] && vehicleid <= trucker1lvl[1]) || (vehicleid >= trucker2lvl[0] && vehicleid <= trucker2lvl[1]))
{
    if(PI[playerid][pJob] != JOB_TRUCK) return SendClientMessage(playerid, -1, "Вы не работаете дальнобойщиком!");

    SendClientMessage(playerid, -1, "Вы покинули авто дальнобойщика. У вас осталось 60 секунд или машина будет зареспавнена!");
    SetTimerEx("ExitVehicleTruck", 60*1000, false, "ii", playerid, vehicleid); 
    return true; 
}

Если будут ошибки на JOB_TRUCK, значит верните его в мод и не сносите больше. 

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


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

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

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

    • migghty
      От migghty
      Ищу кодера, который допилит мод под мою идею SAMP 0.3.7
    • lisicaf
      От lisicaf
      Всех приветствую и заранее спасибо за любую оказанную помощь.
      Суть: Аризона выпускает новое обновление в котором меняет CEF доната(скрин ниже), каким образом можно его скопировать и перенести к себе в мод Аризоны?