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

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

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

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

Урок Прокол шин с помощью ножа

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

KeRkA^^

Дебютант
Доброе утро, пользователи Pawno-Info!
Сейчас я хотел бы выложить систему прокола шин ножом.
Примечание:
Вырезано с FreeLife RP!
Автор: kissad21


Ко всем new's:
PHP:
new TestGenerator[16][5] = {
	{0,0,0,0,0},
	{0,0,0,1,1},
	{0,0,1,0,2},
	{0,0,1,1,3},
	{0,1,0,0,4},
	{0,1,0,1,5},
	{0,1,1,0,6},
	{0,1,1,1,7},
	{1,0,0,0,8},
	{1,0,0,1,9},
	{1,0,1,0,10},
	{1,0,1,1,11},
	{1,1,0,0,12},
	{1,1,0,1,13},
	{1,1,1,0,14},
	{1,1,1,1,15}
};
Ко всем stock'ам:
PHP:
stock IsPlayerNearVehicleWheel(playerid, vehicleid, wheel=-1)
{
    new Float:x,Float:y,Float:z,Float:a;
    GetVehiclePos(vehicleid, x, y, z);
    GetVehicleZAngle(vehicleid, a);
    new Float:wheelrear[3];
    switch(wheel)
    {
        case 0,2: GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_WHEELSFRONT, wheelrear[0],wheelrear[1],wheelrear[2]);
        case 1,3: GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_WHEELSREAR, wheelrear[0],wheelrear[1],wheelrear[2]);
        default: return false;
    }
    switch(wheel)
    {
        case 0,1:
        {
			x+=floatsqroot((wheelrear[0]*wheelrear[0])+(wheelrear[1]*wheelrear[1]))*floatsin(-atan2(wheelrear[0], wheelrear[1])-a,degrees);
			y+=floatsqroot((wheelrear[0]*wheelrear[0])+(wheelrear[1]*wheelrear[1]))*floatcos(-atan2(wheelrear[0], wheelrear[1])-a,degrees);
        }
        case 2,3:
        {
			x+=floatsqroot((wheelrear[0]*wheelrear[0])+(wheelrear[1]*wheelrear[1]))*floatsin(atan2(wheelrear[0], wheelrear[1])-a,degrees);
			y+=floatsqroot((wheelrear[0]*wheelrear[0])+(wheelrear[1]*wheelrear[1]))*floatcos(atan2(wheelrear[0], wheelrear[1])-a,degrees);
        }
    }
	if(IsPlayerInRangeOfPoint(playerid, 1, x, y, z)) return true;
	return false;
}
В OnPlayerKeyStateChange(playerid, newkeys, oldkeys):
PHP:
if(newkeys & KEY_FIRE && GetPlayerWeapon(playerid) == 4)
    {
		if(GetPVarInt(playerid,"KnifeWheel") < gettime())
		{
		    SetPVarInt(playerid,"KnifeWheel",gettime()+2);
		    new Float:Pos_X,Float:Pos_Y,Float:Pos_Z;
		    for(new i;i<MAX_VEHICLES;i++)
		    {
				GetVehiclePos(i,Pos_X,Pos_Y,Pos_Z);
				if(IsPlayerInRangeOfPoint(playerid,4,Pos_X,Pos_Y,Pos_Z))
				{
				    for(new w; w < 4; w++)
				    {
				        if(IsPlayerNearVehicleWheel(playerid, i, w))
						{
							new panels, doors, lights, tires;
							GetVehicleDamageStatus(i, panels, doors, lights, tires);
							for(new G;G<sizeof(TestGenerator);G++)
							{
								if(TestGenerator[G][4] == tires)
								{
								    for(new test_g;test_g<sizeof(TestGenerator);test_g++)
								    {
								        if(TestGenerator[test_g][0] == 1 && TestGenerator[test_g][1] == TestGenerator[G][1] && TestGenerator[test_g][2] == TestGenerator[G][2] && TestGenerator[test_g][3] == TestGenerator[G][3] && !w
										|| TestGenerator[test_g][0] == TestGenerator[G][0] && TestGenerator[test_g][1] == 1 && TestGenerator[test_g][2] == TestGenerator[G][2] && TestGenerator[test_g][3] == TestGenerator[G][3] && w == 1
										|| TestGenerator[test_g][0] == TestGenerator[G][0] && TestGenerator[test_g][1] == TestGenerator[G][1] && TestGenerator[test_g][2] == 1 && TestGenerator[test_g][3] == TestGenerator[G][3] && w == 2
										|| TestGenerator[test_g][0] == TestGenerator[G][0] && TestGenerator[test_g][1] == TestGenerator[G][1] && TestGenerator[test_g][2] == TestGenerator[G][2] && TestGenerator[test_g][3] == 1 && w == 3)
										{
											UpdateVehicleDamageStatus(i, panels, doors, lights, TestGenerator[test_g][4]);
											RemovePlayerWeapon(playerid, 4);
											return true;
										}
								    }
								    return true;
								}
							}
							return true;
						}
					}
					break;
				}
		    }
		}
		return true;
    }
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу