Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок ТИР Update[28.12.2015]

Статус
В этой теме нельзя размещать новые ответы.

Mathian

Лев Попов
Пользователь
Регистрация
3 Фев 2013
Сообщения
3,003
Лучшие ответы
6
Репутация
813
Награды
2
Всем Хай!
Вообщем давно я ничего не выкладывал.
Так вот. Для своего мода я написал Охоту.
И через месяц увидел как Охоту выложил Американец какой-то.
Ну я не стал ничего делать пока не увидел снова её только уже под 0.3z переделанную
Саму работу полностью я не выкладываю, а даю вам идею. Написал ТИР...
Писал под 0.3x, а видео на 0.3z версии xD
На видео вы увидите, что с 1ого выстрела несколько попадений - просто объекты близко стоят.


Вообщем вот видео:

Ну и сам код:
Объекты интерьера:
PHP:
	CreateObject(19380, 1248.39, -741.22, 1084.32,   0.00, 90.00, 0.00);
	CreateObject(19380, 1258.88, -731.62, 1084.32,   0.00, 90.00, 0.00);
	CreateObject(19380, 1258.85, -741.20, 1084.32,   0.00, 90.00, 0.00);
	CreateObject(19380, 1269.28, -741.18, 1084.32,   0.00, 90.00, 0.00);
	CreateObject(19380, 1269.24, -731.59, 1084.32,   0.00, 90.00, 0.00);
	CreateObject(19380, 1279.74, -731.59, 1084.32,   0.00, 90.00, 0.00);
	CreateObject(19380, 1279.72, -741.17, 1084.32,   0.00, 90.00, 0.00);
	CreateObject(19456, 1284.94, -741.14, 1086.07,   0.00, 0.00, 0.00);
	CreateObject(19456, 1284.95, -731.60, 1086.07,   0.00, 0.00, 0.00);
	CreateObject(19456, 1243.24, -731.62, 1086.07,   0.00, 0.00, 0.00);
	CreateObject(19456, 1243.21, -741.15, 1087.58,   0.00, 0.00, 0.00);
	CreateObject(19456, 1243.25, -741.20, 1086.07,   0.00, 0.00, 0.00);
	CreateObject(19456, 1243.20, -731.56, 1087.58,   0.00, 0.00, 0.00);
	CreateObject(19456, 1285.02, -741.14, 1087.58,   0.00, 0.00, 0.00);
	CreateObject(19456, 1285.02, -731.52, 1087.58,   0.00, 0.00, 0.00);
	CreateObject(19456, 1280.27, -726.81, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19456, 1270.74, -726.81, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19456, 1261.23, -726.79, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19456, 1251.71, -726.79, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19456, 1242.20, -726.79, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19456, 1248.17, -745.92, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19456, 1257.71, -745.90, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19456, 1267.29, -745.91, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19456, 1276.88, -745.90, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19456, 1286.41, -745.88, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19456, 1248.02, -726.72, 1087.58,   0.00, 0.00, 90.00);
	CreateObject(19456, 1257.64, -726.72, 1087.58,   0.00, 0.00, 90.00);
	CreateObject(19456, 1267.25, -726.74, 1087.58,   0.00, 0.00, 90.00);
	CreateObject(19456, 1276.84, -726.74, 1087.58,   0.00, 0.00, 90.00);
	CreateObject(19456, 1286.44, -726.74, 1087.58,   0.00, 0.00, 90.00);
	CreateObject(19456, 1280.20, -745.99, 1087.58,   0.00, 0.00, 90.00);
	CreateObject(19456, 1270.68, -746.00, 1087.58,   0.00, 0.00, 90.00);
	CreateObject(19456, 1261.16, -746.01, 1087.58,   0.00, 0.00, 90.00);
	CreateObject(19456, 1251.62, -746.01, 1087.58,   0.00, 0.00, 90.00);
	CreateObject(19456, 1242.00, -746.01, 1087.58,   0.00, 0.00, 90.00);
	CreateObject(19380, 1248.39, -731.62, 1084.32,   0.00, 90.00, 0.00);
	CreateObject(19375, 1248.52, -731.60, 1089.17,   0.00, 90.00, 0.00);
	CreateObject(19375, 1248.50, -741.22, 1089.17,   0.00, 90.00, 0.00);
	CreateObject(19375, 1258.99, -731.57, 1089.17,   0.00, 90.00, 0.00);
	CreateObject(19375, 1258.94, -741.18, 1089.17,   0.00, 90.00, 0.00);
	CreateObject(19375, 1269.43, -741.19, 1089.17,   0.00, 90.00, 0.00);
	CreateObject(19375, 1269.42, -731.58, 1089.17,   0.00, 90.00, 0.00);
	CreateObject(19375, 1279.86, -731.64, 1089.17,   0.00, 90.00, 0.00);
	CreateObject(19375, 1279.85, -741.22, 1089.17,   0.00, 90.00, 0.00);
	CreateObject(19429, 1244.89, -744.23, 1084.70,   90.00, 90.00, 90.00);
	CreateObject(19429, 1244.87, -740.74, 1084.70,   90.00, 90.00, 90.00);
	CreateObject(19429, 1244.85, -737.25, 1084.70,   90.00, 90.00, 90.00);
	CreateObject(19429, 1244.86, -733.77, 1084.70,   90.00, 90.00, 90.00);
	CreateObject(19429, 1244.85, -730.29, 1084.70,   90.00, 90.00, 90.00);
	CreateObject(19429, 1244.84, -726.82, 1084.70,   90.00, 90.00, 90.00);
	CreateObject(19430, 1244.18, -728.55, 1085.44,   0.00, 90.00, 90.00);
	CreateObject(19430, 1244.17, -732.04, 1085.44,   0.00, 90.00, 90.00);
	CreateObject(19430, 1244.16, -735.54, 1085.44,   0.00, 90.00, 90.00);
	CreateObject(19430, 1244.17, -739.00, 1085.44,   0.00, 90.00, 90.00);
	CreateObject(19430, 1244.19, -742.50, 1085.44,   0.00, 90.00, 90.00);
	CreateObject(19430, 1244.18, -745.97, 1085.44,   0.00, 90.00, 90.00);
	CreateObject(1517, 1244.60, -727.24, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.60, -728.66, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.56, -730.05, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1520, 1243.84, -727.92, 1085.53,   0.00, 0.00, 70.38);
	CreateObject(1520, 1243.85, -729.44, 1085.53,   0.00, 0.00, 70.38);
	CreateObject(3262, 1244.50, -741.83, 1083.74,   0.00, 0.00, 92.52);
	CreateObject(1517, 1244.54, -745.54, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1520, 1243.76, -745.10, 1085.53,   0.00, 0.00, 70.38);
	CreateObject(1517, 1244.61, -744.45, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.53, -742.93, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1520, 1243.73, -743.55, 1085.53,   0.00, 0.00, 70.38);
	CreateObject(3262, 1244.81, -731.27, 1083.74,   0.00, 0.00, 92.52);
	CreateObject(1517, 1244.79, -740.60, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.82, -740.01, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.84, -739.44, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.86, -738.82, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.83, -738.13, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.89, -737.25, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.81, -736.38, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.83, -735.31, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.86, -734.20, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.89, -733.25, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(1517, 1244.88, -732.10, 1085.74,   0.00, 0.00, 0.00);
	CreateObject(19410, 1264.48, -744.28, 1086.03,   0.00, 0.00, 0.00);
	CreateObject(19410, 1273.94, -741.13, 1086.03,   0.00, 0.00, 0.00);
	CreateObject(19456, 1269.23, -742.78, 1086.07,   0.00, 0.00, 90.00);
	CreateObject(19410, 1273.93, -737.95, 1086.03,   0.00, 0.00, 0.00);
	CreateObject(19410, 1273.92, -734.76, 1086.03,   0.00, 0.00, 0.00);
	CreateObject(19410, 1273.91, -731.56, 1086.03,   0.00, 0.00, 0.00);
	CreateObject(19410, 1273.91, -728.38, 1086.03,   0.00, 0.00, 0.00);
	CreateObject(1501, 1284.83, -744.19, 1084.34,   0.00, 0.00, -90.00);
В public OnPlayerKeyStateChange
PHP:
	if(newkeys & KEY_FIRE && IsPlayerAimingAt(playerid, 1244.60, -727.24, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.60, -728.66, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.56, -730.05, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1243.84, -727.92, 1085.53,0.2)
	||IsPlayerAimingAt(playerid, 1243.85, -729.44, 1085.53,0.2)
	||IsPlayerAimingAt(playerid, 1244.50, -741.83, 1083.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.54, -745.54, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1243.76, -745.10, 1085.53,0.2)
	||IsPlayerAimingAt(playerid, 1244.61, -744.45, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.53, -742.93, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1243.73, -743.55, 1085.53,0.2)
	||IsPlayerAimingAt(playerid, 1244.81, -731.27, 1083.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.79, -740.60, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.82, -740.01, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.84, -739.44, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.86, -738.82, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.83, -738.13, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.89, -737.25, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.81, -736.38, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.83, -735.31, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.86, -734.20, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.89, -733.25, 1085.74,0.2)
	||IsPlayerAimingAt(playerid, 1244.88, -732.10, 1085.74,0.2))
	{
		if(GetPlayerWeapon(playerid) !=0)SendClientMessage(playerid, 0xFF0000FF, "Ваааау!"),GivePlayerMoney(playerid,100),GameTextForPlayer(  playerid,("~r~Ni~g~ce! ~y~+~g~100"), 2000, 1);
	}
И в конец мода:
PHP:
Float:DistanceCameraTargetToLocation(Float:CamX, Float:CamY, Float:CamZ, Float:ObjX, Float:ObjY, Float:ObjZ, Float:FrX, Float:FrY, Float:FrZ)
{
	new Float:TGTDistance;
	TGTDistance = floatsqroot((CamX - ObjX) * (CamX - ObjX) + (CamY - ObjY) * (CamY - ObjY) + (CamZ - ObjZ) * (CamZ - ObjZ));
	new Float:tmpX, Float:tmpY, Float:tmpZ;
	tmpX = FrX * TGTDistance + CamX;
	tmpY = FrY * TGTDistance + CamY;
	tmpZ = FrZ * TGTDistance + CamZ;
	return floatsqroot((tmpX - ObjX) * (tmpX - ObjX) + (tmpY - ObjY) * (tmpY - ObjY) + (tmpZ - ObjZ) * (tmpZ - ObjZ));
}
stock Float:GetPointAngleToPoint(Float:x2, Float:y2, Float:X, Float:Y)
{
	new Float:DX, Float:DY;
	new Float:angle;
	DX = floatabs(floatsub(x2,X));
	DY = floatabs(floatsub(y2,Y));
	if (DY == 0.0 || DX == 0.0)
	{
		if(DY == 0 && DX > 0) angle = 0.0;
		else if(DY == 0 && DX < 0) angle = 180.0;
		else if(DY > 0 && DX == 0) angle = 90.0;
		else if(DY < 0 && DX == 0) angle = 270.0;
		else if(DY == 0 && DX == 0) angle = 0.0;
	}
	else
	{
		angle = atan(DX/DY);
		if(X > x2 && Y <= y2) angle += 90.0;
		else if(X <= x2 && Y < y2) angle = floatsub(90.0, angle);
		else if(X < x2 && Y >= y2) angle -= 90.0;
		else if(X >= x2 && Y > y2) angle = floatsub(270.0, angle);
	}
	return floatadd(angle, 90.0);
}
stock GetXYInFrontOfPoint(&Float:x, &Float:y, Float:angle, Float:distance)
{
	x += (distance * floatsin(-angle, degrees));
	y += (distance * floatcos(-angle, degrees));
}
stock IsPlayerAimingAt(playerid, Float:x, Float:y, Float:z, Float:radius)
{
	new Float:camera_x,Float:camera_y,Float:camera_z,Float  :vector_x,Float:vector_y,Float:vector_z;
	GetPlayerCameraPos(playerid, camera_x, camera_y, camera_z);
	GetPlayerCameraFrontVector(playerid, vector_x, vector_y, vector_z);
	new Float:vertical, Float:horizontal;
	switch (GetPlayerWeapon(playerid))
	{
		case 34,35,36:{if (DistanceCameraTargetToLocation(camera_x, camera_y, camera_z, x, y, z, vector_x, vector_y, vector_z) < radius) return true;return false;}
		case 30,31: {vertical = 4.0; horizontal = -1.6;}
		case 33: {vertical = 2.7; horizontal = -1.0;}
		default: {vertical = 6.0; horizontal = -2.2;}
	}
	new Float:angle = GetPointAngleToPoint(0, 0, floatsqroot(vector_x*vector_x+vector_y*vector_y), vector_z) - 270.0;
	new Float:resize_x, Float:resize_y, Float:resize_z = floatsin(angle+vertical, degrees);
	GetXYInFrontOfPoint(resize_x, resize_y, GetPointAngleToPoint(0, 0, vector_x, vector_y)+horizontal, floatcos(angle+vertical, degrees));
	if (DistanceCameraTargetToLocation(camera_x, camera_y, camera_z, x, y, z, resize_x, resize_y, resize_z) < radius) return true;
	return false;
}
Координаты на телепорт:
PHP:
SetPlayerPos(playerid,1282.4679,-744.8888,1085.4059);
Время работы: 10-15 минут
Автор: Я((Lev_Popov))

Update[28.12.2015]
Вообщем заглянул в тему и понял, что в данный момент система не актуальна и написал заново.

Создаём переменную:
PHP:
new Obj;
Далее создаём объект(мишень), в public OnGameModeInit():
PHP:
Obj = CreateObject(19835, -317.13, 809.71, 15.14,   0.00, 0.00, 0.00);
И нам остаётся добавить в public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ):
PHP:
    if(hittype == BULLET_HIT_TYPE_OBJECT && hitid == Obj)
    {
        GivePlayerMoney(playerid, 1000);//Деньги выдаём свои
        DestroyObject(Obj);//Удаляем объект
        GameTextForPlayer(playerid,("~r~Ni~g~ce! ~y~+~g~1000"), 1000, 1);//Выводим текст
    }
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу