Guest User

Untitled

a guest
Oct 5th, 2011
456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 20.01 KB | None | 0 0
  1. #include <a_samp>
  2. #define nomerok "Car Bond" // Номер
  3. #define DefaultPaswword "1234" // стандартный пароль
  4. forward times();
  5. forward nevidim(playerid);
  6. new
  7.     timer1, carbond, strin[25],
  8.     Apec, AHTOXA, time,
  9.     PlayerText3D:CarLabel[MAX_PLAYERS],
  10.     bool:LabelActive[MAX_PLAYERS],
  11.     Float:OldHealth[MAX_PLAYERS],
  12.     Float:OldDamage[MAX_PLAYERS],
  13.     Float:CDamage[MAX_PLAYERS],
  14.     timercar[MAX_PLAYERS],
  15.     Float:plocx,Float:plocy,Float:plocz,Float:ploca,
  16.     ship, passon = 1, pass[32], hpon,
  17.     engine,lights,alarm,doors,bonnet,boot,objective, panels, tires,
  18.     smoketimer, smoke,smoke1,smoke2,
  19.     shiptimer, boomtimer, boomertimer,bool:boomertimerOn,
  20.     vvodpass, obj[46], id;
  21.  
  22. public OnFilterScriptInit()
  23. {
  24.     print("\n--------------------------------------");
  25.     print(" Blank Filterscript by your name here");
  26.     print("--------------------------------------\n");
  27.     time = SetTimer("times", 1000, true);
  28.     carbond = AddStaticVehicle(555,-1944.19995117,265.89999390,35.90000153,90.00000000,0,0); //
  29.     obj[0] = CreateObject(3438,-1943.00000000,266.00000000,34.79999924,0.00000000,90.00000000,0.00000000); //
  30.     obj[1] = CreateObject(3440,-1948.40002441,266.00000000,32.50000000,0.00000000,0.00000000,0.00000000); //
  31.     obj[2] = CreateObject(11472,-1943.59997559,266.00000000,29.10000038,90.00000000,0.00000000,270.00000000); //
  32.     obj[3] = CreateObject(11472,-1943.59960938,266.00000000,29.10000038,90.00000000,0.00000000,242.00000000); //
  33.     obj[4] = CreateObject(11472,-1943.59960938,266.00000000,29.10000038,90.00000000,0.00000000,213.99584961); //
  34.     obj[5] = CreateObject(11472,-1943.59960938,266.00000000,29.10000038,90.00000000,0.00000000,185.99169922); //
  35.     obj[6] = CreateObject(11472,-1941.00000000,266.20001221,29.10000038,90.00000000,0.00000000,185.73559570); //
  36.     obj[7] = CreateObject(11472,-1943.59960938,266.00000000,29.10000038,90.00000000,0.00000000,298.00000000); //
  37.     obj[8] = CreateObject(11472,-1943.59960938,266.00000000,29.10000038,90.00000000,0.00000000,325.99865723); //
  38.     obj[9] = CreateObject(11472,-1943.59960938,266.00000000,29.10000038,90.00000000,0.00000000,353.74731445); //
  39.     obj[10] = CreateObject(11472,-1942.29980469,266.09960938,29.10000038,90.00000000,0.00000000,182.73754883); //
  40.     obj[11] = CreateObject(11472,-1942.30004883,265.89999390,29.10000038,90.00000000,0.00000000,357.49328613); //
  41.     obj[12] = CreateObject(11472,-1941.19995117,265.79998779,29.10000038,90.00000000,0.00000000,352.48962402); //
  42.     obj[13] = CreateObject(3440,-1946.19995117,266.00000000,34.70000076,0.00000000,90.00000000,180.25000000); //
  43.     obj[14] = CreateObject(3440,-1945.80004883,267.70001221,34.70000076,0.00000000,90.00000000,315.00000000); //
  44.     obj[15] = CreateObject(3440,-1945.80004883,264.29998779,34.70000076,0.00000000,90.00000000,45.00000000); //
  45.     obj[16] = CreateObject(1649,-1943.09997559,269.20001221,34.90000153,270.00000000,0.00000000,90.00000000); //
  46.     obj[17] = CreateObject(1649,-1943.09997559,262.79998779,34.90000153,270.00000000,0.00000000,90.00000000); //
  47.     obj[18] = CreateObject(3440,-1941.69995117,269.00000000,34.70000076,0.00000000,90.00000000,90.00000000); //
  48.     obj[19] = CreateObject(3440,-1944.80004883,268.79998779,34.70000076,0.00000000,90.00000000,90.00000000); //
  49.     obj[20] = CreateObject(3440,-1944.80004883,263.20001221,34.70000076,0.00000000,90.00000000,270.00000000); //
  50.     obj[21] = CreateObject(3440,-1941.69995117,262.89999390,34.70000076,0.00000000,90.00000000,270.00000000); //
  51.     obj[22] = CreateObject(3440,-1944.80004883,271.10000610,32.40000153,0.00000000,0.00000000,0.00000000); //
  52.     obj[23] = CreateObject(3440,-1941.59997559,271.10000610,32.40000153,0.00000000,0.00000000,0.00000000); //
  53.     obj[24] = CreateObject(3440,-1941.69995117,260.70001221,32.40000153,0.00000000,0.00000000,0.00000000); //
  54.     obj[25] = CreateObject(3440,-1944.80004883,260.89999390,32.40000153,0.00000000,0.00000000,0.00000000); //
  55.     obj[26] = CreateObject(3440,-1947.40002441,262.70001221,32.40000153,0.00000000,0.00000000,0.00000000); //
  56.     obj[27] = CreateObject(3440,-1947.40002441,269.29998779,32.40000153,0.00000000,0.00000000,0.00000000); //
  57.     obj[28] = CreateObject(1649,-1946.27001953,266.00000000,34.90000153,270.00000000,0.00000000,0.00000000); //
  58.     obj[29] = CreateObject(2707,-1945.90002441,267.79998779,35.11999893,0.00000000,179.99450684,179.99450684); //
  59.     obj[30] = CreateObject(2707,-1944.80004883,268.70001221,35.11999893,0.00000000,179.99450684,179.99450684); //
  60.     obj[31] = CreateObject(2707,-1944.80004883,263.29998779,35.11999893,0.00000000,179.99450684,179.99450684); //
  61.     obj[32] = CreateObject(2707,-1945.93005371,264.29998779,35.11999893,0.00000000,179.99450684,179.99450684); //
  62.     obj[33] = CreateObject(2707,-1946.50000000,266.01953125,35.11999893,0.00000000,179.99450684,179.99450684); //
  63.     obj[34] = CreateObject(19284,-1946.50000000,266.00000000,35.20000076,0.00000000,0.00000000,0.00000000); //
  64.     obj[35] = CreateObject(19284,-1945.90002441,267.79998779,35.20000076,0.00000000,0.00000000,0.00000000); //
  65.     obj[36] = CreateObject(19284,-1944.80004883,268.70001221,35.20000076,0.00000000,0.00000000,0.00000000); //
  66.     obj[37] = CreateObject(19284,-1944.80004883,263.29998779,35.20000076,0.00000000,0.00000000,0.00000000); //
  67.     obj[38] = CreateObject(19284,-1946.00000000,264.29998779,35.20000076,0.00000000,0.00000000,0.00000000); //
  68.     obj[39] = CreateObject(19279,-1947.40002441,262.60000610,35.09999847,0.00000000,0.00000000,312.25000000); //
  69.     obj[40] = CreateObject(19279,-1947.50000000,269.39999390,35.09999847,0.00000000,0.00000000,232.24792480); //
  70.     obj[41] = CreateObject(19279,-1944.80004883,271.20001221,35.09999847,0.00000000,0.00000000,182.24548340); //
  71.     obj[42] = CreateObject(19279,-1944.80004883,260.79998779,35.09999847,0.00000000,0.00000000,0.00000000); //
  72.     obj[43] = CreateObject(9123,-1943.19995117,266.00000000,9.50000000,0.00000000,90.00000000,0.00000000); //
  73.     obj[44] = CreateObject(9129,-1940.69995117,265.79998779,34.79999924,0.00000000,0.00000000,270.00000000); //
  74.     obj[45] = CreateObject(9129,-1940.69995117,265.79998779,32.90000153,0.00000000,0.00000000,270.00000000); //
  75.     SetVehicleNumberPlate(carbond,nomerok);
  76.     SetVehicleToRespawn(carbond);
  77.     AddVehicleComponent(carbond, 1010);
  78.     strmid(pass,DefaultPaswword,0,32);
  79.     return 1;
  80. }
  81. public OnFilterScriptExit()
  82. {
  83.     DestroyVehicle(carbond);
  84.     DestroyObject(smoke); DestroyObject(smoke1); DestroyObject(smoke2);
  85.     DestroyObject(ship);
  86.     KillTimer(time);
  87.     for(new i; i < 46; i++)
  88.     {
  89.         DestroyObject(obj[i]);
  90.     }
  91.     return 1;
  92. }
  93.  
  94. public times()// таймер не трогать
  95. {
  96.     if(shiptimer >= 1) { shiptimer -= 1;  }
  97.     if(smoketimer >= 1) { smoketimer -= 1; }
  98.     else { DestroyObject(smoke); DestroyObject(smoke1); DestroyObject(smoke2); }
  99.     if(AHTOXA >= 1) { AHTOXA -= 1; }
  100.     if(boomtimer >= 1) { boomtimer -= 1; }
  101.     if(boomertimerOn == true && boomertimer >= 1) { format(strin,sizeof(strin),"~r~Wait %d",boomertimer); GameTextForPlayer(id, strin, 1000, 4); boomertimer -= 1; }
  102.     else {
  103.     if(boomertimerOn == true) {
  104.     new Float:Coord[3]; GetVehiclePos(carbond,Coord[0],Coord[1],Coord[2]); SetVehicleToRespawn(carbond);
  105.     CreateExplosion(Coord[0],Coord[1],Coord[2],2,10); CreateExplosion(Coord[0]-5,Coord[1],Coord[2],2,10);
  106.     CreateExplosion(Coord[0]+5,Coord[1],Coord[2],2,10); CreateExplosion(Coord[0],Coord[1]-5,Coord[2],2,10);
  107.     CreateExplosion(Coord[0],Coord[1]+5,Coord[2],2,10); boomertimerOn = false;
  108.     }
  109.     }
  110.     return 0;
  111. }
  112.  
  113. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  114. {
  115.     if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) return 1;
  116.     if(newkeys & 2048)
  117.     {
  118.         if(!vvodpass && passon) return SendClientMessage(playerid, 0xFFFFFFF,"функционал автомобиля заблокирован войдите в меню /bond");
  119.         if(GetPlayerVehicleID(playerid) == carbond)
  120.         {
  121.             if(!shiptimer)
  122.             {
  123.                 DestroyObject(ship);
  124.                 GetVehicleZAngle(carbond,ploca);
  125.                 GetVehiclePos(carbond,plocx,plocy,plocz);
  126.                 ship = CreateObject(2899, plocx+10.0*floatsin(ploca,degrees),plocy-4.0*floatcos(ploca,degrees),plocz-0.65, 0, 0, ploca-90);
  127.                 shiptimer = 180;
  128.             }
  129.             else
  130.             {
  131.                 format(strin,sizeof(strin),"Ждите %d перезарядка...",shiptimer);
  132.                 SendClientMessage(playerid, 0xFFFFFFF,strin);
  133.             }
  134.         }
  135.         return 1;
  136.     }
  137.     if(newkeys & 8192)
  138.     {
  139.         if(!vvodpass && passon) return SendClientMessage(playerid, 0xFFFFFFF,"функционал автомобиля заблокирован войдите в меню /bond");
  140.         if(GetPlayerVehicleID(playerid) == carbond)
  141.         {
  142.             if(!AHTOXA)
  143.             {
  144.                 AHTOXA = 120; smoketimer = 30;
  145.                 smoke = CreateObject(18715,0,0,0,0,0,0);
  146.                 smoke1 = CreateObject(18715,0,0,0,0,0,0);
  147.                 smoke2 = CreateObject(18715,0,0,0,0,0,0);
  148.                 AttachObjectToVehicle(smoke, carbond, 0, -1, -1, -90, 0, 180);
  149.                 AttachObjectToVehicle(smoke1, carbond, 0, 1, 1, -90, 0, 180);
  150.                 AttachObjectToVehicle(smoke2, carbond, 0, 2, 2, -90, 0, 180);
  151.             }
  152.             else
  153.             {
  154.                 format(strin,sizeof(strin),"Ждите %d перезарядка...",AHTOXA);
  155.                 SendClientMessage(playerid, 0xFFFFFFF,strin);
  156.             }
  157.         }
  158.     }
  159.     if(newkeys & 4096)
  160.     {
  161.         if(!vvodpass && passon) return SendClientMessage(playerid, 0xFFFFFFF,"функционал автомобиля заблокирован войдите в меню /bond");
  162.         if(GetPlayerVehicleID(playerid) == carbond)
  163.         {
  164.             if(!boomtimer)
  165.             {
  166.                 new AHTOXA1;
  167.                 AHTOXA1 = CreateObject(18730, 0, 0, 0, 0, 0, 0);
  168.                 AttachObjectToVehicle(AHTOXA1, carbond, 0, -1, 2, -90, 0, 180);
  169.                 new Float:Cord[4];
  170.                 GetVehicleZAngle(carbond,Cord[3]);
  171.                 GetVehiclePos(carbond,Cord[0],Cord[1],Cord[2]);
  172.                 CreateExplosion(Cord[0]+10.0*floatsin(Cord[3],degrees),Cord[1]-4.0*floatcos(Cord[3],degrees),Cord[2]-0.65, 11, 10.0);
  173.                 boomtimer = 240;
  174.             }
  175.             else
  176.             {
  177.                 format(strin,sizeof(strin),"Ждите %d перезарядка...",boomtimer);
  178.                 SendClientMessage(playerid, 0xFFFFFFF,strin);
  179.             }
  180.         }
  181.     }
  182.     if(newkeys & 16384 && GetPlayerVehicleID(playerid) == carbond) { OnPlayerCommandText(playerid,"/bond"); }
  183.     return 1;
  184. }
  185.  
  186. public OnPlayerCommandText(playerid, cmdtext[])
  187. {
  188.     if(strcmp(cmdtext, "/bond",true) == 0)
  189.     {
  190.         if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) return 1;
  191.         if(GetPlayerVehicleID(playerid) == carbond)
  192.         {
  193.             if(passon == 1 && !vvodpass)
  194.             {
  195.                 ShowPlayerDialog(playerid,3425,DIALOG_STYLE_INPUT,"Борт Компьютер","Эта машина защищена паролем если знаете его то введите\nно можете и погадать :D","Далее","Выйти");
  196.             }
  197.             else
  198.             {
  199.                 ShowPlayerDialog(playerid,3422,DIALOG_STYLE_LIST,"Борт Компьютер","[1]Маскировка\n[2]Сменить цвет\n[3]Датчики урона Вкл|Выкл\n[4]Починить шины\n[5]Пароль\n[6]Самоуничтожение","далее","выйти");
  200.             }
  201.         }
  202.         else return SendClientMessage(playerid, 0xFFFFFFFF, "Вы не в Кар Бонде! :D");
  203.         return 1;
  204.     }
  205.     if(strcmp(cmdtext, "/getbondcar", true) == 0)
  206.     {
  207.         if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFF, "Эта тачка сильно крута для тебя xD");
  208.         new Float:x,Float:y,Float:z;
  209.         GetPlayerPos(playerid,x,y,z);
  210.         SetVehiclePos(carbond,x,y,z);
  211.         PutPlayerInVehicle(playerid,carbond,0);
  212.         return 1;
  213.     }
  214.     if(strcmp(cmdtext, "/getpass", true) == 0)
  215.     {
  216.         if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFF, "Вы не админ");
  217.         SendClientMessage(playerid, 0xFFFFFF,"Пароль по умолчанию 1234");
  218.         format(strin,sizeof(strin),"Пароль сейчас - %s", pass);
  219.         SendClientMessage(playerid, 0xFFFFFF, strin);
  220.         return 1;
  221.     }
  222.     return false;
  223. }
  224.  
  225. public nevidim(playerid)
  226. {
  227.     if(GetVehicleSpeed() != 0)
  228.     {
  229.         LinkVehicleToInterior(carbond, 0);
  230.     }
  231.     else
  232.     {
  233.         LinkVehicleToInterior(carbond, 1);
  234.     }
  235.     return 0;
  236. }
  237. new oldcar;
  238. public OnPlayerStateChange(playerid, newstate, oldstate)
  239. {
  240.     if(newstate == PLAYER_STATE_DRIVER && GetPlayerVehicleID(playerid) == carbond)
  241.     {
  242.         for(new i = 0; i < GetMaxPlayers(); i++)
  243.         {
  244.             ShowPlayerNameTagForPlayer(i, playerid, 0);
  245.         }
  246.         oldcar = carbond;
  247.     }
  248.     if(newstate == PLAYER_STATE_ONFOOT && oldcar)
  249.     {
  250.     LinkVehicleToInterior(carbond, 0);
  251.     KillTimer(timer1);
  252.     vvodpass = 0;
  253.     oldcar = 0;
  254.     for(new i = 0; i < MAX_PLAYERS; i++)
  255.     {
  256.         ShowPlayerNameTagForPlayer(i, playerid, 1);
  257.     }
  258.     }
  259.     return 0;
  260. }
  261. public OnPlayerUpdate(playerid)
  262. {
  263.     if(hpon == 1) UpdateHP(playerid);
  264.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  265.     {
  266.         if(IsPlayerInRangeOfPoint(playerid, 3.0, plocx+10.0*floatsin(ploca,degrees),plocy-4.0*floatcos(ploca,degrees),plocz-0.65))
  267.         {
  268.             GetVehicleDamageStatus(GetPlayerVehicleID(playerid), panels, doors, lights, tires);
  269.             tires = encode_tires(1, 1, 1, 1);
  270.             UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid), panels, doors, lights, tires);
  271.             return 0;
  272.         }
  273.     }
  274.     return 1;
  275. }
  276.  
  277. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  278. {
  279.     switch(dialogid)
  280.     {
  281.         case 3422:
  282.         {
  283.             if(response)
  284.             {
  285.                 if(GetPlayerVehicleID(playerid) != carbond) return SendClientMessage(playerid, 0xFFFFFFFF, "Вы не в Кар Бонде! :D");
  286.                 if(listitem == 0)
  287.                 {
  288.                     ShowPlayerDialog(playerid,3423,DIALOG_STYLE_MSGBOX ,"Бортовой Компьютер","Маскировка","Включить","Выключить");
  289.                 }
  290.                 if(listitem == 1)
  291.                 {
  292.                     if(Apec == 1)
  293.                     {
  294.                         ChangeVehicleColor(carbond, 0, 0);
  295.                         Apec = 0;
  296.                     }
  297.                     else
  298.                     {
  299.                         ChangeVehicleColor(carbond, 1, 1);
  300.                         Apec = 1;
  301.                     }
  302.                 }
  303.                 if(listitem == 2)
  304.                 {
  305.                     if(hpon == 0)
  306.                     {
  307.                         CarLabel[playerid] = CreatePlayer3DTextLabel(playerid," ",-1,0,0,0.9,10.0,INVALID_PLAYER_ID,carbond,1);
  308.                         UpdateBar(playerid);
  309.                         hpon = 1;
  310.                     }
  311.                     else
  312.                     {
  313.                         DeletePlayer3DTextLabel(playerid,CarLabel[playerid]);
  314.                         hpon = 0;
  315.                     }
  316.                 }
  317.                 if(listitem == 3)
  318.                 {
  319.                     new carid = GetPlayerVehicleID(playerid);
  320.                     GetVehicleDamageStatus(carid, panels, doors, lights, tires);
  321.                     tires = encode_tires(0, 0, 0, 0);
  322.                     UpdateVehicleDamageStatus(carid, panels, doors, lights, tires);
  323.                 }
  324.                 if(listitem == 4)
  325.                 {
  326.                     ShowPlayerDialog(playerid,3426,DIALOG_STYLE_LIST ,"Бортовой Компьютер","[1]Включить/выключить пароль\n[2]Сменить пароль","Открыть","Закрыть");
  327.                 }
  328.                 if(listitem == 5)
  329.                 {
  330.                     ShowPlayerDialog(playerid,3428,DIALOG_STYLE_INPUT ,"Введите таймер","Дада сюда","Ок","НеОК");
  331.                 }
  332.             }
  333.         }
  334.         case 3423:
  335.         {
  336.             if(response)
  337.             {
  338.                 timer1 = SetTimer("nevidim", 2000, true);
  339.             }
  340.             else
  341.             {
  342.                 KillTimer(timer1);
  343.                 LinkVehicleToInterior(carbond, 0);
  344.             }
  345.         }
  346.         case 3424:
  347.         {
  348.             if(response)
  349.             {
  350.                 GetVehicleParamsEx(carbond,engine,lights,alarm,doors,bonnet,boot,objective);
  351.                 SetVehicleParamsEx(carbond,engine,lights,alarm,doors,bonnet,1,objective);
  352.             }
  353.             else
  354.             {
  355.                 GetVehicleParamsEx(carbond,engine,lights,alarm,doors,bonnet,boot,objective);
  356.                 SetVehicleParamsEx(carbond,engine,lights,alarm,doors,bonnet,0,objective);
  357.             }
  358.         }
  359.         case 3425:
  360.         {
  361.             if(response)
  362.             {
  363.                 if(strcmp(pass, inputtext, false, strlen(inputtext))==0 && strlen(inputtext) == strlen(pass))
  364.                 {
  365.                     vvodpass = 1;
  366.                 }
  367.                 else
  368.                 {
  369.                     ShowPlayerDialog(playerid,3425,DIALOG_STYLE_INPUT,"Борт Компьютер","Эта машина защищена паролем если знаете то вводите\nно можете и погадать : D","Далее","Выйти");
  370.                     return 1;
  371.                 }
  372.             }
  373.             else
  374.             {
  375.                 RemovePlayerFromVehicle(playerid);
  376.             }
  377.         }
  378.         case 3426:
  379.         {
  380.             if(response)
  381.             {
  382.                 if(listitem == 0)
  383.                 {
  384.                     if(passon == 0)
  385.                     {
  386.                         passon = 1;
  387.                         SendClientMessage(playerid, 0xFFFFFF, "Теперь функции машины запаролены!");
  388.                     }
  389.                     else
  390.                     {
  391.                         passon = 0;
  392.                         SendClientMessage(playerid, 0xFFFFFF, "Теперь функции машины эээ распаролены?");
  393.                     }
  394.                     return 1;
  395.                 }
  396.                 if(listitem == 1)
  397.                 {
  398.                     ShowPlayerDialog(playerid,3427,DIALOG_STYLE_INPUT,"Борт Компьютер","Cюда можете ввести новый пароль","Ок","Нет");
  399.                     return 1;
  400.                 }
  401.             }
  402.         }
  403.         case 3427:
  404.         {
  405.             if(response)
  406.             {
  407.                 if(!strlen(inputtext)) return SendClientMessage(playerid, 0xFFFFFFFF, "Введи пароль будь мужЫком!!!");
  408.                 new message[61];
  409.                 strmid(pass,inputtext,0,32);
  410.                 format(message,sizeof(message),"Пароль успешно сменён на - %s",inputtext);
  411.                 SendClientMessage(playerid, 0xFFFFFFFF, message);
  412.             }
  413.         }
  414.         case 3428:
  415.         {
  416.             if(response)
  417.             {
  418.                 if(boomertimerOn == true) return SendClientMessage(playerid, 0xFFFFFFFF, "Пизда таймер уже запущен!");
  419.                 if(strval(inputtext) > 60 || strval(inputtext) < 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Не больше 60 и не меньше 0");
  420.                 boomertimer = strval(inputtext);
  421.                 boomertimerOn = true;
  422.                 id = playerid;
  423.             }
  424.         }
  425.     }
  426.     return 0;
  427. }
  428.  
  429. stock GetVehicleSpeed()
  430. {
  431.     new Float:ST[4];
  432.     GetVehicleVelocity(carbond,ST[0],ST[1],ST[2]);
  433.     ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 150.3;
  434.     return floatround(ST[3]);
  435. }
  436.  
  437. encode_tires(tire1, tire2, tire3, tire4) return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3);
  438.  
  439. public OnPlayerConnect(playerid) { LabelActive[playerid] = false; SetPlayerColor(playerid, 0xFFFFFF00); }
  440.  
  441. stock UpdateHP(playerid)
  442. {
  443.     if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
  444.     new Float:HP,veh;
  445.     veh = carbond;
  446.     GetVehicleHealth(veh, HP);
  447.     if(HP != OldHealth[playerid])
  448.     {
  449.         OldDamage[playerid]=OldHealth[playerid]-HP;
  450.         OldHealth[playerid] = HP;
  451.         if(OldDamage[playerid] > 0)
  452.         {
  453.  
  454.             new texts[128];
  455.             if(LabelActive[playerid])
  456.             {
  457.                 CDamage[playerid]+=OldDamage[playerid];
  458.                 format(texts,sizeof(texts),"{ffd800}-%.0f\n%s",CDamage[playerid],UpdateString(HP));
  459.                 KillTimer(timercar[playerid]);
  460.                 timercar[playerid] = SetTimerEx("DeleteText", 2000, 0, "i", playerid);
  461.             }
  462.             else
  463.             {
  464.                 LabelActive[playerid] = true;
  465.                 format(texts,sizeof(texts),"{ffd800}-%.0f\n%s",OldDamage[playerid],UpdateString(HP));
  466.                 timercar[playerid] = SetTimerEx("DeleteText", 2000, 0, "i", playerid);
  467.             }
  468.             UpdatePlayer3DTextLabelText(playerid, CarLabel[playerid], -1, texts);
  469.         }
  470.     }
  471.     return 1;
  472. }
  473.  
  474. stock UpdateBar(playerid)
  475. {
  476.     new Float:HP,veh;
  477.     veh = carbond;
  478.     GetVehicleHealth(veh, HP);
  479.     UpdateString(HP);
  480.     UpdatePlayer3DTextLabelText(playerid, CarLabel[playerid], -1, UpdateString(HP));
  481.     return 1;
  482. }
  483.  
  484. stock UpdateString(Float:HP)
  485. {
  486.     new str[30];
  487.     if(HP == 1000)          format(str,sizeof(str),"{00ff00}••••••••••");
  488.     else if(HP >= 900)      format(str,sizeof(str),"{66ff00}•••••••••{ffffff}•");
  489.     else if(HP >= 800)      format(str,sizeof(str),"{7fff00}••••••••{ffffff}••");
  490.     else if(HP >= 700)      format(str,sizeof(str),"{ccff00}•••••••{ffffff}•••");
  491.     else if(HP >= 600)      format(str,sizeof(str),"{f7f21a}••••••{ffffff}••••");
  492.     else if(HP >= 500)      format(str,sizeof(str),"{f4c430}•••••{ffffff}•••••");
  493.     else if(HP >= 400)      format(str,sizeof(str),"{e49b0f}••••{ffffff}••••••");
  494.     else if(HP >= 300)      format(str,sizeof(str),"{e4650e}•••{ffffff}•••••••");
  495.     else if(HP >= 250)      format(str,sizeof(str),"{ff2400}••{ffffff}••••••••");
  496.     else                    format(str,sizeof(str),"{ff2400}Boom!");
  497.     return str;
  498. }
  499.  
  500.  
  501. forward DeleteText(playerid);
  502. public DeleteText(playerid)
  503. {
  504.     KillTimer(timercar[playerid]);
  505.     LabelActive[playerid] = false;
  506.     UpdateBar(playerid);
  507.     CDamage[playerid]=0;
  508.     return 1;
  509. }
  510.  
Advertisement
Add Comment
Please, Sign In to add comment