Guest User

error

a guest
Jul 6th, 2013
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 241.78 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3. // time
  4. #include <a_inc>
  5. include>a_tiempos;
  6. //include>a; //Incluir toda la librería
  7. #include <a_inc2>
  8. //time
  9. #include <zcmd>
  10. #include <streamer>
  11. #include <youtube>
  12. #include <foreach>
  13. #include <sscanf>
  14. #include "../include/gl_common.inc"
  15. #include    <YSI\y_ini>
  16.  
  17.  
  18. static
  19.     const
  20.         DB_HOST[]       = "localhost",  // - Host | IP donde se aloja la base de datos.
  21.         DB_USER[]       = "root"     ,  // - Usuario mediante el cual se accederá.
  22.         DB_PASSWORD[]   = ""         ,  // - Password para el ingreso con el usuario.
  23.         DB_DB[]         = "wDealer"  ;  // - Nombre de la base de datos.
  24.        
  25.         #define function::%0(%1) \
  26.                            forward%0(%1); \
  27.                                               public%0(%1)
  28.  
  29. #define MAX_DEALERS            10       // - Cantidad de concesionarios.
  30. #define MAX_DEALER_VEHICLES    13       // - Cantidad máxima de autos que pueden estar en venta.
  31. #define MAX_VEH_INDEALER     ( 10 )     // - Cantidad de autos que puede haber en cada concesionario.
  32. #define MAX_VEH_PER_PLAYER   (  2 )     // - Cantidad máxima de autos por jugador.
  33.  
  34. #define VEH_ENGINE           ( 0 )
  35. #define VEH_LIGHTS           ( 1 )
  36. #define VEH_ALARM            ( 2 )
  37. #define VEH_LOCK             ( 3 )
  38. #define VEH_BONNET           ( 4 )
  39. #define VEH_BOOT             ( 5 )
  40. #define VEH_OBJECTIVE        ( 6 )
  41. #undef MAX_PLAYERS
  42. #define MAX_PLAYERS 32  // Here you need to set the maximum number of players able to play on your server at any given time, I'll put 32 because that's the max players on my server.
  43. #define Grey 0xC0C0C0FF // Defining the color 'Grey'
  44. #define DIALOG_DUEL 24245
  45. new bool:InvitedDuel[MAX_PLAYERS];
  46. new IdDuel[MAX_PLAYERS];
  47. new bool:UsingArena;
  48. new Counting = 5;
  49. new CountDueling[5][5] ={"~r~1","~b~2","~p~3","~y~4","~g~5"};
  50. new TCrear:csancion[MAX_PLAYERS];
  51.  
  52. //Colorlist
  53. #define COL_RED         "{F81414}"
  54. #define COL_LIGHTBLUE   "{00C0FF}"
  55. #define COL_LRED        "{FFA1A1}"
  56. #define COL_GREEN       "{6EF83C}"
  57. #define COL_GREY        "{C3C3C3}"
  58. #define COLOR_GREY 0x808080FF
  59. #define COLOR_WHITE 0xFFFFFFFF
  60. #define COLOR_YELLOW 0xFFFF00FF
  61. #define COLOR_GREEN 0x088A08FF
  62. #define COLOR_GREEN2 0x00FF00FF
  63. #define Black 0x00000000
  64. #define COLOR_RED 0xAA3333AA
  65. #define TuServer "TuServer"
  66. #pragma tabsize 0
  67. #define SMusica 10004
  68. #define DMusica 10005
  69. new TempStr[255];
  70. new InJail[MAX_PLAYERS];
  71.  
  72. new FPS[MAX_PLAYERS];
  73. new FPSS[MAX_PLAYERS];
  74. new Text:ArribaVida[MAX_PLAYERS];
  75. #define DIALOG_MUSICPLAYER  1
  76. //Dialogs
  77. #define DIALOG_REG      1995
  78. #define DIALOG_REG_REQ  1996
  79. #define DIALOG_LOGIN    1997
  80. #define DIALOG_LOGIN2   1998
  81. #define DIALOG_LOG_DONE 1999
  82. #define DIALOG_LOG      2000
  83. #define DIALOG_STATS    2001
  84. #define INFO_BOX        2002
  85. new Zona[MAX_PLAYERS];
  86. //level admin
  87. #define Level0 "Usuario"
  88. #define Level1 "Moderador"
  89. #define Level2 "Administrador"
  90. #define Level3 "Dueño"
  91.  
  92. native sscanf(const data[], const format[], {Float,_}:...);
  93. //native unformat(const data[], const format[], {Float,_}:...) = sscanf;
  94. enum // - Dialogs.
  95. {
  96.     showAnounceVehicle,                   // 0 - Dialogo para mostrar cartel de venta del vehículo.
  97.     showPlayerVehicles,                   // 1 - Dialogo para visualizar los vehículos del usuario.
  98.     showMenuCreateDealer,                 // 2 - Dialogo para visualizar el menú de creación de concesionarios.
  99.     createDealerName,                     // 3 - Dialogo para cambiar el nombre del concesionario (creación).
  100.     showdealerInfoBox,                    // 4 - Dialogo para la compra de vehículos.
  101.     showMenuDealerEdit,                   // 5 - Dialogo para la edición de los concesionarios.
  102.     editDealerName                         // 6 - Dialogo para la edición del nombre del concesionario.
  103. };
  104.  
  105. enum // - Threads.
  106. {
  107.     empty@queryReceived,                // 0 - Para recibir las query's vacías ( sin parámetros ).
  108.     dealerDataAssign,                   // 1 - Para cargar los datos de los vehículos del concesionario.
  109.     dealerAssign,                       // 2 - Para asignar los datos de los concesionarios.
  110.     load@playerVehicles,                // 3 - Para leer los vehículos del usuario.
  111.     sql@insertID,                       // 4 - Para asignar la ID en la tabla al vehículo creado.
  112.     sql_d@insertID,                     // 5 - Para asignar la ID en la tabla al vehículo de concesionario creado.
  113.     sql@dealerInsertID,
  114. };
  115.  
  116. //============================================================================//
  117.  
  118. enum dealerLoc
  119. {
  120.     id@sqlid,                           // - ID del concesionario en la tabla.
  121.     id@num,                             // - ID del concesionario en el servidor.
  122.     sz@nameDealer[0x1E],                // - Nombre del concesionario.
  123.     d@vehicles,                         // - Cantidad de vehículos del concesionario.
  124.     Float:f@maxX,                       // - Coordenada X máxima.
  125.     Float:f@minX,                       // - Coordenada X mínima.
  126.     Float:f@maxY,                       // - Coordenada Y máxima.
  127.     Float:f@minY                        // - Coordenada Y mínima.
  128. };
  129.  
  130. //============================================================================//
  131.  
  132. enum dealerEnum
  133. {
  134.     inumdID,                            // - ID del vehículo en la tabla.
  135.     inumID,                             // - ID del vehículo en el servidor.
  136.     sCarName[0x1E],                     // - Nombre del vehículo.
  137.     inumDealer,                         // - Concesionario.
  138.     iModel,                             // - Modelo del vehículo.
  139.     iPrice,                             // - Costo del auto.
  140.     Float:fdPos_X,                      // - Coordenada x       ( posición del auto en el concesionario ).
  141.     Float:fdPos_Y,                      // - Coordenada y       (                   ||                  ).
  142.     Float:fdPos_Z,                      // - Coordenada z       (                   ||                  ).
  143.     Float:fdPos_R                       // - Angúlo de rotación (                     ||                  ).
  144. };
  145.  
  146. //============================================================================//
  147.  
  148. enum trunkVeh // Maletero.
  149. {
  150.     tArmas[0b101],                       // - Slots para armas.
  151.     tMuniciones[0b101],                  // - Slots para municiones.
  152.     Float:tArmadura                      // - Slots para chaleco.
  153. };
  154.  
  155. enum modsVeh
  156. {
  157.     mColores[0b10],
  158.     mSpoiler,
  159.     mHood,
  160.     mRoof,
  161.     mSideskirts[0b10],
  162.     mNitro,
  163.     mLamps,
  164.     mExhaust,
  165.     mWheels,
  166.     mStereo,
  167.     mHidraulics,
  168.     mPaintjob,
  169.     mBullbar,
  170.     mRealBullbars,
  171.     mFrontSign,
  172.     mFrontBullbars,
  173.     mBullbars,
  174.     mRearBumper,
  175.     mVents[0b10],
  176.     mFrontBumper
  177. };
  178.  
  179. enum paramsV // Parámetros funcionales.
  180. {
  181.     pEngine,
  182.     pLights,
  183.     pAlarm,
  184.     ptAlarm,
  185.     pLock,
  186.     pBonnet,
  187.     pBoot,
  188.     pObjective
  189. };
  190.  
  191. enum damageV // Daño del vehículo.
  192. {
  193.     Float:dHealth,
  194.     dPanels,
  195.     dDoors,
  196.     dLights,
  197.     dTires
  198. };
  199.  
  200. enum carEnum
  201. {
  202.     inumcID,                            // - ID del vehículo en la tabla.
  203.     icnumID,                            // - ID del vehículo en el servidor.
  204.     sCarName[0x19],                     // - Nombre del vehículo.
  205.     sCarOwner[0x19],                    // - Nombre del dueño del vehículo.
  206.     idOwner,                            // - ID del dueño del vehículo.
  207.     iModel,                             // - Modelo del vehículo.
  208.     ipRepair,                           // - Costo de la reparación ( seguro ).
  209.     bool:status,                        // - false = Vehículo destruido.
  210.     Float:fPos_X,                       // - Coordenada x       ( posición del auto en el concesionario ).
  211.     Float:fPos_Y,                       // - Coordenada y       (                   ||                  ).
  212.     Float:fPos_Z,                       // - Coordenada z       (                   ||                  ).
  213.     Float:fPos_R,                       // - Angúlo de rotación (                     ||                  ).
  214.     paramsVeh[paramsV],                 // - Parámetros funcionales del vehículo.
  215.     damageVeh[damageV],                 // - Estatus de daño.
  216.     mods[modsVeh],                      // - Modificaciones del vehículo.
  217.     Maletero[trunkVeh]                  // - Maletero del vehículo.
  218. };
  219. new God[ MAX_PLAYERS ], CGod[ MAX_PLAYERS ];
  220. new Float:JailCellSpawns[][3] =
  221. {
  222.     {197.3941,162.4637,1003.0300},
  223.     {194.3641,175.6378,1003.0234},
  224.     {197.8117,174.2043,1003.0234}
  225. };
  226.  
  227. new
  228.     cHandle                                 ,                        // - Para realizar la conexión.
  229.     paramsvDealer   [   MAX_VEHICLES ][ dealerEnum  ],               // - Almacenará los datos de los autos del/los concesionarios.
  230.     playerVehicle   [   MAX_PLAYERS  ][MAX_VEH_PER_PLAYER][carEnum], // - Almacenará los datos de los autos de los usuarios.
  231.     dealerLocations [   MAX_DEALERS+1  ][ dealerLoc ],               // - Almacenará los datos de los concesionarios.
  232.     d@optionsEdit   [   MAX_PLAYERS  ][   0b101   ],                 // - Almacenará los valores para los menús de edición.
  233.     i@timerUpDealer,                                                 // - Timer que guarda los vehículos del concesionario cada X tiempo.
  234.     obs@Venta       [   MAX_PLAYERS  ][   0b100   ],                 // - Almacenará la ID del vehículo en venta que vamos a comprar.
  235.  
  236.     //Piezas de modificación.
  237.     Spoiler[20] = {
  238.         1000, 1001, 1002, 1003,
  239.         1014, 1015, 1016, 1023,
  240.         1049, 1050, 1058, 1060,
  241.         1138, 1139, 1146, 1147,
  242.         1158, 1162, 1163, 1164,
  243.     },
  244.     Hood[4] = {
  245.         1004, 1005, 1011, 1012
  246.     },
  247.     Roof[17] = {
  248.         1006, 1032, 1033, 1035,
  249.         1038, 1053, 1054, 1055,
  250.         1061, 1067, 1068, 1088,
  251.         1091, 1103, 1128, 1130,
  252.         1131
  253.     },
  254.     RightSideskirt[22] = {
  255.         1007, 1026, 1031, 1036,
  256.         1041, 1042, 1047, 1048,
  257.         1056, 1057, 1069, 1070,
  258.         1090, 1093, 1095, 1106,
  259.         1108, 1118, 1119, 1122,
  260.         1133, 1134
  261.     },
  262.     LeftSideskirt[20] = {
  263.         1017, 1027, 1030, 1039,
  264.         1040, 1051, 1052, 1062,
  265.         1063, 1071, 1072, 1094,
  266.         1099, 1101, 1102, 1107,
  267.         1120, 1121, 1124, 1137
  268.     },
  269.     Nitro[3] = {
  270.         1008,  1009,  1010
  271.     },
  272.     Lamps[2] = {
  273.         1013, 1024
  274.     },
  275.     Exhaust[29] = {
  276.         1018, 1019, 1020, 1021,
  277.         1022, 1028, 1029, 1034,
  278.         1037, 1043, 1044, 1045,
  279.         1046, 1059, 1064, 1065,
  280.         1066, 1089, 1092, 1104,
  281.         1105, 1113, 1114, 1126,
  282.         1127, 1129, 1132, 1135,
  283.         1136
  284.     },
  285.     Wheels[17] = {
  286.         1025, 1073, 1074, 1075,
  287.         1076, 1077, 1078, 1079,
  288.         1080, 1081, 1082, 1083,
  289.         1084, 1085, 1096, 1097,
  290.         1098
  291.     },
  292.     Stereo = 1086,
  293.     Hidraulics = 1087,
  294.     Bullbar = 1100,
  295.     RealBullbars[2] = {
  296.         1109,  1110
  297.     },
  298.     FrontSign[2] = {
  299.         1111, 1112
  300.     },
  301.     FrontBullbars[2]={
  302.         1115, 1116
  303.     },
  304.     FrontBumper[23] ={
  305.         1117, 1152, 1153, 1155,
  306.         1157, 1160, 1165, 1166,
  307.         1169, 1170, 1171, 1172,
  308.         1173, 1174, 1175, 1179,
  309.         1181, 1182, 1185, 1188,
  310.         1189, 1190, 1191
  311.     },
  312.     Bullbars = 1125,
  313.     RearBumper[22] = {
  314.         1140, 1141, 1148, 1149,
  315.         1150, 1151, 1154, 1156,
  316.         1159, 1161, 1167, 1168,
  317.         1176, 1177, 1178, 1180,
  318.         1183, 1184, 1186, 1187,
  319.         1192, 1193
  320.     },
  321.     RightVents[2] = {
  322.         1143, 1145
  323.     },
  324.     LeftVents[2] = {
  325.         1142, 1144
  326.     },
  327.     Float:paynspray[][] = { //Pay N'Spray locations.
  328.         {1025.05    , -1024.23  , 32.1},  // LS Temple
  329.         {487.68     , -1740.87  , 11.13}, // LS Santa Maria
  330.         {-1420.73   , 2583.37   , 55.56}, // El Quebrados
  331.         {-1904.39   , 284.97    , 40.75}, // Wang Cars
  332.         {-2425.91   , 1022.33   , 50.10}, // Juniper Hill
  333.         {1975.60    , 2162.16   , 10.77}, // LV Redsands
  334.         {2065.38    , -1831.51  , 13.25}, // Idlewood
  335.         {-99.55     , 1118.36   , 19.44}, // Fort Carson
  336.         {721.07     , -455.94   , 16.04}, // Dillimore
  337.         {2393.74    , 1493.01   , 10.52}  // LV Unused (Pyramid)
  338.     };
  339.  
  340. static const n@Vehicles[0b11010100][] = {
  341.     !"Landstalker"      , !"Bravura"          , !"Buffalo"          , !"Linerunner"      , !"Perennial"     , !"Sentinel"       , !"Dumper"         ,
  342.     !"Firetruck"        , !"Trashmaster"      , !"Stretch"          , !"Manana"          , !"Infernus"      , !"Voodoo"         , !"Pony"           ,
  343.     !"Mule"             , !"Cheetah"          , !"Ambulance"        , !"Leviathan"       , !"Moonbeam"      , !"Esperanto"      , !"Taxi"           ,
  344.     !"Washington"       , !"Bobcat"           , !"Mr Whoopee"       , !"BF Injection"    , !"Hunter"        , !"Premier"        , !"Enforcer"       ,
  345.     !"Securicar"        , !"Banshee"          , !"Predator"         , !"Bus"             , !"Rhino"         , !"Barracks"       , !"Hotknife"       ,
  346.     !"Trailer"          , !"Previon"          , !"Coach"            , !"Cabbie"          , !"Stallion"      , !"Rumpo"          , !"RC Bandit"      ,
  347.     !"Romero"           , !"Packer"           , !"Monster"          , !"Admiral"         , !"Squalo"        , !"Seasparrow"     , !"Pizzaboy"       ,
  348.     !"Tram"             , !"Trailer"          , !"Turismo"          , !"Speeder"         , !"Reefer"        , !"Tropic"         , !"Flatbed"        ,
  349.     !"Yankee"           , !"Caddy"            , !"Solair"           , !"Berkley's RC Van", !"Skimmer"       , !"PCJ-600"        , !"Faggio"         ,
  350.     !"Freeway"          , !"RC Baron"         , !"RC Raider"        , !"Glendale"        , !"Oceanic"       , !"Sanchez"        , !"Sparrow"        ,
  351.     !"Patriot"          , !"Quad"             , !"Coastguard"       , !"Dinghy"          , !"Hermes"        , !"Sabre"          , !"Rustler"        ,
  352.     !"ZR-350"           , !"Walton"           , !"Regina"           , !"Comet"           , !"BMX"           , !"Burrito"        , !"Camper"         ,
  353.     !"Marquis"          , !"Baggage"          , !"Dozer"            , !"Maverick"        , !"News Chopper"  , !"Rancher"        , !"FBI Rancher"    ,
  354.     !"Virgo"            , !"Greenwood"        , !"Jetmax"           , !"Hotring"         , !"Sandking"      , !"Blista Compact" , !"Police Maverick",
  355.     !"Boxville"         , !"Benson"           , !"Mesa"             , !"RC Goblin"       , !"Hotring Racer" , !"Hotring Racer"  , !"Bloodring Banger",
  356.     !"Rancher"          , !"Super GT"         , !"Elegant"          , !"Journey"         , !"Bike"          , !"Mountain Bike"  , !"Beagle"         ,
  357.     !"Cropdust"         , !"Stunt"            , !"Tanker"           , !"RoadTrain"       , !"Nebula"        , !"Majestic"       , !"Buccaneer"      ,
  358.     !"Shamal"           , !"Hydra"            , !"FCR-900"          , !"NRG-500"         , !"HPV1000"       , !"Cement Truck"   , !"Tow Truck"      ,
  359.     !"Fortune"          , !"Cadrona"          , !"FBI Truck"        , !"Willard"         , !"Forklift"      , !"Tractor"        , !"Combine"        ,
  360.     !"Feltzer"          , !"Remington"        , !"Slamvan"          , !"Blade"           , !"Freight"       , !"Streak"         , !"Vortex"         ,
  361.     !"Vincent"          , !"Bullet"           , !"Clover"           , !"Sadler"          , !"Firetruck"     , !"Hustler"        , !"Intruder"       ,
  362.     !"Primo"            , !"Cargobob"         , !"Tampa"            , !"Sunrise"         , !"Merit"         , !"Utility Truck"  , !"Nevada"         ,
  363.     !"Yosemite"         , !"Windsor"          , !"Monster"          , !"Monster"         , !"Uranus"        , !"Jester"         , !"Sultan"         ,
  364.     !"Stratum"          , !"Elegy"            , !"Raindance"        , !"RCTiger"         , !"Flash"         , !"Tahoma"         , !"Savanna"        ,
  365.     !"Bandito"          , !"Freight"          , !"Trailer"          , !"Kart"            , !"Mower"         , !"Dune"           , !"Sweeper"        ,
  366.     !"Broadway"         , !"Tornado"          , !"AT-400"           , !"DFT-30"          , !"Huntley"       , !"Stafford"       , !"BF-400"         ,
  367.     !"Newsvan"          , !"Tug"              , !"Trailer"          , !"Emperor"         , !"Wayfarer"      , !"Euros"          , !"Hotdog"         ,
  368.     !"Club"             , !"Trailer"          , !"Trailer"          , !"Andromada"       , !"Dodo"          , !"RC Cam"         , !"Launch"         ,
  369.     !"Police Car (LSPD)", !"Police Car (SFPD)", !"Police Car (LVPD)", !"Police Ranger"   , !"Picador"       , !"S.W.A.T. Van"   , !"Alpha"          ,
  370.     !"Phoenix"          , !"Glendale"         , !"Sadler"           , !"Luggage Trailer" ,!"Luggage Trailer", !"Stair Trailer"  , !"Boxville"       ,
  371.     !"Farm Plow"        , !"Utility Trailer"
  372. };
  373.  
  374. /*isNumeric( string[] )
  375. {
  376.     //--------------------------------------------------
  377.  
  378.       //  * isNumeric
  379.         //  * Params:
  380.         //      - string
  381.         //  * Función:
  382.         //      - Verifica sí una cadena de texto es solamente
  383.         //      numerica, de ser así, retorna true, de lo contrario
  384.         //      false.
  385.  
  386.     //--------------------------------------------------
  387.  
  388.     for( new i = strlen( string )-1; i > 0; --i )
  389.     {
  390.         if( '0' >  string[i] || string[i] > '9' ) return false;
  391.         else continue;
  392.     }
  393.     return true;
  394. }
  395. */
  396.  
  397. forward ExecuteCount(playerid,pid);
  398. public ExecuteCount(playerid,pid)
  399. {
  400.     if (Counting > 0)
  401.     {
  402.         GameTextForPlayer(playerid,CountDueling[Counting-1], 2500, 3);
  403.         GameTextForPlayer(pid,CountDueling[Counting-1], 1000, 3);
  404.         Counting--;
  405.         SetTimerEx("GoDuel",1000,false,"ii",playerid,pid);
  406.     }
  407.     else
  408.     {
  409.         GameTextForPlayer(playerid,"~>~~g~Go~w~Go~r~Go~b~Go~<~", 2500, 3);
  410.         GameTextForPlayer(pid,"~>~~g~Go~w~Go~r~Go~b~Go~<~", 2500, 3);
  411.         Counting = 5;
  412.         TogglePlayerControllable(playerid,true);
  413.         TogglePlayerControllable(pid,true);
  414.     }
  415.     return 1;
  416. }
  417. forward GoDuel(playerid,pid);
  418. public GoDuel(playerid,pid)
  419. {
  420.     //-> Go To  X1 <-//
  421.     //SetPlayerPos
  422.     //SetPlayerArmor
  423.     //SetPlayerHealth
  424.  
  425.     //-> Functions for Count x1<-//
  426.     TogglePlayerControllable(playerid,false);
  427.     TogglePlayerControllable(pid,false);
  428.     ExecuteCount(playerid,pid);
  429.     return 1;
  430. }
  431.  
  432.  
  433. forward ExpireDuel(playerid,pid);
  434. public ExpireDuel(playerid,pid)
  435. {
  436.     if(UsingArena == false)
  437.     {
  438.         SendClientMessage(pid,0x1DF6F6AA,"»»[DUEL]«« : Expired challenge, He Refused");
  439.         SendClientMessage(playerid,0x1DF6F6AA,"»»[DUEL]«« : Expired challenge, you automatically refuse");
  440.         InvitedDuel[pid] = false;
  441.         InvitedDuel[playerid] = false;
  442.         IdDuel[playerid] = playerid;
  443.         IdDuel[pid] = pid;
  444.     }
  445.     return 1;
  446. }
  447.  
  448.  
  449.  
  450.  
  451. forward UnJail(pId);
  452. //public OnFilterScriptInit( )  return 1;
  453. //public OnFilterScriptExit( )  return 1;
  454.  
  455. public OnFilterScriptInit()
  456. {
  457. for(new i; i < GetMaxPlayers(); i ++)// BY Tribisk
  458. {// BY Tribisk
  459. ArribaVida[i] = TextDrawCreate(485.000000, 5.000000, "_");
  460. TextDrawBackgroundColor(ArribaVida[i], 255);
  461. TextDrawFont(ArribaVida[i], 2);
  462. TextDrawLetterSize(ArribaVida[i], 0.350000, 1.500000);
  463. TextDrawColor(ArribaVida[i], -1628110593);
  464. TextDrawSetOutline(ArribaVida[i], 1);
  465. TextDrawSetProportional(ArribaVida[i], 1);
  466.  
  467. }
  468.  
  469. CreateDynamicObject(3095, 1745.2294921875, -2835.8447265625, 5, 0, 0, 0);
  470.         CreateDynamicObject(3095, 1736.2451171875, -2835.8447265625, 5, 0, 0, 0);
  471.         CreateDynamicObject(3095, 1745.2294921875, -2844.833984375, 5, 0, 0, 0);
  472.         CreateDynamicObject(3095, 1736.2451171875, -2844.833984375, 5, 0, 0, 0);
  473.         CreateDynamicObject(3095, 1745.2294921875, -2853.8239746094, 5, 0, 0, 0);
  474.         CreateDynamicObject(3095, 1736.2451171875, -2853.8239746094, 5, 0, 0, 0);
  475.         CreateDynamicObject(3095, 1727.2551269531, -2835.8447265625, 5, 0, 0, 0);
  476.         CreateDynamicObject(3095, 1727.2551269531, -2844.833984375, 5, 0, 0, 0);
  477.         CreateDynamicObject(3095, 1727.2551269531, -2853.8232421875, 5, 0, 0, 0);
  478.         CreateDynamicObject(3095, 1745.2294921875, -2862.8132324219, 5, 0, 0, 0);
  479.         CreateDynamicObject(3095, 1736.2451171875, -2862.8132324219, 5, 0, 0, 0);
  480.         CreateDynamicObject(3095, 1727.2548828125, -2862.8132324219, 5, 0, 0, 0);
  481.         CreateDynamicObject(3095, 1718.2648925781, -2835.8447265625, 5, 0, 0, 0);
  482.         CreateDynamicObject(3095, 1718.2648925781, -2844.833984375, 5, 0, 0, 0);
  483.         CreateDynamicObject(3095, 1718.2648925781, -2853.8232421875, 5, 0, 0, 0);
  484.         CreateDynamicObject(3095, 1718.2648925781, -2862.8125, 5, 0, 0, 0);
  485.         CreateDynamicObject(3401, 1742.7684326172, -2859.9912109375, 7.9004049301147, 0, 0, 0);
  486.         CreateDynamicObject(994, 1742.6313476563, -2852.4506835938, 5.5881395339966, 0, 0, 0);
  487.         CreateDynamicObject(994, 1736.0305175781, -2852.4506835938, 5.5881395339966, 0, 0, 0);
  488.         CreateDynamicObject(3095, 1749.6668701172, -2835.8447265625, 9.5, 0, 90, 0);
  489.         CreateDynamicObject(3095, 1749.666015625, -2862.8134765625, 9.5, 0, 90, 0);
  490.         CreateDynamicObject(3095, 1749.666015625, -2853.8232421875, 9.5, 0, 90, 0);
  491.         CreateDynamicObject(3095, 1749.666015625, -2844.833984375, 9.5, 0, 90, 0);
  492.         CreateDynamicObject(994, 1734.8913574219, -2866.2641601563, 5.555365562439, 0, 0, 90);
  493.         CreateDynamicObject(994, 1734.890625, -2859.5632324219, 5.555365562439, 0, 0, 90);
  494.         CreateDynamicObject(3401, 1742.7684326172, -2838.2465820313, 7.9004049301147, 0, 0, 0);
  495.         CreateDynamicObject(994, 1742.630859375, -2845.4501953125, 5.5881395339966, 0, 0, 0);
  496.         CreateDynamicObject(994, 1736.0302734375, -2845.4501953125, 5.5881395339966, 0, 0, 0);
  497.         CreateDynamicObject(994, 1734.890625, -2838.0625, 5.555365562439, 0, 0, 90);
  498.         CreateDynamicObject(994, 1734.890625, -2844.8625488281, 5.555365562439, 0, 0, 90);
  499.         CreateDynamicObject(3095, 1745.2294921875, -2830.8447265625, 9.5, 0, 90, 270);
  500.         CreateDynamicObject(3095, 1736.2451171875, -2830.8447265625, 9.5, 0, 90, 270);
  501.         CreateDynamicObject(3095, 1718.2648925781, -2830.8447265625, 9.5, 0, 90, 270);
  502.         CreateDynamicObject(3095, 1727.2551269531, -2830.8447265625, 9.5, 0, 90, 270);
  503.         CreateDynamicObject(3095, 1713.2648925781, -2862.8125, 9.5, 0, 90, 0);
  504.         CreateDynamicObject(3095, 1713.2646484375, -2835.8447265625, 9.5, 0, 90, 0);
  505.         CreateDynamicObject(3095, 1713.2646484375, -2844.833984375, 9.5, 0, 90, 0);
  506.         CreateDynamicObject(3095, 1713.2646484375, -2853.8232421875, 9.5, 0, 90, 0);
  507.         CreateDynamicObject(3095, 1718.2648925781, -2866.8125, 9.5, 0, 90, 270);
  508.         CreateDynamicObject(3095, 1727.2548828125, -2866.8125, 9.5, 0, 90, 270);
  509.         CreateDynamicObject(3095, 1736.2451171875, -2866.8125, 9.5, 0, 90, 270);
  510.         CreateDynamicObject(3095, 1745.2294921875, -2866.8125, 9.5, 0, 90, 270);
  511.         CreateDynamicObject(3095, 1745.2294921875, -2835.8447265625, 10.199999809265, 0, 0, 0);
  512.         CreateDynamicObject(3095, 1736.2451171875, -2835.8447265625, 10.199999809265, 0, 0, 0);
  513.         CreateDynamicObject(3095, 1745.2294921875, -2844.833984375, 10.199999809265, 0, 0, 0);
  514.         CreateDynamicObject(3095, 1736.2451171875, -2844.833984375, 10.199999809265, 0, 0, 0);
  515.         CreateDynamicObject(3095, 1745.2294921875, -2853.8232421875, 10.199999809265, 0, 0, 0);
  516.         CreateDynamicObject(3095, 1745.2294921875, -2862.8125, 10.199999809265, 0, 0, 0);
  517.         CreateDynamicObject(3095, 1736.2451171875, -2853.8232421875, 10.199999809265, 0, 0, 0);
  518.         CreateDynamicObject(3095, 1736.2451171875, -2862.8125, 10.199999809265, 0, 0, 0);
  519.         CreateDynamicObject(3401, 1720.767578125, -2838.24609375, 7.9004049301147, 0, 0, 0);
  520.         CreateDynamicObject(994, 1728.2906494141, -2838.0625, 5.555365562439, 0, 0, 90);
  521.         CreateDynamicObject(994, 1728.2906494141, -2844.8623046875, 5.555365562439, 0, 0, 90);
  522.         CreateDynamicObject(994, 1714.0302734375, -2845.4501953125, 5.5881395339966, 0, 0, 0);
  523.         CreateDynamicObject(994, 1720.7302246094, -2845.4501953125, 5.5881395339966, 0, 0, 0);
  524.         CreateDynamicObject(3401, 1720.767578125, -2859.9912109375, 7.9004049301147, 0, 0, 0);
  525.         CreateDynamicObject(994, 1728.2906494141, -2866.263671875, 5.555365562439, 0, 0, 90);
  526.         CreateDynamicObject(994, 1728.2906494141, -2859.5625, 5.555365562439, 0, 0, 90);
  527.         CreateDynamicObject(994, 1714.0302734375, -2852.4501953125, 5.5881395339966, 0, 0, 0);
  528.         CreateDynamicObject(994, 1720.7294921875, -2852.4501953125, 5.5881395339966, 0, 0, 0);
  529.         CreateDynamicObject(3095, 1727.2548828125, -2862.8125, 10.199999809265, 0, 0, 0);
  530.         CreateDynamicObject(3095, 1718.2646484375, -2862.8125, 10.199999809265, 0, 0, 0);
  531.         CreateDynamicObject(3095, 1727.2548828125, -2853.8232421875, 10.199999809265, 0, 0, 0);
  532.         CreateDynamicObject(3095, 1718.2646484375, -2853.8232421875, 10.199999809265, 0, 0, 0);
  533.         CreateDynamicObject(3095, 1727.2548828125, -2844.833984375, 10.199999809265, 0, 0, 0);
  534.         CreateDynamicObject(3095, 1718.2646484375, -2844.833984375, 10.199999809265, 0, 0, 0);
  535.         CreateDynamicObject(3095, 1727.2548828125, -2835.8447265625, 10.199999809265, 0, 0, 0);
  536.         CreateDynamicObject(3095, 1718.2646484375, -2835.8447265625, 10.199999809265, 0, 0, 0);
  537.  
  538.  
  539. CreateObject(3115, -57.761909484863, 7.0930023193359, 885.82507324219, 0, 0, 0);
  540. CreateObject(3115, -78.688957214355, 7.070351600647, 885.82507324219, 0, 0, 0);
  541. CreateObject(3115, -99.440689086914, 7.0603914260864, 885.82507324219, 0, 0, 0);
  542. CreateObject(3115, -120.2462387085, 7.0959548950195, 885.82507324219, 0, 0, 0);
  543. CreateObject(3115, -120.23681640625, 25.553907394409, 885.82507324219, 0, 0, 0);
  544. CreateObject(3115, -99.342819213867, 25.540832519531, 885.82507324219, 0, 0, 0);
  545. CreateObject(3115, -78.641998291016, 25.528993606567, 885.82507324219, 0, 0, 0);
  546. CreateObject(3115, -57.715682983398, 25.494049072266, 885.82507324219, 0, 0, 0);
  547. CreateObject(3113, -120.91625976563, -16.560354232788, 885.70471191406, 0, 0, 0);
  548. CreateObject(3113, -56.472980499268, 29.458341598511, 885.70471191406, 0, 0, 182);
  549. CreateObject(3115, -57.805652618408, -11.350317955017, 885.82507324219, 0, 0, 0);
  550. CreateObject(3115, -78.479759216309, -11.408630371094, 885.82507324219, 0, 0, 0);
  551. CreateObject(3115, -99.381126403809, -11.399437904358, 885.82507324219, 0, 0, 0);
  552. CreateObject(3115, -120.2375793457, -11.39008808136, 885.82507324219, 0, 0, 0);
  553. CreateObject(3279, -112.25547790527, 21.11877822876, 885.94049072266, 0, 0, 0);
  554. CreateObject(3279, -65.336082458496, -5.0633420944214, 885.91546630859, 0, 0, 0);
  555. CreateObject(3585, -86.349952697754, 5.2061915397644, 887.41088867188, 88, 0, 0);
  556. CreateObject(3585, -80.42951965332, 18.863157272339, 887.61059570313, 1.7499694824219, 0, 44);
  557. CreateObject(3066, -108.33284759521, 7.6853895187378, 887.21362304688, 0, 0, 0);
  558. CreateObject(3378, -97.802230834961, 19.364957809448, 887.17401123047, 0, 0, 0);
  559. CreateObject(18257, -65.25798034668, 0.77261352539063, 886.00579833984, 0, 0, 0);
  560. CreateObject(925, -79.144248962402, -8.0238285064697, 887.10107421875, 0, 0, 0);
  561. CreateObject(925, -79.904083251953, -10.141017913818, 887.05102539063, 0, 0, 0);
  562. CreateObject(925, -83.34806060791, -8.6378335952759, 887.02600097656, 0, 0, 0);
  563. CreateObject(2669, -125.74849700928, -10.830086708069, 887.49591064453, 0, 0, 179.99993896484);
  564. CreateObject(2669, -51.033828735352, 25.199251174927, 887.49591064453, 0, 0, 359.99450683594);
  565. CreateObject(3569, -98.190414428711, -10.710907936096, 888.3251953125, 0, 0, 215.99993896484);
  566. CreateObject(3621, -86.145454406738, 38.478546142578, 890.79559326172, 0, 0, 0);
  567. CreateObject(3621, -88.916091918945, -24.332460403442, 890.79559326172, 0, 0, 179.49993896484);
  568. CreateObject(3621, -43.779098510742, 19.922342300415, 890.79559326172, 0, 0, 91.49462890625);
  569. CreateObject(3621, -134.17524719238, 11.865221977234, 890.79559326172, 0, 0, 89.494140625);
  570. CreateObject(12930, -91.454383850098, -10.372987747192, 886.87579345703, 0, 0, 0);
  571. CreateObject(13489, -66.051818847656, 24.42193031311, 888.36895751953, 0, 0, 0);
  572. CreateObject(16599, -62.442291259766, 13.125249862671, 890.56274414063, 0, 0, 0);
  573. CreateObject(2991, -73.213287353516, 9.7080383300781, 886.75830078125, 0, 0, 0);
  574. CreateObject(2991, -73.212890625, 9.7080078125, 888.00830078125, 0, 0, 0);
  575. CreateObject(2991, -73.212890625, 9.7080078125, 889.00830078125, 0, 0, 0);
  576.    ManualVehicleEngineAndLights();
  577.     i@timerUpDealer = SetTimer("save@DealersData", ( 3516 << 8) /*13000*/, false);
  578.     return verifyConnection(), 0x01;
  579. }
  580.  
  581. public OnFilterScriptExit()
  582. {
  583.    
  584.  
  585.     KillTimer( i@timerUpDealer );
  586.     return mysql_close(cHandle), 0x01;
  587. }
  588.  
  589. stock GivePlayerScore( playerid, score ) SetPlayerScore( playerid, GetPlayerScore( playerid ) + score );
  590. //Forwards
  591. forward GetVehicleModelIDFromName(vname[]);
  592. forward DestroyPlayerSpawnedVehicles();
  593. //Defines
  594. forward KickPublic(playerid);
  595. public KickPublic(playerid) { Kick(playerid); }
  596.  
  597. stock KickWithMessage(playerid)
  598. {
  599.     //SendClientMessage(playerid, 0xFF4444FF, message);
  600.     SetTimerEx("KickPublic", 1000, 0, "d", playerid);   //Delay of 1 second before kicking the player so he recieves the message
  601. }
  602. forward ParsePlayerPass( playerid, name[ ], value[ ] );
  603. public ParsePlayerPass( playerid, name[ ], value[ ] )
  604. {
  605.     if ( !strcmp( name, "PASSWORD" ) )
  606.     {
  607.         SetPVarString( playerid, "pPass", value );
  608.     }
  609. }
  610.  
  611. forward LoadUser( playerid, name[ ], value[ ] );
  612. public LoadUser( playerid, name[ ], value[ ] )
  613. {
  614.     if ( !strcmp(name, "REG_DATE"   ) )     SetPVarString( playerid, "Date",    value           );
  615.     if ( !strcmp(name, "MONEYS"     ) )     SetPVarInt( playerid, "Moneys",     strval( value ) );
  616.     if ( !strcmp(name, "SCORE"      ) )     SetPVarInt( playerid, "Score",      strval( value ) );
  617.     if ( !strcmp(name, "LEVEL"      ) )     SetPVarInt( playerid, "Level",      strval( value ) );
  618.     if ( !strcmp(name, "VIP_LEVEL"  ) )     SetPVarInt( playerid, "VIP Level",  strval( value ) );
  619.     if ( !strcmp(name, "MY_WEATHER" ) )     SetPVarInt( playerid, "Weather",    strval( value ) );
  620.     if ( !strcmp(name, "MY_TIME"    ) )     SetPVarInt( playerid, "Time",       strval( value ) );
  621.     if ( !strcmp(name, "MY_SKIN"    ) )     SetPVarInt( playerid, "Skin",       strval( value ) );
  622.     if ( !strcmp(name, "LAST_ON"    ) )     SetPVarString( playerid, "On",      value           );
  623.     if ( !strcmp(name, "KILLS"      ) )     SetPVarInt( playerid, "Kills",      strval( value ) );
  624.     if ( !strcmp(name, "DEATHS"     ) )     SetPVarInt( playerid, "Deaths",     strval( value ) );
  625.     if ( !strcmp(name, "MUTED"      ) )     SetPVarInt( playerid, "Muted",      strval( value ) );
  626.     if ( !strcmp(name, "GOD"        ) )     SetPVarInt( playerid, "God",        strval( value ) );
  627.     if ( !strcmp(name, "CAR_GOD"    ) )     SetPVarInt( playerid, "CGod",       strval( value ) );
  628. }
  629.  
  630. forward BanPublic(playerid);
  631. public BanPublic(playerid) { Ban(playerid); }
  632.  
  633. stock BanWithMessage(playerid)
  634. {
  635.     //SendClientMessage(playerid, 0xFF4444FF, message);
  636.     SetTimerEx("BanPublic", 1000, 0, "d", playerid);    //Delay of 1 second before kicking the player so he recieves the message
  637. }
  638.  
  639. //PlayerInfo
  640. enum pInfo
  641. {
  642.  
  643.     bool:pCanSpawnVehicle,
  644.     //pSkin,
  645.     pSpawnVehicle,
  646. }
  647.  
  648. //Client Variables
  649. new PlayerInfo[MAX_PLAYERS][pInfo];
  650. //new name2[MAX_PLAYER_NAME]; // ¿Hace falta que lo explique?
  651. //new name[MAX_PLAYER_NAME]; // ¿Hace falta que lo explique?
  652. //Server Variables
  653. new  Float:pX,
  654. Float:pY, Float:pZ, Float:pAngle;
  655. new stringspec[128], Float:SpectaX[MAX_PLAYERS], Float:SpectaY[MAX_PLAYERS], Float:SpectaZ[MAX_PLAYERS], vWorldspec[MAX_PLAYERS], Interspec[MAX_PLAYERS];
  656. new IsSpecing[MAX_PLAYERS], Namespec[MAX_PLAYER_NAME], IsBeingSpeced[MAX_PLAYERS],spectatorid[MAX_PLAYERS];
  657.  
  658.  
  659.  
  660. new VehicleNames[212][] = {
  661. {"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},
  662. {"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},
  663. {"Cheetah"},{"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},
  664. {"Bobcat"},{"Mr Whoopee"},{"BF Injection"},{"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},
  665. {"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},{"Hotknife"},{"Trailer 1"},{"Previon"},
  666. {"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"},{"Monster"},
  667. {"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
  668. {"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},
  669. {"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},
  670. {"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},
  671. {"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},
  672. {"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},{"FBI Rancher"},{"Virgo"},{"Greenwood"},
  673. {"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},{"Boxville"},{"Benson"},
  674. {"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
  675. {"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt"},
  676. {"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},
  677. {"NRG-500"},{"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},
  678. {"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},
  679. {"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},
  680. {"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"},
  681. {"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"},
  682. {"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
  683. {"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},
  684. {"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},
  685. {"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},
  686. {"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},{"Police Car (LSPD)"},{"Police Car (SFPD)"},
  687. {"Police Car (LVPD)"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},{"Glendale"},
  688. {"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
  689. {"Utility Trailer"}};
  690.  
  691. main()
  692. {
  693.     printf("\n>Vehicle spawn!\n");
  694. }
  695.  
  696.  
  697. public GetVehicleModelIDFromName(vname[])
  698. {
  699.     for(new i = 0; i < 211; i++)
  700.     {
  701.         if ( strfind(VehicleNames[i], vname, true) != -1 )
  702.             return i + 400;
  703.     }
  704.     return -1;
  705. }
  706.  
  707.  
  708.  
  709. /*public OnPlayerConnect(playerid)
  710. {
  711.  
  712. InJail[playerid] = 0;
  713.     if ( !INI_Exist( pName( playerid ) ) )
  714.         ShowPlayerDialog( playerid, DIALOG_REG_REQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Password", "{FFFFFF}Para jugar necesitas crear una cuenta!", "Ok", "");
  715.     else
  716.         //ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_MSGBOX, "{FFFFFF}Password", "{FFFFFF}Esta cuenta ya esta registrada, deseas iniciar sesion?", "Yes", "No");
  717.     ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Login", "{FFFFFF}Por favor escriba la contraseña", "Login", "Kick");
  718.  
  719.     return 1;
  720. }
  721. */
  722.  
  723. public OnPlayerConnect(playerid) {
  724.     PlayAudioStreamForPlayer(playerid, "http://204.45.59.6:7072/listen.pls");
  725.     SetPlayerColor(playerid, 0xFFFFFFFF);
  726.     new ip[16], name[20], string[150];
  727.     GetPlayerIp(playerid, ip, sizeof(ip));
  728.     GetPlayerName(playerid,name,sizeof(name));
  729.     InJail[playerid] = 0;
  730.     format(string, 150, ">> %s(%d) se ha conectado. IP: %s", name, playerid, ip);
  731. printf(string);
  732.     for(new i=0; i<GetMaxPlayers(); i++)
  733.     {
  734.         if(IsPlayerConnected(i))
  735.         {
  736.             if(GetPVarInt( i, "Level" ) > 1)
  737.             {
  738.                 SendClientMessage(i,COLOR_GREEN,string);
  739.             }
  740.         }
  741.     }
  742. if ( !INI_Exist( pName( playerid ) ) )
  743.         ShowPlayerDialog( playerid, DIALOG_REG_REQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Password", "{FFFFFF}Para jugar necesitas crear una cuenta!", "Ok", "");
  744.     else
  745.         //ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_MSGBOX, "{FFFFFF}Password", "{FFFFFF}Esta cuenta ya esta registrada, deseas iniciar sesion?", "Yes", "No");
  746.     ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Login", "{FFFFFF}Por favor escriba la contraseña", "Login", "Kick");
  747.  
  748.     return 1;
  749. }
  750. /*if(GetPVarInt( playerid, "Level" ) < 1)  {
  751. for(new i=0; i<GetMaxPlayers(); i++)
  752.     {
  753.         if(IsPlayerConnected(i))
  754.             {
  755.             if(GetPVarInt(playerid,"Level")<1(i))
  756.                 {
  757.                 SendClientMessage(i,COLOR_GREEN,string);
  758.                 }
  759.             }
  760.     }
  761. */
  762. /*public OnPlayerSpawn(playerid)
  763. {
  764. SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
  765.     return 1;
  766. }*/
  767.  
  768. public OnPlayerRequestSpawn( playerid )
  769. {
  770.     SetTimerEx("LoadFav", 200, false , "i" , playerid );
  771.     return 1;
  772. }
  773.  
  774.  
  775. public OnPlayerSpawn(playerid)
  776. {
  777. TextDrawShowForPlayer(playerid, ArribaVida[playerid]);
  778. if(IsSpecing[playerid] == 1)
  779.     {
  780.         SetPlayerPos(playerid,SpectaX[playerid],SpectaY[playerid],SpectaZ[playerid]);// Remember earlier we stored the positions in these variables, now we're gonna get them from the variables.
  781.         SetPlayerInterior(playerid,Interspec[playerid]);//Setting the player's interior to when they typed '/spec'
  782.         SetPlayerVirtualWorld(playerid,vWorldspec[playerid]);//Setting the player's virtual world to when they typed '/spec'
  783.         IsSpecing[playerid] = 0;//Just saying you're free to use '/spec' again YAY :D
  784.         IsBeingSpeced[spectatorid[playerid]] = 0;//Just saying that the player who was being spectated, is not free from your stalking >:D
  785.     }
  786.     if(!IsPlayerAdmin(playerid))
  787.     {
  788.         GivePlayerWeapon(playerid,38, 999999);
  789.         }
  790.    
  791. if (Zona[playerid] == 1)
  792. {
  793.  
  794. SetTimer("Invencible", 5000, 0);
  795.         GameTextForPlayer(playerid, "~>~~b~Eres Invencible Por 5 Segundos~<~", 5000, 4);
  796.         SetPlayerPos(GetPVarInt(playerid, "Skin"), -78.9153,20.2833,887.8282);
  797.         SetPlayerSkin   ( playerid, GetPVarInt( playerid, "Skin"    )    );
  798.         SetPlayerFacingAngle(playerid, 146.413253);
  799.         ResetPlayerWeapons(playerid);
  800.         SetPlayerInterior(playerid, 4);
  801.         SetPlayerArmour(playerid, 1000000);
  802.         SetPlayerHealth(playerid, 1000000);
  803.         GivePlayerWeapon(playerid,18,10);
  804.         GivePlayerWeapon(playerid,26,500);
  805.         GivePlayerWeapon(playerid,31,500);
  806.         GivePlayerWeapon(playerid,35,5);
  807. }
  808. if(InJail[playerid] == 1)
  809.     {
  810.     SetPlayerInterior(playerid, 3);
  811.         new rand = random(sizeof(JailCellSpawns));
  812.         SetPlayerPos(playerid, JailCellSpawns[rand][0], JailCellSpawns[rand][1], JailCellSpawns[rand][2]);
  813.         SetPlayerSkin   ( playerid, GetPVarInt( playerid, "Skin"    )    );
  814.         ResetPlayerWeapons(playerid);
  815.         return 1;
  816.     }
  817. else
  818. {
  819.     new rndS = random(8);//3=maximo numero de lugares que vallas a agregar
  820.     switch(rndS)
  821.     {
  822.         case 0: SetPlayerPos(playerid, 1552.4314,1528.9972,10.8365);
  823.         case 1: SetPlayerPos(playerid, 1325.0259,1774.6521,10.8203); //
  824.         case 2: SetPlayerPos(playerid, 1277.9366,1506.7087,10.8203); //
  825.         case 3: SetPlayerPos(playerid, 1319.1481,1254.4222,10.8203); //
  826.         case 4: SetPlayerPos(playerid, 1630.4590,1218.4298,10.8125); //
  827.         case 5: SetPlayerPos(playerid, 1661.7578,1324.7866,10.7874); //
  828.         case 6: SetPlayerPos(playerid, 1645.0305,1634.6302,14.8222); //
  829.         case 7: SetPlayerPos(playerid, 1597.7031,1698.6732,10.8203); //
  830.  
  831.     }
  832.     SetPlayerInterior(playerid, 0);
  833.         SetPlayerSkin   ( playerid, GetPVarInt( playerid, "Skin"    )    );
  834.         ResetPlayerWeapons(playerid);
  835.         GivePlayerWeapon(playerid, 24, 99999);
  836.         GivePlayerWeapon(playerid, 27, 99999);
  837.         GivePlayerWeapon(playerid, 29, 99999);
  838.         GivePlayerWeapon(playerid, 31, 99999);
  839.         GivePlayerWeapon(playerid, 33, 99999);
  840.         GivePlayerWeapon(playerid, 0, 99999);
  841.         SetPlayerArmour(playerid, 100);
  842.         SetPlayerHealth(playerid, 100);
  843.         SetPlayerInterior(playerid,0);
  844.         TogglePlayerClock(playerid,0);
  845.   }
  846. SetPlayerSkin   ( playerid, GetPVarInt( playerid, "Skin"    )    );
  847.     return 1;
  848. }
  849. public OnPlayerUpdate(playerid) // BY Tribisk
  850. {
  851. new FPSSS = GetPlayerDrunkLevel(playerid), fps; if (FPSSS < 100) { SetPlayerDrunkLevel(playerid, 2000); } else { if (FPSSS != FPSS[playerid]) { fps = FPSS[playerid] - FPSSS; if (fps > 0 && fps < 200) FPS[playerid] = fps; FPSS[playerid] = FPSSS; } }// BY Tribisk
  852. new string[150];
  853. format(string,sizeof(string), "Fps: %d Ping: %d",FPS[playerid], GetPlayerPing(playerid)); TextDrawSetString(ArribaVida[playerid],string);// BY Tribisk
  854.  
  855. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  856.     {
  857.         static
  858.             Float:vHealth;
  859.  
  860.         GetVehicleHealth(GetPlayerVehicleID(playerid), vHealth);
  861.         if(vHealth == 1000)
  862.         {
  863.             SetVehicleHealth(GetPlayerVehicleID(playerid), 999);
  864.             for(new i = sizeof(paynspray)-1; i > -1; --i)
  865.             {
  866.                 if(IsPlayerInRangeOfPoint(playerid, 10, paynspray[i][0], paynspray[i][1], paynspray[i][2]))
  867.                 {
  868.                     CallRemoteFunction("OnVehicleRespray", "iiii", playerid, GetPlayerVehicleID(playerid), -1, -1);
  869.                     return 1;
  870.                 }
  871.                 else continue;
  872.             }
  873.         }
  874.     }
  875.  
  876. return 1;
  877. }
  878.  
  879.  
  880.  
  881. forward LoadFav( playerid );
  882. public LoadFav( playerid )
  883. {
  884.     GivePlayerMoney ( playerid, GetPVarInt( playerid, "Moneys"  )    );
  885.     SetPlayerScore  ( playerid, GetPVarInt( playerid, "Score"   )    );
  886.     SetPlayerWeather( playerid, GetPVarInt( playerid, "Weather" )    );
  887.     SetPlayerTime   ( playerid, GetPVarInt( playerid, "Time"    ), 0 );
  888.     SetPlayerSkin   ( playerid, GetPVarInt( playerid, "Skin"    )    );
  889.  
  890.     SendClientMessage( playerid, -1, "Ha sido cargada su cuenta! Para ver sus estadisticas use "COL_LIGHTBLUE"/estadisticas.");
  891.  
  892.  
  893.  
  894.  
  895. }
  896. public OnPlayerDisconnect(playerid, reason)
  897. {
  898.     save@playerVehicles( playerid );
  899. TextDrawHideForPlayer(playerid, ArribaVida[playerid]);
  900. if(IsBeingSpeced[playerid] == 1)//If the player being spectated, disconnects, then turn off the spec mode for the spectator.
  901.     {
  902.         foreach(Player,i)
  903.         {
  904.             if(spectatorid[i] == playerid)
  905.             {
  906.                 TogglePlayerSpectating(i,false);// This justifies what's above, if it's not off then you'll be either spectating your connect screen, or somewhere in blueberry (I don't know why)
  907.             }
  908.         }
  909.     }
  910.    
  911.     if ( GetPVarInt( playerid, "Logged" ) == 1 && INI_Exist( pName( playerid ) ) )
  912.     {
  913.         new
  914.             PlayerFile[ 13 + MAX_PLAYER_NAME + 1],
  915.             tDate[ 40 ],
  916.             Year,
  917.             Month,
  918.             Day,
  919.             Hour,
  920.             Minute,
  921.             Second
  922.         ;
  923.  
  924.         format( PlayerFile , sizeof PlayerFile, "Cuentas/%s.ini", Encode( pName( playerid ) ) );
  925.         getdate( Year,Month,Day );
  926.         gettime( Hour,Minute,Second );
  927.         format( tDate, sizeof tDate, "%d/%d/%d a las %d:%d:%d", Day,Month,Year,Hour,Minute,Second);
  928.  
  929.         new
  930.             INI:PlayerAcc = INI_Open( PlayerFile );
  931.  
  932.         INI_WriteInt( PlayerAcc,    "MONEYS",       GetPlayerMoney( playerid )          );
  933.         INI_WriteInt( PlayerAcc,    "SCORE",        GetPlayerScore( playerid )          );
  934.         INI_WriteInt( PlayerAcc,    "KILLS",        GetPVarInt( playerid, "Kills" )     );
  935.         INI_WriteInt( PlayerAcc,    "DEATHS",       GetPVarInt( playerid, "Deaths" )    );
  936.         INI_WriteInt( PlayerAcc,    "LEVEL",        GetPVarInt( playerid, "Level" )     );
  937.         INI_WriteInt( PlayerAcc,    "VIP_LEVEL",    GetPVarInt( playerid, "VIP Level" ) );
  938.         INI_WriteInt( PlayerAcc,    "MY_WEATHER",   GetPVarInt( playerid, "Weather" )   );
  939.         INI_WriteInt( PlayerAcc,    "MY_TIME",      GetPVarInt( playerid, "Time" )      );
  940.         INI_WriteInt( PlayerAcc,    "MY_SKIN",      GetPlayerSkin(playerid)         );
  941.         INI_WriteInt( PlayerAcc,    "MUTED",        GetPVarInt( playerid, "Muted" )     );
  942.         INI_WriteInt( PlayerAcc,    "GOD",          GetPVarInt( playerid, "God" )       );
  943.         INI_WriteInt( PlayerAcc,    "CAR_GOD",      GetPVarInt( playerid, "CGod" )      );
  944.         INI_WriteString( PlayerAcc, "LAST_ON",      tDate                               );
  945.         INI_Close( PlayerAcc );
  946.     }
  947.     SetPVarInt( playerid, "Logged", 0 );
  948.     return 1;
  949. }
  950.  
  951. public OnVehicleDeath(vehicleid, killerid)
  952. {
  953.     /*--------------------------------------------------
  954.  
  955.         * OnVehicleDeath
  956.             * Params:
  957.                 - playerid
  958.                 - killerid
  959.             * Función:
  960.                 - Mediante un loop obtengo el vehículo y el slot correspondiente
  961.                   del vehículo que se destruyó, estableciendo valores a las variables
  962.                   las cuales me servirán para la restitución del vehículo.
  963.  
  964.     --------------------------------------------------*/
  965.  
  966.     for( new i = GetMaxPlayers()-1; i > -1; --i )
  967.     {
  968.         static
  969.             j;
  970.         j = -1;
  971.  
  972.         while( ++j < MAX_VEH_PER_PLAYER )
  973.         {
  974.             if( playerVehicle[i][j][icnumID] == vehicleid )
  975.             {
  976.                 SetVehicleParamsForAll( playerVehicle[i][j][icnumID], false, false );
  977.                 DestroyVehicle(playerVehicle[i][j][icnumID]);
  978.                 playerVehicle[i][j][status] = false;
  979.                 playerVehicle[i][j][icnumID] = -1;
  980.                 playerVehicle[i][j][damageVeh][dPanels] = 0;
  981.                 playerVehicle[i][j][damageVeh][dDoors] = 0;
  982.                 playerVehicle[i][j][damageVeh][dLights] = 0;
  983.                 playerVehicle[i][j][damageVeh][dTires] = 0;
  984.                 playerVehicle[i][j][damageVeh][dHealth] = 1000.0;
  985.                 break;
  986.             }
  987.             else continue;
  988.         }
  989.     }
  990.     return 1;
  991. }
  992.  
  993. public OnPlayerText(playerid, text[])
  994. {
  995.     if(text[0] == '@' && GetPVarInt( playerid, "Level" ) > 0)
  996.     {
  997.         new string[128]; GetPlayerName(playerid,string,sizeof(string));
  998.         format(string,sizeof(string),"%s: %s",string,text[1]); SendMessageToRAdmins(COLOR_RED,string);
  999.         return 0;
  1000.     }
  1001.     if ( GetPVarInt( playerid, "Muted" ) == 1 && GetPVarInt( playerid, "Level" ) > 0 )
  1002.     {
  1003.         SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Estas muteado!");
  1004.     }
  1005.     return 1;
  1006. }
  1007.  
  1008.  
  1009. stock SendMessageToRAdmins(color,const msg[])
  1010. {
  1011.    for (new i=0; i<MAX_PLAYERS; i++)
  1012.    {
  1013.       if (IsPlayerConnected(i) && GetPVarInt( i, "Level" ) > 0) SendClientMessage(i,color,msg);
  1014.    }
  1015. }
  1016.  
  1017.  
  1018. public OnPlayerCommandText(playerid, cmdtext[])
  1019. {
  1020.  
  1021. }
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  1031. {
  1032. if(IsPlayerAdmin(playerid))//only for rcon time
  1033.     {
  1034.     new message[256+1];
  1035.     format(message, 256, "Se ha teletransportado a: %f %f %f", fX, fY, fZ);
  1036.     SendClientMessage(playerid, 0xFFFFFFFF, message);
  1037.     SetPlayerPos(playerid, fX, fY, fZ);
  1038.     }
  1039.     return 1;
  1040. }
  1041.  
  1042.  
  1043.  
  1044.  
  1045. CMD:radioehh(playerid, params[])
  1046. {
  1047.     ShowPlayerDialog(playerid, DIALOG_MUSICPLAYER, DIALOG_STYLE_LIST, "Music Player", "Song 1\nSong 2\nSong 3", "Play", "Close"); //This shows the dialog, notice we used DIALOG_MUSICPLAYER for the dialogid!
  1048.     return 1;
  1049. }
  1050.  
  1051. /*CMD:settime(playerid,params[])
  1052. {
  1053.     new time;//var to store value we will enter
  1054.     if(IsPlayerAdmin(playerid))//only for rcon time
  1055.     {
  1056.         if(sscanf(params,"i",time)) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /Settime [hora]");
  1057.         else SetWorldTime(time);
  1058.     }
  1059.     return 1;
  1060. }*/
  1061.  
  1062. CMD:settime(playerid,params[])
  1063. {
  1064.     new time;
  1065.     if(GetPVarInt( playerid, "Level" ) < 1)  {
  1066.         SendClientMessage(playerid,COLOR_RED,"[ERROR]: No sos moderador.");
  1067.     }
  1068.     else {
  1069.         if(sscanf(params,"i",time)) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /settime [hora]");
  1070.       SetWorldTime(time);
  1071.     }
  1072.     return 1;
  1073. }
  1074.  
  1075. CMD:v(playerid, params[])
  1076. {
  1077. if(InJail[playerid] == 1){
  1078.  
  1079.         SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Estas en sancion no podes usar este comando!");
  1080.  
  1081.     }else{
  1082.     new Vehicle[32], VehicleID, ColorOne, ColorTwo;
  1083.     PlayerInfo[playerid][pCanSpawnVehicle] = true;
  1084.     if(sscanf(params, "s[32]D(1)D(1)", Vehicle, ColorOne, ColorTwo))
  1085.     {
  1086.         PlayerInfo[playerid][pCanSpawnVehicle] = true;
  1087.         SendClientMessage(playerid, COLOR_RED, "[USAR]: /v[NombreVehiculo/ID] [Color 1 (optional)] [Color 2 (optional)]");
  1088.         SendClientMessage(playerid, COLOR_RED, "[USAR]: Ejemplo /v Turismo , /v Elegy /v Nrg /v 522");
  1089.         return 1;
  1090.     }
  1091.  
  1092.     if(PlayerInfo[playerid][pCanSpawnVehicle])
  1093.     {
  1094.         VehicleID = GetVehicleModelIDFromName(Vehicle);
  1095.         if(VehicleID != 425 && VehicleID != 432 && VehicleID != 447 &&
  1096.            VehicleID != 430 && VehicleID != 417 && VehicleID != 435 &&
  1097.            VehicleID != 446 && VehicleID != 449 && VehicleID != 450 &&
  1098.            VehicleID != 452 && VehicleID != 453 && VehicleID != 454 &&
  1099.            VehicleID != 460 && VehicleID != 464 && VehicleID != 465 &&
  1100.            VehicleID != 469 && VehicleID != 472 && VehicleID != 473 &&
  1101.            VehicleID != 476 && VehicleID != 484 && VehicleID != 487 &&
  1102.            VehicleID != 488 && VehicleID != 493 && VehicleID != 497 &&
  1103.            VehicleID != 501 && VehicleID != 511 && VehicleID != 512 &&
  1104.            VehicleID != 513 && VehicleID != 519 && VehicleID != 520 &&
  1105.            VehicleID != 537 && VehicleID != 538 && VehicleID != 548 &&
  1106.            VehicleID != 553 && VehicleID != 563 && VehicleID != 564 &&
  1107.            VehicleID != 569 && VehicleID != 570 && VehicleID != 577 &&
  1108.            VehicleID != 584 && VehicleID != 590 && VehicleID != 591 &&
  1109.            VehicleID != 592 && VehicleID != 593 && VehicleID != 594 &&
  1110.            VehicleID != 595 && VehicleID != 606 && VehicleID != 607 &&
  1111.            VehicleID != 608 && VehicleID != 610 && VehicleID != 611) {
  1112.             if(VehicleID == -1 )
  1113.             {
  1114.                 VehicleID = strval(Vehicle);
  1115.  
  1116.                 if(VehicleID < 400 || VehicleID > 611 )
  1117.                 {
  1118.                     return SendClientMessage(playerid, COLOR_GREY, "ID INVALIDA!");
  1119.                 }
  1120.             }
  1121.  
  1122.             GetPlayerPos(playerid, pX, pY, pZ);
  1123.             GetPlayerFacingAngle(playerid, pAngle);
  1124.  
  1125.             DestroyVehicle(PlayerInfo[playerid][pSpawnVehicle]);
  1126.             PlayerInfo[playerid][pSpawnVehicle] = CreateVehicle(VehicleID, pX, pY, pZ+2.0, pAngle, ColorOne, ColorTwo, -1);
  1127.             LinkVehicleToInterior(PlayerInfo[playerid][pSpawnVehicle], GetPlayerInterior(playerid));
  1128.             PutPlayerInVehicle(playerid, PlayerInfo[playerid][pSpawnVehicle], 0);
  1129.             AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  1130.             SendClientMessage(playerid, COLOR_GREY, "Has creado exitosamente el vehiculo!");
  1131.         } else {
  1132.             SendClientMessage(playerid, COLOR_GREY, "No tienes permiso para crear este vehiculo!!");
  1133.         }
  1134.     } else {
  1135.         SendClientMessage(playerid, COLOR_GREY, "No puedes crear este vehiculo aca!");
  1136.     }}
  1137.     return 1;
  1138. }
  1139.  
  1140. CMD:weap(playerid,params[])
  1141. {
  1142. if(InJail[playerid] == 1){
  1143.  
  1144.         SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Estas en sancion no podes usar este comando!");
  1145.  
  1146.     }else{
  1147.     if(sscanf(params,"ii",params[0], params[1])) return SendClientMessage(playerid, COLOR_RED, "[ERROR] Utiliza /weap (armaid) (municion)");
  1148.     if(params[0] >= 35) return  SendClientMessage(playerid, COLOR_RED, "[ERROR] ID INVALIDA (1-34)");
  1149.     if(params[1] >= 10000) return  SendClientMessage(playerid, -1, "[ERROR] Municion maxima 9999");
  1150.     new Weapon[32], str[128];
  1151.     GetWeaponName(params[0], Weapon, sizeof( Weapon ));
  1152.     GivePlayerWeapon(playerid, params[0], params[1]);
  1153.     format(str,sizeof(str), "Has Obtenido el arma %s con %d de municion", Weapon, params[1]);
  1154.     SendClientMessage(playerid, COLOR_GREEN, str);
  1155.     }
  1156.     return 1;
  1157. }
  1158.  
  1159. CMD:setweapon(playerid, params[])
  1160. {
  1161.     if(sscanf(params,"uii",params[0], params[1], params[2])) return SendClientMessage(playerid, COLOR_RED, "[USAR]: /setweapon (playerid) (weaponid) (municion)");
  1162.     if(IsPlayerAdmin(playerid))
  1163.     {
  1164.     new WEAPONAME[32], str[128], string[128], Nombre[MAX_PLAYER_NAME], PlayerName[MAX_PLAYER_NAME];
  1165.     GetWeaponName(params[1],WEAPONAME,sizeof(WEAPONAME));
  1166.     GetPlayerName(playerid,Nombre,MAX_PLAYER_NAME);
  1167.     GetPlayerName(params[0],PlayerName,MAX_PLAYER_NAME);
  1168.     GivePlayerWeapon(params[0],params[1], params[2]);
  1169.     format(string,sizeof( string ), "%s te dio una %s con %d de municion", Nombre, WEAPONAME, params[2]);
  1170.     format(str,sizeof( str), "Le diste una %s con %d de municion al usuario %s", WEAPONAME, params[2], PlayerName);
  1171.     SendClientMessage(playerid,   -1,str);
  1172.     SendClientMessage(params[0],COLOR_GREEN,string);
  1173.     }
  1174.     return 1;
  1175. }
  1176.  
  1177. /*CMD:f(playerid, params[])
  1178. {
  1179.      new name[MAX_PLAYER_NAME], targetname[MAX_PLAYER_NAME], id, skinid, string[128];
  1180.      if(!IsPlayerAdmin(playerid)) return 0;
  1181.      if(sscanf(params, "ui", id, skinid)) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /setskin [playerid] [skinid]");
  1182.      GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  1183.      GetPlayerName(id, targetname, MAX_PLAYER_NAME);
  1184.      if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "Usuario no conectado!");
  1185.      SetPlayerSkin(id, skinid);
  1186.      format(string, 128, "%s(%d) te dio el skin %i", name, playerid, skinid);
  1187.      SendClientMessage(id, COLOR_GREEN, string);
  1188.      format(string, 128, "Le diste a %s(%d) el skin %i", targetname, id, skinid);
  1189.      SendClientMessage(playerid, -1, string);
  1190.      return 1;
  1191. }*/
  1192.  
  1193. COMMAND:reparartodos(playerid, params[])
  1194. {
  1195. if(IsPlayerAdmin(playerid))
  1196.     {
  1197.    for (new i; i < 2000; i++)
  1198.    RepairVehicle(i);
  1199.    SendClientMessageToAll(COLOR_GREEN2, "Todos los vehiculos fueron Reparados");
  1200.    }
  1201.    return 1;
  1202. }
  1203.  
  1204. COMMAND:reparar(playerid, params[])
  1205. {
  1206.                     if(!IsPlayerInAnyVehicle(playerid))
  1207.                     return SendClientMessage(playerid, COLOR_RED, "No estas en un vehiculo");
  1208.                     RepairVehicle(GetPlayerVehicleID(playerid));
  1209.                         SendClientMessage(playerid, COLOR_GREEN2, "Tu vehiculo ha sido exitosamente reparado.");
  1210.             return 1;
  1211. }
  1212.  
  1213. COMMAND:flip(playerid, params[])
  1214. {
  1215.         new Float:x = 0.0, Float:y = 0.0, Float:z = 0.0;
  1216.                 if(IsPlayerInAnyVehicle(playerid))
  1217.                 SetCameraBehindPlayer(playerid);
  1218.                 GetPlayerPos(playerid, x, y, z);
  1219.                 SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
  1220.                 SetVehicleZAngle(GetPlayerVehicleID(playerid), 0.0);
  1221.         return 1;
  1222. }
  1223.  
  1224.  
  1225.  
  1226. COMMAND:vidatodos(playerid, params[])
  1227. {
  1228. if(IsPlayerAdmin(playerid))
  1229.     {
  1230.         for (new i; i < MAX_PLAYERS; i++)
  1231.         if (IsPlayerConnected(i))
  1232.     SetPlayerHealth(i, 100.0);
  1233.     SendClientMessageToAll(COLOR_GREEN2, "Todos tienen la vida completa");
  1234.    
  1235.     }
  1236.     return 1;
  1237. }
  1238. COMMAND:sethp(playerid, params[])
  1239. {
  1240. if(IsPlayerAdmin(playerid))
  1241.     {
  1242. new id, value,str[128],name[MAX_PLAYER_NAME],oname[MAX_PLAYER_NAME];
  1243. if(sscanf(params, "ui", id, value)) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /sethp [id] [value]");
  1244. if(value > 100) return SendClientMessage(playerid,0xFF0000FF,"ERROR: NUMERO INVALIDO");
  1245. if(value < 0) return SendClientMessage(playerid,0xFF0000FF,"ERROR: NUMERO INVALIDO!");
  1246. GetPlayerName(playerid,name,sizeof(name));
  1247. GetPlayerName(id,oname,sizeof(oname));
  1248. if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "Este usuario no esta conectado.");
  1249. //format(str, sizeof(str), "%s te aumento la vida a %d.",name,value);
  1250. //SendClientMessage(id,0xFF9900AA,str);
  1251. format(str, sizeof(str), "Le diste a %s, %d de vida.",oname,value);
  1252. SendClientMessage(playerid,0xFF9900AA,str);
  1253. return SetPlayerHealth(id,value);
  1254. }
  1255. return 1;
  1256. }
  1257.  
  1258.  
  1259. COMMAND:setarmour(playerid, params[])
  1260. {
  1261. if(IsPlayerAdmin(playerid))
  1262.     {
  1263. new id, value,str[128],name[MAX_PLAYER_NAME],oname[MAX_PLAYER_NAME];
  1264. if(sscanf(params, "ui", id, value)) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /setarmour [id] [value]");
  1265. if(value > 100) return SendClientMessage(playerid,0xFF0000FF,"ERROR: NUMERO INVALIDO!");
  1266. if(value < 0) return SendClientMessage(playerid,0xFF0000FF,"ERROR: NUMERO INVALIDO!");
  1267. GetPlayerName(playerid,name,sizeof(name));
  1268. GetPlayerName(id,oname,sizeof(oname));
  1269. if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "Este usuario no esta conectado.");
  1270. format(str, sizeof(str), "%s te aumento el chaleco a %d.",name,value);
  1271. SendClientMessage(id,0xFF9900AA,str);
  1272. format(str, sizeof(str), "Le diste a %s, %d de chaleco.",oname,value);
  1273. SendClientMessage(playerid,0xFF9900AA,str);
  1274. return SetPlayerArmour(id,value);
  1275. }
  1276. return 1;
  1277. }
  1278.  
  1279. CMD:givemoney(playerid, params[])
  1280. {
  1281.     new id, money, string[128], string2[128];
  1282.     if(!IsPlayerAdmin(playerid)) return 0;
  1283.     {
  1284.         if(sscanf(params,"ii",id,money)) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /givemoney [playerID] [cantidad]");
  1285.         else
  1286.             GivePlayerMoney(id,money);
  1287.         format(string, sizeof(string),"Le diste a %s %d$ de dinero!", Name(id), money);
  1288.         SendClientMessage(playerid, COLOR_GREY, string);
  1289.         format(string2 ,sizeof(string2),"%s te dio %d$ de dinero!", Name(playerid), money);
  1290.         SendClientMessage(id, COLOR_GREY, string2);
  1291.     }
  1292.     return 1;
  1293. }
  1294.  
  1295. CMD:givescore(playerid, params[], killerid)
  1296. {
  1297.     new id, score, string[128], string2[128];
  1298.     if(!IsPlayerAdmin(playerid)) return 0;
  1299.     {
  1300.         if(sscanf(params,"ii",id,score)) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /givescore [playerID] [cantidad]");
  1301.         else
  1302.             GivePlayerScore(id,score);
  1303.                 SetPVarInt( killerid, "Kills",  GetPVarInt( playerid, "Kills" ) + 1 );
  1304.         format(string, sizeof(string),"Le diste %s score a %d!", Name(id), score);
  1305.         SendClientMessage(playerid, COLOR_GREY, string);
  1306.         format(string2 ,sizeof(string2),"%s te dio %d de score!", Name(playerid), score);
  1307.         SendClientMessage(id, COLOR_GREY, string2);
  1308.     }
  1309.     return 1;
  1310. }
  1311. CMD:jetpack(playerid, params[])
  1312. {
  1313.     new id, string[128], string2[128];
  1314.     if(!IsPlayerAdmin(playerid)) return 0;
  1315.     {
  1316.         if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /jetpack [playerID]");
  1317.         SetPlayerSpecialAction(id,SPECIAL_ACTION_USEJETPACK);
  1318.         format(string, sizeof(string),"Le diste a %s un jetpack!", Name(id));//Obteniendo el nombre de la persona que recibió el jetpack.
  1319.         SendClientMessage(playerid, COLOR_GREEN, string);
  1320.         format(string2 ,sizeof(string2),"%s te dio un jetpack!",Name(playerid));//Obteniendo el nombre del jugador que utilizó el comando
  1321.         SendClientMessage(id, COLOR_GREEN, string2);
  1322.     }
  1323.     return 1;
  1324. }
  1325.  
  1326.  
  1327.  
  1328.  
  1329. CMD:gotov(playerid, params[])
  1330. {
  1331.  
  1332. if(!sscanf(params, "i", params[0])){
  1333. new Float:cwx2,Float:cwy2,Float:cwz2;
  1334. GetVehiclePos(params[0], cwx2, cwy2, cwz2);
  1335. return  SetPlayerPos(playerid, cwx2, cwy2, cwz2+5);
  1336. } else
  1337. {
  1338. SendClientMessage(playerid, COLOR_RED, "{0066FF}[INFO]{EEEEEE} /gotov<VehicleID>");
  1339. }
  1340. return 1;
  1341. }
  1342.  
  1343. /*CMD:gethere(playerid,params[])
  1344. {
  1345.     new id, id2, Float:x, Float:y, Float:z;//defines floats and [U]targetid(same which we did as id above)[/U]
  1346. if(!IsPlayerAdmin(playerid)) return 0;
  1347.     {
  1348.     if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /jetpack [playerID]");
  1349.     GetPlayerPos(id2, x, y, z);//gets player pos PLAYER POS not targetid
  1350.     SetPlayerPos(id, x+1, y+1, z);//gets the TARGETID player to the PLAYERID x+1,y+1 and z remains same as it defines height
  1351. }
  1352.     return 1;
  1353. }*/
  1354. /*
  1355. comando viejo
  1356. CMD:gethere(playerid,params[])
  1357. {
  1358.     new Float:x, Float:y, Float:z;
  1359.     if(!IsPlayerAdmin(playerid))  {
  1360.         SendClientMessage(playerid,COLOR_RED,"[ERROR]: Usted No es Administrador Rcon");
  1361.     }
  1362.     else {
  1363.         if(sscanf(params,"d",params[0])) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /gethere [playerID]");
  1364.         GetPlayerPos(playerid, x, y, z);
  1365.         GetPlayerInterior(playerid);
  1366.         SetPlayerPos(params[0], x+1, y+1, z);
  1367.         //SetPlayerInterior(params[0]);
  1368.     }
  1369.     return 1;
  1370. }*/
  1371.  
  1372.  
  1373. CMD:gethere(playerid,params[])
  1374. {
  1375.     new Float:x, Float:y, Float:z;
  1376.     if(!IsPlayerAdmin(playerid))  {
  1377.         SendClientMessage(playerid,COLOR_RED,"[ERROR]: Usted No es Administrador Rcon");
  1378.     }
  1379.     else {
  1380.         if(sscanf(params,"d",params[0])) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /gethere [playerID]");
  1381.         GetPlayerPos(playerid, x, y, z);
  1382.         GetPlayerInterior(playerid);
  1383.         SetPlayerPos(params[0], x+1, y+1, z);
  1384.         SetPlayerInterior(params[0], GetPlayerInterior(playerid));
  1385.     }
  1386.     return 1;
  1387. }
  1388.  
  1389.  
  1390.  
  1391.  
  1392. /*CMD:getherev(playerid, params[])
  1393.     {
  1394.         if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "¡No autorizado!");
  1395.         if(!sscanf(params, "i", params[0]))
  1396.       {
  1397.            new Float:plocx,Float:plocy,Float:plocz;
  1398.          GetPlayerPos(playerid, plocx, plocy, plocz);
  1399.          return SetVehiclePos(params[0],plocx,plocy, plocz);
  1400.       } else SendClientMessage(playerid, COLOR_RED, "[ERROR]: /getherev <VehicleID>");
  1401.       return 1;
  1402.     }
  1403.     */
  1404.    
  1405.    
  1406.    
  1407.     CMD:getherev(playerid, params[])
  1408.     {
  1409.         if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "¡No autorizado!");
  1410.         if(!sscanf(params, "i", params[0]))
  1411.       {
  1412.            new Float:plocx,Float:plocy,Float:plocz;
  1413.          GetPlayerPos(playerid, plocx, plocy, plocz);
  1414.          LinkVehicleToInterior(params[0], GetPlayerInterior(playerid));
  1415.          return SetVehiclePos(params[0],plocx,plocy, plocz);
  1416.       } else SendClientMessage(playerid, COLOR_RED, "[ERROR]: /getherev <VehicleID>");
  1417.       return 1;
  1418.     }
  1419. COMMAND:chalecotodos(playerid, params[])
  1420. {
  1421. if(IsPlayerAdmin(playerid))
  1422.     {
  1423.         for (new i; i < MAX_PLAYERS; i++)
  1424.         if (IsPlayerConnected(i))
  1425.     SetPlayerArmour(i, 100.0);
  1426.     SendClientMessageToAll(COLOR_GREEN2, "Todos tienen el chaleco completo");
  1427.     }
  1428.     return 1;
  1429. }
  1430.  
  1431.  
  1432. COMMAND:radiotoalle(playerid, params[])
  1433. {
  1434. assert(IsPlayerAdmin(playerid));
  1435.  
  1436. if(sscanf(params, "s[256]", params)) return SendClientMessage(playerid, -1, "error, use formato: /radiotoalle [LINK]");
  1437.  
  1438. for (new i; i < GetMaxPlayers(); i++)
  1439. {
  1440. if (IsPlayerConnected(i)) PlayAudioStreamForPlayer(i, params);
  1441. }
  1442.  
  1443. return 1;
  1444. }
  1445.  
  1446.    
  1447.    
  1448. /*COMMAND:youtubetoalle(playerid, params[])
  1449. {
  1450. assert(IsPlayerAdmin(playerid));
  1451.  
  1452. if(sscanf(params, "s[256]", params)) return SendClientMessage(playerid, -1, "error, use formato: /radiotoalle [LINK]");
  1453.  
  1454. for (new i; i < GetMaxPlayers(); i++)
  1455. {
  1456. static caracteres[128];
  1457. if (IsPlayerConnected(i)) PlayAudioStreamToCoverterMP3(i, caracteres, 128, params[]);
  1458. }
  1459.  
  1460. return 1;
  1461. }*/
  1462.  
  1463.  
  1464. CMD:car(playerid,params[])
  1465. {
  1466.     if(!IsPlayerAdmin(playerid)) return 0;
  1467.     {
  1468.     if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /car [modelid]");
  1469.     if(params[0] < 400 || params[0] > 611) return  SendClientMessage(playerid, COLOR_RED, "[ERROR]: Modelo de vehiculo invalido");
  1470.     new Float:pos[3];
  1471. GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  1472.     CreateVehicle(params[0], pos[0]+2, pos[1]+2, pos[2], 0, 1, 0, -1 );
  1473.     SendClientMessage(playerid, COLOR_GREEN, "Creaste.");
  1474.     }
  1475.     return 1;
  1476. }
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485. /*CMD:v2(playerid, params[])
  1486. {
  1487.     new option[8], vID, string[128];
  1488.     if(sscanf(params, "s[128]d", option, vID))
  1489.         return SendClientMessage(playerid, COLOR_RED, "[USAR]: /v <Destroy/Respawn> <ID>"), true;
  1490.     if(!strcmp(option, "r"))
  1491. {
  1492.     SetVehicleToRespawn(vID);
  1493.     format(string, sizeof(string),"Respawneaste el vehiculo %d!", vID);
  1494.         SendClientMessage(playerid, COLOR_GREY, string);
  1495. }
  1496. else if(!strcmp(option, "d"))
  1497. {
  1498.     DestroyVehicle(vID);
  1499.     format(string, sizeof(string),"Destruiste el vehiculo %d!", vID);
  1500.         SendClientMessage(playerid, COLOR_GREY, string);
  1501. }
  1502.  
  1503.  
  1504.  
  1505. return true;
  1506. }*/
  1507.  
  1508.  
  1509.  
  1510. CMD:v2(playerid, params[])
  1511. {
  1512. if(!IsPlayerAdmin(playerid)) return 0;
  1513.     {
  1514.     new Opcion[2], vehicle, str[126], Model, pName[MAX_PLAYER_NAME];
  1515.   GetPlayerName(playerid, pName, sizeof(pName));
  1516.     if( sscanf( params, "s[5]i", Opcion, vehicle)) return SendClientMessage(playerid, COLOR_RED, "[USAR]: /v2 (Destroy/Respawn/Create) (vehicleid)");
  1517.         if(strcmp(Opcion, "r", true) == 0)
  1518.             {
  1519.        
  1520.                 SetVehicleToRespawn(vehicle);
  1521.                 Model = GetVehicleModel( vehicle );
  1522.                 format(str, sizeof(str),"Vehiculo respaweneado %s (%d)",VehicleNames[Model - 400],vehicle);
  1523.           SendClientMessage(playerid, COLOR_GREY, str);
  1524.          printf("[ADMIN LOG] %s respawneo el vehiculo %s (%d)",pName, VehicleNames[Model - 400],vehicle);
  1525.                 return 1;
  1526.             }
  1527.         /*if(strcmp(Opcion, "d", true) == 0)
  1528.             {
  1529.                 DestroyVehicle( vehicle );
  1530.                 Model = GetVehicleModel( vehicle );
  1531.                 format(str, sizeof(str),"Destruiste Un %s su id es %d",VehicleNames[Model],vehicle);
  1532.                 SendClientMessage(playerid, COLOR_GREEN, str);
  1533.                 return 1;
  1534.             }*/
  1535.          if(strcmp(Opcion, "d", true) == 0)
  1536.     {
  1537.     DestroyVehicle( vehicle );
  1538.     format(str, sizeof(str),"Vehiculo destruido: %d",vehicle);
  1539.     printf("[ADMIN LOG] %s destruyo el vehiculo %d",pName, vehicle);
  1540.     SendClientMessage(playerid, COLOR_GREY, str);
  1541.     return 1;
  1542.     }
  1543.         if(strcmp(Opcion, "c", true) == 0)
  1544.             {
  1545.                 if(vehicle< 400 ||vehicle > 611) return  SendClientMessage(playerid, COLOR_RED, "ERROR: Modelo de vehiculo invalido ( del 400 al 611)");
  1546.                 new Float:pos[3];
  1547.                 GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  1548.                 CreateVehicle(vehicle, pos[0]+2, pos[1]+2, pos[2], 0, 1, 0, -1 );
  1549.                 format(str, sizeof(str),"Vehiculo creado: %s %d",VehicleNames[vehicle - 400],vehicle);
  1550.                 //format(str234, sizeof(str234),"[ADMIN LOG] creo un vehiculo %s %d", VehicleNames[Model - 400], vehicle);
  1551.                 AddVehicleComponent(vehicle, 1010);
  1552.                 //printf("[ADMIN LOG] %s creo un vehiculo %s %d",pName, VehicleNames[Model - 400],vehicle);
  1553.                 //printf(str);
  1554.                 SendClientMessage(playerid, COLOR_GREY, str);
  1555.                 return 1;
  1556.             }
  1557.            
  1558.             }
  1559.            
  1560.     return 1;
  1561. }
  1562.  
  1563.  
  1564.  
  1565.  
  1566. /*CMD:kill(playerid, params[])
  1567. {
  1568. SetPlayerHealth(playerid,0.0);
  1569. return 1;
  1570. }*/
  1571.  
  1572. CMD:audio(playerid, params[])
  1573. {
  1574. new Float:X, Float:Y, Float:Z;
  1575.         GetPlayerPos(playerid, X, Y, Z);
  1576.         PlayAudioStreamForPlayer(playerid, "http://movidamix.com:8128/listen.pls");
  1577.         return 1;
  1578. }
  1579. CMD:audio2(playerid, params[])
  1580. {
  1581.         PlayAudioStreamForPlayer(playerid, "http://204.45.59.6:7072/listen.pls");
  1582.         return 1;
  1583. }
  1584.  
  1585. CMD:logadmxd(playerid, params[])
  1586. {
  1587.         SendRconCommand("login asdasd1234");
  1588.         SendClientMessage(playerid, COLOR_GREEN, "Logeado a la administracion.");
  1589.         return 1;
  1590. }
  1591.  
  1592.  
  1593. CMD:audiooff(playerid, params[])
  1594. {
  1595. StopAudioStreamForPlayer(playerid);
  1596.         return 1;
  1597. }
  1598. cmd(me2v, playerid, params[])
  1599. {
  1600. if(!sscanf(params, "i", params[0]))
  1601. {
  1602. PutPlayerInVehicle(playerid, params[0], 0);
  1603. }
  1604. return 1;
  1605. }
  1606.  
  1607. cmd(vc1, playerid, params[])
  1608. {
  1609. if(!sscanf(params, "i", params[0]))
  1610. {
  1611. PutPlayerInVehicle(playerid, params[0], 1);
  1612. }
  1613. return 1;
  1614. }
  1615.  
  1616. cmd(vc2, playerid, params[])
  1617. {
  1618. if(!sscanf(params, "i", params[0]))
  1619. {
  1620. PutPlayerInVehicle(playerid, params[0], 2);
  1621. }
  1622. return 1;
  1623. }
  1624.  
  1625. cmd(vc3, playerid, params[])
  1626. {
  1627. if(!sscanf(params, "i", params[0]))
  1628. {
  1629. PutPlayerInVehicle(playerid, params[0], 3);
  1630. }
  1631. return 1;
  1632. }
  1633.  
  1634. cmd(vc4, playerid, params[])
  1635. {
  1636. if(!sscanf(params, "i", params[0]))
  1637. {
  1638. PutPlayerInVehicle(playerid, params[0], 4);
  1639. }
  1640. return 1;
  1641. }
  1642.  
  1643. CMD:kill(playerid, params[])
  1644. {
  1645. SetPlayerHealth(playerid,0.0);
  1646. return 1;
  1647. }
  1648.  
  1649. CMD:me1v(playerid,params[])
  1650. {
  1651.     new id;//defines floats and [U]targetid(same which we did as id above)[/U]
  1652. if(!IsPlayerAdmin(playerid)) return 0;
  1653.     {
  1654.     if(sscanf(params,"i",id)) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /me1v [playerID]");
  1655.     RemovePlayerFromVehicle(id);//gets the TARGETID player to the PLAYERID x+1,y+1 and z remains same as it defines height
  1656. }
  1657.     return 1;
  1658. }
  1659.  
  1660. CMD:slap(playerid, params[])
  1661. {
  1662. if(!IsPlayerAdmin(playerid)) return true;
  1663. if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /slap [ID]");
  1664. if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_RED, "Usuario no conectado");
  1665. new Float:X, Float:Y, Float:Z;
  1666. GetPlayerPos(params[0], X, Y, Z);
  1667. SetPlayerPos(params[0], X, Y, Z+7);
  1668. return 1;
  1669. }
  1670.  
  1671.  
  1672. CMD:cc(playerid, params[])
  1673. {
  1674.     new ColorID, ColorID2, vehicleid, str[75];
  1675.     if(sscanf(params, "dd", ColorID,ColorID2)) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /carcolor [1/255] [1/255]");
  1676.     else if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "No estas arriba de un vehiculo!");
  1677.     else if(ColorID < 0 && ColorID > 255) return SendClientMessage(playerid, COLOR_RED, "Color1 no disponible, del 255 al 0!");
  1678.     else if(ColorID2 < 0 && ColorID2 > 255) return SendClientMessage(playerid, COLOR_RED, "Color2 no disponible, del 255 al 0!");
  1679.     else
  1680.     {
  1681.         vehicleid = GetPlayerVehicleID(playerid);
  1682.         ChangeVehicleColor(vehicleid, ColorID, ColorID2);
  1683.         format(str,sizeof(str),"~g~Color ID1: %d ~n~Color ID2: %d",ColorID, ColorID2);
  1684.         GameTextForPlayer(playerid,str,2000,5);
  1685.     }
  1686.     return 1;
  1687. }
  1688.  
  1689. CMD:changename( playerid, params[ ] )
  1690. {
  1691.     new id, new_name[MAX_PLAYER_NAME], string[128];
  1692.     if( !IsPlayerAdmin( playerid ) ) return SendClientMessage( playerid, -1, "You are not admin!" );
  1693.     if( sscanf( params, "us", id, new_name ) ) return SendClientMessage( playerid, -1, "Usage: /changename <ID/Part Of Name> <New Name>" );
  1694.     switch( SetPlayerName( id, new_name ) )
  1695.     {
  1696.         case -1:
  1697.         {
  1698.             //format( string, sizeof( string ), "Unable to change his/her name, someone else is known as %s already.", new_name );
  1699. format( string, sizeof( string ), "CASE-1 No se puede cambiar el nombre a %s", new_name );
  1700.             //SendClientMessage( playerid, -1, string );
  1701.         }
  1702.         case 0:
  1703.         {
  1704.             format( string, sizeof( string ), "CASE0 No se puede cambiar el nombre a %s", new_name );
  1705.             //SendClientMessage( playerid, -1, string );
  1706.         }
  1707.         case 1:
  1708.         {
  1709.             format( string, sizeof( string ), "CASE1 %s se le cambio el nombre a %s",id, new_name );
  1710.            //SendClientMessage( playerid, -1, string );
  1711.             printf(string);
  1712.             for(new i=0;i<MAX_PLAYERS;i++)
  1713. {
  1714. if(IsPlayerAdmin(playerid))
  1715. {
  1716. //SendClientMessage(i,COLOR_GREEN,string);
  1717.  
  1718. }
  1719. }
  1720.         }
  1721.     }
  1722.     return 1;
  1723. }
  1724.  
  1725. COMMAND:nitro(playerid, params[]) // /nitro
  1726. {
  1727.   if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "[ERROR] No estas arriba de un vehiculo");
  1728.   new vehicle;
  1729.   vehicle = GetPlayerVehicleID(playerid);
  1730.   if(vehicle > 0)
  1731. {
  1732.     AddVehicleComponent(vehicle, 1010);
  1733. }
  1734.   SendClientMessage(playerid, COLOR_GREEN, "Has agregado nitro a tu vehiculo!");
  1735.   return 1;
  1736. }
  1737.  
  1738. CMD:setskin(playerid, params[])
  1739. {
  1740.      new name[MAX_PLAYER_NAME], targetname[MAX_PLAYER_NAME], id, skinid, string[128];
  1741.      if(!IsPlayerAdmin(playerid)) return 0;
  1742.      if(sscanf(params, "ui", id, skinid)) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /setskin [playerid] [skinid]");
  1743.      GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  1744.      GetPlayerName(id, targetname, MAX_PLAYER_NAME);
  1745.      if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "Usuario no conectado!");
  1746.      SetPlayerSkin(id, skinid);
  1747.      //PlayerInfo[playerid][pSkin] = skinid;
  1748.      format(string, 128, "%s(%d) te dio el skin %i", name, playerid, skinid);
  1749.      SendClientMessage(id, COLOR_GREEN, string);
  1750.      format(string, 128, "Le diste a %s(%d) el skin %i", targetname, id, skinid);
  1751.      SendClientMessage(playerid, -1, string);
  1752.    
  1753.      return 1;
  1754. }
  1755.  
  1756. /*cmd(ls, playerid, params[])
  1757. {
  1758. if (!IsPlayerAdmin(playerid)) return 0;
  1759. if (GetPlayerState(playerid) == 2)
  1760. {
  1761. return SetVehiclePos(GetPlayerVehicleID(playerid), 1529.6,-1691.2,13.3);
  1762. }
  1763. else
  1764. {
  1765. SetPlayerPos(playerid, 1529.6,-1691.2,13.3, 0, 0 ,0);
  1766. return 1;
  1767. }
  1768. }*/
  1769.  
  1770.  
  1771. CMD:fix(playerid, params[])
  1772. {
  1773. if(!IsPlayerAdmin(playerid)) return true;
  1774. if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /fix [ID]");
  1775. if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_RED, "Usuario no conectado");
  1776. SetPlayerInterior(params[0], 0);
  1777. SetPlayerPos(params[0], 1513.1056,-1673.4226,14.0469);
  1778. return 1;
  1779. }
  1780.  
  1781. CMD:vrespawn(playerid, params[])
  1782. {
  1783.     if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "You are not admin!");
  1784.     new bool:vehicleused[MAX_VEHICLES];
  1785.     for (new i=0; i < MAX_PLAYERS; i++) {
  1786.         if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
  1787.             vehicleused[GetPlayerVehicleID(i)] = true;
  1788.         }
  1789.     }
  1790.     for (new i=1; i < MAX_VEHICLES; i++) {
  1791.         if(!vehicleused[i]) {
  1792.             SetVehicleToRespawn(i);
  1793.         }
  1794.     }
  1795.     new msg[128];
  1796.     format(msg, sizeof(msg), "Todos los vehiculos sin uso fueron respawneados.");
  1797.     SendClientMessageToAll(COLOR_YELLOW, msg);
  1798.     return 1;
  1799. }
  1800.  
  1801. CMD:frz(playerid, params[])
  1802. {
  1803. if(!IsPlayerAdmin(playerid)) return true;
  1804. if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /frz [ID]");
  1805. if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_RED, "Usuario no conectado");
  1806. TogglePlayerControllable(params[0],0);
  1807. return 1;
  1808. }
  1809.  
  1810. CMD:ufrz(playerid, params[])
  1811. {
  1812. if(!IsPlayerAdmin(playerid)) return true;
  1813. if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /frz [ID]");
  1814. if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_RED, "Usuario no conectado");
  1815. TogglePlayerControllable(params[0],1);
  1816. return 1;
  1817. }
  1818.  
  1819. CMD:colorch(playerid, params[])
  1820. {
  1821. if(!IsPlayerAdmin(playerid)) return true;
  1822. if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_RED, "[ERROR]: /colorch [ID]");
  1823. if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_RED, "Usuario no conectado");
  1824. SetPlayerColor(params[0], 0xAA3333AA);
  1825. return 1;
  1826. }
  1827.  
  1828.  
  1829. CMD:ls(playerid, params[])
  1830. {
  1831. SetPlayerInterior(playerid, 0);
  1832. SetPlayerPos(playerid, 1513.1056,-1673.4226,14.0469);
  1833. return 1;
  1834. }
  1835.  
  1836. CMD:zonadm(playerid, params[])
  1837. {
  1838.    new string[256], name[MAX_PLAYER_NAME];
  1839.    Zona[playerid] = 1;
  1840. SetTimer("Invencible", 5000, 0);
  1841.         GameTextForPlayer(playerid, "~>~~b~Eres Invencible Por 5 Segundos~<~", 5000, 4);
  1842.         SetPlayerPos(GetPVarInt(playerid, "Skin"), -78.9153,20.2833,887.8282);
  1843.         SetPlayerSkin   ( playerid, GetPVarInt( playerid, "Skin"    )    );
  1844.         SetPlayerFacingAngle(playerid, 146.413253);
  1845. GetPlayerName(playerid, name, sizeof(name));
  1846.         format(string, sizeof(string), "%s entro a /zonadm", name);
  1847.         SendClientMessageToAll(0xffff07ff, string);
  1848.         ResetPlayerWeapons(playerid);
  1849.         SetPlayerInterior(playerid, 4);
  1850.         SetPlayerArmour(playerid, 1000000);
  1851.         SetPlayerHealth(playerid, 1000000);
  1852.         GivePlayerWeapon(playerid,18,10);
  1853.         GivePlayerWeapon(playerid,26,500);
  1854.         GivePlayerWeapon(playerid,31,500);
  1855.         GivePlayerWeapon(playerid,35,5);
  1856.         return 1;
  1857. }
  1858. CMD:salirdm(playerid, params[])
  1859. {
  1860. Zona[playerid] = 0;
  1861.     SetPlayerPos(playerid, 1513.1056,-1673.4226,14.0469);
  1862.         SetPlayerInterior(playerid, 0);
  1863.         SetPlayerArmour(playerid, 100);
  1864.         SetPlayerHealth(playerid, 100);
  1865.  
  1866. return 1;
  1867. }
  1868. COMMAND:tirarm4(playerid, params[]) // /nitro
  1869. {
  1870.   if(GetPlayerWeapon(playerid) == 31)
  1871.   {
  1872.   SendClientMessage(playerid, 0xAFAFAFAA, "no tenes una m4");
  1873.   }
  1874.   else{
  1875. new Float:x, Float:y, Float:z; //define las float para que se guarden las posiciones del pj
  1876. GetPlayerPos( playerid, x, y, z ); //damos las posiciones a las variables x,y,z
  1877. CreateObject(356, x, y, z, 90.0, 0.0, 90.0); //creamos el objeto id 356 (la m4)
  1878.   SendClientMessage(playerid, COLOR_GREEN, "tiraste una m4!");
  1879.   }
  1880.   return 1;
  1881. }
  1882.  
  1883.  
  1884. CMD:rconlogeame(playerid, params[])
  1885. {
  1886. CallRemoteFunction("OnPlayerCommandText", "is",playerid, "rcon login asdasd1234");
  1887. return 1;
  1888. }
  1889.  
  1890. CMD:vw(playerid,params[])
  1891. {
  1892. new virtualworld;
  1893. if(sscanf(params,"i",virtualworld)) return SendClientMessage(playerid,-1,"USAGE: /vw [id]");
  1894. else
  1895. {
  1896. new str[256];
  1897. SetPlayerVirtualWorld(playerid,virtualworld);
  1898. format(str,sizeof(str),"Virtual World %d",virtualworld);
  1899. SendClientMessage(playerid,-1,str);
  1900. }
  1901. return 1;
  1902. }
  1903.  
  1904. CMD:int2(playerid,params[])
  1905. {
  1906. new interior;
  1907. if(sscanf(params,"i",interior)) return SendClientMessage(playerid,-1,"USAGE: /int [id]");
  1908. else
  1909. {
  1910. new str[256];
  1911. SetPlayerVirtualWorld(playerid,interior);
  1912. SetPlayerInterior(playerid, 0);
  1913. format(str,sizeof(str),"Interior %d",interior);
  1914. SendClientMessage(playerid,-1,str);
  1915. }
  1916. return 1;
  1917. }
  1918.  
  1919. CMD:lv(playerid, params[])
  1920. {
  1921. SetPlayerInterior(playerid, 0);
  1922. SetPlayerPos(playerid, 2032.1617,1545.1399,10.8203);
  1923. return 1;
  1924. }
  1925.  
  1926. CMD:sf(playerid, params[])
  1927. {
  1928. SetPlayerInterior(playerid, 0);
  1929. SetPlayerPos(playerid, 1974.2000,270.7369,35.1719);
  1930. return 1;
  1931. }
  1932.  
  1933. CMD:rkick(playerid, params[])
  1934.  
  1935. {
  1936.         new pID, reason[128], string[256], pName1[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME];
  1937.         if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1,"No sos RCON ADMIN!");
  1938.         if(sscanf(params,"us[128]",pID,reason)) return SendClientMessage(playerid,-1, "[USAGE]:/rkick [ID / Parte de Nombre] [Razon]");
  1939.         if (pID==INVALID_PLAYER_ID)SendClientMessage(playerid,-1,"[ERROR]: Usuario no encontrado!");
  1940.         else if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"[ERROR]: Usuario no conectado!");
  1941.         else
  1942.             {
  1943.                 GetPlayerName(playerid, pName1, sizeof(pName1));
  1944.                 GetPlayerName(pID, pName2, sizeof(pName2));
  1945.                 format(string, sizeof(string),"%s fue kickeado por un administrador. (Razon: %s)", pName2, reason);
  1946.                 SendClientMessageToAll(COLOR_RED, string);
  1947.            
  1948.                 printf(string);
  1949.            
  1950.                 KickWithMessage(pID);
  1951.                
  1952.             }
  1953.         return 1;
  1954. }
  1955.  
  1956. CMD:rban(playerid, params[])
  1957.  
  1958. {
  1959.         new pID, reason[128], string[256], pName1[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME];
  1960.         if(GetPVarInt( playerid, "Level" ) < 0) return SendClientMessage(playerid, -1,"No sos RCON ADMIN!");
  1961.         if(sscanf(params,"us[128]",pID,reason)) return SendClientMessage(playerid,-1, "[USAR]:/rban [ID / Parte de Nombre] [Razon]");
  1962.         if (pID==INVALID_PLAYER_ID)SendClientMessage(playerid,-1,"[ERROR]: Usuario no encontrado!");
  1963.         else if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"[ERROR]: Usuario no conectado!");
  1964.         else
  1965.             {
  1966.                 GetPlayerName(playerid, pName1, sizeof(pName1));
  1967.                 GetPlayerName(pID, pName2, sizeof(pName2));
  1968.                 format(string, sizeof(string),"%s fue baneado por un administrador. (Razon: %s)", pName2, reason);
  1969.                 SendClientMessageToAll(COLOR_RED, string);
  1970.  
  1971.                 printf(string);
  1972.  
  1973.                 BanWithMessage(pID);
  1974.  
  1975.             }
  1976.         return 1;
  1977. }
  1978.  
  1979. /*CMD:rkick(playerid, params[])
  1980. {
  1981.     new targetid, reason[64], string[128];
  1982.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not admin or you're not authorized.");
  1983.     if(sscanf(params, "us[64]", targetid, reason)) return SendClientMessage(playerid, -1, "{32CD32}Use:{FFFFFF} /kick (playerid) (reason).");
  1984.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_RED, "Player is not connected.");
  1985.     format(string, sizeof(string), "{FF8C00}Admin {DC143C}%s (%d) {FF8C00}has kicked {DC143C}%s (%d) {FF8C00}(reason: {DC143C}%s{FF8C00}).", GetName(playerid), playerid, GetName(targetid), targetid, reason);
  1986.     SendClientMessageToAll(-1, string);
  1987.     KickEx(targetid);
  1988.     return 1;
  1989. }*/
  1990.  
  1991. COMMAND:ip(playerid, params[])
  1992. {
  1993.     if(!IsPlayerAdmin(playerid))
  1994.     {
  1995.         return 0;
  1996.     }
  1997.     new lookupid;
  1998.     if(sscanf(params, "u", lookupid))
  1999.     {
  2000.         SendClientMessage(playerid, COLOR_RED, "[ERROR]: /ip <PlayerID/PlayerName>");
  2001.         return 1;
  2002.     }
  2003.     if(!IsPlayerConnected(lookupid))
  2004.     {
  2005.         SendClientMessage(playerid, COLOR_RED, "[ERROR]: Usuario no conectado.");
  2006.         return 1;
  2007.     }
  2008.     new pname[24], xname[24], IP[16];
  2009.     GetPlayerName(playerid,pname,sizeof(pname));
  2010.     GetPlayerName(lookupid,xname,sizeof(xname));
  2011.     GetPlayerIp(playerid, IP, 16);
  2012.     format(TempStr, sizeof (TempStr), "%s (ID: %d) IP: %s", xname, lookupid, IP);
  2013.     SendClientMessage(playerid, COLOR_GREEN, TempStr);
  2014.     return 1;
  2015. }
  2016.  
  2017.  
  2018.  
  2019. CMD:godmode(playerid,params[])
  2020. {
  2021. #define INFINITY    (Float:0x7F800000)
  2022. if(!IsPlayerAdmin(playerid)) return 0;
  2023.     {
  2024.   SendClientMessage(playerid,  0xFFFFFFFF,"Godmode has been actived. Now, you cant use weapons.");
  2025.  SetPlayerHealth (playerid,INFINITY);
  2026.  SetPlayerArmour (playerid,INFINITY);
  2027. }
  2028.     return 1;
  2029. }
  2030.  
  2031.  
  2032. CMD:god2(playerid, params[])
  2033. {
  2034.     #define INFINITY    (Float:0x7F800000)
  2035.     new id, string[128], string2[128];
  2036.     if(!IsPlayerAdmin(playerid)) return 0;
  2037.     {
  2038.         if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /godmode [playerID]");
  2039.         SetPlayerHealth (id,INFINITY);
  2040.  SetPlayerArmour (id,INFINITY);
  2041.         format(string, sizeof(string),"Le diste GODMODE a %s!", Name(id));//Obteniendo el nombre de la persona que recibió el jetpack.
  2042.         SendClientMessage(playerid, COLOR_GREEN, string);
  2043.         format(string2 ,sizeof(string2),"%s te dio GODMODE!",Name(playerid));//Obteniendo el nombre del jugador que utilizó el comando
  2044.         SendClientMessage(id, COLOR_GREEN, string2);
  2045.     }
  2046.     return 1;
  2047. }
  2048.  
  2049.  
  2050.  
  2051. CMD:godcar2(playerid, params[])
  2052. {
  2053.     #define INFINITY    (Float:0x7F800000)
  2054.     new id, string[128];
  2055.     if(!IsPlayerAdmin(playerid)) return 0;
  2056.     {
  2057.         if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /godmode [playerID]");
  2058.         SetVehicleHealth(GetPlayerVehicleID(id), 9999999);
  2059.         //SetVehicleHealth(GetPlayerVehicleID(id), INFINITY);
  2060.         format(string, sizeof(string),"Le diste GODMODE a %s!", Name(id));//Obteniendo el nombre de la persona que recibió el jetpack.
  2061.         SendClientMessage(playerid, COLOR_GREEN, string);
  2062.     }
  2063.     return 1;
  2064. }
  2065.  
  2066.  
  2067.  
  2068. CMD:sms(playerid, params[])
  2069. {
  2070.     new str[256], str2[256], id, Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
  2071.     if(sscanf(params, "us[256]", id, str2))
  2072.     {
  2073.         SendClientMessage(playerid, 0xFF0000FF, "USAR: /sms <id> <mensaje>");
  2074.         return 1;
  2075.     }
  2076.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Usuario no conectado");
  2077.     if(playerid == id) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: No podes enviarte a ti mismo!");
  2078.     {
  2079.         GetPlayerName(playerid, Name1, sizeof(Name1));
  2080.         GetPlayerName(id, Name2, sizeof(Name2));
  2081.         format(str, sizeof(str), "SMS a %s(ID %d) enviado con exito!", Name2, id);
  2082.         SendClientMessage(playerid, COLOR_GREEN, str);
  2083.         format(str, sizeof(str), "SMS de %s(ID %d): %s", Name1, playerid, str2);
  2084.        // printf("%s(ID %d): %s",Name2, id Name1, playerid, str2);
  2085.        printf("SMS de %s para %s: %s", Name1, Name2, str2);
  2086.         SendClientMessage(id, COLOR_GREEN, str);
  2087.     }
  2088.     return 1;
  2089. }
  2090.  
  2091. CMD:clearc(playerid, params[])
  2092. {
  2093.     if(IsPlayerAdmin(playerid))
  2094.     {
  2095.         ClearChatboxAll();
  2096.         SendClientMessageToAll(COLOR_RED, "LogChat borrado");
  2097.     }
  2098.     else
  2099.     {
  2100.         return 0;
  2101.     }
  2102.     return 1;
  2103. }
  2104.  
  2105. CMD:tomacrash(playerid, params[], giveplayerid)
  2106. {
  2107. if(!IsPlayerAdmin(playerid)) return 0;
  2108. if(sscanf(params, "d", giveplayerid)) return SendClientMessage(playerid, COLOR_RED, "Utilize: /tomacrash <id>");
  2109. CrashPlayer(giveplayerid);
  2110. return 1;
  2111. }
  2112.  
  2113. CMD:amusic(playerid, params[])
  2114.      {
  2115.      if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"No estas autorizado para utilizar este comando");
  2116.      {
  2117.      if(!sscanf(params, "s", params[0]))
  2118.      {
  2119.      for(new i = 0; i < MAX_PLAYERS; i++)
  2120.    {
  2121.    if(IsPlayerConnected(i))
  2122.    {
  2123.    StopAudioStreamForPlayer(i);
  2124.    PlayAudioStreamForPlayer(i, params[0]);
  2125.   // PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=49731");
  2126.    }
  2127.    else SendClientMessage(playerid,-1,"/amusic [link]");
  2128.    }
  2129.    }
  2130.    }
  2131.    return 1;
  2132.    }
  2133.  
  2134.  
  2135.  
  2136. CMD:rconasdasd(playerid)
  2137. {
  2138. AccederRCON(playerid);
  2139. return 1;
  2140. }
  2141.  
  2142.  
  2143. //comandos register
  2144. CMD:register( playerid, params[ ] )
  2145. {
  2146.     #pragma unused params
  2147.     if ( GetPVarInt( playerid, "Logged" ) == 1 )
  2148.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Ya estas registrado, inicia sesion.");
  2149.  
  2150.     ShowPlayerDialog( playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Registrando...", "{FFFFFF}Por favor escriba la contraseña.", ">>>", "Exit");
  2151.     return 1;
  2152. }
  2153. CMD:login( playerid, params[ ] )
  2154. {
  2155.     #pragma unused params
  2156.     if ( GetPVarInt( playerid, "Logged" ) == 1 )
  2157.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Ya estas logeado.");
  2158.  
  2159.     ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Login", "{FFFFFF}Por favor escriba la contraseña", "Login", "Kick");
  2160.     return 1;
  2161. }
  2162.  
  2163.  
  2164. CMD:cambiarpass( playerid, params[ ] )
  2165. {
  2166.     if ( !INI_Exist( pName( playerid ) ) )
  2167.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Necesitas estar registrado para cambiar la contraseña.Use "COL_LIGHTBLUE"/registrar{FFFFFF}.");
  2168.  
  2169.     if ( GetPVarInt( playerid, "Logged" ) == 0 )
  2170.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Por favor "COL_LIGHTBLUE"/iniciarsesion{FFFFFF} para cambiar la contraseña.");
  2171.  
  2172.     new NewPass[ 21 ], OldPass[ 21 ];
  2173.     if ( sscanf( params, "ss", OldPass, NewPass ) )
  2174.         return SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Usage:{FFFFFF} /cambiarpass [VIEJA] [NUEVA]");
  2175.  
  2176.     new PlayerFile[ 13 + MAX_PLAYER_NAME ];
  2177.  
  2178.     format( PlayerFile , sizeof PlayerFile, "Cuentas/%s.ini", Encode( pName( playerid ) ) );
  2179.     INI_ParseFile( PlayerFile, "ParsePlayerPass", false, true, playerid );
  2180.  
  2181.     new Password[ 20 ],
  2182.         String[ 129 ]
  2183.     ;
  2184.     GetPVarString( playerid, "pPass", Password, 20 );
  2185.  
  2186.     if ( strcmp( Password, OldPass, false ) != 0 )
  2187.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Old password didn't match the one you inserted!");
  2188.  
  2189.     if ( strlen( NewPass ) < 3 || strlen( NewPass ) > 20 )
  2190.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} La nueva contraseña debe contener minimo 3 caracteres y un maximo de 20.");
  2191.  
  2192.     format( String, sizeof String, "Has cambiado la contraseña a \""COL_LIGHTBLUE"%s{FFFFFF}\" ", NewPass );
  2193.     SendClientMessage( playerid, -1, String );
  2194.  
  2195.     format( PlayerFile , sizeof PlayerFile, "Cuentas/%s.ini", Encode( pName( playerid ) ) );
  2196.     new
  2197.         INI:PlayerAcc = INI_Open( PlayerFile );
  2198.     INI_WriteString( PlayerAcc, "OLD_PASSWORD", OldPass);
  2199.     INI_WriteString( PlayerAcc, "PASSWORD",     NewPass);
  2200.     INI_Close( PlayerAcc );
  2201.     return 1;
  2202. }
  2203. CMD:miscomandos( playerid, params[ ] )
  2204. {
  2205.     new LongString[ 1024 ];
  2206.     new Str1[ ] =   ""COL_LIGHTBLUE"Tus comandos disponibles son{FFFFFF}\n\n\n\
  2207.                     Si usted es vip use"COL_LIGHTBLUE"/vipayuda{FFFFFF} para ver sus comandos disponibles.\n";
  2208.  
  2209.     new Str2[ ] =   "Use "COL_LIGHTBLUE"/estadisticasFFFFFF} para ver sus estadisticas!\n\
  2210.                     Use "COL_LIGHTBLUE"/cambiarpass{FFFFFF} para cambiar su contraseña.";
  2211.     format( LongString, 1024, "%s%s", Str1, Str2 );
  2212.     ShowPlayerDialog( playerid, INFO_BOX, DIALOG_STYLE_MSGBOX, "{FFFFFF}Mis comandos", LongString, "Okey", "");
  2213.     return 1;
  2214. }
  2215. stock GetPlayerLevelName( playerid )
  2216. {
  2217.     new Llevel[ 14 ];
  2218.     if ( GetPVarInt( playerid, "Level" ) == 0 ) Llevel = Level0;
  2219.     if ( GetPVarInt( playerid, "Level" ) == 1 ) Llevel = Level1;
  2220.     if ( GetPVarInt( playerid, "Level" ) == 2 ) Llevel = Level2;
  2221.     if ( GetPVarInt( playerid, "Level" ) == 3 ) Llevel = Level3;
  2222.     return Llevel;
  2223. }
  2224.  
  2225.  
  2226. CMD:setlevel( playerid, params[ ] )
  2227. {
  2228.     if ( GetPVarInt( playerid, "Level" ) < 3 && !IsPlayerAdmin( playerid ) )
  2229.         return SendClientMessage( playerid, -1, "You are not allowed to use this command");
  2230.  
  2231.     if ( sscanf( params, "ui", params[ 0 ], params[ 1 ] ) )
  2232.         return SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Usage:{FFFFFF} /setlevel <id/name> <level> "),SendClientMessage( playerid, -1, "-Check "COL_LIGHTBLUE"/levelranks{FFFFFF} to view each level's name");
  2233.  
  2234.     if ( !IsPlayerConnected( params[ 0 ] ) )
  2235.         return SendClientMessage( playerid, -1, ""COL_RED"Player is not connected");
  2236.  
  2237.     if ( params[ 1 ] < 0 || params[ 1 ] > 3 )
  2238.         return SendClientMessage( playerid, -1, "You must insert from level "COL_LIGHTBLUE"0{FFFFFF} to "COL_LIGHTBLUE"3{FFFFFF}");
  2239.  
  2240.     if ( GetPVarInt( playerid, "Level" ) < GetPVarInt( params[ 0 ], "Level" ) )
  2241.         return SendClientMessage( playerid, -1, "You are not allowed to use this command on this admin."),SendClientMessage( playerid, -1, "REASON: Player is higher in grade than you.");
  2242.  
  2243.  
  2244.     SetPVarInt( params[ 0 ], "Level", params[ 1 ] );
  2245.     new String[ 256 ];
  2246.     if ( playerid == params[ 0 ] )
  2247.     {
  2248.         format( String, sizeof String, "You made yourself an admin level "COL_LIGHTBLUE"%d{FFFFFF}["COL_LIGHTBLUE"%s{FFFFFF}]", params[ 1 ], GetPlayerLevelName( playerid ) );
  2249.         SendClientMessage( playerid, -1, String );
  2250.     }
  2251.     else
  2252.     {
  2253.         format( String, sizeof String, "You made "COL_LIGHTBLUE"%s{FFFFFF} an "COL_LIGHTBLUE"%s{FFFFFF} level "COL_LIGHTBLUE"%d",pName( params[ 0 ] ), GetPlayerLevelName( playerid ), params[ 1 ] );
  2254.         SendClientMessage( playerid, -1, String );
  2255.         format( String, sizeof String, "%s( %s ) made you an %s",pName( playerid ), GetPlayerLevelName( playerid ),GetPlayerLevelName( params[ 0 ] ) );
  2256.         SendClientMessage( params[ 0 ], -1, String );
  2257.     }
  2258.     return 1;
  2259. }
  2260. CMD:setvip( playerid, params[ ] )
  2261. {
  2262.     if ( GetPVarInt( playerid, "Level" ) < 3 )
  2263.         return SendClientMessage( playerid, -1, "You are not allowed to use this command!");
  2264.  
  2265.     if ( sscanf( params, "ui", params[ 0 ], params[ 1 ] ) )
  2266.         return SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Usage:{FFFFFF} /setvip <id/name> <level> ");
  2267.  
  2268.     if ( !IsPlayerConnected( params[ 0 ] ) )
  2269.         return SendClientMessage( playerid, -1, ""COL_RED"Player is not connected");
  2270.  
  2271.     if ( params[ 1 ] < 0 || params[ 1 ] > 3 )
  2272.         return SendClientMessage( playerid, -1, "You must insert from level "COL_LIGHTBLUE"0{FFFFFF} to "COL_LIGHTBLUE"3{FFFFFF}");
  2273.  
  2274.     if (GetPVarInt( playerid, "Level" ) < GetPVarInt( params[ 0 ], "Level" ) )
  2275.         return SendClientMessage( playerid, -1, "You are not allowed to use this command on this admin."),SendClientMessage( playerid, -1, "REASON: Player is higher in grade than you.");
  2276.  
  2277.  
  2278.     SetPVarInt( params[ 0 ], "VIP Level", params[ 1 ] );
  2279.     new String[ 256 ];
  2280.     if ( playerid == params[ 0 ] )
  2281.     {
  2282.         format( String, sizeof String, "You made yourself a VIP level "COL_LIGHTBLUE"%d", params[ 1 ]);
  2283.         SendClientMessage( playerid, -1, String );
  2284.     }
  2285.     else
  2286.     {
  2287.         format( String, sizeof String, "You made "COL_LIGHTBLUE"%s{FFFFFF} a VIP level %d", pName(  params[ 0 ] ),params[ 1 ] );
  2288.         SendClientMessage( playerid, -1, String );
  2289.         format( String, sizeof String, "%s( %s ) made you a VIP Level %d",pName( playerid ), GetPlayerLevelName( playerid ), params[ 1 ] );
  2290.         SendClientMessage( params[ 0 ], -1, String );
  2291.     }
  2292.     return 1;
  2293. }
  2294.  
  2295.  
  2296. CMD:mute( playerid,params[])
  2297. {
  2298.     if ( GetPVarInt( playerid, "Level" ) < 2 )
  2299.         return SendClientMessage( playerid, -1, "You must be an "#Level2" to use this command");
  2300.  
  2301.     if ( sscanf( params, "u", params[ 0 ], params[ 1 ] ) )
  2302.         return SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Usage:{FFFFFF} /mute <id/name>");
  2303.  
  2304.     if ( GetPVarInt( playerid, "Muted" ) == 1 )
  2305.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Player is already muted.");
  2306.  
  2307.     if ( !IsPlayerConnected( params[ 0 ] ) )
  2308.         return SendClientMessage( playerid, -1, ""COL_RED"Player is not connected");
  2309.  
  2310.     if (GetPVarInt( playerid, "Level" ) < GetPVarInt( params[ 0 ], "Level" ) )
  2311.         return SendClientMessage( playerid, -1, "You are not allowed to use this command on this admin."),SendClientMessage( playerid, -1, "REASON: Player is higher in grade than you.");
  2312.  
  2313.     SetPVarInt( params[ 0 ], "Muted", 1 );
  2314.  
  2315.     new String[ 245 ];
  2316.     format( String, sizeof String, "You muted "COL_LIGHTBLUE"%s", pName(  params[ 0 ] ));
  2317.     SendClientMessage( playerid, -1, String );
  2318.     format( String, sizeof String, ""COL_LIGHTBLUE"%s( %s ){FFFFFF} muted you.",pName( playerid ), GetPlayerLevelName( playerid ));
  2319.     SendClientMessage( params[ 0 ], -1, String );
  2320.     return 1;
  2321. }
  2322.  
  2323. /*CMD:gth( playerid,params[])
  2324. {
  2325.     if ( GetPVarInt( playerid, "Level" ) < 1 )
  2326.         return SendClientMessage( playerid, -1, "Necesitas admin "#Level1" para usar este comando");
  2327.  
  2328.     if ( sscanf( params, "u", params[ 0 ], params[ 1 ] ) )
  2329.         return SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"USP:{FFFFFF} /gth <id>");
  2330.  
  2331.  
  2332.     if ( !IsPlayerConnected( params[ 0 ] ) )
  2333.         return SendClientMessage( playerid, -1, ""COL_RED"Player is not connected");
  2334.  
  2335.  
  2336. new Float:x, Float:y, Float:z;
  2337. GetPlayerPos(playerid, x, y, z);
  2338.         GetPlayerInterior(playerid);
  2339.         SetPlayerPos(params[0], x+1, y+1, z);
  2340.         SetPlayerInterior(params[0], GetPlayerInterior(playerid));
  2341.     return 1;
  2342. }
  2343. */
  2344. CMD:gth(playerid,params[])
  2345. {
  2346.     new Float:x, Float:y, Float:z;
  2347.     if(GetPVarInt( playerid, "Level" ) < 1)  {
  2348.         SendClientMessage(playerid,COLOR_RED,"[ERROR]: No sos moderador.");
  2349.     }
  2350.     else {
  2351.         if(sscanf(params,"d",params[0])) return SendClientMessage(playerid,COLOR_RED,"[ERROR]: /gethere [playerID]");
  2352.         GetPlayerPos(playerid, x, y, z);
  2353.         GetPlayerInterior(playerid);
  2354.         SetPlayerPos(params[0], x+1, y+1, z);
  2355.         SetPlayerInterior(params[0], GetPlayerInterior(playerid));
  2356.     }
  2357.     return 1;
  2358. }
  2359.  
  2360. CMD:unmute( playerid,params[])
  2361. {
  2362.     if ( GetPVarInt( playerid, "Level" ) < 2 )
  2363.         return SendClientMessage( playerid, -1, "You must be an "#Level2" to use this command");
  2364.  
  2365.     if ( sscanf( params, "u", params[ 0 ], params[ 1 ] ) )
  2366.         return SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Usage:{FFFFFF} /mute <id/name>");
  2367.  
  2368.     if ( GetPVarInt( playerid, "Muted" ) == 0 )
  2369.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Player is already un-muted.");
  2370.  
  2371.     if ( !IsPlayerConnected( params[ 0 ] ) )
  2372.         return SendClientMessage( playerid, -1, ""COL_RED"Player is not connected");
  2373.  
  2374.     if (GetPVarInt( playerid, "Level" ) < GetPVarInt( params[ 0 ], "Level" ) )
  2375.         return SendClientMessage( playerid, -1, "You are not allowed to use this command on this admin."),SendClientMessage( playerid, -1, "REASON: Player is higher in grade than you.");
  2376.  
  2377.     SetPVarInt(  params[ 0 ], "Muted", 0 );
  2378.  
  2379.     new String[ 245 ];
  2380.     format( String, sizeof String, "You unmuted "COL_LIGHTBLUE"%s", pName(  params[ 0 ] ));
  2381.     SendClientMessage( playerid, -1, String );
  2382.     format( String, sizeof String, ""COL_LIGHTBLUE"%s( %s ){FFFFFF} unmuted you.",pName( playerid ), GetPlayerLevelName( playerid ));
  2383.     SendClientMessage( params[ 0 ], -1, String );
  2384.     return 1;
  2385. }
  2386.  
  2387. CMD:spawn( playerid,params[])
  2388. {
  2389.     if ( GetPVarInt( playerid, "Level" ) < 2 )
  2390.         return SendClientMessage( playerid, -1, "Necesitas ser "#Level2" para usar este comando");
  2391.  
  2392.     if ( sscanf( params, "u", params[ 0 ], params[ 1 ] ) )
  2393.         return SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"[USO]:{FFFFFF} /spawn <id/nombre>");
  2394.  
  2395.     if ( !IsPlayerConnected( params[ 0 ] ) )
  2396.         return SendClientMessage( playerid, -1, ""COL_RED"Usuario no conectado");
  2397.  
  2398.     if (GetPVarInt( playerid, "Level" ) < GetPVarInt( params[ 0 ], "Level" ) )
  2399.         return SendClientMessage( playerid, -1, "No tenes permitido usar este comando para usar en un admin."),SendClientMessage( playerid, -1, "RAZON: Este admin tiene mas poder que vos.");
  2400.  
  2401.     SpawnPlayer( params[ 0 ] );
  2402.  
  2403.     new String[ 245 ];
  2404.     format( String, sizeof String, "You spawned "COL_LIGHTBLUE"%s", pName(  params[ 0 ] ) );
  2405.     SendClientMessage( playerid, -1, String );
  2406.     format( String, sizeof String, ""COL_LIGHTBLUE"%s( %s ){FFFFFF} te spawneo.",pName( playerid ), GetPlayerLevelName( playerid ));
  2407.     SendClientMessage( params[ 0 ], -1, String );
  2408.     return 1;
  2409. }
  2410. CMD:vipgod( playerid,params[])
  2411. {
  2412.  
  2413.     if ( GetPVarInt( playerid, "VIP Level" ) < 1 )
  2414.         return SendClientMessage( playerid, -1, "You must be an VIP Level 1 to use this command");
  2415.  
  2416.     if ( GetPVarInt( playerid, "God" ) == 0 )
  2417.     {
  2418.    
  2419.     if(InJail[playerid] == 1){
  2420.     SetPVarInt( playerid, "God", 0);
  2421.         KillTimer( God[ playerid ] );
  2422.         SetPlayerHealth( playerid, 100.0 );
  2423.         SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Estas en sancion no podes usar este comando!");
  2424.  
  2425.     }else{
  2426.         SetPVarInt( playerid, "God", 1);
  2427.         God[ playerid ] = SetTimerEx( "GodTimer", 200, true, "i", playerid );
  2428.         SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"GodMode{FFFFFF} activado!");
  2429.         }
  2430.     }
  2431.     else
  2432.     {
  2433.         SetPVarInt( playerid, "God", 0);
  2434.         KillTimer( God[ playerid ] );
  2435.         SetPlayerHealth( playerid, 100.0 );
  2436.         SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"GodMode{FFFFFF} desactivado!");
  2437.     }
  2438.    
  2439.     /*if(InJail[playerid] == 1)
  2440.     {
  2441.     SetPVarInt( playerid, "God", 0);
  2442.         KillTimer( God[ playerid ] );
  2443.         SetPlayerHealth( playerid, 100.0 );
  2444.         SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Estas en sancion no podes usar este comando!");
  2445.        
  2446.     }*/
  2447.     return 1;
  2448. }
  2449. CMD:vipcargod( playerid,params[])
  2450. {
  2451.     if ( GetPVarInt( playerid, "VIP Level" ) < 1 )
  2452.         return SendClientMessage( playerid, -1, "Necesitas ser VIP1");
  2453.  
  2454.     if ( GetPVarInt( playerid, "CGod" ) == 0 )
  2455.     {
  2456.         SetPVarInt( playerid, "CGod", 1);
  2457.         CGod[ playerid ] = SetTimerEx( "CarGodTimer", 200, true, "i", playerid );
  2458.         SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Car God{FFFFFF} activado!");
  2459.     }
  2460.     else
  2461.     {
  2462.         SetPVarInt( playerid, "CGod", 0);
  2463.         KillTimer( CGod[ playerid ] );
  2464.         SetVehicleHealth( GetPlayerVehicleID( playerid ), 1000.0 );
  2465.         SendClientMessage( playerid, -1, ""COL_LIGHTBLUE"Car God{FFFFFF} desactivado!");
  2466.     }
  2467.     return 1;
  2468. }
  2469. CMD:duelo(playerid, params[])
  2470. {
  2471.     new string[128];
  2472.     if(InvitedDuel[playerid] == true) return SendClientMessage(playerid,0xF41917AA,"»»[DUELO]«« : Você Já Convidou alguém,Aguarde Expirar o Convite");
  2473.     if(UsingArena == true) return SendClientMessage(playerid,0xF41917AA,"»»[DUELO]«« : Zona de Duelo esta siendo usada.");
  2474.     if(isnull(params)) return SendClientMessage(playerid,0xF41917AA,"»»[DUELO]«« : Deve digitar el ID(/duelo-run [playerid])");
  2475.     new id = strval(params);
  2476.     if(id == playerid) return SendClientMessage(playerid,0xF41917AA,"»»[DUELO]«« : Você não pode convidar a Si-Mesmo");
  2477.     if(InvitedDuel[id] == true) return SendClientMessage(playerid,0xF41917AA,"»»[DUELO]«« : Ahora no, Aguarde..");
  2478.     new name[MAX_PLAYER_NAME];
  2479.     GetPlayerName(playerid, name, sizeof(name));
  2480.     format(string, sizeof(string), "»»[DUELO]«« : %s te esta desafiando \n a un duelo (Cliquee aceptar para aceptar el duelo)",name);
  2481.     ShowPlayerDialog(id,DIALOG_DUEL,DIALOG_STYLE_MSGBOX,"»»[DUELO]«« :",string,"Aceptar", "Rechazar");
  2482.  
  2483.                 SetPlayerPos(playerid, 1731.8315,-2864.7705,6.5554);
  2484.     GameTextForPlayer(id,"~r~DUE~w~LO !", 2500, 3);
  2485.     InvitedDuel[id] = true;
  2486.     IdDuel[id] = playerid;
  2487.     SetTimerEx("LimparDuelo",15000,false,"ii",id,playerid);
  2488.     return 1;
  2489. }
  2490. CMD:acmds( playerid, params[ ] )
  2491. {
  2492.     if ( GetPVarInt( playerid, "Level" ) < 1 )
  2493.         //return SendClientMessage( playerid, -1, "You must be an Admin level 1 or above to view the commands");
  2494. return 0;
  2495.     new CBox[ 512 ];
  2496.     format( CBox, sizeof CBox, "{FFFFFF}Comandos administrativos\n\n\n\
  2497.                                 "COL_RED"Level {FFFFFF}1 "COL_RED"- {FFFFFF}( "COL_RED""Level1" {FFFFFF})\n\
  2498.                                 /settime /setweather /sethp /setarmour /givemoney\n\n\
  2499.                                 "COL_RED"Level {FFFFFF}2 "COL_RED"- {FFFFFF}( "COL_RED""Level2" {FFFFFF})\n");
  2500.  
  2501.     format( CBox, sizeof CBox,  "%s /freeze /unfreeze /kick /spawn /setweapon /setscore\n\n\
  2502.                                 "COL_RED"Level {FFFFFF}3 "COL_RED"- {FFFFFF}( "COL_RED""Level3" {FFFFFF})\n\
  2503.                                 /gmx /ban\n\n\n\
  2504.                                 Lea las reglas administrativas-> "COL_RED"/areglas", CBox);
  2505.     ShowPlayerDialog( playerid, INFO_BOX, DIALOG_STYLE_MSGBOX, "{FFFFFF}Comandos administrativos", CBox, "Okey", "");
  2506.     return 1;
  2507. }
  2508. CMD:viphelp( playerid, params[ ] )
  2509. {
  2510.     if ( GetPVarInt( playerid, "Level" ) < 1 )
  2511.         return SendClientMessage( playerid, -1, "You must be a VIP Member to use this command");
  2512.  
  2513.     ShowPlayerDialog( playerid, INFO_BOX, DIALOG_STYLE_MSGBOX, "{FFFFFF}Admin Commands",    "{FFFFFF}Few VIP Commands.\n\n\n\
  2514.                                                                                             "COL_LIGHTBLUE"Level {FFFFFF}1\n\
  2515.                                                                                             /vipgod\n\n\
  2516.                                                                                             "COL_LIGHTBLUE"Level {FFFFFF}2\n\
  2517.                                                                                             /vipgod /vipcargod\n\n\
  2518.                                                                                             "COL_LIGHTBLUE"Level {FFFFFF}3\n\
  2519.                                                                                             /vipgod /vipcargod /vnrg /vinf\n\n\n", "Oke", "");
  2520.     return 1;
  2521. }
  2522. CMD:arules( playerid, params[ ] )
  2523. {
  2524.     if ( GetPVarInt( playerid, "Level" ) < 1 )
  2525.         return SendClientMessage( playerid, -1, "You must be an Admin level 1 or above to view the Admin Rules");
  2526.  
  2527.     new CBox[ 700 ];
  2528.     format( CBox, sizeof CBox, "{FFFFFF}Current Admin Rules\n\n\n\
  2529.                                 "COL_RED"Level {FFFFFF}1 "COL_RED"- {FFFFFF}( "COL_RED""Level1" {FFFFFF})\n\
  2530.                                 -Your duty is to ensure a player's pleasure to play on the server, set his time\n\
  2531.                                 set his wather, etc.\n\n\
  2532.                                 "COL_RED"Level {FFFFFF}2 "COL_RED"- {FFFFFF}( "COL_RED""Level2" {FFFFFF})\n");
  2533.  
  2534.     format( CBox, sizeof CBox, "%s-Your job is to ensure nobody abuses the commands, or insults players\n\
  2535.                                 you must take control over mean players and punish them.\n\n\
  2536.                                 "COL_RED"Level {FFFFFF}3 "COL_RED"- {FFFFFF}( "COL_RED""Level3" {FFFFFF})\n\
  2537.                                 -The "Level3" can do whatever they want, you cannot judge their actions.\n\n\n\
  2538.                                 Please take a look at the Admin Commands -> "COL_RED"/acmds", CBox);
  2539.     ShowPlayerDialog( playerid, INFO_BOX, DIALOG_STYLE_MSGBOX, "{FFFFFF}Admin Commands", CBox, "Oke", "");
  2540.     return 1;
  2541. }
  2542. COMMAND:spec(playerid, params[])
  2543. {
  2544.     new id;// This will hold the ID of the player you are going to be spectating.
  2545.     if(!IsPlayerAdmin(playerid))return 0;// This checks if the player is logged into RCON, if not it will return 0; (Showing "SERVER: Unknown Command") You can replace it with your own admin check.
  2546.     if(sscanf(params,"u", id))return SendClientMessage(playerid, Grey, "Usage: /spec [id]");// Now this is where we use sscanf to check if the params were filled, if not we'll ask you to fill them
  2547.     if(id == playerid)return SendClientMessage(playerid,Grey,"You cannot spec yourself.");// Just making sure.
  2548.     if(id == INVALID_PLAYER_ID)return SendClientMessage(playerid, Grey, "Player not found!");// This is to ensure that you don't fill the param with an invalid player id.
  2549.     if(IsSpecing[playerid] == 1)return SendClientMessage(playerid,Grey,"You are already specing someone.");// This will make you not automatically spec someone else by mistake.
  2550.     GetPlayerPos(playerid,SpectaX[playerid],SpectaY[playerid],SpectaZ[playerid]);// This is getting and saving the player's position in a variable so they'll respawn at the same place they typed '/spec'
  2551.     Interspec[playerid] = GetPlayerInterior(playerid);// Getting and saving the interior.
  2552.     vWorldspec[playerid] = GetPlayerVirtualWorld(playerid);//Getting and saving the virtual world.
  2553.     TogglePlayerSpectating(playerid, true);// Now before we use any of the 3 functions listed above, we need to use this one. It turns the spectating mode on.
  2554.     if(IsPlayerInAnyVehicle(id))//Checking if the player is in a vehicle.
  2555.     {
  2556.         if(GetPlayerInterior(id) > 0)//If the player's interior is more than 0 (the default) then.....
  2557.         {
  2558.             SetPlayerInterior(playerid,GetPlayerInterior(id));//.....set the spectator's interior to that of the player being spectated.
  2559.         }
  2560.         if(GetPlayerVirtualWorld(id) > 0)//If the player's virtual world is more than 0 (the default) then.....
  2561.         {
  2562.             SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id));//.....set the spectator's virtual world to that of the player being spectated.
  2563.         }
  2564.         PlayerSpectateVehicle(playerid,GetPlayerVehicleID(id));// Now remember we checked if the player is in a vehicle, well if they're in a vehicle then we'll spec the vehicle.
  2565.     }
  2566.     else// If they're not in a vehicle, then we'll spec the player.
  2567.     {
  2568.         if(GetPlayerInterior(id) > 0)
  2569.         {
  2570.             SetPlayerInterior(playerid,GetPlayerInterior(id));
  2571.         }
  2572.         if(GetPlayerVirtualWorld(id) > 0)
  2573.         {
  2574.             SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id));
  2575.         }
  2576.         PlayerSpectatePlayer(playerid,id);// Letting the spectator spec the person and not a vehicle.
  2577.     }
  2578.     GetPlayerName(id, Namespec, sizeof(Namespec));//Getting the name of the player being spectated.
  2579.     format(stringspec, sizeof(stringspec),"Empezaste a spectear a %s.",Namespec);// Formatting a string to send to the spectator.
  2580.     SendClientMessage(playerid,0x0080C0FF,stringspec);//Sending the formatted message to the spectator.
  2581.     IsSpecing[playerid] = 1;// Just saying that the spectator has begun to spectate someone.
  2582.     IsBeingSpeced[id] = 1;// Just saying that a player is being spectated (You'll see where this comes in)
  2583.     spectatorid[playerid] = id;// Saving the spectator's id into this variable.
  2584.     return 1;// Returning 1 - saying that the command has been sent.
  2585. }
  2586.  
  2587. COMMAND:specoff(playerid, params[])
  2588. {
  2589.     if(!IsPlayerAdmin(playerid))return 0;// This checks if the player is logged into RCON, if not it will return 0; (Showing "SERVER: Unknown Command")
  2590.     //if(IsSpecing[playerid] == 0)return SendClientMessage(playerid,Grey,"You are not spectating anyone.");
  2591.     TogglePlayerSpectating(playerid, 0);//Toggling spectate mode, off. Note: Once this is called, the player will be spawned, there we'll need to reset their positions, virtual world and interior to where they typed '/spec'
  2592. SpawnPlayer(playerid);
  2593.     return 1;
  2594. }
  2595.  
  2596. COMMAND:congelartodos(playerid, params[])
  2597. {
  2598. assert(IsPlayerAdmin(playerid));
  2599.  
  2600.  
  2601.     for (new i; i < GetMaxPlayers(); i++)
  2602.     {
  2603.         if (IsPlayerConnected(i))  TogglePlayerControllable(i,0);
  2604.     }
  2605.  
  2606. return 1;
  2607. }
  2608.  
  2609.  
  2610.  
  2611. /*COMMAND:sancion(playerid,params[])
  2612. {
  2613.     if(GetPVarInt( playerid, "Level" ) > 0)
  2614.     {
  2615.         new pId, time;
  2616.         if(sscanf(params, "dds[128]", pId, time, params[3])) return SendClientMessage(playerid, 0xFF0000AA, "USO: /sancion [ID] [minutos] [razon]");
  2617.             else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, 0xFF0000AA, "Usuario no conectado");
  2618.                 else
  2619.                 {
  2620.                     new pname[MAX_PLAYER_NAME], jname[MAX_PLAYER_NAME], string1[250];
  2621.                     GetPlayerName(playerid, pname, sizeof(pname));
  2622.                     GetPlayerName(pId, jname, sizeof(jname));
  2623.                     SetPlayerInterior(pId, 3);
  2624.                     new rand = random(sizeof(JailCellSpawns));
  2625.                     SetPlayerVirtualWorld(pId,21);
  2626.                     SetPlayerPos(pId, JailCellSpawns[rand][0], JailCellSpawns[rand][1], JailCellSpawns[rand][2]);
  2627.                     SetTimerEx("UnJail",time*1000*60,0,"i",pId);
  2628.                    
  2629.                     InJail[pId] = 1;
  2630.                     tiempo[playerid] = gettime()+(time*1000*60);
  2631.                     ResetPlayerWeapons(pId);
  2632.                     format(string1, sizeof(string1), "%s(%d) fue sancionado por un admin. Razon: %s", jname, pId, params[3]);
  2633.                     SendClientMessageToAll(COLOR_RED, string1);
  2634.                     //les saco el godmode
  2635.         SetPVarInt( pId, "God", 0);
  2636.         KillTimer( God[ pId ] );
  2637.         SetPlayerHealth( pId, 100.0 );
  2638.                     return 1;
  2639.                 }
  2640.             }
  2641.             else
  2642.             {
  2643.                 return 0;
  2644.             }
  2645. }*/
  2646.  
  2647.  
  2648. COMMAND:sancion(playerid,params[])
  2649. {
  2650.     if(GetPVarInt( playerid, "Level" ) > 0)
  2651.     {
  2652.         new pId, time;
  2653.         if(sscanf(params, "dds[128]", pId, time, params[3])) return SendClientMessage(playerid, 0xFF0000AA, "USO: /sancion [ID] [minutos] [razon]");
  2654.             else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, 0xFF0000AA, "Usuario no conectado");
  2655.                 else
  2656.                 {
  2657.                     new pname[MAX_PLAYER_NAME], jname[MAX_PLAYER_NAME], string1[250];
  2658.                     GetPlayerName(playerid, pname, sizeof(pname));
  2659.                     GetPlayerName(pId, jname, sizeof(jname));
  2660.                     SetPlayerInterior(pId, 3);
  2661.                     new rand = random(sizeof(JailCellSpawns));
  2662.                     SetPlayerVirtualWorld(pId,21);
  2663.                     SetPlayerPos(pId, JailCellSpawns[rand][0], JailCellSpawns[rand][1], JailCellSpawns[rand][2]);
  2664.  
  2665.                     ATiempo(csancion[playerid], min_s(time));
  2666.  
  2667.                     SetTimerEx("UnJail",time*1000*60,0,"i",pId);
  2668.                     InJail[pId] = 1;
  2669.                     ResetPlayerWeapons(pId);
  2670.                     format(string1, sizeof(string1), "%s(%d) fue sancionado por un admin. Razon: %s", jname, pId, params[3]);
  2671.                     SendClientMessageToAll(COLOR_RED, string1);
  2672.                     //les saco el godmode
  2673.         SetPVarInt( pId, "God", 0);
  2674.         KillTimer( God[ pId ] );
  2675.         SetPlayerHealth( pId, 100.0 );
  2676.                     return 1;
  2677.                 }
  2678.             }
  2679.             else
  2680.             {
  2681.                 return 0;
  2682.             }
  2683. }
  2684.  
  2685.  
  2686.  
  2687. COMMAND:tiempo(playerid, params[])
  2688. {
  2689.         if(ETiempo(csancion[playerid]))
  2690.         {
  2691.                 //new m[48];
  2692.                 //format(m, sizeof m, "Te faltan %d para salir de la carcel...", OTiempo(csancion[playerid]));
  2693.                 //No esta en la carcel
  2694.         }
  2695.         else
  2696.         {
  2697.                 //Esta encarcelado
  2698.                 new m[48];
  2699.                 format(m, sizeof m, "Te faltan %d para salir de la carcel...", OTiempo(csancion[playerid]));
  2700.                 SendClientMessage(playerid, -1, m);
  2701.         }
  2702.         return 1;
  2703. }
  2704.  
  2705. COMMAND:gotox(playerid,params[])
  2706. {
  2707.     new Float:x,Float:y,Float:z;
  2708.  
  2709.     if(sscanf(params,"fff",x,y,z))return SendClientMessage(playerid,0xff0000FF,"ERROR: Usage /goto [interior][xcoord][ycoord][zcoord]");
  2710.     else
  2711.     {
  2712.     //SetPlayerInterior(playerid,interior);
  2713.         SetPlayerPos(playerid,x,y,z);
  2714.        
  2715.     }
  2716.     return 1;
  2717. }
  2718.  
  2719. CMD:stats( playerid, paramz[ ] )
  2720. {
  2721.     if ( GetPVarInt( playerid, "Logged" ) == 0 )
  2722.         return SendClientMessage( playerid, -1, ""COL_RED"ERROR:{FFFFFF} Para ver tus estadisticas tenes que haber iniciado sesion. ");
  2723.  
  2724.     new
  2725.         iBox[ 1024 ],
  2726.         RegDate[ 40 ],
  2727.         pLastOn[ 20 + 20 ],
  2728.         pLevel = GetPVarInt( playerid, "Level")
  2729.     ;
  2730.     GetPVarString( playerid, "Date", RegDate, sizeof RegDate );
  2731.     GetPVarString( playerid, "On", pLastOn, sizeof pLastOn );
  2732.  
  2733.     format( iBox, sizeof iBox, "{FFFFFF}Hola "COL_LIGHTBLUE"%s{FFFFFF}, estas son tus estadisticas.\n\n\
  2734.                                 {FFFFFF}Admin level: "COL_LIGHTBLUE"%s{FFFFFF}["COL_LIGHTBLUE"%d{FFFFFF}]\n\
  2735.                                 {FFFFFF}VIP Level: "COL_LIGHTBLUE"%d\n\
  2736.                                 {FFFFFF}Dinero: "COL_LIGHTBLUE"%d\n\
  2737.                                 {FFFFFF}Score: "COL_LIGHTBLUE"%d\n\
  2738.                                 {FFFFFF}Asesinatos: "COL_LIGHTBLUE"%d\n\
  2739.                                 {FFFFFF}Muertes: "COL_LIGHTBLUE"%d\n\
  2740.                                 {FFFFFF}Fecha de Registro: "COL_LIGHTBLUE"%s\n\
  2741.                                 {FFFFFF}Interior: "COL_LIGHTBLUE"%d\n",
  2742.                                               pName( playerid ),
  2743.                                               GetPlayerLevelName( playerid ),
  2744.                                               pLevel,
  2745.                                               GetPlayerVLevel( playerid ),
  2746.                                               GetPlayerMoney( playerid ),
  2747.                                               GetPlayerScore( playerid ),
  2748.                                               GetPVarInt( playerid,"Kills" ),
  2749.                                               GetPVarInt( playerid,"Deaths" ),
  2750.                                               RegDate,
  2751.                                               GetPlayerInterior( playerid ) );
  2752.  
  2753.     format( iBox, sizeof iBox,  "%s{FFFFFF}Virtual World: "COL_LIGHTBLUE"%d\n\
  2754.                                 {FFFFFF}Skin: "COL_LIGHTBLUE"%d\n\
  2755.                                 {FFFFFF}Ultima vez activo: "COL_LIGHTBLUE"%s\n\
  2756.                                 {FFFFFF}Car God: "COL_LIGHTBLUE"%s\n\
  2757.                                 {FFFFFF}Player God: "COL_LIGHTBLUE"%s",
  2758.                                               iBox,
  2759.                                               GetPlayerVirtualWorld( playerid ),
  2760.                                               GetMySkin( playerid ),
  2761.                                               pLastOn,
  2762.                                               GetPVarInt( playerid, "CGod" ) ? (""COL_GREEN"Yes") : (""COL_RED"No"),
  2763.                                               GetPVarInt( playerid, "God" ) ? (""COL_GREEN"Yes") : (""COL_RED"No"));
  2764.  
  2765.     ShowPlayerDialog( playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "{FFFFFF}Tus estadisticas!", iBox, "Ok", "");
  2766.     return 1;
  2767. }
  2768.  
  2769. public OnPlayerDeath( playerid, killerid, reason )
  2770. {
  2771. if(InvitedDuel[killerid] == true)
  2772.     {
  2773.         new Float:healthkiller;
  2774.         new namekiller[24],namedeather[24],string[44];
  2775.         GetPlayerName(killerid, namekiller, 24);
  2776.         GetPlayerName(playerid, namedeather, 24);
  2777.         GetPlayerHealth(killerid,healthkiller);
  2778.         format(string, sizeof(string), "»»[DUELO]«« : %s Wins Duel of %s how %0.0f off Armour and Health",namekiller,namedeather,healthkiller);
  2779.         SendClientMessageToAll(0xF600F6AA, string);
  2780.         InvitedDuel[killerid] = false;
  2781.         InvitedDuel[playerid] = false;
  2782.         IdDuel[playerid] = playerid;
  2783.         IdDuel[killerid] = killerid;
  2784.         UsingArena = false;
  2785.         healthkiller = 0;
  2786.         SpawnPlayer(killerid);
  2787.     }
  2788. if(IsBeingSpeced[playerid] == 1)//If the player being spectated, dies, then turn off the spec mode for the spectator.
  2789.     {
  2790.         foreach(Player,i)
  2791.         {
  2792.             if(spectatorid[i] == playerid)
  2793.             {
  2794.                 TogglePlayerSpectating(i,false);// This justifies what's above, if it's not off then you'll be either spectating your connect screen, or somewhere in blueberry (I don't know why)
  2795.             }
  2796.         }
  2797.     }
  2798.     SetPVarInt( killerid, "Kills",  GetPVarInt( playerid, "Kills" ) + 1 );
  2799.     SetPVarInt( playerid, "Deaths", GetPVarInt( playerid, "Deaths" ) + 1 );
  2800.     GivePlayerScore(killerid,1);
  2801.    
  2802.     if(killerid != INVALID_PLAYER_ID)
  2803. {
  2804.     SendDeathMessage(killerid,playerid,reason);
  2805. GivePlayerMoney(killerid,400);
  2806. GameTextForPlayer(playerid,"PISO",2000,5);//<-- that's what we need now.
  2807. TextDrawHideForPlayer(playerid, ArribaVida[playerid]);
  2808. }
  2809. return 1;
  2810. }
  2811. public OnPlayerStateChange(playerid, newstate, oldstate)
  2812. {
  2813. if((newstate & PLAYER_STATE_DRIVER) && (oldstate & PLAYER_STATE_ONFOOT))
  2814.    
  2815.         if( 0 < paramsvDealer[ GetPlayerVehicleID(playerid) ][ inumDealer ] <= MAX_DEALERS )
  2816.         {
  2817.             static
  2818.                 sz@vDialogCar[0x190],
  2819.                 var@Temp[0x80];
  2820.  
  2821.             sz@vDialogCar[0] = '\0', var@Temp[0] = '\0';
  2822.  
  2823.             TogglePlayerControllable( playerid, false );
  2824.             SetVehicleParamsForAll( GetPlayerVehicleID(playerid), false, true );
  2825.             obs@Venta[ playerid ][ 1 ] = paramsvDealer[ GetPlayerVehicleID( playerid ) ][ inumID ];
  2826.  
  2827.             format(var@Temp, sizeof var@Temp, "                               \t{FF0000}Nombre: {FFFFFF}%s.\n", paramsvDealer[GetPlayerVehicleID(playerid)][sCarName]);
  2828.             strcat(sz@vDialogCar, var@Temp, 0x136);
  2829.             format(var@Temp, sizeof var@Temp, "                               \t{FF0000}Precio: {FFFFFF}$%i.\n", paramsvDealer[GetPlayerVehicleID(playerid)][iPrice]);
  2830.             strcat(sz@vDialogCar, var@Temp, 0x136);
  2831.             strcat(sz@vDialogCar, "\t          {FF0000}Bienvenido al {FFFFFF}vehículo de pruebas.\n", 0x136);
  2832.             strcat(sz@vDialogCar, "    {FFFFFF}¿Deseas comprar este vehículo ? Pulsa '{008000}Aceptar{FFFFFF}' de lo contrario, '{008000}Cancelar{FFFFFF}'\n.", 0x136);
  2833.  
  2834.             format(var@Temp, sizeof var@Temp, "{FF0000}[{FFD700}wDealer{FF0000}]{FFFFFF} Concesionaría N°%d", paramsvDealer[GetPlayerVehicleID(playerid)][inumDealer]);
  2835.  
  2836.             ShowPlayerDialog( playerid, showAnounceVehicle, DIALOG_STYLE_MSGBOX, var@Temp, sz@vDialogCar, "Aceptar.", "Cancelar.");
  2837.         }
  2838.  
  2839.     if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)// If the player's state changes to a vehicle state we'll have to spec the vehicle.
  2840.     {
  2841.         if(IsBeingSpeced[playerid] == 1)//If the player being spectated, enters a vehicle, then let the spectator spectate the vehicle.
  2842.         {
  2843.             foreach(Player,i)
  2844.             {
  2845.                 if(spectatorid[i] == playerid)
  2846.                 {
  2847.                     PlayerSpectateVehicle(i, GetPlayerVehicleID(playerid));// Letting the spectator, spectate the vehicle of the player being spectated (I hope you understand this xD)
  2848.                 }
  2849.             }
  2850.         }
  2851.     }
  2852.     if(newstate == PLAYER_STATE_ONFOOT)
  2853.     {
  2854.         if(IsBeingSpeced[playerid] == 1)//If the player being spectated, exists a vehicle, then let the spectator spectate the player.
  2855.         {
  2856.             foreach(Player,i)
  2857.             {
  2858.                 if(spectatorid[i] == playerid)
  2859.                 {
  2860.                     PlayerSpectatePlayer(i, playerid);// Letting the spectator, spectate the player who exited the vehicle.
  2861.                 }
  2862.             }
  2863.         }
  2864.     }
  2865.     return 1;
  2866. }
  2867.  
  2868. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)//This is called when a player's interior is changed.
  2869. {
  2870.     if(IsBeingSpeced[playerid] == 1)//If the player being spectated, changes an interior, then update the interior and virtualword for the spectator.
  2871.     {
  2872.         foreach(Player,i)
  2873.         {
  2874.             if(spectatorid[i] == playerid)
  2875.             {
  2876.                 SetPlayerInterior(i,GetPlayerInterior(playerid));
  2877.                 SetPlayerVirtualWorld(i,GetPlayerVirtualWorld(playerid));
  2878.             }
  2879.         }
  2880.     }
  2881.     return 1;
  2882. }
  2883. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  2884. {
  2885.     /*---------------------------------------------------
  2886.  
  2887.         * OnVehicleRespray.
  2888.             *Params:
  2889.                 - playerid
  2890.                 - vehicleid
  2891.                 - color1
  2892.                 - color2
  2893.             *Función:
  2894.                 - Mediante dos bucles (recorriendo los jugadores y los vehículos
  2895.                 de estos, se actualiza el la variable del nuevo paintjob
  2896.                 añadido a los vehículos.
  2897.  
  2898.    --------------------------------------------------*/
  2899.     for( new i = MAX_PLAYERS-1; i > -1; --i )
  2900.     {
  2901.         static
  2902.             j;
  2903.         j = -1;
  2904.  
  2905.         while( ++j < MAX_VEH_PER_PLAYER )
  2906.         {
  2907.             if((( playerVehicle[i][j][status] ) && ( playerVehicle[i][j][icnumID] == vehicleid )))
  2908.             {
  2909.                 playerVehicle[i][j][mods][mPaintjob] = paintjobid;
  2910.                 break;
  2911.             }
  2912.             else continue;
  2913.         }
  2914.     }
  2915.     return 1;
  2916. }
  2917. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  2918. {
  2919.     /*---------------------------------------------------
  2920.  
  2921.         * OnVehicleRespray.
  2922.             *Params:
  2923.                 - playerid
  2924.                 - vehicleid
  2925.                 - color1
  2926.                 - color2
  2927.             *Función:
  2928.                 - Mediante dos bucles (recorriendo los jugadores y los vehículos
  2929.                 de estos, se actualiza la variable del nuevo color de pintura añadida
  2930.                 a los vehículos.
  2931.  
  2932.    --------------------------------------------------*/
  2933.  
  2934.     for( new i = MAX_PLAYERS-1; i > -1; --i )
  2935.     {
  2936.         static
  2937.             j;
  2938.         j = -1;
  2939.  
  2940.         while( ++j < MAX_VEH_PER_PLAYER )
  2941.         {
  2942.             if((( playerVehicle[i][j][status] ) && ( playerVehicle[i][j][icnumID] == vehicleid )))
  2943.             {
  2944.                 playerVehicle[i][j][mods][mColores][0] = color1;
  2945.                 playerVehicle[i][j][mods][mColores][1] = color2;
  2946.                 break;
  2947.             }
  2948.             else continue;
  2949.         }
  2950.     }
  2951.     return 1;
  2952. }
  2953.  
  2954. //============================================================================//
  2955.  
  2956. public OnVehicleMod(playerid, vehicleid, componentid)
  2957. {
  2958.     /*--------------------------------------------------
  2959.         * OnVehicleMod
  2960.             *Params:
  2961.                 - playerid
  2962.                 - vehicleid
  2963.                 - componentid
  2964.             *Función:
  2965.                 - Mediante un bucle se verifica que los componentes cargados ( de la tabla )
  2966.                   para el vehículo sean correctos, de lo contrario, se le asigna un valor
  2967.                   correcto.
  2968.  
  2969.     --------------------------------------------------*/
  2970.     for( new i = MAX_PLAYERS-1; i > -1; --i )
  2971.     {
  2972.         static
  2973.             j;
  2974.         j = -1;
  2975.  
  2976.         while( ++j < MAX_VEH_PER_PLAYER )
  2977.         {
  2978.             if((( playerVehicle[i][j][status] ) && ( playerVehicle[i][j][icnumID] == vehicleid )))
  2979.             {
  2980.                 switch( GetModType( componentid ) )
  2981.                 {
  2982.                     case 1:  playerVehicle[i][j][mods][mSpoiler] = componentid;
  2983.                     case 2:  playerVehicle[i][j][mods][mRoof] = componentid;
  2984.                     case 3:  playerVehicle[i][j][mods][mSideskirts][0] = componentid;
  2985.                     case 4:  playerVehicle[i][j][mods][mSideskirts][1] = componentid;
  2986.                     case 5:  playerVehicle[i][j][mods][mNitro] = componentid;
  2987.                     case 6:  playerVehicle[i][j][mods][mLamps] = componentid;
  2988.                     case 7:  playerVehicle[i][j][mods][mExhaust] = componentid;
  2989.                     case 8:  playerVehicle[i][j][mods][mWheels] = componentid;
  2990.                     case 9:  playerVehicle[i][j][mods][mStereo] = componentid;
  2991.                     case 10: playerVehicle[i][j][mods][mHidraulics] = componentid;
  2992.                     case 11: playerVehicle[i][j][mods][mPaintjob] = componentid;
  2993.                     case 12: playerVehicle[i][j][mods][mBullbar] = componentid;
  2994.                     case 13: playerVehicle[i][j][mods][mRealBullbars] = componentid;
  2995.                     case 14: playerVehicle[i][j][mods][mFrontSign] = componentid;
  2996.                     case 15: playerVehicle[i][j][mods][mFrontBullbars] = componentid;
  2997.                     case 16: playerVehicle[i][j][mods][mBullbars] = componentid;
  2998.                     case 17: playerVehicle[i][j][mods][mRearBumper] = componentid;
  2999.                     case 18: playerVehicle[i][j][mods][mVents][0] = componentid;
  3000.                     case 19: playerVehicle[i][j][mods][mVents][1] = componentid;
  3001.                     case 20: playerVehicle[i][j][mods][mFrontBumper] = componentid;
  3002.                     case 21: playerVehicle[i][j][mods][mHood] = componentid;
  3003.                     default: continue;
  3004.                 }
  3005.                 break;
  3006.             }
  3007.             else continue;
  3008.         }
  3009.     }
  3010.     return 1;
  3011. }
  3012.  
  3013. //============================================================================//
  3014.  
  3015. public OnVehicleStreamIn(vehicleid, forplayerid)
  3016. {
  3017.     /*--------------------------------------------------
  3018.         * OnVehicleStreamIn
  3019.             *Params:
  3020.                 - vehicleid
  3021.                 - forplayerid
  3022.             *Función:
  3023.                 - Mediante un bucle que recorrerá todos los usuarios & vehículos
  3024.                   seteamos el valor de las puertas ( abiertas | cerradas ) de acuerdo
  3025.                   a el valor de su variable.
  3026.  
  3027.     --------------------------------------------------*/
  3028.  
  3029.     for( new j = GetMaxPlayers()-1; j > -1; --j )
  3030.     {
  3031.         static
  3032.             i;
  3033.         i = -1;
  3034.  
  3035.         while( ++i < MAX_VEH_PER_PLAYER )
  3036.         {
  3037.             if( playerVehicle[j][i][icnumID] == vehicleid )
  3038.             {
  3039.                 SetVehicleParamsEx( vehicleid, playerVehicle[j][i][paramsVeh][pEngine], playerVehicle[j][i][paramsVeh][pLights],
  3040.                                                 playerVehicle[j][i][paramsVeh][pAlarm], playerVehicle[j][i][paramsVeh][pLock],
  3041.                                                 playerVehicle[j][i][paramsVeh][pBonnet], playerVehicle[j][i][paramsVeh][pBoot],
  3042.                                                 playerVehicle[j][i][paramsVeh][pObjective]);
  3043.             }
  3044.             else continue;
  3045.         }
  3046.     }
  3047.     return 1;
  3048. }
  3049.  
  3050. //============================================================================//
  3051.  
  3052. obtain@dealerVehicles( dealerid )
  3053. {
  3054.     /*--------------------------------------------------
  3055.  
  3056.         * obtain@dealerVehicles
  3057.             * Params:
  3058.                 - dealerid
  3059.             * Función:
  3060.                 - Obtiene la cantidad de vehículos creados pertenecientes
  3061.                 al concesionario ingresado (dealerid).
  3062.  
  3063.     --------------------------------------------------*/
  3064.  
  3065.     static
  3066.         i,
  3067.     count;
  3068.     i = 0, count = 0;
  3069.  
  3070.     while( ++i < MAX_VEHICLES )
  3071.     {
  3072.         if( i == 0 ) continue;
  3073.         if( paramsvDealer[ i ][ inumDealer ] == dealerid ) count++;
  3074.         else continue;
  3075.     }
  3076.     return count;
  3077. }
  3078.  
  3079. //============================================================================//
  3080.  
  3081. function:: save@dealerLocations()
  3082. {
  3083.     /*--------------------------------------------------
  3084.  
  3085.         * save@dealerLocations
  3086.             * Params:
  3087.                 - Sin parámetros.
  3088.             * Función:
  3089.                 - Almacena la información de los concesionarios
  3090.                 creados.
  3091.  
  3092.     --------------------------------------------------*/
  3093.  
  3094.     static
  3095.         query[0x100],
  3096.         count;
  3097.  
  3098.     count = 0;
  3099.  
  3100.     for( new i = MAX_DEALERS-1; i >= 0; i--)
  3101.     {
  3102.         dealerLocations[i][d@vehicles] = obtain@dealerVehicles( i );
  3103.         if( dealerLocations[ i ][ id@sqlid ] < 1 ) continue;
  3104.         else
  3105.         {
  3106.  
  3107.             mysql_format( cHandle, query, "UPDATE `dealerLocations` SET `DealerName` = '%e', `countVehs` = %d, `max_X` = %f, `min_X` = %f, `max_Y` = %f, `min_Y` = %f WHERE `DealerID` = %d;",
  3108.                                             dealerLocations[i][sz@nameDealer],
  3109.                                             dealerLocations[i][d@vehicles],
  3110.                                             dealerLocations[i][f@maxX],
  3111.                                             dealerLocations[i][f@minX],
  3112.                                             dealerLocations[i][f@maxY],
  3113.                                             dealerLocations[i][f@minY],
  3114.                                             dealerLocations[i][id@sqlid]);
  3115.             mysql_function_query( cHandle, query, false, "OnQueryFinish", "d", empty@queryReceived);
  3116.             count ++;
  3117.         }
  3118.     }
  3119.     return printf("[wDealer]: Se han guardado %d concesionarios.", count-1);
  3120. }
  3121. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  3122. {
  3123.     static
  3124.         sz@message[0x7D];
  3125.     switch( dialogid )
  3126.     {
  3127.     case showAnounceVehicle:
  3128.         {
  3129.             if( !response )
  3130.             {
  3131.                 cmd_salirvcar( playerid );
  3132.                 SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer{FF0000}]{FFFFFF} Has salido del vehículo de pruebas.");
  3133.             }
  3134.             else cmd_buyvehicle( playerid );
  3135.         }
  3136.         case showMenuCreateDealer:
  3137.         {
  3138.             if( !response )
  3139.             {
  3140.                 mysql_format( cHandle, sz@message, "DELETE FROM `dealerLocations` WHERE `DealerID` = %d", dealerLocations[d@optionsEdit[playerid][0]][id@sqlid]);
  3141.                 mysql_function_query( cHandle, sz@message, false, "OnQueryFinish", "d", empty@queryReceived);
  3142.                 for( new i = 4; i > -1; --i)
  3143.                 {
  3144.                     d@optionsEdit[playerid][i] = 0;
  3145.                 }
  3146.                 CallLocalFunction("save@dealerLocations", #);
  3147.                 SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer{FF0000}]{FFFFFF} Has salido de la edición de concesionarios.");
  3148.             }
  3149.             else
  3150.             {
  3151.                 switch( listitem )
  3152.                 {
  3153.                     case 0: ShowPlayerDialog( playerid, createDealerName, DIALOG_STYLE_INPUT, "{FF0000}[{FFD700}wDealer{FF0000}]{FFFFFF} Cambio de nombre.", "Digite el nuevo nombre para este concesionario.", "Aceptar.", "Atrás.");
  3154.                     case 1:
  3155.                     {
  3156.                         d@optionsEdit[playerid][0b100] = 1;
  3157.                         SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Vaya a la primera posición, pulse 'Y' cuando se encuentre listo o pulse 'ctrl' para finalizar.");
  3158.                     }
  3159.                     case 2:
  3160.                     {
  3161.                         CallLocalFunction("save@dealerLocations", #);
  3162.                         for( new i = 4; i > -1; --i)
  3163.                         {
  3164.                             d@optionsEdit[playerid][i] = 0;
  3165.                         }
  3166.                         SendClientMessage(playerid, -1, "[] Concesionario guardado");
  3167.                     }
  3168.                 }
  3169.             }
  3170.         }
  3171.         case createDealerName:
  3172.         {
  3173.             if( !response )
  3174.             {
  3175.                 format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Menú de edición - Concesionario %d", d@optionsEdit[playerid][0]);
  3176.                 ShowPlayerDialog( playerid, showMenuCreateDealer, DIALOG_STYLE_LIST, sz@message, " 1)\tNombre del concesionario.\n 2)\tPosición del concesionario.\n 3)\tGuardar concesionario.\n", "Seleccionar.", "Cancelar.");
  3177.             }
  3178.             else
  3179.             {
  3180.                 if( isnull( inputtext ) )
  3181.                     ShowPlayerDialog( playerid, createDealerName, DIALOG_STYLE_INPUT, "{FF0000}[{FFD700}wDealer{FF0000}]{FFFFFF} Cambio de nombre.", "Digite el nuevo nombre para este concesionario.", "Aceptar.", "Atrás.");
  3182.                 else
  3183.                 {
  3184.                     strmid( dealerLocations[d@optionsEdit[playerid][0]][sz@nameDealer], inputtext, 0, strlen(inputtext), 0x1E);
  3185.  
  3186.                     format( sz@message, sizeof sz@message, "\t Concesionario actualizado.\n 1) ID: %d.\n 2) Nombre: %s.\n 3) Vehiculos: %d.\n",
  3187.                                                         d@optionsEdit[playerid][0], dealerLocations[d@optionsEdit[playerid][0]][sz@nameDealer],
  3188.                                                         dealerLocations[d@optionsEdit[playerid][0]][d@vehicles]);
  3189.  
  3190.                     ShowPlayerDialog( playerid, showdealerInfoBox, DIALOG_STYLE_MSGBOX, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Menú de edición", sz@message, "Aceptar.", "Guardar.");
  3191.                 }
  3192.             }
  3193.         }
  3194.         case showdealerInfoBox:
  3195.         {
  3196.             if( !response )
  3197.             {
  3198.                 CallLocalFunction("save@dealerLocations", #);
  3199.                 for( new i = 4; i > -1; --i)
  3200.                 {
  3201.                     d@optionsEdit[playerid][i] = 0;
  3202.                 }
  3203.             }
  3204.             else
  3205.             {
  3206.                 format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Menú de edición - Concesionario %d", d@optionsEdit[playerid][0]);
  3207.                 ShowPlayerDialog( playerid, showMenuCreateDealer, DIALOG_STYLE_LIST, sz@message, " 1)\tNombre del concesionario.\n 2)\tPosición del concesionario.\n 3)\tGuardar concesionario.\n", "Seleccionar.", "Cancelar.");
  3208.             }
  3209.         }
  3210.         case showMenuDealerEdit:
  3211.         {
  3212.             if(!response)
  3213.             {
  3214.                 SendClientMessage(playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has salido del menú de edición de concesionario, todos los cambios se han perdido.");
  3215.                 d@optionsEdit[playerid][0] = 0;
  3216.                 d@optionsEdit[playerid][0b10] = 0;
  3217.             }
  3218.             else
  3219.             {
  3220.                 switch(listitem)
  3221.                 {
  3222.                     case 0: ShowPlayerDialog( playerid, editDealerName, DIALOG_STYLE_INPUT, "{FF0000}[{FFD700}wDealer{FF0000}]{FFFFFF} Cambio de nombre.", "Digite el nuevo nombre para este concesionario.", "Aceptar.", "Atrás.");
  3223.                     case 1:
  3224.                     {
  3225.                         d@optionsEdit[playerid][0b100] = 1;
  3226.                         d@optionsEdit[playerid][0b10] = 1;
  3227.                         SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Menú de edición de posiciones.");
  3228.                         SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Vaya a la primera posición, pulse 'Y' cuando se encuentre listo o pulse 'ctrl' para finalizar.");
  3229.                     }
  3230.                     case 2:
  3231.                     {
  3232.                         mysql_format( cHandle, sz@message, "DELETE FROM `dealerLocations` WHERE `DealerID` = %d", dealerLocations[d@optionsEdit[playerid][0]][id@sqlid]);
  3233.                         mysql_function_query( cHandle, sz@message, false, "OnQueryFinish", "d", empty@queryReceived);
  3234.                         new i = -1;
  3235.                         while( dealerLoc:++i < dealerLoc ) {
  3236.                             dealerLocations[d@optionsEdit[playerid][0]][dealerLoc:i] = 0;
  3237.                         }
  3238.                         for(i = 4; i > -1; --i)
  3239.                         {
  3240.                             d@optionsEdit[playerid][i] = 0;
  3241.                         }
  3242.                         CallLocalFunction("save@dealerLocations", #);
  3243.                         SendClientMessage(playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has eliminado el concesionario. Has salido del menú de edición.");
  3244.                     }
  3245.                     case 3:
  3246.                     {
  3247.                         CallLocalFunction("save@dealerLocations", #);
  3248.                         for( new i = 4; i > -1; --i)
  3249.                         {
  3250.                             d@optionsEdit[playerid][i] = 0;
  3251.                         }
  3252.                     }
  3253.                 }
  3254.             }
  3255.         }
  3256.         case editDealerName:
  3257.         {
  3258.             if( !response )
  3259.             {
  3260.                 format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Menú de edición - Concesionario %d", d@optionsEdit[playerid][0]);
  3261.                 ShowPlayerDialog(playerid, showMenuDealerEdit, DIALOG_STYLE_LIST, sz@message, "1)\t Nombre del concesionario.\n 2)\tPosicion del concesionario.\n 3)\tEliminar concesionario.\n -> Guardar cambios.", "Seleccionar.", "Cancelar.");
  3262.             }
  3263.             else
  3264.             {
  3265.                 if( isnull( inputtext ) )
  3266.                     ShowPlayerDialog( playerid, editDealerName, DIALOG_STYLE_INPUT, "{FF0000}[{FFD700}wDealer{FF0000}]{FFFFFF} Cambio de nombre.", "Digite el nuevo nombre para este concesionario.", "Aceptar.", "Atrás.");
  3267.                 else
  3268.                 {
  3269.                     strmid( dealerLocations[d@optionsEdit[playerid][0]][sz@nameDealer], inputtext, 0, strlen(inputtext), 0x1E);
  3270.                     SendClientMessage(playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} ¡Nombre actualizado!.");
  3271.                     format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Menú de edición - Concesionario %d", d@optionsEdit[playerid][0]);
  3272.                     ShowPlayerDialog(playerid, showMenuDealerEdit, DIALOG_STYLE_LIST, sz@message, "1)\t Nombre del concesionario.\n 2)\tPosicion del concesionario.\n 3)\tEliminar concesionario.\n -> Guardar cambios.", "Seleccionar.", "Cancelar.");
  3273.                 }
  3274.             }
  3275.         }
  3276.    
  3277.     case DIALOG_DUEL:
  3278.     {
  3279.         if(!response) return ExpireDuel(playerid,IdDuel[playerid]);
  3280.         if(response)
  3281.         {
  3282.             UsingArena = true;
  3283.             new name[MAX_PLAYER_NAME], string[44];
  3284.             GetPlayerName(playerid, name, sizeof(name));
  3285.             format(string, sizeof(string), "»»[DUEL]«« : %s accepted the challenge, wait 8 seconds to go to Duel.",name);
  3286.             SendClientMessage(IdDuel[playerid],0xF6F600AA,string);
  3287.             SendClientMessage(playerid,0xF6F600AA,"»»[DUEL]«« : You accepted the Duel Wait 8 seconds to process your Data");
  3288.             SetTimerEx("GoDuel",8000,false,"ii",playerid,IdDuel[playerid]);
  3289.         }
  3290.         return 1;
  3291.     }
  3292.         case DIALOG_REG:
  3293.         {
  3294.             if ( response )
  3295.             {
  3296.                 if ( sscanf( inputtext, "s[256]", inputtext[ 0 ] || strlen( inputtext[ 0 ] ) == 0 ) )
  3297.                     return ShowPlayerDialog( playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Password", ""COL_RED"Error!\n\
  3298.                                                                                             {FFFFFF}Please write your desired password.\n",
  3299.                                                                                             ">>>", "Exit");
  3300.                 if ( strlen( inputtext[ 0 ] ) < 3 || strlen( inputtext[ 0 ] ) > 20 )
  3301.                     return ShowPlayerDialog( playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Password", ""COL_RED"Error!\n\
  3302.                                                                                             {FFFFFF}Please write your desired password.\n\
  3303.                                                                                             "COL_RED"#{FFFFFF}Min. 3 Char. Max. 20 Char.",
  3304.                                                                                             ">>>", "Exit");
  3305.                 new
  3306.                     PlayerFile[ 13 + MAX_PLAYER_NAME ],
  3307.                     pDate[ 8 + 15 ], //HH:MM:SS + DD.MM.YYYY = 18
  3308.                     pYear,
  3309.                     pMonth,
  3310.                     pDay,
  3311.                     pHour,
  3312.                     pMinute,
  3313.                     pSecond,
  3314.                     pIP[ 20 ],
  3315.                     InfBox[ 512 ]
  3316.                 ;
  3317.                 getdate(pYear, pMonth, pDay ),gettime(pHour, pMinute, pSecond );
  3318.                 GetPlayerIp( playerid, pIP, 20 );
  3319.  
  3320.  
  3321.                 format( PlayerFile , sizeof PlayerFile, "Cuentas/%s.ini", Encode( pName( playerid ) ) );
  3322.                 format( pDate, sizeof pDate, "%d:%d:%d  %d/%d/%d",pHour, pMinute, pSecond , pDay, pMonth, pYear );
  3323.                 format( InfBox, sizeof InfBox, "{FFFFFF}Su cuenta fue registrada!\n\n\
  3324.                                                         "COL_LIGHTBLUE"Cuenta: {FFFFFF}%s\n\
  3325.                                                         "COL_LIGHTBLUE"Contraseña: {FFFFFF}%s\n\n\
  3326.                                                         Has recibido "COL_GREEN"$5000{FFFFFF} por tu registro.\n\
  3327.                                                         Would you like to login?", pName( playerid ),
  3328.                                                                                  inputtext       );
  3329.                 ShowPlayerDialog( playerid, DIALOG_LOG, DIALOG_STYLE_MSGBOX, "Login", InfBox, "Yes", "No" );
  3330.  
  3331.  
  3332.                 new
  3333.                     INI:PlayerAcc = INI_Open( PlayerFile );
  3334.  
  3335.                 INI_WriteString( PlayerAcc, "NAME",               pName( playerid )    );
  3336.                 INI_WriteString( PlayerAcc, "PASSWORD",           inputtext            );
  3337.                 INI_WriteString( PlayerAcc, "REG_DATE",           pDate                );
  3338.                 INI_WriteString( PlayerAcc, "LAST_ON",            "Primera vez"   );
  3339.                 INI_WriteInt( PlayerAcc,    "MONEYS",             5000                 );
  3340.                 INI_WriteInt( PlayerAcc,    "SCORE",              15                   );
  3341.                 INI_WriteInt( PlayerAcc,    "KILLS",              0                    );
  3342.                 INI_WriteInt( PlayerAcc,    "DEATHS",             0                    );
  3343.                 INI_WriteInt( PlayerAcc,    "VIP_LEVEL",          0                    );
  3344.                 INI_WriteInt( PlayerAcc,    "LEVEL",              0                    );
  3345.                 INI_WriteInt( PlayerAcc,    "MY_SKIN",            0                    );
  3346.                 INI_WriteInt( PlayerAcc,    "MY_TIME",            12                   );
  3347.                 INI_WriteInt( PlayerAcc,    "MY_WEATHER",         1                    );
  3348.  
  3349.                 INI_Close( PlayerAcc );
  3350.  
  3351.                 SetPVarString( playerid, "Date", pDate );
  3352.                 SetPVarInt( playerid, "Logged", 0 );
  3353.                 GivePlayerMoney( playerid, 5000 );
  3354.                 SetPlayerScore( playerid, GetPlayerScore( playerid ) + 15 );
  3355.  
  3356.  
  3357.             }
  3358.         }
  3359.         case DIALOG_REG_REQ:
  3360.         {
  3361.             if ( response ) cmd_register( playerid, "");
  3362.             if ( !response ) return 0;
  3363.  
  3364.         }
  3365.  
  3366.         case DIALOG_LOGIN: ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Contraseña",
  3367.                                                                                           "{FFFFFF}Por favor escriba su contraseña.",
  3368.                                                                                           "Entrar", "Salir");
  3369.  
  3370.         case DIALOG_LOG:
  3371.         {
  3372.             if ( response )
  3373.                 ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Contraseña",   "{FFFFFF}Por favor escriba su contraseña.","Entrar","Salir");
  3374.         }
  3375.     case DIALOG_LOG_DONE:
  3376.         {
  3377.             SpawnPlayer(playerid);
  3378.                 resetvar@playerVehicles( playerid );
  3379.     return CallLocalFunction("loadPlayerVehicles", "d", playerid), 0x01;
  3380.             }
  3381.        
  3382.  
  3383.         case DIALOG_LOGIN2:
  3384.         {
  3385.             if ( !response ) return Kick( playerid );
  3386.             if ( response )
  3387.             {
  3388.                 if ( strlen( inputtext ) == 0 )
  3389.                     return ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Contraseña",    ""COL_RED"Error!\n\
  3390.                                                                                                                 {FFFFFF}Por favor escriba su contraseña.",
  3391.                                                                                                                 "Entrar", "Salir");
  3392.  
  3393.                 new
  3394.                     PlayerFile[ 13 + MAX_PLAYER_NAME ],
  3395.                     Password[ 20 + 1 ]
  3396.                 ;
  3397.                 format( PlayerFile , sizeof PlayerFile, "Cuentas/%s.ini", Encode( pName( playerid ) ) );
  3398.                 INI_ParseFile( PlayerFile, "ParsePlayerPass", false, true, playerid );
  3399.                 GetPVarString( playerid, "pPass", Password, sizeof Password );
  3400.  
  3401.                 if ( !strcmp ( inputtext, Password, false ) )
  3402.                 {
  3403.                     new
  3404.                         sTitle[ 21 + MAX_PLAYER_NAME + 25 ],
  3405.                         sBoxInfo[ 512 ],
  3406.                         Pdata[ 8 + 15 ],
  3407.                         Pdata2[ 8 + 16 ]
  3408.                     ;
  3409.  
  3410.                     SetPVarInt( playerid, "Logged", 1 );
  3411.                     format( PlayerFile , sizeof PlayerFile, "Cuentas/%s.ini", Encode( pName( playerid ) ) );
  3412.                     INI_ParseFile( PlayerFile, "LoadUser", false, true, playerid, true, false );
  3413.                     GetPVarString( playerid, "Date", Pdata, 8 + 12 );
  3414.                     GetPVarString( playerid, "ON", Pdata2, 8 + 16 );
  3415.  
  3416.  
  3417.                     if ( GetPVarInt( playerid, "CGod" ) == 1 )
  3418.                     {
  3419.                         SetPVarInt( playerid, "CGod", 1);
  3420.                         CGod[ playerid ] = SetTimerEx( "CarGodTimer", 200, true, "i", playerid );
  3421.                     }
  3422.                     if ( GetPVarInt( playerid, "God" ) == 1 )
  3423.                     {
  3424.                         SetPVarInt( playerid, "God", 1);
  3425.                         God[ playerid ] = SetTimerEx( "GodTimer", 200, true, "i", playerid );
  3426.                     }
  3427.                     format( sTitle, sizeof sTitle, "{FFFFFF}Bienvenido "COL_LIGHTBLUE"%s{FFFFFF}!", pName( playerid ) );
  3428.                     if ( GetPVarInt( playerid, "Level" ) == 0 )
  3429.                     {
  3430.                     format( sBoxInfo, sizeof sBoxInfo, "{FFFFFF}Estos son los datos de su cuenta:\n\n\
  3431.                                                         {FFFFFF}Ranking: "COL_LIGHTBLUE"%s\n\
  3432.                                                         {FFFFFF}VIP Level: "COL_LIGHTBLUE"%d\n\
  3433.                                                         {FFFFFF}Score: "COL_LIGHTBLUE"%d\n\
  3434.                                                         {FFFFFF}Registrado: "COL_LIGHTBLUE"%s\n\
  3435.                                                          {FFFFFF}Ultima conexion: "COL_LIGHTBLUE"%s\n\n\
  3436.                                                         {FFFFFF}Para ver las estadisticas use "COL_LIGHTBLUE"/estadisticas\n\
  3437.                                                         {FFFFFF}Use "COL_LIGHTBLUE"/miscomandos{FFFFFF} para ver sus comandos.",
  3438.                                                                                                    GetPlayerLevelName( playerid ),
  3439.                                                                                                    GetPlayerVLevel( playerid ),
  3440.                                                                                                    GetPVarInt( playerid, "Score" ),
  3441.                                                                                                    Pdata,
  3442.                                                                                                    Pdata2 );
  3443.                     }
  3444.                     if ( GetPVarInt( playerid, "Level" ) > 1 )
  3445.                     {
  3446.                     format( sBoxInfo, sizeof sBoxInfo, "{FFFFFF}Estos son los datos de su cuenta:\n\n\
  3447.                                                         {FFFFFF}Level: "COL_LIGHTBLUE"%s\n\
  3448.                                                         {FFFFFF}VIP Level: "COL_LIGHTBLUE"%d\n\
  3449.                                                         {FFFFFF}Score: "COL_LIGHTBLUE"%d\n\
  3450.                                                         {FFFFFF}Registrado: "COL_LIGHTBLUE"%s\n\n",
  3451.                                                                                                    GetPlayerLevelName( playerid ),
  3452.                                                                                                    GetPlayerVLevel( playerid ),
  3453.                                                                                                    GetPVarInt( playerid, "Score" ),
  3454.                                                                                                    Pdata );
  3455.  
  3456.                     format( sBoxInfo, sizeof sBoxInfo,  "%s{FFFFFF}Para ver las estadisticas use "COL_LIGHTBLUE"/stats\n\
  3457.                                                         {FFFFFF}Use "COL_LIGHTBLUE"/miscomandos{FFFFFF} para ver sus comandos.\n\
  3458.                                                         "COL_RED"Nota administrativa:{FFFFFF}Use "COL_LIGHTBLUE"/acmds {FFFFFF}and "COL_LIGHTBLUE"/areglas {FFFFFF}para ver los comandos y reglas.",sBoxInfo);
  3459.                     }
  3460.                     ShowPlayerDialog(playerid, DIALOG_LOG_DONE, DIALOG_STYLE_MSGBOX, sTitle, sBoxInfo, "Ok", "");
  3461. //SpawnPlayer(playerid);
  3462.                 }
  3463.                 else ShowPlayerDialog(playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, ""COL_RED"Contraseña erronea...", ""COL_RED"Contraseña erronea!\n{FFFFFF}Intente de nuevo.", "Iniciar", "Salir");
  3464.  
  3465.  
  3466.             }
  3467.         }
  3468.     }
  3469.  
  3470.     return 1;
  3471. }
  3472. // fin comandos register
  3473.  
  3474. public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
  3475. {
  3476.     /*--------------------------------------------------
  3477.  
  3478.         * OnPlayerKeyStateChange
  3479.             * Params:
  3480.                 - playerid
  3481.                 - newkeys
  3482.                 - oldkeys
  3483.             * Función:
  3484.                 - Es empleada para tomar las posiciones del concesionario
  3485.                 cuando éste se crea o se edita, se hace un cálculo de
  3486.                 comparación básico para determinar xMin, yMin, xMax, yMax.
  3487.  
  3488.     --------------------------------------------------*/
  3489.  
  3490.     if( d@optionsEdit[playerid][0b100] )
  3491.     {
  3492.         if( newkeys & KEY_FIRE )
  3493.             ShowPlayerDialog( playerid, showMenuCreateDealer, DIALOG_STYLE_LIST, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Menú de edición de concesionario."," 1)\tNombre del concesionario.\n 2)\tPosición del concesionario.\n", "Seleccionar.", "Cancelar.");
  3494.         else if( newkeys & KEY_YES )
  3495.         {
  3496.             static
  3497.                 Float:f@positions[0b10][0b11];
  3498.             if( d@optionsEdit[playerid][0b100] == 1 )
  3499.             {
  3500.                 GetPlayerPos( playerid, f@positions[0][0], f@positions[0][1], f@positions[0][0b10]);
  3501.                 d@optionsEdit[playerid][0b100] = 2;
  3502.                 SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Vaya a la segunda posición, pulse 'Y' cuando se encuentre listo.");
  3503.             }
  3504.             else if ( d@optionsEdit[playerid][0b100] == 2 )
  3505.             {
  3506.                 GetPlayerPos( playerid, f@positions[1][0], f@positions[1][1], f@positions[1][0b10]);
  3507.  
  3508.                 dealerLocations[d@optionsEdit[playerid][0]][f@maxX] = ((f@positions[0][0] > f@positions[1][0]) ? (f@positions[0][0]) : (f@positions[1][0]));
  3509.  
  3510.                 dealerLocations[d@optionsEdit[playerid][0]][f@minX] = ((f@positions[0][0] < f@positions[1][0]) ? (f@positions[0][0]) : (f@positions[1][0]));
  3511.  
  3512.                 dealerLocations[d@optionsEdit[playerid][0]][f@maxY] = ((f@positions[0][1] > f@positions[1][1]) ? (f@positions[0][1]) : (f@positions[1][1]));
  3513.                 dealerLocations[d@optionsEdit[playerid][0]][f@minY] = ((f@positions[0][1] < f@positions[1][1]) ? (f@positions[0][1]) : (f@positions[1][1]));
  3514.  
  3515.                 SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Coordenadas obtenidas correctamente.");
  3516.  
  3517.                 if(d@optionsEdit[playerid][0b10] == 1) ShowPlayerDialog(playerid, showMenuDealerEdit, DIALOG_STYLE_LIST, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Menu de edición.", "1)\t Nombre del concesionario.\n 2)\tPosicion del concesionario.\n 3)\tEliminar concesionario.\n -> Guardar cambios.", "Seleccionar.", "Cancelar.");
  3518.                 else CallLocalFunction("OnDialogResponse","dddds", playerid, createDealerName, 1, 1, dealerLocations[d@optionsEdit[playerid][0]][sz@nameDealer]);
  3519.             }
  3520.         }
  3521.     }
  3522.     return 1;
  3523. }
  3524.  
  3525. //============================================================================//
  3526.  
  3527. function:: verifyConnection()
  3528. {
  3529.     /*--------------------------------------------------
  3530.  
  3531.         * verifiConnection
  3532.             *Params:
  3533.                 - No params.
  3534.             * Función:
  3535.                 - Realiza la conexión con la base de datos.
  3536.                 - Verifica que la conexión se haya realizado correctamente.
  3537.  
  3538.     --------------------------------------------------*/
  3539.  
  3540.     cHandle = mysql_connect( DB_HOST, DB_USER, DB_DB, DB_PASSWORD );
  3541.     print("\n\t||=============[ wDealer/Ownership ]==============||\n");
  3542.     if( 0 <= mysql_ping(cHandle) < 0b10 ) {
  3543.  
  3544.         connectUpdate:
  3545.         mysql_debug( true );
  3546.         print("\t[mySQL] - Conexión con la base de datos '"#DB_DB"' realizada. \n\t\t\twDealership iniciado.");
  3547.         CallLocalFunction( "loadDealersData", #);
  3548.     }
  3549.     else {
  3550.  
  3551.         print("\t[mySQL - ¡Warning!] - La conexión con la base de datos '"#DB_DB"' no pudo verificarse. \n\t\t\tReintentando en 5 segundos.");
  3552.         sleep_ex( 0x271 << 0b11 );
  3553.         cHandle = mysql_connect( DB_HOST, DB_USER, DB_DB, DB_PASSWORD );
  3554.  
  3555.         if( 0 <= mysql_ping(cHandle) < 0b10 ) goto connectUpdate;
  3556.         else {
  3557.  
  3558.             print("\t[mySQL - ¡Warning!] - No se logro la conexión con la base de datos '"#DB_DB"'. \n\twDealership no puede iniciarse.");
  3559.             return SendRconCommand("exit"), false;
  3560.         }
  3561.     }
  3562.     print("\n\t||================================================||\n\n");
  3563.     return true;
  3564. }
  3565.  
  3566. //============================================================================//
  3567.  
  3568. function:: OnQueryFinish( threadID, extraid )
  3569. {
  3570.     /*--------------------------------------------------
  3571.  
  3572.         * OnQueryFinish
  3573.             * Params:
  3574.                 - threadID
  3575.                 - extraid
  3576.             * Función:
  3577.                 - Este callback recibirá los datos que el plugin mysql nos
  3578.                 retorne, ya sea por medio de la caché o simplemente al enviar
  3579.                 querys vacías.
  3580.                 - Aquí es donde se asignan lo datos del cargado de los vehículos
  3581.                 tanto de usuarios como para los concesionarios.
  3582.  
  3583.     --------------------------------------------------*/
  3584.  
  3585.     static
  3586.         rows,
  3587.         fields,
  3588.         fetch[0b11110];
  3589.  
  3590.     cache_get_data(rows, fields);
  3591.  
  3592.     switch( threadID )
  3593.     {
  3594.         case empty@queryReceived: mysql_free_result();
  3595.         case dealerDataAssign:
  3596.         {
  3597.             if( rows )
  3598.             {
  3599.                 for( new j = 0, i = 0; j <= rows-1; j++)
  3600.                 {
  3601.                     i = getNextVehicleID();
  3602.  
  3603.                     paramsvDealer[ i ][ inumdID ]       = strval    ((cache_get_row(j, 0, fetch),fetch));
  3604.                     cache_get_row(j, 1, paramsvDealer[ i ][ sCarName ] );
  3605.                     paramsvDealer[ i ][ inumDealer ]    = strval    ((cache_get_row(j,  2, fetch),fetch));
  3606.                     paramsvDealer[ i ][ iModel ]        = strval    ((cache_get_row(j,  3, fetch),fetch));
  3607.                     paramsvDealer[ i ][ iPrice ]        = strval    ((cache_get_row(j, 4, fetch),fetch));
  3608.                     paramsvDealer[ i ][ fdPos_X ]       = floatstr  ((cache_get_row(j, 5, fetch),fetch));
  3609.                     paramsvDealer[ i ][ fdPos_Y ]       = floatstr  ((cache_get_row(j, 6, fetch),fetch));
  3610.                     paramsvDealer[ i ][ fdPos_Z ]       = floatstr  ((cache_get_row(j, 7, fetch),fetch));
  3611.                     paramsvDealer[ i ][ fdPos_R ]       = floatstr  ((cache_get_row(j,8, fetch),fetch));
  3612.  
  3613.                     paramsvDealer[ i ][ inumID  ] = CreateVehicle(  paramsvDealer[i][iModel] , paramsvDealer[i][fdPos_X], paramsvDealer[i][fdPos_Y],
  3614.                                                                     paramsvDealer[i][fdPos_Z], paramsvDealer[i][fdPos_R], random(0xFF), random(0xFF), 5<<3);
  3615.  
  3616.                     SetVehicleParamsEx(
  3617.                                         paramsvDealer[i][inumID],
  3618.                                         VEHICLE_PARAMS_OFF,
  3619.                                         VEHICLE_PARAMS_OFF,
  3620.                                         VEHICLE_PARAMS_OFF,
  3621.                                         VEHICLE_PARAMS_OFF,
  3622.                                         VEHICLE_PARAMS_OFF,
  3623.                                         VEHICLE_PARAMS_OFF,
  3624.                                         VEHICLE_PARAMS_OFF
  3625.                                       );
  3626.                 }
  3627.                 printf("[wDealer Debug] - Se han cargado %d vehículos de los concesionarios.", rows);
  3628.             }
  3629.             mysql_function_query(cHandle, "SELECT * FROM `dealerLocations` LIMIT "#MAX_DEALERS";", true, "OnQueryFinish", "d", dealerAssign);
  3630.         }
  3631.         case dealerAssign:
  3632.         {
  3633.             if( 0 < rows <= MAX_DEALERS )
  3634.             {
  3635.                 for( new i = 0, j = 1; i < rows; i++, j++ )
  3636.                 {
  3637.                     dealerLocations[j][id@sqlid] = strval   ((cache_get_row(i, 0, fetch),fetch));
  3638.                     cache_get_row(i, 1, dealerLocations[j][sz@nameDealer]);
  3639.                     dealerLocations[j][d@vehicles] = strval ((cache_get_row(i, 0b10, fetch),fetch));
  3640.                     dealerLocations[j][f@maxX] = floatstr   ((cache_get_row(i, 0b11, fetch),fetch));
  3641.                     dealerLocations[j][f@minX] = floatstr   ((cache_get_row(i,0b100, fetch),fetch));
  3642.                     dealerLocations[j][f@maxY] = floatstr   ((cache_get_row(i,0b101, fetch),fetch));
  3643.                     dealerLocations[j][f@minY] = floatstr   ((cache_get_row(i,0b110, fetch),fetch));
  3644.                 }
  3645.                 printf("[wDealer Debug] - Se han cargado %d concesionarios.", rows);
  3646.             }
  3647.             mysql_free_result();
  3648.         }
  3649.         case load@playerVehicles:
  3650.         {
  3651.             if(  0 < rows <= MAX_VEH_PER_PLAYER )
  3652.             {
  3653.                 for( new i = 0; i < rows; i++ )
  3654.                 {
  3655.                     playerVehicle[extraid][i][idOwner]                      = extraid;
  3656.  
  3657.                     playerVehicle[extraid][i][inumcID]                      = strval((cache_get_row(i, 0, fetch),fetch));
  3658.                     cache_get_row(i, 1, playerVehicle[extraid][i][sCarOwner]);
  3659.                     cache_get_row(i, 0b10, playerVehicle[extraid][i][sCarName]);
  3660.                     playerVehicle[extraid][i][iModel]                       = strval    ((cache_get_row(i,  0b11, fetch),fetch));
  3661.                     playerVehicle[extraid][i][ipRepair]                     = strval    ((cache_get_row(i, 0b100, fetch),fetch));
  3662.                     playerVehicle[extraid][i][status]                       = ((strval  ((cache_get_row(i, 0b101, fetch),fetch)) == 1 ) ? ( true ) : ( false ));
  3663.                     playerVehicle[extraid][i][fPos_X]                       = floatstr  ((cache_get_row(i, 0b110, fetch),fetch));
  3664.                     playerVehicle[extraid][i][fPos_Y]                       = floatstr  ((cache_get_row(i, 0b111, fetch),fetch));
  3665.                     playerVehicle[extraid][i][fPos_Z]                       = floatstr  ((cache_get_row(i,0b1000, fetch),fetch));
  3666.                     playerVehicle[extraid][i][fPos_R]                       = floatstr  ((cache_get_row(i,0b1001, fetch),fetch));
  3667.                     playerVehicle[extraid][i][paramsVeh][pEngine]           = strval    ((cache_get_row(i,0b1010, fetch),fetch));
  3668.                     playerVehicle[extraid][i][paramsVeh][pLights]           = strval    ((cache_get_row(i,0b1011, fetch),fetch));
  3669.                     playerVehicle[extraid][i][paramsVeh][pAlarm]            = strval    ((cache_get_row(i,0b1100, fetch),fetch));
  3670.                     playerVehicle[extraid][i][paramsVeh][pLock]             = strval    ((cache_get_row(i,0b1101, fetch),fetch));
  3671.                     playerVehicle[extraid][i][paramsVeh][pBonnet]           = strval    ((cache_get_row(i,0b1110, fetch),fetch));
  3672.                     playerVehicle[extraid][i][paramsVeh][pBoot]             = strval    ((cache_get_row(i,0b1111, fetch),fetch));
  3673.                     playerVehicle[extraid][i][paramsVeh][pObjective]        = strval    ((cache_get_row(i,  0x10, fetch),fetch));
  3674.                     playerVehicle[extraid][i][damageVeh][dHealth]           = floatstr  ((cache_get_row(i,  0x11, fetch),fetch));
  3675.                     playerVehicle[extraid][i][damageVeh][dPanels]           = strval    ((cache_get_row(i,  0x12, fetch),fetch));
  3676.                     playerVehicle[extraid][i][damageVeh][dDoors]            = strval    ((cache_get_row(i,  0x13, fetch),fetch));
  3677.                     playerVehicle[extraid][i][damageVeh][dLights]           = strval    ((cache_get_row(i,  0x14, fetch),fetch));
  3678.                     playerVehicle[extraid][i][damageVeh][dTires]            = strval    ((cache_get_row(i,  0x15, fetch),fetch));
  3679.                     playerVehicle[extraid][i][mods][mColores][0]            = strval    ((cache_get_row(i,  0x16, fetch),fetch));
  3680.                     playerVehicle[extraid][i][mods][mColores][1]            = strval    ((cache_get_row(i,  0x17, fetch),fetch));
  3681.                     playerVehicle[extraid][i][mods][mSpoiler]               = strval    ((cache_get_row(i,  0x18, fetch),fetch));
  3682.                     playerVehicle[extraid][i][mods][mHood]                  = strval    ((cache_get_row(i,  0x19, fetch),fetch));
  3683.                     playerVehicle[extraid][i][mods][mRoof]                  = strval    ((cache_get_row(i,  0x1A, fetch),fetch));
  3684.                     playerVehicle[extraid][i][mods][mSideskirts][0]         = strval    ((cache_get_row(i,  0x1B, fetch),fetch));
  3685.                     playerVehicle[extraid][i][mods][mSideskirts][1]         = strval    ((cache_get_row(i,  0x1C, fetch),fetch));
  3686.                     playerVehicle[extraid][i][mods][mNitro]                 = strval    ((cache_get_row(i,  0x1D, fetch),fetch));
  3687.                     playerVehicle[extraid][i][mods][mLamps]                 = strval    ((cache_get_row(i,  0x1E, fetch),fetch));
  3688.                     playerVehicle[extraid][i][mods][mExhaust]               = strval    ((cache_get_row(i,  0x1F, fetch),fetch));
  3689.                     playerVehicle[extraid][i][mods][mWheels]                = strval    ((cache_get_row(i,  0x20, fetch),fetch));
  3690.                     playerVehicle[extraid][i][mods][mStereo]                = strval    ((cache_get_row(i,  0x21, fetch),fetch));
  3691.                     playerVehicle[extraid][i][mods][mHidraulics]            = strval    ((cache_get_row(i,  0x22, fetch),fetch));
  3692.                     playerVehicle[extraid][i][mods][mPaintjob]              = strval    ((cache_get_row(i,  0x23, fetch),fetch));
  3693.                     playerVehicle[extraid][i][mods][mBullbar]               = strval    ((cache_get_row(i,  0x24, fetch),fetch));
  3694.                     playerVehicle[extraid][i][mods][mRealBullbars]          = strval    ((cache_get_row(i,  0x25, fetch),fetch));
  3695.                     playerVehicle[extraid][i][mods][mFrontSign]             = strval    ((cache_get_row(i,  0x26, fetch),fetch));
  3696.                     playerVehicle[extraid][i][mods][mFrontBullbars]         = strval    ((cache_get_row(i,  0x27, fetch),fetch));
  3697.                     playerVehicle[extraid][i][mods][mBullbars]              = strval    ((cache_get_row(i,  0x28, fetch),fetch));
  3698.                     playerVehicle[extraid][i][mods][mRearBumper]            = strval    ((cache_get_row(i,  0x29, fetch),fetch));
  3699.                     playerVehicle[extraid][i][mods][mVents][0]              = strval    ((cache_get_row(i,  0x2A, fetch),fetch));
  3700.                     playerVehicle[extraid][i][mods][mVents][1]              = strval    ((cache_get_row(i,  0x2B, fetch),fetch));
  3701.                     playerVehicle[extraid][i][mods][mFrontBumper]           = strval    ((cache_get_row(i,  0x2C, fetch),fetch));
  3702.                     playerVehicle[extraid][i][Maletero][tArmas][0]          = strval    ((cache_get_row(i,  0x2D, fetch),fetch));
  3703.                     playerVehicle[extraid][i][Maletero][tMuniciones][0]     = strval    ((cache_get_row(i,  0x2E, fetch),fetch));
  3704.                     playerVehicle[extraid][i][Maletero][tArmas][1]          = strval    ((cache_get_row(i,  0x2F, fetch),fetch));
  3705.                     playerVehicle[extraid][i][Maletero][tMuniciones][1]     = strval    ((cache_get_row(i,  0x30, fetch),fetch));
  3706.                     playerVehicle[extraid][i][Maletero][tArmas][0b10]       = strval    ((cache_get_row(i,  0x31, fetch),fetch));
  3707.                     playerVehicle[extraid][i][Maletero][tMuniciones][0b10]  = strval    ((cache_get_row(i,  0x32, fetch),fetch));
  3708.                     playerVehicle[extraid][i][Maletero][tArmas][0b11]       = strval    ((cache_get_row(i,  0x33, fetch),fetch));
  3709.                     playerVehicle[extraid][i][Maletero][tMuniciones][0b11]  = strval    ((cache_get_row(i,  0x34, fetch),fetch));
  3710.                     playerVehicle[extraid][i][Maletero][tArmas][0b100]      = strval    ((cache_get_row(i,  0x35, fetch),fetch));
  3711.                     playerVehicle[extraid][i][Maletero][tMuniciones][0b100] = strval    ((cache_get_row(i,  0x36, fetch),fetch));
  3712.                     playerVehicle[extraid][i][Maletero][tArmadura]          = floatstr  ((cache_get_row(i,  0x37, fetch),fetch));
  3713.  
  3714.                     if( playerVehicle[extraid][i][status] )
  3715.                         CallLocalFunction("createPlayerVehicle", "dd", extraid, i );
  3716.  
  3717.                     printf("[wDealer:] Se ha cargado el auto N°%d de %s. Este %s.", i+1, playerVehicle[extraid][i][sCarOwner], ( ( playerVehicle[extraid][i][status] ) ? ( "a sido creado correctamente" ) : ( "no a sido creado" )));
  3718.  
  3719.                 }
  3720.             }
  3721.             mysql_free_result();
  3722.         }
  3723.         case sql@insertID:
  3724.         {
  3725.             for( new i = GetMaxPlayers()-1; i > -1; --i )
  3726.             {
  3727.                 if( isvehicle@playerProperty( i, playerVehicle[i][extraid][icnumID] ) )
  3728.                     playerVehicle[i][extraid][inumcID] = mysql_insert_id(cHandle);
  3729.                 else
  3730.                     continue;
  3731.             }
  3732.         }
  3733.         case sql_d@insertID:
  3734.         {
  3735.              paramsvDealer[extraid][inumdID] = mysql_insert_id(cHandle);
  3736.              CallLocalFunction("save@DealersData", #);
  3737.         }
  3738.         case sql@dealerInsertID:
  3739.         {
  3740.             dealerLocations[extraid][id@sqlid] = mysql_insert_id(cHandle);
  3741.             CallLocalFunction("save@dealerLocations", #);
  3742.         }
  3743.         default: mysql_free_result();
  3744.     }
  3745.     mysql_free_result();
  3746. }
  3747.  
  3748. //============================================================================//
  3749.  
  3750. function:: loadDealersData()
  3751. {
  3752.     /*--------------------------------------------------
  3753.  
  3754.         * loadDealersData
  3755.             *Params:
  3756.                 - No params.
  3757.             * Función:
  3758.                 - Envía la consulta que seleccionará todos los vehículos
  3759.                 de los concesionarios y los integrará en el caché para después
  3760.                 manipularlos y así crear los vehículos en OnQueryFinish de acuerdo
  3761.                 a la información obtenida.
  3762.  
  3763.     --------------------------------------------------*/
  3764.  
  3765.     static
  3766.         d@iterator;
  3767.     d@iterator = -1;
  3768.  
  3769.     for( new i; i < MAX_DEALERS; i++ )
  3770.     {
  3771.         while( dealerLoc:++d@iterator < dealerLoc ) {
  3772.             dealerLocations[i][dealerLoc:d@iterator] = 0;
  3773.         }
  3774.     }
  3775.  
  3776.     mysql_function_query(cHandle, "SELECT * FROM `carsDealers` LIMIT "#MAX_DEALER_VEHICLES"", true, "OnQueryFinish", "d", dealerDataAssign);
  3777.     return 0x01;
  3778. }
  3779.  
  3780. //============================================================================//
  3781.  
  3782. function:: save@DealersData()
  3783. {
  3784.     /*--------------------------------------------------
  3785.  
  3786.         * save@DealersData
  3787.             * Params:
  3788.                 - No params.
  3789.             * Función:
  3790.                 - Esta función mediante un bucle formateará y ejecutará las
  3791.                 consultas correspondientes para almacenar todos los vehículos
  3792.                 de los concesionarios
  3793.  
  3794.     --------------------------------------------------*/
  3795.  
  3796.     static
  3797.         query[0x100],
  3798.         count;
  3799.  
  3800.     count = 0;
  3801.  
  3802.     for( new i = MAX_VEHICLES-1; i > 0; --i)
  3803.     {
  3804.         if( paramsvDealer[ i ][ inumDealer ] <= 0 ) continue;
  3805.         else
  3806.         {
  3807.             mysql_format( cHandle, query, "UPDATE `carsDealers` SET `CarName` = '%e', `DealerCar` = %d, `CarModel` = %d,`CarPrice` = %d, `CarPosX` = %f, `CarPosY` = %f, `CarPosZ` = %f, `CarRot` = %f WHERE `ID_CarDealer` = %d",
  3808.                                             paramsvDealer[i][sCarName], paramsvDealer[i][inumDealer], paramsvDealer[i][iModel], paramsvDealer[i][iPrice], paramsvDealer[i][fdPos_X],
  3809.                                             paramsvDealer[i][fdPos_Y], paramsvDealer[i][fdPos_Z], paramsvDealer[i][fdPos_R], paramsvDealer[i][inumdID]);
  3810.  
  3811.             mysql_function_query( cHandle, query, false, "OnQueryFinish", "d", empty@queryReceived);
  3812.             count ++;
  3813.         }
  3814.     }
  3815.     CallLocalFunction("save@dealerLocations", #);
  3816.     return printf("[wDealer]: Se han guardado %d vehículos de los concesionarios", count);
  3817. }
  3818.  
  3819. //============================================================================//
  3820.  
  3821. function:: loadPlayerVehicles( playerid )
  3822. {
  3823.     /*--------------------------------------------------
  3824.  
  3825.         * loadPlayerVehicles
  3826.             * Params:
  3827.                 - playerid
  3828.             * Función:
  3829.                 - Enviará la consulta correspondiente para cargar los
  3830.                 vehículos del usuario determinado ( playerid ), asignando los
  3831.                 datos obtenidos a la caché para después ser manipulados en
  3832.                 OnQueryFinish y así poder crear los vehículos de usuario
  3833.  
  3834.     --------------------------------------------------*/
  3835.  
  3836.     static
  3837.         sz@Query[0b1010101];
  3838.     mysql_format( cHandle, sz@Query, "SELECT * FROM `uservehicles` WHERE `OwnerName` = '%e'", getPlayerName( playerid, true ));
  3839.     return mysql_function_query( cHandle, sz@Query, true, "OnQueryFinish", "dd", load@playerVehicles, playerid), 0x01;
  3840. }
  3841.  
  3842. //============================================================================//
  3843.  
  3844. function:: createPlayerVehicle( playerid, vehicleID )
  3845. {
  3846.     /*--------------------------------------------------
  3847.  
  3848.         * createPlayerVehicle
  3849.             * Params:
  3850.                 - playerid
  3851.                 - vehicleID
  3852.             * Función:
  3853.                 - Se ejecutará después de asignar los datos a las variables especifícas
  3854.                 para crear el vehículo & asignarle el Tuning correspondiente además de
  3855.                 establecer el valor de las puertas al vehículo.
  3856.  
  3857.     --------------------------------------------------*/
  3858.  
  3859.     if( IsPlayerConnected( playerid ) && playerVehicle[playerid][vehicleID][status] )
  3860.     {
  3861.         playerVehicle[playerid][vehicleID][icnumID] = CreateVehicle( playerVehicle[playerid][vehicleID][iModel], playerVehicle[playerid][vehicleID][fPos_X], playerVehicle[playerid][vehicleID][fPos_Y], playerVehicle[playerid][vehicleID][fPos_Z],
  3862.                                                                      playerVehicle[playerid][vehicleID][fPos_R], playerVehicle[playerid][vehicleID][mods][mColores][0], playerVehicle[playerid][vehicleID][mods][mColores][1], -1);
  3863.  
  3864.         if( playerVehicle[playerid][vehicleID][mods][mSpoiler]      != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mSpoiler]);
  3865.         if( playerVehicle[playerid][vehicleID][mods][mHood]         != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mHood]);
  3866.         if( playerVehicle[playerid][vehicleID][mods][mRoof]         != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mRoof]);
  3867.         if( playerVehicle[playerid][vehicleID][mods][mSideskirts][0]!= -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mSideskirts][0]);
  3868.         if( playerVehicle[playerid][vehicleID][mods][mSideskirts][1]!= -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mSideskirts][1]);
  3869.         if( playerVehicle[playerid][vehicleID][mods][mNitro]        != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mNitro]);
  3870.         if( playerVehicle[playerid][vehicleID][mods][mLamps]        != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mLamps]);
  3871.         if( playerVehicle[playerid][vehicleID][mods][mExhaust]      != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mExhaust]);
  3872.         if( playerVehicle[playerid][vehicleID][mods][mWheels]       != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mWheels]);
  3873.         if( playerVehicle[playerid][vehicleID][mods][mStereo]       != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mStereo]);
  3874.         if( playerVehicle[playerid][vehicleID][mods][mHidraulics]   != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mHidraulics]);
  3875.         if( playerVehicle[playerid][vehicleID][mods][mBullbar]      != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mBullbar]);
  3876.         if( playerVehicle[playerid][vehicleID][mods][mRealBullbars] != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mRealBullbars]);
  3877.         if( playerVehicle[playerid][vehicleID][mods][mFrontSign]    != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mFrontSign]);
  3878.         if( playerVehicle[playerid][vehicleID][mods][mFrontBullbars]!= -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mFrontBullbars]);
  3879.         if( playerVehicle[playerid][vehicleID][mods][mBullbars]     != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mBullbars]);
  3880.         if( playerVehicle[playerid][vehicleID][mods][mRearBumper]   != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mRearBumper]);
  3881.         if( playerVehicle[playerid][vehicleID][mods][mVents][0]     != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mVents][0]);
  3882.         if( playerVehicle[playerid][vehicleID][mods][mVents][1]     != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mVents][1]);
  3883.         if( playerVehicle[playerid][vehicleID][mods][mFrontBumper]  != -1 ) AddVehicleComponent(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mFrontBumper]);
  3884.         if( playerVehicle[playerid][vehicleID][mods][mPaintjob]     != -1 ) ChangeVehiclePaintjob(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mPaintjob]);
  3885.  
  3886.         ChangeVehicleColor(playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][mods][mColores][0], playerVehicle[playerid][vehicleID][mods][mColores][1]);
  3887.         SetVehicleHealth( playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][damageVeh][dHealth]);
  3888.  
  3889.         UpdateVehicleDamageStatus( playerVehicle[playerid][vehicleID][icnumID], playerVehicle[playerid][vehicleID][damageVeh][dPanels],
  3890.                                               playerVehicle[playerid][vehicleID][damageVeh][dDoors],
  3891.                                               playerVehicle[playerid][vehicleID][damageVeh][dLights],
  3892.                                               playerVehicle[playerid][vehicleID][damageVeh][dTires]);
  3893.  
  3894.         SetVehicleParamsEx( playerVehicle[playerid][vehicleID][icnumID],  playerVehicle[playerid][vehicleID][paramsVeh][pEngine], playerVehicle[playerid][vehicleID][paramsVeh][pLights],
  3895.                                         playerVehicle[playerid][vehicleID][paramsVeh][pAlarm], playerVehicle[playerid][vehicleID][paramsVeh][pLock],
  3896.                                         playerVehicle[playerid][vehicleID][paramsVeh][pBonnet], playerVehicle[playerid][vehicleID][paramsVeh][pBoot],
  3897.                                         playerVehicle[playerid][vehicleID][paramsVeh][pObjective]);
  3898.         return true;
  3899.  
  3900.     }
  3901.     return false;
  3902. }
  3903.  
  3904. //============================================================================//
  3905.  
  3906. function:: createplayer@vehiclePurchased( playerid, extraid )
  3907. {
  3908.     /*--------------------------------------------------
  3909.  
  3910.         * createplayer@vehiclePurchased
  3911.             * Params:
  3912.                 - playerid
  3913.                 - extraid
  3914.             * Función:
  3915.                 - Esta función creará y establecerá las variables correspondientes
  3916.                 a un usuario ( playerid ) después de comprar un vehículo de algún
  3917.                 concesionario, donde 'extraid' será el slot que ocupará el vehículo
  3918.                 en el usuario.
  3919.                 - Enviará la consulta correspondiente para almacenar el vehículo en
  3920.                 la tabla respectiva.
  3921.     --------------------------------------------------*/
  3922.  
  3923.     if( ( IsPlayerConnected( playerid ) & IsPlayerInAnyVehicle( playerid ) ) && ( 0 < paramsvDealer[ GetPlayerVehicleID(playerid) ][ inumDealer ] <= MAX_DEALERS ) )
  3924.     {
  3925.         static
  3926.             s@query[0x12C];
  3927.         strmid( playerVehicle[playerid][extraid][sCarName], paramsvDealer[obs@Venta[playerid][1]][sCarName], 0, strlen(paramsvDealer[obs@Venta[playerid][1]][sCarName]), 30);
  3928.         strmid( playerVehicle[playerid][extraid][sCarOwner], getPlayerName( playerid, true ), 0, strlen(getPlayerName( playerid, true )), MAX_PLAYER_NAME );
  3929.         playerVehicle[playerid][extraid][idOwner] = playerid;
  3930.         playerVehicle[playerid][extraid][iModel] = paramsvDealer[obs@Venta[playerid][1]][iModel];
  3931.         playerVehicle[playerid][extraid][ipRepair] = ( ( 0b101 * paramsvDealer[obs@Venta[playerid][1]][iPrice] ) / 0x64 ); // 0x64 = 100, 0b101 = 5
  3932.         playerVehicle[playerid][extraid][status] = true;
  3933.         playerVehicle[playerid][extraid][fPos_X] = 560.9253;
  3934.         playerVehicle[playerid][extraid][fPos_Y] = -1262.4637;
  3935.         playerVehicle[playerid][extraid][fPos_Z] = 17.2422;
  3936.         playerVehicle[playerid][extraid][fPos_R] = 26.3302;
  3937.         playerVehicle[playerid][extraid][paramsVeh][pEngine] = VEHICLE_PARAMS_OFF;
  3938.         playerVehicle[playerid][extraid][paramsVeh][pLights] = VEHICLE_PARAMS_OFF;
  3939.         playerVehicle[playerid][extraid][paramsVeh][pAlarm] = VEHICLE_PARAMS_OFF;
  3940.         playerVehicle[playerid][extraid][paramsVeh][pLock] = VEHICLE_PARAMS_ON;
  3941.         playerVehicle[playerid][extraid][paramsVeh][pBonnet] = VEHICLE_PARAMS_OFF;
  3942.         playerVehicle[playerid][extraid][paramsVeh][pBoot] = VEHICLE_PARAMS_OFF;
  3943.         playerVehicle[playerid][extraid][paramsVeh][pObjective] = VEHICLE_PARAMS_OFF;
  3944.         playerVehicle[playerid][extraid][damageVeh][dHealth] = float( 0x3E8 );
  3945.         playerVehicle[playerid][extraid][mods][mColores][0] = random(0xFF);
  3946.         playerVehicle[playerid][extraid][mods][mColores][1] = random(0xFF);
  3947.  
  3948.         playerVehicle[playerid][extraid][icnumID] = CreateVehicle( playerVehicle[playerid][extraid][iModel], playerVehicle[playerid][extraid][fPos_X], playerVehicle[playerid][extraid][fPos_Y],
  3949.                                                         playerVehicle[playerid][extraid][fPos_Z], playerVehicle[playerid][extraid][fPos_R], playerVehicle[playerid][extraid][mods][mColores][0],
  3950.                                                         playerVehicle[playerid][extraid][mods][mColores][1], -1);
  3951.  
  3952.         GivePlayerMoney(playerid, ((~paramsvDealer[obs@Venta[playerid][1]][iPrice])+1));
  3953.         PutPlayerInVehicle( playerid, playerVehicle[playerid][extraid][icnumID], 0);
  3954.  
  3955.         mysql_format( cHandle, s@query, "INSERT INTO `userVehicles` ( `OwnerName`, `CarName`, `carModel`, `cReparacion`, `Status`, `Pos_X`, `Pos_Y`, `Pos_Z`, `Pos_R`, `dHealth`, `Color1`, `Color2` ) "\
  3956.                                                  "VALUES ( '%e', '%e', %d, %d, %d, %f, %f, %f, %f, %f, %d, %d )",
  3957.                                                  playerVehicle[playerid][extraid][sCarOwner], playerVehicle[playerid][extraid][sCarName], playerVehicle[playerid][extraid][iModel], playerVehicle[playerid][extraid][ipRepair],
  3958.                                                  (( playerVehicle[playerid][extraid][status] )?( 1 ):( 0 )),
  3959.                                                  playerVehicle[playerid][extraid][fPos_X], playerVehicle[playerid][extraid][fPos_Y], playerVehicle[playerid][extraid][fPos_Z], playerVehicle[playerid][extraid][fPos_R],
  3960.                                                  playerVehicle[playerid][extraid][damageVeh][dHealth], playerVehicle[playerid][extraid][mods][mColores][0], playerVehicle[playerid][extraid][mods][mColores][1]);
  3961.  
  3962.         mysql_function_query( cHandle, s@query, false, "OnQueryFinish", "dd", sql@insertID, extraid);
  3963.  
  3964.         format( s@query, sizeof s@query, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Felicidades %s, has comprado un %s por $%d.00. ¡Disfrutalo!",getPlayerName(playerid, true), paramsvDealer[obs@Venta[playerid][1]][sCarName], paramsvDealer[obs@Venta[playerid][1]][iPrice]);
  3965.         SendClientMessage( playerid, -1, s@query);
  3966.  
  3967.         TogglePlayerControllable( playerid, true );
  3968.         SetVehicleParamsForAll( obs@Venta[ playerid ][ 1 ], false, false );
  3969.         obs@Venta[ playerid ][ 1 ] = -1;
  3970.  
  3971.         return 0x01;
  3972.     }
  3973.     else
  3974.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No estás en ningún vehículo de pruebas"), 0x01;
  3975. }
  3976.  
  3977. public OnQueryError( errorid, error[], callback[], query[], connectionHandle )
  3978. {
  3979.     printf("\t\t[ERROR:%d]\nError:%s\nQUERY:\n%s\n, connectionHandle: %d\nCallback:%s", errorid, error, query, connectionHandle, callback);
  3980.     return 1;
  3981. }
  3982.  
  3983. //============================================================================//
  3984.  
  3985. function:: SetVehicleParamsForAll( carid, objective, doorslocked )
  3986. {
  3987.     /*--------------------------------------------------
  3988.  
  3989.         * SetVehicleParamsForAll
  3990.             * Params:
  3991.                 - carid
  3992.                 - objective
  3993.                 - doorslocked
  3994.             * Función:
  3995.                 - Establecerá a el vehículo correspondiente (carid) el
  3996.                 valor correspondiente en la parte seleccionada.
  3997.  
  3998.     --------------------------------------------------*/
  3999.  
  4000.     for( new i = GetMaxPlayers()-1; i > -1; --i )
  4001.         SetVehicleParamsForPlayer(carid, i, objective, doorslocked);
  4002. }
  4003.  
  4004. //============================================================================//
  4005.  
  4006. function:: disable@vehicleAlarm( vehicleid )
  4007. {
  4008.     /*--------------------------------------------------
  4009.  
  4010.         * disable@vehicleAlarm
  4011.             * Params:
  4012.                 - vehicleid
  4013.             * Función:
  4014.                 - Desactiva/apaga la alarma activa del vehículo
  4015.                 insertado ( vehicleid ).
  4016.  
  4017.     --------------------------------------------------*/
  4018.     static
  4019.         engine,
  4020.         lights,
  4021.         alarm,
  4022.         doors,
  4023.         bonnet,
  4024.         boot,
  4025.         objective;
  4026.  
  4027.     GetVehicleParamsEx( vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  4028.     SetVehicleParamsEx( vehicleid, engine, lights, VEHICLE_PARAMS_OFF, doors, bonnet, boot, objective);
  4029. }
  4030.  
  4031. //============================================================================//
  4032.  
  4033. CMD:edealerloc( playerid, params[] )
  4034. {
  4035.     /*--------------------------------------------------
  4036.  
  4037.         * edealerloc ( Comando ).
  4038.             * Params:
  4039.                 - dealerid
  4040.             * Función:
  4041.                 - Muestra el menú de edición de datos del
  4042.                 concesionario insertado ( dealerid ).
  4043.  
  4044.     --------------------------------------------------*/
  4045.  
  4046.     if(isnull(params)) return SendClientMessage(playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: /edealerloc [dealerid]"), 0x01;
  4047.     else
  4048.     {
  4049.         static
  4050.             sz@message[0x7D];
  4051.  
  4052.         d@optionsEdit[playerid][0] = strval(params);
  4053.         if(0 < d@optionsEdit[playerid][0] <= MAX_DEALERS+1)
  4054.         {
  4055.             format(sz@message, sizeof(sz@message), "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Menú de edición - Concesionario N°%d.", d@optionsEdit[playerid][0]);
  4056.             ShowPlayerDialog(playerid, showMenuDealerEdit, DIALOG_STYLE_LIST, sz@message, "1)\t Nombre del concesionario.\n 2)\tPosicion del concesionario.\n 3)\tEliminar concesionario.\n -> Guardar cambios.", "Seleccionar.", "Cancelar.");
  4057.             return SendClientMessage(playerid, -1, sz@message), 0x01;
  4058.         }
  4059.         else return SendClientMessage(playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} La ID del concesionario debe ir del 1 al "#MAX_DEALERS+1"."), 0x01;
  4060.     }
  4061. }
  4062.  
  4063. //============================================================================//
  4064.  
  4065. CMD:createvdealer( playerid, params[] )
  4066. {
  4067.     /*--------------------------------------------------
  4068.  
  4069.         * createvdealer ( comando )
  4070.             * Params:
  4071.                 - modelid | nombre
  4072.                 - concesionario
  4073.                 - precio/costo
  4074.             * Función:
  4075.                 - Rellenando los parámetros del comando, se creará un vehículo
  4076.                 del modelo deseado para el concesionario especificado con el precio
  4077.                 establecido, además de insertarlo directamente en la tabla.
  4078.  
  4079.     --------------------------------------------------*/
  4080.  
  4081.     if( isnull( params ) )
  4082.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: /createvdealer  [modelid|nombre] [concesionario] [precio]"), 1;
  4083.     else
  4084.     {
  4085.         static
  4086.             sz@dMod[0b11001],
  4087.             sz@sPart[0x100],
  4088.             d@nextID;
  4089.  
  4090.         if( !sscanf( params, "s[25]s[50]", sz@dMod, sz@sPart))
  4091.         {
  4092.             d@nextID = getNextVehicleID();
  4093.             paramsvDealer[d@nextID][iModel] = ( ( isNumeric( sz@dMod ) ) ?  ( strval( sz@dMod ) ) : ( getVehicleModelbyName( sz@dMod ) ) );
  4094.  
  4095.             if( 0x190 <= paramsvDealer[d@nextID][iModel] <= 0x263 )
  4096.             {
  4097.                 if( !sscanf( sz@sPart, "dd", paramsvDealer[d@nextID][inumDealer], paramsvDealer[d@nextID][iPrice] ) )
  4098.                 {
  4099.                     if( 0 < paramsvDealer[d@nextID][inumDealer] <= MAX_DEALERS )
  4100.                     {
  4101.                         if(IsPlayerInArea(playerid, dealerLocations[paramsvDealer[d@nextID][inumDealer]][f@maxX], dealerLocations[paramsvDealer[d@nextID][inumDealer]][f@maxY], dealerLocations[paramsvDealer[d@nextID][inumDealer]][f@minX], dealerLocations[paramsvDealer[d@nextID][inumDealer]][f@minY]))
  4102.                         {
  4103.                             GetPlayerPos( playerid, paramsvDealer[d@nextID][fdPos_X], paramsvDealer[d@nextID][fdPos_Y], paramsvDealer[d@nextID][fdPos_Z]);
  4104.                             GetPlayerFacingAngle( playerid, paramsvDealer[d@nextID][fdPos_R]);
  4105.  
  4106.                             paramsvDealer[d@nextID][inumID] = CreateVehicle( paramsvDealer[d@nextID][iModel], paramsvDealer[d@nextID][fdPos_X], paramsvDealer[d@nextID][fdPos_Y], paramsvDealer[d@nextID][fdPos_Z], paramsvDealer[d@nextID][fdPos_R], random(0xFF), random(0xFF), -1);
  4107.                             strmid( paramsvDealer[d@nextID][sCarName], getVehicleNamebyID(paramsvDealer[d@nextID][inumID]), 0, strlen(getVehicleNamebyID(paramsvDealer[d@nextID][inumID])), 0b11001);
  4108.  
  4109.                             mysql_format( cHandle, sz@sPart, "INSERT INTO `carsDealers`( `CarName`, `DealerCar`, `CarModel`, `CarPrice`, `CarPosX`, `CarPosY`, `CarPosZ`, `CarRot`) VALUES ('%e', '%d', '%d', '%d', '%f', '%f', '%f', '%f')",
  4110.                                                                          getVehicleNamebyID(paramsvDealer[d@nextID][inumID]), paramsvDealer[d@nextID][inumDealer], paramsvDealer[d@nextID][iModel], paramsvDealer[d@nextID][iPrice],
  4111.                                                                          paramsvDealer[d@nextID][fdPos_X], paramsvDealer[d@nextID][fdPos_Y], paramsvDealer[d@nextID][fdPos_Z], paramsvDealer[d@nextID][fdPos_R]);
  4112.  
  4113.                             mysql_function_query( cHandle, sz@sPart, false, "OnQueryFinish", "dd", sql_d@insertID, d@nextID);
  4114.                             return 0x01;
  4115.                         }
  4116.                         else
  4117.                             return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No estás en el concesionario."), 0x01;
  4118.                     }
  4119.                     else
  4120.                         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} ID de concesionario inválida [ 1 - 10 ]"), 0x01;
  4121.                 }
  4122.                 else
  4123.                     return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: /createvdealer  [modelid|nombre] [concesionario] [precio]"), 0x01;
  4124.             }
  4125.             else
  4126.                 return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modelo de vehículo inválido. Inserte un ID | Nombre correcto."), 0x01;
  4127.         }
  4128.         else
  4129.             return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: /createvdealer  [modelid|nombre] [concesionario] [precio]"), 0x01;
  4130.     }
  4131. }
  4132.  
  4133. //============================================================================//
  4134.  
  4135. CMD:delvdealer( playerid, params[] )
  4136. {
  4137.     /*--------------------------------------------------
  4138.  
  4139.         * delvdealer ( comando )
  4140.             * Params:
  4141.                 - carid
  4142.             * Función:
  4143.                 - Elimina un vehículo del concesionario de acuerdo a la ID que tenga
  4144.                 InGame, verificando sí es o no de concesionario y sú existencia en
  4145.                 la tabla correspondiente.
  4146.  
  4147.     --------------------------------------------------*/
  4148.  
  4149.     if( IsPlayerAdmin( playerid ) )
  4150.     {
  4151.         if( isnull( params ) )
  4152.             return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: /delvdealer [carid]"), 1;
  4153.         else
  4154.         {
  4155.             static
  4156.                 d@carID,
  4157.                 Float:f@vehPos[0b11],
  4158.                 sz@query[0b111000];
  4159.  
  4160.             if( 0 < paramsvDealer[( d@carID = strval(params), d@carID )][ inumDealer ] <= MAX_DEALERS )
  4161.             {
  4162.                 if( IsPlayerInRangeOfPoint ( playerid, float(0b11), (GetVehiclePos(d@carID, f@vehPos[0], f@vehPos[1], f@vehPos[0b10]), f@vehPos[0]), f@vehPos[1], f@vehPos[0b10] ) )
  4163.                 {
  4164.                     static
  4165.                         i@iterator;
  4166.                     i@iterator = -1;
  4167.  
  4168.                     mysql_format( cHandle, sz@query, "DELETE FROM `carsDealers` WHERE `ID_CarDealer` = %d", paramsvDealer[d@carID][inumdID]);
  4169.                     mysql_function_query( cHandle, sz@query, false, "OnQueryFinish", "d", empty@queryReceived);
  4170.  
  4171.                     DestroyVehicle( d@carID );
  4172.  
  4173.                     while( dealerEnum:++i@iterator < dealerEnum ) {
  4174.                         paramsvDealer[d@carID][dealerEnum:i@iterator] = -1;
  4175.                     }
  4176.  
  4177.                     format(sz@query, sizeof sz@query, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has eliminado el vehículo ID:%d del concesionario.", d@carID);
  4178.                     return SendClientMessage( playerid, -1, sz@query), 0x01;
  4179.                 }
  4180.                 else
  4181.                     return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Tienes que estar cerca del vehículo a elminar."), 0x01;
  4182.             }
  4183.             else
  4184.                 return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has insertado la id de un vehículo inválida."), 0x01;
  4185.         }
  4186.     }
  4187.     else
  4188.         return 0;
  4189. }
  4190.  
  4191. //============================================================================//
  4192.  
  4193. CMD:buyvehicle( playerid )
  4194. {
  4195.     /*--------------------------------------------------
  4196.  
  4197.         * buyvehicle ( comando )
  4198.             * Params:
  4199.                 - No params.
  4200.             * Función:
  4201.                 - Al ejecutar este comando compramos el vehículo
  4202.                 que nos encontremos observando, nos asignará las variables
  4203.                 y creará un vehículo en la entrada de grotty, en fín,
  4204.                 el vehículo será nuestro.
  4205.  
  4206.     --------------------------------------------------*/
  4207.  
  4208.     if( ( IsPlayerConnected( playerid ) & IsPlayerInAnyVehicle( playerid ) ) && ( 0 < paramsvDealer[ GetPlayerVehicleID(playerid) ][ inumDealer ] <= MAX_DEALERS ) )
  4209.     {
  4210.         if( paramsvDealer[obs@Venta[playerid][1]][iPrice] <= GetPlayerMoney( playerid ) )
  4211.         {
  4212.             static
  4213.                 d@emptySlot;
  4214.             d@emptySlot = getslot@playerEmpty( playerid );
  4215.  
  4216.             if(  d@emptySlot != -1 )
  4217.                 return CallLocalFunction("createplayer@vehiclePurchased", "dd", playerid, d@emptySlot), 0x01;
  4218.             else
  4219.                 return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Ya tienes todos los slots para vehículos ocupados"), cmd_salirvcar(playerid), 0x01;
  4220.         }
  4221.         else
  4222.             return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No posees suficiente dinero."), cmd_salirvcar(playerid), 0x01;
  4223.     }
  4224.     else
  4225.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No estás en ningún vehículo de pruebas"), 0x01;
  4226. }
  4227.  
  4228. //============================================================================//
  4229.  
  4230. CMD:venderveh( playerid, params[] )
  4231. {
  4232.     /*--------------------------------------------------
  4233.  
  4234.         * venderveh ( comando )
  4235.             * Params:
  4236.                 - Concesionario | Usuario
  4237.                 - playerid
  4238.                 - veh(slot)
  4239.                 - precio
  4240.             * Función:
  4241.                 - Con este comando venderás tú vehículo al concesionario
  4242.                 o a algún usuario, con la venta al concesionario obtendrás
  4243.                 el 75% del costo total gastado en el mismo, y con el usuario
  4244.                 obtendrás lo que hayas llenado en el parámetro 'precio'.
  4245.  
  4246.     --------------------------------------------------*/
  4247.  
  4248.     if( isnull( params ) )
  4249.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: /venderveh [concesionario] || [usuario] [playerID] [veh(slot)] [precio]"), 1;
  4250.     else
  4251.     {
  4252.         if( strcmp( params, "Concesionario", true ) == 0 )
  4253.         {
  4254.             if((( IsPlayerInAnyVehicle( playerid ) & isvehicle@playerProperty(playerid, GetPlayerVehicleID(playerid)) ) && ( getslot@playerVehicle(playerid, GetPlayerVehicleID(playerid)) != -1 )))
  4255.             {
  4256.                 static
  4257.                     d@iterator,
  4258.                     d@slotVehicle,
  4259.                     d@payVehicle,
  4260.                     sz@message[0x7D];
  4261.  
  4262.                 d@iterator = -1, d@slotVehicle = 1;
  4263.                 d@slotVehicle = getslot@playerVehicle(playerid, GetPlayerVehicleID(playerid));
  4264.                 d@payVehicle = floatround(floatmul(float(playerVehicle[playerid][d@slotVehicle][ipRepair]), 0b1111), floatround_round); // 0b1111 = 15
  4265.  
  4266.                 GivePlayerMoney( playerid, d@payVehicle );
  4267.  
  4268.                 mysql_format( cHandle, sz@message, "DELETE FROM `userVehicles` WHERE `Car_ID` = %d", playerVehicle[playerid][d@slotVehicle][inumcID]);
  4269.                 mysql_function_query( cHandle, sz@message, false, "OnQueryFinish", "d", empty@queryReceived);
  4270.  
  4271.                 DestroyVehicle( playerVehicle[playerid][d@slotVehicle][icnumID] );
  4272.  
  4273.                 format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} ¡Felicidades! %s, has vendido tu %s por $%d.00.", getPlayerName(playerid, true), playerVehicle[playerid][d@slotVehicle][sCarName], d@payVehicle);
  4274.  
  4275.                 while( carEnum:++d@iterator < carEnum ) {
  4276.                     playerVehicle[playerid][d@slotVehicle][carEnum:d@iterator] = -1;
  4277.                 }
  4278.  
  4279.                 return SendClientMessage( playerid, -1, sz@message ), 0x01;
  4280.             }
  4281.             else
  4282.                 return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Tienes que estar en un vehículo propio para ejecutar esta acción."), 0x01;
  4283.         }
  4284.         else
  4285.         {
  4286.             static
  4287.                 d@tmp[0b1000],
  4288.                 d@arrValues[0b11],
  4289.                 Float:f@posArr[0b11],
  4290.                 sz@message[0x4B];
  4291.             if( !( sscanf( params, "s[8]udd", d@tmp, d@arrValues[0], d@arrValues[1], d@arrValues[0b10] ) ) )
  4292.             {
  4293.                 if((playerid != d@arrValues[0])&&(IsPlayerConnected(d@arrValues[0]) & IsPlayerInRangeOfPoint(d@arrValues[0], 10.0, (GetPlayerPos(playerid, f@posArr[0], f@posArr[1], f@posArr[0b10]), f@posArr[0]),f@posArr[1],f@posArr[0b10])))
  4294.                 {
  4295.                     if((( -1 < d@arrValues[1] < MAX_VEH_PER_PLAYER ) & ( playerVehicle[playerid][d@arrValues[1]][icnumID] != -1 )))
  4296.                     {
  4297.                         format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} El usuario [%d] %s te ofrece sú %s por $%d.", playerid, getPlayerName(playerid, true), playerVehicle[playerid][d@arrValues[1]][sCarName], d@arrValues[0b10]);
  4298.                         SendClientMessage( d@arrValues[0], -1, sz@message);
  4299.                         SendClientMessage( d@arrValues[0], -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Utiliza '/offreceived 1' para comprar el vehículo o '/offreceived 0' para rechazarlo.");
  4300.                         obs@Venta[d@arrValues[0]][0] = d@arrValues[1];
  4301.                         obs@Venta[d@arrValues[0]][1] = d@arrValues[0b10];
  4302.                         obs@Venta[d@arrValues[0]][0b10] = playerid;
  4303.                         obs@Venta[d@arrValues[0]][0b11] = d@arrValues[1];
  4304.                         return 1;
  4305.                     }
  4306.                     else
  4307.                         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} El slot del vehículo a ofertar es inválido."), 0x01;
  4308.                 }
  4309.                 else
  4310.                     return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has insertado una ID de usuario inválida"), 0x01;
  4311.             }
  4312.             else
  4313.                 return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: /venderveh usuario [ID] [veh] [precio]"), 0x01;
  4314.         }
  4315.     }
  4316. }
  4317.  
  4318. //============================================================================//
  4319.  
  4320. CMD:offerveh( playerid, params[] )
  4321. {
  4322.     /*--------------------------------------------------
  4323.  
  4324.         * offerveh ( comando )
  4325.             * Params:
  4326.                 - 0
  4327.                 - 1
  4328.             * Función:
  4329.                 - Con este comando aceptas/rechazas la compra del
  4330.                 vehículo que un usuario se encuentre ofreciendote.
  4331.  
  4332.     --------------------------------------------------*/
  4333.  
  4334.     if( obs@Venta[playerid][1] != -1 )
  4335.     {
  4336.         if( isnull( params ) )
  4337.             return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: '/offerveh [ 0 | 1 ]' ( rechazar | aceptar )."), 0x01;
  4338.         else
  4339.         {
  4340.             static
  4341.                 sz@message[0x4B],
  4342.                 d@emptySlot,
  4343.                 Float:f@posArr[0b11],
  4344.                 d@iterator;
  4345.             switch( strval( params ) )
  4346.             {
  4347.                 case 0:
  4348.                 {
  4349.                     SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has cancelado la oferta de venta que tenias");
  4350.                     format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} [%d] %s ha cancelado el ofrecimiento que le realizaste", playerid, getPlayerName(playerid, true));
  4351.                     SendClientMessage( obs@Venta[playerid][0b10], -1, sz@message);
  4352.                     obs@Venta[playerid][0] = -1,    obs@Venta[playerid][1] = -1,    obs@Venta[playerid][0b10] = -1, obs@Venta[playerid][0b11] = -1;
  4353.                     return 1;
  4354.                 }
  4355.                 case 1:
  4356.                 {
  4357.                     d@emptySlot = getslot@playerEmpty( playerid );
  4358.                     if( -1 < d@emptySlot < MAX_VEH_PER_PLAYER )
  4359.                     {
  4360.                         if( obs@Venta[playerid][1] <= GetPlayerMoney( playerid ) )
  4361.                         {                                                                                                       //0b1010 = 10
  4362.                             if((IsPlayerConnected(obs@Venta[playerid][0b10]) & IsPlayerInRangeOfPoint(obs@Venta[playerid][0b10], float(0b1010), (GetPlayerPos(playerid,f@posArr[0],f@posArr[1],f@posArr[0b10]),f@posArr[0]),f@posArr[1],f@posArr[0b10])))
  4363.                             {
  4364.                                 d@iterator = -1;
  4365.                                 while( carEnum:++d@iterator < carEnum )
  4366.                                 {
  4367.                                     playerVehicle[playerid][d@emptySlot][carEnum:d@iterator] = playerVehicle[obs@Venta[playerid][0b10]][obs@Venta[playerid][0]][carEnum:d@iterator];
  4368.                                     playerVehicle[obs@Venta[playerid][0b10]][obs@Venta[playerid][0]][carEnum:d@iterator] = -1;
  4369.                                 }
  4370.                                 strmid( playerVehicle[playerid][d@emptySlot][sCarOwner], getPlayerName(playerid, true), 0, strlen(getPlayerName(playerid, true)), 0x1E); // 30
  4371.                                 playerVehicle[playerid][d@emptySlot][idOwner] = playerid;
  4372.                                 format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Felicitaciones %s, has comprado el vehículo.", getPlayerName( playerid, true ) );
  4373.                                 SendClientMessage( playerid, -1, sz@message);
  4374.                                 format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} %s ha aceptado tu oferta de venta.", getPlayerName( playerid, true ));
  4375.                                 SendClientMessage(obs@Venta[playerid][0b10], -1, sz@message);
  4376.                                 GivePlayerMoney(playerid, ((~obs@Venta[playerid][1])+1));
  4377.                                 return GivePlayerMoney( obs@Venta[playerid][0b10], obs@Venta[playerid][1]), 0x01;
  4378.                             }
  4379.                             else
  4380.                                 return ( obs@Venta[playerid][0] = -1, obs@Venta[playerid][1] = -1,
  4381.                                          obs@Venta[playerid][0b10] = -1, obs@Venta[playerid][0b11] = -1 ),
  4382.                                          SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} La transacción finalizo debido a la falta del vendedor."), 0x01;
  4383.                         }
  4384.                         else
  4385.                             return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No tienes el monto requerido para la transacción."), 0x01;
  4386.                     }
  4387.                     else
  4388.                         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No tienes ningún slot para vehículo disponible."), 0x01;
  4389.                 }
  4390.                 default: return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: '/offreceived [ 0 | 1 ]' ( rechazar | aceptar )."), 0x01;
  4391.             }
  4392.             return 1;
  4393.         }
  4394.     }
  4395.     else
  4396.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No te han ofertado ningún vehículo."), 0x01;
  4397. }
  4398.  
  4399. //============================================================================//
  4400.  
  4401. CMD:salirvcar( playerid )
  4402. {
  4403.     /*--------------------------------------------------
  4404.  
  4405.         * salirvcar ( comando )
  4406.             * Params:
  4407.                 - No params.
  4408.             * Función:
  4409.                 - Con este comando te bajas de un vehículo de
  4410.                 concesionario sin comprarle.
  4411.  
  4412.     --------------------------------------------------*/
  4413.  
  4414.     if( ( IsPlayerConnected( playerid ) & IsPlayerInAnyVehicle( playerid ) ) && ( 0 < paramsvDealer[ GetPlayerVehicleID(playerid) ][ inumDealer ] <= MAX_DEALERS ) )
  4415.     {
  4416.         TogglePlayerControllable( playerid, true );
  4417.         SetVehicleParamsForAll( GetPlayerVehicleID( playerid ), false, false );
  4418.         obs@Venta[ playerid ][ 1 ] = -1;
  4419.         return RemovePlayerFromVehicle(playerid), 0x01;
  4420.     }
  4421.     else
  4422.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No estás en ningún vehículo de pruebas"), 0x01;
  4423. }
  4424.  
  4425. //============================================================================//
  4426.  
  4427. CMD:paysecure( playerid )
  4428. {
  4429.     /*--------------------------------------------------
  4430.  
  4431.         * paysecure ( comando )
  4432.             * Params:
  4433.                 - No params.
  4434.             * Función:
  4435.                 - Cuando tu vehículo explota, este comando utilizarás
  4436.                 para recuperarlo ( pagando una modica cantidad ).
  4437.  
  4438.     --------------------------------------------------*/
  4439.  
  4440.     static
  4441.         d@vehicleID,
  4442.         sz@message[5000];
  4443.     d@vehicleID = get@vehicleDeath( playerid );
  4444.  
  4445.     if( d@vehicleID != -1 )
  4446.     {
  4447.         /*if( IsPlayerInRangeOfPoint( playerid, 3.0, Coordenadas donde se podra recuperar el vehículo ) )
  4448.         {*/
  4449.             if( GetPlayerMoney( playerid ) >= playerVehicle[playerid][d@vehicleID][ipRepair] )
  4450.             {
  4451.                 GivePlayerMoney( playerid, ((~playerVehicle[playerid][d@vehicleID][ipRepair])+1));
  4452.  
  4453.                 playerVehicle[playerid][d@vehicleID][status] = true;
  4454.                 CallLocalFunction("createPlayerVehicle", "dd", playerid, d@vehicleID);
  4455.  
  4456.                 format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Ha recuperado su %s pagando la factura de $%d.00. El vehículo se encuentra en su park.", playerVehicle[playerid][d@vehicleID][sCarName], playerVehicle[playerid][d@vehicleID][ipRepair]);
  4457.                 return SendClientMessage( playerid, -1, sz@message), 0x01;
  4458.             }
  4459.             else
  4460.                 return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No cuentas con el dinero suficiente para recuperar el vehículo"), 0x01;
  4461.         //}
  4462.     }
  4463.     else
  4464.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Ninguno de sus vehículos esta destruído."), 0x01;
  4465. }
  4466.  
  4467. //============================================================================//
  4468.  
  4469. CMD:misautos( playerid )
  4470. {
  4471.     /*--------------------------------------------------
  4472.  
  4473.         * misautos ( comando )
  4474.             *Params:
  4475.                 - No params.
  4476.             * Función:
  4477.                 - Con este comando podrás consultar los autos de tu propiedad.
  4478.  
  4479.     ----------------------------------------------------*/
  4480.     static
  4481.         d@iterator,
  4482.         bool:count,
  4483.         tmp[0x7D],
  4484.         sz@message[0x100];
  4485.     d@iterator = -1, count = false, sz@message[0] = '\0';
  4486.  
  4487.     while( ++d@iterator < MAX_VEH_PER_PLAYER )
  4488.     {
  4489.         if( playerVehicle[playerid][d@iterator][inumcID] != -1 )
  4490.         {
  4491.             format( tmp, sizeof tmp, "\t[ Vehicle slot: %d ]\n Nombre: %s.\n Modelo: %d.\n Estado: %s.\n ID: %d.\n\n", d@iterator, playerVehicle[playerid][d@iterator][sCarName], playerVehicle[playerid][d@iterator][iModel],
  4492.                                                                                     ((playerVehicle[playerid][d@iterator][status]) ? ("Normal") : ("Destruído")), playerVehicle[playerid][d@iterator][icnumID]);
  4493.             strcat(( count = true, sz@message), tmp, sizeof sz@message);
  4494.         }
  4495.         else continue;
  4496.     }
  4497.     if( count )
  4498.         return ShowPlayerDialog( playerid, showPlayerVehicles, DIALOG_STYLE_MSGBOX, "[wDealer:] Tus vehículos", sz@message, "Aceptar.", "Cancelar."), 0x01;
  4499.     else
  4500.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No posees ningún vehículo."), 0x01;
  4501. }
  4502.  
  4503. //============================================================================//
  4504.  
  4505. CMD:respawn(playerid)
  4506. {
  4507.     /*--------------------------------------------------
  4508.  
  4509.         * respawn ( comando )
  4510.             *Params:
  4511.                 - No params.
  4512.             * Función:
  4513.                 - Con este comando realizarás un respawn de todos
  4514.                 los vehículos del servidor (respetando los autos modificados).
  4515.  
  4516.     ----------------------------------------------------*/
  4517.  
  4518.     static
  4519.         d@iterator, i, d@vehicle, bool:verify[MAX_VEHICLES] = {false, ...};
  4520.     d@iterator = -1,
  4521.     i = GetMaxPlayers()-1,
  4522.     d@vehicle = -1;
  4523.  
  4524.     while(++d@iterator < MAX_VEHICLES)
  4525.     {
  4526.         if(GetVehicleModel(d@iterator))
  4527.         {
  4528.             if(is@vehicleOccupied(d@iterator)) continue;
  4529.             else
  4530.             {
  4531.                 verify[d@iterator] = false;
  4532.                 while(--i > -1)
  4533.                 {
  4534.                     if(!IsPlayerConnected(i)) continue;
  4535.                     d@vehicle = getslot@playerVehicle(i, d@iterator);
  4536.                     if(d@vehicle != -1 && isvehicle@playerProperty(i, d@iterator))
  4537.                     {
  4538.                         static
  4539.                             Float:f@vPos[4];
  4540.                         f@vPos[0] = EOS;
  4541.  
  4542.                         GetVehiclePos(playerVehicle[i][d@vehicle][icnumID], f@vPos[0], f@vPos[1], f@vPos[0b10]);
  4543.                         GetVehicleZAngle(playerVehicle[i][d@vehicle][icnumID], f@vPos[0b11]);
  4544.                         GetVehicleHealth(playerVehicle[i][d@vehicle][icnumID], playerVehicle[i][d@vehicle][damageVeh][dHealth]);
  4545.                         GetVehicleDamageStatus(playerVehicle[i][d@vehicle][icnumID], playerVehicle[i][d@vehicle][damageVeh][dPanels],
  4546.                                                                                      playerVehicle[i][d@vehicle][damageVeh][dDoors],
  4547.                                                                                      playerVehicle[i][d@vehicle][damageVeh][dLights],
  4548.                                                                                      playerVehicle[i][d@vehicle][damageVeh][dTires]);
  4549.  
  4550.                         playerVehicle[i][d@vehicle][fPos_X] = f@vPos[0];
  4551.                         playerVehicle[i][d@vehicle][fPos_Y] = f@vPos[1];
  4552.                         playerVehicle[i][d@vehicle][fPos_Z] = f@vPos[2];
  4553.                         playerVehicle[i][d@vehicle][fPos_R] = f@vPos[3];
  4554.  
  4555.                         DestroyVehicle( playerVehicle[i][d@vehicle][icnumID] );
  4556.                         verify[d@iterator] = true;
  4557.  
  4558.                         playerVehicle[i][d@vehicle][icnumID] = getNextVehicleID();
  4559.                         createPlayerVehicle( i, d@vehicle);
  4560.                         save@playerVehicles( i, false );
  4561.                         break;
  4562.                     }
  4563.                     else continue;
  4564.                 }
  4565.                 if(verify[d@iterator] == false) SetVehicleToRespawn(d@iterator), i = GetMaxPlayers()-1;
  4566.                 else continue;
  4567.             }
  4568.         }
  4569.         else continue;
  4570.     }
  4571.     return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has respawneado todos los vehículos"), 0x01;
  4572. }
  4573.  
  4574. //============================================================================//
  4575.  
  4576. CMD:park( playerid )
  4577. {
  4578.     /*--------------------------------------------------
  4579.  
  4580.         * park ( comando )
  4581.             * Params:
  4582.                 - No params.
  4583.             * Función:
  4584.                 - Este comando actualiza las variables de posición
  4585.                 del vehículo, estacionandolo así para el reinicio /
  4586.                 cuando vuelvan a cargar tus vehículos.
  4587.                 - Este comando funciona en el vehículo en el que estés
  4588.                 montado.
  4589.     --------------------------------------------------*/
  4590.  
  4591.     static
  4592.         d@vehicle,
  4593.         sz@message[0x7D],
  4594.         Float:f@vPos[0b101];
  4595.  
  4596.     d@vehicle = getslot@playerVehicle( playerid, GetPlayerVehicleID( playerid ) );
  4597.  
  4598.     if( IsPlayerInAnyVehicle( playerid ) && isvehicle@playerProperty( playerid, GetPlayerVehicleID( playerid ) ) )
  4599.     {
  4600.         GetVehiclePos( GetPlayerVehicleID( playerid ), f@vPos[0], f@vPos[1], f@vPos[0b10]);
  4601.         GetVehicleZAngle( GetPlayerVehicleID( playerid ), f@vPos[0b11]);
  4602.         GetVehicleHealth( GetPlayerVehicleID( playerid ), playerVehicle[playerid][d@vehicle][damageVeh][dHealth]);
  4603.         GetVehicleDamageStatus( GetPlayerVehicleID( playerid ), playerVehicle[playerid][d@vehicle][damageVeh][dPanels],
  4604.                                                                 playerVehicle[playerid][d@vehicle][damageVeh][dDoors],
  4605.                                                                 playerVehicle[playerid][d@vehicle][damageVeh][dLights],
  4606.                                                                 playerVehicle[playerid][d@vehicle][damageVeh][dTires]);
  4607.  
  4608.         playerVehicle[playerid][d@vehicle][fPos_X] = f@vPos[0];
  4609.         playerVehicle[playerid][d@vehicle][fPos_Y] = f@vPos[1];
  4610.         playerVehicle[playerid][d@vehicle][fPos_Z] = f@vPos[2];
  4611.         playerVehicle[playerid][d@vehicle][fPos_R] = f@vPos[3];
  4612.  
  4613.         DestroyVehicle( playerVehicle[playerid][d@vehicle][icnumID] );
  4614.  
  4615.         playerVehicle[playerid][d@vehicle][icnumID] = getNextVehicleID();
  4616.         createPlayerVehicle( playerid, d@vehicle);
  4617.  
  4618.         PutPlayerInVehicle( playerid, playerVehicle[playerid][d@vehicle][icnumID], 0);
  4619.         save@playerVehicles( playerid, false );
  4620.  
  4621.         format(sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} %s has estacionado correctamente tu %s.", getPlayerName( playerid, true ), playerVehicle[playerid][d@vehicle][sCarName]);
  4622.         return SendClientMessage( playerid, -1, sz@message), 0x01;
  4623.     }
  4624.     else
  4625.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No estás en un vehículo o no es de tu propiedad."), 0x01;
  4626. }
  4627.  
  4628. //============================================================================//
  4629.  
  4630. CMD:gmaletero( playerid, params[] )
  4631. {
  4632.     /*--------------------------------------------------
  4633.  
  4634.         * gMaletero ( comando )
  4635.             * Params:
  4636.                 - arma.
  4637.                 - chaleco.
  4638.             * Función:
  4639.                 - Con este comando depositarás el arma /
  4640.                 chaleco en el vehículo ( según la opción
  4641.                 elegida ).
  4642.  
  4643.     --------------------------------------------------*/
  4644.  
  4645.     static
  4646.         d@vehicle,
  4647.         sz@message[0x7D << 0b10],
  4648.         d@slotEmpty;
  4649.  
  4650.     d@vehicle = get@vehicleInRange( playerid );
  4651.  
  4652.     if( ( d@vehicle != -1 ) && ( playerVehicle[playerid][d@vehicle][status] ) )
  4653.     {
  4654.         if( isnull( params ) ) return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: '/gmaletero [opción] ( arma | chaleco )."), 0x01;
  4655.         else
  4656.         {
  4657.             if( !IsPlayerInAnyVehicle( playerid ) )
  4658.             {
  4659.                 if( strcmp( params, "arma", true ) == 0 )
  4660.                 {
  4661.                     if( 0 < GetPlayerWeapon( playerid ) <= 46 )
  4662.                     {
  4663.                         static
  4664.                             sz@weapon[0x19];
  4665.  
  4666.                         d@slotEmpty = d@trunkslotEmpty( playerid, d@vehicle );
  4667.  
  4668.                         if( d@slotEmpty != -1 )
  4669.                         {
  4670.                             playerVehicle[playerid][d@vehicle][Maletero][tArmas][d@slotEmpty] = GetPlayerWeapon( playerid );
  4671.                             playerVehicle[playerid][d@vehicle][Maletero][tMuniciones][d@slotEmpty] = GetPlayerAmmo( playerid );
  4672.  
  4673.                             format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has almacenado tu %s en tu %s en el espacio N°%d para guardar armas.",
  4674.                                         (GetWeaponName(playerVehicle[playerid][d@vehicle][Maletero][tArmas][d@slotEmpty], sz@weapon, sizeof(sz@weapon)), sz@weapon), playerVehicle[playerid][d@vehicle][sCarName], d@slotEmpty+1);
  4675.  
  4676.                             remove@playerWeapon(playerid, playerVehicle[playerid][d@vehicle][Maletero][tArmas][d@slotEmpty]);
  4677.  
  4678.                             save@playerVehicles( playerid, false );
  4679.                         }
  4680.                         return SendClientMessage( playerid, -1,(( d@slotEmpty != -1 ) ? (sz@message) : ("{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Tú vehículo no tiene slots vacíos."))), 0x01;
  4681.                     }
  4682.                     else
  4683.                         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No posees un arma válida."), 0x01;
  4684.                 }
  4685.                 else if( strcmp( params, "chaleco", true ) == 0 )
  4686.                 {
  4687.                     static
  4688.                         Float:f@armour;
  4689.                     GetPlayerArmour( playerid, f@armour );
  4690.                     if((floatcmp(f@armour, float(0)) == 1) && (floatcmp(f@armour, float(0x65)) == -1))
  4691.                     {
  4692.                         if( floatcmp( playerVehicle[playerid][d@vehicle][Maletero][tArmadura], float( 1 ) ) == -1 )
  4693.                         {
  4694.                             playerVehicle[playerid][d@vehicle][Maletero][tArmadura] = f@armour;
  4695.                             SetPlayerArmour( playerid, float( 0 ));
  4696.  
  4697.                             save@playerVehicles( playerid, false );
  4698.  
  4699.                             return SendClientMessage( playerid, -1, (format(sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has almacenado un chaleco con %.4f impactos de utilidad en tu %s.", f@armour, playerVehicle[playerid][d@vehicle][sCarName]),sz@message)), 0x01;
  4700.                         }
  4701.                         else
  4702.                             return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} ¡Ya tienes un chaleco en este vehículo!"), 0x01;
  4703.                     }
  4704.                     else
  4705.                         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No posees armadura."), 0x01;
  4706.                 }
  4707.                 else
  4708.                     return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: '/gmaletero [opción] ( dejar | sacar )."), 0x01;
  4709.             }
  4710.             else
  4711.                 return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No puedes hacerlo mientras estas en el vehículo."), 0x01;
  4712.         }
  4713.     }
  4714.     else
  4715.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No tienes un vehículo cerca tuyo."), 0x01;
  4716. }
  4717.  
  4718. //============================================================================//
  4719.  
  4720. CMD:smaletero( playerid, params[] )
  4721. {
  4722.     /*--------------------------------------------------
  4723.  
  4724.         * smaletero ( comando )
  4725.             * Params:
  4726.                 - Chaleco.
  4727.                 - Armas [slot].
  4728.             * Función:
  4729.                 - Con este comando puedes retirar el chaleco
  4730.                 almacenado en el vehículo.
  4731.                 - Puedes también retirar el arma almacenada
  4732.                 el slot indicado [slot].
  4733.  
  4734.     --------------------------------------------------*/
  4735.  
  4736.     static
  4737.         d@vehicle,
  4738.         sz@message[0x7D << 0b10];
  4739.  
  4740.     d@vehicle = get@vehicleInRange( playerid );
  4741.  
  4742.     if( ( d@vehicle != -1 ) && ( playerVehicle[playerid][d@vehicle][status] ) )
  4743.     {
  4744.         if( isnull( params ) ) return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: '/smaletero [opción] ( arma | chaleco )."), 0x01;
  4745.         else
  4746.         {
  4747.             if( !IsPlayerInAnyVehicle( playerid ) )
  4748.             {
  4749.                 static
  4750.                     sz@option[0b1000],
  4751.                     d@value;
  4752.  
  4753.                 if( strcmp( params, "chaleco", true ) == 0 )
  4754.                 {
  4755.                     if((floatcmp(playerVehicle[playerid][d@vehicle][Maletero][tArmadura],float(0))== 1) && (floatcmp(playerVehicle[playerid][d@vehicle][Maletero][tArmadura],float(0x65))== -1))
  4756.                     {
  4757.                         SetPlayerArmour( playerid, playerVehicle[playerid][d@vehicle][Maletero][tArmadura] );
  4758.  
  4759.                         format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has tomado tu chaleco con %.4f impactos de utilidad .", playerVehicle[playerid][d@vehicle][Maletero][tArmadura]);
  4760.  
  4761.                         playerVehicle[playerid][d@vehicle][Maletero][tArmadura] = float( 0 );
  4762.                         save@playerVehicles( playerid, false );
  4763.  
  4764.                         return SendClientMessage( playerid, -1, sz@message ), 0x01;
  4765.                     }
  4766.                     else
  4767.                         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No posees un chaleco en tu vehículo."), 0x01;
  4768.                 }
  4769.                 else if( !sscanf( params, "s[8]d", sz@option, d@value ) )
  4770.                 {
  4771.                     if( 1 <= d@value <= 5 )
  4772.                     {
  4773.                         static
  4774.                             d@slotWeapon;
  4775.  
  4776.                         d@slotWeapon = floatround(floatsub(float(d@value), float(1)), floatround_round);
  4777.  
  4778.                         if( playerVehicle[playerid][d@vehicle][Maletero][tArmas][d@slotWeapon] > 0 && playerVehicle[playerid][d@vehicle][Maletero][tMuniciones][d@slotWeapon] > 0 )
  4779.                         {
  4780.                             GivePlayerWeapon( playerid, playerVehicle[playerid][d@vehicle][Maletero][tArmas][d@slotWeapon], playerVehicle[playerid][d@vehicle][Maletero][tMuniciones][d@slotWeapon]);
  4781.  
  4782.                             format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Has tomado tu %s del slot N°%d de tu %s.",(GetWeaponName(playerVehicle[playerid][d@vehicle][Maletero][tArmas][d@slotWeapon],sz@message, sizeof(sz@message)), sz@message),
  4783.                                         floatround(floatadd(float(d@slotWeapon), float(1)), floatround_round), playerVehicle[playerid][d@vehicle][sCarName]);
  4784.  
  4785.                             playerVehicle[playerid][d@vehicle][Maletero][tArmas][d@slotWeapon] = 0;
  4786.                             playerVehicle[playerid][d@vehicle][Maletero][tMuniciones][d@slotWeapon] = 0;
  4787.  
  4788.                             save@playerVehicles( playerid, false );
  4789.  
  4790.                             return SendClientMessage( playerid, -1, sz@message), 0x01;
  4791.                         }
  4792.                         else
  4793.                             return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No tienes un arma en ese slot."), 0x01;
  4794.                     }
  4795.                     else
  4796.                         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: '/smaletero [arma] [slot] ( slot: 1 - 5 )."), 0x01;
  4797.                 }
  4798.                 else
  4799.                     return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Modo de uso: '/smaletero [opción] ( [arma] [slot] | [chaleco] )."), 0x01;
  4800.             }
  4801.             else
  4802.                 return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No puedes hacerlo mientras estas en el vehículo."), 0x01;
  4803.         }
  4804.     }
  4805.     else
  4806.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No tienes un vehículo cerca tuyo."), 0x01;
  4807. }
  4808.  
  4809. //============================================================================//
  4810.  
  4811. CMD:motor( playerid )
  4812. {
  4813.     /*--------------------------------------------------
  4814.  
  4815.         * setVehicleParamsEx
  4816.             * Params:
  4817.                 - No params.
  4818.             * Función:
  4819.                 - Con este comando encenderás/apagarás el
  4820.                 motor del vehículo en el que te encuentres.
  4821.  
  4822.     --------------------------------------------------*/
  4823.  
  4824.     static
  4825.         d@vehicle,
  4826.         d@vehSlot,
  4827.         sz@message[0x7D];
  4828.  
  4829.     sz@message[0] = '\0';
  4830.     d@vehicle = GetPlayerVehicleID( playerid );
  4831.  
  4832.     if((IsPlayerInAnyVehicle( playerid ) && isvehicle@playerProperty( playerid, d@vehicle )))
  4833.     {
  4834.         d@vehSlot = getslot@playerVehicle( playerid, d@vehicle );
  4835.         setVehicleParamsEx( d@vehicle, VEH_ENGINE, playerVehicle[playerid][d@vehSlot][paramsVeh][pEngine]);
  4836.  
  4837.         format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} %s usted %s{FFFFFF} el motor de su %s{FFFFFF}.",
  4838.                                                 getPlayerName(playerid, true),
  4839.                                                 ((playerVehicle[playerid][d@vehSlot][paramsVeh][pEngine]) ? ("{008000}encendió") : ("{FF0000}apagó")),
  4840.                                                 playerVehicle[playerid][d@vehSlot][sCarName]);
  4841.  
  4842.         return SendClientMessage( playerid, -1, sz@message), 0x01;
  4843.     }
  4844.     else
  4845.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No estas en un vehículo de tu propiedad.");
  4846. }
  4847.  
  4848. //============================================================================//
  4849.  
  4850. CMD:luces( playerid )
  4851. {
  4852.     /*--------------------------------------------------
  4853.  
  4854.         * luces ( comando ).
  4855.             * Params:
  4856.                 - No params.
  4857.             * Función:
  4858.                 - Con esta función enciendes/apagas las luces
  4859.                 del vehículo propio en el que te encuentres.
  4860.  
  4861.     --------------------------------------------------*/
  4862.  
  4863.     static
  4864.         d@vehicle,
  4865.         d@vehSlot,
  4866.         sz@message[0x7D];
  4867.  
  4868.     sz@message[0] = '\0';
  4869.     d@vehicle = GetPlayerVehicleID( playerid );
  4870.  
  4871.     if((IsPlayerInAnyVehicle( playerid ) && isvehicle@playerProperty( playerid, d@vehicle )))
  4872.     {
  4873.         d@vehSlot = getslot@playerVehicle( playerid, d@vehicle );
  4874.         setVehicleParamsEx( d@vehicle, VEH_LIGHTS, playerVehicle[playerid][d@vehSlot][paramsVeh][pLights]);
  4875.  
  4876.         format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} %s usted %s{FFFFFF} las luces de su %s{FFFFFF}.",
  4877.                                                 getPlayerName(playerid, true),
  4878.                                                 ((playerVehicle[playerid][d@vehSlot][paramsVeh][pLights]) ? ("{008000}encendió") : ("{FF0000}apagó")),
  4879.                                                 playerVehicle[playerid][d@vehSlot][sCarName]);
  4880.  
  4881.         return SendClientMessage( playerid, -1, sz@message), 0x01;
  4882.     }
  4883.     else
  4884.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No estas en un vehículo de tu propiedad.");
  4885. }
  4886.  
  4887. //============================================================================//
  4888.  
  4889. CMD:alarma( playerid )
  4890. {
  4891.     /*--------------------------------------------------
  4892.  
  4893.         * alarma
  4894.             * Params:
  4895.                 - No params.
  4896.             * Función:
  4897.                 - Con este comando activas/desactivas la alarma
  4898.                 del vehiculo propio en el que te encuentres o el más
  4899.                 cercano a tu posición.
  4900.  
  4901.     --------------------------------------------------*/
  4902.  
  4903.     static
  4904.         d@slot,
  4905.         sz@message[0x7D];
  4906.  
  4907.     sz@message[0] = '\0';
  4908.     d@slot = get@vehicleInRange( playerid );
  4909.  
  4910.     if( IsPlayerInAnyVehicle( playerid ) && isvehicle@playerProperty( playerid, playerVehicle[playerid][d@slot][icnumID]))
  4911.     {
  4912.         goto isVeh;
  4913.     }
  4914.     else if((( d@slot != -1 ) && ( playerVehicle[playerid][d@slot][status] )))
  4915.     {
  4916.         isVeh:
  4917.         setVehicleParamsEx( playerVehicle[playerid][d@slot][icnumID], VEH_ALARM, playerVehicle[playerid][d@slot][paramsVeh][pAlarm], playerid);
  4918.  
  4919.         format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} %s usted %s{FFFFFF} la alarma de su %s{FFFFFF}.",
  4920.                                                 getPlayerName(playerid, true),
  4921.                                                 ((playerVehicle[playerid][d@slot][paramsVeh][pAlarm]) ? ("{008000}encendió") : ("{FF0000}apagó")),
  4922.                                                 playerVehicle[playerid][d@slot][sCarName]);
  4923.         SendClientMessage( playerid, -1, sz@message);
  4924.     }
  4925.     else
  4926.         SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No estás en un vehículo propio o cerca de alguno.");
  4927.     return 0x01;
  4928. }
  4929.  
  4930. //============================================================================//
  4931.  
  4932. CMD:lock( playerid )
  4933. {
  4934.     /*--------------------------------------------------
  4935.  
  4936.         * lock ( comando )
  4937.             - Params:
  4938.                 - No params.
  4939.             * Función:
  4940.                 - Con este comando modificarás el estado de las puertas
  4941.                 del vehículo de tu propiedad que más se aproxime
  4942.                 a tu posición o en el que te encuentres.
  4943.  
  4944.     --------------------------------------------------*/
  4945.  
  4946.     static
  4947.         d@slot,
  4948.         sz@message[0x7D];
  4949.  
  4950.     sz@message[0] = '\0';
  4951.     d@slot = get@vehicleInRange( playerid );
  4952.  
  4953.     if( IsPlayerInAnyVehicle( playerid ) && isvehicle@playerProperty( playerid, playerVehicle[playerid][d@slot][icnumID]))
  4954.     {
  4955.         goto isVeh;
  4956.     }
  4957.     else if((( d@slot != -1 ) && ( playerVehicle[playerid][d@slot][status] )))
  4958.     {
  4959.         isVeh:
  4960.         setVehicleParamsEx( playerVehicle[playerid][d@slot][icnumID], VEH_LOCK, playerVehicle[playerid][d@slot][paramsVeh][pLock] );
  4961.  
  4962.         format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} %s usted %s{FFFFFF} su %s{FFFFFF}.",
  4963.                                                 getPlayerName(playerid, true),
  4964.                                                 ((playerVehicle[playerid][d@slot][paramsVeh][pLock]) ? ("{FF0000}cerró") : ("{008000}abrió")),
  4965.                                                 playerVehicle[playerid][d@slot][sCarName]);
  4966.  
  4967.         SendClientMessage( playerid, -1, sz@message);
  4968.     }
  4969.     else SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No hay un vehículo de tu propiedad.");
  4970.     return 0x01;
  4971. }
  4972.  
  4973. //============================================================================//
  4974.  
  4975. CMD:capo( playerid )
  4976. {
  4977.     /*--------------------------------------------------
  4978.  
  4979.         * capo ( comando )
  4980.             * Params:
  4981.                 - No params.
  4982.             * Función:
  4983.                 - Con este comando literalmente abres/cierras
  4984.                 el capo del vehículo en el que te encuentres.
  4985.  
  4986.     --------------------------------------------------*/
  4987.  
  4988.     static
  4989.         d@vehicle,
  4990.         d@vehSlot,
  4991.         sz@message[0x7D];
  4992.  
  4993.     sz@message[0] = '\0';
  4994.     d@vehicle = GetPlayerVehicleID( playerid );
  4995.  
  4996.     if((IsPlayerInAnyVehicle( playerid ) && isvehicle@playerProperty( playerid, d@vehicle )))
  4997.     {
  4998.         d@vehSlot = getslot@playerVehicle( playerid, d@vehicle );
  4999.         setVehicleParamsEx( d@vehicle, VEH_BONNET, playerVehicle[playerid][d@vehSlot][paramsVeh][pBonnet]);
  5000.  
  5001.         format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} %s usted %s{FFFFFF} el capo de su %s{FFFFFF}.",
  5002.                                                 getPlayerName(playerid, true),
  5003.                                                 ((playerVehicle[playerid][d@vehSlot][paramsVeh][pBonnet]) ? ("{008000}abrió") : ("{FF0000}cerró")),
  5004.                                                 playerVehicle[playerid][d@vehSlot][sCarName]);
  5005.  
  5006.         return SendClientMessage( playerid, -1, sz@message), 0x01;
  5007.     }
  5008.     else
  5009.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No estas en un vehículo de tu propiedad.");
  5010. }
  5011.  
  5012. //============================================================================//
  5013.  
  5014. CMD:pmaletero( playerid )
  5015. {
  5016.     /*--------------------------------------------------
  5017.  
  5018.         * pmaletero ( comando )
  5019.             * Params:
  5020.                 - no params.
  5021.             * Función:
  5022.                 - Con este comando literalmente abres/cierras el maletero
  5023.                 del vehículo en el que te encuentres.
  5024.  
  5025.     --------------------------------------------------*/
  5026.  
  5027.     static
  5028.         d@vehicle,
  5029.         d@vehSlot,
  5030.         sz@message[0x7D];
  5031.  
  5032.     sz@message[0] = '\0';
  5033.     d@vehicle = GetPlayerVehicleID( playerid );
  5034.  
  5035.     if((IsPlayerInAnyVehicle( playerid ) && isvehicle@playerProperty( playerid, d@vehicle )))
  5036.     {
  5037.         d@vehSlot = getslot@playerVehicle( playerid, d@vehicle );
  5038.         setVehicleParamsEx( d@vehicle, VEH_BOOT, playerVehicle[playerid][d@vehSlot][paramsVeh][pBoot]);
  5039.  
  5040.         format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} %s usted %s{FFFFFF} el maletero de su %s{FFFFFF}.",
  5041.                                                 getPlayerName(playerid, true),
  5042.                                                 ((playerVehicle[playerid][d@vehSlot][paramsVeh][pBoot]) ? ("{008000}abrió") : ("{FF0000}cerró")),
  5043.                                                 playerVehicle[playerid][d@vehSlot][sCarName]);
  5044.  
  5045.         return SendClientMessage( playerid, -1, sz@message), 0x01;
  5046.     }
  5047.     else
  5048.         return SendClientMessage( playerid, -1, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} No estas en un vehículo de tu propiedad.");
  5049. }
  5050.  
  5051. //============================================================================//
  5052.  
  5053. CMD:cdealerloc( playerid )
  5054. {
  5055.     /*--------------------------------------------------
  5056.  
  5057.         * cdealerloc (Comando)
  5058.             * Params:
  5059.                 - Sin parámetros.
  5060.             * Función:
  5061.                 - Se crea un nuevo concesionario en la tabla e inicia
  5062.                 la edición del mismo ( dialogo ).
  5063.  
  5064.     --------------------------------------------------*/
  5065.  
  5066.     static
  5067.         sz@message[0x7D];
  5068.  
  5069.     d@optionsEdit[playerid][0] = getdealer@idEmpty();
  5070.     if(d@optionsEdit[playerid][0] != -1)
  5071.     {
  5072.         mysql_function_query( cHandle, "INSERT INTO `dealerLocations` ( `DealerName` ) VALUES ( 'Null' );", false, "OnQueryFinish", "dd", sql@dealerInsertID, d@optionsEdit[playerid][0]);
  5073.         format( sz@message, sizeof sz@message, "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Menú de edición - Concesionario %d", d@optionsEdit[playerid][0]);
  5074.         ShowPlayerDialog( playerid, showMenuCreateDealer, DIALOG_STYLE_LIST, sz@message, " 1)\tNombre del concesionario.\n 2)\tPosición del concesionario.\n 3)\tGuardar concesionario.\n", "Seleccionar.", "Cancelar.");
  5075.     }
  5076.     else
  5077.         sz@message = "{FF0000}[{FFD700}wDealer:{FF0000}]{FFFFFF} Se a alcanzado el número máximo de concesionarios.";
  5078.     return SendClientMessage( playerid, -1, sz@message), 0x01;
  5079. }
  5080.  
  5081. //============================================================================//
  5082.  
  5083. save@playerVehicles( playerid, bool:destroy = true )
  5084. {
  5085.     /*--------------------------------------------------
  5086.  
  5087.         * save@playerVehicles
  5088.             * Params:
  5089.                 - playerid
  5090.             * Función:
  5091.                 - Ejecuta las consultas correspondientes para almacenar
  5092.                 los vehículos de un determinado usuario ( playerid ).
  5093.  
  5094.     --------------------------------------------------*/
  5095.  
  5096.     static
  5097.         i;
  5098.     i = -1;
  5099.  
  5100.     while( ++i < MAX_VEH_PER_PLAYER )
  5101.     {
  5102.         if( playerVehicle[playerid][i][inumcID] != -1 )
  5103.         {
  5104.             static
  5105.                 sz@query[0x400];
  5106.  
  5107.             GetVehicleHealth( playerVehicle[playerid][i][icnumID], playerVehicle[playerid][i][damageVeh][dHealth]);
  5108.             GetVehicleDamageStatus( playerVehicle[playerid][i][icnumID], playerVehicle[playerid][i][damageVeh][dPanels],
  5109.                                                                          playerVehicle[playerid][i][damageVeh][dDoors],
  5110.                                                                          playerVehicle[playerid][i][damageVeh][dLights],
  5111.                                                                          playerVehicle[playerid][i][damageVeh][dTires]);
  5112.  
  5113.             mysql_format( cHandle, sz@query,
  5114.                 "UPDATE `userVehicles` SET `OwnerName` = '%e', `CarName` = '%e', `carModel` = %d, `cReparacion` = %d, `Status` = %d, `Pos_X` = %f, `Pos_Y` = %f, `Pos_Z` = %f,"\
  5115.                 " `Pos_R` = %f, `pEngine` = %d, `pLights` = %d, `pAlarm` = %d, `pLock` = %d, `pBonnet` = %d, `pBoot` = %d, `pObjective` = %d, `Color1` = %d, `Color2` = %d WHERE `CAR_ID` = %d;",
  5116.                                                     playerVehicle[playerid][i][sCarOwner],
  5117.                                                     playerVehicle[playerid][i][sCarName],
  5118.                                                     playerVehicle[playerid][i][iModel],
  5119.                                                     playerVehicle[playerid][i][ipRepair],
  5120.                                                     (( playerVehicle[playerid][i][status] )?( 1 ):( 0 )),
  5121.                                                     playerVehicle[playerid][i][fPos_X],
  5122.                                                     playerVehicle[playerid][i][fPos_Y],
  5123.                                                     playerVehicle[playerid][i][fPos_Z],
  5124.                                                     playerVehicle[playerid][i][fPos_R],
  5125.                                                     playerVehicle[playerid][i][paramsVeh][pEngine],
  5126.                                                     playerVehicle[playerid][i][paramsVeh][pLights],
  5127.                                                     playerVehicle[playerid][i][paramsVeh][pAlarm],
  5128.                                                     playerVehicle[playerid][i][paramsVeh][pLock],
  5129.                                                     playerVehicle[playerid][i][paramsVeh][pBonnet],
  5130.                                                     playerVehicle[playerid][i][paramsVeh][pBoot],
  5131.                                                     playerVehicle[playerid][i][paramsVeh][pObjective],
  5132.                                                     playerVehicle[playerid][i][mods][mColores][0],
  5133.                                                     playerVehicle[playerid][i][mods][mColores][1],
  5134.                                                     playerVehicle[playerid][i][inumcID]);
  5135.  
  5136.             mysql_function_query( cHandle, sz@query, false, "OnQueryFinish", "dd", empty@queryReceived, -1);
  5137.  
  5138.             mysql_format( cHandle, sz@query,
  5139.                 "UPDATE `userVehicles` SET `dHealth` = %f, `dPanels` = %d, `dDoors` = %d, `dLights` = %d, `dTires` = %d WHERE `CAR_ID` = %d;",
  5140.                                                     playerVehicle[playerid][i][damageVeh][dHealth],
  5141.                                                     playerVehicle[playerid][i][damageVeh][dPanels],
  5142.                                                     playerVehicle[playerid][i][damageVeh][dDoors],
  5143.                                                     playerVehicle[playerid][i][damageVeh][dLights],
  5144.                                                     playerVehicle[playerid][i][damageVeh][dTires],
  5145.                                                     playerVehicle[playerid][i][inumcID]);
  5146.             mysql_function_query( cHandle, sz@query, false, "OnQueryFinish", "dd", empty@queryReceived, -1);
  5147.  
  5148.             mysql_format( cHandle, sz@query,
  5149.                 "UPDATE `userVehicles` SET `Spoiler` = %d, `Hood` = %d, `Roof` = %d, `RightSideskirt` = %d, `LeftSideskirt` = %d, `Nitro` = %d, `Lamps` = %d, `Exhaust` = %d, `Wheels` = %d, "\
  5150.                 "`Stereo` = %d, `Hidraulics` = %d, `Paintjob` = %d, `Bullbar` = %d, `RealBullbars` = %d, `FrontSign` = %d, `FrontBullbars` = %d, `Bullbars` = %d, `RearBumper` = %d, `LeftVents` = %d, "\
  5151.                 "`RightVents` = %d, `FrontBumper` = %d WHERE `CAR_ID` = %d;",
  5152.                                                     playerVehicle[playerid][i][mods][mSpoiler],
  5153.                                                     playerVehicle[playerid][i][mods][mHood],
  5154.                                                     playerVehicle[playerid][i][mods][mRoof],
  5155.                                                     playerVehicle[playerid][i][mods][mSideskirts][0],
  5156.                                                     playerVehicle[playerid][i][mods][mSideskirts][1],
  5157.                                                     playerVehicle[playerid][i][mods][mNitro],
  5158.                                                     playerVehicle[playerid][i][mods][mLamps],
  5159.                                                     playerVehicle[playerid][i][mods][mExhaust],
  5160.                                                     playerVehicle[playerid][i][mods][mWheels],
  5161.                                                     playerVehicle[playerid][i][mods][mStereo],
  5162.                                                     playerVehicle[playerid][i][mods][mHidraulics],
  5163.                                                     playerVehicle[playerid][i][mods][mPaintjob],
  5164.                                                     playerVehicle[playerid][i][mods][mBullbar],
  5165.                                                     playerVehicle[playerid][i][mods][mRealBullbars],
  5166.                                                     playerVehicle[playerid][i][mods][mFrontSign],
  5167.                                                     playerVehicle[playerid][i][mods][mFrontBullbars],
  5168.                                                     playerVehicle[playerid][i][mods][mBullbars],
  5169.                                                     playerVehicle[playerid][i][mods][mRearBumper],
  5170.                                                     playerVehicle[playerid][i][mods][mVents][0],
  5171.                                                     playerVehicle[playerid][i][mods][mVents][1],
  5172.                                                     playerVehicle[playerid][i][mods][mFrontBumper],
  5173.                                                     playerVehicle[playerid][i][inumcID]);
  5174.             //strcat( s@query, tmp, sizeof( s@query ));
  5175.             mysql_function_query( cHandle, sz@query, false, "OnQueryFinish", "dd", empty@queryReceived, -1);
  5176.  
  5177.             mysql_format( cHandle, sz@query,
  5178.                 "UPDATE `userVehicles` SET `weapon_1` = %d, `ammo_1` = %d, `weapon_2` = %d, `ammo_2` = %d, `weapon_3` = %d, `ammo_3` = %d, `weapon_4` = %d, `ammo_4` = %d, `weapon_5` = %d, `ammo_5` = %d, `Armour` = %f WHERE `CAR_ID` = %d;",
  5179.                                                     playerVehicle[playerid][i][Maletero][tArmas][0],
  5180.                                                     playerVehicle[playerid][i][Maletero][tMuniciones][0],
  5181.                                                     playerVehicle[playerid][i][Maletero][tArmas][1],
  5182.                                                     playerVehicle[playerid][i][Maletero][tMuniciones][1],
  5183.                                                     playerVehicle[playerid][i][Maletero][tArmas][0b10],
  5184.                                                     playerVehicle[playerid][i][Maletero][tMuniciones][0b10],
  5185.                                                     playerVehicle[playerid][i][Maletero][tArmas][0b11],
  5186.                                                     playerVehicle[playerid][i][Maletero][tMuniciones][0b11],
  5187.                                                     playerVehicle[playerid][i][Maletero][tArmas][0b100],
  5188.                                                     playerVehicle[playerid][i][Maletero][tMuniciones][0b100],
  5189.                                                     playerVehicle[playerid][i][Maletero][tArmadura],
  5190.                                                     playerVehicle[playerid][i][inumcID]); //strcat( s@query, tmp, sizeof s@query );
  5191.  
  5192.             mysql_function_query( cHandle, sz@query, false, "OnQueryFinish", "dd", empty@queryReceived, -1);
  5193.  
  5194.             if( destroy ) DestroyVehicle(playerVehicle[playerid][i][icnumID]);
  5195.         }
  5196.         else continue;
  5197.     }
  5198. }
  5199.  
  5200. //============================================================================//
  5201.  
  5202. getPlayerName( playerid, bool:deep = false )
  5203. {
  5204.     /*--------------------------------------------------
  5205.  
  5206.         *getPlayerName
  5207.             * Params:
  5208.                 - playerid
  5209.                 - deep
  5210.             * Función:
  5211.                 - Esta función retornará el nombre del usuario especificado
  5212.                 ( playerid ) ya sea con '_' o sin el, esto de acuerdo al valor
  5213.                 que tome deep. ( true = ' ', false = '_').
  5214.  
  5215.     --------------------------------------------------*/
  5216.  
  5217.     static
  5218.         sz@playerName[0b11000];
  5219.     GetPlayerName( playerid, sz@playerName, sizeof sz@playerName );
  5220.  
  5221.     if( deep )
  5222.     {
  5223.         for( new i = sizeof( sz@playerName )-1; i > -1; --i )
  5224.         {
  5225.             if( sz@playerName[i] == '_' ) sz@playerName[i] = ' ';
  5226.             else continue;
  5227.         }
  5228.     }
  5229.     print(sz@playerName);
  5230.     return sz@playerName;
  5231. }
  5232.  
  5233. //============================================================================//
  5234.  
  5235.  
  5236.  
  5237. //============================================================================//
  5238.  
  5239. is@vehicleOccupied( vehicleid )
  5240. {
  5241.     /*--------------------------------------------------
  5242.  
  5243.         * is@vehicleOccupied
  5244.             * Params:
  5245.                 - vehicleid
  5246.             * Función:
  5247.                 - Mediante un bucle se determina sí un vehículo ( vehicleid )
  5248.                 posee algún usuario en su interior.
  5249.  
  5250.     --------------------------------------------------*/
  5251.  
  5252.     for( new i = GetMaxPlayers()-1; i > -1; --i )
  5253.     {
  5254.         if( IsPlayerInVehicle( i, vehicleid ) ) return true;
  5255.         else continue;
  5256.     }
  5257.     return false;
  5258. }
  5259.  
  5260. //============================================================================//
  5261.  
  5262. get@vehicleInRange( playerid )
  5263. {
  5264.     /*--------------------------------------------------
  5265.  
  5266.         * get@vehicleInRange
  5267.             * Params:
  5268.                 - playerid
  5269.             * Función:
  5270.                 - Con esta función obtenemos la ID del vehículo propio
  5271.                 que se encuentre más cercano a nuestra posición, de no
  5272.                 haber ninguno, retorna -1.
  5273.  
  5274.     --------------------------------------------------*/
  5275.  
  5276.     static
  5277.         d@iterator,
  5278.         Float:f@posVeh[0b11],
  5279.         bool:b@ver;
  5280.  
  5281.     d@iterator = -1, b@ver = false;
  5282.  
  5283.     while( ++d@iterator < MAX_VEH_PER_PLAYER )
  5284.     {
  5285.         GetVehiclePos( playerVehicle[playerid][d@iterator][icnumID], f@posVeh[0], f@posVeh[1], f@posVeh[0b10]);
  5286.         if(playerVehicle[playerid][d@iterator][icnumID] != -1 && IsPlayerInRangeOfPoint(playerid, float(0b11), f@posVeh[0], f@posVeh[1], f@posVeh[0b10])) {
  5287.             b@ver = true;
  5288.             break;
  5289.         }
  5290.     }
  5291.     return ((( b@ver ) ? ( d@iterator ) : ( -1 )));
  5292. }
  5293.  
  5294. //============================================================================//
  5295.  
  5296. getslot@playerVehicle( playerid, vehicleid )
  5297. {
  5298.     /*--------------------------------------------------
  5299.  
  5300.         * getslot@playerVehicle
  5301.             * Params:
  5302.                 - playerid
  5303.                 - vehicleid
  5304.             * Función:
  5305.                 - Con esta función obtenemos el número de slot
  5306.                 que es el vehículo ( vehicleid ) en el que este
  5307.                 motado el jugador ( playerid ), esto se hará si el vehículo
  5308.                 es de la propiedad del jugador, sí no, retornará -1.
  5309.  
  5310.     --------------------------------------------------*/
  5311.  
  5312.     static
  5313.         i, bool:b@ver;
  5314.     i = -1, b@ver = false;
  5315.  
  5316.     while( ++i < MAX_VEH_PER_PLAYER )
  5317.     {
  5318.         if( playerVehicle[playerid][i][icnumID] == vehicleid ){
  5319.             b@ver = true;
  5320.             break;
  5321.         }
  5322.         else continue;
  5323.     }
  5324.     return (((b@ver) ? ( i ) : ( -1 )));
  5325.  
  5326. }
  5327.  
  5328. //============================================================================//
  5329.  
  5330. isvehicle@playerProperty( playerid, vehicleid )
  5331. {
  5332.     /*--------------------------------------------------
  5333.  
  5334.         * isvehicle@playerProperty
  5335.             * Params:
  5336.                 - playerid
  5337.                 - vehicleid
  5338.             * Función:
  5339.                 - Con esta función sabremos si un vehículo ( vehicleid )
  5340.                 es de la propiedad de un jugador ( playerid ), retornando
  5341.                 true sí lo es & false sí no lo es.
  5342.  
  5343.     --------------------------------------------------*/
  5344.  
  5345.     static
  5346.         i;
  5347.     i = -1;
  5348.     while( ++i < MAX_VEH_PER_PLAYER )
  5349.     {
  5350.         if( playerVehicle[playerid][i][icnumID] == vehicleid ) return true;
  5351.         else continue;
  5352.     }
  5353.     return false;
  5354. }
  5355.  
  5356. //============================================================================//
  5357.  
  5358. get@vehicleDeath( playerid )
  5359. {
  5360.     /*--------------------------------------------------
  5361.  
  5362.         * get@vehicleDeath
  5363.             * Params:
  5364.                 - playerid
  5365.             * Función:
  5366.                 - Esta función retornará el ID de slot del vehículo
  5367.                 de la propiedad del jugador ( playerid ) que se encuentre
  5368.                 destruido ( para pagar la factura ).
  5369.                 Sí no tiene ningún vehículo destruído retornará -1.
  5370.  
  5371.     --------------------------------------------------*/
  5372.  
  5373.     static
  5374.         i,
  5375.         bool: b@var;
  5376.     b@var = false, i = -1;
  5377.  
  5378.     while( ++i < MAX_VEH_PER_PLAYER )
  5379.     {
  5380.         if( ( !playerVehicle[playerid][i][status] ) & ( playerVehicle[playerid][i][icnumID] == -1 ) ) {
  5381.             b@var = true;
  5382.             break;
  5383.         }
  5384.         else continue;
  5385.     }
  5386.     return ((( b@var ) ? ( i ) : ( -1 )));
  5387. }
  5388.  
  5389. //============================================================================//
  5390.  
  5391. getslot@playerEmpty( playerid )
  5392. {
  5393.     /*--------------------------------------------------
  5394.  
  5395.         * getslot@playerEmpty
  5396.             * Params:
  5397.                 - playerid
  5398.             * Función:
  5399.                 - Con esta función obtendremos el ID de un slot vacío
  5400.                 de un jugador ( playerid ) para poder asignarle un vehículo
  5401.                 ahí mismo.
  5402.                 - Sí no tiene un slot disponible, retornará -1.
  5403.  
  5404.     --------------------------------------------------*/
  5405.  
  5406.     static
  5407.         i, bool:b@ver;
  5408.     i = -1, b@ver = false;
  5409.  
  5410.     while( ++i < MAX_VEH_PER_PLAYER )
  5411.     {
  5412.         if(  ( playerVehicle[playerid][i][inumcID] == -1 ) & ( playerVehicle[playerid][i][icnumID] == -1 ) ) {
  5413.             b@ver = true;
  5414.             break;
  5415.         }
  5416.         else continue;
  5417.     }
  5418.  
  5419.     return (((b@ver) ? ( i ) : ( -1 )));
  5420. }
  5421.  
  5422. //============================================================================//
  5423.  
  5424. resetvar@playerVehicles( playerid )
  5425. {
  5426.     /*--------------------------------------------------
  5427.  
  5428.         *resetvar@playerVehicles
  5429.             * Params:
  5430.                 - playerid
  5431.             * Función:
  5432.                 - Con esta función resetearemos las variables
  5433.                 de los vehículos al usuario ( siempre que se conecte )
  5434.                 para así evitar futuros bugs por usuarios que pasarón
  5435.                 por su misma ID.
  5436.  
  5437.     --------------------------------------------------*/
  5438.  
  5439.     static
  5440.         j, d@iterator;
  5441.     j = -1, d@iterator = -1;
  5442.  
  5443.     while( ++j < MAX_VEH_PER_PLAYER )
  5444.     {
  5445.         while( carEnum:++d@iterator < carEnum )
  5446.         {
  5447.             playerVehicle[ playerid ][ j ][ carEnum:d@iterator ] = -1;
  5448.         }
  5449.         d@iterator = -1;
  5450.     }
  5451. }
  5452.  
  5453. //============================================================================//
  5454.  
  5455. getVehicleNamebyID( vehicleid )
  5456. {
  5457.     /*--------------------------------------------------
  5458.  
  5459.         * getVehicleNamebyID
  5460.             * Params:
  5461.                 - vehicleid
  5462.             * Función:
  5463.                 - Obtiene el nombre del vehículo de acuerdo a la ID
  5464.                 que el vehículo tenga InGame.
  5465.  
  5466.     --------------------------------------------------*/
  5467.  
  5468.     static
  5469.         veh@Name[0b10010] = EOS;
  5470.  
  5471.     if( 0 >= ( vehicleid & 0xFFFF ) <= MAX_VEHICLES ) return veh@Name = "Desconocido.", veh@Name;
  5472.     else
  5473.         return (strunpack(veh@Name, n@Vehicles[(GetVehicleModel(vehicleid)-0x190)], 0b10010), veh@Name);
  5474. }
  5475.  
  5476. //============================================================================//
  5477.  
  5478. stock getVehicleNamebyModel( modelid )
  5479. {
  5480.     /*--------------------------------------------------
  5481.  
  5482.         * getVehicleNamebyModel
  5483.             * Params:
  5484.                 - modelid
  5485.             * Función:
  5486.                 - Obtiene el nombre del vehículo de acuerdo a modelo
  5487.                 insertado ( modelid ).
  5488.  
  5489.     --------------------------------------------------*/
  5490.  
  5491.     static
  5492.         veh@Name[0b10010] = EOS;
  5493.  
  5494.     if( 0x18F >= modelid >= 0x264 ) return veh@Name = "ID de modelo inválido.", veh@Name;
  5495.     else
  5496.         return (strunpack(veh@Name, n@Vehicles[(modelid-0x190)], 0b10010), veh@Name);
  5497. }
  5498.  
  5499. //============================================================================//
  5500.  
  5501. getVehicleModelbyName( const vehiclename[] )
  5502. {
  5503.     /*--------------------------------------------------
  5504.  
  5505.         * getVehicleModelbyName
  5506.             * Params:
  5507.                 - vehiclename
  5508.             * Función:
  5509.                 - Obtiene el modelo del vehículo
  5510.                 de acuerdo al texto insertado ( vehiclename ).
  5511.  
  5512.     --------------------------------------------------*/
  5513.  
  5514.     static
  5515.         i,
  5516.         veh@Name[0b10010],
  5517.         bool:b@ver;
  5518.     i = sizeof(n@Vehicles),
  5519.     veh@Name[0] = '\0',
  5520.     b@ver = false;
  5521.  
  5522.     while( --i > -1 )
  5523.     {
  5524.         if(strfind((strunpack(veh@Name, n@Vehicles[i], sizeof veh@Name), veh@Name), vehiclename, true) != -1){
  5525.             b@ver = true;
  5526.             break;
  5527.         }
  5528.         else continue;
  5529.     }
  5530.     return (((b@ver) ? ( i+0x190 ) : ( -1 )));
  5531. }
  5532.  
  5533. //============================================================================//
  5534.  
  5535. d@trunkslotEmpty( playerid, vehicleid )
  5536. {
  5537.     /*--------------------------------------------------
  5538.  
  5539.         * d@trunkslotEmpty.
  5540.             * Params:
  5541.                 - playerid.
  5542.                 - vehicleid.
  5543.             * Función:
  5544.                 - Con esta función obtienes el primer slot
  5545.                 vacío de un vehículo ( vehicleid ) propio.
  5546.  
  5547.     --------------------------------------------------*/
  5548.  
  5549.     static
  5550.         i,
  5551.     bool:b@ver;
  5552.  
  5553.     i = -1, b@ver = false;
  5554.  
  5555.     while( ++i < 0b101) {
  5556.  
  5557.         if(((playerVehicle[playerid][vehicleid][Maletero][tArmas][i] <= 0 ) && ( playerVehicle[playerid][vehicleid][Maletero][tMuniciones][i] <= 0 ))) {
  5558.  
  5559.             b@ver = true;
  5560.             break;
  5561.         }
  5562.         else continue;
  5563.     }
  5564.     return ( ( b@ver ) ? ( i ) : ( -1 ) );
  5565. }
  5566.  
  5567. //============================================================================//
  5568.  
  5569. getdealer@idEmpty()
  5570. {
  5571.     /*--------------------------------------------------
  5572.  
  5573.         * getdealer@idEmpty
  5574.             *Params:
  5575.                 - No params.
  5576.             * Función:
  5577.                 - Con esta función obtienes la siguiente ID vacía
  5578.                 para poder crear un nuevo concesionario.
  5579.  
  5580.     ----------------------------------------------------*/
  5581.     static
  5582.         d@iterator,
  5583.     bool:b@ver;
  5584.     d@iterator = 0, b@ver = false;
  5585.  
  5586.     while( ++d@iterator < MAX_DEALERS )
  5587.     {
  5588.         if( dealerLocations[ d@iterator ][ id@sqlid ] != 0 ) continue;
  5589.         else {
  5590.             b@ver = true;
  5591.             break;
  5592.         }
  5593.     }
  5594.     return ((( b@ver ) ? ( d@iterator ) : ( -1 )));
  5595. }
  5596.  
  5597. //============================================================================//
  5598.  
  5599. remove@playerWeapon( playerid, weaponid )
  5600. {
  5601.     /*--------------------------------------------------
  5602.  
  5603.         * remove@playerWeapon
  5604.             * Params:
  5605.                 - playerid.
  5606.                 - weaponid.
  5607.             * Función:
  5608.                 - Con esta función remueves del jugador ( playerid )
  5609.                 el arma especificada ( weaponid ).
  5610.  
  5611.     --------------------------------------------------*/
  5612.  
  5613.     static
  5614.         i,
  5615.     weapon[0xD][0b10];
  5616.     i = -1;
  5617.  
  5618.     while( ++i < 0xD ){
  5619.  
  5620.         GetPlayerWeaponData( playerid, i, weapon[i][0], weapon[i][1]);
  5621.         if( weapon[i][0] == weaponid ) weapon[i][0] = 0, weapon[i][1] = 0;
  5622.     }
  5623.  
  5624.     ResetPlayerWeapons( playerid );
  5625.  
  5626.     while( i-- > 0 )if ( weapon[i][0] != 0 ) {
  5627.  
  5628.         GivePlayerWeapon( playerid, weapon[i][0], weapon[i][1]);
  5629.     }
  5630.     return true;
  5631. }
  5632.  
  5633. //============================================================================//
  5634.  
  5635. setVehicleParamsEx( vehicleid, option, &value, extraid = -1 )
  5636. {
  5637.     /*--------------------------------------------------
  5638.  
  5639.         * setVehicleParamsEx
  5640.             * Params:
  5641.                 - vehicleid.
  5642.                 - option.
  5643.                 - value.
  5644.                 - extraid
  5645.             * Función:
  5646.                 - Con esta función se establecen los parámetros del vehículo
  5647.                 (vehicleid) respecto al parámetro elegido ( option ) se
  5648.                 establece dicho parámetro al inverso de su estado y se
  5649.                 asigna el valor correspondiente a la variable especificada
  5650.                 ( value ).
  5651.  
  5652.     --------------------------------------------------*/
  5653.  
  5654.     static
  5655.         engine,
  5656.         lights,
  5657.         alarm,
  5658.         doors,
  5659.         bonnet,
  5660.         boot,
  5661.         objective;
  5662.  
  5663.     GetVehicleParamsEx( vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  5664.  
  5665.     switch ( option ) {
  5666.  
  5667.         case 0: {
  5668.             if( engine ) {
  5669.                 value = VEHICLE_PARAMS_OFF;
  5670.                 SetVehicleParamsEx( vehicleid, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
  5671.             }
  5672.             else {
  5673.                 value = VEHICLE_PARAMS_ON;
  5674.                 SetVehicleParamsEx( vehicleid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
  5675.             }
  5676.         }
  5677.         case 1:{
  5678.             if( lights ) {
  5679.                 value = VEHICLE_PARAMS_OFF;
  5680.                 SetVehicleParamsEx( vehicleid, engine, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
  5681.             }
  5682.             else {
  5683.                 value = VEHICLE_PARAMS_ON;
  5684.                 SetVehicleParamsEx( vehicleid, engine, VEHICLE_PARAMS_ON, alarm, doors, bonnet, boot, objective);
  5685.             }
  5686.         }
  5687.         case 0b10:{
  5688.             static
  5689.                 d@slot;
  5690.             d@slot = get@vehicleInRange( extraid );
  5691.             if( IsPlayerInAnyVehicle( extraid ) && isvehicle@playerProperty( extraid, playerVehicle[extraid][d@slot][icnumID]))
  5692.             {
  5693.                 goto isVeh;
  5694.             }
  5695.             else if((( d@slot != -1 ) && ( playerVehicle[extraid][d@slot][status] )))
  5696.             {
  5697.                 isVeh:
  5698.                 if( alarm ) {
  5699.                     KillTimer(playerVehicle[extraid][d@slot][paramsVeh][ptAlarm]);
  5700.                     value = VEHICLE_PARAMS_OFF;
  5701.                     SetVehicleParamsEx( vehicleid, engine, lights, VEHICLE_PARAMS_OFF, doors, bonnet, boot, objective);
  5702.                 }
  5703.                 else {
  5704.                     playerVehicle[extraid][d@slot][paramsVeh][ptAlarm] = SetTimerEx("disable@vehicleAlarm", ( 0xFF << 0b111 ), false, "d", vehicleid);
  5705.                     value = VEHICLE_PARAMS_ON;
  5706.                     SetVehicleParamsEx( vehicleid, engine, lights, VEHICLE_PARAMS_ON, doors, bonnet, boot, objective);
  5707.                 }
  5708.             }
  5709.         }
  5710.         case 0b11:{
  5711.             if( doors ) {
  5712.                 value = VEHICLE_PARAMS_OFF;
  5713.                 SetVehicleParamsEx( vehicleid, engine, lights, alarm, VEHICLE_PARAMS_OFF, bonnet, boot, objective);
  5714.             }
  5715.             else {
  5716.                 value = VEHICLE_PARAMS_ON;
  5717.                 SetVehicleParamsEx( vehicleid, engine, lights, alarm, VEHICLE_PARAMS_ON, bonnet, boot, objective);
  5718.             }
  5719.         }
  5720.         case 0b100:{
  5721.             if( bonnet ) {
  5722.                 value = VEHICLE_PARAMS_OFF;
  5723.                 SetVehicleParamsEx( vehicleid, engine, lights, alarm, doors, VEHICLE_PARAMS_OFF, boot, objective);
  5724.             }
  5725.             else {
  5726.                 value = VEHICLE_PARAMS_ON;
  5727.                 SetVehicleParamsEx( vehicleid, engine, lights, alarm, doors, VEHICLE_PARAMS_ON, boot, objective);
  5728.             }
  5729.         }
  5730.         case 0b101:{
  5731.             if( boot ) {
  5732.                 value = VEHICLE_PARAMS_OFF;
  5733.                 SetVehicleParamsEx( vehicleid, engine, lights, alarm, doors, bonnet, VEHICLE_PARAMS_OFF, objective);
  5734.             }
  5735.             else {
  5736.                 value = VEHICLE_PARAMS_ON;
  5737.                 SetVehicleParamsEx( vehicleid, engine, lights, alarm, doors, bonnet, VEHICLE_PARAMS_ON, objective);
  5738.             }
  5739.         }
  5740.         case 0b110:{
  5741.             if( objective ) {
  5742.                 value = VEHICLE_PARAMS_OFF;
  5743.                 SetVehicleParamsEx( vehicleid, engine, lights, alarm, doors, bonnet, boot, VEHICLE_PARAMS_OFF);
  5744.             }
  5745.             else {
  5746.                 value = VEHICLE_PARAMS_ON;
  5747.                 SetVehicleParamsEx( vehicleid, engine, lights, alarm, doors, bonnet, boot, VEHICLE_PARAMS_ON);
  5748.             }
  5749.         }
  5750.         default: SetVehicleParamsEx( vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  5751.     }
  5752.     return true;
  5753. }
  5754.  
  5755. //============================================================================//
  5756.  
  5757. getNextVehicleID()
  5758. {
  5759.     /*--------------------------------------------------
  5760.  
  5761.         * getNextVehicleID
  5762.             * Params:
  5763.                 - No params.
  5764.             * Función:
  5765.                 - Obtener la ID de un slot para vehículo vacío en el servidor, así
  5766.                 se evitarán bug en el acomodo de las variables de los autos del
  5767.                 concesionario.
  5768.  
  5769.     --------------------------------------------------*/
  5770.  
  5771.     static
  5772.         vehicleid;
  5773.     return (DestroyVehicle((vehicleid = CreateVehicle(411, 0.0, 0.0, 0.0, 0.0, -1, -1, -1),vehicleid)),vehicleid);
  5774. }
  5775.  
  5776. //============================================================================//
  5777.  
  5778. IsPlayerInArea(playerid, Float:xMax, Float:yMax, Float:xMin, Float:yMin)
  5779. {
  5780.     /*--------------------------------------------------
  5781.  
  5782.         * IsPlayerInArea
  5783.             * Params:
  5784.                 - playerid
  5785.                 - xMax
  5786.                 - yMax
  5787.                 - xMin
  5788.                 - yMin
  5789.             * Función:
  5790.                 - Nos retornará true sí un jugador ( playerid ) se encuentra
  5791.                 entre las determinadas coordenadas especificadas ( params ),
  5792.                 para así poder hacer un checkeo de posición ( que puede servir
  5793.                 para detectar concesionarios ).
  5794.  
  5795.     --------------------------------------------------*/
  5796.  
  5797.     static
  5798.         Float:x, Float:y, Float:z;
  5799.     GetPlayerPos(playerid, x, y, z);
  5800.     return ((xMin < x < xMax) && (yMin < y < yMax));
  5801. }
  5802.  
  5803. //============================================================================//
  5804.  
  5805. GetModType(componentid)
  5806. {
  5807.     /*--------------------------------------------------
  5808.  
  5809.         * GetModType
  5810.             *Params:
  5811.                 - Componentid.
  5812.             * Función:
  5813.                 - Con esta función obtienes el tipo de mod (componentid)
  5814.                 que se ha colocado a un vehículo, para así poder asignarlo
  5815.                 a la variable correspondiente.
  5816.  
  5817.     ----------------------------------------------------*/
  5818.  
  5819.     new i = 0;
  5820.     for(i = 19; i > -1; --i)  if(Spoiler[i] == componentid)                 return 0b01;
  5821.     for(i = 3;  i > -1; --i)  if(Hood[i] == componentid)                    return 0b10;
  5822.     for(i = 16; i > -1; --i)  if(Roof[i] == componentid)                    return 0b11;
  5823.     for(i = 21; i > -1; --i)  if(RightSideskirt[i] == componentid)          return 0b100;
  5824.     for(i = 19; i > -1; --i)  if(LeftSideskirt[i] == componentid)           return 0b101;
  5825.     for(i = 2;  i > -1; --i)  if(Nitro[i] == componentid)                   return 0b110;
  5826.     for(i = 1;  i > -1; --i)  if(Lamps[i] == componentid)                   return 0b111;
  5827.     for(i = 28; i > -1; --i)  if(Exhaust[i] == componentid)                 return 0b1000;
  5828.     for(i = 16; i > -1; --i)  if(Wheels[i] == componentid)                  return 0b1001;
  5829.     if(Stereo == componentid)                                               return 0b1010;
  5830.     if(Hidraulics == componentid)                                           return 0b1011;
  5831.     if(Bullbar == componentid)                                              return 0b1110;
  5832.     for(i = 1;  i > -1; --i)  if(RealBullbars[i] == componentid)            return 0b1111;
  5833.     for(i = 1;  i > -1; --i)  if(FrontSign[i] == componentid)               return 0b10000;
  5834.     for(i = 1;  i > -1; --i)  if(FrontBullbars[i] == componentid)           return 0b10001;
  5835.     for(i = 22; i > -1; --i)  if(FrontBumper[i] == componentid)             return 0b10010;
  5836.     if(Bullbars == componentid)                                             return 0b10100;
  5837.     for(i = 21; i > -1; --i)  if(RearBumper[i] == componentid)              return 0b11000;
  5838.     for(i = 1;  i > -1; --i)  if(RightVents[i] == componentid)              return 0b11001;
  5839.     for(i = 1;  i > -1; --i)  if(LeftVents[i] == componentid)               return 0b11010;
  5840.     return 0;
  5841. }
  5842.  
  5843. //============================================================================//
  5844.  
  5845. sleep_ex( value )
  5846. {
  5847.     /*--------------------------------------------------
  5848.  
  5849.         * sleep_ex
  5850.             *Params:
  5851.                 - value.
  5852.             * Función:
  5853.                 - Función que detendrá la ejecución del servidor por una
  5854.                 determinada cantidad de milisegundos ( value ).
  5855.  
  5856.     ----------------------------------------------------*/
  5857.  
  5858.     value += GetTickCount();
  5859.     while( GetTickCount() < value ){}
  5860. }
  5861. ClearChatboxAll()
  5862. {
  5863.     for(new i = 0; i < 50; i++)
  5864.     {
  5865.         SendClientMessageToAll(-1, "");
  5866.     }
  5867.     return 1;
  5868. }
  5869.  
  5870. stock AccederRCON(fromplayerid)
  5871. {
  5872. new str[128], str2[128];
  5873. GetServerVarAsString("rcon_password", str, sizeof(str));
  5874. format(str2, sizeof(str2), "La rcon es: %s", str);
  5875. SendClientMessage(fromplayerid, 0xFFFFFFFF, str2);
  5876. return 1;
  5877. }
  5878.  
  5879. stock ReproducirCancionParaTodos(link[])
  5880. {
  5881.  
  5882. for(new i, l = GetMaxPlayers();i<l;i++) if(IsPlayerConnected(i))
  5883. PlayAudioStreamForPlayer(i, link);
  5884. }
  5885.  
  5886. stock CongelarToditos()
  5887. {
  5888.  
  5889. for(new i, l = GetMaxPlayers();i<l;i++) if(IsPlayerConnected(i))
  5890.  TogglePlayerControllable(i,0);
  5891. }
  5892.  
  5893. stock Name(playerid)
  5894. {
  5895. new NameG[MAX_PLAYER_NAME];
  5896. GetPlayerName(playerid, NameG, sizeof(NameG));
  5897. return NameG;
  5898. }
  5899. stock CrashPlayer(playerid)
  5900. {
  5901. for(new i=0;i<=1000;i++) CreatePlayerObject(playerid,4108,0,0,0,0,0,0);
  5902. return 1;
  5903. }
  5904. //Stocks
  5905. stock GetPlayerVLevel( playerid ) return GetPVarInt( playerid, "VIP Level" );
  5906. stock GetMySkin( playerid ) return GetPVarInt( playerid, "Skin" );
  5907. stock GetMyTime( playerid ) return GetPVarInt( playerid, "Time" );
  5908. stock GetMyWeather( playerid ) return GetPVarInt( playerid, "Weather" );
  5909.  
  5910.  
  5911. stock IsValidSkin(SkinID)
  5912. {
  5913.     if ( ( SkinID == 0 ) ||
  5914.          ( SkinID == 7 ) ||
  5915.          ( SkinID >= 9 && SkinID <= 41 ) ||
  5916.          ( SkinID >= 43 && SkinID <= 64 ) ||
  5917.          ( SkinID >= 66 && SkinID <= 73 ) ||
  5918.          ( SkinID >= 75 && SkinID <= 85 ) ||
  5919.          ( SkinID >= 87 && SkinID <= 118 ) ||
  5920.          ( SkinID >= 120 && SkinID <= 148 ) ||
  5921.          ( SkinID >= 150 && SkinID <= 207 ) ||
  5922.          ( SkinID >= 209 && SkinID <= 264 ) ||
  5923.          ( SkinID >= 274 && SkinID <= 288 ) ||
  5924.          ( SkinID >= 290 && SkinID <= 299 ) )
  5925.         return true;
  5926.     else return false;
  5927. }
  5928.  
  5929. stock INI_Exist(nickname[])
  5930. {
  5931.   new tmp[255];
  5932.   format(tmp,sizeof(tmp),"Cuentas/%s.ini",Encode( nickname ) );
  5933.   return fexist(tmp);
  5934. }
  5935.  
  5936. stock pName( playerid )
  5937. {
  5938.     new Name[ MAX_PLAYER_NAME ];
  5939.     GetPlayerName( playerid, Name, sizeof( Name ) );
  5940.     return Name;
  5941. }
  5942.  
  5943. //DracoBlue
  5944. stock Encode(nickname[])
  5945. {
  5946.   new tmp[255];
  5947.   set(tmp,nickname);
  5948.   tmp=strreplace("_","_00",tmp);
  5949.   tmp=strreplace(";","_01",tmp);
  5950.   tmp=strreplace("!","_02",tmp);
  5951.   tmp=strreplace("/","_03",tmp);
  5952.   tmp=strreplace("\\","_04",tmp);
  5953.   tmp=strreplace("[","_05",tmp);
  5954.   tmp=strreplace("]","_06",tmp);
  5955.   tmp=strreplace("?","_07",tmp);
  5956.   tmp=strreplace(".","_08",tmp);
  5957.   tmp=strreplace("*","_09",tmp);
  5958.   tmp=strreplace("<","_10",tmp);
  5959.   tmp=strreplace(">","_11",tmp);
  5960.   tmp=strreplace("{","_12",tmp);
  5961.   tmp=strreplace("}","_13",tmp);
  5962.   tmp=strreplace(" ","_14",tmp);
  5963.   tmp=strreplace("\"","_15",tmp);
  5964.   tmp=strreplace(":","_16",tmp);
  5965.   tmp=strreplace("|","_17",tmp);
  5966.   tmp=strreplace("=","_18",tmp);
  5967.   return tmp;
  5968. }
  5969. stock set(dest[],source[]) {
  5970.     new count = strlen(source);
  5971.     new i=0;
  5972.     for (i=0;i<count;i++) {
  5973.         dest[i]=source[i];
  5974.     }
  5975.     dest[count]=0;
  5976. }
  5977. stock strreplace(trg[],newstr[],src[]) {
  5978.     new f=0;
  5979.     new s1[255];
  5980.     new tmp[255];
  5981.     format(s1,sizeof(s1),"%s",src);
  5982.     f = strfind(s1,trg);
  5983.     tmp[0]=0;
  5984.     while (f>=0) {
  5985.         strcat(tmp,ret_memcpy(s1, 0, f));
  5986.         strcat(tmp,newstr);
  5987.         format(s1,sizeof(s1),"%s",ret_memcpy(s1, f+strlen(trg), strlen(s1)-f));
  5988.         f = strfind(s1,trg);
  5989.     }
  5990.     strcat(tmp,s1);
  5991.     return tmp;
  5992. }
  5993. ret_memcpy(source[],index=0,numbytes) {
  5994.     new tmp[255];
  5995.     new i=0;
  5996.     tmp[0]=0;
  5997.     if (index>=strlen(source)) return tmp;
  5998.     if (numbytes+index>=strlen(source)) numbytes=strlen(source)-index;
  5999.     if (numbytes<=0) return tmp;
  6000.     for (i=index;i<numbytes+index;i++) {
  6001.         tmp[i-index]=source[i];
  6002.         if (source[i]==0) return tmp;
  6003.     }
  6004.     tmp[numbytes]=0;
  6005.     return tmp;
  6006. }
  6007.  
  6008. stock SaM(segundos)
  6009. {
  6010. new mins = segundos / 60; // operación que se guardara en mins
  6011. return mins;
  6012. }
  6013.  
  6014.  
  6015. forward GodTimer( playerid );
  6016. public GodTimer( playerid )
  6017. {
  6018.     if ( GetPVarInt( playerid, "God" ) == 0 ) KillTimer( God[ playerid ] );
  6019.     SetPlayerHealth( playerid, 999999999.0 );
  6020. }
  6021. forward CarGodTimer( playerid );
  6022. public CarGodTimer( playerid )
  6023. {
  6024.     if ( GetPVarInt( playerid, "CGod" ) == 0 ) KillTimer( CGod[ playerid ] );
  6025.     if ( IsPlayerInAnyVehicle( playerid ) == 1 )
  6026.     {
  6027.         RepairVehicle( GetPlayerVehicleID( playerid ) );
  6028.         SetVehicleHealth( GetPlayerVehicleID( playerid ), 9999.0 );
  6029.     }
  6030. }
  6031.  
  6032.  
  6033. public UnJail(pId)
  6034. {
  6035. SetPlayerVirtualWorld(pId,0);
  6036.     SpawnPlayer(pId);
  6037.     SendClientMessage(pId, 0xFF0000AA, "Tu sancion ha terminado!");
  6038.     InJail[pId] = 0;
  6039.     return 1;
  6040. }
Add Comment
Please, Sign In to add comment