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

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

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

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

Мануал Car James Bond 007

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

Merlin

Умник
Автор : -WorcOut-
[HR][/HR]
к #define добавим
PHP:
#define PRESSED(%0) \
  (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define CYAN 0x00FFFFFF
#define RED  0xFF0000FF
#define ORANGE 0xFF9900FF
#define GREEN  0x15FF00FF
#define YELLOW  0xFFFF00FF
[HR][/HR]
к new добавим
PHP:
new
	gRockOj[MAX_PLAYERS],
	Shot_car[MAX_PLAYERS],
	FEATURED[][] =
	{
		{18647},
		{18648},
		{18649},
		{18650},
		{18651},
		{18652},
		{354}
	};
[HR][/HR]
в public OnPlayerConnect(playerid)
PHP:
Shot_car[playerid] = 0;
[HR][/HR]
в public OnPlayerSpawn(playerid)
PHP:
SendClientMessage(playerid,0x33CCFFAA,"Используйте /jcar для создания car");
	Shot_car[playerid] = 0;
[HR][/HR]
К командам "zcmd"
PHP:
CMD:jcar(playerid,params[])
//создание транспорта
{
	static
		Float:spawn_x,// координаты спавна "x"
		Float:spawn_y,// координаты спавна "y"
		Float:spawn_z,// координаты спавна "z"
		Float:sheathing,// Обшивка
		Float:distance;//Дистанция
	// координаты спавна (глобальные переменные)
	spawn_x += (distance * floatsin(-sheathing, degrees));
	// координаты x + дистанция , Получить синус от заданного угла.Угол ввода может быть в радианах, градусах или классов.
	spawn_y += (distance * floatcos(-sheathing, degrees));
	//координаты y + дистанция ,Получить синус от заданного угла.Угол ввода может быть в радианах, градусах или классов.
	sheathing += 90.0;
	if(sheathing > 360.0) sheathing -= 360.0;
	GetPlayerPos(playerid,spawn_x,spawn_y,spawn_z);
	//Узнать позицию игрока в игре.
	AddStaticVehicle(603,spawn_x,spawn_y+3,spawn_z,sheathing,0,1);
	//модели предварительно загружены для игроков
	return 1;
}
CMD:dcar(playerid,params[])
// удаление транспорта
{
	RemoveVehicle(GetPlayerVehicleID(playerid));
	//Эта функция получает ID автомобиля, в котором сидит игрок
	return 1;
}
[HR][/HR]
В любое место мода добавим
PHP:
RemoveVehicle(vehicleid)
// удаление транспорта
{
    for(new players = 0 ; players <=MAX_PLAYERS ; players++)
    {
        static
			Float:spawn_x,// координаты спавна "x" DELETE
			Float:spawn_y,// координаты спавна "y" DELETE
			Float:spawn_z // координаты спавна "z" DELETE
		;
        if (IsPlayerInVehicle(players,vehicleid))
        //Проверяет, находится ли игрок в указанном транспорте.
        {
            GetPlayerPos(players,spawn_x,spawn_y,spawn_z);
            //Узнать позицию игрока в игре.
            SetPlayerPos(players,spawn_x,spawn_y,spawn_z+2);
            //Эта функция изменяет текущую позицию онлайн игрока на карте.
			DestroyVehicle(vehicleid);
			//Уничтожает ранее созданный транспорт.
        }
        SetVehicleParamsForPlayer(vehicleid,players,0,1);
        //Установите параметры транспортного средства, для игрока.
    }
    SetTimerEx("VehRes",3000,0,"d",vehicleid);
    //Запуск таймера
    return 1;
}
[HR][/HR]
в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
PHP:
if(newkeys & KEY_FIRE)
   	{
   		if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
   		//Получает текущее положение игрока.
 		{
        	if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 603 && Shot_car[playerid] == 0 )
        	//Проверяет, находится ли игрок в каком-либо транспорте.
			{
			new
		 			vehicleid = GetPlayerVehicleID(playerid),
					Float:spawn_x,
					// координаты спавна "x"
					Float:spawn_y,
					// координаты спавна "y" 
					Float:spawn_z,
					// координаты спавна "z"
					Float:spawn_r,
					// координаты спавна "r"
					Float:dist = 50.0,
					Float:tmpang,
					Float:tmpx,
					Float:tmpy,
					Float:tmpz,rand = random(sizeof(FEATURED));
			Shot_car[playerid]= 1;
	        SetTimerEx("ShotHeved", 3000, false, "i", playerid);
			GetVehiclePos(vehicleid, spawn_x, spawn_y, spawn_z);
		    GetVehicleZAngle(vehicleid, spawn_r);
			//Определить угол поворот транспорта.
			gRockOj[playerid] = CreateObject(FEATURED[rand][0], spawn_x+2, spawn_y+2, spawn_z, 0, 0, spawn_r+90);
	        MoveObject(gRockOj[playerid],spawn_x + (dist * floatsin(-spawn_r, degrees)), spawn_y + (dist * floatcos(-spawn_r, degrees)),spawn_z,70.0);
			for(new i;i<MAX_PLAYERS;i++)
			{
			    if(i == playerid)continue;
			    if(IsPlayerInRangeOfPoint(i, 50.0, spawn_x, spawn_y, spawn_z))
			    {
			        GetPlayerPos(i, tmpx, tmpy, tmpz);
			        //Узнать позицию игрока в игре.
			        tmpang = (90-atan2(tmpy-spawn_y, tmpx-spawn_x));
			        if(tmpang < 0)tmpang = 360.0+tmpang;
			        tmpang = 360.0 - tmpang;

					if( floatabs(tmpang-spawn_r) < 5.0)
					{
					    dist = GetPlayerDistanceFromPoint(i, spawn_x, spawn_y, spawn_z);
					    //Получает расстояние между игроком и точкой на карте.
					}
		    	}
			}
		}
	}
}
if (IsPlayerInAnyVehicle(playerid))
//Проверяет, находится ли игрок в каком-либо транспорте.
{
	if(newkeys == KEY_CROUCH)
	{
		static
			Float:vsp_x,
			Float:vsp_y,
			Float:vsp_z;
		AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
		//Устанавливает транспорту компонент
		GetVehicleVelocity(GetPlayerVehicleID(playerid), vsp_x, vsp_y, vsp_z);
		//Возвращает скорость, с которой транспортное средство движется в трех направлениях, vsp_x, vsp_y и vsp_z.
		SetVehicleVelocity(GetPlayerVehicleID(playerid) ,vsp_x * 1.5,vsp_y * 1.5 ,vsp_z * 1.5);
		//Задаёт скорость движения транспорта в определённом направлении.
		SendClientMessage(playerid,RED,"Super Speed");
		//посылает сообщение на конкретного игрока
	}
}

if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 603)
//Проверяет, находится ли игрок в каком-либо транспорте.
{
	if (PRESSED(KEY_SUBMISSION))
	{
 		static
			Float:spawn_x,
			Float:spawn_y,
			Float:spawn_z;
   		GetVehicleVelocity(GetPlayerVehicleID(playerid), spawn_x, spawn_y, spawn_z);
   		//Возвращает скорость, с которой транспортное средство движется в трех направлениях, spawn_x, spawn_y и spawn_z.
     	SetVehicleVelocity(GetPlayerVehicleID(playerid) ,spawn_x ,spawn_y ,spawn_z+0.3);
   		//Задаёт скорость движения транспорта в определённом направлении.
                
  	}
}
if(newkeys == KEY_YES)
{
	new Car = GetVehicleModel(GetPlayerVehicleID(playerid));
	//Получает модели ID автомобиля.
	if(Car == 603)
	{
		static
			Float:spawn_x,
	 		Float:spawn_y,
	 		Float:spawn_z; //
		GetPlayerPos(playerid,spawn_x,spawn_y,spawn_z);
		//Узнать позицию игрока в игре.
		SetPlayerPos(playerid,spawn_x,spawn_y,spawn_z+90); //
		//Эта функция изменяет текущую позицию онлайн игрока на карте.
		GivePlayerWeapon(playerid, 46 , 1);
		//Даёт конкретное оружие и конкретное кол-во патронов игроку.
		GameTextForPlayer(playerid, "~n~~n~~n~~n~~r~Ejected",2500,3);
		//выброшенный
	}
}
if(newkeys == KEY_NO)
{
	RepairVehicle(GetPlayerVehicleID(playerid));
	//Полностью ремонт транспортного средства,
	SetVehicleHealth(GetPlayerVehicleID(playerid),9999999999);
	//Установите здоровья автомобиля
	GameTextForPlayer(playerid, "~g~~h~Fixed",3000,3);
	//фиксированный
}
if(newkeys == KEY_LOOK_LEFT)
{
	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 603)
	//Получает текущее положение игрока.
	{
 		GameTextForPlayer(playerid, "~n~~n~~n~~n~~g~Invisible!",2500,3);
   		new int1 = GetPlayerInterior(playerid);
     	LinkVehicleToInterior(GetPlayerVehicleID(playerid),int1+1);
	}
}
if(newkeys ==  KEY_LOOK_RIGHT)
{
	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 603)
	//Получает текущее положение игрока.
	{
		GameTextForPlayer(playerid, "~n~~n~~n~~n~~b~Visible!",2500,3);
		new int1 = GetPlayerInterior(playerid);
		LinkVehicleToInterior(GetPlayerVehicleID(playerid),int1);
		// Транспортные средства могут быть видны только игроков в той же интерьер
	}
}
[HR][/HR]
В любое место
PHP:
forward ShotHeved(playerid);
public ShotHeved(playerid)
{
	Shot_car[playerid] = 0;
	return 1;
}
[HR][/HR]
в public OnObjectMoved(objectid)
PHP:
new
	 	Float:spawn_x,
		Float:spawn_y,
		Float:spawn_z;
     for(new i;i<MAX_PLAYERS;i++)
	 {
		if(objectid == gRockOj[i])
	 	{
		    GetObjectPos(gRockOj[i], spawn_x, spawn_y, spawn_z);
		    //Получение Обьекта
		    CreateExplosion(spawn_x, spawn_y, spawn_z,7,10.0);
			//Создать такой взрыв в указанных координатах.
		    DestroyObject(gRockOj[i]);
		    //Разрушает (удаляет) данного объекта.
		}
	}
}
[HR][/HR]
в public OnPlayerStateChange(playerid, newstate, oldstate)
PHP:
if (newstate == PLAYER_STATE_DRIVER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 603)
	{
		SendClientMessage(playerid,RED,"Использовать огонь клавишу, чтобы запустить Ракета");
		SendClientMessage(playerid,ORANGE,"Используйте Sub Миссия ключ (+ или Numpad 2) для Mega Jump");
		SendClientMessage(playerid,CYAN,"Используйте кнопку 'Y', чтобы извлечь из автомобиля");
		SendClientMessage(playerid,-1,"Используйте 'N'Key исправить автомобиля");
		SendClientMessage(playerid,GREEN,"Используйте 'Q', чтобы невидимом транспортного средства");
		SendClientMessage(playerid,YELLOW,"Используйте 'E'Key для видимого транспортного средства");
	}
[HR][/HR]
в конец мода
PHP:
stock GetClosestObjectID(objectid)
{
	new Float:range = 5.0;
    foreach(object, i)
    {
        if(objectid == i) continue;
        new
			Float:spawn_x,
			Float:spawn_y,
			Float:spawn_z;
        GetObjectPos(i, spawn_x, spawn_y, spawn_z);
        //Получение Обьекта
	    if(IsObjectInRangeOfPoint(objectid, range, spawn_x, spawn_y, spawn_z))
	    {
	        return i;
	    }
    }
    return INVALID_PLAYER_ID;
}
stock GetClosestPlayerID(playerid)
{
	new Float:range = 5.0;
    foreach(Player, i)
    {
        if(playerid == i) continue;
        new
			Float:spawn_x,
			Float:spawn_y,
			Float:spawn_z;
        GetPlayerPos(i, spawn_x, spawn_y, spawn_z);
        //Узнать позицию игрока в игре.
	    if(IsObjectInRangeOfPoint(playerid, range, spawn_x, spawn_y, spawn_z))
	    {
	        return i;
	    }
    }
    return INVALID_PLAYER_ID;
}
stock GetClosestVehicleID(vehicleid)
{
	new Float:range = 5.0;
    foreach(Vehicle, i)
    {
        if(vehicleid == i) continue;
        new
			Float:spawn_x,
			Float:spawn_y,
			Float:spawn_z;
        GetVehiclePos(i, spawn_x, spawn_y, spawn_z);
        //Узнать позицию игрока в игре.
	    if(IsObjectInRangeOfPoint(vehicleid, range, spawn_x, spawn_y, spawn_z))
	    {
	        return i;
	    }
    }
    return INVALID_PLAYER_ID;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу