Advertisement
Guest User

V.I.P System - Updated

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