Advertisement
Guest User

V.I.P v1.1

a guest
Aug 4th, 2011
1,234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 54.31 KB | None | 0 0
  1. #if defined VIP
  2. xxSPEEDYxx's V.I.P System - NEW*
  3. 3 Levels
  4. v2.0
  5. COMMANDS - [v1.0]:
  6.  
  7. V.I.P Level 1 Commands: V.I.P Level 2 Commands: V.I.P Level 3 Commands:
  8. /mytime /vsaveskin /vkick
  9. /myweather /dontuseskin /vget
  10. /myvw /vweapons /rw
  11. /mycolor /vipgoto /maxammo
  12. /vspec /vasay + V.I.P level 1&2 CMDS
  13. /vspecoff + V.I.P level 1 CMDS
  14. /spawnme
  15. /vcmds
  16.  
  17. COMMANDS - [v2.0]:
  18.  
  19. V.I.P Level 1 Commands: V.I.P Level 2 Commands: V.I.P Level 3 Commands:
  20. /ltc[1 - 13] /vipgod /vannounce
  21. /viphouse
  22. /godcar
  23. /vcar
  24. /vspa( V.I.P Special Actions! )
  25. /stophold!
  26.  
  27. V.I.P over 35 command! OMG!
  28.  
  29. #endif
  30. //============ [ Includes ] ============//
  31. #include < a_samp > // Main include!
  32. #include < zcmd > // Find it on: http://forum.sa-mp.com/showthread.php?t=91354&highlight=zcmd
  33. #include < sscanf2 > // Find it on: http://forum.sa-mp.com/showthread.php?t=120356
  34. //======================================//
  35.  
  36. #pragma tabsize 0
  37. #define VIPS_SEND_COMMAND //Put this: // In front of this define to do not use //VIPS_SEND_COMAND
  38.  
  39. //============ [ Colours ] ============//
  40. #define RED 0xE60000AA
  41. #define YELLOW 0xFFFF00AA
  42. #define GREEN 0x00FF00AA
  43. #define ABLUE 0x2641FEAA
  44. #define COLOR_VIP 0xFF5500AA //aka Orange:P
  45. //====================================//
  46. //========== [ Dialogs ] ==========//
  47. /*
  48. I put the dialogids bigest to not confuse with other dialogs in your FSs/GM
  49. */
  50. #define MYLVL 12000
  51. #define VIPS 12001
  52. #define VIPCMDS 12002
  53. #define ONCONN 12003
  54. #define VSPA 12004
  55. //====================================//
  56. //============= [ SPEC ] =============//
  57. #define ADMIN_SPEC_TYPE_NONE 0
  58. #define ADMIN_SPEC_TYPE_PLAYER 1
  59. #define ADMIN_SPEC_TYPE_VEHICLE 2
  60. /*
  61. Do not touch this!
  62. */
  63. //=========== [ Shortcuts ] ==========//
  64. #define Public:%0(%1) \
  65. forward%0(%1); public%0(%1)
  66. //====================================//
  67. //========== [ News&Enums ] ==========//
  68. enum pInfo
  69. {
  70. Vip,
  71. SpecID,
  72. SpecType,
  73. God,
  74. CarGod
  75. };
  76.  
  77. new P_DATA[ MAX_PLAYERS ][ pInfo ];
  78. new DB:Database;
  79. new Float:Position[ MAX_PLAYERS ][ 4 ];
  80. //====================================//
  81. //======================================================== [ CallBacks ] ========================================================//
  82. public OnFilterScriptInit( )
  83. {
  84. Database = db_open( "Vips.db" ); //Name of the database! You can change it!
  85. db_free_result( db_query( Database, "CREATE TABLE IF NOT EXISTS `Vips` \
  86. ( `Nume` TEXT,\
  87. `VipLevel` NUMERIC,\
  88. `VSkin` NUMERIC )" ) );
  89. return 1;
  90. }
  91.  
  92. public OnFilterScriptExit( )
  93. {
  94. db_close( Database );
  95. return 1;
  96. }
  97.  
  98. public OnPlayerConnect( playerid )
  99. {
  100. new Query[ 256 ], string[ 128 ], DBResult:Result;
  101. format( Query, sizeof( Query ), "SELECT * FROM `Vips` WHERE `Nume` = '%s'", PlayerName2( playerid ) );
  102. Result = db_query( Database, Query );
  103.  
  104. if ( db_num_rows( Result ) )
  105. {
  106. new Field[ 30 ];
  107. db_get_field_assoc( Result, "VipLevel", Field, 30 );
  108. P_DATA[ playerid ][ Vip ] = strval( Field );
  109. format( string, sizeof( string ), "\t{FF5500}Your V.I.P Level:\n\n{FF5500}You have V.I.P level {00FF00}%d\n\n{E60000}Congratulations!", P_DATA[ playerid ][ Vip ] );
  110. ShowPlayerDialog( playerid, ONCONN, DIALOG_STYLE_MSGBOX, "{00FF00}V.I.P", string, "Quit", "" );
  111. }
  112. else
  113. {
  114. ShowPlayerDialog( playerid, ONCONN+1, DIALOG_STYLE_MSGBOX, "{00FF00}V.I.P", "{E60000}This username have V.I.P level 0", "Quit", "" );
  115. }
  116. db_free_result( Result );
  117. return 1;
  118. }
  119.  
  120.  
  121. public OnPlayerDisconnect( playerid, reason )
  122. {
  123. for ( new i = 0; i < MAX_PLAYERS; i++ )
  124. {
  125. if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid )
  126. {
  127. AdvanceSpectate( i );
  128. }
  129. }
  130. return 1;
  131. }
  132.  
  133. public OnPlayerDeath( playerid, killerid, reason )
  134. {
  135. for ( new i = 0; i < MAX_PLAYERS; i++ )
  136. {
  137. if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid )
  138. {
  139. AdvanceSpectate( i );
  140. }
  141. }
  142. return 1;
  143. }
  144.  
  145. public OnPlayerInteriorChange( playerid, newinteriorid, oldinteriorid )
  146. {
  147. new i = 0;
  148. while( i != MAX_PLAYERS )
  149. {
  150. if ( IsPlayerConnected( i ) && GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid && P_DATA[ i ][ SpecType ] == ADMIN_SPEC_TYPE_PLAYER )
  151. {
  152. SetPlayerInterior( i, newinteriorid );
  153. }
  154. i++;
  155. }
  156. }
  157.  
  158. public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
  159. {
  160. if ( GetPlayerState( playerid ) == PLAYER_STATE_SPECTATING && P_DATA[ playerid ][ SpecID ] != INVALID_PLAYER_ID )
  161. {
  162. if ( newkeys == KEY_JUMP ) AdvanceSpectate( playerid );
  163. else if ( newkeys == KEY_SPRINT ) ReverseSpectate( playerid );
  164. }
  165. return 1;
  166. }
  167.  
  168. public OnPlayerEnterVehicle( playerid, vehicleid )
  169. {
  170. for ( new i = 0; i < MAX_PLAYERS; i++ )
  171. {
  172. if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid )
  173. {
  174. TogglePlayerSpectating( i, 1 );
  175. PlayerSpectateVehicle( i, vehicleid );
  176. P_DATA[ i ][ SpecType ] = ADMIN_SPEC_TYPE_VEHICLE;
  177. }
  178. }
  179. return 1;
  180. }
  181.  
  182. public OnPlayerStateChange( playerid, newstate, oldstate )
  183. {
  184. switch( newstate )
  185. {
  186. case PLAYER_STATE_ONFOOT:
  187. {
  188. switch( oldstate )
  189. {
  190. case PLAYER_STATE_DRIVER: OnPlayerExitVehicle( playerid, 255 );
  191. case PLAYER_STATE_PASSENGER: OnPlayerExitVehicle( playerid, 255 );
  192. }
  193. }
  194. }
  195. return 1;
  196. }
  197.  
  198. public OnPlayerText( playerid, text[ ] )
  199. {
  200. new textstr[ 128 ];
  201.  
  202. if ( text[ 0 ] == '!' && P_DATA[ playerid ][ Vip ] >= 1 )
  203. {
  204. GetPlayerName( playerid, textstr, sizeof( textstr ) );
  205. format( textstr, sizeof( textstr ),"V.I.P Chat: {00FF00}%s{FF5500}: %s", textstr, text[ 1 ] );
  206. SendVipMessage( COLOR_VIP, textstr );
  207. return 0;
  208. }
  209. return 1;
  210. }
  211.  
  212. public OnPlayerExitVehicle( playerid, vehicleid )
  213. {
  214. for ( new i = 0; i < MAX_PLAYERS; i++ )
  215. {
  216. if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid && P_DATA[ i ][ SpecType ] == ADMIN_SPEC_TYPE_VEHICLE)
  217. {
  218. TogglePlayerSpectating( i, 1 );
  219. PlayerSpectatePlayer( i, playerid );
  220. P_DATA[ i ][ SpecType ] = ADMIN_SPEC_TYPE_PLAYER;
  221. }
  222. }
  223. return 1;
  224. }
  225.  
  226. public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
  227. {
  228. if ( dialogid == VSPA )
  229. {
  230. if ( response )
  231. {
  232. if ( listitem == 0 )
  233. {
  234. for ( new i = 0; i < 5; i++ )
  235. {
  236. if ( IsPlayerAttachedObjectSlotUsed( playerid, i ) )
  237. {
  238. RemovePlayerAttachedObject( playerid, i );
  239. }
  240. }
  241. SetPlayerAttachedObject( playerid, 1, 19086, 8, -0.049768, -0.014062, -0.108385, 87.458297, 263.478149, 184.123764, 0.622413, 1.041609, 1.012785 );
  242. SendClientMessage( playerid, COLOR_VIP, "You have holded a {00FF00}dick!" );
  243. SendClientMessage( playerid, COLOR_VIP, "To stop holding please type {00FF00}/stophold!" );
  244. }
  245. if ( listitem == 1 )
  246. {
  247. for ( new i = 0; i < 5; i++ )
  248. {
  249. if ( IsPlayerAttachedObjectSlotUsed( playerid, i ) )
  250. {
  251. RemovePlayerAttachedObject( playerid, i );
  252. }
  253. }
  254. SetPlayerAttachedObject( playerid, 0, 1114, 1, 0.138007, 0.002714, -0.157366, 350.942352, 16.794704, 32.683506, 0.791829, 0.471535, 1.032759 );
  255. SetPlayerAttachedObject( playerid, 1, 1114, 1, 0.138007, 0.002714, 0.064523, 342.729064, 354.099456, 32.369094, 0.791829, 0.471535, 1.032759 );
  256. SendClientMessage( playerid, COLOR_VIP, "You have holded a {00FF00}iron!" );
  257. SendClientMessage( playerid, COLOR_VIP, "To stop holding please type {00FF00}/stophold!" );
  258. }
  259. if ( listitem == 2 )
  260. {
  261. for ( new i = 0; i < 5; i++ )
  262. {
  263. if ( IsPlayerAttachedObjectSlotUsed( playerid, i ) )
  264. {
  265. RemovePlayerAttachedObject( playerid, i );
  266. }
  267. }
  268. SetPlayerAttachedObject( playerid, 0, 18645, 2, 0.017478, 0.051500, 0.003912, 285.055511, 90.860740, 171.179550, 1.780549, 0.912008, 1.208514 );
  269. SetPlayerAttachedObject( playerid, 1, 18690, 2, -2.979508, 0.306475, -0.388553, 285.055511, 90.860740, 171.179550, 1.780549, 0.912008, 1.208514 );
  270. SetPlayerAttachedObject( playerid, 2, 18716, 2, -2.979508, 0.306475, -0.388553, 285.055511, 90.860740, 171.179550, 1.780549, 0.912008, 1.208514 );
  271. SendClientMessage( playerid, COLOR_VIP, "You have holded as {00FF00}Alien!" );
  272. SendClientMessage( playerid, COLOR_VIP, "To stop holding please type {00FF00}/stophold!" );
  273. }
  274. if ( listitem == 3 )
  275. {
  276. for ( new i = 0; i < 5; i++ )
  277. {
  278. if ( IsPlayerAttachedObjectSlotUsed( playerid, i ) )
  279. {
  280. RemovePlayerAttachedObject( playerid, i );
  281. }
  282. }
  283. SetPlayerAttachedObject( playerid, 0, 18693, 5, 1.983503, 1.558882, -0.129482, 86.705787, 308.978118, 268.198822, 1.500000, 1.500000, 1.500000 );
  284. SetPlayerAttachedObject( playerid, 1, 18693, 6, 1.983503, 1.558882, -0.129482, 86.705787, 308.978118, 268.198822, 1.500000, 1.500000, 1.500000 );
  285. SetPlayerAttachedObject( playerid, 2, 18703, 6, 1.983503, 1.558882, -0.129482, 86.705787, 308.978118, 268.198822, 1.500000, 1.500000, 1.500000 );
  286. SetPlayerAttachedObject( playerid, 3, 18703, 5, 1.983503, 1.558882, -0.129482, 86.705787, 308.978118, 268.198822, 1.500000, 1.500000, 1.500000 );
  287. SetPlayerAttachedObject( playerid, 4, 18965, 2, 0.111052, 0.021643, -0.000846, 92.280899, 92.752510, 358.071044, 1.200000, 1.283168, 1.200000 );
  288. SendClientMessage( playerid, COLOR_VIP, "You have holded as {00FF00}Icread!" );
  289. SendClientMessage( playerid, COLOR_VIP, "To stop holding please type {00FF00}/stophold!" );
  290. }
  291. if ( listitem == 4 )
  292. {
  293. SetPlayerSpecialAction( playerid, 2 ); //Jetpack!
  294. SendClientMessage( playerid, COLOR_VIP,"Jetpack Spawmed!" );
  295. }
  296. }
  297. }
  298. return 1;
  299. }
  300. //================================================================================================================================//
  301. //======================================================== [ Commands v1.0 ] =====================================================//
  302. CMD:setvip( playerid, params[ ] )
  303. {
  304. new giveplayerid, level;
  305. new string[ 128 ], Query[ 256 ], DBResult:Resultat;
  306.  
  307. if ( !IsPlayerAdmin( playerid ) ) return SendClientMessage( playerid, RED, "Only RCON Administrator can use this command!" );
  308. if ( sscanf( params, "ud", giveplayerid, level ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/setvip [playerid] [level]" );
  309. if ( giveplayerid == INVALID_PLAYER_ID ) return SendClientMessage( playerid, RED, "Player Is Not Connected!" );
  310. if ( level > 3 ) return SendClientMessage( playerid, RED, "Maximum V.I.P level is 3!" );
  311.  
  312. if ( level == 0 )
  313. {
  314. P_DATA[ giveplayerid ][ Vip ] = level;
  315. format( Query, sizeof( Query ), "DELETE FROM `Vips` WHERE `Nume` = '%s'" , PlayerName2( giveplayerid ) );
  316. db_free_result( db_query( Database, Query ) );
  317. format( string, sizeof( string ), "Administrator %s has deleted you V.I.P account!", PlayerName2( playerid ) );
  318. return SendClientMessage( giveplayerid, ABLUE, string );
  319. }
  320.  
  321. format( Query, sizeof( Query ), "SELECT * FROM `Vips` WHERE `Nume` = '%s'", PlayerName2( playerid ) );
  322. Resultat = db_query( Database, Query );
  323.  
  324. if ( !db_num_rows( Resultat ) )
  325. {
  326. P_DATA[ giveplayerid ][ Vip ] = level;
  327. format( string, sizeof( string ), "Administrator %s has set your V.I.P level to %d!", PlayerName2( playerid ), level );
  328. SendClientMessage( giveplayerid, ABLUE, string );
  329. format( Query, sizeof( Query ), "INSERT INTO `Vips` VALUES('%s','%d','%d')", PlayerName2( giveplayerid ), level, -1 );
  330. db_free_result( db_query( Database, Query ) );
  331. } else {
  332. P_DATA[ giveplayerid ][ Vip ] = level;
  333. format( string, sizeof( string ), "Administrator %s has set update your V.I.P level to %d!", PlayerName2( playerid ), level );
  334. SendClientMessage( giveplayerid, ABLUE, string );
  335. format( Query, sizeof( Query ), "UPDATE `Vips` SET `VipLevel` = '%d' WHERE `Nume` = '%s'", level, PlayerName2( giveplayerid ) );
  336. db_free_result( db_query( Database, Query ) );
  337. }
  338. return 1;
  339. }
  340.  
  341. CMD:vipgoto( playerid , params[ ] )
  342. {
  343. new PID, string[ 128 ];
  344. new Float:x, Float:y, Float:z;
  345.  
  346. if ( P_DATA[ playerid ][ Vip ] >= 2 )
  347. {
  348. if ( sscanf( params, "u", PID ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vipgoto [playerid]" );
  349.  
  350. GetPlayerPos( PID , x , y , z );
  351. SetPlayerInterior( playerid , GetPlayerInterior( PID ) );
  352. SetPlayerVirtualWorld( playerid , GetPlayerVirtualWorld( PID ) );
  353. if ( IsPlayerConnected( PID ) && PID != INVALID_PLAYER_ID && PID != playerid )
  354. {
  355. if ( GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
  356. {
  357. SetVehiclePos( GetPlayerVehicleID( playerid ) , x+3 , y , z );
  358. LinkVehicleToInterior( GetPlayerVehicleID( playerid ), GetPlayerInterior( PID ) );
  359. SetVehicleVirtualWorld( GetPlayerVehicleID( playerid ), GetPlayerVirtualWorld( PID ) );
  360. format( string , sizeof( string ), "You have teleported to %s's location!" , PlayerName2( PID ) );
  361. SendClientMessage( playerid ,COLOR_VIP ,string );
  362. format( string, sizeof( string ), "V.I.P {00FF00}%s(%d) {FF5500}has teleported to your location!", PlayerName2( playerid ), P_DATA[ playerid ][ Vip ] );
  363. SendClientMessage( PID, COLOR_VIP, string );
  364. #if defined VIPS_SEND_COMMAND
  365. SendVipsCommand( playerid, "/vipgoto" );
  366. #endif
  367. } else {
  368. #if defined VIPS_SEND_COMMAND
  369. SendVipsCommand( playerid, "/vipgoto" );
  370. #endif
  371. SetPlayerPos( playerid , x+2 , y , z );
  372. format( string, sizeof( string ), "V.I.P {00FF00}%s(%d) {FF5500}has teleported to your location!", PlayerName2( playerid ), P_DATA[ playerid ][ Vip ] );
  373. SendClientMessage( PID, COLOR_VIP, string );
  374. format( string , sizeof( string ), "You have teleported to %s's location!" , PlayerName2( PID ) );
  375. SendClientMessage( playerid ,COLOR_VIP ,string ); }
  376. } else {
  377. SendClientMessage( playerid, RED, "Player not connected or is yourself!" ); }
  378. } else {
  379. return SendLevel( playerid, 2 ); }
  380. return 1;
  381. }
  382.  
  383. CMD:spawnme( playerid, params[ ] )
  384. {
  385. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  386. {
  387. SpawnPlayer( playerid );
  388. SendClientMessage( playerid, COLOR_VIP, "You have been respawmed!" );
  389. #if defined VIPS_SEND_COMMAND
  390. SendVipsCommand( playerid, "/spawnme" );
  391. #endif
  392. } else {
  393. return SendLevel( playerid, 1 ); }
  394. return 1;
  395. }
  396.  
  397. CMD:vips( playerid, params[ ] )
  398. {
  399. new V, vstr[ 2048 ]; // I put big string to apeear all V.I.Ps
  400.  
  401. for ( new i = 0; i < MAX_PLAYERS; i++ )
  402. {
  403. if ( IsPlayerConnected( i ) && P_DATA[ i ][ Vip ] > 0 )
  404. {
  405. format( vstr, 2048, "{FF5500}%s\n{FF5500}V.I.P {00FF00}%s {FF5500}- Level {00FF00}%d", vstr, ReturnPlayerName( i ), P_DATA[ i ][ Vip ] );
  406. V++;
  407. }
  408. }
  409. if ( V == 0 )
  410. {
  411. format ( vstr, sizeof( vstr ), "\n{E60000}No V.I.Ps online at the moment!" );
  412. }
  413. return ShowPlayerDialog( playerid, VIPS, DIALOG_STYLE_MSGBOX, "{00FF00}Online V.I.Ps:", vstr, "Quit", "" );
  414. }
  415.  
  416. CMD:myweather( playerid, params[ ] )
  417. {
  418. new weather, string[ 128 ];
  419.  
  420. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  421. {
  422. if ( sscanf( params, "d", weather ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/myweather [weatherid]" );
  423. if ( ( weather < 0 ) || ( weather > 52 ) ) return SendClientMessage( playerid, RED, "Only between 0 and 52 weather ids!" );
  424.  
  425. SetPlayerWeather( playerid, weather );
  426. format( string, sizeof( string ), "You have set your weather to {E60000}%d", weather );
  427. SendClientMessage( playerid, COLOR_VIP, string );
  428. #if defined VIPS_SEND_COMMAND
  429. SendVipsCommand( playerid, "/myweather" );
  430. #endif
  431. } else {
  432. return SendLevel( playerid, 1 ); }
  433. return 1;
  434. }
  435.  
  436. CMD:mytime( playerid, params[ ] )
  437. {
  438. new time, string[ 128 ];
  439.  
  440. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  441. {
  442. if ( sscanf( params, "d", time ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/mytime [time]" );
  443. if ( ( time < 0 ) || ( time > 24 ) ) return SendClientMessage( playerid, RED, "Only between 0 and 24 hours you can set your time!" );
  444.  
  445. SetPlayerTime( playerid, time, 0 );
  446. format( string, sizeof( string ), "You have set your time to {E60000}%d", time );
  447. SendClientMessage( playerid, COLOR_VIP, string );
  448. #if defined VIPS_SEND_COMMAND
  449. SendVipsCommand( playerid, "/mytime" );
  450. #endif
  451. } else {
  452. return SendLevel( playerid, 1 ); }
  453. return 1;
  454. }
  455.  
  456. CMD:myvw( playerid, params[ ] )
  457. /*
  458. With this function you will be ablle to change your virtual world!
  459. Disponible Virtual Worlds are between 0 and 100 you can change to bigest or lowest on this line:
  460. if ( ( vw < 0 ) || ( vw > 100 ) )
  461. */
  462. {
  463. new vw, string[ 128 ];
  464.  
  465. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  466. {
  467. if ( sscanf( params, "d", vw ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/myvw [virtualworld]" );
  468. if ( ( vw < 0 ) || ( vw > 100 ) ) return SendClientMessage( playerid, RED, "Only between 0 and 100 Virtual Worlds ar disponible!" );
  469.  
  470. if ( vw == 0 )
  471. {
  472. SetPlayerVirtualWorld( playerid, 0 );
  473. return SendClientMessage( playerid, YELLOW, "You have returned back in normal world( 0 )!" );
  474. }
  475. SetPlayerVirtualWorld( playerid, vw );
  476. format( string, sizeof( string ), "You have set your Virtual World to {E60000}%d", vw );
  477. SendClientMessage( playerid, COLOR_VIP, string );
  478. #if defined VIPS_SEND_COMMAND
  479. SendVipsCommand( playerid, "/myvw" );
  480. #endif
  481. } else {
  482. return SendLevel( playerid, 1 ); }
  483. return 1;
  484. }
  485.  
  486. CMD:vasay( playerid, params[ ] )
  487. {
  488. new VipMessage[ 180 ];
  489.  
  490. if ( P_DATA[ playerid ][ Vip ] >= 2 )
  491. {
  492. if ( sscanf( params, "s[ 120 ]", VipMessage ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vasay [text]" );
  493.  
  494. format( VipMessage, sizeof( VipMessage ), "V.I.P - %s {FFFF00}(lvl: %d): {00FF00}%s", PlayerName2( playerid ), P_DATA[ playerid ][ Vip ], VipMessage );
  495. SendClientMessageToAll( COLOR_VIP, VipMessage );
  496. #if defined VIPS_SEND_COMMAND
  497. SendVipsCommand( playerid, "/vasay" );
  498. #endif
  499. } else {
  500. return SendLevel( playerid, 2 ); }
  501. return 1;
  502. }
  503.  
  504. CMD:maxammo( playerid, params[ ] )
  505. {
  506. if ( P_DATA[ playerid ][ Vip ] == 3 )
  507. {
  508. SendPlayerMaxAmmo( playerid );
  509. SendClientMessage( playerid, COLOR_VIP, "You have added {00FF00}Max Ammo{FF5500} to your weapons!" );
  510. #if defined VIPS_SEND_COMMAND
  511. SendVipsCommand( playerid, "/MaxAmmo" );
  512. #endif
  513. } else {
  514. return SendLevel( playerid, 3 ); }
  515. return 1;
  516. }
  517.  
  518. CMD:vweapons( playerid, params[ ] )
  519. {
  520. if ( P_DATA[ playerid ][ Vip ] >= 2 )
  521. {
  522.  
  523. GivePlayerWeapon( playerid ,28, 120) ; //Weapons: Micro SMG || Ammo: 120
  524. GivePlayerWeapon( playerid, 31, 75 ); //Weapons: M4 || Gloante: 75
  525. GivePlayerWeapon( playerid, 34, 15 ); //Weapons: Sniper Rifle || Ammo: 15
  526. GivePlayerWeapon( playerid, 26, 100 ); //Weapons: Sawn-off Shotgun || Ammo: 100
  527. #if defined VIPS_SEND_COMMAND
  528. SendVipsCommand( playerid, "/vweapons" );
  529. #endif
  530. //Else you can change and the weapons.You don't know the weapon ids? Check: http://wiki.sa-mp.com/wiki/Weapons
  531. } else {
  532. return SendLevel( playerid, 2 ); }
  533. return 1;
  534. }
  535.  
  536. CMD:vspec( playerid, params[ ] )
  537. {
  538. new PID, string[ 128 ];
  539.  
  540. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  541. {
  542. if ( sscanf( params, "u", PID ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vspec [playerid]" );
  543.  
  544. if ( IsPlayerConnected( PID ) && PID != INVALID_PLAYER_ID && PID != playerid )
  545. {
  546. if ( GetPlayerState( PID ) == PLAYER_STATE_SPECTATING && P_DATA[ PID ][ SpecID ] != INVALID_PLAYER_ID )
  547. {
  548. if ( GetPlayerState( PID ) != 1 && GetPlayerState( PID ) != 2 && GetPlayerState( PID ) != 3)
  549. {
  550. SpectatePlayer( playerid, PID );
  551. GetPlayerPos( playerid, Position[ playerid ][ 0 ], Position[ playerid ][ 1 ], Position[ playerid ][ 2 ] );
  552. GetPlayerFacingAngle( playerid, Position[ playerid ][ 3 ] );
  553. format( string, sizeof( string ), "Now you spectating %s (%d)", PlayerName2( PID ), PID );
  554. SendClientMessage( playerid, COLOR_VIP, string );
  555. #if defined VIPS_SEND_COMMAND
  556. SendVipsCommand( playerid, "/vspec" );
  557. #endif
  558. } else {
  559. SendClientMessage( playerid, RED, "ERROR: Player not spawned!" ); }
  560. } else {
  561. SendClientMessage( playerid, RED, "ERROR: Player spectating someone else!" ); }
  562. } else {
  563. SendClientMessage( playerid, RED, "ERROR: Player is not connected or is yourself!" ); }
  564. } else {
  565. return SendLevel( playerid, 1 ); }
  566. return 1;
  567. }
  568.  
  569. CMD:vspecoff( playerid, params[ ] )
  570. {
  571. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  572. {
  573. if ( P_DATA[ playerid ][ SpecType ] != ADMIN_SPEC_TYPE_NONE )
  574. {
  575. StopSpectate( playerid );
  576. SetTimerEx("ReturnPosition", 3000, 0, "d", playerid );
  577. SendClientMessage( playerid, COLOR_VIP, "You have stop spectating" );
  578. #if defined VIPS_SEND_COMMAND
  579. SendVipsCommand( playerid, "/vspecoff" );
  580. #endif
  581. } else {
  582. SendClientMessage( playerid, RED, "ERROR: You are not spectating" ); }
  583. } else {
  584. return SendLevel( playerid, 1 ); }
  585. return 1;
  586. }
  587.  
  588. CMD:vsaveskin( playerid, params[ ] )
  589. {
  590. new SkinID, string[ 128 ], Query[ 256 ];
  591.  
  592. if ( P_DATA[ playerid ][ Vip ] >= 2 )
  593. {
  594. SkinID = GetPlayerSkin( playerid );
  595. format( Query, sizeof( Query ), "UPDATE `Vips` SET `VSkin` = '%d' WHERE `Nume` = '%s' ", SkinID, PlayerName2( playerid ) );
  596. db_free_result( db_query( Database, Query ) );
  597. format( string, sizeof( string ), "You have successfully saved this skin (ID: %d)", SkinID );
  598. SendClientMessage( playerid, COLOR_VIP, string );
  599. SendClientMessage( playerid, COLOR_VIP, "Type /dontuseskin for don't save again this skin!" );
  600. #if defined VIPS_SEND_COMMAND
  601. SendVipsCommand( playerid, "/vsaveskin" );
  602. #endif
  603. } else {
  604. return SendLevel( playerid, 2 ); }
  605. return 1;
  606. }
  607.  
  608. CMD:dontuseskin( playerid, params[ ] )
  609. {
  610. new Query[ 256 ];
  611.  
  612. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  613. {
  614. format( Query, sizeof( Query ), "UPDATE `Vips` SET `VSkin` = '-1' WHERE `Nume` = '%s' ", PlayerName2( playerid ) );
  615. db_free_result( db_query( Database, Query ) );
  616. #if defined VIPS_SEND_COMMAND
  617. SendVipsCommand( playerid, "/dontuseskin" );
  618. #endif
  619. SendClientMessage( playerid, COLOR_VIP, "Your saved skin is never been used!" );
  620. } else {
  621. return SendLevel( playerid, 2 ); }
  622. return 1;
  623. }
  624.  
  625. CMD:mycolor( playerid, params[ ] )
  626. {
  627. new Colour, colour[ 24 ];
  628.  
  629. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  630. {
  631. if ( sscanf( params, "d", Colour ) ) return Send2Clients( playerid, "/mycolor [color]", "0 = Black | 1 = White | 2 = Red | 3 = Orange | 4 = Yellow | 5 = Green | 6 = Blue | 7 = Purple | 8 = Brown" );
  632. if ( Colour > 8 ) return SendClientMessage( playerid, RED, "Colours: 0 = Black | 1 = White | 2 = Red | 3 = Orange | 4 = Yellow | 5 = Green | 6 = Blue | 7 = Purple | 8 = Brown" );
  633.  
  634. switch ( Colour ) {
  635. case 0: { SetPlayerColor( playerid, 0x000000AA ); colour = "Black"; }
  636. case 1: { SetPlayerColor( playerid, 0xFFFFFFAA ); colour = "White"; }
  637. case 2: { SetPlayerColor( playerid, 0xE60000AA ); colour = "Red"; }
  638. case 3: { SetPlayerColor( playerid, 0xFF5500AA ); colour = "Orange"; }
  639. case 4: { SetPlayerColor( playerid, 0xFFFF00AA ); colour = "Yellow"; }
  640. case 5: { SetPlayerColor( playerid, 0x00FF00AA ); colour = "Green"; }
  641. case 6: { SetPlayerColor( playerid, 0x0000BBAA ); colour = "Blue"; }
  642. case 7: { SetPlayerColor( playerid, 0x800080AA ); colour = "Purple"; }
  643. case 8: { SetPlayerColor( playerid, 0xA52A2AAA ); colour = "Brown"; } }
  644. #if defined VIPS_SEND_COMMAND
  645. SendVipsCommand( playerid, "/mycolor" );
  646. #endif
  647. } else {
  648. return SendLevel( playerid, 1 ); }
  649. return 1;
  650. }
  651.  
  652. CMD:vcmds( playerid, params[ ] )
  653. {
  654. new string[ 1024 ];
  655.  
  656. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  657. {
  658. strcat( string, "{FF5500}V.I.P Level {00FF00}1 {FF5500}Commands:\t{FF5500}V.I.P Level {00FF00}2 {FF5500}Commands:\t{FF5500}V.I.P Level {00FF00}3 {FF5500}Commands:\n\n" );
  659. strcat( string, "{FFFF00}/mytime\t\t\t/vsaveskin\t\t\t/vkick\n" );
  660. strcat( string, "/myweather\t\t\t/dontuseskin\t\t\t/vget\n" );
  661. strcat( string, "/myvw\t\t\t\t/vweapons\t\t\t/rw\n" );
  662. strcat( string, "/mycolor\t\t\t/vipgoto\t\t\t/maxammo\n" );
  663. strcat( string, "/vspec\t\t\t\t/vasay\t\t\t\t\n" );
  664. strcat( string, "/vspecoff\n/spawnme\n/vcmds\n" );
  665. strcat( string, "{E60000}/ltc[1-13]\t\t\t/vipgod\t\t\t/vannounce\n" );
  666. strcat( string, "{E60000}/godcar\n/vcar\n/vspa\n/stophold\n/viphouse\n" );
  667. strcat( string, "\t\t\t\t{FFFF00}+V.I.P level 1 CMDS\t\t+ V.I.P level 1&2 CMDS\n\n\n" );
  668. strcat( string, "{FF5500}Use simbol {00FF00}! {FF5500}in front of your text to speak in V.I.P Chat\n" );
  669. ShowPlayerDialog( playerid, VIPCMDS, DIALOG_STYLE_MSGBOX, "V.I.P Commands:", string, "Quit", "" );
  670. #if defined VIPS_SEND_COMMAND
  671. SendVipsCommand( playerid, "/vcmds" );
  672. #endif
  673. } else {
  674. return SendLevel( playerid, 1 ); }
  675. return 1;
  676. }
  677.  
  678. CMD:vget( playerid, params[ ] )
  679. {
  680. new PID, string[ 256 ];
  681. new Float:x, Float:y, Float:z;
  682.  
  683. if ( P_DATA[ playerid ][ Vip ] == 3 )
  684. {
  685. if ( sscanf( params, "u", PID ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vget [playerid]" );
  686.  
  687. if ( IsPlayerConnected( PID ) && PID != INVALID_PLAYER_ID && PID != playerid )
  688. {
  689. GetPlayerPos( playerid, x, y, z );
  690. SetPlayerInterior( PID, GetPlayerInterior( playerid ) );
  691. SetPlayerVirtualWorld( PID, GetPlayerVirtualWorld( playerid ) );
  692. if ( GetPlayerState( PID ) == 2 )
  693. {
  694. new VehicleID = GetPlayerVehicleID( PID );
  695. SetVehiclePos( VehicleID, x+3, y, z);
  696. LinkVehicleToInterior( VehicleID, GetPlayerInterior( PID ) );
  697. SetVehicleVirtualWorld( GetPlayerVehicleID( PID ), GetPlayerVirtualWorld( PID ) );
  698. format( string, sizeof( string ),"You have been teleported to V.I.P {00FF00}%s's {FF5500}location", PlayerName2( playerid ) );
  699. SendClientMessage( PID, COLOR_VIP, string );
  700. format( string, sizeof( string ),"You have teleported {00FF00}%s {FF5500}to your location", PlayerName2( PID ) );
  701. SendClientMessage( playerid, COLOR_VIP, string );
  702. #if defined VIPS_SEND_COMMAND
  703. SendVipsCommand( playerid, "/vget" );
  704. #endif
  705. } else {
  706. SetPlayerPos( PID, x+2, y, z );
  707. #if defined VIPS_SEND_COMMAND
  708. SendVipsCommand( playerid, "/vget" );
  709. #endif
  710. format( string, sizeof( string ),"You have been teleported to V.I.P {00FF00}%s's {FF5500}location", PlayerName2( playerid ) );
  711. SendClientMessage( PID, COLOR_VIP, string );
  712. format( string, sizeof( string ),"You have teleported {00FF00}%s {FF5500}to your location", PlayerName2( PID ) );
  713. SendClientMessage( playerid, COLOR_VIP, string ); }
  714. } else {
  715. SendClientMessage( playerid, RED, "Player is not connected or is yourself!" ); }
  716. } else {
  717. return SendLevel( playerid, 3 ); }
  718. return 1;
  719. }
  720.  
  721. CMD:vkick( playerid, params[ ] )
  722. {
  723. new string[ 128 ];
  724.  
  725. if ( P_DATA[ playerid ][ Vip ] == 3 )
  726. {
  727. if ( sscanf( params, "us[ 128 ]", params[ 0 ], params[ 1 ] ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vkick [playerid] [reason]" );
  728.  
  729. if ( IsPlayerConnected( params[ 0 ] ) && params[ 0 ] != INVALID_PLAYER_ID && params[ 0 ] != playerid )
  730. {
  731. if ( !strlen( params[ 1 ] ) )
  732. {
  733. format( string, sizeof( string ), "%s {FF5500}has been kicked by V.I.P {00FF00}%s {FF5500}[no reason given]!",PlayerName2( params[ 0 ] ), PlayerName2( playerid ) );
  734. SendClientMessageToAll( GREEN, string );
  735. Kick( params[ 0 ] );
  736.  
  737. #if defined VIPS_SEND_COMMAND
  738. SendVipsCommand( playerid, "/vkick" );
  739. #endif
  740. } else {
  741.  
  742. #if defined VIPS_SEND_COMMAND
  743. SendVipsCommand( playerid, "/vkick" );
  744. #endif
  745.  
  746. format( string, sizeof( string ), "%s {FF5500}has been kicked by V.I.P {00FF00}%s {FF5500}[reason: {00FF00%s{FF5500}] ", PlayerName2( params[ 0 ] ), PlayerName2( playerid ), params[ 1 ] );
  747. SendClientMessageToAll( GREEN, string );
  748. Kick( params[ 0 ] ); }
  749. } else {
  750. SendClientMessage( playerid, RED, "Player is not connected or is yourself!" ); }
  751. } else {
  752. return SendLevel( playerid, 3 ); }
  753. return 1;
  754. }
  755.  
  756. CMD:rw( playerid, params[ ] )
  757. {
  758. if ( P_DATA[ playerid ][ Vip ] == 3 )
  759. {
  760. GivePlayerWeapon( playerid, 4, 1); //Knife
  761. GivePlayerWeapon( playerid, 28, 1000); // Micro - SMG
  762. GivePlayerWeapon( playerid, 26, 100); // Sawn-off Shotgun
  763. GivePlayerWeapon( playerid, 22, 500); // 9mm Pistol
  764. //Source: http://wiki.sa-mp.com/wiki/Weapons !
  765. SendClientMessage( playerid, COLOR_VIP, "You got an Runing Weapons package!" );
  766. #if defined VIPS_SEND_COMMAND
  767. SendVipsCommand( playerid, "/vkick" );
  768. #endif
  769. } else {
  770. return SendLevel( playerid, 3 ); }
  771. return 1;
  772. }
  773. //================================================================================================================================//
  774. //===================================================== [ Comenzi v2.0 ] =========================================================//
  775. CMD:vipgod( playerid, params[ ] )
  776. {
  777. if ( P_DATA[ playerid ][ Vip ] >= 2 )
  778. {
  779. if ( P_DATA[ playerid ][ God ] == 1 )
  780. {
  781. P_DATA[ playerid ][ God ] = 1;
  782. SendClientMessage( playerid, COLOR_VIP, "You have activated the V.I.P {00FF00}God Mode!" );
  783. #if defined VIPS_SEND_COMMAND
  784. SendVipsCommand( playerid, "/vipgod" );
  785. #endif
  786. } else {
  787. #if defined VIPS_SEND_COMMAND
  788. SendVipsCommand( playerid, "/vipgod" );
  789. #endif
  790. P_DATA[ playerid ][ God ] = 0; }
  791. } else {
  792. return SendLevel( playerid, 2 ); }
  793. return 1;
  794. }
  795.  
  796. CMD:godcar( playerid, params[ ] )
  797. {
  798. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  799. {
  800. if ( P_DATA[ playerid ][ CarGod ] == 1 )
  801. {
  802. P_DATA[ playerid ][ CarGod ] = 1;
  803. SendClientMessage( playerid, COLOR_VIP, "You have activated the Vehicle {00FF00}God Mode!" );
  804. #if defined VIPS_SEND_COMMAND
  805. SendVipsCommand( playerid, "/GodCar" );
  806. #endif
  807. } else {
  808. #if defined VIPS_SEND_COMMAND
  809. SendVipsCommand( playerid, "/GodCar" );
  810. #endif
  811. P_DATA[ playerid ][ CarGod ] = 0; }
  812. } else {
  813. return SendLevel( playerid, 1 ); }
  814. return 1;
  815. }
  816.  
  817. CMD:ltc1( playerid, params[ ] )
  818. {
  819. new Float:x, Float:y, Float:z, Float:Angle, VehiclulRt;
  820.  
  821. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  822. {
  823. if ( IsPlayerInAnyVehicle( playerid ) )
  824. {
  825. SendClientMessage( playerid, RED, "ERROR: You already have a vehicle" );
  826. } else {
  827. #if defined VIPS_SEND_COMMAND
  828. SendVipsCommand( playerid, "/ltc1" );
  829. #endif
  830. GetPlayerPos( playerid, x, y, z);
  831. GetPlayerFacingAngle( playerid, Angle );
  832. VehiclulRt = CreateVehicle( 560, x, y, z, Angle, 1, -1, -1 );
  833. PutPlayerInVehicle( playerid, VehiclulRt, 0);
  834. AddVehicleComponent( VehiclulRt, 1028 ); AddVehicleComponent( VehiclulRt, 1030 ); AddVehicleComponent( VehiclulRt, 1031 ); AddVehicleComponent( VehiclulRt, 1138 ); AddVehicleComponent(VehiclulRt, 1140); AddVehicleComponent(VehiclulRt, 1170);
  835. AddVehicleComponent( VehiclulRt, 1028 ); AddVehicleComponent( VehiclulRt, 1030 ); AddVehicleComponent( VehiclulRt, 1031 ); AddVehicleComponent( VehiclulRt, 1138 ); AddVehicleComponent(VehiclulRt, 1140); AddVehicleComponent(VehiclulRt, 1170);
  836. AddVehicleComponent( VehiclulRt, 1080 ); AddVehicleComponent( VehiclulRt, 1086 ); AddVehicleComponent( VehiclulRt, 1087 ); AddVehicleComponent( VehiclulRt, 1010 );
  837. PlayerPlaySound( playerid, 1133, 0.0, 0.0, 0.0 );
  838. ChangeVehiclePaintjob( VehiclulRt, 0 );
  839. SetVehicleVirtualWorld( VehiclulRt, GetPlayerVirtualWorld( playerid ) );
  840. LinkVehicleToInterior( VehiclulRt, GetPlayerInterior( playerid ) ); }
  841. } else {
  842. return SendLevel( playerid, 1 ); }
  843. return 1;
  844. }
  845.  
  846. CMD:ltc2( playerid, params[ ] )
  847. {
  848. new Float:x, Float:y, Float:z, Float:Angle, VehiclulRt;
  849.  
  850. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  851. {
  852. if ( IsPlayerInAnyVehicle( playerid ) )
  853. {
  854. SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
  855. } else {
  856. #if defined VIPS_SEND_COMMAND
  857. SendVipsCommand( playerid, "/ltc2" );
  858. #endif
  859. GetPlayerPos( playerid, x, y, z );
  860. GetPlayerFacingAngle( playerid, Angle );
  861. VehiclulRt = CreateVehicle( 560, x, y, z, Angle, 1, -1, -1 );
  862. PutPlayerInVehicle( playerid, VehiclulRt, 0 );
  863. AddVehicleComponent( VehiclulRt, 1028 ); AddVehicleComponent( VehiclulRt, 1030 ); AddVehicleComponent( VehiclulRt, 1031 ); AddVehicleComponent( VehiclulRt, 1138 ); AddVehicleComponent( VehiclulRt, 1140 ); AddVehicleComponent( VehiclulRt, 1170 );
  864. AddVehicleComponent( VehiclulRt, 1028 ); AddVehicleComponent( VehiclulRt, 1030 ); AddVehicleComponent( VehiclulRt, 1031 ); AddVehicleComponent( VehiclulRt, 1138 ); AddVehicleComponent( VehiclulRt, 1140 ); AddVehicleComponent( VehiclulRt, 1170 );
  865. AddVehicleComponent( VehiclulRt, 1080 ); AddVehicleComponent( VehiclulRt, 1086 ); AddVehicleComponent( VehiclulRt, 1087 ); AddVehicleComponent( VehiclulRt, 1010 );
  866. PlayerPlaySound( playerid, 1133, 0.0, 0.0, 0.0 );
  867. ChangeVehiclePaintjob( VehiclulRt, 1 );
  868. SetVehicleVirtualWorld( VehiclulRt, GetPlayerVirtualWorld( playerid ) );
  869. LinkVehicleToInterior( VehiclulRt, GetPlayerInterior( playerid ) ); }
  870. } else {
  871. return SendLevel( playerid, 1 ); }
  872. return 1;
  873. }
  874.  
  875. CMD:ltc3( playerid, params[ ] )
  876. {
  877. new Float:x, Float:y, Float:z, Float:Angle, VehiclulRt;
  878.  
  879. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  880. {
  881. if ( IsPlayerInAnyVehicle( playerid ) )
  882. {
  883. SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
  884. } else {
  885. #if defined VIPS_SEND_COMMAND
  886. SendVipsCommand( playerid, "/ltc3" );
  887. #endif
  888. GetPlayerPos( playerid, x, y, z );
  889. GetPlayerFacingAngle( playerid, Angle );
  890. VehiclulRt = CreateVehicle( 560, x, y, z, Angle, 1, -1, -1 );
  891. PutPlayerInVehicle( playerid, VehiclulRt, 0 );
  892. AddVehicleComponent( VehiclulRt, 1028 ); AddVehicleComponent( VehiclulRt, 1138 ); AddVehicleComponent( VehiclulRt, 1170 );
  893. AddVehicleComponent( VehiclulRt, 1030 ); AddVehicleComponent( VehiclulRt, 1031 ); AddVehicleComponent( VehiclulRt, 1140 );
  894. AddVehicleComponent( VehiclulRt, 1080 ); AddVehicleComponent( VehiclulRt, 1086 ); AddVehicleComponent( VehiclulRt, 1087 ); AddVehicleComponent( VehiclulRt, 1010 );
  895. PlayerPlaySound( playerid, 1133, 0.0, 0.0, 0.0 );
  896. ChangeVehiclePaintjob( VehiclulRt, 2 );
  897. SetVehicleVirtualWorld( VehiclulRt, GetPlayerVirtualWorld( playerid ) );
  898. LinkVehicleToInterior( VehiclulRt, GetPlayerInterior( playerid ) ); }
  899. } else {
  900. return SendLevel( playerid, 1 ); }
  901. return 1;
  902. }
  903.  
  904. CMD:ltc4( playerid, params[ ] )
  905. {
  906. new Float:x, Float:y, Float:z, Float:Angle, carid;
  907.  
  908. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  909. {
  910. if ( IsPlayerInAnyVehicle( playerid ) )
  911. {
  912. SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
  913. } else {
  914. #if defined VIPS_SEND_COMMAND
  915. SendVipsCommand( playerid, "/ltc4" );
  916. #endif
  917. GetPlayerPos( playerid, x, y, z );
  918. GetPlayerFacingAngle( playerid, Angle );
  919. carid = CreateVehicle( 559, x, y, z, Angle, 1, -1, -1 );
  920. PutPlayerInVehicle( playerid, carid, 0 );
  921. AddVehicleComponent( carid, 1065 ); AddVehicleComponent( carid, 1067 ); AddVehicleComponent( carid, 1073 );
  922. AddVehicleComponent( carid, 1162 ); AddVehicleComponent( carid, 1010 ); ChangeVehiclePaintjob( carid, 1 );
  923. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  924. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  925. } else {
  926. return SendLevel( playerid, 1 ); }
  927. return 1;
  928. }
  929.  
  930. CMD:ltc5( playerid, params[ ] )
  931. {
  932. new Float:x, Float:y, Float:z, Float:Angle, carid;
  933.  
  934. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  935. {
  936. if ( IsPlayerInAnyVehicle( playerid ) )
  937. {
  938. SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
  939. } else {
  940. #if defined VIPS_SEND_COMMAND
  941. SendVipsCommand( playerid, "/ltc5" );
  942. #endif
  943. GetPlayerPos( playerid, x, y, z );
  944. GetPlayerFacingAngle( playerid, Angle );
  945. carid = CreateVehicle( 565, x, y, z, Angle, 1, -1, -1 );
  946. PutPlayerInVehicle( playerid, carid, 0 );
  947. AddVehicleComponent( carid, 1046 ); AddVehicleComponent( carid, 1049 ); AddVehicleComponent( carid, 1073 );
  948. AddVehicleComponent( carid, 1053 ); AddVehicleComponent( carid, 1010 ); ChangeVehiclePaintjob( carid, 1 );
  949. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  950. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  951. } else {
  952. return SendLevel( playerid, 1 ); }
  953. return 1;
  954. }
  955.  
  956. CMD:ltc6( playerid, params[ ] )
  957. {
  958. new Float:x, Float:y, Float:z, Float:Angle, carid;
  959.  
  960. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  961. {
  962. if ( IsPlayerInAnyVehicle( playerid ) )
  963. {
  964. SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
  965. } else {
  966. #if defined VIPS_SEND_COMMAND
  967. SendVipsCommand( playerid, "/ltc6" );
  968. #endif
  969. GetPlayerPos( playerid, x, y, z );
  970. GetPlayerFacingAngle( playerid, Angle );
  971. carid = CreateVehicle( 558, x, y, z, Angle, 1, -1, -1 );
  972. PutPlayerInVehicle( playerid, carid, 0 );
  973. AddVehicleComponent( carid, 1088 ); AddVehicleComponent( carid, 1092 ); AddVehicleComponent( carid, 1073 );
  974. AddVehicleComponent( carid, 1139 ); AddVehicleComponent( carid, 1010 ); ChangeVehiclePaintjob( carid, 1 );
  975. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  976. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  977. } else {
  978. return SendLevel( playerid, 1 ); }
  979. return 1;
  980. }
  981.  
  982. CMD:ltc7( playerid, params[ ] )
  983. {
  984. new Float:x, Float:y, Float:z, Float:Angle, carid;
  985.  
  986. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  987. {
  988. if ( IsPlayerInAnyVehicle( playerid ) )
  989. {
  990. SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
  991. } else {
  992. #if defined VIPS_SEND_COMMAND
  993. SendVipsCommand( playerid, "/ltc7" );
  994. #endif
  995. GetPlayerPos( playerid, x, y, z );
  996. GetPlayerFacingAngle( playerid, Angle );
  997. carid = CreateVehicle( 561, x, y, z, Angle, 1, -1, -1 );
  998. PutPlayerInVehicle( playerid, carid, 0 );
  999. AddVehicleComponent( carid, 1055 ); AddVehicleComponent( carid, 1058 ); AddVehicleComponent( carid, 1073 );
  1000. AddVehicleComponent( carid, 1064 ); AddVehicleComponent( carid, 1010 ); ChangeVehiclePaintjob( carid, 1 );
  1001. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  1002. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  1003. } else {
  1004. return SendLevel( playerid, 1 ); }
  1005. return 1;
  1006. }
  1007.  
  1008. CMD:ltc8( playerid, params[ ] )
  1009. {
  1010. new Float:x, Float:y, Float:z, Float:Angle, carid;
  1011.  
  1012. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  1013. {
  1014. if ( IsPlayerInAnyVehicle( playerid ) )
  1015. {
  1016. SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
  1017. } else {
  1018. #if defined VIPS_SEND_COMMAND
  1019. SendVipsCommand( playerid, "/ltc8" );
  1020. #endif
  1021. GetPlayerPos( playerid, x, y, z );
  1022. GetPlayerFacingAngle( playerid, Angle );
  1023. carid = CreateVehicle( 562, x, y, z, Angle, 1, -1, -1 );
  1024. PutPlayerInVehicle( playerid, carid, 0 );
  1025. AddVehicleComponent( carid, 1034 ); AddVehicleComponent( carid, 1038 ); AddVehicleComponent( carid, 1073 );
  1026. AddVehicleComponent( carid, 1147 ); AddVehicleComponent( carid, 1010 ); ChangeVehiclePaintjob( carid, 1 );
  1027. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  1028. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  1029. } else {
  1030. return SendLevel( playerid, 1 ); }
  1031. return 1;
  1032. }
  1033.  
  1034. CMD:ltc9( playerid, params[ ] )
  1035. {
  1036. new Float:x, Float:y, Float:z, Float:Angle, carid;
  1037.  
  1038. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  1039. {
  1040. if ( IsPlayerInAnyVehicle( playerid ) )
  1041. {
  1042. SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
  1043. } else {
  1044. #if defined VIPS_SEND_COMMAND
  1045. SendVipsCommand( playerid, "/ltc9" );
  1046. #endif
  1047. GetPlayerPos( playerid, x, y, z );
  1048. GetPlayerFacingAngle( playerid, Angle );
  1049. carid = CreateVehicle( 567, x, y, z, Angle, 1, -1, -1 );
  1050. PutPlayerInVehicle( playerid, carid, 0 );
  1051. AddVehicleComponent( carid, 1102 ); AddVehicleComponent( carid, 1129 ); AddVehicleComponent( carid, 1188 ); AddVehicleComponent( carid, 1087 ); AddVehicleComponent( carid, 1086 );
  1052. AddVehicleComponent( carid, 1133 ); AddVehicleComponent( carid, 1186 ); AddVehicleComponent( carid, 1010 ); AddVehicleComponent( carid, 1085 ); ChangeVehiclePaintjob( carid, 1 );
  1053. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  1054. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  1055. } else {
  1056. return SendLevel( playerid, 1 ); }
  1057. return 1;
  1058. }
  1059.  
  1060. CMD:ltc10( playerid, params[ ] )
  1061. {
  1062. new Float:x, Float:y, Float:z, Float:Angle, carid;
  1063.  
  1064. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  1065. {
  1066. if ( IsPlayerInAnyVehicle( playerid ) )
  1067. {
  1068. SendClientMessage( playerid, RED,"ERROR: You already have a vehicle!" );
  1069. } else {
  1070. #if defined VIPS_SEND_COMMAND
  1071. SendVipsCommand( playerid, "/ltc10" );
  1072. #endif
  1073. GetPlayerPos( playerid, x, y, z );
  1074. GetPlayerFacingAngle( playerid, Angle );
  1075. carid = CreateVehicle( 558, x, y, z, Angle, 1, -1, -1 );
  1076. PutPlayerInVehicle( playerid, carid, 0 );
  1077. AddVehicleComponent( carid, 1092 ); AddVehicleComponent( carid, 1166 ); AddVehicleComponent( carid, 1165 ); AddVehicleComponent( carid, 1090 );
  1078. AddVehicleComponent( carid, 1094 ); AddVehicleComponent( carid, 1010 ); AddVehicleComponent( carid, 1087 ); AddVehicleComponent( carid, 1163 );
  1079. AddVehicleComponent( carid, 1091 ); ChangeVehiclePaintjob( carid, 2 );
  1080. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  1081. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  1082. } else {
  1083. return SendLevel( playerid, 1 ); }
  1084. return 1;
  1085. }
  1086.  
  1087. CMD:ltc11( playerid, params[ ] )
  1088. {
  1089. new Float:x, Float:y, Float:z, Float:Angle, carid;
  1090.  
  1091. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  1092. {
  1093. if ( IsPlayerInAnyVehicle( playerid ) )
  1094. {
  1095. SendClientMessage( playerid, RED,"ERROR: You already have a vehicle!" );
  1096. } else {
  1097. #if defined VIPS_SEND_COMMAND
  1098. SendVipsCommand( playerid, "/ltc11" );
  1099. #endif
  1100. GetPlayerPos( playerid, x, y, z );
  1101. GetPlayerFacingAngle( playerid, Angle );
  1102. carid = CreateVehicle( 557, x, y, z, Angle, 1, 1, -1 );
  1103. PutPlayerInVehicle( playerid, carid, 0 );
  1104. AddVehicleComponent( carid, 1010 ); AddVehicleComponent( carid, 1081 );
  1105. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  1106. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  1107. } else {
  1108. return SendLevel( playerid, 1 ); }
  1109. return 1;
  1110. }
  1111.  
  1112. CMD:ltc12( playerid, params[ ] )
  1113. {
  1114. new Float:x, Float:y, Float:z, Float:Angle, carid;
  1115.  
  1116. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  1117. {
  1118. if ( IsPlayerInAnyVehicle( playerid ) )
  1119. {
  1120. SendClientMessage( playerid, RED,"ERROR: You already have a vehicle!" );
  1121. } else {
  1122. #if defined VIPS_SEND_COMMAND
  1123. SendVipsCommand( playerid, "/ltc12" );
  1124. #endif
  1125. GetPlayerPos( playerid, x, y, z );
  1126. GetPlayerFacingAngle( playerid, Angle );
  1127. carid = CreateVehicle( 535, x, y, z, Angle, 1, -1, -1 );
  1128. PutPlayerInVehicle( playerid, carid, 0 );
  1129. ChangeVehiclePaintjob( carid, 1 ); AddVehicleComponent( carid, 1109 ); AddVehicleComponent( carid, 1115 ); AddVehicleComponent( carid, 1117 ); AddVehicleComponent( carid, 1073 ); AddVehicleComponent( carid, 1010 );
  1130. AddVehicleComponent( carid, 1087 ); AddVehicleComponent( carid, 1114 ); AddVehicleComponent( carid, 1081 ); AddVehicleComponent( carid, 1119 ); AddVehicleComponent( carid, 1121 );
  1131. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  1132. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  1133. } else {
  1134. return SendLevel( playerid, 1 ); }
  1135. return 1;
  1136. }
  1137.  
  1138. CMD:ltc13( playerid, params[ ] )
  1139. {
  1140. new Float:x, Float:y, Float:z, Float:Angle, carid;
  1141.  
  1142. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  1143. {
  1144. if ( IsPlayerInAnyVehicle( playerid ) )
  1145. {
  1146. SendClientMessage( playerid, RED,"ERROR: You already have a vehicle!" );
  1147. } else {
  1148. #if defined VIPS_SEND_COMMAND
  1149. SendVipsCommand( playerid, "/ltc13" );
  1150. #endif
  1151. GetPlayerPos( playerid, x, y, z );
  1152. GetPlayerFacingAngle( playerid, Angle );
  1153. carid = CreateVehicle( 562, x, y, z, Angle, 1, -1, -1 );
  1154. PutPlayerInVehicle( playerid, carid, 0 );
  1155. AddVehicleComponent( carid, 1034 ); AddVehicleComponent( carid, 1038 ); AddVehicleComponent( carid, 1147 );
  1156. AddVehicleComponent( carid, 1010 ); AddVehicleComponent( carid, 1073 ); ChangeVehiclePaintjob( carid, 0 );
  1157. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  1158. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  1159. } else {
  1160. return SendLevel( playerid, 1 ); }
  1161. return 1;
  1162. }
  1163.  
  1164. CMD:vcar( playerid, params[ ] )
  1165. {
  1166. new Float:x, Float:y, Float:z, Float:Angle, carid;
  1167.  
  1168. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  1169. {
  1170. if ( IsPlayerInAnyVehicle( playerid ) )
  1171. {
  1172. SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
  1173. } else {
  1174. #if defined VIPS_SEND_COMMAND
  1175. SendVipsCommand( playerid, "/vcar" );
  1176. #endif
  1177. GetPlayerPos( playerid, x, y, z );
  1178. GetPlayerFacingAngle( playerid, Angle );
  1179. carid = CreateVehicle( 402, x, y, z, Angle, 0, 0, 0 ); // Car: Buffalo
  1180. PutPlayerInVehicle( playerid, carid, 0 );
  1181. SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
  1182. LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
  1183. //Source: http://wiki.sa-mp.com/wiki/Vehicles:All
  1184. } else {
  1185. return SendLevel( playerid, 1 ); }
  1186. return 1;
  1187. }
  1188.  
  1189. CMD:vannounce( playerid, params[ ] )
  1190. {
  1191. if ( P_DATA[ playerid ][ Vip ] == 3 )
  1192. {
  1193. if ( sscanf( params, "s[128]", params[ 0 ] ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vannounce [playerid]" );
  1194.  
  1195. GameTextForAll( params[ 0 ], 6000, 1 );
  1196. #if defined VIPS_SEND_COMMAND
  1197. SendVipsCommand( playerid, "/vannounce" );
  1198. #endif
  1199. } else {
  1200. return SendLevel( playerid, 3 ); }
  1201. return 1;
  1202. }
  1203.  
  1204. CMD:vspa( playerid, params[ ] )// V.I.Ps Special Actions( Holds + Jetpack! )
  1205. {
  1206. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  1207. {
  1208. ShowPlayerDialog( playerid, VSPA, DIALOG_STYLE_LIST, "V.I.P Special Actions!", "Hold: Dick!\nHold: Iron!\nHold: Alien!\nHold: Incred!\nSpawn: JetPack!", "Select", "Cancel" );
  1209. #if defined VIPS_SEND_COMMAND
  1210. SendVipsCommand( playerid, "/vspa" );
  1211. #endif
  1212. } else {
  1213. return SendLevel( playerid, 1 ); }
  1214. return 1;
  1215. }
  1216.  
  1217. CMD:stophold( playerid, params[ ] )
  1218. {
  1219. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  1220. {
  1221. if( !IsPlayerAttachedObjectSlotUsed( playerid, 0 ) &&
  1222. !IsPlayerAttachedObjectSlotUsed( playerid, 1 ) &&
  1223. !IsPlayerAttachedObjectSlotUsed( playerid, 2 ) &&
  1224. !IsPlayerAttachedObjectSlotUsed( playerid, 3 ) &&
  1225. !IsPlayerAttachedObjectSlotUsed( playerid, 4 ) )
  1226. return SendClientMessage( playerid, RED, "You are not holding any object" );
  1227.  
  1228. #if defined VIPS_SEND_COMMAND
  1229. SendVipsCommand( playerid, "/stophold" );
  1230. #endif
  1231.  
  1232. for ( new i = 0; i < 5; i ++ )
  1233. {
  1234. if ( IsPlayerAttachedObjectSlotUsed( playerid, i ) )
  1235. {
  1236. RemovePlayerAttachedObject( playerid, i );
  1237. SendClientMessage( i, RED, "You have stopped holding object!" );
  1238. }
  1239. }
  1240. } else {
  1241. return SendLevel( playerid, 1 ); }
  1242. return 1;
  1243. }
  1244.  
  1245. CMD:viphouse( playerid, params[ ] )
  1246. {
  1247. if ( P_DATA[ playerid ][ Vip ] >= 1 )
  1248. {
  1249. SetPlayerPos( playerid, -2637.69,1404.24,906.46 );
  1250. SetPlayerInterior( playerid, 3 );
  1251. RemovePlayerFromVehicle( playerid );
  1252. #if defined VIPS_SEND_COMMAND
  1253. SendVipsCommand( playerid, "/VipHouse" );
  1254. #endif
  1255. SendClientMessage( playerid, COLOR_VIP, "You have teleported to V.I.P House( Club )!" );
  1256. } else {
  1257. return SendLevel( playerid, 1 ); }
  1258. return 1;
  1259. }
  1260. //================================================================================================================================//
  1261. //====================================================== [ public's ] ============================================================//
  1262. Public: SendLevel( playerid, level )
  1263. {
  1264. if ( level == 1 ) return SendClientMessage( playerid, RED, "ERROR: You need to be V.I.P Level 1 or bigest to use this command!" );
  1265. if ( level == 2 ) return SendClientMessage( playerid, RED, "ERROR: You need to be V.I.P Level 2 or bigest to use this command!" );
  1266. if ( level == 3 ) return SendClientMessage( playerid, RED, "ERROR: You need to be V.I.P Level 3 to use this command!" );
  1267. return 1;
  1268. }
  1269.  
  1270. Public: SendVipMessage( color, const string[ ] )
  1271. {
  1272. for ( new i = 0; i < MAX_PLAYERS; i++ )
  1273. {
  1274. if ( IsPlayerConnected( i ) )
  1275. {
  1276. if ( P_DATA[ i ][ Vip ] >= 1 )
  1277. {
  1278. SendClientMessage( i, color, string );
  1279. }
  1280. }
  1281. }
  1282. return 1;
  1283. }
  1284.  
  1285. Public: ReturnPosition( playerid )
  1286. {
  1287. SetPlayerPos( playerid, Position[ playerid ][ 0 ], Position[ playerid ][ 1 ], Position[ playerid ][ 2 ] );
  1288. SetPlayerFacingAngle( playerid, Position[ playerid ][ 3 ] );
  1289. }
  1290.  
  1291. Public: GodUpdate( )
  1292. {
  1293. for ( new i = 0; i < MAX_PLAYERS; i++ )
  1294. {
  1295. if ( IsPlayerConnected( i ) && P_DATA[ i ][ God ] == 1 )
  1296. {
  1297. SetPlayerHealth( i, 100000 );
  1298. }
  1299. if ( IsPlayerConnected( i ) && P_DATA[ i ][ CarGod ] == 1 && IsPlayerInAnyVehicle( i ) )
  1300. {
  1301. SetVehicleHealth( GetPlayerVehicleID( i ), 10000 );
  1302. }
  1303. }
  1304. }
  1305. //======================================================== [ Stocks ] ============================================================//
  1306. stock PlayerName2( i ){
  1307. new n[ 24 ];
  1308. GetPlayerName( i, n, 24 );
  1309. return n;
  1310. }
  1311. stock ReturnPlayerName( id )
  1312. {
  1313. new tehname[ MAX_PLAYER_NAME ];
  1314. GetPlayerName( id, tehname, sizeof( tehname ) );
  1315. return tehname;
  1316. }
  1317. stock SpectatePlayer( playerid, PID )
  1318. {
  1319. new string[ 100 ], Float:health, Float:armour;
  1320.  
  1321. for(new i = 0; i < MAX_PLAYERS; i++ )
  1322. {
  1323. if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid )
  1324. {
  1325. AdvanceSpectate( i );
  1326. }
  1327. }
  1328. SetPlayerInterior( playerid, GetPlayerInterior( PID ) );
  1329. TogglePlayerSpectating( playerid, 1 );
  1330. if ( IsPlayerInAnyVehicle( PID ) )
  1331. {
  1332. PlayerSpectateVehicle( playerid, GetPlayerVehicleID( PID ) );
  1333. P_DATA[ playerid ][ SpecID ] = PID;
  1334. P_DATA[ playerid ][ SpecType ] = ADMIN_SPEC_TYPE_VEHICLE;
  1335. } else {
  1336. PlayerSpectatePlayer( playerid, PID );
  1337. P_DATA[ playerid ][ SpecID ] = PID;
  1338. P_DATA[ playerid ][ SpecType ] = ADMIN_SPEC_TYPE_PLAYER;
  1339. }
  1340. GetPlayerName( PID, string, sizeof( string ) );
  1341. GetPlayerHealth( PID, health );
  1342. GetPlayerArmour( PID, armour );
  1343. format( string, sizeof( string ),"~n~~n~~n~~n~~n~~n~~n~n~~w~%s - id:%d~n~< sprint - jump >~n~~r~Health:%0.1f ~b~Armour:%0.1f~n~~g~$%d~n~~g~%d", string, PID, health, armour, GetPlayerMoney( PID ), GetPlayerScore( PID ) );
  1344. GameTextForPlayer( playerid, string, 25000, 3 );
  1345. return 1;
  1346. }
  1347. stock StopSpectate( playerid )
  1348. {
  1349. TogglePlayerSpectating( playerid, 0 );
  1350. P_DATA[ playerid ][ SpecID ] = INVALID_PLAYER_ID;
  1351. P_DATA[ playerid ][ SpecType ] = ADMIN_SPEC_TYPE_NONE;
  1352. GameTextForPlayer( playerid,"~n~~n~~n~~w~Spectate mode ended", 1000, 3 );
  1353. return 1;
  1354. }
  1355. stock AdvanceSpectate( playerid )
  1356. {
  1357. if ( ConnectedPlayers( ) == 2 )
  1358. {
  1359. StopSpectate( playerid );
  1360. return 1;
  1361. }
  1362. if ( GetPlayerState( playerid ) == PLAYER_STATE_SPECTATING && P_DATA[ playerid ][ SpecID ] != INVALID_PLAYER_ID )
  1363. {
  1364. for ( new i = P_DATA[ playerid ][ SpecID] +1; i <= MAX_PLAYERS; i++ )
  1365. {
  1366. if ( i == MAX_PLAYERS ) i = 0;
  1367. if ( IsPlayerConnected( i ) && i != playerid )
  1368. {
  1369. if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] != INVALID_PLAYER_ID || ( GetPlayerState( i ) != 1 && GetPlayerState( i ) != 2 && GetPlayerState( i ) != 3 ) )
  1370. {
  1371. continue;
  1372. } else {
  1373. SpectatePlayer( playerid, i );
  1374. break;
  1375. }
  1376. }
  1377. }
  1378. }
  1379. return 1;
  1380. }
  1381. stock ConnectedPlayers( )
  1382. {
  1383. new Connected;
  1384. for ( new i = 0; i < MAX_PLAYERS; i++ ) if ( IsPlayerConnected( i ) ) Connected++;
  1385. return Connected;
  1386. }
  1387. stock Send2Clients( playerid, Client1[ ], Client2[ ] )
  1388. {
  1389. new Str[ 256 ];
  1390. format( Str, sizeof( Str ), "Usage: {FFFF00} %s", Client1 );
  1391. SendClientMessage( playerid, RED, Str );
  1392. format( Str, sizeof( Str ), "Colours: {00FF00} %s", Client2 );
  1393. SendClientMessage( playerid, RED, Str );
  1394. return 1;
  1395. }
  1396. #if defined VIPS_SEND_COMMAND
  1397. stock SendVipsCommand( playerid, cmdtext[ ] )
  1398. {
  1399. new str[ 128 ];
  1400.  
  1401. format( str, sizeof( str ),"[V.I.P] {00FF00}%s(%d) {FF5500}has used command {00FF00}%s", PlayerName2( playerid ), playerid, cmdtext );
  1402. return SendVipMessage( COLOR_VIP, str );
  1403. }
  1404. #endif
  1405. stock ReverseSpectate( playerid )
  1406. {
  1407. if ( ConnectedPlayers( ) == 2 )
  1408. {
  1409. StopSpectate( playerid );
  1410. return 1;
  1411. }
  1412. if ( GetPlayerState( playerid ) == PLAYER_STATE_SPECTATING && P_DATA[ playerid ][ SpecID ] != INVALID_PLAYER_ID )
  1413. {
  1414. for ( new i = P_DATA[ playerid ][ SpecID ]-1; i >= 0; i-- )
  1415. {
  1416. if ( i == 0 ) i = MAX_PLAYERS;
  1417. if ( IsPlayerConnected( i ) && i != playerid )
  1418. {
  1419. if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] != INVALID_PLAYER_ID || ( GetPlayerState( i ) != 1 && GetPlayerState( i ) != 2 && GetPlayerState( i ) != 3 ) )
  1420. {
  1421. continue;
  1422. } else {
  1423. SpectatePlayer( playerid, i );
  1424. break;
  1425. }
  1426. }
  1427. }
  1428. }
  1429. return 1;
  1430. }
  1431. stock SendPlayerMaxAmmo( playerid )
  1432. {
  1433. new slot, weap, ammo;
  1434.  
  1435. for ( slot = 0; slot < 14; slot++ )
  1436. {
  1437. GetPlayerWeaponData( playerid, slot, weap, ammo );
  1438. if ( IsValidWeapon( weap ) )
  1439. {
  1440. GivePlayerWeapon( playerid, weap, 99999 );
  1441. }
  1442. }
  1443. return 1;
  1444. }
  1445. stock IsValidWeapon( weaponid )
  1446. {
  1447. if ( weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47 ) return 1;
  1448. return 0;
  1449. }
  1450. //============================================================ [ EOF ] ===========================================================//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement