Question

Всем привет. Игрок должен сесть в грузовик, ввести /loadgun, и у него появится пикап, куда он должен отнести ящик. Но когда игрок встает с ящиком на пикап - ничего не происходит, как сделать, что бы ящик грузился в грузовик?

CMD:loadgun(playerid)
{
	if(!IsAArmy(playerid) && !IsAMafia(playerid)) return SendClientMessage(playerid, COLOR_DARKORANGE, "Вам недоступна данная функция");
	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
		new vehicleid = GetPlayerVehicleID(playerid);
		if(gVehicleGun[vehicleid][vGunLoading] || gVehicleGun[vehicleid][vGunUnloading]) return SendClientMessage(playerid, COLOR_DARKORANGE, "Авто уже стоит на загрузке / разгрузке");
		gVehicleGun[vehicleid][vGunLoading] = true;
		RemovePlayerFromVehicle(playerid);
		new Float:x, Float:y, Float:z, Float:a;
		GetVehiclePos(vehicleid, x, y, z);
		GetVehicleZAngle(vehicleid, a);
		switch(GetVehicleModel(vehicleid))
		{
		    case 433,578:
		    {
		        x = x - (-6.0*floatsin(a, degrees));
				y = y - 5.5*floatcos(a, degrees);
				gVehicleGun[vehicleid][vGunPickup] = CreateDynamicPickup(1318, 1, x, y, z-0.5); //Пикап грузовиков
		    }
		    case 470,500,482,526,467,587,550,489,580,491:
		    {
		        x = x - (-3.0*floatsin(a, degrees));
				y = y - 3.5*floatcos(a, degrees);
				gVehicleGun[vehicleid][vGunPickup] = CreateDynamicPickup(1318, 1, x, y, z-0.2); //Пикап для легковых авто
		    }
		    default: SendClientMessage(playerid, COLOR_DARKORANGE, "Вы должны быть в машине предназначенной для загрузки!");
		}
		new string[128];
		format(string, sizeof(string), "Метал: {63BD4E}%d\n{FFFFFF}Патронов: {63BD4E}%d", gVehicleGun[vehicleid][vGunGunAmount], gVehicleGun[vehicleid][vGunAmmo]);
		gVehicleGun[vehicleid][vGunText] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, x, y, z+0.5, 20.0);
		gVehicleGun[vehicleid][vGunArea] = CreateDynamicSphere(x, y, z, 1.0);
		print("Itter_Add(VehicleGun, vehicleid);");
		Itter_Add(VehicleGun, vehicleid);
		SendClientMessage(playerid, COLOR_GREEN, "Загрузка началась");
	}
	return 1;
}

 

Share this post


Link to post

12 answers to this question

  • 0

Если я Вас правильно понял. То с помощью паблика OnPlayerPickUpPickup сделайте действия, когда игрок встал на пикап. 

if(pickupid == gVehicleGun[vehicleid][vGunPickup]) 
{ 
	Действие
} 

 

ps: Если же я что-то напутал, извиняйте. 

Share this post


Link to post
  • 0

@Gromov000 Хм, а какое действие записать то..? Надо что бы ящик грузился в грузовик.

Share this post


Link to post
  • 0

@HAPKOMAH, ну, по логике вещей нужно убрать из рук игрока объект ящика, а в машине увеличить количество патронов/оружия на определенные вами цифры. Если этот код из мода Dushevniy/Rayon, проверьте, есть ли у вас такой код (в OnPlayerEnterDynamicArea).

Спойлер

    else if(IsAArmy(playerid) || IsAMafia(playerid)) // тут разгрузка
	{
	    foreach(new vehicleid:VehicleGun)
		{
			if(areaid == gVehicleGun[vehicleid][vGunArea])
			{
       			new string[128];
				if(gVehicleGun[vehicleid][vGunLoading] == true && (GetPVarInt(playerid, "carrygun") || GetPVarInt(playerid, "carryammo")))
				{
					new gunamount = GetPVarInt(playerid, "carrygun");
					new ammo = GetPVarInt(playerid, "carryammo");
					SetPVarInt(playerid, "carrygun", 0);
					SetPVarInt(playerid, "carryammo", 0);
					RemovePlayerAttachedObject(playerid, 3);
					ApplyAnimation(playerid, "CARRY", "putdwn", 1.0, 0, 1, 1, 0, 0, 1);
					if(gVehicleGun[vehicleid][vGunGunAmount] + gunamount > 5000 || gVehicleGun[vehicleid][vGunAmmo] + ammo > 5000) return SendClientMessage(playerid, C_RED, "В транспорте недостаточно места");
					if(gunamount) gVehicleGun[vehicleid][vGunGunAmount] += gunamount;
					if(ammo) gVehicleGun[vehicleid][vGunAmmo] += ammo;
					format(string, sizeof(string), "{FFFFFF}Патронов: {63BD4E}%d", gVehicleGun[vehicleid][vGunAmmo]);
					UpdateDynamic3DTextLabelText(gVehicleGun[vehicleid][vGunText], 0xFFFFFFFF, string);
				}
				else if(gVehicleGun[vehicleid][vGunUnloading] == true && !GetPVarInt(playerid, "carrygun") && !GetPVarInt(playerid, "carryammo"))
				{
					if(gVehicleGun[vehicleid][vGunGunAmount] < 300 && gVehicleGun[vehicleid][vGunAmmo] < 300) return SendClientMessage(playerid, C_RED, "В транспорте недостаточно боеприпасов");
					if(gVehicleGun[vehicleid][vGunGunAmount] >= 300)
					{
						gVehicleGun[vehicleid][vGunGunAmount] -= 300;
						SetPVarInt(playerid, "carrygun", 300);
					}
					if(gVehicleGun[vehicleid][vGunAmmo] >= 300)
					{
						gVehicleGun[vehicleid][vGunAmmo] -= 300;
						SetPVarInt(playerid, "carryammo", 300);
					}
					ApplyAnimation(playerid, "CARRY", "liftup", 1.0, 0, 1, 1, 0, 0, 1);
					
					format(string, sizeof(string), "{FFFFFF}Патронов: {63BD4E}%d", gVehicleGun[vehicleid][vGunAmmo]);
					UpdateDynamic3DTextLabelText(gVehicleGun[vehicleid][vGunText], 0xFFFFFFFF, string);
					
					SetPlayerAttachedObject(playerid,3,2969,1,0.075578,0.407083,0.000000,1.248928,97.393852,359.645050,1.000000,1.000000,1.000000); // ящик
					ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1); // анимация, что несет
					SetTimerEx("CarryDelay", 1000, false, "i", playerid);
					//SetPlayerAttachedObject(playerid, 0, 2358, 6, 0.0, 0.10, -0.2, -110.0, 0.0, 78.0);
				}
				//else SendClientMessage(playerid, COLOR_GREY, "Ошибка");
				return 1;
			}
		}
	}

 

 

Share this post


Link to post
  • 0

@odosenok У, извиняюсь, что так "рано" ответил, просто все равно не мог этим заняться. А теперь по теме.

У меня не эти моды, но похожий. Данного кода не вижу, что в принципе не удивительно. Сейчас попробую и отпишу.

Share this post


Link to post
  • 0

@odosenok Не-а, беру ящик, встаю на пикап, а ничего не меняется.

Share this post


Link to post
  • 0

@HAPKOMAH ну дай код пикапа. По сути, должно быть так: игрок становиться на пикап, из его рук удаляется объект (ящик), мы сбрасываем все анимации, а к машине прикрепляется ящик (если так нужно) или же, просто увеличивается что-либо на определенное количество.

Share this post


Link to post
  • 0

@SCRIPTMAN

CMD:loadgun(playerid)
{
	if(!IsAArmy(playerid) && !IsAMafia(playerid)) return SendClientMessage(playerid, COLOR_DARKORANGE, "Вам недоступна данная функция");
	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
		new vehicleid = GetPlayerVehicleID(playerid);
		if(gVehicleGun[vehicleid][vGunLoading] || gVehicleGun[vehicleid][vGunUnloading]) return SendClientMessage(playerid, COLOR_DARKORANGE, "Авто уже стоит на загрузке / разгрузке");
		gVehicleGun[vehicleid][vGunLoading] = true;
		RemovePlayerFromVehicle(playerid);
		new Float:x, Float:y, Float:z, Float:a;
		GetVehiclePos(vehicleid, x, y, z);
		GetVehicleZAngle(vehicleid, a);
		switch(GetVehicleModel(vehicleid))
		{
		    case 433,578:
		    {
		        x = x - (-6.0*floatsin(a, degrees));
				y = y - 5.5*floatcos(a, degrees);
				gVehicleGun[vehicleid][vGunPickup] = CreateDynamicPickup(1318, 1, x, y, z-0.5); //Пикап грузовиков
		    }
		    case 470,500,482,526,467,587,550,489,580,491:
		    {
		        x = x - (-3.0*floatsin(a, degrees));
				y = y - 3.5*floatcos(a, degrees);
				gVehicleGun[vehicleid][vGunPickup] = CreateDynamicPickup(1318, 1, x, y, z-0.2); //Пикап для легковых авто
		    }
		    default: SendClientMessage(playerid, COLOR_DARKORANGE, "Вы должны быть в машине предназначенной для загрузки!");
		}
		new string[128];
		format(string, sizeof(string), "Металл: {63BD4E}%d\n{FFFFFF}Патронов: {63BD4E}%d", gVehicleGun[vehicleid][vGunGunAmount], gVehicleGun[vehicleid][vGunAmmo]);
		gVehicleGun[vehicleid][vGunText] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, x, y, z+0.5, 20.0);
		gVehicleGun[vehicleid][vGunArea] = CreateDynamicSphere(x, y, z, 1.0);
		print("Itter_Add(VehicleGun, vehicleid);");
		Itter_Add(VehicleGun, vehicleid);
		SendClientMessage(playerid, COLOR_GREEN, "Загрузка началась");
	}
	return 1;
}

 

Share this post


Link to post
  • 0

@HAPKOMAH так это же команда. У тебя по пикапу же?

На этот пикап похоже "gVehicleGun[vehicleid][vGunPickup]"

Share this post


Link to post
  • 0

@SCRIPTMAN Смотри. У меня есть пикап, если на него встать - тебе дают ящик с Патронами.

Потом в грузовике вводишь /loadgun и позади машины появляется еще один пикап ( В него грузить ящики с патронами ). Надеюсь понятно объяснил.

Насчет этого вот, что нашел:

public OnPlayerPickUpPickup(playerid, pickupid)
{
    new vehicleid = GetPlayerVehicleID(playerid);
	if(pickupid == gVehicleGun[vehicleid][vGunPickup])
	{

 

Share this post


Link to post
  • 0

@HAPKOMAH, а вот это условие выполняется, что ты нашел?

Share this post


Link to post
  • 0

@Talex Как это понять?

Share this post


Link to post
  • 0

@HAPKOMAH и что ты мне скинул? Скинь мне код пикапа, который идёт после условия.

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content