Advertisement
Guest User

Untitled

a guest
Jul 19th, 2013
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.25 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3. #include <mysql>
  4. #include <streamer>
  5.  
  6. #define MySQL_IP "127.0.0.1"
  7. #define MySQL_Login "root"
  8. #define MySQL_Password "anakonda1"
  9. #define MySQL_db "nvrp"
  10.  
  11. #define MAX_HOUSES 50
  12. #define DIALOG_HOUSE 5050
  13.  
  14. //-------------------------------------|
  15. enum HOUSE_DATA
  16. {
  17. Float:p_X,
  18. Float:p_Y,
  19. Float:p_Z,
  20. Float:i_X,
  21. Float:i_Y,
  22. Float:i_Z,
  23. iin,
  24. Cena,
  25. Vlastnik[MAX_PLAYER_NAME],
  26. Text3D:Text,
  27. Pickup,
  28. VW,
  29. Zamek,
  30. Ikonka
  31. }
  32. new HouseInfo[MAX_HOUSES][HOUSE_DATA];
  33. new InHouse[MAX_PLAYERS] = {-1,...};
  34. new HouseCount = -1;
  35. //------------------------------------|
  36. forward AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik);
  37. //------------------------------------|
  38. public AddHouse(Float:pX, Float:pY, Float:pZ, Float:iX, Float:iY, Float:iZ, ii, Cenik)
  39. {
  40. HouseCount++;
  41. if(HouseCount < MAX_HOUSES)
  42. {
  43. HouseInfo[HouseCount][p_X] = pX;
  44. HouseInfo[HouseCount][p_Y] = pY;
  45. HouseInfo[HouseCount][p_Z] = pZ;
  46.  
  47. HouseInfo[HouseCount][i_X] = iX;
  48. HouseInfo[HouseCount][i_Y] = iY;
  49. HouseInfo[HouseCount][i_Z] = iZ;
  50. HouseInfo[HouseCount][iin] = ii;
  51.  
  52. HouseInfo[HouseCount][Cena] = Cenik;
  53. HouseInfo[HouseCount][Vlastnik] = 0;
  54. HouseInfo[HouseCount][Zamek] = 0;
  55. HouseInfo[HouseCount][VW] = 50+HouseCount;
  56.  
  57. new Query[800];
  58. format(Query, sizeof(Query), "SELECT * FROM `domi` WHERE HouseID = '%d'", HouseCount);
  59. mysql_query(Query);
  60. mysql_store_result();
  61.  
  62. if(!mysql_num_rows())
  63. {
  64. format(Query,sizeof(Query),"INSERT INTO domi(HouseID,Owner,Locked) VALUES ('%d','%s','%d')",HouseCount,"none",0);
  65. mysql_query(Query);
  66. mysql_free_result();
  67. }
  68.  
  69. if(mysql_num_rows())
  70. {
  71. new get[35],sx[100];
  72. mysql_fetch_field("Owner",get);
  73. if(strcmp(get,"none",true) == 0)
  74. {
  75. format(HouseInfo[HouseCount][Vlastnik],MAX_PLAYER_NAME,"Nikto");
  76. HouseInfo[HouseCount][Zamek] = 0;
  77. HouseInfo[HouseCount][Pickup] = CreatePickup(1273,1,pX, pY, pZ);
  78. HouseInfo[HouseCount][Ikonka] = CreateDynamicMapIcon(pX, pY, pZ, 31, 0);
  79. format(sx,100,"Dom č.%d\r\nMajiteľ: Nikto\r\nCena: %d",HouseCount,Cenik);
  80. HouseInfo[HouseCount][Text] = Create3DTextLabel(sx,0xFF0000FF,pX,pY,pZ+1,50,0);
  81. }
  82. else
  83. {
  84. HouseInfo[HouseCount][Pickup] = CreatePickup(1272,1,pX, pY, pZ);
  85. format(HouseInfo[HouseCount][Vlastnik],MAX_PLAYER_NAME,"%s",get);
  86. mysql_fetch_field("Locked",get);
  87. HouseInfo[HouseCount][Zamek] = strval(get);
  88. mysql_fetch_field("Owner",get);
  89. format(sx,100,"Dom č.%d\r\nMajiteľ: %s",HouseCount,get);
  90. HouseInfo[HouseCount][Text] = Create3DTextLabel(sx,0xFF0000FF,pX,pY,pZ+1,50,0);
  91. }
  92. }
  93. printf("Dom %d Vytvorený",HouseCount);
  94. mysql_free_result();
  95. }
  96. else
  97. {
  98. print("<!-- Kapacita AddHouse prekrocena, dum nebyl vytvoren !-->");
  99. }
  100. return 1;
  101. }
  102. //------------------------------------|
  103. public OnPlayerPickUpPickup(playerid, pickupid)
  104. {
  105. for(new h=0;h<HouseCount+1;h++)
  106. {
  107. if(IsPlayerInRangeOfPoint(playerid,3,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]))
  108. {
  109. ShowPlayerDialog(playerid,DIALOG_HOUSE,DIALOG_STYLE_LIST,"Dům","Koupit\nProdat\nZamknout\nOdemknout\nInformace o domu\nVstoupit","Použít","Nic");
  110. }
  111. }
  112. return 1;
  113. }
  114. //------------------------------------|
  115. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  116. {
  117. if(newkeys == KEY_WALK)
  118. {
  119. if(InHouse[playerid] != -1)
  120. {
  121. new HouseId = InHouse[playerid];
  122. if(IsPlayerInRangeOfPoint(playerid,10,HouseInfo[HouseId][i_X],HouseInfo[HouseId][i_Y],HouseInfo[HouseId][i_Z]))
  123. {
  124. SetPlayerPos(playerid,HouseInfo[HouseId][p_X],HouseInfo[HouseId][p_Y],HouseInfo[HouseId][p_Z]);
  125. SetPlayerInterior(playerid,0);
  126. SetPlayerVirtualWorld(playerid,0);
  127. InHouse[playerid] = -1;
  128. }
  129. }
  130. }
  131. return 1;
  132. }
  133. //------------------------------------|
  134. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  135. {
  136. for(new h=0;h<HouseCount+1;h++)
  137. {
  138. if(dialogid == DIALOG_HOUSE)
  139. {
  140. if(response == 1)
  141. {
  142. new Query[600],get[35];
  143. if(listitem == 0)
  144. {
  145. if(GetPlayerMoney(playerid) < HouseInfo[h][Cena]) return SendClientMessage(playerid, 0xFFFFFFFF, "Máš málo peněz !");
  146. if(!IsHouseForSale(h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům již někdo vlastní !");
  147. format(Query, sizeof(Query), "UPDATE domi SET Owner='%s' WHERE `HouseID` = '%d'", HousePlayerName(playerid),h);
  148. mysql_query(Query);
  149. mysql_free_result();
  150. format(Query,sizeof(Query),"SELECT * FROM `domi` WHERE HouseID = '%d'",h);
  151. mysql_query(Query);
  152. mysql_store_result();
  153. if (mysql_num_rows()) mysql_fetch_field("Owner",get);
  154. GivePlayerMoney(playerid, -HouseInfo[h][Cena]);
  155. SendClientMessage(playerid, 0xFFFFFFFF, "Pořidil jsi si dům !");
  156. new sx[100];
  157. format(sx,100,"Dom č.%d\r\nMajiteľ: %s",h,get);
  158. Update3DTextLabelText(HouseInfo[h][Text],0xFF0000FF,sx);
  159. DestroyPickup(HouseInfo[h][Pickup]);
  160. DestroyDynamicMapIcon(HouseInfo[h][Ikonka]);
  161. HouseInfo[h][Pickup] = CreatePickup(1272,1,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]);
  162. mysql_free_result();
  163. }
  164. else if(listitem == 1)
  165. {
  166. if(!IsPlayerHouseOwner(playerid,h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");
  167. format(Query, sizeof(Query), "UPDATE domi SET Owner='none' WHERE `HouseID` = '%d'",h);
  168. mysql_query(Query);
  169. mysql_free_result();
  170. GivePlayerMoney(playerid, HouseInfo[h][Cena]/2);
  171. SendClientMessage(playerid, 0xFFFFFFFF, "Dům prodán, byla ti vrácena cena !");
  172. new sx[100];
  173. format(sx,100,"Dom č.%d\r\nMajiteľ: Nikto\r\nCena: %d",h,HouseInfo[h][Cena]);
  174. Update3DTextLabelText(HouseInfo[h][Text],0xFF0000FF,sx);
  175. DestroyPickup(HouseInfo[h][Pickup]);
  176. HouseInfo[h][Pickup] = CreatePickup(1273,1,HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z]);
  177. HouseInfo[h][Ikonka] = CreateDynamicMapIcon(HouseInfo[h][p_X],HouseInfo[h][p_Y],HouseInfo[h][p_Z], 31, 0);
  178. }
  179. else if(listitem == 2)
  180. {
  181. if(!IsPlayerHouseOwner(playerid,h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");
  182. format(Query, sizeof(Query), "UPDATE domi SET Locked='1' WHERE `HouseID` = '%d'",h);
  183. mysql_query(Query);
  184. mysql_free_result();
  185. HouseInfo[h][Zamek] = 1;
  186. SendClientMessage(playerid, 0xFFFFFFFF, "Dům zamknut !");
  187. }
  188. else if(listitem == 3)
  189. {
  190. if(!IsPlayerHouseOwner(playerid,h)) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům není tvůj !");
  191. SendClientMessage(playerid, 0xFFFFFFFF, "Dům odemknut !");
  192. format(Query, sizeof(Query), "UPDATE domi SET Locked='0' WHERE `HouseID` = '%d'",h);
  193. mysql_query(Query);
  194. mysql_free_result();
  195. HouseInfo[h][Zamek] = 0;
  196. }
  197. else if(listitem == 4)
  198. {
  199. SendClientMessage(playerid, 0xFFFFFFFF, "Informace o domu:");
  200. if(HouseInfo[h][Zamek] == 1)
  201. {
  202. SendClientMessage(playerid,0xFFFFFFFF,"Zámek: Zamknutý.");
  203. }
  204. else
  205. {
  206. SendClientMessage(playerid,0xFFFFFFFF,"Zámek: Odemknutý.");
  207. }
  208. if (IsHouseForSale(h))
  209. {
  210. SendClientMessage(playerid,0xFFFFFFFF,"K Prodeji: Ano");
  211. }
  212. else
  213. {
  214. SendClientMessage(playerid,0xFFFFFFFF,"K Prodeji: Ne");
  215. }
  216. }
  217. else if(listitem == 5)
  218. {
  219. if(HouseInfo[h][Zamek] == 1) return SendClientMessage(playerid, 0xFFFFFFFF, "Tento dům je zamknut !");
  220. SetPlayerPos(playerid, HouseInfo[h][i_X],HouseInfo[h][i_Y],HouseInfo[h][i_Z]);
  221. SetPlayerInterior(playerid, HouseInfo[h][iin]);
  222. InHouse[playerid] = h;
  223. SendClientMessage(playerid, 0xFFFFFFFF, "Dům opustíš L.ALT !");
  224. }
  225.  
  226. }
  227. }
  228. }
  229. return 1;
  230. }
  231.  
  232. main()
  233. {
  234.  
  235. }
  236.  
  237. public OnGameModeInit()
  238. {
  239. mysql_init(LOG_ONLY_ERRORS,1);
  240. mysql_connect(MySQL_IP,MySQL_Login,MySQL_Password,MySQL_db);
  241.  
  242. AddPlayerClass(299, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  243. AddHouse(2033.3870,1368.0004,10.8203, 2324.419921,-1145.568359,1050.710083,12,1);
  244. AddHouse(2060.3870,1368.0004,10.8203, 2215.454833,-1147.475585,1025.796875,15,1);
  245. AddHouse(2070.3870,1368.0004,10.8203, 833.269775,10.588416,1004.179687,3,1);
  246. return 1;
  247. }
  248.  
  249. public OnPlayerSpawn(playerid)
  250. {
  251. GivePlayerMoney(playerid,5000);
  252. return 1;
  253. }
  254.  
  255. public OnGameModeExit()
  256. {
  257.  
  258. return 1;
  259. }
  260.  
  261.  
  262. //------------------------------------|
  263. stock HousePlayerName(playerid)
  264. {
  265. new name[MAX_PLAYER_NAME];
  266. GetPlayerName(playerid,name,MAX_PLAYER_NAME);
  267. return name;
  268. }
  269. stock IsPlayerHouseOwner(playerid,houseid)
  270. {
  271. new Query[600],get[35];
  272. format(Query,sizeof(Query),"SELECT * FROM `domi` WHERE HouseID = '%d'",houseid);
  273. mysql_query(Query);
  274. mysql_store_result();
  275. if(mysql_num_rows()) mysql_fetch_field("Owner",get);
  276. if(strcmp(HousePlayerName(playerid),get, false) == 0) return true;
  277. mysql_free_result();
  278. return false;
  279. }
  280.  
  281. stock IsHouseForSale(houseid)
  282. {
  283. new Query[600],get[35];
  284. format(Query,sizeof(Query),"SELECT * FROM `domi` WHERE HouseID = '%d'",houseid);
  285. mysql_query(Query);
  286. mysql_store_result();
  287. if(mysql_num_rows()) mysql_fetch_field("Owner",get);
  288. if(strcmp("none",get, false) == 0) return true;
  289. mysql_free_result();
  290. return false;
  291. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement