• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Изменить кнопку alt на команду

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

Limon4ikChanell

Нуль
Регистрация
24 Май 2019
Сообщения
4
Лучшие ответы
0
Репутация
0
Здравствуйте, я абсолютный новичок в павне. Нашел я скрипт на просторах интернета, хотел бы изменить в скрипте активацию накопителя машины времени с кнопки alt, на команду(например /gen), если не затруднит, объясните как сделали, я новичок мне будет очень полезно, собственно вот код:
Код:
#include <a_samp>

#define COLOR_YELLOW 0xFFFF00FF
#define KNOWNCOLOR_KHAKI 0xF0E68CFF

new Float:P[3];

new Fire[MAX_VEHICLES][4];



new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new G[MAX_VEHICLES];
new Time[MAX_VEHICLES];
new Weather = 2;//погодка в настоящем времени.
new delorian;
new bool:Block = false;
new Toplivo;
new Poloniy[MAX_PLAYERS];

public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print(" Док, ты хочешь сказать, что ты изобрел машину времени?");
	print("--------------------------------------\n");
	SetTimer("SpeedUpdate",100,1);
	delorian = CreateVehicle(496,2096.4307,1283.8900,10.5248,178.8482,7,7,60);
	SetVehicleNumberPlate(delorian, "ENB");
	Textdraw0 = TextDrawCreate(542.000000,387.000000,"Generator: Off");
	Textdraw1 = TextDrawCreate(542.000000,405.000000,"Speed:188");
	TextDrawUseBox(Textdraw0,1);
	TextDrawBoxColor(Textdraw0,0x00000066);
	TextDrawTextSize(Textdraw0,617.000000,2.000000);
	TextDrawUseBox(Textdraw1,1);
	TextDrawBoxColor(Textdraw1,0x00000066);
	TextDrawTextSize(Textdraw1,617.000000,0.000000);
	TextDrawAlignment(Textdraw0,0);
	TextDrawAlignment(Textdraw1,0);
	TextDrawBackgroundColor(Textdraw0,0x000000ff);
	TextDrawBackgroundColor(Textdraw1,0x000000ff);
	TextDrawFont(Textdraw0,1);
	TextDrawLetterSize(Textdraw0,0.199999,1.500000);
	TextDrawFont(Textdraw1,1);
	TextDrawLetterSize(Textdraw1,0.399999,1.000000);
	TextDrawColor(Textdraw0,0xffff00ff);
	TextDrawColor(Textdraw1,0xffff00ff);
	TextDrawSetOutline(Textdraw0,1);
	TextDrawSetOutline(Textdraw1,1);
	TextDrawSetProportional(Textdraw0,1);
	TextDrawSetProportional(Textdraw1,1);
	TextDrawSetShadow(Textdraw0,1);
	TextDrawSetShadow(Textdraw1,1);
	Textdraw2 = TextDrawCreate(542.000000,418.000000,"Plutonium:Yes");
	TextDrawUseBox(Textdraw2,1);
	TextDrawBoxColor(Textdraw2,0x00000066);
	TextDrawTextSize(Textdraw2,617.000000,-1.000000);
	TextDrawAlignment(Textdraw2,0);
	TextDrawBackgroundColor(Textdraw2,0x000000ff);
	TextDrawFont(Textdraw2,1);
	TextDrawLetterSize(Textdraw2,0.299999,1.000000);
	TextDrawColor(Textdraw2,0xffff00ff);
	TextDrawSetOutline(Textdraw2,1);
	TextDrawSetProportional(Textdraw2,1);
	TextDrawSetShadow(Textdraw2,1);
	return 1;
}

public OnFilterScriptExit()
{
	DestroyVehicle(delorian);
	TextDrawHideForAll(Textdraw0);
	TextDrawHideForAll(Textdraw1);
	TextDrawHideForAll(Textdraw2);
	TextDrawDestroy(Textdraw0);
	TextDrawDestroy(Textdraw1);
	TextDrawDestroy(Textdraw2);
	for(new i; i < GetMaxPlayers(); i++)DeleteFire(i);
	print("Машина времени выгружена");
	return 1;
}


forward SpeedUpdate();

public SpeedUpdate()
{
    new string[128]; // объявляем одномерный массив
    for(new i; i<GetMaxPlayers(); i++) // объявляем цикл
    {
        if((GetPlayerState(i) == PLAYER_STATE_DRIVER) && GetPlayerVehicleID(i) == delorian) // Если игрок - водитель ТС
        {
            if(Toplivo > 0)TextDrawSetString(Textdraw2, "Plutonium:Yes");
            else if(Toplivo == 0)TextDrawSetString(Textdraw2, "Plutonium:No");
            
            if(G[delorian] == 1)TextDrawSetString(Textdraw0, "Generator: On");
            else if(G[delorian] == 0)TextDrawSetString(Textdraw0, "Generator: Off");
			format(string, sizeof string, "Speed:%d",GetVehicleSpeed(i));
			TextDrawSetString(Textdraw1, string);
			if((GetVehicleSpeed(i) >= 88 && G[delorian] == 1)&& Block == false)
			{
               Block = true;
               EffectFire(i);
               if(Time[delorian] == 0)SetTimerEx("Tele",1300,0,"d",i);
               else if(Time[delorian] == 1)SetTimerEx("TeleNaz",1300,0,"d",i);
			}
        }
    }
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
	if(vehicleid == delorian)
	{
	   SetVehicleVirtualWorld(delorian,0);
	   SetVehicleNumberPlate(delorian, "ENB");
	   Toplivo = 0;
	   G[delorian] = 0;
    }
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	if(vehicleid == delorian)SendClientMessage(killerid,KNOWNCOLOR_KHAKI,"Вот она и уничтожена Док... Как ты и хотел.");
	return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/plutonium", cmdtext, true, 10) == 0)
	{
		   if(Poloniy[playerid] > 0) return SendClientMessage(playerid,COLOR_YELLOW,"У вас уже есть плутоний");
		   if(GetPlayerMoney(playerid) > 0)
		   {
			  GivePlayerMoney(playerid, 0);
			  Poloniy[playerid] = 1;
			  SendClientMessage(playerid,COLOR_YELLOW,"Заряд плутония успешно куплен. Зарядка в делориан произойдет во время включения накопителя");
		   }
		   else return SendClientMessage(playerid,KNOWNCOLOR_KHAKI,"Плутоний для путешествия 2 раза стоит 0$");
		   return 1;
	}
	return 0;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{

	 if(newkeys == 4 && (GetPlayerVehicleID(playerid) == delorian && GetPlayerState(playerid) == PLAYER_STATE_DRIVER))
	 {
	   if(G[delorian] == 1)
	   {
		 G[delorian] = 0;
		 Block = false;
		 SendClientMessage(playerid,COLOR_YELLOW,"Потоковый накопитель отключен");
		 return 1;
	   }
	   else if(G[delorian] == 0)
	   {
	   if(Toplivo > 0)
	   {
         G[delorian] = 1;
         Block = false;
         SendClientMessage(playerid,COLOR_YELLOW,"Потоковый накопитель включен");
         return 1;
	   }
	   else if(Toplivo < 1)
	   {
		 if(Poloniy[playerid] > 0)
		 {
		   G[delorian] = 1;
           Block = false;
           Poloniy[playerid] = 0;
           SendClientMessage(playerid,COLOR_YELLOW,"Потоковый накопитель включен.");
           SendClientMessage(playerid,COLOR_YELLOW,"Заряд плутония заряжен в делориан.");
           Toplivo += 2;
		 }
		 else return SendClientMessage(playerid,KNOWNCOLOR_KHAKI,"Нет заряда плутония. Купите его командой /plutonium.");
	   }
	   }
     }
	 return 1;
}


forward EffectFire(playerid);

public EffectFire(playerid)
{
        Fire[delorian][0] = CreateObject(18694,0,0,0,0,0,0);
        Fire[delorian][1] = CreateObject(18694,0,0,0,0,0,0);
        Fire[delorian][2] = CreateObject(18694,0,0,0,0,0,0);
        Fire[delorian][3] = CreateObject(18694,0,0,0,0,0,0);
        AttachObjectToVehicle(Fire[delorian][0], delorian, -0.8, 2.0, -2.0, 0.0, 0.0, 0.0);
        AttachObjectToVehicle(Fire[delorian][1], delorian, 0.8, 2.0, -2.0, 0.0, 0.0, 0.0);
        AttachObjectToVehicle(Fire[delorian][2], delorian, -0.8, -2.0, -2.0, 0.0, 0.0, 0.0);
        AttachObjectToVehicle(Fire[delorian][3], delorian, 0.8, -2.0, -2.0, 0.0, 0.0, 0.0);
	    return 1;
}

forward DeleteFire(playerid);

public DeleteFire(playerid)
{
        for(new i; i < 5; i++)DestroyObject(Fire[delorian][i]);
	    return 1;
}


new Passenger;

forward Tele(playerid);

public Tele(playerid)
{
   if(GetVehicleSpeed(playerid) >= 88)
   {
		new seat;
		for(new i; i < GetMaxPlayers(); i++)
	    {
	       if((GetPlayerState(i) != PLAYER_STATE_DRIVER) && GetPlayerVehicleID(i) == delorian)
	       {
		      Passenger = 1;
		      seat = GetPlayerVehicleSeat(i);
           }
        }
        SetPlayerWeather(playerid,random(15));
        G[delorian] = 0;
        Time[delorian] = 1;
        Block = false;
        SetVehicleHealth(delorian,50000);
        GetVehiclePos(delorian,P[0],P[1],P[2]);
        CreateExplosion(P[0],P[1],P[2],10,0.0);
        SetVehicleHealth(delorian,1000);
        SetVehicleVirtualWorld(delorian,12);
        if(Toplivo > 0)Toplivo --;
        SetPlayerVirtualWorld(playerid,12);
        PutPlayerInVehicle(playerid,delorian,0);
        if(Passenger == 1)
        {
           for(new i; i < GetMaxPlayers(); i++)
	       {
             if((GetPlayerState(i) != PLAYER_STATE_DRIVER) && GetPlayerVehicleID(i) == delorian)
	         {
               SetPlayerVirtualWorld(i,12);
               SetPlayerWeather(i,random(15));
               PutPlayerInVehicle(i,delorian,seat);
             }
           }
           SetVehicleSpeed(delorian,203);
        }
        Passenger = 0;
        DeleteFire(playerid);
   }
   else
   {
      DeleteFire(playerid);
      Block = false;
   }
   return 1;
}


forward TeleNaz(playerid);

public TeleNaz(playerid)
{
   if(GetVehicleSpeed(playerid) >= 88)
   {
		new seat;
		for(new i; i < GetMaxPlayers(); i++)
	    {
	       if((GetPlayerState(i) != PLAYER_STATE_DRIVER) && GetPlayerVehicleID(i) == delorian)
	       {
		      Passenger = 1;
		      seat = GetPlayerVehicleSeat(i);
           }
        }
        SetPlayerWeather(playerid,Weather);
        G[delorian] = 0;
        Time[delorian] = 0;
        Block = false;
        SetVehicleHealth(delorian,50000);
        GetVehiclePos(delorian,P[0],P[1],P[2]);
        CreateExplosion(P[0],P[1],P[2],10,0.0);
        SetVehicleHealth(delorian,1000);
        SetVehicleVirtualWorld(delorian,0);
        if(Toplivo > 0)Toplivo --;
        SetPlayerVirtualWorld(playerid,0);
        PutPlayerInVehicle(playerid,delorian,0);
        if(Passenger == 1)
        {
           for(new i; i < GetMaxPlayers(); i++)
	       {
             if((GetPlayerState(i) != PLAYER_STATE_DRIVER) && GetPlayerVehicleID(i) == delorian)
	         {
               SetPlayerVirtualWorld(i,0);
               SetPlayerWeather(i,random(15));
               PutPlayerInVehicle(i,delorian,seat);
             }
           }
           SetVehicleSpeed(delorian,203);
        }
		Passenger = 0;
        DeleteFire(playerid);
   }
   else
   {
      DeleteFire(playerid);
      Block = false;
   }
   return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER && GetPlayerVehicleID(playerid) == delorian)
    {
	    TextDrawShowForPlayer(playerid, Textdraw0);
	    TextDrawShowForPlayer(playerid, Textdraw1);
	    TextDrawShowForPlayer(playerid, Textdraw2);
	    SendClientMessage(playerid,COLOR_YELLOW,"Добро пожаловать в машину времени. Для путешествия во времени включите потоковый накопитель.");
	    SendClientMessage(playerid,COLOR_YELLOW,"Накопитель включается на ALT. Разгоняйтесь до 88 на спидометре и отправляйтесь в прошлое. ");
	}
    if(newstate == PLAYER_STATE_ONFOOT)
	{
	   TextDrawHideForPlayer(playerid, Textdraw0);
	   TextDrawHideForPlayer(playerid, Textdraw1);
	   TextDrawHideForPlayer(playerid, Textdraw2);
	}
	return 1;
}
stock GetVehicleSpeed(playerid)
{
    new Float:ST[4];
    if(IsPlayerInAnyVehicle(playerid))
	GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
	else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
    ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 150.3;
    return floatround(ST[3]);
}
stock SetVehicleSpeed(vehicleid,mph)
{
    new Float:Vx, Float:Vy, Float:Vz ,Float:speeds, Float:multiple;
    GetVehicleVelocity(vehicleid,Vx,Vy,Vz);
    speeds = floatsqroot(Vx*Vx + Vy*Vy + Vz*Vz);
    if(speeds > 0)
    {
        multiple = (mph / (speeds * 250));
        return SetVehicleVelocity(vehicleid, Vx*multiple, Vy*multiple, Vz*multiple);
    }
    return 0;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу