Перейти к содержанию
Wolker2019

проблема с тиром

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

Wolker2019

у меня такая проблема с тиром когда захожу в тир то нету не пикапа не текста откуда стрелять оно просто не отображается мод Аризона переведенная в crmp 0.3e. Помогите решить эту проблему.

вот код это тут координаты

enum tirinfo
{
Float:tirPos[3],
Float:tirTPos[6],
	tirInt,
	tirWorld
}
new TirInfo[8][tirinfo] =
{
	{ 	{289.20,-24.89,1001.0},	{289.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 0	},
	{ 	{290.79,-24.89,1001.0},	{290.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 0	},
	{ 	{292.20,-24.89,1001.0},	{292.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 0	},
	{ 	{293.70,-24.89,1001.0},	{293.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 0	},
	{ 	{295.29,-24.89,1001.0},	{295.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 0	},
	{ 	{296.79,-24.89,1001.0},	{296.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 0	},
	{ 	{298.29,-24.89,1001.0},	{298.10000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 0	},
	{ 	{299.79,-24.89,1001.0},	{299.60000610,-7.7,1000.5,270.0,0.0,0.0}, 1, 0	}
};

вот весь остальной код

	for(new i;i < sizeof(TirInfo);i ++)
	{
		Tir_CP[i] = CreateDynamicCP(TirInfo[i][tirPos][0], TirInfo[i][tirPos][1], TirInfo[i][tirPos][2], 1.0, TirInfo[i][tirWorld], TirInfo[i][tirInt], -1, 10.0);
		TirText[i] = CreateDynamic3DTextLabel("-== Тир ==-\n\n{FFFFFF}Встаньте сюда чтобы стрелять",COLOR_GOLD,TirInfo[i][tirPos][0], TirInfo[i][tirPos][1], TirInfo[i][tirPos][2],5.0,INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, TirInfo[i][tirWorld], TirInfo[i][tirInt]);
		Target_Object[i] = CreateObject(TARGET_MODEL, TirInfo[i][tirTPos][0], TirInfo[i][tirTPos][1], TirInfo[i][tirTPos][2], TirInfo[i][tirTPos][3], TirInfo[i][tirTPos][4], TirInfo[i][tirTPos][5]);
	}
		if(i < sizeof(TirInfo))
		{
			if(!TirBusy[i]) TogglePlayerDynamicCP(playerid, Tir_CP[i], true);
			else TogglePlayerDynamicCP(playerid, Tir_CP[i], false);
		}
	}
		if(PlayerTir[playerid] == -1)
		{
			for(new i;i < sizeof(TirInfo);i ++)
			{
				if(checkpointid == Tir_CP[i]) return ShowTirTutDialog(playerid, i);
			}
		}
			if(PlayerTir[playerid] != -1)
			{
				new tir = PlayerTir[playerid];
				if(IsPlayerInRangeOfPoint(playerid, 2.0, TirInfo[tir][tirPos][0], TirInfo[tir][tirPos][1], TirInfo[tir][tirPos][2]))
				{
					new ammo = GetPlayerAmmo(playerid);
					if(TargetGo[tir])
					{
						new Float:X, Float:Y, Float:Z;
						GetObjectPos(Target_Object[tir], X, Y, Z);
						SetPlayerArmedWeapon(playerid, TirGun[playerid]);
						if(ammo < TirAmmo[playerid])
						{
							if(GetPlayerWeapon(playerid) == TirGun[playerid])
							{
								if(IsPlayerAimingAt(playerid, X-0.28, Y, Z+1.70, 0.18))
								{
									HitCount[playerid][0] += (TirAmmo[playerid] - ammo);
									if(HitCount[playerid][0] >= TargetFireCount(TirGun[playerid]))
									{
										TextDrawShowForPlayer(playerid, TirDraw[0]);
										HitPoint[playerid][0] = true;
										HitCount[playerid][0] = 0;
										CheckHit(playerid);
									}
								}
								else if(IsPlayerAimingAt(playerid, X-0.085, Y, Z+0.89, 0.2))
								{
									HitCount[playerid][1] += (TirAmmo[playerid] - ammo);
									if(HitCount[playerid][1] >= TargetFireCount(TirGun[playerid]))
									{
										TextDrawShowForPlayer(playerid, TirDraw[1]);
										HitPoint[playerid][1] = true;
										HitCount[playerid][1] = 0;
										CheckHit(playerid);
									}
								}
								else if(IsPlayerAimingAt(playerid, X+0.49, Y, Z+0.89, 0.2))
								{
									HitCount[playerid][2] += (TirAmmo[playerid] - ammo);
									if(HitCount[playerid][2] >= TargetFireCount(TirGun[playerid]))
									{
										TextDrawShowForPlayer(playerid, TirDraw[2]);
										HitPoint[playerid][2] = true;
										HitCount[playerid][2] = 0;
										CheckHit(playerid);
									}
								}
								else if(IsPlayerAimingAt(playerid, X-0.1, Y, Z+0.34, 0.2))
								{
									HitCount[playerid][3] += (TirAmmo[playerid] - ammo);
									if(HitCount[playerid][3] >= TargetFireCount(TirGun[playerid]))
									{
										TextDrawShowForPlayer(playerid, TirDraw[3]);
										HitPoint[playerid][3] = true;
										HitCount[playerid][3] = 0;
										CheckHit(playerid);
									}
								}
								else if(IsPlayerAimingAt(playerid, X+0.52, Y, Z+0.32, 0.2))
								{
									HitCount[playerid][4] += (TirAmmo[playerid] - ammo);
									if(HitCount[playerid][4] >= TargetFireCount(TirGun[playerid]))
									{
										TextDrawShowForPlayer(playerid, TirDraw[4]);
										HitPoint[playerid][4] = true;
										HitCount[playerid][4] = 0;
										CheckHit(playerid);
									}
								}
							}
						}
					}
					else if(StartCount[playerid] > 1)SetPlayerArmedWeapon(playerid, 0);
					TirAmmo[playerid] = ammo;
				}
				else CheckTir(playerid);
CheckTir(playerid)
{
	new tir = PlayerTir[playerid];
	if(tir != -1)
	{
		if(TirBusy[tir])
		{
			TirBusy[tir] = false;
			TargetTimer[tir] = -1;
			TargetGo[tir] = false;
			PI[playerid][oInTir]=0;
			if(TargetTimer[tir] != -1) KillTimer(TargetTimer[tir]);
			DestroyObject(Target_Object[tir]);
			Target_Object[tir] = CreateObject(TARGET_MODEL, TirInfo[tir][tirTPos][0], TirInfo[tir][tirTPos][1], TirInfo[tir][tirTPos][2], TirInfo[tir][tirTPos][3], TirInfo[tir][tirTPos][4], TirInfo[tir][tirTPos][5]);
			UpdateDynamic3DTextLabelText(TirText[tir],COLOR_GOLD,"-== Тир ==-\n\n{FFFFFF}Встаньте сюда чтобы стрелять");
			foreach(i)
			{
				TogglePlayerDynamicCP(i, Tir_CP[tir], true);
			}
		}
		ResetPlayerWeapons(playerid);
		PlayerTir[playerid] = -1;
		for(new i;i < 5;i ++)
		{
			HitPoint[playerid][i] = false;
			HitCount[playerid][i] = 0;
		}
		TargetCount[playerid] = 0;
		TargetMoveSpeed[playerid] = 1.0;
		TimerTime[playerid] = 10000;
		StartCount[playerid] = 4;
		TextDrawHideForPlayer(playerid, TirDraw[0]);
		TextDrawHideForPlayer(playerid, TirDraw[1]);
		TextDrawHideForPlayer(playerid, TirDraw[2]);
		TextDrawHideForPlayer(playerid, TirDraw[3]);
		TextDrawHideForPlayer(playerid, TirDraw[4]);
		TextDrawHideForPlayer(playerid, TirBGDraw);
	}
	return true;
}
ShowTirDialog(playerid)
{
	new str[200], string[100];
	for(new g; g < sizeof(TGunInfo);g ++)
	{
		format(string,sizeof(string),"%i. %s $%d\n", g+1, TGunInfo[g][tgGunname], TGunInfo[g][tgCost]);
		strcat(str, string);
	}
	ShowPlayerDialogEx(playerid, TIR_DIALOG+1, 2, "Тир | Выберите оружие", str, "Выбор", "Отмена");
	return true;
}
ShowTirTutDialog(playerid, tirid)
{
	new string[600];
	strcat(string, "{FFD700}Здравствуйте! {FFFFFF}Вы заглянули в тир.\n");///тир правила
	strcat(string, "В тире вы можете практиковать свои навыки стрельбы.\n");
	strcat(string, "Для стрельбы вам будет предложено несколько видов оружия.\n");
	strcat(string, "Выбрав одно из них нужно будет стрелять по мишени.\n");
	strcat(string, "На мишени отмечены 5 точек в которые нужно попадать.\n");
	strcat(string, "Успешные пападения будут отображены в нижнем правом углу.\n");
	strcat(string, "Для усложнения попадания мишень будет двигаться на вас.\n\n");
	strcat(string, "{FF6322}1. Попасть надо во все 5 точек определенное кол-во раз.\n");
	strcat(string, "{9EF2FF}2. С каждым разом скорость будет увеличиваться!\n\n");
	strcat(string, "{AFAFAF}\t\tНажмите 'Далее' для продолжения.\n");
	TirPlayer[playerid] = tirid;
	ShowPlayerDialogEx(playerid, TIR_DIALOG, 0, "Тир | Вступление", string, "Далее", "Отмена");
	return true;
}
TargetFireCount(weaponid)
{
	new count;
	switch(weaponid)
	{
	case 22: count = 3;
	case 23: count = 3;
	case 24: count = 1;
	case 25: count = 1;
	case 29: count = 5;
	case 30: count = 4;
	case 31: count = 4;
	case 33: count = 1;
	default: count = -1;
	}
	return count;
}
public MoveTarget(playerid)
{
	gunmute[playerid] = gettime()+5;
	if(PlayerTir[playerid] != -1)
	{
		new tir = PlayerTir[playerid];
		new string[10];
		StartCount[playerid] --;
		if(StartCount[playerid] > 0)
		{
			if(StartCount[playerid] == 1)
			{
				new ammo = GetTirAmmo(TirGun[playerid]);
				PI[playerid][oInTir]=1;
				_GiveGun(playerid, TirGun[playerid], ammo);
				TirAmmo[playerid] = ammo;
			}
			format(string,sizeof(string),"%d",StartCount[playerid]);
			GameTextForPlayer(playerid,string,1500,4);
			PlayerPlaySound(playerid, 1056, 0, 0, 0);
			if(TargetTimer[tir] != -1) KillTimer(TargetTimer[tir]);
			TargetTimer[tir] = SetTimerEx("MoveTarget", 1500, false, "i", playerid);
		}
		else
		{
			StartCount[playerid] = 4;
			PlayerPlaySound(playerid, 1057, 0, 0, 0);
			GameTextForPlayer(playerid,"Go-Go-Go!!!",1000,4);
			SetPlayerArmedWeapon(playerid, TirGun[playerid]);
			TirAmmo[playerid] = GetPlayerAmmo(playerid);
			TargetGo[tir] = true;
			SetObjectRot(Target_Object[tir], 0.0, TirInfo[tir][tirTPos][4], TirInfo[tir][tirTPos][5]);
			MoveObject(Target_Object[tir], TirInfo[tir][tirTPos][0], TirInfo[tir][tirTPos][1]-15.0, TirInfo[tir][tirTPos][2], TargetMoveSpeed[playerid]);
			if(TargetTimer[tir] != -1) KillTimer(TargetTimer[tir]);
			TargetTimer[tir] = SetTimerEx("DestroyTarget", TimerTime[playerid], false, "iid", playerid, tir, 0);
			TextDrawHideForPlayer(playerid, TirDraw[0]);
			TextDrawHideForPlayer(playerid, TirDraw[1]);
			TextDrawHideForPlayer(playerid, TirDraw[2]);
			TextDrawHideForPlayer(playerid, TirDraw[3]);
			TextDrawHideForPlayer(playerid, TirDraw[4]);
		}
	}
	return true;
}
public DestroyTarget(playerid, tirid, succes)
{
	gunmute[playerid] = gettime()+5;
	if(succes)
	{
		switch(TirGun[playerid])
		{
		case 22:
			{
				if(PI[playerid][pVIP]>=3) PI[playerid][pPistol_Skill] += 50;
				if(PI[playerid][pPistol_Skill] <= 9950) PI[playerid][pPistol_Skill] += 50;
				else PI[playerid][pPistol_Skill] = 10000;
			}
		case 23:
			{
				if(PI[playerid][pVIP]>=3) PI[playerid][pSDPistol_Skill] += 50;
				if(PI[playerid][pSDPistol_Skill] <= 9950) PI[playerid][pSDPistol_Skill] += 50;
				else PI[playerid][pSDPistol_Skill] = 10000;
			}
		case 24:
			{
				if(PI[playerid][pVIP]>=3) PI[playerid][pEagle_Skill] += 50;
				if(PI[playerid][pEagle_Skill] <= 9950) PI[playerid][pEagle_Skill] += 50;
				else PI[playerid][pEagle_Skill] = 10000;
			}
		case 25:
			{
				if(PI[playerid][pVIP]>=3) PI[playerid][pShotGun_Skill] += 50;
				if(PI[playerid][pShotGun_Skill] <= 9950) PI[playerid][pShotGun_Skill] += 50;
				else PI[playerid][pShotGun_Skill] = 10000;
			}
		case 28:
			{
				if(PI[playerid][pVIP]>=3) PI[playerid][pUZI_Skill] += 50;
				if(PI[playerid][pUZI_Skill] <= 9950) PI[playerid][pUZI_Skill] += 50;
				else PI[playerid][pUZI_Skill] = 10000;
			}
		case 29:
			{
				if(PI[playerid][pVIP]>=3) PI[playerid][pMP5_Skill] += 50;
				if(PI[playerid][pMP5_Skill] <= 9950) PI[playerid][pMP5_Skill] += 50;
				else PI[playerid][pMP5_Skill] = 10000;
			}
		case 30:
			{
				if(PI[playerid][pVIP]>=3) PI[playerid][pAK47_Skill] += 50;
				if(PI[playerid][pAK47_Skill] <= 9950) PI[playerid][pAK47_Skill] += 50;
				else PI[playerid][pAK47_Skill] = 10000;
			}
		case 31:
			{
				if(PI[playerid][pVIP]>=3) PI[playerid][pM4_Skill] += 50;
				if(PI[playerid][pM4_Skill] <= 9950) PI[playerid][pM4_Skill] += 50;
				else PI[playerid][pM4_Skill] = 10000;
			}
		case 34:
			{
				if(PI[playerid][pVIP]>=3) PI[playerid][pSniper_Skill] += 50;
				if(PI[playerid][pSniper_Skill] <= 9950) PI[playerid][pSniper_Skill] += 50;
				else PI[playerid][pSniper_Skill] = 10000;
			}
		}
		if(PI[playerid][pVIP]<3)
		{
			SendClientMessage(playerid, COLOR_GOLD, "Вы прокачали скилл оружия на 0.5%%.");
			SendClientMessage(playerid, COLOR_GREY, "[Совет] {FFFFFF}С Platinum VIP скиллы будут качатся в 2 раза быстрей.");
		}
		else SendClientMessage(playerid, COLOR_GOLD, "Вы прокачали скилл оружия на 1.0%%");
		GameTextForPlayer(playerid,"~g~Succes!",3000,5);
		TargetMoveSpeed[playerid] += 0.2;
		TargetCount[playerid] ++;
		TimerTime[playerid] -= 1000;

		if(QuestProgress[playerid][16]<30 && AcceptQuest[playerid][16]!=0)QuestProgress[playerid][16]++;
		if(QuestProgress[playerid][16]==30 && AcceptQuest[playerid][16]!=0)
		{
			ShowPlayerDialogEx(playerid,0,0,"","{FFFFFF}Вы успешно выполнили квест по обучению стрельбы.\nВозращайтесь обратно, чтобы получить награду за выполненое задание.","Принять","");
			NextStapQI(playerid,16);
		}
	}
	else GameTextForPlayer(playerid,"~r~Fail!",3000,5);
	SetPlayerArmedWeapon(playerid, 0);
	ResetPlayerWeapons(playerid);
	StartCount[playerid] = 4;
	TargetGo[tirid] = false;
	SetPlayerArmedWeapon(playerid, 0);
	if(TargetTimer[tirid] != -1) KillTimer(TargetTimer[tirid]);
	for(new i;i < 5;i ++)
	{
		HitPoint[playerid][i] = false;
		HitCount[playerid][i] = 0;
	}
	if(TargetCount[playerid] <= COUNT_TARGETS) TargetTimer[tirid] = SetTimerEx("MoveTarget", 2000, false, "i", playerid);
	else CheckTir(playerid);
	DestroyObject(Target_Object[tirid]);
	Target_Object[tirid] = CreateObject(TARGET_MODEL, TirInfo[tirid][tirTPos][0], TirInfo[tirid][tirTPos][1], TirInfo[tirid][tirTPos][2], TirInfo[tirid][tirTPos][3], TirInfo[tirid][tirTPos][4], TirInfo[tirid][tirTPos][5]);
	return true;
}
CheckHit(playerid)
{
	if(HitPoint[playerid][0] && HitPoint[playerid][1] && HitPoint[playerid][2] && HitPoint[playerid][3] && HitPoint[playerid][4])
	{
		new tir = PlayerTir[playerid];
		DestroyTarget(playerid, tir, true);
	}
	return true;
}

 

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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

×

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

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