Guest User

Map Manager - ProKillerPa

a guest
Aug 3rd, 2014
412
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.40 KB | None | 0 0
  1. /*
  2. - Filterscript criado por ProKillerPa(Gabriel Buttenbender)
  3. * MAP MANAGER, SEUS MAPAS MAIS FÁCEIS
  4.  
  5. >>> Faça bom uso, retirar créditos é CRIME!
  6.  
  7. */
  8.  
  9. #include a_samp
  10. #include zcmd
  11. #include DOF2
  12.  
  13. new Str[256],
  14. LocalMapas[256]
  15. ;
  16.  
  17. new Float:XHunterX,
  18. Float:YHunterY,
  19. Float:ZHunterZ,
  20. FirstPremio,
  21. SecondPremio,
  22. Mapa[20]
  23. ;
  24.  
  25. new JaTemGanhador = 0;
  26.  
  27. new Text:TelaObscura;
  28.  
  29. new GuardaCarregadas;
  30.  
  31. new HunterPego[MAX_PLAYERS],
  32. PegaMoney[MAX_PLAYERS]
  33. ;
  34.  
  35. new Rank01[MAX_PLAYERS],
  36. Rank02[MAX_PLAYERS],
  37. Rank03[MAX_PLAYERS]
  38. ;
  39.  
  40. new Float:MyPosX[MAX_PLAYERS],
  41. Float:MyPosY[MAX_PLAYERS],
  42. Float:MyPosZ[MAX_PLAYERS]
  43. ;
  44.  
  45. new Armazena;
  46.  
  47. enum TEnum
  48. {
  49. NameMap[20], // Altere 20 pelas caracteres do nome do mapa ( Peque o Mapa com o nome maior e conte suas caracteres e altere pelo 20! )
  50. Float:HunterPosX,
  51. Float:HunterPosY,
  52. Float:HunterPosZ,
  53. Creditos[30],
  54. PrimeiroLugar,
  55. SegundoLugar,
  56. bool:RespawnLiberado,
  57. bool:ModoEspectador,
  58. TempoLoading,
  59. TempoTotal,
  60. CallbackObjectsXD[60],
  61. CallbackCarrosXD[60]
  62. }
  63.  
  64. // - Ordem: Nome do Mapa / Coord. X Hunter / Coord. Y Hunter / Coord. Z Hunter / Criador do Mapa / Premio 1° Lugar / Premio 2° Lugar / Respawn Livre / Modo Espectador / Tempo Carregando[Para mapas grandes, + Tempo] // Callback que armazena Objetos
  65. new MapConfig[3][TEnum] = {
  66. {"Nome Mapa 01", 000.000, -0.000, 000.000, "ProKillerPa 01", 1000, 500, true, true, 5000, 180000, "ObjetosMapa01", "CarrosMapa01"},
  67. {"Nome Mapa 02", 000.000, -0.000, 000.000, "ProKillerPa 02", 600, 200, true, true, 2000, 200000, "ObjetosMapa02", "CarrosMapa02"},
  68. {"Nome Mapa 03", 000.000, -0.000, 000.000, "ProKillerPa 03", 800, 700, false, true, 5000, 320000, "ObjetosMapa03", "CarrosMapa03"}
  69. };
  70.  
  71. forward ConfigMap(NomeMapa[], Float:HunterX, Float:HunterY, Float:HunterZ, PremioFirst, PremioSecond, bool:RespawnLivre, bool:Spectating, TempoParaIniciar, TempoMapa, Criador[], CallbackObjects[], CallbackCarros[]);
  72.  
  73. forward LiberarMapa();
  74.  
  75. main(){}
  76.  
  77. public OnGameModeInit(){
  78.  
  79. new EscolherMap = random(4), PKPstr[100];
  80. format(PKPstr, 200, "[LOG] O Mapa %s foi executado! Criador: %s", MapConfig[EscolherMap][NameMap],MapConfig[EscolherMap][Creditos]);
  81. printf("%s", PKPstr);
  82.  
  83. ConfigMap(MapConfig[EscolherMap][NameMap], MapConfig[EscolherMap][HunterPosX], MapConfig[EscolherMap][HunterPosY], MapConfig[EscolherMap][HunterPosZ], MapConfig[EscolherMap][PrimeiroLugar], MapConfig[EscolherMap][SegundoLugar], MapConfig[EscolherMap][RespawnLiberado], MapConfig[EscolherMap][ModoEspectador], MapConfig[EscolherMap][TempoLoading], MapConfig[EscolherMap][TempoTotal], MapConfig[EscolherMap][Creditos], MapConfig[EscolherMap][CallbackObjectsXD],MapConfig[EscolherMap][CallbackCarrosXD]);
  84.  
  85. TelaObscura = TextDrawCreate(-30.000000, -5.000000, "TelaPreta");
  86. TextDrawBackgroundColor(TelaObscura, 255);
  87. TextDrawFont(TelaObscura, 1);
  88. TextDrawLetterSize(TelaObscura, 0.700000, 53.099998);
  89. TextDrawColor(TelaObscura, -1);
  90. TextDrawSetOutline(TelaObscura, 0);
  91. TextDrawSetProportional(TelaObscura, 1);
  92. TextDrawSetShadow(TelaObscura, 1);
  93. TextDrawUseBox(TelaObscura, 1);
  94. TextDrawBoxColor(TelaObscura, 255);
  95. TextDrawTextSize(TelaObscura, 650.000000, 30.000000);
  96. return 1;
  97. }
  98.  
  99. public OnPlayerUpdate(playerid){
  100. if(IsPlayerInRangeOfPoint(playerid, 2.0, Float:XHunterX, Float:YHunterY, Float:ZHunterZ)){
  101. if(HunterPego[playerid] == 1) return 1; //
  102.  
  103. if(JaTemGanhador == 0){
  104. JaTemGanhador++;
  105.  
  106. PegaMoney[playerid] = GetPlayerMoney(playerid);
  107.  
  108. GivePlayerMoney(playerid, PegaMoney[playerid] + FirstPremio);
  109.  
  110. format(Str, sizeof(Str), "{FFFF00}| {FF0000}INFO {FFFF00}| {BEBEBE} Você recebeu %d,00 por ser o primeiro a finalizar o mapa! Parabéns!!!", FirstPremio);
  111. SendClientMessage(playerid, -1, Str);
  112.  
  113. HunterPego[playerid] = 1;
  114. PegaMoney[playerid] = 0;
  115.  
  116. new NomeGanhador[MAX_PLAYER_NAME];
  117. GetPlayerName(playerid, NomeGanhador, sizeof(NomeGanhador));
  118.  
  119. format(LocalMapas, sizeof(LocalMapas), "Mapas Rodados/%s.ini", Mapa);
  120. if(!strcmp("Nenhum", DOF2_GetString(LocalMapas, "Rank 01"), true)){
  121. DOF2_SetString(LocalMapas, "Rank 01", NomeGanhador);
  122. DOF2_SaveFile();
  123. }
  124. }
  125. else if(JaTemGanhador == 1){
  126. JaTemGanhador++;
  127.  
  128. PegaMoney[playerid] = GetPlayerMoney(playerid);
  129.  
  130. GivePlayerMoney(playerid, PegaMoney[playerid] + SecondPremio);
  131.  
  132. format(Str, sizeof(Str), "{FFFF00}| {FF0000}INFO {FFFF00}| {BEBEBE} Você recebeu %d,00 por ser o primeiro a finalizar o mapa! Parabéns!!!", SecondPremio);
  133. SendClientMessage(playerid, -1, Str);
  134.  
  135. HunterPego[playerid] = 1;
  136. PegaMoney[playerid] = 0;
  137.  
  138. new NomeGanhador[MAX_PLAYER_NAME];
  139. GetPlayerName(playerid, NomeGanhador, sizeof(NomeGanhador));
  140. if(!strcmp("Nenhum", DOF2_GetString(LocalMapas, "Rank 02"), true)){
  141. DOF2_SetString(LocalMapas, "Rank 02", NomeGanhador);
  142. DOF2_SaveFile();
  143. }
  144. }
  145. }
  146. else if(JaTemGanhador >= 2){
  147. PegaMoney[playerid] = GetPlayerMoney(playerid);
  148.  
  149. GivePlayerMoney(playerid, PegaMoney[playerid] + 100);
  150.  
  151. format(Str, sizeof(Str), "{FFFF00}| {FF0000}INFO {FFFF00}| {BEBEBE} Você recebeu 100,00 por ser o primeiro a finalizar o mapa! Parabéns!!!", SecondPremio);
  152. SendClientMessage(playerid, -1, Str);
  153.  
  154. HunterPego[playerid] = 1;
  155. PegaMoney[playerid] = 0;
  156.  
  157. new NomeGanhador[MAX_PLAYER_NAME];
  158. GetPlayerName(playerid, NomeGanhador, sizeof(NomeGanhador));
  159. if(!strcmp("Nenhum", DOF2_GetString(LocalMapas, "Rank 03"), true)){
  160. DOF2_SetString(LocalMapas, "Rank 03", NomeGanhador);
  161. DOF2_SaveFile();
  162. }
  163. }
  164. return 1;
  165. }
  166.  
  167. new FormatObject[100];
  168.  
  169. forward CarregarObjetos(CallbackObjects);
  170. public CarregarObjetos(CallbackObjects){
  171. if(!strcmp("ObjetosMapa01", FormatObject, true)){
  172. //Adicione Objetos Aqui
  173. }
  174. else if(!strcmp("ObjetosMapa02", FormatObject, true)){
  175. //Adicione Objetos Aqui
  176. }
  177. else if(!strcmp("ObjetosMapa03", FormatObject, true)){
  178. //Adicione Objetos Aqui
  179. }
  180. else print("Houve um ERRO interno de script, verifique novamente as alterações no mapa!");
  181. }
  182.  
  183. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
  184. if ((newkeys==KEY_SECONDARY_ATTACK)){ // Pressionou F
  185. // Colocar player dentro do carro!
  186. SetPlayerHealth(playerid, 0);
  187. }
  188. return 1;
  189. }
  190.  
  191. public OnPlayerDeath(playerid, killerid, reason){
  192.  
  193. if(Armazena == 1){
  194. TogglePlayerSpectating(playerid, 1);
  195. PlayerSpectatePlayer(playerid, killerid);
  196. }
  197. return 1;
  198. }
  199.  
  200. forward CarregarCarros(CallbackCarros);
  201. public CarregarCarros(CallbackCarros){
  202. if(!strcmp("CarrosMapa01", FormatObject, true)){
  203. //Adicione Carros Aqui
  204. AddStaticVehicle(555, 000.0000, 000.0000, 00.0000, 000.0000, 1, -1);
  205. }
  206. else if(!strcmp("CarrosMapa02", FormatObject, true)){
  207. //Adicione Carros Aqui
  208. AddStaticVehicle(555, 000.0000, 000.0000, 00.0000, 000.0000, 1, -1);
  209. }
  210. else if(!strcmp("CarrosMapa03", FormatObject, true)){
  211. //Adicione Carros Aqui
  212. AddStaticVehicle(555, 000.0000, 000.0000, 00.0000, 000.0000, 1, -1);
  213. }
  214. else print("Houve um ERRO interno de script, verifique novamente as alterações no mapa!");
  215. }
  216.  
  217. public ConfigMap(NomeMapa[], Float:HunterX, Float:HunterY, Float:HunterZ, PremioFirst, PremioSecond, bool:RespawnLivre, bool:Spectating, TempoParaIniciar, TempoMapa, Criador[], CallbackObjects[], CallbackCarros[]){
  218. format(Str, sizeof(Str), "{FFFF00}|{FF0000} MAPA {FFFF00}| {BEBEBE}O Mapa{FFFF00} %s está {BEBEBE}carregando componentes, aguarde alguns instantes para seu inicio!");
  219. SendClientMessageToAll(-1, Str);
  220.  
  221. XHunterX = HunterX;
  222. YHunterY = HunterY;
  223. ZHunterZ = HunterZ;
  224.  
  225. if(Spectating == true){
  226. Armazena = 1;
  227. }
  228. else if(Spectating == false){
  229. Armazena = 2;
  230. }
  231.  
  232. FirstPremio = PremioFirst;
  233. SecondPremio = PremioSecond;
  234.  
  235. format( Mapa, 50, "%s", NomeMapa );
  236.  
  237. format(FormatObject, 100, "%s", CallbackObjects);
  238.  
  239. //format(GuardaSpect, 10, "%s", Spectating);
  240.  
  241. SetTimerEx("CarregarObjetos", 3000, false,"i", CallbackObjects);
  242. SetTimerEx("CarregarCarros", 5000, false,"i", CallbackCarros);
  243.  
  244. format(LocalMapas, sizeof(LocalMapas), "Mapas Rodados/%s.ini", NomeMapa);
  245. if(!DOF2_FileExists(LocalMapas)){
  246.  
  247. DOF2_CreateFile(LocalMapas);
  248.  
  249. DOF2_SetString(LocalMapas, "Nome do Mapa", NomeMapa);
  250.  
  251. DOF2_SetFloat(LocalMapas, "Coord. HunterX", HunterX);
  252. DOF2_SetFloat(LocalMapas, "Coord. HunterY", HunterY);
  253. DOF2_SetFloat(LocalMapas, "Coord. Hunterz", HunterZ);
  254.  
  255. DOF2_SetInt(LocalMapas, "Premio 1°Colocado", PremioFirst);
  256. DOF2_SetInt(LocalMapas, "Premio 2°Colocado", PremioSecond);
  257.  
  258. DOF2_SetBool(LocalMapas, "Respawn Liberado", RespawnLivre);
  259. DOF2_SetBool(LocalMapas, "Assistir Livre", Spectating);
  260.  
  261. DOF2_SetInt(LocalMapas, "Tempo Carregando", TempoParaIniciar);
  262. DOF2_SetInt(LocalMapas, "Tempo Total do Mapa", TempoMapa);
  263.  
  264. DOF2_SetInt(LocalMapas, "Vezes Utilizado", 1);
  265.  
  266. DOF2_SetString(LocalMapas, "Rank 01", "Ninguem");
  267. DOF2_SetString(LocalMapas, "Rank 02", "Ninguem");
  268. DOF2_SetString(LocalMapas, "Rank 03", "Ninguem");
  269.  
  270. DOF2_SaveFile();
  271.  
  272. printf("O Mapa >> %s << foi salvo na pasta %s!", NomeMapa, LocalMapas);
  273. }
  274. else {
  275. GuardaCarregadas = DOF2_GetInt(LocalMapas, "Vezes Utilizado");
  276. GuardaCarregadas++;
  277.  
  278. DOF2_SetInt(LocalMapas, "Vezes Utilizado", GuardaCarregadas);
  279. DOF2_SaveFile();
  280.  
  281. GuardaCarregadas = 0;
  282. }
  283.  
  284.  
  285. for(new i; i < GetMaxPlayers(); i++){
  286. if(IsPlayerConnected(i)){
  287. TextDrawShowForPlayer(i, TelaObscura); // Loading Map...
  288. TogglePlayerControllable(i, false);
  289.  
  290. HunterPego[i] = 0;
  291. }
  292. }
  293.  
  294. SetTimer("LiberarMapa", TempoParaIniciar, false);
  295. SetTimer("FinalizarMapa", TempoMapa, false);
  296. return 1;
  297. }
  298.  
  299. forward FinalizarMapa();
  300. public FinalizarMapa(){
  301. for(new i; i < GetMaxPlayers(); i++){
  302. TextDrawShowForPlayer(i, TelaObscura);
  303. }
  304.  
  305. SendClientMessageToAll(-1, "{FFFF00}| {FF0000}MAPA{FFFF00} | {BEBEBE}Aguarde, outro mapa está sendo carregado!");
  306.  
  307. new EscolherMap = random(4), PKPstr[100];
  308. format(PKPstr, 200, "[LOG] O Mapa %s foi executado! Criador: %s", MapConfig[EscolherMap][NameMap],MapConfig[EscolherMap][Creditos]);
  309. printf("%s", PKPstr);
  310.  
  311. ConfigMap(MapConfig[EscolherMap][NameMap], MapConfig[EscolherMap][HunterPosX], MapConfig[EscolherMap][HunterPosY], MapConfig[EscolherMap][HunterPosZ], MapConfig[EscolherMap][PrimeiroLugar], MapConfig[EscolherMap][SegundoLugar], MapConfig[EscolherMap][RespawnLiberado], MapConfig[EscolherMap][ModoEspectador], MapConfig[EscolherMap][TempoLoading], MapConfig[EscolherMap][TempoTotal], MapConfig[EscolherMap][Creditos], MapConfig[EscolherMap][CallbackObjectsXD],MapConfig[EscolherMap][CallbackCarrosXD]);
  312.  
  313. return 1;
  314. }
  315.  
  316. public LiberarMapa(){
  317. for(new i; i < GetMaxPlayers(); i++){
  318. if(IsPlayerConnected(i)){
  319. TextDrawHideForPlayer(i, TelaObscura);
  320. }
  321. }
  322. LiberarCorrida();
  323. }
  324.  
  325. forward LiberarCorrida();
  326. public LiberarCorrida(){
  327. for(new i; i < GetMaxPlayers(); i++){
  328. TogglePlayerControllable(i, true);
  329. }
  330.  
  331. SendClientMessageToAll(-1, "{FFFF00}| {FF0000}MAPA {FFFF00}| {BEBEBE}O Mapa foi carregado com sucesso, carros liberados!");
  332. Contar(3);
  333. return 1;
  334. }
  335.  
  336. forward Contar(AteQuanto);
  337. public Contar(AteQuanto){
  338. if(AteQuanto == 0) return GameTextForAll("Go Go Go!", 1000, 2);
  339.  
  340. if(AteQuanto == 3){
  341. GameTextForAll("3", 1000, 2);
  342. Contar(2);
  343. }
  344. else if(AteQuanto == 2){
  345. GameTextForAll("2", 1000, 2);
  346. Contar(1);
  347. }
  348. else if(AteQuanto == 1){
  349. GameTextForAll("1", 1000, 2);
  350. Contar(0);
  351. }
  352. return 1;
  353. }
  354.  
  355. CMD:ranking(playerid){
  356. format(Str, sizeof(Str), "Mapas Rodados/%s.ini", Mapa);
  357.  
  358. Rank01[playerid] = DOF2_GetInt(Str, "Rank 01");
  359. Rank02[playerid] = DOF2_GetInt(Str, "Rank 02");
  360. Rank03[playerid] = DOF2_GetInt(Str, "Rank 03");
  361.  
  362. new EguinhaMijuleta[128];
  363. format(EguinhaMijuleta, sizeof(EguinhaMijuleta), "{BEBEBE}Rank 01: {FFFF00}%s\n{BEBEBE}Rank 02: {FFFF00}%s\n{BEBEBE}Rank 03: {FFFF00}%s", Rank01[playerid], Rank02[playerid], Rank03[playerid]);
  364. SendClientMessage(playerid, -1, EguinhaMijuleta);
  365.  
  366. return 1;
  367. }
  368.  
  369. CMD:salvarpos(playerid){
  370. GetPlayerPos(playerid, MyPosX[playerid], MyPosY[playerid], MyPosZ[playerid]);
  371.  
  372. SetPlayerPos(playerid, MyPosX[playerid], MyPosY[playerid], MyPosZ[playerid]);
  373.  
  374. GetPlayerVelocity(playerid, MyPosX[playerid], MyPosY[playerid], MyPosZ[playerid]);
  375. SetPlayerVelocity(playerid, MyPosX[playerid], MyPosY[playerid], MyPosZ[playerid]);
  376.  
  377. SendClientMessage(playerid, -1, "{FFFF00}|{FF0000} INFO {FFFF00}| {BEBEBE} Posição salva com sucesso!");
  378. return 1;
  379. }
  380.  
  381. CMD:carregarpos(playerid){
  382. SetPlayerPos(playerid, MyPosX[playerid], MyPosY[playerid], MyPosZ[playerid]);
  383.  
  384. SetPlayerVelocity(playerid, MyPosX[playerid], MyPosY[playerid], MyPosZ[playerid]);
  385.  
  386. SendClientMessage(playerid, -1, "{FFFF00}|{FF0000} INFO {FFFF00}| {BEBEBE}Posição carregada com sucesso!");
  387.  
  388. new CarroUsado;
  389.  
  390. CarroUsado = GetPlayerVehicleID(playerid);
  391.  
  392. AddVehicleComponent(CarroUsado, 1010);
  393. return 1;
  394. }
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402. //printf("%s, %f.%f.%f, %d, %d, %s, %s, %d", NomeMapa, HunterX, HunterY, HunterZ, PremioFirst, PremioSecond, RespawnLivre, Spectating, Tempo); // TEST
Advertisement
Add Comment
Please, Sign In to add comment