Advertisement
Guest User

Untitled

a guest
May 20th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.72 KB | None | 0 0
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3. //#define FILTERSCRIPT
  4.  
  5. #include <a_samp>
  6. #include <sscanf2>
  7. #include <DOF2>
  8. #include <streamer>
  9. #include <zcmd>
  10.  
  11. #define Casas "AllanSG/Casa%i.ini" // Onde as casas sao salvas "Casas/Casa%i.ini" // Onde as casas sao salvas
  12. #define MAX_CASAS 100
  13.  
  14. enum InfoCasa
  15. {
  16. bool:tDono,
  17. cInfo,
  18. cID,
  19. nDono[MAX_PLAYER_NAME],
  20. Float:PosX,
  21. Float:PosY,
  22. Float:PosZ,
  23. cContas,
  24. bool:cPorta,
  25. cInt,
  26. cWorld,
  27. cLevel,
  28. CasaIcon,
  29. Text3D:CasaLabel,
  30. CasaP
  31. };
  32.  
  33. new Casa[MAX_CASAS][InfoCasa];
  34.  
  35. enum InfoPlayer
  36. {
  37. AtvCartao,
  38. Name[24],
  39. Saldo
  40. };
  41.  
  42. new Player[MAX_PLAYERS][InfoPlayer];
  43.  
  44. #if defined FILTERSCRIPT
  45.  
  46. public OnFilterScriptInit()
  47. {
  48. return 1;
  49. }
  50.  
  51. public OnFilterScriptExit()
  52. {
  53. return 1;
  54. }
  55.  
  56. #else
  57.  
  58. #endif
  59.  
  60. public OnGameModeInit()
  61. {
  62. // Don't use these lines if it's a filterscript
  63. LoadCasas();
  64. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  65. return 1;
  66. }
  67.  
  68. public OnGameModeExit()
  69. {
  70. DOF2_Exit();
  71. return 1;
  72. }
  73.  
  74. public OnPlayerRequestClass(playerid, classid)
  75. {
  76. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  77. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  78. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  79. return 1;
  80. }
  81.  
  82. public OnPlayerConnect(playerid)
  83. {
  84. GetPlayerName(playerid, Player[playerid][Name], 24);
  85. return 1;
  86. }
  87.  
  88. public OnPlayerDisconnect(playerid, reason)
  89. {
  90. return 1;
  91. }
  92.  
  93. public OnPlayerSpawn(playerid)
  94. {
  95. Player[playerid][Saldo] = GetPlayerMoney(playerid);
  96. return 1;
  97. }
  98.  
  99. public OnPlayerDeath(playerid, killerid, reason)
  100. {
  101. return 1;
  102. }
  103.  
  104. public OnVehicleSpawn(vehicleid)
  105. {
  106. return 1;
  107. }
  108.  
  109. public OnVehicleDeath(vehicleid, killerid)
  110. {
  111. return 1;
  112. }
  113.  
  114. public OnPlayerText(playerid, text[])
  115. {
  116. return 1;
  117. }
  118.  
  119. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  120. {
  121. return 1;
  122. }
  123.  
  124. public OnPlayerExitVehicle(playerid, vehicleid)
  125. {
  126. return 1;
  127. }
  128.  
  129. public OnPlayerStateChange(playerid, newstate, oldstate)
  130. {
  131. return 1;
  132. }
  133.  
  134. public OnPlayerEnterCheckpoint(playerid)
  135. {
  136. return 1;
  137. }
  138.  
  139. public OnPlayerLeaveCheckpoint(playerid)
  140. {
  141. return 1;
  142. }
  143.  
  144. public OnPlayerEnterRaceCheckpoint(playerid)
  145. {
  146. return 1;
  147. }
  148.  
  149. public OnPlayerLeaveRaceCheckpoint(playerid)
  150. {
  151. return 1;
  152. }
  153.  
  154. public OnRconCommand(cmd[])
  155. {
  156. return 1;
  157. }
  158.  
  159. public OnPlayerRequestSpawn(playerid)
  160. {
  161. return 1;
  162. }
  163.  
  164. public OnObjectMoved(objectid)
  165. {
  166. return 1;
  167. }
  168.  
  169. public OnPlayerObjectMoved(playerid, objectid)
  170. {
  171. return 1;
  172. }
  173.  
  174. public OnPlayerPickUpPickup(playerid, pickupid)
  175. {
  176. return 1;
  177. }
  178.  
  179. public OnVehicleMod(playerid, vehicleid, componentid)
  180. {
  181. return 1;
  182. }
  183.  
  184. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  185. {
  186. return 1;
  187. }
  188.  
  189. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  190. {
  191. return 1;
  192. }
  193.  
  194. public OnPlayerSelectedMenuRow(playerid, row)
  195. {
  196. return 1;
  197. }
  198.  
  199. public OnPlayerExitedMenu(playerid)
  200. {
  201. return 1;
  202. }
  203.  
  204. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  205. {
  206. return 1;
  207. }
  208.  
  209. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  210. {
  211. return 1;
  212. }
  213.  
  214. public OnRconLoginAttempt(ip[], password[], success)
  215. {
  216. return 1;
  217. }
  218.  
  219. public OnPlayerUpdate(playerid)
  220. {
  221. return 1;
  222. }
  223.  
  224. public OnPlayerStreamIn(playerid, forplayerid)
  225. {
  226. return 1;
  227. }
  228.  
  229. public OnPlayerStreamOut(playerid, forplayerid)
  230. {
  231. return 1;
  232. }
  233.  
  234. public OnVehicleStreamIn(vehicleid, forplayerid)
  235. {
  236. return 1;
  237. }
  238.  
  239. public OnVehicleStreamOut(vehicleid, forplayerid)
  240. {
  241. return 1;
  242. }
  243.  
  244. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  245. {
  246. return 1;
  247. }
  248.  
  249. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  250. {
  251. return 1;
  252. }
  253.  
  254. stock LoadCasas()
  255. {
  256. new CasaCount;
  257.  
  258. for(new i = 0; i < MAX_CASAS; i++)
  259. {
  260. new str[256], Label[256], Status[20], Pick, MapIcon;
  261. format(str, sizeof(str), Casas, i);
  262. if(DOF2_FileExists(str))
  263. {
  264. Casa[i][tDono] = DOF2_GetBool( str, "tDono" );
  265. format(Casa[i][nDono], 24, "%s", DOF2_GetString(str, "nDono") );
  266. Casa[i][cInfo] = DOF2_GetInt ( str, "cInfo" );
  267. Casa[i][cID] = DOF2_GetInt( str, "cID" );
  268. Casa[i][PosX] = DOF2_GetFloat( str, "PosX" );
  269. Casa[i][PosY] = DOF2_GetFloat( str, "PosY" );
  270. Casa[i][PosZ] = DOF2_GetFloat( str, "PosZ" );
  271. Casa[i][cContas] = DOF2_GetInt( str, "cContas" );
  272. Casa[i][cPorta] = DOF2_GetBool( str, "cPorta" );
  273. Casa[i][cInt] = DOF2_GetInt( str, "cInt" );
  274. Casa[i][cWorld] = DOF2_GetInt( str, "cWorld" );
  275. Casa[i][cLevel] = DOF2_GetInt( str, "cLevel" );
  276.  
  277. if(Casa[i][cPorta] == true) { Status = "{00E600}Aberta"; } else if(Casa[i][cPorta] == false) { Status = "{FF0000}Fechada"; }
  278. format(Label, sizeof(Label), "{c0c0c0}Level %i\nCasa %i\n{FFAE00}Dono: {FFFFFF}%s\n{c0c0c0}Porta: %s", Casa[i][cLevel], Casa[i][cID], Casa[i][nDono], Status);
  279. if(Casa[i][tDono] == true) { Pick = 19522; } else if(Casa[i][tDono] == false) { Pick = 1273; }
  280. Casa[i][CasaP] = CreateDynamicPickup(Pick, 1, Casa[i][PosX], Casa[i][PosY], Casa[i][PosZ], Casa[i][cWorld], Casa[i][cInt]);
  281. Casa[i][CasaLabel] = CreateDynamic3DTextLabel(Label, -1, Casa[i][PosX], Casa[i][PosY], Casa[i][PosZ]+1, 15.0);
  282. if(Casa[i][tDono] == true) { MapIcon = 32; } else if(Casa[i][tDono] == false) { MapIcon = 31; }
  283. Casa[i][CasaIcon] = CreateDynamicMapIcon(Casa[i][PosX], Casa[i][PosY], Casa[i][PosZ], MapIcon, -1, -1, -1, -1, 100.0);
  284.  
  285. CasaCount++;
  286. }
  287. }
  288.  
  289. printf("\nUm Total De %i Casa(s) Foi Carregado.\n", CasaCount);
  290.  
  291. return 1;
  292. }
  293.  
  294. GetPlayerIDCasa(playerid, Float:range = 1.0) // Créditos do fórum sa-mp
  295. {
  296. new id = -1;
  297.  
  298. for (new i = 0; i < MAX_CASAS; i ++)
  299. {
  300. if (IsPlayerInRangeOfPoint(playerid, range, Casa[i][PosX], Casa[i][PosY], Casa[i][PosZ]))
  301. {
  302. id = i;
  303. break;
  304. }
  305. }
  306. return id;
  307. }
  308.  
  309. CMD:comprarcasa (playerid, params[])
  310. {
  311. new id = GetPlayerIDCasa(playerid), texto[256], Label[100], Pasta[100], Status[30];
  312. format(Pasta, sizeof(Pasta), Casas, id);
  313. if(id == -1) return SendClientMessage(playerid, -1, "| ERRO | Você Não Está Em Uma Casa!");
  314.  
  315. if(Casa[id][tDono] == true) return SendClientMessage(playerid, -1, "| ERRO | Está Casa Já Possui Um Dono(a)!");
  316.  
  317. if(Player[playerid][AtvCartao] == 0)
  318. {
  319. if(GetPlayerMoney(playerid) < Casa[id][cInfo]) return SendClientMessage(playerid, -1, "| ERRO | Você Não Tem Dinheiro Suficiente!");
  320. GivePlayerMoney(playerid, -Casa[id][cInfo]);
  321. }
  322. else if(Player[playerid][AtvCartao] == 1)
  323. {
  324. if(Player[playerid][Saldo] < Casa[id][cInfo]) return SendClientMessage(playerid, -1, "| ERRO | Você Não Tem Dinheiro Suficiente!");
  325. Player[playerid][Saldo] -= Casa[id][cInfo];
  326. }
  327.  
  328. DOF2_SetString(Pasta, "nDono", Player[playerid][Name]);
  329. Casa[id][tDono] = true;
  330. DOF2_SetBool(Pasta, "tDono", true);
  331.  
  332. if(Casa[id][cPorta] == true) { Status = "{00E600}Aberta"; } else if(Casa[id][cPorta] == false) { Status = "{FF0000}Fechada"; }
  333. format(Label, sizeof(Label), "{c0c0c0}Level %i\nCasa %i\n{FFAE00}Dono: {FFFFFF}%s\n{c0c0c0}Porta: %s", Casa[id][cLevel], Casa[id][cID], Casa[id][nDono], Status);
  334.  
  335. DestroyDynamic3DTextLabel(Casa[id][CasaLabel]);
  336. DestroyDynamicPickup(Casa[id][CasaP]);
  337. DestroyDynamicMapIcon(Casa[id][CasaIcon]);
  338.  
  339. Casa[id][CasaLabel] = CreateDynamic3DTextLabel(Label, -1, Casa[id][PosX], Casa[id][PosY], Casa[id][PosZ]+1, 15.0);
  340. Casa[id][CasaP] = CreateDynamicPickup(1272, 1, Casa[id][PosX], Casa[id][PosY], Casa[id][PosZ], Casa[id][cWorld], Casa[id][cInt]);
  341. Casa[id][CasaIcon] = CreateDynamicMapIcon(Casa[id][PosX], Casa[id][PosY], Casa[id][PosZ], 32, -1, -1, -1, -1, 100.0);
  342.  
  343. format(texto, sizeof(texto), "| INFO-CASA | %s Acaba De Comprar A Casa De ID %i!", Player[playerid][Name], id);
  344. SendClientMessageToAll(0x1A73D9FF, texto);
  345.  
  346. return 1;
  347. }
  348.  
  349. CMD:criarcasa(playerid, params[])
  350. {
  351. new Float:pos[3], pInt, pVWorld, Pasta[100], Label[100];
  352. if(sscanf(params, "ddd", params[0], params[1], params[2])) return SendClientMessage(playerid, -1, "E-R-R-R-R-R-O-U, ID, Preco, Level");
  353. GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  354. pInt = GetPlayerInterior(playerid);
  355. pVWorld = GetPlayerVirtualWorld(playerid);
  356. format(Pasta, sizeof(Pasta), Casas, params[0]);
  357.  
  358. DOF2::CreateFile(Pasta);
  359. DOF2::SetInt(Pasta, "cID", params[0]);
  360. DOF2::SetInt(Pasta, "cInfo", params[1]);
  361. DOF2::SetInt(Pasta, "cLevel", params[2]);
  362. DOF2::SetInt(Pasta, "cInt", pInt);
  363. DOF2::SetInt(Pasta, "cWorld", pVWorld);
  364. DOF2::SetString(Pasta, "nDono", "Nenhum");
  365. DOF2::SetBool(Pasta, "tDono", false);
  366. DOF2::SetBool(Pasta, "cPorta", true);
  367. DOF2::SetInt(Pasta, "cContas", 0);
  368. DOF2::SetFloat(Pasta, "PosX", pos[0]);
  369. DOF2::SetFloat(Pasta, "PosY", pos[1]);
  370. DOF2::SetFloat(Pasta, "PosZ", pos[2]);
  371. DOF2::SaveFile();
  372.  
  373. Casa[params[0]][cID] = params[0];
  374. Casa[params[0]][cInfo] = params[1];
  375. Casa[params[0]][cLevel] = params[2];
  376.  
  377. format(Label, sizeof(Label), "{c0c0c0}Level %i\nCasa %i\n{FFAE00}Dono: {FFFFFF}Nenhum\n{c0c0c0}Porta: {00E600}Aberta", Casa[params[0]][cLevel], Casa[params[0]][cID]);
  378. Casa[params[0]][CasaP] = CreateDynamicPickup(1273, 1, pos[0], pos[1], pos[2], pVWorld, pInt);
  379. Casa[params[0]][CasaIcon] = CreateDynamicMapIcon(pos[0], pos[1], pos[2], 31, -1, -1, -1, -1, 100.0);
  380. Casa[params[0]][CasaLabel] = CreateDynamic3DTextLabel(Label, -1, pos[0], pos[1], pos[2]+1, 15.0);
  381.  
  382. return 1;
  383. }
  384.  
  385. CMD:dp(playerid)
  386. {
  387. GivePlayerMoney(playerid, 9999999);
  388. return 1;
  389. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement