Advertisement
Kimossab

SAMP - Vehicle Update Function

Mar 23rd, 2015
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.55 KB | None | 0 0
  1. //timers
  2. forward VehiclesU(vid, playerid);
  3. public VehiclesU(vid, playerid)
  4. {
  5.     new Float:sx, Float:sy, Float:sz, Float:speed1, Float:speed2, speedo[40], kms[100], TW[100], oil[100], fuel[100], engine, lights, alarm, doors, bonnet, boot, objective;
  6.     new buffer[vInfo];
  7.     MEM::get_arr(LIST_IT::data_ptr(pvnode[playerid]), _, buffer);
  8.    
  9.     GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
  10.  
  11.     //engine
  12.     if(buffer[StartEng] >= 1)
  13.     {
  14.         printf("%d",buffer[StartEng]);
  15.         if(buffer[StartEng] < 3)
  16.             buffer[StartEng]++;
  17.         else
  18.         {
  19.             SendClientMessage(playerid, X11_GREEN_4, "[INFO]: Engine Started.");
  20.             buffer[StartEng] = 0;
  21.             SetVehicleParamsEx(vid, 1, lights, alarm, doors, bonnet, boot, objective);
  22.         }
  23.         pvnode[playerid]=LIST::insert_arr(vList,pvnode[playerid],buffer);
  24.         LIST::erase(vList,LIST_IT::next(pvnode[playerid]));
  25.         return 1;
  26.     }
  27.     //speed
  28.     GetVehicleVelocity(vid, sx, sy, sz);
  29.     speed1 = (floatsqroot(sx*sx+sy*sy+sz*sz)*240)/1.229576;
  30.     format(speedo, sizeof(speedo), "%0.0f Km/h", speed1);
  31.     TextDrawSetString(Textdraw1[playerid], speedo);
  32.     //Kilometers
  33.     speed2 = (buffer[LSpeed]+speed1)/2.0;
  34.     buffer[vKilometers] += speed2*0.00013888888888888888888888888888;
  35.     buffer[LSpeed] = speed1;
  36.     format(kms, sizeof(kms), "%0.2f Kms", buffer[vKilometers]);
  37.     TextDrawSetString(Textdraw5[playerid], kms);
  38.     //Tire Wear
  39.     buffer[vTireWear] += speed2*0.00015;
  40.     format(TW, sizeof(TW), "Tire Wear : %0.0f%", buffer[vTireWear]);
  41.     new p, d, l, t;
  42.     GetVehicleDamageStatus(vid, p, d, l, t);
  43.     if(buffer[vTireWear] >= 85 && buffer[vTireWear] < 90)
  44.     {
  45.         TextDrawHideForPlayer(playerid, Textdraw12[playerid]);
  46.         TextDrawHideForPlayer(playerid, Textdraw14[playerid]);
  47.         TextDrawColor(Textdraw12[playerid], 0xFF0000AA);
  48.         TextDrawColor(Textdraw14[playerid], 0x9B0000FF);
  49.         TextDrawShowForPlayer(playerid, Textdraw12[playerid]);
  50.         TextDrawShowForPlayer(playerid, Textdraw14[playerid]);
  51.         if(speed2 > 0)
  52.         {
  53.             new rand = random(2000);
  54.             if(rand >= 0 && rand < 1000)
  55.             {
  56.                 new rand3 = random(4);
  57.                 switch(rand3)
  58.                 {
  59.                     case 0:
  60.                     {
  61.                         UpdateVehicleDamageStatus(vid, p, d, l, 1);
  62.                         buffer[vTireWear] = 90;
  63.                     }
  64.                     case 1:
  65.                     {
  66.                         UpdateVehicleDamageStatus(vid, p, d, l, 2);
  67.                         buffer[vTireWear] = 90;
  68.                     }
  69.                     case 2:
  70.                     {
  71.                         UpdateVehicleDamageStatus(vid, p, d, l, 4);
  72.                         buffer[vTireWear] = 90;
  73.                     }
  74.                     case 3:
  75.                     {
  76.                         UpdateVehicleDamageStatus(vid, p, d, l, 8);
  77.                         buffer[vTireWear] = 90;
  78.                     }
  79.                 }
  80.             }
  81.         }
  82.     }
  83.     else if(buffer[vTireWear] >= 90 && buffer[vTireWear] < 95)
  84.     {
  85.         TextDrawHideForPlayer(playerid, Textdraw12[playerid]);
  86.         TextDrawHideForPlayer(playerid, Textdraw14[playerid]);
  87.         TextDrawColor(Textdraw12[playerid], 0xFF0000AA);
  88.         TextDrawColor(Textdraw14[playerid], 0x9B0000FF);
  89.         TextDrawShowForPlayer(playerid, Textdraw12[playerid]);
  90.         TextDrawShowForPlayer(playerid, Textdraw14[playerid]);
  91.         if(speed2 > 0)
  92.         {
  93.             new rand = random(2000), rand3;
  94.             if(rand >= 0 && rand <= 1250)
  95.             {
  96.                 switch(t) // 1, 2, 4 ou 8
  97.                 {
  98.                     case 1:
  99.                     {
  100.                         rand3 = random(3);
  101.                         switch(rand3)
  102.                         {
  103.                             case 0:
  104.                             {
  105.                                 UpdateVehicleDamageStatus(vid, p, d, l, 3);
  106.                                 buffer[vTireWear] = 95;
  107.                             }
  108.                             case 1:
  109.                             {
  110.                                 UpdateVehicleDamageStatus(vid, p, d, l, 5);
  111.                                 buffer[vTireWear] = 95;
  112.                             }
  113.                             case 2:
  114.                             {
  115.                                 UpdateVehicleDamageStatus(vid, p, d, l, 9);
  116.                                 buffer[vTireWear] = 95;
  117.                             }
  118.                         }
  119.                     }
  120.                     case 2:
  121.                     {
  122.                         rand3 = random(3);
  123.                         switch(rand3)
  124.                         {
  125.                             case 0:
  126.                             {
  127.                                 UpdateVehicleDamageStatus(vid, p, d, l, 3);
  128.                                 buffer[vTireWear] = 95;
  129.                             }
  130.                             case 1:
  131.                             {
  132.                                 UpdateVehicleDamageStatus(vid, p, d, l, 6);
  133.                                 buffer[vTireWear] = 95;
  134.                             }
  135.                             case 2:
  136.                             {
  137.                                 UpdateVehicleDamageStatus(vid, p, d, l, 10);
  138.                                 buffer[vTireWear] = 95;
  139.                             }
  140.                         }
  141.                     }
  142.                     case 4:
  143.                     {
  144.                         rand3 = random(3);
  145.                         switch(rand3)
  146.                         {
  147.                             case 0:
  148.                             {
  149.                                 UpdateVehicleDamageStatus(vid, p, d, l, 5);
  150.                                 buffer[vTireWear] = 95;
  151.                             }
  152.                             case 1:
  153.                             {
  154.                                 UpdateVehicleDamageStatus(vid, p, d, l, 6);
  155.                                 buffer[vTireWear] = 95;
  156.                             }
  157.                             case 2:
  158.                             {
  159.                                 UpdateVehicleDamageStatus(vid, p, d, l, 12);
  160.                                 buffer[vTireWear] = 95;
  161.                             }
  162.                         }
  163.                     }
  164.                     case 8:
  165.                     {
  166.                         rand3 = random(3);
  167.                         switch(rand3)
  168.                         {
  169.                             case 0:
  170.                             {
  171.                                 UpdateVehicleDamageStatus(vid, p, d, l, 9);
  172.                                 buffer[vTireWear] = 95;
  173.                             }
  174.                             case 1:
  175.                             {
  176.                                 UpdateVehicleDamageStatus(vid, p, d, l, 10);
  177.                                 buffer[vTireWear] = 95;
  178.                             }
  179.                             case 2:
  180.                             {
  181.                                 UpdateVehicleDamageStatus(vid, p, d, l, 12);
  182.                                 buffer[vTireWear] = 95;
  183.                             }
  184.                         }
  185.                     }
  186.                 }
  187.             }
  188.         }
  189.     }
  190.     else if(buffer[vTireWear] >= 95 && buffer[vTireWear] < 99)
  191.     {
  192.         TextDrawHideForPlayer(playerid, Textdraw12[playerid]);
  193.         TextDrawHideForPlayer(playerid, Textdraw14[playerid]);
  194.         TextDrawColor(Textdraw12[playerid], 0xFF0000AA);
  195.         TextDrawColor(Textdraw14[playerid], 0x9B0000FF);
  196.         TextDrawShowForPlayer(playerid, Textdraw12[playerid]);
  197.         TextDrawShowForPlayer(playerid, Textdraw14[playerid]);
  198.         if(speed2 > 0)
  199.         {
  200.             new rand = random(2000), rand3;
  201.             if(rand >= 0 && rand <= 1500)
  202.             {
  203.                 switch(t) // 3, 5, 6, 9, 10, 12
  204.                 {
  205.                     case 3:
  206.                     {
  207.                         rand3 = random(2);
  208.                         switch(rand3)
  209.                         {
  210.                             case 0:
  211.                             {
  212.                                 UpdateVehicleDamageStatus(vid, p, d, l, 7);
  213.                                 buffer[vTireWear] = 99;
  214.                             }
  215.                             case 1:
  216.                             {
  217.                                 UpdateVehicleDamageStatus(vid, p, d, l, 11);
  218.                                 buffer[vTireWear] = 99;
  219.                             }
  220.                         }
  221.                     }
  222.                     case 5:
  223.                     {
  224.                         rand3 = random(2);
  225.                         switch(rand3)
  226.                         {
  227.                             case 0:
  228.                             {
  229.                                 UpdateVehicleDamageStatus(vid, p, d, l, 7);
  230.                                 buffer[vTireWear] = 99;
  231.                             }
  232.                             case 1:
  233.                             {
  234.                                 UpdateVehicleDamageStatus(vid, p, d, l, 13);
  235.                                 buffer[vTireWear] = 99;
  236.                             }
  237.                         }
  238.                     }
  239.                     case 6:
  240.                     {
  241.                         rand3 = random(2);
  242.                         switch(rand3)
  243.                         {
  244.                             case 0:
  245.                             {
  246.                                 UpdateVehicleDamageStatus(vid, p, d, l, 7);
  247.                                 buffer[vTireWear] = 99;
  248.                             }
  249.                             case 1:
  250.                             {
  251.                                 UpdateVehicleDamageStatus(vid, p, d, l, 14);
  252.                                 buffer[vTireWear] = 99;
  253.                             }
  254.                         }
  255.                     }
  256.                     case 9:
  257.                     {
  258.                         rand3 = random(2);
  259.                         switch(rand3)
  260.                         {
  261.                             case 0:
  262.                             {
  263.                                 UpdateVehicleDamageStatus(vid, p, d, l, 11);
  264.                                 buffer[vTireWear] = 99;
  265.                             }
  266.                             case 1:
  267.                             {
  268.                                 UpdateVehicleDamageStatus(vid, p, d, l, 13);
  269.                                 buffer[vTireWear] = 99;
  270.                             }
  271.                         }
  272.                     }
  273.                     case 10:
  274.                     {
  275.                         rand3 = random(2);
  276.                         switch(rand3)
  277.                         {
  278.                             case 0:
  279.                             {
  280.                                 UpdateVehicleDamageStatus(vid, p, d, l, 11);
  281.                                 buffer[vTireWear] = 99;
  282.                             }
  283.                             case 1:
  284.                             {
  285.                                 UpdateVehicleDamageStatus(vid, p, d, l, 14);
  286.                                 buffer[vTireWear] = 99;
  287.                             }
  288.                         }
  289.                     }
  290.                     case 12:
  291.                     {
  292.                         rand3 = random(2);
  293.                         switch(rand3)
  294.                         {
  295.                             case 0:
  296.                             {
  297.                                 UpdateVehicleDamageStatus(vid, p, d, l, 13);
  298.                                 buffer[vTireWear] = 99;
  299.                             }
  300.                             case 1:
  301.                             {
  302.                                 UpdateVehicleDamageStatus(vid, p, d, l, 14);
  303.                                 buffer[vTireWear] = 99;
  304.                             }
  305.                         }
  306.                     }
  307.                     default:
  308.                     {
  309.                         rand3 = random(4);
  310.                         switch(rand3)
  311.                         {
  312.                             case 0:
  313.                             {
  314.                                 UpdateVehicleDamageStatus(vid, p, d, l, 7);
  315.                                 buffer[vTireWear] = 99;
  316.                             }
  317.                             case 1:
  318.                             {
  319.                                 UpdateVehicleDamageStatus(vid, p, d, l, 11);
  320.                                 buffer[vTireWear] = 99;
  321.                             }
  322.                             case 2:
  323.                             {
  324.                                 UpdateVehicleDamageStatus(vid, p, d, l, 13);
  325.                                 buffer[vTireWear] = 99;
  326.                             }
  327.                             case 3:
  328.                             {
  329.                                 UpdateVehicleDamageStatus(vid, p, d, l, 14);
  330.                                 buffer[vTireWear] = 99;
  331.                             }
  332.                         }
  333.                     }
  334.                 }
  335.             }
  336.         }
  337.     }
  338.     else if(buffer[vTireWear] == 99)
  339.     {
  340.         TextDrawHideForPlayer(playerid, Textdraw12[playerid]);
  341.         TextDrawHideForPlayer(playerid, Textdraw14[playerid]);
  342.         TextDrawColor(Textdraw12[playerid], 0xFF0000AA);
  343.         TextDrawColor(Textdraw14[playerid], 0x9B0000FF);
  344.         TextDrawShowForPlayer(playerid, Textdraw12[playerid]);
  345.         TextDrawShowForPlayer(playerid, Textdraw14[playerid]);
  346.         if(speed2 > 0)
  347.         {
  348.             new rand = random(2000);
  349.             if(rand >= 0 && rand < 1750)
  350.             {
  351.                 UpdateVehicleDamageStatus(vid, p, d, l, 15);
  352.                 buffer[vTireWear] = 100;
  353.             }
  354.         }
  355.     }
  356.     else if(buffer[vTireWear] >= 100)
  357.     {
  358.         if(t !=15)
  359.         {
  360.             buffer[vTireWear] = 100;
  361.             TextDrawHideForPlayer(playerid, Textdraw12[playerid]);
  362.             TextDrawHideForPlayer(playerid, Textdraw14[playerid]);
  363.             TextDrawColor(Textdraw12[playerid], 0xFF0000AA);
  364.             TextDrawColor(Textdraw14[playerid], 0x9B0000FF);
  365.             TextDrawShowForPlayer(playerid, Textdraw12[playerid]);
  366.             TextDrawShowForPlayer(playerid, Textdraw14[playerid]);
  367.             UpdateVehicleDamageStatus(vid, p, d, l, 15);
  368.         }
  369.         else
  370.         {
  371.             buffer[vTireWear] = 100;
  372.             TextDrawHideForPlayer(playerid, Textdraw12[playerid]);
  373.             TextDrawHideForPlayer(playerid, Textdraw14[playerid]);
  374.             TextDrawColor(Textdraw12[playerid], 0xFF0000AA);
  375.             TextDrawColor(Textdraw14[playerid], 0x9B0000FF);
  376.             TextDrawShowForPlayer(playerid, Textdraw12[playerid]);
  377.             TextDrawShowForPlayer(playerid, Textdraw14[playerid]);
  378.         }
  379.     }
  380.     TextDrawSetString(Textdraw8[playerid], TW);
  381.     //Oil
  382.     buffer[vOil] = 100-((buffer[vKilometers]-buffer[vLastOilChange])/100);
  383.     format(oil, sizeof(oil), "Oil Level : %0.0f%", buffer[vOil]);
  384.     TextDrawSetString(Textdraw7[playerid], oil);
  385.     if(buffer[vOil] <= 0)
  386.     {
  387.         buffer[vOil] = 0;
  388.         TextDrawHideForPlayer(playerid, Textdraw11[playerid]);
  389.         TextDrawHideForPlayer(playerid, Textdraw13[playerid]);
  390.         TextDrawColor(Textdraw11[playerid], 0xFF0000AA);
  391.         TextDrawColor(Textdraw13[playerid], 0x9B0000FF);
  392.         TextDrawShowForPlayer(playerid, Textdraw11[playerid]);
  393.         TextDrawShowForPlayer(playerid, Textdraw13[playerid]);
  394.         SetVehicleParamsEx(vid, 0, lights, alarm, doors, bonnet, boot, objective);
  395.     }
  396.     else if(buffer[vOil] <= 5)
  397.     {
  398.         TextDrawHideForPlayer(playerid, Textdraw11[playerid]);
  399.         TextDrawHideForPlayer(playerid, Textdraw13[playerid]);
  400.         TextDrawColor(Textdraw11[playerid], 0xFF0000AA);
  401.         TextDrawColor(Textdraw13[playerid], 0x9B0000FF);
  402.         TextDrawShowForPlayer(playerid, Textdraw11[playerid]);
  403.         TextDrawShowForPlayer(playerid, Textdraw13[playerid]);
  404.     }
  405.     //Fuel
  406.     buffer[vFuel] -= speed2*0.00033+0.005;
  407.     if(buffer[vFuel] <= 0)
  408.     {
  409.         buffer[vFuel] = 0;
  410.         SetVehicleParamsEx(vid, 0, lights, alarm, doors, bonnet, boot, objective);
  411.     }
  412.     else if(buffer[vFuel] <= 25)
  413.     {
  414.         TextDrawHideForPlayer(playerid, Textdraw9[playerid]);
  415.         TextDrawHideForPlayer(playerid, Textdraw10[playerid]);
  416.         TextDrawColor(Textdraw9[playerid], 0xFF0000AA);
  417.         TextDrawColor(Textdraw10[playerid], 0x9B0000FF);
  418.         TextDrawShowForPlayer(playerid, Textdraw9[playerid]);
  419.         TextDrawShowForPlayer(playerid, Textdraw10[playerid]);
  420.     }
  421.     format(fuel, sizeof(fuel), "Fuel : %0.0f%", buffer[vFuel]);
  422.     TextDrawSetString(Textdraw6[playerid], fuel);
  423.  
  424.     pvnode[playerid]=LIST::insert_arr(vList,pvnode[playerid],buffer);
  425.     LIST::erase(vList,LIST_IT::next(pvnode[playerid]));
  426.     return 1;
  427. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement