Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.91 KB | None | 0 0
  1. /*
  2. Nescessário criar pasta casas na scriptfiles
  3.  
  4. */
  5.  
  6.  
  7. #include < a_samp >
  8. #include < sscanf >
  9. #include < dof2 >
  10. #include < zcmd >
  11. #include < streamer >
  12.  
  13. #define MAX_HOUSES 100
  14. #define PASTA_CASAS "casas/casa %d.ini"
  15. #define PASTA_CARROS "casas/carro %d.ini"
  16.  
  17. enum InfoH
  18. {
  19. hID,
  20. Float:hIcone[3],
  21. hPreco,
  22. hDono[25],
  23. hCofre,
  24. hAluguel,
  25. hCarro,
  26. Float:hCarroPos[4],
  27. hInterior,
  28. Text3D:hText,
  29. hPickUp,
  30. hTemDono,
  31. hCarroCor[2],
  32. hMapIcon
  33. }
  34.  
  35.  
  36. enum vInfoH
  37. {
  38. cID,
  39. cCasa,
  40. cDono[25],
  41. Float:cPos[4],
  42. cModelo,
  43. Text3D:cText,
  44. cCor[2]
  45. }
  46.  
  47. // ----------------------------------------------------------------------------- >>
  48.  
  49. new cInfo[MAX_VEHICLES][vInfoH];
  50. new HInfo[MAX_HOUSES][InfoH];
  51.  
  52. new CarroCasas[MAX_VEHICLES]; // variavel que cria o carro da casa
  53.  
  54. new bool:countH[MAX_PLAYERS char];
  55. new EstaEmCasa[MAX_PLAYERS]; // verificação OnPlayerPickUpPickup
  56.  
  57. new arquivo_casa[120];
  58. new arquivo_hcarro[120];
  59.  
  60. // ----------------------------------------------------------------------------- >>
  61.  
  62. forward DestroyCarCommandTest(vehicleid);
  63. forward AntFloodH(playerid); // verificação OnPlayerPickUpPickup
  64. forward Atualizar_Carros(carroid);
  65. forward Atualizar_Casas(casaid);
  66.  
  67. // ----------------------------------------------------------------------------- >>
  68.  
  69. main() { print("\nSistema de casas\nBy Lucas Emmanuel\n"); }
  70.  
  71. public OnGameModeInit()
  72. {
  73. UsePlayerPedAnims();
  74. DisableInteriorEnterExits();
  75. SetGameModeText("HOUSE SCRIPT");
  76. AddPlayerClass(23, 2192.3462,1676.3215,12.3672, 269.1425, 0, 0, 0, 0, 0, 0);
  77. /*
  78. AddStaticVehicle(560,2168.6887,1705.3904,10.7514,153.3162,9,39);
  79. AddStaticVehicle(541,2170.3594,1704.9673,10.7096,153.3650,58,8);
  80. AddStaticVehicle(541,2158.5830,1709.9849,10.6717,154.0867,58,8);
  81. AddStaticVehicle(402,2158.3157,1660.8107,10.8557,45.9362,13,13);
  82. AddStaticVehicle(442,2163.9023,1707.6172,10.9687,326.6677,11,105);
  83. AddStaticVehicle(402,2157.0203,1725.1031,10.9211,164.7455,6,1);
  84. AddStaticVehicle(442,2159.6914,1724.4752,10.8206,166.5195,11,105);
  85. AddStaticVehicle(560,2162.2883,1723.7815,10.7521,164.3699,9,39);
  86. AddStaticVehicle(541,2164.6753,1723.3394,10.6822,165.2697,58,8);
  87. */
  88. for(new i = 0; i < MAX_HOUSES; ++i) { Carregar_Casa(i); }
  89. for(new i = 0; i < MAX_VEHICLES; ++i) { Carregar_Carro(i); }
  90. return 1;
  91. }
  92.  
  93. // ----------------------------------------------------------------------------- >>
  94.  
  95. public OnGameModeExit()
  96. {
  97. for(new i = 0; i < MAX_HOUSES; ++i) { Salvar_Casa(i); }
  98. for(new i = 0; i < MAX_VEHICLES; ++i) { Salvar_Carro (i); }
  99. DOF2_Exit();
  100. return 1;
  101. }
  102.  
  103. public OnPlayerRequestClass(playerid, classid)
  104. {
  105. SpawnPlayer(playerid);
  106. return 1;
  107. }
  108.  
  109. /*
  110. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  111. {
  112. if(newkeys == KEY_YES )
  113. {
  114. for(new i = 0; i < MAX_HOUSES; ++i)
  115. {
  116. if (IsPlayerInRangeOfPoint(playerid, 2, HInfo[i][hIcone][0], HInfo[i][hIcone][1], HInfo[i][hIcone][2]));
  117. {
  118. new str[120];
  119. format(str, sizeof(str),"Você entrou na casa %d", HInfo[i][hID]);
  120. SendClientMessage(playerid, -1, str);
  121. }
  122. }
  123. }
  124. return 1;
  125. }
  126. */
  127.  
  128. public OnPlayerPickUpPickup(playerid, pickupid)
  129. {
  130. for(new i = 0; i < MAX_HOUSES; ++i)
  131. {
  132. if(pickupid == HInfo[i][hPickUp]) // verifica corretamente a casa que o player está
  133. {
  134. if(countH[playerid] == false) // pra não ficar floodando a mensagem
  135. {
  136. // SetPlayerInterior(playerid, HInfo[i][hInterior]);
  137. EstaEmCasa[playerid] = HInfo[i][hID];
  138. new str[120];
  139. // format(str, sizeof(str), "Você está na casa %d", HInfo[i][hID]);
  140. format(str, sizeof(str), "Você está na casa %d", EstaEmCasa[playerid]); //
  141. SendClientMessage(playerid, -1, str);
  142. countH[playerid] = true;
  143. SetTimerEx("AntFloodH", 1000 * 10, false, "i", playerid);
  144. break;
  145. }
  146. }
  147. }
  148. return 1;
  149. }
  150.  
  151. public OnPlayerConnect(playerid)
  152. {
  153. return 1;
  154. }
  155.  
  156. public OnPlayerDisconnect(playerid, reason)
  157. {
  158. return 1;
  159. }
  160.  
  161. public OnPlayerSpawn(playerid)
  162. {
  163. return 1;
  164. }
  165.  
  166. public OnPlayerDeath(playerid, killerid, reason)
  167. {
  168. return 1;
  169. }
  170.  
  171. // ----------------------------------------------------------------------------- >>
  172.  
  173. CMD:criarcasa(playerid, params[])
  174. {
  175. // if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Você não tem permisão para usar este comando!");
  176. new intr, preco;
  177. if(sscanf(params, "dd", intr, preco)) return SendClientMessage(playerid, -1, "/criarcasa [interior - preco]");
  178.  
  179. new Float:Pos[3];
  180. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  181.  
  182. for(new casaid = 0; casaid < MAX_HOUSES; ++casaid)
  183. {
  184. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, casaid);
  185. if(!DOF2_FileExists(arquivo_casa))
  186. {
  187. format(HInfo[casaid][hDono], 25, "Ninguem");
  188.  
  189. HInfo[casaid][hInterior] = intr;
  190. HInfo[casaid][hID] = casaid;
  191. HInfo[casaid][hTemDono] = 0;
  192. HInfo[casaid][hCofre] = 0;
  193.  
  194. HInfo[casaid][hPreco] = preco;
  195. HInfo[casaid][hAluguel] = 0;
  196.  
  197. HInfo[casaid][hIcone][0] = Pos[0];
  198. HInfo[casaid][hIcone][1] = Pos[1];
  199. HInfo[casaid][hIcone][2] = Pos[2];
  200.  
  201. new str[120];
  202. format(str, sizeof(str), "O Administrador %s criou uma casa id %d valor: %d", GetNome(playerid), casaid, preco);
  203. SendClientMessageToAll(-1, str);
  204.  
  205. Criar_Casa(casaid);
  206.  
  207. format(str, sizeof(str), "Casa %d\nDono %s\nPreço %d\nAluguel %d", HInfo[casaid][hID], HInfo[casaid][hDono], HInfo[casaid][hPreco], HInfo[casaid][hAluguel]);
  208. HInfo[casaid][hText] = Create3DTextLabel(str, -1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 20.0, 0, 0);
  209. HInfo[casaid][hPickUp] = CreatePickup(1273, 1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], -1);
  210. HInfo[casaid][hMapIcon] = CreateDynamicMapIcon(HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 31, -1, -1, -1, -1, 50.0);
  211.  
  212. break;
  213. }
  214. }
  215. return 1;
  216. }
  217.  
  218. // ----------------------------------------------------------------------------- >>
  219.  
  220. CMD:destruircasa(playerid, params[]) // comando funcional
  221. {
  222. // if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Você não tem permisão para usar este comando!");
  223. new id;
  224. if(sscanf(params, "d", id)) return SendClientMessage(playerid, -1, "/destruircasa [id casa]");
  225.  
  226. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, id);
  227. if(!DOF2_FileExists(arquivo_casa))
  228. {
  229. SendClientMessage(playerid, -1, "Esta casa não existe");
  230. }
  231. else
  232. {
  233. new str[120];
  234. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, id);
  235. DOF2_RemoveFile(arquivo_casa);
  236. format(str, sizeof(str), "Você excluiu a casa %d", id);
  237. SendClientMessage(playerid, -1, str);
  238. // CarroCasas[id] = DestroyVehicle(HInfo[id][hCarro]); // Concertar isso dps
  239. Atualizar_Casas(id);
  240. }
  241. return 1;
  242. }
  243.  
  244. // ---------------------------------------------------------------------------- >>
  245.  
  246. CMD:darcasa(playerid, params[]) // Novo comando em faze de testes
  247. {
  248. // if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Você não tem permisão para usar este comando!");
  249. new idp, idh;
  250. if(sscanf(params, "dd", idp, idh)) return SendClientMessage(playerid, -1, "/darcasa [id] [id casa]");
  251.  
  252. if(!IsPlayerConnected(idp)) return SendClientMessage(playerid, -1, "Jogador não conectado");
  253.  
  254. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, idh);
  255. if(!DOF2_FileExists(arquivo_casa))
  256. {
  257. SendClientMessage(playerid, -1, "Esta casa não existe");
  258. }
  259. else
  260. {
  261. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, idh);
  262. new nomep[25];
  263. GetPlayerName(idp, nomep, 25);
  264.  
  265. new str[120], stx[120];
  266. format (str, sizeof(str), "Você deu a casa %d para o jogador %s", HInfo[idh][hID], nomep);
  267. format (stx, sizeof(stx), "O administrador %s te deu a casa %d", GetNome(playerid), HInfo[idh][hID]);
  268. SendClientMessage(playerid, -1, str);
  269. SendClientMessage(idp, -1, stx);
  270.  
  271. HInfo[idh][hDono] = nomep;
  272. HInfo[idh][hTemDono] = 1;
  273.  
  274. Salvar_Casa(idh);
  275. Atualizar_Casas(idh);
  276. }
  277. return 1;
  278. }
  279.  
  280. // ----------------------------------------------------------------------------- >>
  281.  
  282. CMD:soudono(playerid, params[]) // Novo comando funcional de testes
  283. {
  284. // if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Você não tem permisão para usar este comando!");
  285. new id;
  286. if(sscanf(params, "d", id)) return SendClientMessage(playerid, -1, "/soudono [id casa]");
  287.  
  288. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, id);
  289. if(!DOF2_FileExists(arquivo_casa))
  290. {
  291. SendClientMessage(playerid, -1, "Esta casa não existe");
  292. }
  293. else
  294. {
  295. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, id);
  296. new nomep[25];
  297. GetPlayerName(playerid, nomep, 25);
  298. HInfo[id][hDono] = nomep;
  299. new str[120];
  300. format (str, sizeof(str), "Você agora é dono da casa %d", HInfo[id][hID]);
  301. SendClientMessage(playerid, -1, str);
  302. HInfo[id][hTemDono] = 1;
  303.  
  304. Salvar_Casa(id);
  305. Atualizar_Casas(id);
  306. }
  307. return 1;
  308. }
  309.  
  310. // ----------------------------------------------------------------------------- >>
  311.  
  312. CMD:carrocasa(playerid, params[])
  313. {
  314. // if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Você não tem permisão para usar este comando!");
  315. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Você não está em um carro");
  316.  
  317. new idh;
  318. if(sscanf(params, "d", idh)) return SendClientMessage(playerid, -1, "/carrocasa [id casa]");
  319.  
  320. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, idh);
  321. if(!DOF2_FileExists(arquivo_casa))
  322. {
  323. SendClientMessage(playerid, -1, "Esta casa não existe");
  324. }
  325. else
  326. {
  327. for(new carroid = 0; carroid < MAX_VEHICLES; ++carroid)
  328. {
  329. format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, carroid);
  330. if(!DOF2_FileExists(arquivo_hcarro))
  331. {
  332. new player_carro_id = GetPlayerVehicleID(playerid);
  333. new player_carro_modelo = GetVehicleModel(player_carro_id);
  334.  
  335. new Float:Pos[4];
  336. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  337. GetPlayerFacingAngle(playerid, Pos[3]);
  338.  
  339. cInfo[player_carro_id][cID] = player_carro_id;
  340. cInfo[player_carro_id][cCasa] = idh;
  341.  
  342. format(cInfo[player_carro_id][cDono], 25, "%s", DOF2_GetString(arquivo_casa, "Dono"));
  343. DOF2_SetString(arquivo_hcarro, "Dono", cInfo[player_carro_id][cDono]);
  344.  
  345. cInfo[player_carro_id][cPos][0] = Pos[0];
  346. cInfo[player_carro_id][cPos][1] = Pos[1];
  347. cInfo[player_carro_id][cPos][2] = Pos[2];
  348. cInfo[player_carro_id][cPos][3] = Pos[3];
  349. cInfo[player_carro_id][cModelo] = player_carro_modelo;
  350. cInfo[player_carro_id][cCor][0] = 1;
  351. cInfo[player_carro_id][cCor][0] = 1;
  352.  
  353. Criar_Carro(player_carro_id);
  354. Atualizar_Carros(player_carro_id);
  355.  
  356. new str[120];
  357. format (str, sizeof(str), "Você definiu este carro %d para a casa %d", player_carro_modelo, idh);
  358. SendClientMessage(playerid, -1, str);
  359. }break;
  360. }
  361. }
  362. return 1;
  363. }
  364.  
  365. // ----------------------------------------------------------------------------- >>
  366. public Atualizar_Carros(carroid)
  367. {
  368. format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, carroid);
  369. if(!DOF2_FileExists(arquivo_hcarro))
  370. {
  371. Delete3DTextLabel( cInfo[carroid][cText] );
  372. CarroCasas[carroid] = DestroyVehicle(cInfo[carroid][cModelo]);
  373. }
  374. else
  375. {
  376. new str[120];
  377. format(cInfo[carroid][cDono], 25, "%s", DOF2_GetString(arquivo_casa, "Dono"));
  378. DOF2_SetString(arquivo_hcarro, "Dono", cInfo[carroid][cDono]);
  379.  
  380. new stk[120];
  381. Delete3DTextLabel( cInfo[carroid][cText] );
  382. format(stk, sizeof(stk), "Carro %d\nCasa %d\nDono %s", cInfo[carroid][cID], cInfo[carroid][cCasa], cInfo[carroid][cDono]);
  383. cInfo[carroid][cText] = Create3DTextLabel( str, 0xFF0000AA, 0.0, 0.0, 0.0, 90.0, 0, 1 );
  384. Attach3DTextLabelToVehicle( cInfo[carroid][cText] , carroid, 0.0, 0.0, 1.0);
  385. SetVehicleToRespawn(carroid);
  386. }
  387. return 1;
  388. }
  389.  
  390. public Atualizar_Casas(casaid)
  391. {
  392. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, casaid);
  393. if(!DOF2_FileExists(arquivo_casa))
  394. {
  395. Delete3DTextLabel(HInfo[casaid][hText]);
  396. DestroyPickup(HInfo[casaid][hPickUp]);
  397. DestroyDynamicMapIcon(HInfo[casaid][hMapIcon]);
  398. // CarroCasas[casaid] = DestroyVehicle(cInfo[casaid][hCarro]);
  399. }
  400. else
  401. {
  402. new str[120];
  403. format(str, sizeof(str), "Casa %d\nDono %s\nPreço %d\nAluguel %d", HInfo[casaid][hID], HInfo[casaid][hDono], HInfo[casaid][hPreco], HInfo[casaid][hAluguel]);
  404.  
  405. if(HInfo[casaid][hTemDono] == 1)
  406. {
  407. DestroyPickup(HInfo[casaid][hPickUp]);
  408. DestroyDynamicMapIcon(HInfo[casaid][hMapIcon]);
  409. Delete3DTextLabel(HInfo[casaid][hText]);
  410.  
  411. HInfo[casaid][hText] = Create3DTextLabel(str, -1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 20.0, 0, 0);
  412. Update3DTextLabelText(HInfo[casaid][hText], -1, str);
  413.  
  414. HInfo[casaid][hMapIcon] = CreateDynamicMapIcon(HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 32, -1, -1, -1, -1, 50.0);
  415. HInfo[casaid][hPickUp] = CreatePickup(1272, 1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], -1);
  416. }
  417. if(HInfo[casaid][hTemDono] == 0)
  418. {
  419. DestroyPickup(HInfo[casaid][hPickUp]);
  420. DestroyDynamicMapIcon(HInfo[casaid][hMapIcon]);
  421. Delete3DTextLabel(HInfo[casaid][hText]);
  422.  
  423. HInfo[casaid][hText] = Create3DTextLabel(str, -1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 20.0, 0, 0);
  424. Update3DTextLabelText(HInfo[casaid][hText], -1, str);
  425.  
  426. HInfo[casaid][hPickUp] = CreatePickup(1273, 1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], -1);
  427. HInfo[casaid][hMapIcon] = CreateDynamicMapIcon(HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 31, -1, -1, -1, -1, 50.0);
  428. }
  429. }
  430. return 1;
  431. }
  432.  
  433. // ----------------------------------------------------------------------------- >>
  434. /*
  435. public OnPlayerStateChange(playerid, newstate, oldstate) // Não ta funcionando
  436. {
  437. if (newstate == PLAYER_STATE_DRIVER)
  438. {
  439. for(new i = 0; i < MAX_VEHICLES; ++i)
  440. {
  441. if(strcmp(cInfo[i][cDono], GetNome(playerid)) == 0) // verificar se o player é dono do carro
  442. {
  443. RemovePlayerFromVehicle(playerid);
  444. SendClientMessage(playerid, -1, "Você não é o dono deste carro");
  445. }
  446. else
  447. {
  448. // format(cInfo[i][cDono], 25, "%s", DOF2_GetString(arquivo_hcarro, "Dono"));
  449. if(strcmp(cInfo[i][cDono] == "Ninguem") // se o carro não tiver dono poode entrar ?
  450. {
  451.  
  452. }
  453. }break;
  454. }
  455. }
  456. return 1;
  457. }
  458. */
  459.  
  460. // ----------------------------------------------------------------------------- >>
  461. /*
  462. public OnPlayerStateChange(playerid, newstate, oldstate) // Não ta funcionando !
  463. {
  464. if (newstate == PLAYER_STATE_DRIVER)
  465. {
  466. for(new i = 0; i < MAX_VEHICLES; ++i)
  467. {
  468. new str[120];
  469. format(str, sizeof(str), "este carro é da casa %d dono %s", cInfo[i][cCasa], cInfo[i][cDono]);
  470. SendClientMessage(playerid, -1, str);
  471.  
  472. if(strcmp(cInfo[i][cDono], GetNome(playerid)) == 0) // verificar se o player é dono do carro
  473. {
  474. RemovePlayerFromVehicle(playerid);
  475. SendClientMessage(playerid, -1, "Você não é o dono deste carro");
  476. }
  477. else
  478. {
  479. if(strcmp(cInfo[i][cDono], "Ninguem") == 0)
  480. {
  481. SendClientMessage(playerid, -1, "Este carro não tem dono !");
  482. }
  483. }break;
  484. }
  485. }
  486. return 1;
  487. }
  488. */
  489. // ----------------------------------------------------------------------------- >>
  490.  
  491. public OnVehicleDeath(vehicleid, killerid)
  492. {
  493. SetVehicleToRespawn(vehicleid);
  494. Atualizar_Carros(vehicleid);
  495. return 1;
  496. }
  497.  
  498. // ----------------------------------------------------------------------------- >>
  499.  
  500. CMD:cv(playerid, params[])
  501. {
  502. new string[256], modelo, carro, cor1, cor2,
  503. Float:X, Float:Y, Float:Z, Float:Angle;
  504.  
  505. if(sscanf(params, "ddd", modelo, cor1, cor2)) return SendClientMessage(playerid, -1, "Digite: /cv [modelo] [cor1] [cor2]");
  506. if(IsPlayerConnected(playerid))
  507. {
  508. if(modelo >= 400 && modelo <= 611)
  509. {
  510. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Saia deste veículo para criar outro.");
  511.  
  512. GetPlayerPos(playerid, X, Y, Z);
  513. GetPlayerFacingAngle(playerid, Angle);
  514.  
  515. carro = AddStaticVehicleEx(modelo, X, Y, Z, Angle, cor1, cor2, 30);
  516.  
  517. LinkVehicleToInterior(carro, GetPlayerInterior(playerid));
  518. SetVehicleVirtualWorld(carro, GetPlayerVirtualWorld(playerid));
  519. PutPlayerInVehicle(playerid, carro, 0);
  520.  
  521. format(string, sizeof(string), "Você criou o veículo de id: %d", modelo);
  522. SendClientMessage(playerid, -1, string);
  523. }
  524. else SendClientMessage(playerid, -1, "Valor inválido, tente novamente! | ID's = 400-611");
  525. }
  526. return 1;
  527. }
  528.  
  529. // ----------------------------------------------------------------------------- >>
  530.  
  531. Criar_Casa(casaid)
  532. {
  533. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, HInfo[casaid][hID]);
  534.  
  535. DOF2_CreateFile(arquivo_casa);
  536. DOF2_SetString(arquivo_casa, "Dono", HInfo[casaid][hDono]);
  537. DOF2_SetInt(arquivo_casa, "TemDono", HInfo[casaid][hTemDono]);
  538. DOF2_SetInt(arquivo_casa, "ID", HInfo[casaid][hID]);
  539. DOF2_SetInt(arquivo_casa, "Preco", HInfo[casaid][hPreco]);
  540. DOF2_SetInt(arquivo_casa, "Aluguel", HInfo[casaid][hAluguel]);
  541. DOF2_SetInt(arquivo_casa, "Carro", HInfo[casaid][hCarro]);
  542. DOF2_SetInt(arquivo_casa, "Interior", HInfo[casaid][hInterior]);
  543.  
  544. DOF2_SetFloat(arquivo_casa, "Iconex", HInfo[casaid][hIcone][0]);
  545. DOF2_SetFloat(arquivo_casa, "Iconey", HInfo[casaid][hIcone][1]);
  546. DOF2_SetFloat(arquivo_casa, "Iconez", HInfo[casaid][hIcone][2]);
  547.  
  548. DOF2_SaveFile();
  549. return 1;
  550. }
  551.  
  552. Criar_Carro(carroid)
  553. {
  554. format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, carroid);
  555. if(!DOF2_FileExists(arquivo_hcarro)) // Se o carro não existir cria
  556. {
  557. format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, cInfo[carroid][cID]);
  558. DOF2_CreateFile(arquivo_hcarro);
  559.  
  560. DOF2_SetInt(arquivo_hcarro, "Casa", cInfo[carroid][cCasa]);
  561. DOF2_SetInt(arquivo_hcarro, "Modelo", cInfo[carroid][cModelo]);
  562. DOF2_SetString(arquivo_hcarro, "Dono", cInfo[carroid][cDono]);
  563.  
  564. DOF2_SetFloat(arquivo_hcarro, "CarroPosx", cInfo[carroid][cPos][0]);
  565. DOF2_SetFloat(arquivo_hcarro, "CarroPosy", cInfo[carroid][cPos][1]);
  566. DOF2_SetFloat(arquivo_hcarro, "CarroPosz", cInfo[carroid][cPos][2]);
  567. DOF2_SetFloat(arquivo_hcarro, "CarroPosA", cInfo[carroid][cPos][3]); // Angulo do carro
  568.  
  569. DOF2_SetInt(arquivo_hcarro, "CarroCor1", cInfo[carroid][cCor][0]);
  570. DOF2_SetInt(arquivo_hcarro, "CarroCor2", cInfo[carroid][cCor][1]);
  571.  
  572. CarroCasas[carroid] = CreateVehicle(cInfo[carroid][cModelo], cInfo[carroid][cPos][0], cInfo[carroid][cPos][1], cInfo[carroid][cPos][2], cInfo[carroid][cPos][3], cInfo[carroid][cCor][0], cInfo[carroid][cCor][1], false);
  573. SetVehicleToRespawn(carroid);
  574. DOF2_SaveFile();
  575. }
  576. else // se existir o arquivo dele, cria ele e respawna
  577. {
  578. CarroCasas[carroid] = CreateVehicle(cInfo[carroid][cModelo], cInfo[carroid][cPos][0], cInfo[carroid][cPos][1], cInfo[carroid][cPos][2], cInfo[carroid][cPos][3], cInfo[carroid][cCor][0], cInfo[carroid][cCor][1], false);
  579. SetVehicleToRespawn(carroid);
  580. }
  581. return 1;
  582. }
  583.  
  584. Carregar_Carro(carroid)
  585. {
  586. format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, carroid);
  587. if(DOF2_FileExists(arquivo_hcarro))
  588. {
  589. cInfo[carroid][cCasa] = DOF2_GetInt(arquivo_hcarro, "Casa");
  590. cInfo[carroid][cModelo] = DOF2_GetInt(arquivo_hcarro, "Modelo");
  591. format(cInfo[carroid][cDono], 25, "%s", DOF2_GetString(arquivo_hcarro, "Dono"));
  592.  
  593. cInfo[carroid][cPos][0] = DOF2_GetFloat(arquivo_hcarro, "CarroPosx");
  594. cInfo[carroid][cPos][1] = DOF2_GetFloat(arquivo_hcarro, "CarroPosy");
  595. cInfo[carroid][cPos][2] = DOF2_GetFloat(arquivo_hcarro, "CarroPosz");
  596. cInfo[carroid][cPos][3] = DOF2_GetFloat(arquivo_hcarro, "CarroPosA");
  597.  
  598. cInfo[carroid][cCor][0] = DOF2_GetInt(arquivo_hcarro, "CarroCor1");
  599. cInfo[carroid][cCor][1] = DOF2_GetInt(arquivo_hcarro, "CarroCor2");
  600. CarroCasas[carroid] = CreateVehicle(cInfo[carroid][cModelo], cInfo[carroid][cPos][0], cInfo[carroid][cPos][1], cInfo[carroid][cPos][2], cInfo[carroid][cPos][3], cInfo[carroid][cCor][0], cInfo[carroid][cCor][1], false);
  601. }
  602. }
  603.  
  604. Salvar_Carro(carroid)
  605. {
  606. format(arquivo_hcarro, sizeof(arquivo_hcarro), PASTA_CARROS, carroid);
  607. if(DOF2_FileExists(arquivo_hcarro))
  608. {
  609. DOF2_SetString(arquivo_hcarro, "Dono", cInfo[carroid][cDono]);
  610. DOF2_SetInt(arquivo_hcarro, "Casa", cInfo[carroid][cCasa]);
  611. DOF2_SetInt(arquivo_hcarro, "Modelo", cInfo[carroid][cModelo]);
  612.  
  613. DOF2_SetFloat(arquivo_hcarro, "CarroPosx", cInfo[carroid][cPos][0]);
  614. DOF2_SetFloat(arquivo_hcarro, "CarroPosy", cInfo[carroid][cPos][1]);
  615. DOF2_SetFloat(arquivo_hcarro, "CarroPosz", cInfo[carroid][cPos][2]);
  616. DOF2_SetFloat(arquivo_hcarro, "CarroPosA", cInfo[carroid][cPos][3]);
  617.  
  618. DOF2_SetInt(arquivo_hcarro, "CarroCor1", cInfo[carroid][cCor][0]);
  619. DOF2_SetInt(arquivo_hcarro, "CarroCor2", cInfo[carroid][cCor][1]);
  620.  
  621. DOF2_SaveFile();
  622. SetVehicleToRespawn(carroid);
  623. }
  624. }
  625.  
  626. // ----------------------------------------------------------------------------- >>
  627.  
  628. Carregar_Casa(casaid)
  629. {
  630. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, casaid);
  631. if(DOF2_FileExists(arquivo_casa))
  632. {
  633. format(HInfo[casaid][hDono], 25, "%s", DOF2_GetString(arquivo_casa, "Dono"));
  634. HInfo[casaid][hTemDono] = DOF2_GetInt(arquivo_casa, "TemDono");
  635. HInfo[casaid][hID] = DOF2_GetInt(arquivo_casa, "ID");
  636. HInfo[casaid][hPreco] = DOF2_GetInt(arquivo_casa, "Preco");
  637. HInfo[casaid][hAluguel] = DOF2_GetInt(arquivo_casa, "Aluguel");
  638. HInfo[casaid][hCarro] = DOF2_GetInt(arquivo_casa, "Carro");
  639. HInfo[casaid][hInterior] = DOF2_GetInt(arquivo_casa, "Interior");
  640.  
  641. HInfo[casaid][hIcone][0] = DOF2_GetFloat(arquivo_casa, "Iconex");
  642. HInfo[casaid][hIcone][1] = DOF2_GetFloat(arquivo_casa, "Iconey");
  643. HInfo[casaid][hIcone][2] = DOF2_GetFloat(arquivo_casa, "Iconez");
  644.  
  645. new str[120];
  646. if(HInfo[casaid][hTemDono] == 0)
  647. {
  648. format(str, sizeof(str), "Casa %d\nDono %s\nPreço %d\nAluguel %d", HInfo[casaid][hID], HInfo[casaid][hDono], HInfo[casaid][hPreco], HInfo[casaid][hAluguel]);
  649. HInfo[casaid][hText] = Create3DTextLabel(str, -1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 20.0, 0, 0);
  650. HInfo[casaid][hPickUp] = CreatePickup(1273, 1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], -1);
  651. HInfo[casaid][hMapIcon] = CreateDynamicMapIcon(HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 31, -1, -1, -1, -1, 50.0);
  652. }
  653. else
  654. {
  655. format(str, sizeof(str), "Casa %d\nDono %s\nAluguel %d", HInfo[casaid][hID], HInfo[casaid][hDono], HInfo[casaid][hAluguel]);
  656. HInfo[casaid][hText] = Create3DTextLabel(str, -1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 20.0, 0, 0);
  657. HInfo[casaid][hPickUp] = CreatePickup(1272, 1, HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], -1);
  658. HInfo[casaid][hMapIcon] = CreateDynamicMapIcon(HInfo[casaid][hIcone][0], HInfo[casaid][hIcone][1], HInfo[casaid][hIcone][2], 32, -1, -1, -1, -1, 50.0);
  659. }
  660. }
  661. }
  662.  
  663. Salvar_Casa(casaid)
  664. {
  665. format(arquivo_casa, sizeof(arquivo_casa), PASTA_CASAS, casaid);
  666. if(DOF2_FileExists(arquivo_casa))
  667. {
  668. DOF2_SetString(arquivo_casa, "Dono", HInfo[casaid][hDono]);
  669. DOF2_SetInt(arquivo_casa, "TemDono", HInfo[casaid][hTemDono]);
  670. DOF2_SetInt(arquivo_casa, "ID", HInfo[casaid][hID]);
  671. DOF2_SetInt(arquivo_casa, "Preco", HInfo[casaid][hPreco]);
  672. DOF2_SetInt(arquivo_casa, "Aluguel", HInfo[casaid][hAluguel]);
  673. DOF2_SetInt(arquivo_casa, "Carro", HInfo[casaid][hCarro]);
  674. DOF2_SetInt(arquivo_casa, "Interior", HInfo[casaid][hInterior]);
  675.  
  676. DOF2_SetFloat(arquivo_casa, "Iconex", HInfo[casaid][hIcone][0]);
  677. DOF2_SetFloat(arquivo_casa, "Iconey", HInfo[casaid][hIcone][1]);
  678. DOF2_SetFloat(arquivo_casa, "Iconez", HInfo[casaid][hIcone][2]);
  679.  
  680. DOF2_SaveFile();
  681. }
  682. }
  683.  
  684. // ----------------------------------------------------------------------------- >>
  685.  
  686. stock GetNome(playerid)
  687. {
  688. new pNome[MAX_PLAYER_NAME];
  689. GetPlayerName(playerid, pNome, 24);
  690. return pNome;
  691. }
  692.  
  693. public AntFloodH(playerid)
  694. {
  695. countH[playerid] = false;
  696. return true;
  697. }
  698.  
  699. // ------------------------------------------------------------------------------- >>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement