Вопросы

archiboy6
Гуру форума

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

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

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


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

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

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

@stibs Ну что?

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

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

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


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

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

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

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

Спойлер

if(pickupid == ID пикапа)
{
  	/*МЕСТО ДЛЯ ДОПОЛНИТЕЛЬНЫХ ПРОВЕРОК*/
	if(PI[playerid][pTruckSkill] == TRUCK_LEVEL_2)
	{	
		veh_dalnoboy[playerid] = CreateVehicle(id машины, X, Y, Z, Angle, -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 

    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 Попробуйте свой код заменить этим: 
 

Спойлер

    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 уровня дальнобойщика
	} 
	else
	{
		veh_dalnoboy[playerid] = CreateVehicle(515, 1746.5354,2263.7712,16.5069, 187.3303, -1, -1, -1); //выдаем машину для 1 уровня дальнобойщика
	}
	PI[playerid][pMember] -= 1500;
	GivePlayerMoney(playerid, -1500);
	SendClientMessage(playerid, -1, "Вы получили машину!");
	PutPlayerInVehicle(playerid, veh_dalnoboy[playerid], 0); // сажаем в созданную машину
	return true;
}

Во втором случае (для первого лвл'а дальнобойщика) на свои координаты. 

 

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


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

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

Спойлер

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

 

 

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


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

@stibs 

Спойлер

[21:20:37] [MySQL]: Подключение к базе данных прошло успешно
[21:20:37] Number of vehicle models: 7
[21:20:37] [Загружено орг/раб. автомобилей]: <135>. Потрачено: <4 ms>.
[21:20:37] [Загружено рангов для фракций]: <13>. Потрачено: <0 ms>.
[21:20:37] [Загружено бизнесов]: <4>. Потрачено: <1 ms>.
[21:20:37] [Загружено домов]: <2>. Потрачено: <0 ms>.
[21:20:37] [Загружены склады мафий]: Потрачено: <0 ms>.
[21:20:37] [Загружены склады ОПГ]: Потрачено: <0 ms>.
[21:20:37] [Загружено банкоматов]: <3>. Потрачено: <0 ms>.
[21:20:37] [Загружено остальное]: Потрачено: <0 ms>.
[21:20:37] [Загружено радаров]: <2>. Потрачено: <0 ms>.
[21:20:37] [System Hotels]: 50 hotels successfully loaded
[21:20:58] Incoming connection: 188.190.192.193:53100
[21:20:58] [join] Evgeniy_Samsonov has joined the server (0:188.190.192.193)
[21:21:35] Пикап вызван
[21:21:35] 0
[21:21:35] vehicle created

 

 

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


Ссылка на сообщение
  • 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

Спойлер

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, "Да", "Нет");
						}
					}
				}

 

 

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


Ссылка на сообщение
  • 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 пользователей онлайн

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

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

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба