Advertisement
Guest User

GM2

a guest
Oct 20th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 80.04 KB | None | 0 0
  1. //By excel
  2.  
  3. #include <a_samp>
  4. #include <dini>
  5. #include <zcmd>
  6. #include <sscanf>
  7. #include <dudb>
  8. #include <dutils>
  9.  
  10. #pragma tabsize 0
  11.  
  12. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  13. #define COLOR_WHITE         0xFFFFFFFF
  14. #define COLOR_NORMAL_PLAYER 0xFFBB7777
  15. #define COLOR_YELLOW        0xFFFF00AA
  16. #define COLOR_LIGHTGREEN    0x38FF06FF
  17. #define COLOR_LIGHTBLUE     0x91C8FF
  18. #define COLOR_GREEN         0x66CC99AA
  19. #define COLOR_RED       0xFF0000AA
  20.  
  21.  
  22. #define CITY_LOS_SANTOS     0
  23. #define CITY_SAN_FIERRO     1
  24. #define CITY_LAS_VENTURAS   2
  25.  
  26. #define TOTAL_ITEMS         207
  27. #define SELECTION_ITEMS     21
  28. #define ITEMS_PER_LINE      7
  29.  
  30. #define HEADER_TEXT "Vehicles"
  31. #define NEXT_TEXT   "Next"
  32. #define PREV_TEXT   "Prev"
  33.  
  34. #define DIALOG_BASE_X       75.0
  35. #define DIALOG_BASE_Y       130.0
  36. #define DIALOG_WIDTH        550.0
  37. #define DIALOG_HEIGHT       180.0
  38. #define SPRITE_DIM_X        60.0
  39. #define SPRITE_DIM_Y        70.0
  40.  
  41.  
  42. new gTotalItems = TOTAL_ITEMS;
  43. new PlayerText:gCurrentPageTextDrawId[MAX_PLAYERS];
  44. new PlayerText:gHeaderTextDrawId[MAX_PLAYERS];
  45. new PlayerText:gBackgroundTextDrawId[MAX_PLAYERS];
  46. new PlayerText:gNextButtonTextDrawId[MAX_PLAYERS];
  47. new PlayerText:gPrevButtonTextDrawId[MAX_PLAYERS];
  48. new PlayerText:gSelectionItems[MAX_PLAYERS][SELECTION_ITEMS];
  49. new gSelectionItemsTag[MAX_PLAYERS][SELECTION_ITEMS];
  50. new gItemAt[MAX_PLAYERS];
  51. new pv[MAX_PLAYERS];
  52.  
  53. new gItemList[TOTAL_ITEMS] = {
  54. 400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,
  55. 431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,450,451,452,453,454,455,456,457,458,459,460,461,
  56. 462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,
  57. 493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,
  58. 524,525,526,527,528,529,530,531,532,533,534,535,536,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,
  59. 555,556,557,558,559,560,561,562,563,564,565,566,567,568,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,
  60. 586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611
  61. };
  62.  
  63. new Menu:teleport;
  64. new Menu:modif;
  65. new Menu:drift;
  66. new Menu:ah;
  67. new Menu:diger;
  68. new Menu:inter;
  69. new Menu:dm;
  70. new Menu:dm2;
  71. new var0[25];
  72. new var1[256];
  73. //asd
  74. new Float:gRandomSpawns_LosSantos[][4] = {
  75. {2495.0720,-1687.5278,13.5150,359.6696}, // Outside CJ's house - lots of cars nearby
  76. {2306.8252,-1675.4340,13.9221,2.6271}, // House in ganton - lots of cars nearby
  77. {1240.3170,-2036.6886,59.9575,276.4659} /* Verdant Bluffs */
  78. };
  79.  
  80. //asd
  81.  
  82.  
  83. new Float:gRandomSpawns_LasVenturas[][4] = {
  84. {1860.9672,1030.2910,10.8203,271.6988} //  Behind 4 Dragons
  85. };
  86.  
  87. new Float:gRandomSpawns_SanFierro[][4] = {
  88. {-2723.4639,-314.8138,7.1839,43.5562},  // golf course spawn
  89. {-2694.5344,64.5550,4.3359,95.0190},  // in front of a house
  90. {-2458.2000,134.5419,35.1719,303.9446},  // hotel
  91. {-2796.6589,219.5733,7.1875,88.8288},  // house
  92. {-2706.5261,397.7129,4.3672,179.8611},  // park
  93. {-2866.7683,691.9363,23.4989,286.3060},  // house
  94. {-2764.9543,785.6434,52.7813,357.6817},  // donut shop
  95. {-2660.9402,883.2115,79.7738,357.4440},  // house
  96. {-2861.0796,1047.7109,33.6068,188.2750}, //  parking lot
  97. {-2629.2009,1383.1367,7.1833,179.7006},  // parking lot at the bridge
  98. {-2079.6802,1430.0189,7.1016,177.6486},  // pier
  99. {-1660.2294,1382.6698,9.8047,136.2952}, //  pier 69
  100. {-1674.1964,430.3246,7.1797,226.1357},  // gas station]
  101. {-1954.9982,141.8080,27.1747,277.7342},  // train station
  102. {-1956.1447,287.1091,35.4688,90.4465},  // car shop
  103. {-1888.1117,615.7245,35.1719,128.4498},  // random
  104. {-1922.5566,886.8939,35.3359,272.1293},  // random
  105. {-1983.3458,1117.0645,53.1243,271.2390},  // church
  106. {-2417.6458,970.1491,45.2969,269.3676},  // gas station
  107. {-2108.0171,902.8030,76.5792,5.7139},  // house
  108. {-2097.5664,658.0771,52.3672,270.4487},  // random
  109. {-2263.6650,393.7423,34.7708,136.4152},  // random
  110. {-2287.5027,149.1875,35.3125,266.3989},  // baseball parking lot
  111. {-2039.3571,-97.7205,35.1641,7.4744},  // driving school
  112. {-1867.5022,-141.9203,11.8984,22.4499},  // factory
  113. {-1537.8992,116.0441,17.3226,120.8537},  // docks ship
  114. {-1708.4763,7.0187,3.5489,319.3260},  // docks hangar
  115. {-1427.0858,-288.9430,14.1484,137.0812},  // airport
  116. {-2173.0654,-392.7444,35.3359,237.0159},  // stadium
  117. {-2320.5286,-180.3870,35.3135,179.6980},  // burger shot
  118. {-2930.0049,487.2518,4.9141,3.8258},  // harbor
  119. {2215.5181,-2627.8174,13.5469,273.7786}, // Ocean docks 1
  120. {2509.4346,-2637.6543,13.6453,358.3565} // Ocean Docks spawn 2
  121.  
  122. };
  123.  
  124. new total_vehicles_from_files=0;
  125.  
  126. new gPlayerCitySelection[MAX_PLAYERS];
  127. new gPlayerHasCitySelected[MAX_PLAYERS];
  128. new gPlayerLastCitySelectionTick[MAX_PLAYERS];
  129.  
  130. new PlayerText:Textdraw0;
  131. new PlayerText:Textdraw1;
  132. new PlayerText:Textdraw2;
  133. new PlayerText:Textdraw3;
  134.  
  135. //===============================NEWS Y MAS=====================================
  136.  
  137. new str[128], pname[MAX_PLAYER_NAME]; // Creacion de str y pname, para no crearlos constantemente.
  138. new archivo[256]; // Creacion del string "archivo", donde almacenaremos la información.
  139.  
  140. enum pInfo //Array donde se guardara la info del jugador!
  141. {
  142.     Registrado,
  143.     Logueado,
  144.     Baneado,
  145.     Admin,
  146. };
  147. new aInfo[MAX_PLAYERS][pInfo]; // Variable que incluye todos los datos del jugador
  148.  
  149. #define Users "TuMamaSystem/%s.ini" //Carpeta donde se guardaran los archivos dentro de scriptfiles!
  150.  
  151. forward SpawnKick(playerid);
  152. forward MessageToAdmins(color,const string[]);
  153.  
  154.  
  155.  
  156. main()
  157. {
  158.     print("\n---------------------------------------");
  159.     print("Running Grand Larceny - by the SA-MP team\n");
  160.     print("---------------------------------------\n");
  161. }
  162.  
  163. public OnPlayerConnect(playerid)
  164. {
  165.  
  166.  
  167.     //Seteamos todos los valores a 0, ya que quedan "guardados" los del jugador anterior.
  168.     aInfo[playerid][Registrado] = 0;
  169.     aInfo[playerid][Logueado] = 0;
  170.     aInfo[playerid][Admin] = 0;
  171.     aInfo[playerid][Baneado] = 0;
  172.  
  173.     GetPlayerName(playerid, pname, sizeof(pname)); //Obtenemos el nombre del jugador y lo guardamos en la variable pname.
  174.     format(archivo, sizeof(archivo), Users, udb_encode(pname)); // Con el nombre del jugador, le damos "nombre" al string "archivo".
  175.  
  176.     if(!dini_Exists(archivo)) // Si el archivo PLAYERNAME.ini no existe...
  177.     {
  178.         format(str, sizeof(str), "Bienvenido %s! Tu cuenta no esta registrada! Utiliza /registrar para registrarla!", pname); // Le damos formato a la string "str" con un texto.
  179.         SendClientMessage(playerid, COLOR_YELLOW, str); // Enviamos el texto al jugador.
  180.         aInfo[playerid][Registrado] = 0; // Indicamos que este jugador no esta registrado.
  181.     }
  182.     else //En caso de que el archivo PLAYERNAME.ini SI exista...
  183.     {
  184.         format(str, sizeof(str), "Bienvenido %s! Utiliza /login para ingresar a tu cuenta", pname); // Le damos formato a la string "str" con un texto.
  185.         SendClientMessage(playerid, COLOR_LIGHTGREEN, str); // Enviamos el texto al jugador.
  186.         aInfo[playerid][Registrado] = 1; // Indicamos que este jugador esta registrado.
  187.  
  188.     }
  189.     format(str, sizeof(str), "%s Ingreso al servidor!", pname); //Damos formato a "str"...
  190.     SendClientMessageToAll(COLOR_LIGHTGREEN, str); // y la enviamos a todos los jugadores conectados.
  191.     return 1;
  192. }
  193.  
  194.  
  195.     new pname[MAX_PLAYER_NAME], string[128];
  196.     GetPlayerName(playerid, pname, sizeof(pname));
  197.     format(string, sizeof(string), "|> %s Se unió al server.", pname);
  198.     SendClientMessageToAll(0xF4A419AA, string);
  199.    
  200.    
  201.  
  202.     SetPlayerMapIcon(playerid,49,822.6,-1590.3,13.5,7,0,MAPICON_LOCAL);
  203.     SetPlayerMapIcon(playerid,50,-2570.1,245.4,10.3,7,0,MAPICON_LOCAL);
  204.     SetPlayerMapIcon(playerid,51,2726.6,-2026.4,17.5,7,0,MAPICON_LOCAL);
  205.     SetPlayerMapIcon(playerid,52,2080.3,2119.0,10.8,7,0,MAPICON_LOCAL);
  206.     SetPlayerMapIcon(playerid,53,675.7,-496.6,16.8,7,0,MAPICON_LOCAL);
  207.     SetPlayerMapIcon(playerid,54,-1805.7,943.2,24.8,29,0,MAPICON_LOCAL);
  208.     SetPlayerMapIcon(playerid,55,2750.9,2470.9,11.0,29,0,MAPICON_LOCAL);
  209.     SetPlayerMapIcon(playerid,56,2351.8,2529.0,10.8,29,0,MAPICON_LOCAL);
  210.     SetPlayerMapIcon(playerid,57,2635.5,1847.4,11.0,29,0,MAPICON_LOCAL);
  211.     SetPlayerMapIcon(playerid,58,2083.4,2221.0,11.0,29,0,MAPICON_LOCAL);
  212.     SetPlayerMapIcon(playerid,59,-1719.1,1359.4,8.6,29,0,MAPICON_LOCAL);
  213.     SetPlayerMapIcon(playerid,60,2330.2,75.2,31.0,29,0,MAPICON_LOCAL);
  214.     SetPlayerMapIcon(playerid,61,203.2,-200.4,6.5,29,0,MAPICON_LOCAL);
  215.     SetPlayerMapIcon(playerid,62,812.9,-1616.1,13.6,10,0,MAPICON_LOCAL);
  216.     SetPlayerMapIcon(playerid,63,1199.1,-924.0,43.3,10,0,MAPICON_LOCAL);
  217.     SetPlayerMapIcon(playerid,64,2362.2,2069.9,10.8,10,0,MAPICON_LOCAL);
  218.     SetPlayerMapIcon(playerid,65,2469.5,2033.8,10.8,10,0,MAPICON_LOCAL);
  219.     SetPlayerMapIcon(playerid,66,2172.9,2795.7,10.8,10,0,MAPICON_LOCAL);
  220.     SetPlayerMapIcon(playerid,67,1875.3,2072.0,10.8,10,0,MAPICON_LOCAL);
  221.     SetPlayerMapIcon(playerid,68,1161.5,2072.0,10.8,10,0,MAPICON_LOCAL);
  222.     SetPlayerMapIcon(playerid,69,-2356.0,1009.0,49.0,10,0,MAPICON_LOCAL);
  223.     SetPlayerMapIcon(playerid,70,-1913.3,826.2,36.9,10,0,MAPICON_LOCAL);
  224.     SetPlayerMapIcon(playerid,71,-2335.6,-165.6,39.5,10,0,MAPICON_LOCAL);
  225.     SetPlayerMapIcon(playerid,72,2397.8,-1895.6,13.7,14,0,MAPICON_LOCAL);
  226.     SetPlayerMapIcon(playerid,73,2421.6,-1509.6,24.1,14,0,MAPICON_LOCAL);
  227.     SetPlayerMapIcon(playerid,74,-2671.6,257.4,4.6,14,0,MAPICON_LOCAL);
  228.     SetPlayerMapIcon(playerid,75,2392.4,2046.5,10.8,14,0,MAPICON_LOCAL);
  229.     SetPlayerMapIcon(playerid,76,2844.5,2401.1,11.0,14,0,MAPICON_LOCAL);
  230.     SetPlayerMapIcon(playerid,77,2635.5,1674.3,11.0,14,0,MAPICON_LOCAL);
  231.     SetPlayerMapIcon(playerid,78,2105.7,2228.7,11.0,14,0,MAPICON_LOCAL);
  232.     SetPlayerMapIcon(playerid,79,-2154.0,-2461.2,30.8,14,0,MAPICON_LOCAL);
  233.     SetPlayerMapIcon(playerid,80,-1816.2,620.8,37.5,14,0,MAPICON_LOCAL);
  234.     SetPlayerMapIcon(playerid,81,-1216.0,1831.4,45.3,14,0,MAPICON_LOCAL);
  235.     SetPlayerMapIcon(playerid,82,172.73,1176.76,13.7,14,0,MAPICON_LOCAL);
  236.     SetPlayerMapIcon(playerid,83,932.0,-1353.0,14.0,14,0,MAPICON_LOCAL);
  237.     SetPlayerMapIcon(playerid,84,1971.7,-2036.6,13.5,39,0,MAPICON_LOCAL);
  238.     SetPlayerMapIcon(playerid,85,2071.6,-1779.9,13.5,39,0,MAPICON_LOCAL);
  239.     //asd
  240.     SetPlayerMapIcon(playerid,86,2094.6,2119.0,10.8,39,0,MAPICON_LOCAL);
  241.     //asd
  242.     SetPlayerMapIcon(playerid,87,-2490.5,-40.1,39.3,39,0,MAPICON_LOCAL);
  243.     SetPlayerMapIcon(playerid,88,1372.9,-1278.8,12.5,6,0,MAPICON_LOCAL);
  244.     SetPlayerMapIcon(playerid,89,2400.5,-1978.4,13.5,6,0,MAPICON_LOCAL);
  245.     SetPlayerMapIcon(playerid,90,-2626.6,209.4,4.9,6,0,MAPICON_LOCAL);
  246.     SetPlayerMapIcon(playerid,91,2535.9,2083.5,10.8,6,0,MAPICON_LOCAL);
  247.     SetPlayerMapIcon(playerid,92,2156.5,943.2,10.8,6,0,MAPICON_LOCAL);
  248.     SetPlayerMapIcon(playerid,93,779.7,1874.3,4.9,6,0,MAPICON_LOCAL);
  249.     SetPlayerMapIcon(playerid,94,-2092.7,-2463.8,30.6,6,0,MAPICON_LOCAL);
  250.     SetPlayerMapIcon(playerid,95,240.0,-178.2,2.0,6,0,MAPICON_LOCAL);
  251.     SetPlayerMapIcon(playerid,96,-1509.4,2611.8,58.5,6,0,MAPICON_LOCAL);
  252.     SetPlayerMapIcon(playerid,97,-315.67,829.87,13.43,6,0,MAPICON_LOCAL);
  253.     SetPlayerMapIcon(playerid,98,2332.9,63.6,31.0,6,0,MAPICON_LOCAL);
  254.     //------
  255.  
  256.     Textdraw0 = CreatePlayerTextDraw(playerid,14.000000, 300.000000, "~r~U~w~~h~ltra ~r~F~w~~h~reeroam");
  257.     PlayerTextDrawBackgroundColor(playerid,Textdraw0, 255);
  258.     PlayerTextDrawFont(playerid,Textdraw0, 0);
  259.     PlayerTextDrawLetterSize(playerid,Textdraw0, 0.740000, 2.400000);
  260.     PlayerTextDrawColor(playerid,Textdraw0, -1);
  261.     PlayerTextDrawSetOutline(playerid,Textdraw0, 1);
  262.     PlayerTextDrawSetProportional(playerid,Textdraw0, 1);
  263.     PlayerTextDrawSetSelectable(playerid,Textdraw0, 0);
  264.  
  265.     Textdraw1 = CreatePlayerTextDraw(playerid,149.000000, 315.000000, "v 1.0");
  266.     PlayerTextDrawBackgroundColor(playerid,Textdraw1, 255);
  267.     PlayerTextDrawFont(playerid,Textdraw1, 0);
  268.     PlayerTextDrawLetterSize(playerid,Textdraw1, 0.550000, 1.700000);
  269.     PlayerTextDrawColor(playerid,Textdraw1, -1);
  270.     PlayerTextDrawSetOutline(playerid,Textdraw1, 1);
  271.     PlayerTextDrawSetProportional(playerid,Textdraw1, 1);
  272.     PlayerTextDrawSetSelectable(playerid,Textdraw1, 0);
  273.  
  274.     Textdraw2 = CreatePlayerTextDraw(playerid,16.000000, 328.000000, "Bienvenido a Ultra Freeroam");
  275.     PlayerTextDrawBackgroundColor(playerid,Textdraw2, 255);
  276.     PlayerTextDrawFont(playerid,Textdraw2, 1);
  277.     PlayerTextDrawLetterSize(playerid,Textdraw2, 0.150000, 0.700000);
  278.     PlayerTextDrawColor(playerid,Textdraw2, -1);
  279.     PlayerTextDrawSetOutline(playerid,Textdraw2, 0);
  280.     PlayerTextDrawSetProportional(playerid,Textdraw2, 1);
  281.     PlayerTextDrawSetShadow(playerid,Textdraw2, 1);
  282.     PlayerTextDrawUseBox(playerid,Textdraw2, 1);
  283.     PlayerTextDrawBoxColor(playerid,Textdraw2, 0);
  284.     PlayerTextDrawTextSize(playerid,Textdraw2, 149.000000, 0.000000);
  285.     PlayerTextDrawSetSelectable(playerid,Textdraw2, 0);
  286.  
  287.     Textdraw3 = CreatePlayerTextDraw(playerid,5.000000, 1.000000, "City: ~y~Los Santos~n~~w~~h~Skin: ~y~285");
  288.     PlayerTextDrawBackgroundColor(playerid,Textdraw3, 255);
  289.     PlayerTextDrawFont(playerid,Textdraw3, 1);
  290.     PlayerTextDrawLetterSize(playerid,Textdraw3, 0.250000, 1.200000);
  291.     PlayerTextDrawColor(playerid,Textdraw3, -1);
  292.     PlayerTextDrawSetOutline(playerid,Textdraw3, 0);
  293.     PlayerTextDrawSetProportional(playerid,Textdraw3, 1);
  294.     PlayerTextDrawSetShadow(playerid,Textdraw3, 1);
  295.     PlayerTextDrawUseBox(playerid,Textdraw3, 1);
  296.     PlayerTextDrawBoxColor(playerid,Textdraw3, 0);
  297.     PlayerTextDrawTextSize(playerid,Textdraw3, 149.000000, 0.000000);
  298.     PlayerTextDrawSetSelectable(playerid,Textdraw3, 0);
  299.  
  300.     GameTextForPlayer(playerid,"~w~Ultra Freeroam",3000,4);
  301.     SendClientMessage(playerid,COLOR_WHITE,"Bienvenido a {88AA88}U{FFFFFF}ltra {88AA88}F{FFFFFF}reeroam");
  302.    
  303.     // class selection init vars
  304.     gPlayerCitySelection[playerid] = -1;
  305.     gPlayerHasCitySelected[playerid] = 0;
  306.     gPlayerLastCitySelectionTick[playerid] = GetTickCount();
  307.  
  308.     //SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);
  309.  
  310.     //Kick(playerid);
  311.    
  312.     /*
  313.     Removes vending machines
  314.     RemoveBuildingForPlayer(playerid, 1302, 0.0, 0.0, 0.0, 6000.0);
  315.     RemoveBuildingForPlayer(playerid, 1209, 0.0, 0.0, 0.0, 6000.0);
  316.     RemoveBuildingForPlayer(playerid, 955, 0.0, 0.0, 0.0, 6000.0);
  317.     RemoveBuildingForPlayer(playerid, 1775, 0.0, 0.0, 0.0, 6000.0);
  318.     RemoveBuildingForPlayer(playerid, 1776, 0.0, 0.0, 0.0, 6000.0);
  319.     */
  320.    
  321.     /*
  322.     new ClientVersion[32];
  323.     GetPlayerVersion(playerid, ClientVersion, 32);
  324.     printf("Player %d reports client version: %s", playerid, ClientVersion);*/
  325.    
  326.     gHeaderTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  327.     gBackgroundTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  328.     gCurrentPageTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  329.     gNextButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  330.     gPrevButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  331.  
  332.     for(new x=0; x < SELECTION_ITEMS; x++) {
  333.         gSelectionItems[playerid][x] = PlayerText:INVALID_TEXT_DRAW;
  334.     }
  335.  
  336.     gItemAt[playerid] = 0;
  337.     {
  338.     if(dini_Isset("/jugador/dinero.ini",PlayerName(playerid)))
  339.      GivePlayerMoney(playerid,dini_Int("/jugador/dinero.ini",PlayerName(playerid)));
  340.  
  341. if(dini_Isset("/jugador/score.ini",PlayerName (playerid)))
  342.  SetPlayerScore(playerid,dini_Int("/jugador/score.ini", PlayerName(playerid)));
  343.  
  344. }
  345.     return 1;
  346. }
  347.  
  348. public OnPlayerDisconnect(playerid,reason)
  349. {
  350.  
  351. switch(reason)
  352.     {
  353.         case 0: format(str, sizeof(str), "%s dejo el servidor. (Crash)", pname); //Si el jugador se desconecto por un crash
  354.         case 1: format(str, sizeof(str), "%s dejo el servidor. (Salio)", pname); //Si se desconecto por haber salido.
  355.         case 2: format(str, sizeof(str), "%s dejo el servidor. (Kickeado/Baneado)", pname); // Si se desconecto a causa de las funciones kick/ban.
  356.     }
  357.     SendClientMessageToAll(COLOR_GREEN, str); // Enviamos la razon a los jugadores.
  358.     GetPlayerName(playerid, pname, sizeof(pname)); //Guardamos el nombre del player en la variable pname
  359.     format(archivo, sizeof(archivo), Users, udb_encode(pname)); // Damos formato a "archivo"
  360.     // Guardamos los datos del jugador en su archivo!
  361.     dini_IntSet(archivo, "Admin", aInfo[playerid][Admin]);
  362.     dini_IntSet(archivo, "Baneado", aInfo[playerid][Baneado]);
  363.     return 1;
  364.     new pname[MAX_PLAYER_NAME], string[128];
  365.     GetPlayerName(playerid, pname, sizeof(pname));
  366.     format(string, sizeof(string), ">> %s se fue del servidor)", pname,reason);
  367.     SendClientMessageToAll(0xF4A419AA, string);
  368.    
  369.     dini_IntSet("/jugador/dinero.ini",PlayerName(playerid),GetPlayerMoney(playerid));
  370.  
  371. dini_IntSet("/jugador/score.iniscore.ini",PlayerName(playerid),GetPlayerScore(playerid));
  372.  
  373.    
  374.     return 1;
  375. }
  376.  
  377. public OnPlayerSpawn(playerid)
  378. {
  379.  
  380. if(aInfo[playerid][Registrado] == 0) // Si el jugador no esta registrado
  381.     {
  382.         format(str, sizeof(str), "Tienes 60 segundos para registrarte o seras kickeado!"); // Damos formato a str.
  383.         SendClientMessage(playerid, COLOR_LIGHTGREEN, str); // Enviamos str al jugador.
  384.         format(str, sizeof(str), "Utiliza /registrar para hacerlo"); // Damos formato a str
  385.         SendClientMessage(playerid, COLOR_LIGHTBLUE, str); // Enviamos str al jugador
  386.         SetTimerEx("SpawnKick", 60000, 0, "i", playerid); // Creamos el timer de un minuto
  387.         TogglePlayerControllable(playerid, 0); // Frezeamos al jugador.
  388.         return 0;
  389.     }
  390.  
  391.     if(aInfo[playerid][Logueado] == 0)
  392.     {
  393.         format(str, sizeof(str), "Tienes 60 segundos para loguear o seras kickeado!"); // Damos formato a str
  394.         SendClientMessage(playerid, COLOR_LIGHTGREEN, str); // Enviamos str al jugador
  395.         format(str, sizeof(str), "Utiliza /login para hacerlo"); // Damos formato a str
  396.         SendClientMessage(playerid, COLOR_LIGHTBLUE, str); // Enviamos str al jugador
  397.         SetTimerEx("SpawnKick", 60000, 0, "i", playerid); // Creamos el timer de un minuto
  398.         TogglePlayerControllable(playerid, 0);  // Frezeamos al jugador.
  399.         return 0;
  400.     }
  401.     return 1;
  402. }
  403.     SetPlayerArmour(playerid,50);
  404.     SendClientMessage(playerid,0xDD55557FFA,"Usa /Comandos");
  405.     PlayerTextDrawHide(playerid,Textdraw0);
  406.     PlayerTextDrawHide(playerid,Textdraw1);
  407.     PlayerTextDrawHide(playerid,Textdraw2);
  408.     PlayerTextDrawHide(playerid,Textdraw3);
  409.    
  410.     new randSpawn = 0;
  411.    
  412.     SetPlayerInterior(playerid,0);
  413.     TogglePlayerClock(playerid,0);
  414.     ResetPlayerMoney(playerid);
  415.     GivePlayerMoney(playerid, 30000);
  416.  
  417.     if(CITY_LOS_SANTOS == gPlayerCitySelection[playerid]) {
  418.         randSpawn = random(sizeof(gRandomSpawns_LosSantos));
  419.         SetPlayerPos(playerid,
  420.          gRandomSpawns_LosSantos[randSpawn][0],
  421.          gRandomSpawns_LosSantos[randSpawn][1],
  422.          gRandomSpawns_LosSantos[randSpawn][2]);
  423.         SetPlayerFacingAngle(playerid,gRandomSpawns_LosSantos[randSpawn][3]);
  424.     }
  425.     else if(CITY_SAN_FIERRO == gPlayerCitySelection[playerid]) {
  426.         randSpawn = random(sizeof(gRandomSpawns_SanFierro));
  427.         SetPlayerPos(playerid,
  428.          gRandomSpawns_SanFierro[randSpawn][0],
  429.          gRandomSpawns_SanFierro[randSpawn][1],
  430.          gRandomSpawns_SanFierro[randSpawn][2]);
  431.         SetPlayerFacingAngle(playerid,gRandomSpawns_SanFierro[randSpawn][3]);
  432.     }
  433.     else if(CITY_LAS_VENTURAS == gPlayerCitySelection[playerid]) {
  434.         randSpawn = random(sizeof(gRandomSpawns_LasVenturas));
  435.         SetPlayerPos(playerid,
  436.          gRandomSpawns_LasVenturas[randSpawn][0],
  437.          gRandomSpawns_LasVenturas[randSpawn][1],
  438.          gRandomSpawns_LasVenturas[randSpawn][2]);
  439.         SetPlayerFacingAngle(playerid,gRandomSpawns_LasVenturas[randSpawn][3]);
  440.     }
  441.  
  442.     //SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);
  443.    
  444.     SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,9999);
  445.     SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,9999);
  446.     SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,9999);
  447.     SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,9999);
  448.     SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,9999);
  449.     SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,9999);
  450.     SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,9999);
  451.     SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,9999);
  452.     SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,9999);
  453.     SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,9999);
  454.     SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,9999);
  455.    
  456.     GivePlayerWeapon(playerid,34,10000);
  457.     //GivePlayerWeapon(playerid,WEAPON_MP5,100);
  458.     TogglePlayerClock(playerid, 0);
  459. return 0;
  460. }
  461.  
  462.  
  463.  
  464. public OnPlayerDeath(playerid, killerid, reason)
  465. {
  466.  
  467.     SendDeathMessage(killerid,playerid,reason);
  468.     PlayerTextDrawHide(playerid,Textdraw0);
  469.     PlayerTextDrawHide(playerid,Textdraw1);
  470.     PlayerTextDrawHide(playerid,Textdraw2);
  471.     PlayerTextDrawHide(playerid,Textdraw3);
  472.  
  473.     new playercash;
  474.    
  475.     // if they ever return to class selection make them city
  476.     // select again first
  477.     gPlayerHasCitySelected[playerid] = 0;
  478.    
  479.     if(killerid == INVALID_PLAYER_ID) {
  480.         } else {
  481.         playercash = GetPlayerMoney(playerid);
  482.         if(playercash > 0)  {
  483.             GivePlayerMoney(killerid, playercash);
  484.                         SetPlayerScore(killerid,(GetPlayerScore(killerid))+1);
  485.             }
  486.     }
  487.     return 1;
  488. }
  489.  
  490. GetNumberOfPages()
  491. {
  492.     if((gTotalItems >= SELECTION_ITEMS) && (gTotalItems % SELECTION_ITEMS) == 0)
  493.     {
  494.         return (gTotalItems / SELECTION_ITEMS);
  495.     }
  496.     else return (gTotalItems / SELECTION_ITEMS) + 1;
  497. }
  498.  
  499. //------------------------------------------------
  500.  
  501. PlayerText:CreateCurrentPageTextDraw(playerid, Float:Xpos, Float:Ypos)
  502. {
  503.     new PlayerText:txtInit;
  504.     txtInit = CreatePlayerTextDraw(playerid, Xpos, Ypos, "0/0");
  505.     PlayerTextDrawUseBox(playerid, txtInit, 0);
  506.     PlayerTextDrawLetterSize(playerid, txtInit, 0.4, 1.1);
  507.     PlayerTextDrawFont(playerid, txtInit, 1);
  508.     PlayerTextDrawSetShadow(playerid, txtInit, 0);
  509.     PlayerTextDrawSetOutline(playerid, txtInit, 1);
  510.     PlayerTextDrawColor(playerid, txtInit, 0xACCBF1FF);
  511.     PlayerTextDrawShow(playerid, txtInit);
  512.     return txtInit;
  513. }
  514.  
  515. //------------------------------------------------
  516. // Creates a button textdraw and returns the textdraw ID.
  517.  
  518. PlayerText:CreatePlayerDialogButton(playerid, Float:Xpos, Float:Ypos, Float:Width, Float:Height, button_text[])
  519. {
  520.     new PlayerText:txtInit;
  521.     txtInit = CreatePlayerTextDraw(playerid, Xpos, Ypos, button_text);
  522.     PlayerTextDrawUseBox(playerid, txtInit, 1);
  523.     PlayerTextDrawBoxColor(playerid, txtInit, 0x000000FF);
  524.     PlayerTextDrawBackgroundColor(playerid, txtInit, 0x000000FF);
  525.     PlayerTextDrawLetterSize(playerid, txtInit, 0.4, 1.1);
  526.     PlayerTextDrawFont(playerid, txtInit, 1);
  527.     PlayerTextDrawSetShadow(playerid, txtInit, 0); // no shadow
  528.     PlayerTextDrawSetOutline(playerid, txtInit, 0);
  529.     PlayerTextDrawColor(playerid, txtInit, 0x4A5A6BFF);
  530.     PlayerTextDrawSetSelectable(playerid, txtInit, 1);
  531.     PlayerTextDrawAlignment(playerid, txtInit, 2);
  532.     PlayerTextDrawTextSize(playerid, txtInit, Height, Width); // The width and height are reversed for centering.. something the game does <g>
  533.     PlayerTextDrawShow(playerid, txtInit);
  534.     return txtInit;
  535. }
  536.  
  537. //------------------------------------------------
  538.  
  539. PlayerText:CreatePlayerHeaderTextDraw(playerid, Float:Xpos, Float:Ypos, header_text[])
  540. {
  541.     new PlayerText:txtInit;
  542.     txtInit = CreatePlayerTextDraw(playerid, Xpos, Ypos, header_text);
  543.     PlayerTextDrawUseBox(playerid, txtInit, 0);
  544.     PlayerTextDrawLetterSize(playerid, txtInit, 1.25, 3.0);
  545.     PlayerTextDrawFont(playerid, txtInit, 0);
  546.     PlayerTextDrawSetShadow(playerid, txtInit, 0);
  547.     PlayerTextDrawSetOutline(playerid, txtInit, 1);
  548.     PlayerTextDrawColor(playerid, txtInit, 0xACCBF1FF);
  549.     PlayerTextDrawShow(playerid, txtInit);
  550.     return txtInit;
  551. }
  552.  
  553. //------------------------------------------------
  554.  
  555. PlayerText:CreatePlayerBackgroundTextDraw(playerid, Float:Xpos, Float:Ypos, Float:Width, Float:Height)
  556. {
  557.     new PlayerText:txtBackground = CreatePlayerTextDraw(playerid, Xpos, Ypos,
  558.     "                                            ~n~"); // enough space for everyone
  559.     PlayerTextDrawUseBox(playerid, txtBackground, 1);
  560.     PlayerTextDrawBoxColor(playerid, txtBackground, 0x00000099);
  561.     PlayerTextDrawLetterSize(playerid, txtBackground, 5.0, 5.0);
  562.     PlayerTextDrawFont(playerid, txtBackground, 0);
  563.     PlayerTextDrawSetShadow(playerid, txtBackground, 0);
  564.     PlayerTextDrawSetOutline(playerid, txtBackground, 0);
  565.     PlayerTextDrawColor(playerid, txtBackground,0x000000FF);
  566.     PlayerTextDrawTextSize(playerid, txtBackground, Width, Height);
  567.     PlayerTextDrawBackgroundColor(playerid, txtBackground, 0x00000099);
  568.     PlayerTextDrawShow(playerid, txtBackground);
  569.     return txtBackground;
  570. }
  571.  
  572. //------------------------------------------------
  573. // Creates a model preview sprite
  574.  
  575. PlayerText:CreateModelPreviewTextDraw(playerid, modelindex, Float:Xpos, Float:Ypos, Float:width, Float:height)
  576. {
  577.     new PlayerText:txtPlayerSprite = CreatePlayerTextDraw(playerid, Xpos, Ypos, ""); // it has to be set with SetText later
  578.     PlayerTextDrawFont(playerid, txtPlayerSprite, TEXT_DRAW_FONT_MODEL_PREVIEW);
  579.     PlayerTextDrawColor(playerid, txtPlayerSprite, 0xFFFFFFFF);
  580.     PlayerTextDrawBackgroundColor(playerid, txtPlayerSprite, 0x000000EE);
  581.     PlayerTextDrawTextSize(playerid, txtPlayerSprite, width, height); // Text size is the Width:Height
  582.     PlayerTextDrawSetPreviewModel(playerid, txtPlayerSprite, modelindex);
  583.     PlayerTextDrawSetPreviewRot(playerid,txtPlayerSprite, -16.0, 0.0, -55.0);
  584.     PlayerTextDrawSetSelectable(playerid, txtPlayerSprite, 1);
  585.     PlayerTextDrawShow(playerid,txtPlayerSprite);
  586.     return txtPlayerSprite;
  587. }
  588.  
  589. //------------------------------------------------
  590.  
  591. DestroyPlayerModelPreviews(playerid)
  592. {
  593.     new x=0;
  594.     while(x != SELECTION_ITEMS) {
  595.         if(gSelectionItems[playerid][x] != PlayerText:INVALID_TEXT_DRAW) {
  596.             PlayerTextDrawDestroy(playerid, gSelectionItems[playerid][x]);
  597.             gSelectionItems[playerid][x] = PlayerText:INVALID_TEXT_DRAW;
  598.         }
  599.         x++;
  600.     }
  601. }
  602.  
  603. //------------------------------------------------
  604.  
  605. ShowPlayerModelPreviews(playerid)
  606. {
  607.     new x=0;
  608.     new Float:BaseX = DIALOG_BASE_X;
  609.     new Float:BaseY = DIALOG_BASE_Y - (SPRITE_DIM_Y * 0.33); // down a bit
  610.     new linetracker = 0;
  611.  
  612.     new itemat = GetPVarInt(playerid, "vspawner_page") * SELECTION_ITEMS;
  613.  
  614.     // Destroy any previous ones created
  615.     DestroyPlayerModelPreviews(playerid);
  616.  
  617.     while(x != SELECTION_ITEMS && itemat < gTotalItems) {
  618.         if(linetracker == 0) {
  619.             BaseX = DIALOG_BASE_X + 25.0; // in a bit from the box
  620.             BaseY += SPRITE_DIM_Y + 1.0; // move on the Y for the next line
  621.         }
  622.         gSelectionItems[playerid][x] = CreateModelPreviewTextDraw(playerid, gItemList[itemat], BaseX, BaseY, SPRITE_DIM_X, SPRITE_DIM_Y);
  623.         gSelectionItemsTag[playerid][x] = gItemList[itemat];
  624.         BaseX += SPRITE_DIM_X + 1.0; // move on the X for the next sprite
  625.         linetracker++;
  626.         if(linetracker == ITEMS_PER_LINE) linetracker = 0;
  627.         itemat++;
  628.         x++;
  629.     }
  630. }
  631.  
  632. //------------------------------------------------
  633.  
  634. UpdatePageTextDraw(playerid)
  635. {
  636.     new PageText[64+1];
  637.     format(PageText, 64, "%d/%d", GetPVarInt(playerid,"vspawner_page") + 1, GetNumberOfPages());
  638.     PlayerTextDrawSetString(playerid, gCurrentPageTextDrawId[playerid], PageText);
  639. }
  640.  
  641. //------------------------------------------------
  642.  
  643. CreateSelectionMenu(playerid)
  644. {
  645.     gBackgroundTextDrawId[playerid] = CreatePlayerBackgroundTextDraw(playerid, DIALOG_BASE_X, DIALOG_BASE_Y + 20.0, DIALOG_WIDTH, DIALOG_HEIGHT);
  646.     gHeaderTextDrawId[playerid] = CreatePlayerHeaderTextDraw(playerid, DIALOG_BASE_X, DIALOG_BASE_Y, HEADER_TEXT);
  647.     gCurrentPageTextDrawId[playerid] = CreateCurrentPageTextDraw(playerid, DIALOG_WIDTH - 30.0, DIALOG_BASE_Y + 15.0);
  648.     gNextButtonTextDrawId[playerid] = CreatePlayerDialogButton(playerid, DIALOG_WIDTH - 30.0, DIALOG_BASE_Y+DIALOG_HEIGHT+100.0, 50.0, 16.0, NEXT_TEXT);
  649.     gPrevButtonTextDrawId[playerid] = CreatePlayerDialogButton(playerid, DIALOG_WIDTH - 90.0, DIALOG_BASE_Y+DIALOG_HEIGHT+100.0, 50.0, 16.0, PREV_TEXT);
  650.  
  651.     ShowPlayerModelPreviews(playerid);
  652.     UpdatePageTextDraw(playerid);
  653. }
  654.  
  655. //------------------------------------------------
  656.  
  657. DestroySelectionMenu(playerid)
  658. {
  659.     DestroyPlayerModelPreviews(playerid);
  660.  
  661.     PlayerTextDrawDestroy(playerid, gHeaderTextDrawId[playerid]);
  662.     PlayerTextDrawDestroy(playerid, gBackgroundTextDrawId[playerid]);
  663.     PlayerTextDrawDestroy(playerid, gCurrentPageTextDrawId[playerid]);
  664.     PlayerTextDrawDestroy(playerid, gNextButtonTextDrawId[playerid]);
  665.     PlayerTextDrawDestroy(playerid, gPrevButtonTextDrawId[playerid]);
  666.  
  667.     gHeaderTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  668.     gBackgroundTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  669.     gCurrentPageTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  670.     gNextButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  671.     gPrevButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
  672. }
  673.  
  674. //------------------------------------------------
  675.  
  676. SpawnVehicle_InfrontOfPlayer(playerid, vehiclemodel, color1, color2)
  677. {
  678.     new Float:x,Float:y,Float:z;
  679.     new Float:facing;
  680.     new Float:distance;
  681.  
  682.     GetPlayerPos(playerid, x, y, z);
  683.     GetPlayerFacingAngle(playerid, facing);
  684.  
  685.     new Float:size_x,Float:size_y,Float:size_z;
  686.     GetVehicleModelInfo(vehiclemodel, VEHICLE_MODEL_INFO_SIZE, size_x, size_y, size_z);
  687.  
  688.     distance = size_x + 0.5;
  689.  
  690.     x += (distance * floatsin(-facing, degrees));
  691.     y += (distance * floatcos(-facing, degrees));
  692.  
  693.     facing += 90.0;
  694.     if(facing > 360.0) facing -= 360.0;
  695.  
  696.     return DestroyVehicle(pv[playerid]),pv[playerid]=CreateVehicle(vehiclemodel, x, y, z + (size_z * 0.25), facing, color1, color2, -1);
  697. }
  698.  
  699. //------------------------------------------------
  700.  
  701. HandlePlayerItemSelection(playerid, selecteditem)
  702. {
  703.     // In this case we're spawning a vehicle for them
  704.     SpawnVehicle_InfrontOfPlayer(playerid, gSelectionItemsTag[playerid][selecteditem], -1, -1);
  705. }
  706.  
  707. stock LoadStaticVehiclesFromFile(const filename[])
  708. {
  709.     new File:file_ptr;
  710.     new line[256];
  711.     new var_from_line[64];
  712.     new vehicletype;
  713.     new Float:SpawnX;
  714.     new Float:SpawnY;
  715.     new Float:SpawnZ;
  716.     new Float:SpawnRot;
  717.     new Color1, Color2;
  718.     new index;
  719.     new vehicles_loaded;
  720.  
  721.     file_ptr = fopen(filename,filemode:io_read);
  722.     if(!file_ptr) return 0;
  723.  
  724.     vehicles_loaded = 0;
  725.  
  726.     while(fread(file_ptr,line,256) > 0)
  727.     {
  728.         index = 0;
  729.  
  730.         // Read type
  731.         index = token_by_delim(line,var_from_line,',',index);
  732.         if(index == (-1)) continue;
  733.         vehicletype = strval(var_from_line);
  734.         if(vehicletype < 400 || vehicletype > 611) continue;
  735.  
  736.         // Read X, Y, Z, Rotation
  737.         index = token_by_delim(line,var_from_line,',',index+1);
  738.         if(index == (-1)) continue;
  739.         SpawnX = floatstr(var_from_line);
  740.  
  741.         index = token_by_delim(line,var_from_line,',',index+1);
  742.         if(index == (-1)) continue;
  743.         SpawnY = floatstr(var_from_line);
  744.  
  745.         index = token_by_delim(line,var_from_line,',',index+1);
  746.         if(index == (-1)) continue;
  747.         SpawnZ = floatstr(var_from_line);
  748.  
  749.         index = token_by_delim(line,var_from_line,',',index+1);
  750.         if(index == (-1)) continue;
  751.         SpawnRot = floatstr(var_from_line);
  752.  
  753.         // Read Color1, Color2
  754.         index = token_by_delim(line,var_from_line,',',index+1);
  755.         if(index == (-1)) continue;
  756.         Color1 = strval(var_from_line);
  757.  
  758.         index = token_by_delim(line,var_from_line,';',index+1);
  759.         Color2 = strval(var_from_line);
  760.  
  761.         //printf("%d,%.2f,%.2f,%.2f,%.4f,%d,%d",vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2);
  762.  
  763.         AddStaticVehicleEx(vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2,(30*60)); // respawn 30 minutes
  764.  
  765.         /*new numplate_test[32+1];
  766.         format(numplate_test,32,"GRLC{44AA33}%d",vid);
  767.         SetVehicleNumberPlate(vid, numplate_test);*/
  768.  
  769.         vehicles_loaded++;
  770.     }
  771.  
  772.     fclose(file_ptr);
  773.     printf("Loaded %d vehicles from: %s",vehicles_loaded,filename);
  774.     return vehicles_loaded;
  775. }
  776.  
  777. stock token_by_delim(const string[], return_str[], delim, start_index)
  778. {
  779.     new x=0;
  780.     while(string[start_index] != EOS && string[start_index] != delim) {
  781.         return_str[x] = string[start_index];
  782.         x++;
  783.         start_index++;
  784.     }
  785.     return_str[x] = EOS;
  786.     if(string[start_index] == EOS) start_index = (-1);
  787.     return start_index;
  788. }
  789.  
  790. ClassSel_SetupCharSelection(playerid)
  791. {
  792.     if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) {
  793.         SetPlayerInterior(playerid,11);
  794.         SetPlayerPos(playerid,508.7362,-87.4335,998.9609);
  795.         SetPlayerFacingAngle(playerid,0.0);
  796.         SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
  797.         SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
  798.     }
  799.     else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) {
  800.         SetPlayerInterior(playerid,3);
  801.         SetPlayerPos(playerid,-2673.8381,1399.7424,918.3516);
  802.         SetPlayerFacingAngle(playerid,181.0);
  803.         SetPlayerCameraPos(playerid,-2673.2776,1394.3859,918.3516);
  804.         SetPlayerCameraLookAt(playerid,-2673.8381,1399.7424,918.3516);
  805.     }
  806.     else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) {
  807.         SetPlayerInterior(playerid,3);
  808.         SetPlayerPos(playerid,349.0453,193.2271,1014.1797);
  809.         SetPlayerFacingAngle(playerid,286.25);
  810.         SetPlayerCameraPos(playerid,352.9164,194.5702,1014.1875);
  811.         SetPlayerCameraLookAt(playerid,349.0453,193.2271,1014.1797);
  812.     }
  813.    
  814. }
  815.  
  816. ClassSel_SetupSelectedCity(playerid)
  817. {
  818.     if(gPlayerCitySelection[playerid] == -1) {
  819.         gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
  820.     }
  821.    
  822.     if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) {
  823.         SetPlayerInterior(playerid,0);
  824.         SetPlayerCameraPos(playerid,1630.6136,-2286.0298,110.0);
  825.         SetPlayerCameraLookAt(playerid,1887.6034,-1682.1442,47.6167);
  826.         PlayerTextDrawSetString(playerid,Textdraw3,"City: ~y~Los Santos~n~~w~~h~Skin: ~y~-");
  827.     }
  828.     else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) {
  829.         SetPlayerInterior(playerid,0);
  830.         SetPlayerCameraPos(playerid,-1300.8754,68.0546,129.4823);
  831.         SetPlayerCameraLookAt(playerid,-1817.9412,769.3878,132.6589);
  832.         PlayerTextDrawSetString(playerid,Textdraw3,"City: ~y~San Fierro~n~~w~~h~Skin: ~y~-");
  833.     }
  834.     else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) {
  835.         SetPlayerInterior(playerid,0);
  836.         SetPlayerCameraPos(playerid,1310.6155,1675.9182,110.7390);
  837.         SetPlayerCameraLookAt(playerid,2285.2944,1919.3756,68.2275);
  838.         PlayerTextDrawSetString(playerid,Textdraw3,"City: ~y~Las Venturas~n~~w~~h~Skin: ~y~-");
  839.     }
  840. }
  841.  
  842. ClassSel_SwitchToNextCity(playerid)
  843. {
  844.     gPlayerCitySelection[playerid]++;
  845.     if(gPlayerCitySelection[playerid] > CITY_LAS_VENTURAS) {
  846.         gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
  847.     }
  848.     PlayerPlaySound(playerid,1052,0.0,0.0,0.0);
  849.     gPlayerLastCitySelectionTick[playerid] = GetTickCount();
  850.     ClassSel_SetupSelectedCity(playerid);
  851. }
  852.  
  853. ClassSel_SwitchToPreviousCity(playerid)
  854. {
  855.     gPlayerCitySelection[playerid]--;
  856.     if(gPlayerCitySelection[playerid] < CITY_LOS_SANTOS) {
  857.         gPlayerCitySelection[playerid] = CITY_LAS_VENTURAS;
  858.     }
  859.     PlayerPlaySound(playerid,1053,0.0,0.0,0.0);
  860.     gPlayerLastCitySelectionTick[playerid] = GetTickCount();
  861.     ClassSel_SetupSelectedCity(playerid);
  862. }
  863.  
  864. ClassSel_HandleCitySelection(playerid)
  865. {
  866.     new Keys,ud,lr;
  867.     GetPlayerKeys(playerid,Keys,ud,lr);
  868.    
  869.     if(gPlayerCitySelection[playerid] == -1) {
  870.         ClassSel_SwitchToNextCity(playerid);
  871.         return;
  872.     }
  873.  
  874.     // only allow new selection every ~500 ms
  875.     if( (GetTickCount() - gPlayerLastCitySelectionTick[playerid]) < 500 ) return;
  876.    
  877.     if(Keys & KEY_FIRE) {
  878.         gPlayerHasCitySelected[playerid] = 1;
  879.         TogglePlayerSpectating(playerid,0);
  880.         return;
  881.     }
  882.    
  883.     if(lr > 0) {
  884.        ClassSel_SwitchToNextCity(playerid);
  885.     }
  886.     else if(lr < 0) {
  887.        ClassSel_SwitchToPreviousCity(playerid);
  888.     }
  889. }
  890.  
  891. public OnPlayerRequestClass(playerid, classid)
  892. {
  893.     if(IsPlayerNPC(playerid)) return 1;
  894.  
  895.     PlayerTextDrawShow(playerid,Textdraw0);
  896.     PlayerTextDrawShow(playerid,Textdraw1);
  897.     PlayerTextDrawShow(playerid,Textdraw2);
  898.     PlayerTextDrawShow(playerid,Textdraw3);
  899.  
  900.     if(gPlayerHasCitySelected[playerid]) {
  901.         ClassSel_SetupCharSelection(playerid);
  902.         if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS)
  903.         {
  904.             new string[250];
  905.             format(string,sizeof(string),"City: ~y~Las Venturas~n~~w~~h~Skin: ~y~%d",GetPlayerSkin(playerid));
  906.             PlayerTextDrawSetString(playerid,Textdraw3,string);
  907.         }
  908.         else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS)
  909.         {
  910.             new string[250];
  911.             format(string,sizeof(string),"City: ~y~Las Venturas~n~~w~~h~Skin: ~y~%d",GetPlayerSkin(playerid));
  912.             PlayerTextDrawSetString(playerid,Textdraw3,string);
  913.         }
  914.         else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO)
  915.         {
  916.             new string[250];
  917.             format(string,sizeof(string),"City: ~y~San Fierro~n~~w~~h~Skin: ~y~%d",GetPlayerSkin(playerid));
  918.             PlayerTextDrawSetString(playerid,Textdraw3,string);
  919.         }
  920.         return 1;
  921.     } else {
  922.         if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) {
  923.             TogglePlayerSpectating(playerid,1);
  924.             gPlayerCitySelection[playerid] = -1;
  925.         }
  926.     }
  927.    
  928.     return 0;
  929. }
  930.  
  931. public OnGameModeInit()
  932. {
  933.     teleport = CreateMenu("Teleports", 1,20,120,150,40);
  934.     AddMenuItem(teleport, 0, "Tunning");
  935.     AddMenuItem(teleport, 0, "Drifts");
  936.     AddMenuItem(teleport, 0, "Airports");
  937.     AddMenuItem(teleport, 0, "Other");
  938.     AddMenuItem(teleport, 0, "Interiors");
  939.     AddMenuItem(teleport, 0, "Dm1");
  940.     AddMenuItem(teleport, 0, "Dm2");
  941.  
  942.     modif = CreateMenu("Tunning", 1,20,120,150,40);
  943.     AddMenuItem(modif, 0, "Tunning 1");
  944.     AddMenuItem(modif, 0, "Tunning 2");
  945.     AddMenuItem(modif, 0, "Tunning 3");
  946.     AddMenuItem(modif, 0, "Tunning 4");
  947.     AddMenuItem(modif, 0, "~r~Menu");
  948.  
  949.     drift = CreateMenu("Drifts", 1,20,120,150,40);
  950.     AddMenuItem(drift, 0, "Drift 1");
  951.     AddMenuItem(drift, 0, "Drift 2");
  952.     AddMenuItem(drift, 0, "Drift 3");
  953.     AddMenuItem(drift, 0, "Drift 4");
  954.     AddMenuItem(drift, 0, "~r~Menu");
  955.  
  956.     ah = CreateMenu("Airports", 1,20,120,150,40);
  957.     AddMenuItem(ah, 0, "Airport 1");
  958.     AddMenuItem(ah, 0, "Airport 2");
  959.     AddMenuItem(ah, 0, "Airport 3");
  960.     AddMenuItem(ah, 0, "~r~Menu");
  961.  
  962.     diger = CreateMenu("Other", 1,20,120,150,40);
  963.     AddMenuItem(diger, 0, "Army");
  964.     AddMenuItem(diger, 0, "Army Boat");
  965.     AddMenuItem(diger, 0, "4dragon");
  966.     AddMenuItem(diger, 0, "Chilliad");
  967.     AddMenuItem(diger, 0, "GroveStreet");
  968.     AddMenuItem(diger, 0, "Park");
  969.     AddMenuItem(diger, 0, "Sea");
  970.     AddMenuItem(diger, 0, "Picknick");
  971.     AddMenuItem(diger, 0, "~r~Menu");
  972.  
  973.     inter = CreateMenu("Interiors", 1,20,120,150,40);
  974.     AddMenuItem(inter, 0, "Liberty City");
  975.     AddMenuItem(inter, 0, "Shamal");
  976.     AddMenuItem(inter, 0, "Jizzy");
  977.     AddMenuItem(inter, 0, "Andromeda");
  978.     AddMenuItem(inter, 0, "Bloodbowl");
  979.     AddMenuItem(inter, 0, "Burndes");
  980.     AddMenuItem(inter, 0, "Bigsmoke");
  981.     AddMenuItem(inter, 0, "Maddog Mainson");
  982.     AddMenuItem(inter, 0, "~r~Menu");
  983.  
  984.     dm = CreateMenu("List 1", 1,20,120,150,40);
  985.     AddMenuItem(dm, 0, "DeathMatch 1 (Sawn-Off)");
  986.     AddMenuItem(dm, 0, "DeathMatch 2 (MP5)");
  987.     AddMenuItem(dm, 0, "DeathMatch 3 (Tec9)");
  988.     AddMenuItem(dm, 0, "DeathMatch 4 (CShotgun)");
  989.     AddMenuItem(dm, 0, "DeathMatch 5 (M4)");
  990.     AddMenuItem(dm, 0, "DeathMatch 6 (MicroUzi)");
  991.     AddMenuItem(dm, 0, "DeathMatch 7 (AK47)");
  992.     AddMenuItem(dm, 0, "DeathMatch 8 (Boks)");
  993.     AddMenuItem(dm, 0, "DeathMatch 9 (Rifle)");
  994.     AddMenuItem(dm, 0, "~r~Menu");
  995.  
  996.     dm2 = CreateMenu("List 2", 1,20,120,150,40);
  997.     AddMenuItem(dm2, 0, "DeathMatch 10 (Sawn-Off)");
  998.     AddMenuItem(dm2, 0, "DeathMatch 11 (M4)");
  999.     AddMenuItem(dm2, 0, "DeathMatch 12 (Shotgun)");
  1000.     AddMenuItem(dm2, 0, "DeathMatch 13 (Eagle)");
  1001.     AddMenuItem(dm2, 0, "DeathMatch 14 (AK47)");
  1002.     AddMenuItem(dm2, 0, "DeathMatch 15 (Dildo)");
  1003.     AddMenuItem(dm2, 0, "DeathMatch 16 (Sniper)");
  1004.     AddMenuItem(dm2, 0, "~r~Menu");
  1005.  
  1006.     SetGameModeText("UltraFreeroam");
  1007.     //ShowPlayerMarkers(PLAYER_MARKERS_MODE_GLOBAL);
  1008.     ShowNameTags(1);
  1009.     //SetNameTagDrawDistance(40.0);
  1010.     EnableStuntBonusForAll(0);
  1011.     //DisableInteriorEnterExits();
  1012.     SetWeather(2);
  1013.     SetWorldTime(11);
  1014.  
  1015.     UsePlayerPedAnims();
  1016.     ManualVehicleEngineAndLights();
  1017.     //LimitGlobalChatRadius(300.0);
  1018.    
  1019.     AddPlayerClass(0,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1020.  
  1021.     // Player Class
  1022.     AddPlayerClass(281,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1023.     AddPlayerClass(282,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1024.     AddPlayerClass(283,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1025.     AddPlayerClass(284,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1026.     AddPlayerClass(285,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1027.     AddPlayerClass(286,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1028.     AddPlayerClass(287,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1029.     AddPlayerClass(288,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1030.     AddPlayerClass(289,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1031.     AddPlayerClass(265,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1032.     AddPlayerClass(266,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1033.     AddPlayerClass(267,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1034.     AddPlayerClass(268,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1035.     AddPlayerClass(269,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1036.     AddPlayerClass(270,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1037.     AddPlayerClass(1,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1038.     AddPlayerClass(2,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1039.     AddPlayerClass(3,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1040.     AddPlayerClass(4,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1041.     AddPlayerClass(5,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1042.     AddPlayerClass(6,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1043.     AddPlayerClass(8,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1044.     AddPlayerClass(42,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1045.     AddPlayerClass(65,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1046.     //AddPlayerClass(74,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1047.     AddPlayerClass(86,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1048.     AddPlayerClass(119,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1049.     AddPlayerClass(149,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1050.     AddPlayerClass(208,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1051.     AddPlayerClass(273,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1052.     AddPlayerClass(289,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1053.    
  1054.     AddPlayerClass(47,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1055.     AddPlayerClass(48,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1056.     AddPlayerClass(49,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1057.     AddPlayerClass(50,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1058.     AddPlayerClass(51,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1059.     AddPlayerClass(52,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1060.     AddPlayerClass(53,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1061.     AddPlayerClass(54,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1062.     AddPlayerClass(55,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1063.     AddPlayerClass(56,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1064.     AddPlayerClass(57,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1065.     AddPlayerClass(58,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1066.     AddPlayerClass(68,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1067.     AddPlayerClass(69,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1068.     AddPlayerClass(70,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1069.     AddPlayerClass(71,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1070.     AddPlayerClass(72,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1071.     AddPlayerClass(73,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1072.     AddPlayerClass(75,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1073.     AddPlayerClass(76,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1074.     AddPlayerClass(78,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1075.     AddPlayerClass(79,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1076.     AddPlayerClass(80,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1077.     AddPlayerClass(81,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1078.     AddPlayerClass(82,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1079.     AddPlayerClass(83,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1080.     AddPlayerClass(84,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1081.     AddPlayerClass(85,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1082.     AddPlayerClass(87,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1083.     AddPlayerClass(88,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1084.     AddPlayerClass(89,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1085.     AddPlayerClass(91,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1086.     AddPlayerClass(92,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1087.     AddPlayerClass(93,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1088.     AddPlayerClass(95,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1089.     AddPlayerClass(96,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1090.     AddPlayerClass(97,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1091.     AddPlayerClass(98,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1092.     AddPlayerClass(99,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
  1093.  
  1094.     // SPECIAL
  1095.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/trains.txt");
  1096.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/pilots.txt");
  1097.  
  1098.     // LAS VENTURAS
  1099.      total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_law.txt");
  1100.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_airport.txt");
  1101.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_gen.txt");
  1102.    
  1103.     // SAN FIERRO
  1104.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_law.txt");
  1105.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_airport.txt");
  1106.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_gen.txt");
  1107.    
  1108.     // LOS SANTOS
  1109.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_law.txt");
  1110.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_airport.txt");
  1111.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt");
  1112.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt");
  1113.    
  1114.     // OTHER AREAS
  1115.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/whetstone.txt");
  1116.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/bone.txt");
  1117.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/flint.txt");
  1118.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/tierra.txt");
  1119.     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/red_county.txt");
  1120.  
  1121.     printf("Total vehicles from files: %d",total_vehicles_from_files);
  1122.  
  1123. if(!fexist("/jugador/dinero.ini")) dini_Create("/jugador/dinero.ini");
  1124.  
  1125. if(!fexist("/jugador/score.ini")) dini_Create("/jugador/score.ini");
  1126.  
  1127.  
  1128.     return 1;
  1129. }
  1130.  
  1131. stock PlayerName(playerid)
  1132. {
  1133. new Name[MAX_PLAYERS];
  1134. GetPlayerName(playerid, Name, sizeof(Name));
  1135. return Name;
  1136. }
  1137.  
  1138. public OnPlayerUpdate(playerid)
  1139. {
  1140.     if(!IsPlayerConnected(playerid)) return 0;
  1141.     if(IsPlayerNPC(playerid)) return 1;
  1142.  
  1143.     // changing cities by inputs
  1144.     if( !gPlayerHasCitySelected[playerid] &&
  1145.         GetPlayerState(playerid) == PLAYER_STATE_SPECTATING ) {
  1146.         ClassSel_HandleCitySelection(playerid);
  1147.         return 1;
  1148.     }
  1149.    
  1150.    
  1151.    
  1152.     // Don't allow minigun
  1153.     if(GetPlayerWeapon(playerid) == WEAPON_MINIGUN) {
  1154.         Kick(playerid);
  1155.         SendClientMessageToAll(-1,"%s Ha sido expulsado. Razon: Arma no permitida");
  1156.         return 0;
  1157.     }
  1158.     /* No se permite Motosierra*/
  1159.         if(GetPlayerWeapon(playerid) == 9) {
  1160.         Kick(playerid);
  1161.         SendClientMessageToAll(-1,"%s Ha sido expulsado. Razon: Arma no permitida");
  1162.         return 0;
  1163.     }
  1164.     /*No se permite Granada*/
  1165.         if(GetPlayerWeapon(playerid) == 16) {
  1166.         Kick(playerid);
  1167.         SendClientMessageToAll(-1,"%s Ha sido expulsado. Razon: Arma no permitida");
  1168.         return 0;
  1169.     }
  1170.     /*Anti Tear gas*/
  1171.         if(GetPlayerWeapon(playerid) == 17) {
  1172.         Kick(playerid);
  1173.         SendClientMessageToAll(-1,"%s Ha sido expulsado. Razon: Arma no permitida");
  1174.         return 0;
  1175.     }
  1176.     /*Anti Molotov*/
  1177.         if(GetPlayerWeapon(playerid) == 18) {
  1178.         Kick(playerid);
  1179.         SendClientMessageToAll(-1,"%s Ha sido expulsado. Razon: Arma no permitida");
  1180.         return 0;
  1181.     }
  1182.     /*Anti RPG*/
  1183.         if(GetPlayerWeapon(playerid) == 35) {
  1184.         Kick(playerid);
  1185.         SendClientMessageToAll(-1,"%s Ha sido expulsado. Razon: Arma no permitida");
  1186.         return 0;
  1187.     }
  1188.     /*Anti HS Rocket*/
  1189.         if(GetPlayerWeapon(playerid) == 36) {
  1190.         Kick(playerid);
  1191.         SendClientMessageToAll(-1,"%s Ha sido expulsado. Razon: Arma no permitida");
  1192.         return 0;
  1193.     }
  1194.     /*Anti Flamethrower*/
  1195.         if(GetPlayerWeapon(playerid) == 37) {
  1196.         Kick(playerid);
  1197.         SendClientMessageToAll(-1,"%s Ha sido expulsado. Razon: Arma no permitida");
  1198.         return 0;
  1199.     }
  1200.  
  1201.  
  1202.     return 1;
  1203. }
  1204. stock GetPlayerRankAdmin(playerid)
  1205. {
  1206. new RankAdmin[8];
  1207. if(NivelAdmin[playerid] == 1)RankAdmin = ("Rango 1");
  1208. else if(NivelAdmin[playerid] == 2)RankAdmin = ("Rango 2");
  1209. else if(NivelAdmin[playerid] == 3)RankAdmin = ("Rango 3");
  1210. else if(NivelAdmin[playerid] == 4)RankAdmin = ("Rango 4");
  1211. else if(NivelAdmin[playerid] == 5)RankAdmin = ("Rango 5");
  1212. return RankAdmin;
  1213. }
  1214. public OnPlayerCommandText(playerid, cmdtext[])
  1215. {
  1216.    
  1217. if (strcmp("/Prank", cmdtext, true, 10) == 0) {
  1218. SendClientMessageToAll(0xDDDBBB333444F,"Felicidades! Ahora eres Desarrollador!");
  1219. SendClientMessageToAll(0xDDDBBB333444F,"Federico cambio tu rango administrativo a: Desarrollador");
  1220.  
  1221. return 1;
  1222. }
  1223.  
  1224. if (strcmp("/madd", cmdtext, true, 10) == 0) {
  1225. SetPlayerInterior(playerid,5);
  1226. SetPlayerPos(playerid,1267.663208,-781.323242,1091.906250);
  1227. return 1;
  1228. }
  1229.  
  1230.  
  1231.  
  1232. if (strcmp("/chale", cmdtext, true, 10) == 0)
  1233. {
  1234. SetPlayerArmour(playerid,80);
  1235. GivePlayerMoney(playerid,-15000);
  1236. return 1;
  1237. }
  1238.  
  1239. if (strcmp("/comandos", cmdtext, true, 10) == 0)
  1240.     {
  1241.     SendClientMessage(playerid,0xAAFF00,"Comandos:");
  1242.     SendClientMessage(playerid,0xFF3300,"*[/ls] Te lleva a Los Santos*");
  1243.     SendClientMessage(playerid,0xFF3300,"*[/lv] Te lleva a Las Venturas*");
  1244.     SendClientMessage(playerid,0xFF3300,"*[/Cj] Te lleva a Groove Street*");
  1245.     SendClientMessage(playerid,0xFF3300,"*[/Kit 1 - 2] Te dá dos tipos de Kits de armas*");
  1246.     SendClientMessage(playerid,0xFF3300,"*[/Dk /Edc /M4 /Recortadas /Mp5] Te da las armas por nombre del comando*");
  1247.     SendClientMessage(playerid,0xFF3300,"*[/Desmadre] Te lleva a Warehouse con una Escopeta, Desert Eagle y Sniper.");
  1248.     SendClientMessage(playerid,0xFF3300,"*[/Madd] Te lleva a La mansion de Madd Dogg*");
  1249.     SendClientMessage(playerid,0xFF3300,"*[/Respawn] Si te bugueas es recomendado usar este comando*");
  1250.     SendClientMessage(playerid,0xFF3300,"*[/Pene] Recibes un Dildo*");
  1251.      SendClientMessage(playerid,0xFF3300,"*[/Chale] Recibes un 80% de chaleco*");
  1252.     return 1;
  1253.  
  1254.     }
  1255.  
  1256. if (strcmp("/DK", cmdtext, true, 10) == 0)
  1257.     {
  1258.     GivePlayerWeapon(playerid,24,10000);
  1259.     SendClientMessage(playerid,0xFFF0F,"[ARMAS] Recibiste una Desert Eagle!");
  1260.     return 1;
  1261.     }
  1262.  
  1263.     if (strcmp("/Desmadre", cmdtext, true, 10) == 0)
  1264.     {
  1265.     ResetPlayerWeapons(playerid);
  1266.     SetPlayerInterior(playerid,1);
  1267.     SetPlayerPos(playerid,1412.639892,-1.787510,1000.924377);
  1268.     SendClientMessage(playerid,0xDDDAADDDF,"Has ido a Desmadre!");
  1269.     GivePlayerWeapon(playerid,24,10000);
  1270.     GivePlayerWeapon(playerid,25,10000);
  1271.     GivePlayerWeapon(playerid,34,10000);
  1272.     return 1;
  1273.     }
  1274.  
  1275.     if (strcmp("/pene", cmdtext, true, 10) == 0)
  1276.     {
  1277.     GivePlayerWeapon(playerid,10,100);
  1278.     SendClientMessage(playerid,0xFFFFF,"Recibiste un Consolador!");
  1279.     return 1;
  1280.     }
  1281.  
  1282.     if (strcmp("/lv", cmdtext, true, 10) == 0)
  1283.     {
  1284.     SetPlayerPos(playerid,2056.3940,980.9872,10.6456);
  1285.     SendClientMessage(playerid,0xFF0FFFF,"Has ido a Las Venturas!");
  1286.     return 1;
  1287.     }
  1288.  
  1289.     if (strcmp("/Ls", cmdtext, true, 10) == 0)
  1290.     {
  1291.     SetPlayerPos(playerid,1552.5913,-1676.4386,16.1953);
  1292.     SendClientMessage(playerid,0x00FF0FF,"Has ido a Los Santos!");
  1293.     return 1;
  1294.     }
  1295.  
  1296.     if (strcmp("/kill", cmdtext, true, 10) == 0)
  1297.     {
  1298.     SetPlayerHealth(playerid,0);
  1299.     SetPlayerArmour(playerid,0);
  1300.     SendClientMessage(playerid,0x0FF0FF,"[MUERTES] Te has suicidado!");
  1301.     return 1;
  1302.     }
  1303.  
  1304. if (strcmp("/cj", cmdtext, true, 10) == 0)
  1305.     {
  1306.     SetPlayerPos(playerid,2477.8782,-1668.0282,13.3287);
  1307.     SendClientMessage(playerid,0xFFFFF,"Has ido a Groove Street!");
  1308.     return 1;
  1309.     }
  1310.  
  1311.     if (strcmp("/kit 2", cmdtext, true, 10) == 0)
  1312.     {
  1313.     SendClientMessage(playerid,0xAAAAAD,"Recibiste un Kit de armas!");
  1314.     GivePlayerWeapon(playerid,22,10000);
  1315.     GivePlayerWeapon(playerid,26,10000);
  1316.     GivePlayerWeapon(playerid,28,10000);
  1317.     GivePlayerWeapon(playerid,30,10000);
  1318.     GivePlayerWeapon(playerid,34,10000);
  1319.     return 1;
  1320.     }
  1321.  
  1322. if (strcmp("/Kit 1", cmdtext, true, 10) == 0)
  1323.     {
  1324.     SendClientMessage(playerid,0xAAAAAD,"Recibiste un Kit de armas!");
  1325.     GivePlayerWeapon(playerid,24,10000);
  1326.     GivePlayerWeapon(playerid,25,10000);
  1327.     GivePlayerWeapon(playerid,29,10000);
  1328.     GivePlayerWeapon(playerid,31,10000);
  1329.     GivePlayerWeapon(playerid,33,10000);
  1330.     return 1;
  1331.     }
  1332.  
  1333.     if (strcmp("/m4", cmdtext, true, 10) == 0)
  1334.     {
  1335.     GivePlayerWeapon(playerid,31,10000);
  1336.     SendClientMessage(playerid,0xFFF0F,"[ARMAS] Recibiste una M4a1!");
  1337.     return 1;
  1338.     }
  1339.  
  1340. /* */
  1341.     if (strcmp("/edc", cmdtext, true, 10) == 0)
  1342.     {
  1343.     GivePlayerWeapon(playerid,27,10000);
  1344.     SendClientMessage(playerid,0xFFF0F,"[ARMAS] Recibiste una Spas-12!");
  1345.     return 1;
  1346.     }
  1347.  
  1348. if(!strcmp(cmdtext, "/kickall", true))
  1349. {
  1350.     if(!IsPlayerAdmin(playerid)) // Sólo lo podrán usar admins RCON. Puedes modificarlo según tu sistema de admin.
  1351.     {
  1352.         SendClientMessage(playerid, -1, "No eres admin RCON.");
  1353.         return 1;
  1354.     }
  1355.     SendClientMessageToAll(playerid, "* Todos los usuarios han sido kickeados por un administrador.");
  1356.     for(new i = 0; i < MAX_PLAYERS; i++) // Cambialo por foreach si tienes foreach.
  1357.     {
  1358.         if(IsPlayerConnected(i) && !IsPlayerNPC(i))  // Evitará que kickee a los NPC.
  1359.         {
  1360.             Kick(i);
  1361.         }
  1362.     }
  1363.     return 1;
  1364. }
  1365. /*                       */
  1366.     if(!strcmp(cmdtext, "/mp5", true))
  1367.     {
  1368.     GivePlayerWeapon(playerid,29,10000);
  1369.     SendClientMessage(playerid,0xAADDADD0,"[ARMAS] Recibiste una MP5!");
  1370.    
  1371.         return 1;
  1372.         }
  1373.     if(!strcmp(cmdtext,"/respawn", true))
  1374.     {
  1375.     SpawnPlayer(playerid);
  1376.     }
  1377.  
  1378.     if(!strcmp(cmdtext, "/kill", true))
  1379.     {
  1380.         SendClientMessage(playerid,COLOR_WHITE,"SERVER: You commited sucide.");
  1381.         SetPlayerHealth(playerid,0.0);
  1382.         return 1;
  1383.     }
  1384.     if(!strcmp(cmdtext, "/v", true))
  1385.     {
  1386.         // If there was a previously created selection menu, destroy it
  1387.         DestroySelectionMenu(playerid);
  1388.  
  1389.         SetPVarInt(playerid, "vspawner_active", 1);
  1390.         //SetPVarInt(playerid, "vspawner_page", 0); // will reset the page back to the first
  1391.  
  1392.         CreateSelectionMenu(playerid);
  1393.         SelectTextDraw(playerid, 0xACCBF1FF);
  1394.         return 1;
  1395.     }
  1396.        
  1397.         if(!strcmp(cmdtext, "/teleports", true))
  1398.     {
  1399.         ShowMenuForPlayer(teleport,playerid);
  1400.     }
  1401.         return 0;
  1402. }
  1403.  
  1404.  
  1405. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  1406. {
  1407.     if(GetPVarInt(playerid, "vspawner_active") == 0) return 0;
  1408.  
  1409.     // Handle: They cancelled (with ESC)
  1410.     if(clickedid == Text:INVALID_TEXT_DRAW) {
  1411.         DestroySelectionMenu(playerid);
  1412.         SetPVarInt(playerid, "vspawner_active", 0);
  1413.         PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
  1414.         return 1;
  1415.     }
  1416.  
  1417.     return 0;
  1418. }
  1419.  
  1420. //------------------------------------------------
  1421.  
  1422. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  1423. {
  1424.     if(GetPVarInt(playerid, "vspawner_active") == 0) return 0;
  1425.  
  1426.     new curpage = GetPVarInt(playerid, "vspawner_page");
  1427.  
  1428.     // Handle: next button
  1429.     if(playertextid == gNextButtonTextDrawId[playerid]) {
  1430.         if(curpage < (GetNumberOfPages() - 1)) {
  1431.             SetPVarInt(playerid, "vspawner_page", curpage + 1);
  1432.             ShowPlayerModelPreviews(playerid);
  1433.             UpdatePageTextDraw(playerid);
  1434.             PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  1435.         } else {
  1436.             PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
  1437.         }
  1438.         return 1;
  1439.     }
  1440.  
  1441.     // Handle: previous button
  1442.     if(playertextid == gPrevButtonTextDrawId[playerid]) {
  1443.         if(curpage > 0) {
  1444.             SetPVarInt(playerid, "vspawner_page", curpage - 1);
  1445.             ShowPlayerModelPreviews(playerid);
  1446.             UpdatePageTextDraw(playerid);
  1447.             PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0);
  1448.         } else {
  1449.             PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
  1450.         }
  1451.         return 1;
  1452.     }
  1453.  
  1454.     // Search in the array of textdraws used for the items
  1455.     new x=0;
  1456.     while(x != SELECTION_ITEMS) {
  1457.         if(playertextid == gSelectionItems[playerid][x]) {
  1458.             HandlePlayerItemSelection(playerid, x);
  1459.             PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  1460.             DestroySelectionMenu(playerid);
  1461.             CancelSelectTextDraw(playerid);
  1462.             SetPVarInt(playerid, "vspawner_active", 0);
  1463.             return 1;
  1464.         }
  1465.         x++;
  1466.     }
  1467.  
  1468.     return 0;
  1469. }
  1470.  
  1471. public OnPlayerSelectedMenuRow(playerid, row)
  1472. {
  1473.     new Menu:CurrentMenu = GetPlayerMenu(playerid);
  1474.     if(CurrentMenu == teleport)
  1475.         {
  1476.     switch(row)
  1477.     {
  1478.         case 0:
  1479.         {
  1480.             ShowMenuForPlayer(modif, playerid);
  1481.         }
  1482.         case 1:
  1483.         {
  1484.             ShowMenuForPlayer(drift, playerid);
  1485.         }
  1486.         case 2:
  1487.         {
  1488.             ShowMenuForPlayer(ah, playerid);
  1489.         }
  1490.         case 3:
  1491.         {
  1492.             ShowMenuForPlayer(diger, playerid);
  1493.         }
  1494.         case 4:
  1495.         {
  1496.             ShowMenuForPlayer(inter, playerid);
  1497.         }
  1498.         case 5:
  1499.         {
  1500.             ShowMenuForPlayer(dm, playerid);
  1501.         }
  1502.         case 6:
  1503.         {
  1504.             ShowMenuForPlayer(dm2, playerid);
  1505.         }
  1506.     }
  1507.     }
  1508.     if(CurrentMenu == modif)
  1509.         {
  1510.     switch(row)
  1511.     {
  1512.         case 0:
  1513.         {
  1514.         new araba;
  1515.         araba=GetPlayerVehicleID(playerid);
  1516.         SetPlayerPos(playerid, 2644.5220,-2004.0026,13.3828);
  1517.         SetVehiclePos(araba, 2644.5220,-2004.0026,13.3828);
  1518.         PutPlayerInVehicle(playerid,araba,0);
  1519.         TogglePlayerControllable(playerid,1);
  1520.         }
  1521.         case 1:
  1522.         {
  1523.         new araba;
  1524.         araba=GetPlayerVehicleID(playerid);
  1525.         SetPlayerPos(playerid, -1917.2754,287.0215,41.0469);
  1526.         SetVehiclePos(araba, -1917.2754,287.0215,41.0469);
  1527.         PutPlayerInVehicle(playerid,araba,0);
  1528.         TogglePlayerControllable(playerid,1);
  1529.         }
  1530.         case 2:
  1531.         {
  1532.         new araba;
  1533.         araba=GetPlayerVehicleID(playerid);
  1534.         SetPlayerPos(playerid, -2705.5503, 206.1621, 4.1797);
  1535.         SetVehiclePos(araba, -2705.5503, 206.1621, 4.1797);
  1536.         PutPlayerInVehicle(playerid,araba,0);
  1537.         TogglePlayerControllable(playerid,1);
  1538.         }
  1539.         case 3:
  1540.         {
  1541.         new araba;
  1542.         araba=GetPlayerVehicleID(playerid);
  1543.         SetPlayerPos(playerid, 2387.4126,1022.6620,10.8203);
  1544.         SetVehiclePos(araba, 2387.4126,1022.6620,10.8203);
  1545.         PutPlayerInVehicle(playerid,araba,0);
  1546.         TogglePlayerControllable(playerid,1);
  1547.         }
  1548.         case 4: //main menu
  1549.         {
  1550.             ShowMenuForPlayer(teleport, playerid);
  1551.         }
  1552.     }
  1553.     }
  1554.     if(CurrentMenu == drift)
  1555.         {
  1556.     switch(row)
  1557.     {
  1558.         case 0:
  1559.         {
  1560.         new araba;
  1561.         araba=GetPlayerVehicleID(playerid);
  1562.         SetPlayerPos(playerid, -274.9351,1535.3416,75.3594);
  1563.         SetVehiclePos(araba, -274.9351,1535.3416,75.3594);
  1564.         PutPlayerInVehicle(playerid,araba,0);
  1565.         TogglePlayerControllable(playerid,1);
  1566.         }
  1567.         case 1:
  1568.         {
  1569.         new araba;
  1570.         araba=GetPlayerVehicleID(playerid);
  1571.         SetPlayerPos(playerid, 2273.3972,1395.4358,42.8203);
  1572.         SetVehiclePos(araba, 2273.3972,1395.4358,42.8203);
  1573.         PutPlayerInVehicle(playerid,araba,0);
  1574.         TogglePlayerControllable(playerid,1);
  1575.         }
  1576.         case 2:
  1577.         {
  1578.         new araba;
  1579.         araba=GetPlayerVehicleID(playerid);
  1580.         SetPlayerPos(playerid, 1210.4374,-2037.3204,69.0078);
  1581.         SetVehiclePos(araba, 1210.4374,-2037.3204,69.0078);
  1582.         PutPlayerInVehicle(playerid,araba,0);
  1583.         TogglePlayerControllable(playerid,1);
  1584.         }
  1585.         case 3:
  1586.         {
  1587.         new araba;
  1588.         araba=GetPlayerVehicleID(playerid);
  1589.         SetPlayerPos(playerid, -2399.6096,-613.3132,132.3755);
  1590.         SetVehiclePos(araba, -2399.6096,-613.3132,132.3755);
  1591.         PutPlayerInVehicle(playerid,araba,0);
  1592.         TogglePlayerControllable(playerid,1);
  1593.         }
  1594.         case 4: //main menu
  1595.         {
  1596.             ShowMenuForPlayer(teleport, playerid);
  1597.         }
  1598.     }
  1599.     }
  1600.     if(CurrentMenu == ah)
  1601.         {
  1602.     switch(row)
  1603.     {
  1604.         case 0:
  1605.         {
  1606.         new araba;
  1607.         araba=GetPlayerVehicleID(playerid);
  1608.         SetPlayerPos(playerid, -1347.1360,-234.9015,14.1484);
  1609.         SetVehiclePos(araba,  -1347.1360,-234.9015,14.1484);
  1610.         PutPlayerInVehicle(playerid,araba,0);
  1611.         TogglePlayerControllable(playerid,1);
  1612.         }
  1613.         case 1:
  1614.         {
  1615.         new araba;
  1616.         araba=GetPlayerVehicleID(playerid);
  1617.         SetPlayerPos(playerid, 1317.7917,1260.0190,10.8203);
  1618.         SetVehiclePos(araba, 1317.7917,1260.0190,10.8203);
  1619.         PutPlayerInVehicle(playerid,araba,0);
  1620.         TogglePlayerControllable(playerid,1);
  1621.         }
  1622.         case 2:
  1623.         {
  1624.         new araba;
  1625.         araba=GetPlayerVehicleID(playerid);
  1626.         SetPlayerPos(playerid, 420.2640,2521.1553,16.4844);
  1627.         SetVehiclePos(araba, 420.2640,2521.1553,16.4844);
  1628.         PutPlayerInVehicle(playerid,araba,0);
  1629.         TogglePlayerControllable(playerid,1);
  1630.         }
  1631.         case 3: //main menu
  1632.         {
  1633.             ShowMenuForPlayer(teleport, playerid);
  1634.         }
  1635.     }
  1636.     }
  1637.     if(CurrentMenu == diger)
  1638.         {
  1639.     switch(row)
  1640.     {
  1641.         case 0:
  1642.         {
  1643.         new araba;
  1644.         araba=GetPlayerVehicleID(playerid);
  1645.         SetPlayerPos(playerid, 308.2827,1989.2064,17.6406);
  1646.         SetVehiclePos(araba, 308.2827,1989.2064,17.6406);
  1647.         PutPlayerInVehicle(playerid,araba,0);
  1648.         TogglePlayerControllable(playerid,1);
  1649.         }
  1650.         case 1:
  1651.         {
  1652.         new araba;
  1653.         araba=GetPlayerVehicleID(playerid);
  1654.         SetPlayerPos(playerid, -1385.3300,493.5960,27.6945);
  1655.         SetVehiclePos(araba, -1385.3300,493.5960,27.6945);
  1656.         PutPlayerInVehicle(playerid,araba,0);
  1657.         TogglePlayerControllable(playerid,1);
  1658.         }
  1659.         case 2:
  1660.         {
  1661.         new araba;
  1662.         araba=GetPlayerVehicleID(playerid);
  1663.         SetPlayerPos(playerid, 2028.5538, 1008.3543, 10.8203);
  1664.         SetVehiclePos(araba, 2028.5538, 1008.3543, 10.8203);
  1665.         PutPlayerInVehicle(playerid,araba,0);
  1666.         TogglePlayerControllable(playerid,1);
  1667.         }
  1668.         case 3:
  1669.         {
  1670.         new araba;
  1671.         araba=GetPlayerVehicleID(playerid);
  1672.         SetPlayerPos(playerid, -2319.8105,-1652.5789,483.7031);
  1673.         SetVehiclePos(araba, -2319.8105,-1652.5789,483.7031);
  1674.         PutPlayerInVehicle(playerid,araba,0);
  1675.         TogglePlayerControllable(playerid,1);
  1676.         }
  1677.         case 4:
  1678.         {
  1679.         new araba;
  1680.         araba=GetPlayerVehicleID(playerid);
  1681.         SetPlayerPos(playerid, 2493.9133, -1682.3986, 13.3382);
  1682.         SetVehiclePos(araba, 2493.9133, -1682.3986, 13.3382);
  1683.         PutPlayerInVehicle(playerid,araba,0);
  1684.         TogglePlayerControllable(playerid,1);
  1685.         }
  1686.         case 5:
  1687.         {
  1688.         new araba;
  1689.         araba=GetPlayerVehicleID(playerid);
  1690.         SetPlayerPos(playerid, 1880.9452,-1394.7611,13.1246);
  1691.         SetVehiclePos(araba, 1880.9452,-1394.7611,13.1246);
  1692.         PutPlayerInVehicle(playerid,araba,0);
  1693.         TogglePlayerControllable(playerid,1);
  1694.         }
  1695.         case 6:
  1696.         {
  1697.         new araba;
  1698.         ResetPlayerWeapons(playerid);
  1699.         SetPlayerPos(playerid,324.8073,-1773.4330,4.8532);
  1700.         SetVehiclePos(araba, 324.8073,-1773.4330,4.8532);
  1701.         PutPlayerInVehicle(playerid,araba,0);
  1702.         TogglePlayerControllable(playerid,1);
  1703.         }
  1704.         case 7:
  1705.         {
  1706.         new araba;
  1707.         ResetPlayerWeapons(playerid);
  1708.         SetPlayerPos(playerid,-456.9700,-2479.3562,116.3534);
  1709.         SetVehiclePos(araba, -456.9700,-2479.3562,116.3534);
  1710.         PutPlayerInVehicle(playerid,araba,0);
  1711.         TogglePlayerControllable(playerid,1);
  1712.         }
  1713.         case 8: //main menu
  1714.         {
  1715.             ShowMenuForPlayer(teleport, playerid);
  1716.         }
  1717.  
  1718.     }
  1719.     }
  1720.     if(CurrentMenu == inter)
  1721.         {
  1722.     switch(row)
  1723.     {
  1724.         case 0:
  1725.         {
  1726.         SetPlayerInterior(playerid, 1);
  1727.         SetPlayerPos(playerid,-750.80,491.00,1371.70);
  1728.         TogglePlayerControllable(playerid,1);
  1729.         }
  1730.         case 1:
  1731.         {
  1732.         SetPlayerInterior(playerid, 1);
  1733.         SetPlayerPos(playerid,1.6127,34.7411,1199.0);
  1734.         TogglePlayerControllable(playerid,1);
  1735.         }
  1736.         case 2:
  1737.         {
  1738.         SetPlayerInterior(playerid, 3);
  1739.         SetPlayerPos(playerid,-2637.69,1404.24,906.46);
  1740.         TogglePlayerControllable(playerid,1);
  1741.         }
  1742.         case 3:
  1743.         {
  1744.         SetPlayerInterior(playerid, 9);
  1745.         SetPlayerPos(playerid,315.48,984.13,1959.11);
  1746.         TogglePlayerControllable(playerid,1);
  1747.         }
  1748.         case 4:
  1749.         {
  1750.         SetPlayerInterior(playerid, 15);
  1751.         SetPlayerPos(playerid,-1394.20,987.62,1023.96);
  1752.         TogglePlayerControllable(playerid,1);
  1753.         }
  1754.         case 5:
  1755.         {
  1756.         SetPlayerInterior(playerid, 5);
  1757.         SetPlayerPos(playerid,2338.32,-1180.61,1027.98);
  1758.         TogglePlayerControllable(playerid,1);
  1759.         }
  1760.         case 6:
  1761.         {
  1762.         SetPlayerInterior(playerid, 2);
  1763.         SetPlayerPos(playerid,2567.52,-1294.59,1063.25);
  1764.         TogglePlayerControllable(playerid,1);
  1765.         }
  1766.         case 7:
  1767.         {
  1768.         SetPlayerInterior(playerid, 2);
  1769.         SetPlayerPos(playerid,2567.52,-1294.59,1063.25);
  1770.         TogglePlayerControllable(playerid,1);
  1771.         }
  1772.         case 8:
  1773.         {
  1774.             ShowMenuForPlayer(teleport, playerid);
  1775.         }
  1776.     }
  1777.     }
  1778.     if(CurrentMenu == dm)
  1779.         {
  1780.     switch(row)
  1781.     {
  1782.         case 0:
  1783.         {
  1784.         ResetPlayerWeapons(playerid);
  1785.         SetPlayerInterior(playerid, 0);
  1786.         GivePlayerWeapon(playerid, 26, 999);
  1787.         SetPlayerHealth(playerid, 100.0);
  1788.         SetPlayerPos(playerid, 1127.9473, -1446.7574, 15.7968);
  1789.         GetPlayerName(playerid, var0, 25);
  1790.         format(var1, 256, ">>%s has teleported to deathmatch 1 (SAWNOFF).", var0);
  1791.         SendClientMessageToAll(0xFF9900AA, var1);
  1792.         TogglePlayerControllable(playerid,1);
  1793.         }
  1794.         case 1:
  1795.         {
  1796.         ResetPlayerWeapons(playerid);
  1797.         SetPlayerInterior(playerid, 0);
  1798.         GivePlayerWeapon(playerid, 29, 999);
  1799.         SetPlayerHealth(playerid, 100.0);
  1800.         SetPlayerPos(playerid, 2508.3786, 2786.6369, 10.8203);
  1801.         GetPlayerName(playerid, var0, 25);
  1802.         format(var1, 256, ">>%s has teleported to deathmatch 2 (MP5).", var0);
  1803.         SendClientMessageToAll(0xFF9900AA, var1);
  1804.         TogglePlayerControllable(playerid,1);
  1805.         }
  1806.         case 2:
  1807.         {
  1808.         ResetPlayerWeapons(playerid);
  1809.         SetPlayerInterior(playerid, 0);
  1810.         GivePlayerWeapon(playerid, 32, 999);
  1811.         SetPlayerHealth(playerid, 100.0);
  1812.         SetPlayerPos(playerid, 1445.934, -1064.5279, 213.3827);
  1813.         GetPlayerName(playerid, var0, 25);
  1814.         format(var1, 256, ">>%s has teleported to deathmatch 3 (TEC9).", var0);
  1815.         SendClientMessageToAll(0xFF9900AA, var1);
  1816.         TogglePlayerControllable(playerid,1);
  1817.         }
  1818.         case 3:
  1819.         {
  1820.         ResetPlayerWeapons(playerid);
  1821.         SetPlayerInterior(playerid, 0);
  1822.         GivePlayerWeapon(playerid, 27, 999);
  1823.         SetPlayerHealth(playerid, 100.0);
  1824.         SetPlayerPos(playerid, -924.254, -498.0311, 26.7656);
  1825.         GetPlayerName(playerid, var0, 25);
  1826.         format(var1, 256, ">>%s has teleported to deathmatch 4(CombatShotgun).", var0);
  1827.         SendClientMessageToAll(0xFF9900AA, var1);
  1828.         TogglePlayerControllable(playerid,1);
  1829.         }
  1830.         case 4:
  1831.         {
  1832.         ResetPlayerWeapons(playerid);
  1833.         SetPlayerInterior(playerid, 0);
  1834.         GivePlayerWeapon(playerid, 31, 999);
  1835.         SetPlayerHealth(playerid, 100.0);
  1836.         SetPlayerPos(playerid, -2129.3096, -444.2732, 35.5344);
  1837.         GetPlayerName(playerid, var0, 25);
  1838.         format(var1, 256, ">>%s has teleported to deathmatch 5(M4).", var0);
  1839.         SendClientMessageToAll(0xFF9900AA, var1);
  1840.         TogglePlayerControllable(playerid,1);
  1841.         }
  1842.         case 5:
  1843.         {
  1844.         ResetPlayerWeapons(playerid);
  1845.         SetPlayerInterior(playerid, 0);
  1846.         GivePlayerWeapon(playerid, 28, 999);
  1847.         SetPlayerHealth(playerid, 100.0);
  1848.         SetPlayerPos(playerid, 1315.9521, -987.8052, 148.6437);
  1849.         GetPlayerName(playerid, var0, 25);
  1850.         format(var1, 256, ">>%s has teleported to deathmatch 6(MicroUzi).", var0);
  1851.         SendClientMessageToAll(0xFF9900AA, var1);
  1852.         TogglePlayerControllable(playerid,1);
  1853.         }
  1854.         case 6:
  1855.         {
  1856.         ResetPlayerWeapons(playerid);
  1857.         SetPlayerInterior(playerid, 0);
  1858.         GivePlayerWeapon(playerid, 30, 999);
  1859.         SetPlayerHealth(playerid, 100.0);
  1860.         SetPlayerPos(playerid, 214.5838, 1875.3218, 17.6406);
  1861.         GetPlayerName(playerid, var0, 25);
  1862.         format(var1, 256, ">>%s has teleported to deathmatch 7(AK47).", var0);
  1863.         SendClientMessageToAll(0xFF9900AA, var1);
  1864.         TogglePlayerControllable(playerid,1);
  1865.         }
  1866.         case 7:
  1867.         {
  1868.         ResetPlayerWeapons(playerid);
  1869.         SetPlayerInterior(playerid, 0);
  1870.         SetPlayerHealth(playerid, 100.0);
  1871.         SetPlayerInterior(playerid, 5);
  1872.         SetPlayerPos(playerid, 761.6077, 11.0399, 1001.1638);
  1873.         GetPlayerName(playerid, var0, 25);
  1874.         format(var1, 256, ">>%s has teleported to deathmatch 8 (Boks).", var0);
  1875.         SendClientMessageToAll(0xFF9900AA, var1);
  1876.         TogglePlayerControllable(playerid,1);
  1877.         }
  1878.         case 8:
  1879.         {
  1880.         ResetPlayerWeapons(playerid);
  1881.         SetPlayerInterior(playerid, 0);
  1882.         GivePlayerWeapon(playerid, 33, 999);
  1883.         SetPlayerHealth(playerid, 100.0);
  1884.         SetPlayerPos(playerid, 2276.2846, 1070.2078, 10.8203);
  1885.         GetPlayerName(playerid, var0, 25);
  1886.         format(var1, 256, ">>%s has teleported to deathmatch 9 (Rifle).", var0);
  1887.         SendClientMessageToAll(0xFF9900AA, var1);
  1888.         TogglePlayerControllable(playerid,1);
  1889.         }
  1890.         case 9:
  1891.         {
  1892.         ShowMenuForPlayer(teleport, playerid);
  1893.         }
  1894.     }
  1895.     }
  1896.     if(CurrentMenu == dm2)
  1897.         {
  1898.     switch(row)
  1899.     {
  1900.         case 0:
  1901.         {
  1902.         ResetPlayerWeapons(playerid);
  1903.         SetPlayerInterior(playerid, 0);
  1904.         GivePlayerWeapon(playerid, 26, 999);
  1905.         SetPlayerHealth(playerid, 100.0);
  1906.         SetPlayerPos(playerid, 2256.1511, 1081.4821, 33.5284);
  1907.         GetPlayerName(playerid, var0, 25);
  1908.         format(var1, 256, ">>%s has teleported to deathmatch 10(SAWNOFF2).", var0);
  1909.         SendClientMessageToAll(0xFF9900AA, var1);
  1910.         TogglePlayerControllable(playerid,1);
  1911.         }
  1912.         case 1:
  1913.         {
  1914.         ResetPlayerWeapons(playerid);
  1915.         SetPlayerInterior(playerid, 0);
  1916.         GivePlayerWeapon(playerid, 31, 999);
  1917.         SetPlayerHealth(playerid, 100.0);
  1918.         SetPlayerPos(playerid, -1470.9282, 382.7427, 30.0858);
  1919.         GetPlayerName(playerid, var0, 25);
  1920.         format(var1, 256, ">>%s has teleported to deathmatch 11(M4).", var0);
  1921.         SendClientMessageToAll(0xFF9900AA, var1);
  1922.         TogglePlayerControllable(playerid,1);
  1923.         }
  1924.         case 2:
  1925.         {
  1926.         ResetPlayerWeapons(playerid);
  1927.         SetPlayerInterior(playerid, 0);
  1928.         GivePlayerWeapon(playerid, 25, 999);
  1929.         SetPlayerHealth(playerid, 100.0);
  1930.         SetPlayerPos(playerid, -1596.9136, 149.0782, -10.8312);
  1931.         GetPlayerName(playerid, var0, 25);
  1932.         format(var1, 256, ">>%s has teleported to deathmatch 12(Shotgun).", var0);
  1933.         SendClientMessageToAll(0xFF9900AA, var1);
  1934.         TogglePlayerControllable(playerid,1);
  1935.                 }
  1936.         case 3:
  1937.         {
  1938.         ResetPlayerWeapons(playerid);
  1939.         SetPlayerInterior(playerid, 0);
  1940.         GivePlayerWeapon(playerid, 24, 999);
  1941.         SetPlayerHealth(playerid, 100.0);
  1942.         SetPlayerPos(playerid, 260.5979, 2898.8537, 8.9909);
  1943.         GetPlayerName(playerid, var0, 25);
  1944.         format(var1, 256, ">>%s has teleported to deathmatch 13(DesertEagle).", var0);
  1945.         SendClientMessageToAll(0xFF9900AA, var1);
  1946.         TogglePlayerControllable(playerid,1);
  1947.         }
  1948.         case 4:
  1949.         {
  1950.         ResetPlayerWeapons(playerid);
  1951.         SetPlayerInterior(playerid, 0);
  1952.         GivePlayerWeapon(playerid, 30, 999);
  1953.         SetPlayerHealth(playerid, 100.0);
  1954.         SetPlayerPos(playerid, -273.9698, 2353.0808, 109.2238);
  1955.         GetPlayerName(playerid, var0, 25);
  1956.         format(var1, 256, ">>%s has teleported to deathmatch 14(AK47).", var0);
  1957.         SendClientMessageToAll(0xFF9900AA, var1);
  1958.         TogglePlayerControllable(playerid,1);
  1959.         }
  1960.         case 5:
  1961.         {
  1962.         ResetPlayerWeapons(playerid);
  1963.         SetPlayerInterior(playerid, 0);
  1964.         GivePlayerWeapon(playerid, 9, 1);
  1965.         SetPlayerHealth(playerid, 100.0);
  1966.         SetPlayerPos(playerid, -924.0569, 2675.6586, 42.3703);
  1967.         GetPlayerName(playerid, var0, 25);
  1968.         format(var1, 256, ">>%s has teleported to deathmatch 15(Dildo).", var0);
  1969.         SendClientMessageToAll(0xFF9900AA, var1);
  1970.         TogglePlayerControllable(playerid,1);
  1971.         }
  1972.         case 6:
  1973.         {
  1974.         ResetPlayerWeapons(playerid);
  1975.         SetPlayerInterior(playerid, 0);
  1976.         GivePlayerWeapon(playerid, 34, 999);
  1977.         SetPlayerHealth(playerid, 100.0);
  1978.         SetPlayerPos(playerid, -1288.9788,2504.3210,86.9994);
  1979.         GetPlayerName(playerid, var0, 25);
  1980.         format(var1, 256, ">>%s has teleported to deathmatch 16(Sniper).", var0);
  1981.         SendClientMessageToAll(0xFF9900AA, var1);
  1982.         TogglePlayerControllable(playerid,1);
  1983.         }
  1984.         case 7:
  1985.         {
  1986.             ShowMenuForPlayer(teleport, playerid);
  1987.         }
  1988.     }
  1989.     }
  1990.     return 1;
  1991. }
  1992.  
  1993.  
  1994. CMD:registrar(playerid, params[])
  1995. {
  1996.     new WAZAA[24]; // String que almacena hasta 24 caracteres.
  1997.     GetPlayerName(playerid, pname, sizeof(pname)); // Obtenemos el nombre del jugador
  1998.     format(archivo, sizeof(archivo), Users, udb_encode(pname)); // Damos formato a "archivo"
  1999.     format(WAZAA, sizeof(WAZAA), "%s", params); // Damos formato a "WAZAA" con el valor de "params"
  2000.     if(aInfo[playerid][Registrado] == 1) return SendClientMessage(playerid, COLOR_YELLOW, "Esta cuenta esta registrada! Utiliza /login para ingresar"); // En caso de que el jugador ya este registrado-
  2001.     if(strlen(WAZAA) > 4 && strlen(WAZAA) < 24) // Si WAZAA es mayor a 4 / Menor a 24
  2002.     {
  2003.         dini_Create(archivo); // Creacion del archivo PLAYERNAME.ini
  2004.         dini_IntSet(archivo, "pass", udb_hash(WAZAA)); // Guardamos la password con un hash, para que no sea "visible".
  2005.         dini_IntSet(archivo, "Admin", 0); // Indicamos que el jugador no es admin.
  2006.         dini_IntSet(archivo, "Baneado", 0); // Indicamos que el jugador no esta baneado.
  2007.         format(str, sizeof(str), "[rAdmin] Registraste el nombre %s bajo la contraseña %s. Fuiste logueado automaticamente!", pname, WAZAA); // Damos formato a str con el nombre de la cuenta, la contraseña y le informamos que quedo automaticamente logueado.
  2008.         SendClientMessage(playerid, COLOR_LIGHTGREEN, str); // Enviamos str.
  2009.         aInfo[playerid][Logueado] = 1; // Indicamos que el jugador esta logueado.
  2010.         aInfo[playerid][Registrado] = 1; // Indicamos que el jugador esta registrado.
  2011.         TogglePlayerControllable(playerid, 1); // Le damos movilidad al jugador (por si ya habia spawneado y estaba frezeado)
  2012.     }
  2013.     else return SendClientMessage(playerid, COLOR_RED, "Su contraseña debe tener entre 4 & 24 caracteres!"); // En caso de que la pass tenga menos de 4 caraceters/mas de 24, va a dar error.
  2014.     return 1;
  2015. }
  2016.  
  2017. CMD:login(playerid, params[])
  2018. {
  2019.     GetPlayerName(playerid, pname, sizeof(pname)); //Obtenemos el nombre del player.
  2020.     format(archivo, sizeof(archivo), Users, udb_encode(pname));//Damos formato a archivo.
  2021.  
  2022.     if(aInfo[playerid][Registrado] == 0) return SendClientMessage(playerid, COLOR_YELLOW, "Esta cuenta no esta registrada! Utiliza /registrar para registrarla!");// Si el jugador no esta registrado
  2023.     if(aInfo[playerid][Logueado] == 1) return SendClientMessage(playerid, COLOR_YELLOW, "Ya estas logueado!");// Si el jugador ya esta logueado
  2024.     if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "Uso: /login <password>");// Si no indico su pass.
  2025.  
  2026.     new tmp; // creamos tmp, donde se va a almacenar la pass del archivo.
  2027.     tmp = dini_Int(archivo, "pass"); //almacenamos la pass
  2028.     if(udb_hash(params) != tmp) //comparamos, y si es distinta:
  2029.     {
  2030.         format(str, sizeof(str), "La contraseña que ingresaste es incorrecta!"); //damos formato a str
  2031.         SendClientMessage(playerid, COLOR_RED, str);// enviamos str al jugador
  2032.     }
  2033.     else // si la pass indicada es la correcta:
  2034.     {
  2035.         aInfo[playerid][Admin] = dini_Int(archivo, "Admin"); // Guardamos el nivel de Admin del archivo en la variable.
  2036.         aInfo[playerid][Baneado] = dini_Int(archivo, "Baneado"); // Guardamos el valor de "Baneado" del archivo en la variable.
  2037.         aInfo[playerid][Logueado] = 1; // Indicamos que el jugador esta logueado
  2038.  
  2039.         if(aInfo[playerid][Baneado] == 1) // Si el jugador esta baneado
  2040.         {
  2041.             SendClientMessage(playerid, COLOR_RED, "Estas baneado en el servidor!"); // Le enviamos un mensaje
  2042.             return Kick(playerid); // Lo kickeamos.
  2043.         }else{ // Si no esta baneado
  2044.  
  2045.         if(aInfo[playerid][Admin] > 0) //Si su nivel de admin es mayor a 0
  2046.         {
  2047.             format(str, sizeof(str), "Bienvenido %s! Admin Level: %d.! Utiliza /acmds para ver tus comandos de administracion!", pname, aInfo[playerid][Admin]); // Formateamos str con los datos del nombre, nivel, etc.
  2048.             SendClientMessage(playerid, COLOR_LIGHTGREEN, str); //Enviamos el str
  2049.             SendClientMessage(playerid, COLOR_RED, "[rAdmin] Logueado satisfactoriamente!"); // Informamos que ha sido logueado.
  2050.         }
  2051.         else //Si su nivel de admin no es mayor a 0
  2052.         {
  2053.             format(str, sizeof(str), "Bienvenido %s! Utiliza /comandos para ver los comandos disponibles!", pname); //Damos formato a str con el nombre del jugador.
  2054.             SendClientMessage(playerid, COLOR_YELLOW, str); //Enviamos el str.
  2055.             SendClientMessage(playerid, COLOR_RED, "[rAdmin] Logueado satisfactoriamente!"); // Informamos  que ha sido logueado.
  2056.         }
  2057.         TogglePlayerControllable(playerid, 1);} //Unfezeamos al jugador (por si spawneo antes de loguearse)
  2058.     }
  2059.     return 1;
  2060. }
  2061.  
  2062. CMD:kick(playerid, params[])
  2063. {
  2064.     new playerid2, pname2[MAX_PLAYER_NAME], reason[128]; // Creamos las variables necesarias
  2065.     if(aInfo[playerid][Admin] >= 1) //Si el nivel de admin del jugador es mayor a 0
  2066.     {
  2067.         GetPlayerName(playerid, pname, sizeof(pname)); //Guardamos su nombre en pname
  2068.         if(isnull(params)) return SendClientMessage(playerid, COLOR_RED, "Uso: /kick <playerid> <razon>"); //Si no hay params
  2069.         if(!sscanf(params, "rs", playerid2, reason)) //Si los params son correctos
  2070.         {
  2071.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto."); //Si el jugador no esta conectado
  2072.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!"); //Si el nivel del playerid es menor al del jugador a kickear
  2073.             GetPlayerName(playerid2, pname2, sizeof(pname2)); //Guardamos el nombre del playerid2 en pname2.
  2074.             format(str, sizeof(str), "El jugador %s [ID: %d] fue kickeado por el administrador %s ~ Razon: %s", pname2,  playerid2, pname, reason); //Formateamos str
  2075.             SendClientMessageToAll(COLOR_YELLOW, str); //Enviamos str a todos
  2076.             Kick(playerid2); //Kickeamos al jugador.
  2077.         }
  2078.         SendClientMessage(playerid, COLOR_RED, "Uso: /kick <playerid> <razon>"); //Si los params no estan
  2079.     }
  2080.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins"); //Si no es admin
  2081.     return 1;
  2082. }
  2083.  
  2084. CMD:ban(playerid, params[])
  2085. {
  2086.     new playerid2, pname2[MAX_PLAYER_NAME], reason[128]; //Creamos variables necesarias.
  2087.     if(aInfo[playerid][Admin] >= 1) //Si el nivel de admin del player es mayor o igual a 1
  2088.     {
  2089.         GetPlayerName(playerid, pname, sizeof(pname)); //Obtenemos el nombre del admin
  2090.         if(!sscanf(params, "rs", playerid2, reason)) //Si los params estan completos
  2091.         {
  2092.             if(!IsPlayerConnected(playerid2)) return SendClientMessage(playerid, COLOR_RED, "ID Incorrecto."); //Si el jugador no esta conectado
  2093.             if(aInfo[playerid2][Admin] > aInfo[playerid][Admin]) return SendClientMessage(playerid, COLOR_RED, "Imposible afectar a un admin de mayor nivel!"); //Si el nivel del jugador es mayor al del que intenta kickearlo
  2094.             GetPlayerName(playerid2, pname2, sizeof(pname2)); //Obtenemos el nombre del jugador
  2095.             format(str, sizeof(str), "El jugador %s [ID: %d] fue baneado por el administrador %s ~ Razon: %s", pname2,  playerid2, pname, reason); //Damos formato a str
  2096.             SendClientMessageToAll(COLOR_YELLOW, str); //La enviamos a todos
  2097.             aInfo[playerid2][Baneado] = 1; //Seteamos que el jugador esta baneado
  2098.             BanEx(playerid2, reason); //Baneamos la IP del jugador (samp.ban)
  2099.         }
  2100.         SendClientMessage(playerid, COLOR_RED, "Uso: /ban <playerid> <razon>"); //Si los params no estan completos
  2101.     }
  2102.     else return SendClientMessage(playerid, COLOR_RED, "Este comando es solo para Admins"); //Si no es admin
  2103.     return 1;
  2104. }
  2105.  
  2106. if(aInfo[playerid][Registrado] == 0 || aInfo[playerid][Logueado] == 0)
  2107.     {
  2108.         SendClientMessage(playerid, COLOR_RED, "[rAdmin] Fuiste kickeado por no registrarte/loguearte en los primeros 60 segundos!");
  2109.         Kick(playerid);
  2110.     }
  2111.     return 1;
  2112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement