Advertisement
Guest User

Untitled

a guest
Aug 9th, 2012
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.90 KB | None | 0 0
  1. #include a_samp
  2. #include mapandreas
  3. #undef MAX_PLAYERS
  4. #define MAX_PLAYERS 100 // Serverslots beachten!
  5. #define AMMO 50
  6. #define SHOOT "/youdontknowme"
  7. new vehiclepid[ MAX_VEHICLES ] = -1;
  8. new playerchopper[ MAX_PLAYERS ] = 0;
  9. new obj[ MAX_VEHICLES ] = -1;
  10. new objChopper[ MAX_OBJECTS ] = -1;
  11. new Timer[ MAX_OBJECTS ];
  12. new bool:Rocket[ MAX_OBJECTS ];
  13. new Text:TextDraw[ 7 ];
  14. new ammo[ MAX_PLAYERS ] = 0;
  15. new pName[ MAX_PLAYERS ][ MAX_PLAYER_NAME ];
  16. new PlayerText:AmmoTDraw[ MAX_PLAYERS ];
  17. public OnFilterScriptInit( )
  18. {
  19. MapAndreas_Init( MAP_ANDREAS_MODE_FULL );
  20. TextDraw[ 0 ] = TextDrawCreate( -1.000000, 2.000000, "w" );
  21. TextDrawBackgroundColor( TextDraw[ 0 ], 255 );
  22. TextDrawFont( TextDraw[ 0 ], 1 );
  23. TextDrawLetterSize( TextDraw[ 0 ], 0.019998, 51.299999 );
  24. TextDrawColor( TextDraw[ 0 ], -1 );
  25. TextDrawSetOutline( TextDraw[ 0 ], 0 );
  26. TextDrawSetProportional( TextDraw[ 0 ], 1 );
  27. TextDrawSetShadow( TextDraw[ 0 ], 1 );
  28. TextDrawUseBox( TextDraw[ 0 ], 1 );
  29. TextDrawBoxColor( TextDraw[ 0 ], 100 );
  30. TextDrawTextSize( TextDraw[ 0 ], 642.000000, 30.000000 );
  31.  
  32. TextDraw[ 1 ] = TextDrawCreate( 489.000000, 6.000000, "Uplink: 29.28.54#~n~ 10x60 MHZ" );
  33. TextDrawBackgroundColor( TextDraw[ 1 ], 255 );
  34. TextDrawFont( TextDraw[ 1 ], 1 );
  35. TextDrawLetterSize( TextDraw[ 1 ], 0.500000, 1.000000 );
  36. TextDrawColor( TextDraw[ 1 ], -1 );
  37. TextDrawSetOutline( TextDraw[ 1 ], 0 );
  38. TextDrawSetProportional( TextDraw[ 1 ], 1 );
  39. TextDrawSetShadow( TextDraw[ 1 ], 1 );
  40.  
  41. TextDraw[ 2 ] = TextDrawCreate( 601.000000, 25.000000, "Lazer: armed" );
  42. TextDrawBackgroundColor( TextDraw[ 2 ], 255 );
  43. TextDrawFont( TextDraw[ 2 ], 1 );
  44. TextDrawLetterSize( TextDraw[ 2 ], 0.170000, 1.000000 );
  45. TextDrawColor( TextDraw[ 2 ], -1 );
  46. TextDrawSetOutline( TextDraw[ 2 ], 0 );
  47. TextDrawSetProportional( TextDraw[ 2 ], 1 );
  48. TextDrawSetShadow( TextDraw[ 2 ], 1 );
  49.  
  50. TextDraw[ 4 ] = TextDrawCreate( 308.000000, 218.000000, "- -" );
  51. TextDrawBackgroundColor( TextDraw[ 4 ], 255 );
  52. TextDrawFont( TextDraw[ 4 ], 1 );
  53. TextDrawLetterSize( TextDraw[ 4 ], 0.500000, 1.000000 );
  54. TextDrawColor( TextDraw[ 4 ], -1 );
  55. TextDrawSetOutline( TextDraw[ 4 ], 0 );
  56. TextDrawSetProportional( TextDraw[ 4 ], 1 );
  57. TextDrawSetShadow( TextDraw[ 4 ], 1 );
  58.  
  59. TextDraw[ 5 ] = TextDrawCreate( 321.750000, 210.000000, "!~n~~n~!" );
  60. TextDrawBackgroundColor( TextDraw[ 5 ], 255 );
  61. TextDrawFont( TextDraw[ 5 ], 1 );
  62. TextDrawLetterSize( TextDraw[ 5 ], 0.180000, 1.000000 );
  63. TextDrawColor( TextDraw[ 5 ], -1 );
  64. TextDrawSetOutline( TextDraw[ 5 ], 0 );
  65. TextDrawSetProportional( TextDraw[ 5 ], 1 );
  66. TextDrawSetShadow( TextDraw[ 5 ], 1 );
  67.  
  68. TextDraw[ 6 ] = TextDrawCreate( 222.000000, 90.000000, "CAMERA: AH64-APACHE#" );
  69. TextDrawBackgroundColor( TextDraw[ 6 ], 255 );
  70. TextDrawFont( TextDraw[ 6 ], 1 );
  71. TextDrawLetterSize( TextDraw[ 6 ], 0.500000, 1.000000 );
  72. TextDrawColor( TextDraw[ 6 ], -1 );
  73. TextDrawSetOutline( TextDraw[ 6 ], 0 );
  74. TextDrawSetProportional( TextDraw[ 6 ], 1 );
  75. TextDrawSetShadow( TextDraw[ 6 ], 0 );
  76. for( new i = 0; i < MAX_PLAYERS; i ++ )
  77. {
  78. if( !IsPlayerConnected( i ) ) continue;
  79. GetPlayerName( i, pName[ i ], MAX_PLAYER_NAME );
  80. AmmoTDraw[ i ] = CreatePlayerTextDraw( i, 514.000000, 397.000000, "!!!!!!!!!!!!!!!!!!!!~n~!!!!!!!!!!!!!!!!!!!!" );
  81. PlayerTextDrawBackgroundColor( i, AmmoTDraw[ i ], 255 );
  82. PlayerTextDrawFont( i, AmmoTDraw[ i ], 1 );
  83. PlayerTextDrawLetterSize( i, AmmoTDraw[ i ], 0.500000, 1.000000 );
  84. PlayerTextDrawColor( i, AmmoTDraw[ i ], -1 );
  85. PlayerTextDrawSetOutline( i, AmmoTDraw[ i ], 0 );
  86. PlayerTextDrawSetProportional( i, AmmoTDraw[ i ], 1 );
  87. PlayerTextDrawSetShadow( i, AmmoTDraw[ i ], 1 );
  88.  
  89. }
  90. for( new i = 0; i < MAX_VEHICLES; i ++ )
  91. {
  92. vehiclepid[ i ] = -1;
  93. }
  94. }
  95. public OnFilterScriptExit( )
  96. {
  97. for( new i = 0 ; i < MAX_PLAYERS ; i ++ )
  98. {
  99. if( !IsPlayerConnected( i ) ) continue;
  100. PlayerTextDrawDestroy( i, AmmoTDraw[ i ] );
  101. }
  102. TextDrawHideForAll( TextDraw[ 0 ] );
  103. TextDrawDestroy( TextDraw[ 0 ] );
  104. TextDrawHideForAll( TextDraw[ 1 ] );
  105. TextDrawDestroy( TextDraw[ 1 ] );
  106. TextDrawHideForAll( TextDraw[ 2 ] );
  107. TextDrawDestroy( TextDraw[ 2 ] );
  108. TextDrawHideForAll( TextDraw[ 3 ] );
  109. TextDrawDestroy( TextDraw[ 3 ] );
  110. TextDrawHideForAll( TextDraw[ 4 ] );
  111. TextDrawDestroy( TextDraw[ 4 ] );
  112. TextDrawHideForAll( TextDraw[ 5 ] );
  113. TextDrawDestroy( TextDraw[ 5 ] );
  114. TextDrawHideForAll( TextDraw[ 6 ] );
  115. TextDrawDestroy( TextDraw[ 6 ] );
  116. return 1;
  117. }
  118. public OnPlayerCommandText( playerid, cmdtext[ ] )
  119. {
  120. if ( !strcmp( cmdtext, SHOOT ) )
  121. {
  122. ammo[ playerchopper[ playerid ] ]++;
  123. new str[ 64 ];
  124. format( str, sizeof str, "~b~" );
  125. for( new i = 0 ; i < AMMO ; i++ )
  126. {
  127. if( i == AMMO/2 )
  128. {
  129. format( str, sizeof str, ( ( ammo[ playerchopper[ playerid ] ] != AMMO/2 ) ? ( "%s~n~!" ) : ( "%s~n~~w~!" ) ), str );
  130. continue;
  131. }
  132. if( i == ammo[ playerchopper[ playerid ] ] )
  133. {
  134. format( str, sizeof str, "%s~w~!", str );
  135. continue;
  136. }
  137. if( i < ammo[ playerchopper[ playerid ] ] )
  138. {
  139. format( str, sizeof str, "%s!", str );
  140. continue;
  141. }
  142. format( str, sizeof str, "%s!", str );
  143. }
  144. PlayerTextDrawSetString( playerid, AmmoTDraw[ playerid ], str );
  145. new
  146. Float:fPX, Float:fPY, Float:fPZ,
  147. Float:fVX, Float:fVY, Float:fVZ,
  148. Float:object_x, Float:object_y, Float:object_z;
  149. new
  150. Float:fScale = 500;
  151.  
  152. GetPlayerCameraPos( playerid, fPX, fPY, fPZ );
  153. GetPlayerCameraFrontVector( playerid, fVX, fVY, fVZ );
  154.  
  155. object_x = fPX + floatmul( fVX, fScale );
  156. object_y = fPY + floatmul( fVY, fScale );
  157. object_z = fPZ + floatmul( fVZ, fScale );
  158. new obj1 = CreateObject( 345, fPX, fPY, fPZ, asin( fVZ ), 0.0, 360 - atan2( fVX, fVY ) );
  159. Rocket[ obj1 ] = true;
  160. objChopper[ obj1 ] = playerid;
  161. MoveObject( obj1, object_x, object_y, object_z, 75.0 );
  162. Timer[ obj1 ] = SetTimerEx( "CheckObj", 100, 1, "d", obj1 );
  163. if( ammo[ playerchopper[ playerid ] ] >= AMMO )
  164. {
  165. ammo[ playerchopper[ playerid ] ] = 0;
  166. }
  167. return 1;
  168. }
  169. return 0;
  170. }
  171. public OnPlayerEnterVehicle( playerid, vehicleid, ispassenger )
  172. {
  173. if( ispassenger == 1 && GetVehicleModel( vehicleid ) == 425 && vehiclepid[ vehicleid ] == -1 )
  174. {
  175. obj[ vehicleid ] = CreateObject( 330, 0, 0, 235, 0 , 0, 0, 0.0 );
  176. vehiclepid[ vehicleid ] = playerid;
  177. playerchopper[ playerid ] = vehicleid;
  178. AttachObjectToVehicle( obj[ vehicleid ], vehicleid, 0, 4.45, -1.2, 0, 0, 0 );
  179. TogglePlayerSpectating( playerid,1 );
  180. PlayerSpectateVehicle( playerid,vehicleid,SPECTATE_MODE_NORMAL );
  181. //PutPlayerInVehicle( playerid, vehicleid, 1 );
  182. AttachCameraToObject( playerid, obj[ vehicleid ] );
  183. TextDrawShowForPlayer( playerid, TextDraw[ 0 ] );
  184. TextDrawShowForPlayer( playerid, TextDraw[ 1 ] );
  185. TextDrawShowForPlayer( playerid, TextDraw[ 2 ] );
  186. PlayerTextDrawShow( playerid, AmmoTDraw[ playerid ] );
  187. TextDrawShowForPlayer( playerid, TextDraw[ 4 ] );
  188. TextDrawShowForPlayer( playerid, TextDraw[ 5 ] );
  189. TextDrawShowForPlayer( playerid, TextDraw[ 6 ] );
  190. }
  191. return 1;
  192. }
  193. public OnVehicleDeath( vehicleid )
  194. {
  195. if( vehiclepid[ vehicleid ] != -1 )
  196. {
  197. SetCameraBehindPlayer( vehiclepid[ vehicleid ] );
  198. SendClientMessage( vehiclepid[ vehicleid ],-1, "Der Helikopter ist abgestürtzt!" );
  199. CallRemoteFunction( "OnPlayerDeath","ddd",vehiclepid[ vehicleid ],-1,-1 );
  200. TogglePlayerSpectating( vehiclepid[ vehicleid ],0 );
  201. DestroyObject( obj[ vehicleid ] );
  202. playerchopper[ vehiclepid[ vehicleid ] ] = 0;
  203. vehiclepid[ vehicleid ] = -1;
  204. TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 0 ] );
  205. TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 1 ] );
  206. TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 2 ] );
  207. PlayerTextDrawHide( vehiclepid[ vehicleid ], AmmoTDraw[ vehiclepid[ vehicleid ] ] );
  208. TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 4 ] );
  209. TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 5 ] );
  210. TextDrawHideForPlayer( vehiclepid[ vehicleid ], TextDraw[ 6 ] );
  211. }
  212. }
  213. public OnPlayerDisconnect( playerid )
  214. {
  215. if( playerchopper[ playerid ] != 0 )
  216. vehiclepid[ playerchopper[ playerid ] ] = -1;
  217. playerchopper[ playerid ] = 0;
  218. PlayerTextDrawDestroy( playerid,AmmoTDraw[ playerid ] );
  219.  
  220. return 0;
  221. }
  222. public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
  223. {
  224. if( newkeys & KEY_FIRE && playerchopper[ playerid ] != 0 && GetVehicleModel( playerchopper[ playerid ] ) == 425 ) OnPlayerCommandText( playerid, SHOOT );
  225. if( newkeys & 16 && playerchopper[ playerid ] != 0 && GetVehicleModel( playerchopper[ playerid ] ) == 425 )
  226. {
  227. new Float:x,Float:y,Float:z;
  228. GetVehiclePos( playerchopper[ playerid ],x,y,z );
  229. TogglePlayerSpectating( playerid,0 );
  230. SetCameraBehindPlayer( playerid );
  231. SetPlayerPos( playerid,x+2,y+2,z );
  232. DestroyObject( obj[ playerchopper[ playerid ] ] );
  233. vehiclepid[ playerchopper[ playerid ] ] = -1;
  234. playerchopper[ playerid ] = 0;
  235. TextDrawHideForPlayer( playerid, TextDraw[ 0 ] );
  236. TextDrawHideForPlayer( playerid, TextDraw[ 1 ] );
  237. TextDrawHideForPlayer( playerid, TextDraw[ 2 ] );
  238. PlayerTextDrawHide( playerid, AmmoTDraw[ playerid ] );
  239. TextDrawHideForPlayer( playerid, TextDraw[ 4 ] );
  240. TextDrawHideForPlayer( playerid, TextDraw[ 5 ] );
  241. TextDrawHideForPlayer( playerid, TextDraw[ 6 ] );
  242. }
  243. return 0;
  244. }
  245. public OnObjectMoved( objectid )
  246. {
  247. if( !Rocket[ objectid ] ) return 1;
  248. KillTimer( Timer[ objectid ] );
  249. Timer[ objectid ] = -1;
  250. new
  251. Float:x, Float:y, Float:z, Float:Dist;
  252. GetObjectPos( objectid, x, y, z );
  253. CreateExplosion( x, y, z, 0, 10.0 );
  254. for( new i = 0; i < MAX_PLAYERS; i ++ )
  255. {
  256. if( !IsPlayerConnected( i ) ) continue;
  257. Dist = GetPlayerDistanceFromPoint( i, x, y, z );
  258. if( Dist < 10.0 )
  259. {
  260. new Float:HP,Float:NewHP;
  261. GetPlayerHealth( i, HP );
  262. NewHP = HP-150+Dist*10;
  263. if( NewHP >= HP )
  264. {
  265. TogglePlayerSpectating( i, 1 );
  266. TogglePlayerSpectating( i, 0 );
  267. CallRemoteFunction( "OnPlayerDeath", "ddd", i, objChopper[ objectid ], 51 );
  268. }
  269. else SetPlayerHealth( i, NewHP );
  270. }
  271. }
  272. Rocket[ objectid ] = false;
  273. DestroyObject( objectid );
  274. return 0;
  275. }
  276. forward CheckObj( objid );
  277. public CheckObj( objid )
  278. {
  279. if( !Rocket[ objid ] ) return 1;
  280. new
  281. Float:x, Float:y, Float:z, Float:Z, Float:Dist;
  282. GetObjectPos( objid, x, y, z );
  283. MapAndreas_FindZ_For2DCoord( x, y, Z );
  284. if( Z > z || ( z - Z ) < 5.0 )
  285. {
  286. KillTimer( Timer[ objid ] );
  287. Timer[ objid ] = -1;
  288. CreateExplosion( x, y, z, 0, 10.0 );
  289. for( new i = 0; i < MAX_PLAYERS; i ++ )
  290. {
  291. if( !IsPlayerConnected( i ) ) continue;
  292. Dist = GetPlayerDistanceFromPoint( i, x, y, z );
  293. if( Dist < 10.0 )
  294. {
  295. new Float:HP,Float:NewHP;
  296. GetPlayerHealth( i, HP );
  297. NewHP = HP-150+Dist*10;
  298. if( NewHP >= HP )
  299. {
  300. TogglePlayerSpectating( i, 1 );
  301. TogglePlayerSpectating( i, 0 );
  302. CallRemoteFunction( "OnPlayerDeath", "ddd", i, objChopper[ objid ], 51 );
  303. }
  304. else SetPlayerHealth( i, NewHP );
  305. }
  306. }
  307. Rocket[ objid ] = false;
  308. DestroyObject( objid );
  309. }
  310. return 1;
  311. }
  312. public OnPlayerConnect( playerid )
  313. {
  314. if( !IsPlayerNPC( playerid ) )
  315. {
  316. playerchopper[ playerid ] = 0;
  317. GetPlayerName( playerid, pName[ playerid ], MAX_PLAYER_NAME );
  318. AmmoTDraw[ playerid ] = CreatePlayerTextDraw( playerid, 514.000000, 397.000000, "!!!!!!!!!!!!!!!!!!!!~n~!!!!!!!!!!!!!!!!!!!!" );
  319. PlayerTextDrawBackgroundColor( playerid, AmmoTDraw[ playerid ], 255 );
  320. PlayerTextDrawFont( playerid, AmmoTDraw[ playerid ], 1 );
  321. PlayerTextDrawLetterSize( playerid, AmmoTDraw[ playerid ], 0.500000, 1.000000 );
  322. PlayerTextDrawColor( playerid, AmmoTDraw[ playerid ], -1 );
  323. PlayerTextDrawSetOutline( playerid, AmmoTDraw[ playerid ], 0 );
  324. PlayerTextDrawSetProportional( playerid, AmmoTDraw[ playerid ], 1 );
  325. PlayerTextDrawSetShadow( playerid, AmmoTDraw[ playerid ], 1 );
  326.  
  327. }
  328. return 0;
  329. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement