Guest User

Untitled

a guest
Jun 1st, 2012
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.42 KB | None | 0 0
  1. #include <a_samp>
  2. #define color_info 0xFFFFFFFF
  3. #define color_rot 0xAA3333AA
  4. #define color_gruen 0x33AA33AA
  5.  
  6.  
  7. ////////////////////////////////////////////////////////////////////////////////
  8. ////////////////////////////////////////////////////////////////////////////////
  9. ////////////////////////////////////////////////////////////////////////////////
  10. ////////////////////////////////////////////////////////////////////////////////
  11. ////////////////////////////////////////////////////////////////////////////////
  12. ////////////////////////////////////////////////////////////////////////////////
  13. ///////////////////////////EINSTELLUNGEN////////////////////////////////////////
  14.  
  15.  
  16. #define TRUCK_ID 407 //Feuerwehr Fahrzeug
  17. #define FIRE_SKIN 277 //Feuerwehr Skin
  18. #define FIRE_EXE 10 //Wann bricht ein Feuer aus (abstände in Minuten)
  19. #define FIRE_PAY 150 // Geld pro gelöschter Flamme
  20.  
  21. /******Made by GPawn-Growen******/
  22. /******Kosten: 5 EUR*************/
  23. /******Datum: 27.05.2012*********/
  24.  
  25. ////////////////////////////////////////////////////////////////////////////////
  26. ////////////////////////////////////////////////////////////////////////////////
  27. ////////////////////////////////////////////////////////////////////////////////
  28. ////////////////////////////////////////////////////////////////////////////////
  29. ////////////////////////////////////////////////////////////////////////////////
  30. ////////////////////////////////////////////////////////////////////////////////
  31.  
  32. #define MAX_FIRE 4
  33. #define MAX_FLAMES 5
  34. #define FIRE_OBJ 18691
  35. forward Fire_Check();
  36. forward Check_Player(playerid);
  37. new PlayerShoot[MAX_PLAYERS];
  38. new PlayerCounter[MAX_PLAYERS][MAX_FLAMES];
  39. new FireData[MAX_FLAMES];
  40. stock CreateFire(id)
  41. {
  42. if(id==0)
  43. {
  44. FireData[0]=CreateObject(FIRE_OBJ,1091.7286,-1186.2736,18.3119,0,0,0,150);
  45. FireData[1]=CreateObject(FIRE_OBJ,1099.7915,-1181.1642,18.8186,0,0,0,150);
  46. FireData[2]=CreateObject(FIRE_OBJ,1102.6588,-1182.6964,20.5378,0,0,0,150);
  47. FireData[3]=CreateObject(FIRE_OBJ,1106.7433,-1185.2449,18.3467,0,0,0,150);
  48. FireData[4]=CreateObject(FIRE_OBJ,1093.5167,-1180.1626,19.1223,0,0,0,150);
  49. }
  50. if(id==1)
  51. {
  52. FireData[0]=CreateObject(FIRE_OBJ, 1186.83, -920.21, 41.43, 0.00, 0.00, 0.00);
  53. FireData[1]=CreateObject(FIRE_OBJ, 1198.06, -920.40, 41.43, 0.00, 0.00, 0.00);
  54. FireData[2]=CreateObject(FIRE_OBJ, 1206.98, -919.67, 41.43, 0.00, 0.00, 0.00);
  55. FireData[3]=CreateObject(FIRE_OBJ, 1220.34, -911.00, 41.43, 0.00, 0.00, 0.00);
  56. FireData[4]=CreateObject(FIRE_OBJ, 1203.19, -918.78, 45.83, 0.00, 0.00, 0.00);
  57. }
  58. if(id==2)
  59. {
  60. FireData[0]=CreateObject(FIRE_OBJ, 1832.63, -1850.94, 11.32, 0.00, 0.00, 0.00);
  61. FireData[1]=CreateObject(FIRE_OBJ, 1841.75, -1857.64, 11.32, 0.00, 0.00, 0.00);
  62. FireData[2]=CreateObject(FIRE_OBJ, 1846.84, -1868.34, 11.32, 0.00, 0.00, 0.00);
  63. FireData[3]=CreateObject(FIRE_OBJ, 1848.37, -1874.03, 14.22, 0.00, 0.00, 0.00);
  64. FireData[4]=CreateObject(FIRE_OBJ, 1839.10, -1850.31, 14.81, 0.00, 0.00, 0.00);
  65. }
  66. if(id==3)
  67. {
  68. FireData[0]=CreateObject(FIRE_OBJ, 1940.98, -1764.34, 11.36, 0.00, 0.00, 0.00);
  69. FireData[1]=CreateObject(FIRE_OBJ, 1928.63, -1766.68, 11.36, 0.00, 0.00, 0.00);
  70. FireData[2]=CreateObject(FIRE_OBJ, 1928.38, -1778.59, 11.36, 0.00, 0.00, 0.00);
  71. FireData[3]=CreateObject(FIRE_OBJ, 1940.82, -1774.48, 11.36, 0.00, 0.00, 0.00);
  72. FireData[4]=CreateObject(FIRE_OBJ, 1936.07, -1768.04, 11.36, 0.00, 0.00, 0.00);
  73. }
  74. else
  75. {
  76. FireData[0]=CreateObject(FIRE_OBJ,1091.7286,-1186.2736,18.3119,0,0,0,150);
  77. FireData[1]=CreateObject(FIRE_OBJ,1099.7915,-1181.1642,18.8186,0,0,0,150);
  78. FireData[2]=CreateObject(FIRE_OBJ,1102.6588,-1182.6964,20.5378,0,0,0,150);
  79. FireData[3]=CreateObject(FIRE_OBJ,1106.7433,-1185.2449,18.3467,0,0,0,150);
  80. FireData[4]=CreateObject(FIRE_OBJ,1093.5167,-1180.1626,19.1223,0,0,0,150);
  81. }
  82. return 1;
  83. }
  84. stock SayIt(id)
  85. {
  86. for(new i=0;i<MAX_PLAYERS;i++)
  87. {
  88. if(GetPlayerSkin(i)==FIRE_SKIN)
  89. {
  90. if(id==0)
  91. {
  92. SetPlayerCheckpoint(i,2040.6560,1348.6108,10.6719,1);
  93. SendClientMessage(i,color_rot,"Es brennt in LS an einer Lagerfirma!");
  94. }
  95. if(id==1)
  96. {
  97. SetPlayerCheckpoint(i,1186.83, -920.21, 46.43,1);
  98. SendClientMessage(i,color_rot,"Es brennt am BSN in LS!");
  99. }
  100. if(id==2)
  101. {
  102. SetPlayerCheckpoint(i,1832.63, -1850.94, 16.32,1);
  103. SendClientMessage(i,color_rot,"Es brennt in LS an der Bomben Garage!");
  104. }
  105. if(id==3)
  106. {
  107. SetPlayerCheckpoint(i,1940.98, -1764.34, 16.36,1);
  108. SendClientMessage(i,color_rot,"Es brennt der Stripclub in LS!");
  109. }
  110. else
  111. {
  112. SetPlayerCheckpoint(i,2040.6560,1348.6108,10.6719,1);
  113. SendClientMessage(i,color_rot,"Es brennt in LS an einer Lagerfirma!");
  114. }
  115. }
  116. }
  117. return 1;
  118. }
  119.  
  120. public OnFilterScriptInit()
  121. {
  122. SetTimer("Fire_Check",FIRE_EXE*60000,1);
  123. return 1;
  124. }
  125.  
  126. public OnFilterScriptExit()
  127. {
  128. for(new o=0;o<MAX_FLAMES;o++)
  129. {
  130. DestroyObject(FireData[o]);
  131. }
  132. return 1;
  133. }
  134.  
  135. public OnPlayerRequestClass(playerid, classid)
  136. {
  137. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  138. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  139. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  140. return 1;
  141. }
  142.  
  143. public Fire_Check()
  144. {
  145. new rnd=random(MAX_FIRE);
  146. for(new o=0;o<MAX_FLAMES;o++)
  147. {
  148. DestroyObject(FireData[o]);
  149. }
  150. for(new i=0;i<MAX_PLAYERS;i++)
  151. {
  152. if(GetPlayerSkin(i)==FIRE_SKIN)
  153. {
  154. SayIt(rnd);
  155. return CreateFire(rnd);
  156. }
  157. }
  158. return 1;
  159. }
  160.  
  161. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  162. {
  163. if(newkeys & KEY_FIRE && GetVehicleModel(GetPlayerVehicleID(playerid))==TRUCK_ID)
  164. {
  165. PlayerShoot[playerid]=SetTimerEx("Check_Player",500,1,"i",playerid);
  166. }
  167. else if(oldkeys & KEY_FIRE)
  168. {
  169. KillTimer(PlayerShoot[playerid]);
  170. PlayerShoot[playerid]=0;
  171. }
  172. return 1;
  173. }
  174.  
  175. public Check_Player(playerid)
  176. {
  177. new Float:oPos[3];
  178. if(PlayerShoot[playerid]!=0)
  179. {
  180. for(new o=0;o<MAX_FLAMES;o++)
  181. {
  182. GetObjectPos(FireData[o],oPos[0],oPos[1],oPos[2]);
  183. if(ZieltSpielerAufPunkt(playerid, oPos[0], oPos[1], oPos[2], 3))
  184. {
  185. PlayerCounter[playerid][o]+=1;
  186. if(PlayerCounter[playerid][o]==15)
  187. {
  188. GameTextForPlayer(playerid,"~r~Feuer ~w~geloescht",505,4);
  189. PlayerCounter[playerid][o]=0;
  190. GivePlayerMoney(playerid,FIRE_PAY);
  191. DisablePlayerCheckpoint(playerid);
  192. return DestroyObject(FireData[o]);
  193. }
  194. }
  195. }
  196. }
  197. return 1;
  198. }
  199.  
  200. stock Float:ErmittleDistanzZumPunkt(Float:CamX, Float:CamY, Float:CamZ, Float:PunktX, Float:PunktY, Float:PunktZ, Float:FrontX, Float:FrontY, Float:FrontZ) {
  201. new Float:Distanz;
  202. Distanz= floatsqroot((CamX - PunktX) * (CamX - PunktX) + (CamY - PunktY) * (CamY - PunktY) + (CamZ - PunktZ) * (CamZ - PunktZ));
  203. new Float:tmpX, Float:tmpY, Float:tmpZ;
  204. tmpX = FrontX * Distanz+ CamX;
  205. tmpY = FrontY * Distanz+ CamY;
  206. tmpZ = FrontZ * Distanz+ CamZ;
  207. return floatsqroot((tmpX - PunktX) * (tmpX - PunktX) + (tmpY - PunktY) * (tmpY - PunktY) + (tmpZ - PunktZ) * (tmpZ - PunktZ));
  208. }
  209. stock ZieltSpielerAufPunkt(playerid, Float:x, Float:y, Float:z, Float:radius)
  210. {
  211. new Float:cx,Float:cy,Float:cz,Float:fx,Float:fy,Float:fz;
  212. GetPlayerCameraPos(playerid, cx, cy, cz);
  213. GetPlayerCameraFrontVector(playerid, fx, fy, fz);
  214. return (radius >= ErmittleDistanzZumPunkt(cx, cy, cz, x, y, z, fx, fy, fz));
  215. }
Advertisement
Add Comment
Please, Sign In to add comment