Advertisement
Vlad64

San Andreas Hard DM - part 3

Dec 28th, 2012
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.58 KB | None | 0 0
  1. #include <a_samp>
  2. new Text:td_fuel[MAX_PLAYERS];
  3. new Text:td_vhealth[MAX_PLAYERS];
  4. new Text:td_vspeed[MAX_PLAYERS];
  5. new Text:td_box[MAX_PLAYERS];
  6.  
  7. forward timer_update();
  8. forward timer_refuel(playerid);
  9. new isrefuelling[MAX_PLAYERS] = 0;
  10. new fuel[MAX_VEHICLES];
  11. new Float:max_vhealth[MAX_VEHICLES];
  12. new Engine[MAX_PLAYERS];
  13.  
  14. public OnFilterScriptInit()
  15. {
  16. for(new i=0;i<MAX_VEHICLES;i++) {
  17. GetVehicleHealth(i,max_vhealth[i]); //getting max health
  18. fuel[i] = 250 + random(150); //setting fuel for vehicles
  19. }
  20.  
  21. for(new i=0;i<MAX_PLAYERS;i++) { //setting up all textdraws
  22. td_fuel[i] = TextDrawCreate(476,355,"Fuel:");
  23. td_vhealth[i] = TextDrawCreate(478,376,"Health:");
  24. td_vspeed[i] = TextDrawCreate(478,397,"Speed:");
  25. td_box[i] = TextDrawCreate(478.000000,328.000000,"Vehicle Stats: ~n~~n~~n~~n~");
  26. TextDrawUseBox(td_box[i],1);
  27. TextDrawBoxColor(td_box[i],0x00000066);
  28. TextDrawTextSize(td_box[i],626.000000,21.000000);
  29. TextDrawAlignment(td_fuel[i],0);
  30. TextDrawAlignment(td_vhealth[i],0);
  31. TextDrawAlignment(td_vspeed[i],0);
  32. TextDrawAlignment(td_box[i],0);
  33. TextDrawBackgroundColor(td_fuel[i],0x000000ff);
  34. TextDrawBackgroundColor(td_vhealth[i],0x000000ff);
  35. TextDrawBackgroundColor(td_vspeed[i],0x000000ff);
  36. TextDrawBackgroundColor(td_box[i],0x000000cc);
  37. TextDrawFont(td_fuel[i],1);
  38. TextDrawLetterSize(td_fuel[i],0.699999,2.699999);
  39. TextDrawFont(td_vhealth[i],1);
  40. TextDrawLetterSize(td_vhealth[i],0.699999,2.699999);
  41. TextDrawFont(td_vspeed[i],1);
  42. TextDrawLetterSize(td_vspeed[i],0.699999,2.699999);
  43. TextDrawFont(td_box[i],0);
  44. TextDrawLetterSize(td_box[i],0.699999,2.899999);
  45. TextDrawColor(td_fuel[i],0xffffffff);
  46. TextDrawColor(td_vhealth[i],0xffffffff);
  47. TextDrawColor(td_vspeed[i],0xffffffff);
  48. TextDrawColor(td_box[i],0xffffffff);
  49. TextDrawSetOutline(td_fuel[i],1);
  50. TextDrawSetOutline(td_vhealth[i],1);
  51. TextDrawSetOutline(td_vspeed[i],1);
  52. TextDrawSetOutline(td_box[i],1);
  53. TextDrawSetProportional(td_fuel[i],1);
  54. TextDrawSetProportional(td_vhealth[i],1);
  55. TextDrawSetProportional(td_vspeed[i],1);
  56. TextDrawSetProportional(td_box[i],1);
  57. TextDrawSetShadow(td_fuel[i],1);
  58. TextDrawSetShadow(td_vhealth[i],1);
  59. TextDrawSetShadow(td_vspeed[i],1);
  60. TextDrawSetShadow(td_box[i],10);
  61. }
  62. SetTimer("timer_update",3000,true);
  63. return 1;
  64. }
  65.  
  66. public OnFilterScriptExit()
  67. {
  68. for(new i=0;i<MAX_PLAYERS;i++) {
  69. TextDrawDestroy(td_fuel[i]);
  70. TextDrawDestroy(td_vhealth[i]);
  71. TextDrawDestroy(td_vspeed[i]);
  72. TextDrawDestroy(td_box[i]);
  73. }
  74. return 1;
  75. }
  76.  
  77. stock IsPlayerAtRefuelStation(playerid)
  78. {
  79. if (IsPlayerInRangeOfPoint(playerid,10,1944.2437,-1774.0868,13.3843)) return 1;
  80. if (IsPlayerInRangeOfPoint(playerid,10,-91.5143,-1169.4570,2.4088)) return 1;
  81. if (IsPlayerInRangeOfPoint(playerid,10,1004.3141,-940.1235,42.1731)) return 1;
  82. if (IsPlayerInRangeOfPoint(playerid,10,2116.6963,920.5061,10.8203)) return 1;
  83. return 0;
  84. }
  85.  
  86. public OnPlayerStateChange(playerid, newstate, oldstate)
  87. {
  88. if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  89. {
  90.  
  91. TextDrawSetString(td_fuel[playerid],"Fuel:");
  92. TextDrawSetString(td_vhealth[playerid],"Health:");
  93. TextDrawSetString(td_vspeed[playerid],"Speed:");
  94.  
  95. TextDrawShowForPlayer(playerid,td_fuel[playerid]);
  96. TextDrawShowForPlayer(playerid,td_vspeed[playerid]);
  97. TextDrawShowForPlayer(playerid,td_vhealth[playerid]);
  98. TextDrawShowForPlayer(playerid,td_box[playerid]);
  99. } else {
  100. TextDrawHideForPlayer(playerid,td_fuel[playerid]);
  101. TextDrawHideForPlayer(playerid,td_vspeed[playerid]);
  102. TextDrawHideForPlayer(playerid,td_vhealth[playerid]);
  103. TextDrawHideForPlayer(playerid,td_box[playerid]);
  104. }
  105. return 1;
  106. }
  107.  
  108.  
  109. public OnPlayerCommandText(playerid,cmdtext[]) {
  110.  
  111. if (!strcmp("/refuel",cmdtext,true,7)) {
  112. if (!IsPlayerAtRefuelStation(playerid)) return SendClientMessage(playerid,0xFFC800FF,"You are not at a fuel station!");
  113. if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0xFFC800FF,"You are not in a vehicle!"); //if a player isnt in a vehicle, it stops here
  114. if (isrefuelling[playerid]) return SendClientMessage(playerid,0xFFC800FF,"You are already refuelling!"); //if a player is already refuelling, it stops here
  115. if (GetPlayerMoney(playerid) - 200 <0) return SendClientMessage(playerid,0xFFC800FF,"You don't have enough money! You need $200!"); //if a player doesnt have $80 anymore, it stops here
  116. GivePlayerMoney(playerid, -200); //Sets the player's cash -$200
  117. SetCameraBehindPlayer(playerid); //Sets the camera behind the player (looks better because the player will be frozen for a few secs)
  118. isrefuelling[playerid] = 1; //setting isrefuelling to 1 so the player cant spam /refuel
  119. TextDrawSetString(td_fuel[playerid],"Refuelling..."); //changing textdraw to /refuel
  120. SetTimerEx("timer_refuel",5000,false,"i",playerid); //setting refueltimer
  121. return 1;
  122. }
  123. return 0;
  124. }
  125.  
  126. public timer_update()
  127. {
  128. for(new i=0;i<MAX_PLAYERS;i++) {
  129. if (isrefuelling[i]) return 0;
  130. new vid = GetPlayerVehicleID(i);
  131. if (GetPlayerVehicleSeat(i) == 0) {
  132. fuel[vid] = fuel[vid] - 1;
  133. if (fuel[vid]<1)
  134. {
  135. fuel[vid] = 0;
  136. new veh = GetPlayerVehicleID(i);
  137. new engine,lights,alarm,doors,bonnet,boot,objective;
  138. GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  139. SetVehicleParamsEx(veh,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  140. Engine[i]=0;
  141. GameTextForPlayer(i,"~r~You are out of ~w~fuel~r~!",5000,4);
  142. }
  143. }
  144. new string[128];format(string,sizeof string,"Fuel: %i",fuel[vid] /3);
  145. TextDrawSetString(td_fuel[i],string);
  146.  
  147. new Float:speed_x,Float:speed_y,Float:speed_z,Float:temp_speed,final_speed,Float:health;
  148.  
  149. GetVehicleVelocity(vid,speed_x,speed_y,speed_z);
  150. temp_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*136.666667;
  151. final_speed = floatround(temp_speed,floatround_round);
  152. format(string,sizeof string,"Speed: %i",final_speed);
  153. TextDrawSetString(td_vspeed[i],string);
  154.  
  155. GetVehicleHealth(vid,health);
  156. if (max_vhealth[vid] == 0)//if its an random spawned vehicle
  157. {
  158. fuel[vid] = 300;
  159. GetVehicleHealth(vid,max_vhealth[vid]);
  160. }
  161. health = (((health - max_vhealth[vid]) /max_vhealth[vid]) *100)+ 100;
  162. format(string,sizeof string,"Health: %i",floatround(health,floatround_round));
  163. TextDrawSetString(td_vhealth[i],string);
  164. }
  165. return 1;
  166. }
  167.  
  168. public timer_refuel(playerid)
  169. {
  170. new vid = GetPlayerVehicleID(playerid);
  171. if(Engine[playerid]==0)
  172. {
  173. new veh = GetPlayerVehicleID(playerid);
  174. new engine,lights,alarm,doors,bonnet,boot,objective;
  175. GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  176. SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  177. Engine[playerid]=1;
  178. }
  179. fuel[vid] = fuel[vid] = 300;
  180. isrefuelling[playerid] = 0;
  181. TextDrawSetString(td_fuel[playerid],"Fuel:100");
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement