Guest User

Untitled

a guest
Nov 29th, 2011
541
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.35 KB | None | 0 0
  1. // House system 0.2v - this script has coded by `bbs22`\ Alon_S
  2. #include "a_samp.inc"
  3. #include "dini.inc"
  4. #include "cpstream.inc"
  5. #define mainFile "HousesSystem/mainFile.ini"
  6. #define maxHouses 200
  7. #define maxRooms 10
  8. enum hinfo
  9. {
  10. exist,
  11. Float:opos[4],
  12. Float:ipos[3],
  13. price,
  14. rooms,
  15. owner[MAX_PLAYER_NAME],
  16. interior
  17. }
  18. enum pinfo
  19. {
  20. houseid,
  21. ohouse,
  22. key[maxHouses],
  23. entered,
  24. Float:pos[3],
  25. spawn,
  26. watching
  27. }
  28. new houseInfo[maxHouses][hinfo];
  29. new playerInfo[MAX_PLAYERS][pinfo];
  30. new rp[maxRooms];
  31. new house[maxHouses];
  32. new houses;
  33. new Text3D:htd[maxHouses];
  34. new str[128];
  35. public OnFilterScriptInit()
  36. {
  37. houses = dini_Int(mainFile, "Houses");
  38. for(new i; i < maxRooms; i++)
  39. {
  40. format(str, sizeof(str), "%dR", i);
  41. rp[i] = dini_Int(mainFile, str);
  42. }
  43. for(new i; i < maxHouses; i++)
  44. {
  45. if(dini_Exists(HouseFile(i)))
  46. {
  47. houseInfo[i][exist] = 1;
  48. houseInfo[i][opos][0] = dini_Float(HouseFile(i), "OX");
  49. houseInfo[i][opos][1] = dini_Float(HouseFile(i), "OY");
  50. houseInfo[i][opos][2] = dini_Float(HouseFile(i), "OZ");
  51. houseInfo[i][opos][3] = dini_Float(HouseFile(i), "OA");
  52. houseInfo[i][ipos][0] = dini_Float(HouseFile(i), "IX");
  53. houseInfo[i][ipos][1] = dini_Float(HouseFile(i), "IY");
  54. houseInfo[i][ipos][2] = dini_Float(HouseFile(i), "IZ");
  55. houseInfo[i][price] = dini_Int(HouseFile(i), "Price");
  56. houseInfo[i][rooms] = dini_Int(HouseFile(i), "Rooms");
  57. houseInfo[i][interior] = dini_Int(HouseFile(i), "Interior");
  58. format(houseInfo[i][owner], MAX_PLAYER_NAME, "%s", dini_Get(HouseFile(i), "Owner"));
  59. house[i] = CPS_AddCheckpoint(houseInfo[i][opos][0], houseInfo[i][opos][1], houseInfo[i][opos][2], 1.5, 100);
  60. if(strlen(houseInfo[i][owner]) < 1) format(str, sizeof(str), "%d :מספר הבית\n\r$%d :מחיר הבית\n\r%d :מספר חדרים", i, houseInfo[i][price], houseInfo[i][rooms]);
  61. else format(str, sizeof(str), "%d :מספר הבית\n\r%s הבית שייך ל", i, houseInfo[i][owner]);
  62. htd[i] = Create3DTextLabel(str, 0x87CEFFFF, houseInfo[i][opos][0], houseInfo[i][opos][1], houseInfo[i][opos][2], 40.0, 0);
  63. }
  64. }
  65. }
  66. public OnFilterScriptExit()
  67. {
  68. dini_IntSet(mainFile, "Houses", houses);
  69. for(new i; i < maxRooms; i++)
  70. {
  71. format(str, sizeof(str), "%dR", i);
  72. dini_IntSet(mainFile, str, rp[i]);
  73. }
  74. for(new i; i < maxHouses; i++)
  75. {
  76. if(houseInfo[i][exist])
  77. {
  78. if(!dini_Exists(HouseFile(i))) dini_Create(HouseFile(i));
  79. dini_FloatSet(HouseFile(i), "OX", houseInfo[i][opos][0]);
  80. dini_FloatSet(HouseFile(i), "OY", houseInfo[i][opos][1]);
  81. dini_FloatSet(HouseFile(i), "OZ", houseInfo[i][opos][2]);
  82. dini_FloatSet(HouseFile(i), "OA", houseInfo[i][opos][3]);
  83. dini_FloatSet(HouseFile(i), "IX", houseInfo[i][ipos][0]);
  84. dini_FloatSet(HouseFile(i), "IY", houseInfo[i][ipos][1]);
  85. dini_FloatSet(HouseFile(i), "IZ", houseInfo[i][ipos][2]);
  86. dini_IntSet(HouseFile(i), "Price", houseInfo[i][price]);
  87. dini_IntSet(HouseFile(i), "Rooms", houseInfo[i][rooms]);
  88. dini_IntSet(HouseFile(i), "Interior", houseInfo[i][interior]);
  89. dini_Set(HouseFile(i), "Owner", houseInfo[i][owner]);
  90. }
  91. }
  92. for(new i; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerDisconnect(i,1);
  93. }
  94. public OnPlayerConnect(playerid)
  95. {
  96. playerInfo[playerid][houseid] = dini_Isset(GetPlayerFile(playerid), "House")? dini_Int(GetPlayerFile(playerid), "House") : 0;
  97. playerInfo[playerid][ohouse] = 0;
  98. playerInfo[playerid][entered] = 0;
  99. playerInfo[playerid][watching] = 0;
  100. playerInfo[playerid][spawn] = dini_Int(GetPlayerFile(playerid), "Spawn")? 1 : 0;
  101. for(new i; i < maxHouses; i++)
  102. {
  103. format(str, sizeof(str), "Key%d", i);
  104. if(dini_Isset(GetPlayerFile(playerid), str)) playerInfo[playerid][key][i] = 1;
  105. }
  106. return !dini_Exists(GetPlayerFile(playerid))? dini_Create(GetPlayerFile(playerid)) : 1;
  107. }
  108. public OnPlayerDisconnect(playerid, reason)
  109. {
  110. if(playerInfo[playerid][houseid] != 0)
  111. {
  112. dini_IntSet(GetPlayerFile(playerid), "House", playerInfo[playerid][houseid]);
  113. dini_IntSet(GetPlayerFile(playerid), "Spawn", playerInfo[playerid][spawn]);
  114. }
  115. else dini_Unset(GetPlayerFile(playerid), "House");
  116. for(new i; i < maxHouses; i++)
  117. {
  118. format(str, sizeof(str), "Key%d", i);
  119. if(playerInfo[playerid][key][i])
  120. {
  121. dini_IntSet(GetPlayerFile(playerid), str, 1);
  122. playerInfo[playerid][key][i] = 0;
  123. }
  124. else dini_Unset(GetPlayerFile(playerid), str);
  125. }
  126. }
  127. public OnPlayerSpawn(playerid)
  128. {
  129. if(playerInfo[playerid][houseid] != 0 && playerInfo[playerid][spawn])
  130. {
  131. SetPlayerInterior(playerid, houseInfo[playerInfo[playerid][houseid]][interior]);
  132. SetPlayerPos(playerid, houseInfo[playerInfo[playerid][houseid]][ipos][0], houseInfo[playerInfo[playerid][houseid]][ipos][1], houseInfo[playerInfo[playerid][houseid]][ipos][2]);
  133. SetPlayerVirtualWorld(playerid, playerInfo[playerid][houseid]);
  134. playerInfo[playerid][entered] = 1;
  135. SendClientMessage(playerid, 0xFFFF00AA, "/house out - לצאת מהבית");
  136. }
  137. }
  138. public OnPlayerEnterCheckpoint(playerid)
  139. {
  140. for(new i; i < maxHouses; i++)
  141. {
  142. if(houseInfo[i][exist] && CPS_IsPlayerInCheckpoint(playerid, house[i]))
  143. {
  144. playerInfo[playerid][ohouse] = i;
  145. if(strlen(houseInfo[i][owner]) > 1)
  146. {
  147. if(!strcmp(houseInfo[i][owner], GetName(playerid)))
  148. {
  149. GetPlayerPos(playerid, playerInfo[playerid][pos][0], playerInfo[playerid][pos][1], playerInfo[playerid][pos][2]);
  150. SetPlayerVirtualWorld(playerid, i);
  151. playerInfo[playerid][entered] = 1;
  152. SetPlayerInterior(playerid, houseInfo[i][interior]);
  153. SetPlayerPos(playerid, houseInfo[i][ipos][0], houseInfo[i][ipos][1], houseInfo[i][ipos][2]);
  154. format(str, sizeof(str), ".%s ,הוכנסת אוטומאטית לביתך", GetName(playerid));
  155. SendClientMessage(playerid, 0xFF9900AA, str);
  156. }
  157. }
  158. }
  159. }
  160. }
  161. public OnPlayerLeaveCheckpoint(playerid) playerInfo[playerid][ohouse] = 0;
  162. public OnPlayerCommandText(playerid, cmdtext[])
  163. {
  164. new cmd[256];
  165. new idx;
  166. cmd = strtok(cmdtext, idx);
  167. if(!strcmp("/house", cmd, true))
  168. {
  169. cmd = strtok(cmdtext, idx);
  170. if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house [command] :שימוש");
  171. if(!strcmp("create", cmd, true))
  172. {
  173. assert(IsPlayerAdmin(playerid));
  174. houseInfo[++houses][exist] = 1;
  175. new Float:ppos[3];
  176. GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
  177. houseInfo[houses][opos][0] = ppos[0];
  178. houseInfo[houses][opos][1] = ppos[1];
  179. houseInfo[houses][opos][2] = ppos[2];
  180. Delete3DTextLabel(htd[houses]);
  181. format(str, sizeof(str), "%d :מספר הבית\n\r$%d :מחיר הבית\n\r%d :מספר חדרים", houses, houseInfo[houses][price], houseInfo[houses][rooms]);
  182. htd[houses] = Create3DTextLabel(str, 0x87CEFFFF, houseInfo[houses][opos][0], houseInfo[houses][opos][1], houseInfo[houses][opos][2], 40.0, 0);
  183. house[houses] = CPS_AddCheckpoint(ppos[0], ppos[1], ppos[2], 1.5, 100);
  184. format(str, sizeof(str), ".%d יצרת את בית מספר", houses);
  185. return SendClientMessage(playerid, 0x16EB43FF, str);
  186. }
  187. if(!strcmp("delete", cmd, true))
  188. {
  189. assert(IsPlayerAdmin(playerid));
  190. cmd = strtok(cmdtext, idx);
  191. if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house delete [house id] :שימוש");
  192. new hid = strval(cmd);
  193. if(!houseInfo[hid][exist]) return SendClientMessage(playerid, 0xFF0000AA, ".אין בית כזה");
  194. houseInfo[hid][exist] = 0;
  195. CPS_RemoveCheckpoint(house[hid]);
  196. Delete3DTextLabel(htd[hid]);
  197. for(new i; i < MAX_PLAYERS; i++)
  198. {
  199. if(IsPlayerConnected(i))
  200. {
  201. if(playerInfo[i][houseid] != 0 && playerInfo[i][houseid] == hid) playerInfo[i][houseid] = 0;
  202. for(new k; k < maxHouses; k++) if(playerInfo[i][key][k] == hid) playerInfo[i][key][k] = 0;
  203. }
  204. }
  205. format(str, sizeof(str), ".%d מחקת את בית מספר", hid);
  206. return SendClientMessage(playerid, 0x16EB43FF, str);
  207. }
  208. if(!strcmp("price", cmd, true))
  209. {
  210. assert(IsPlayerAdmin(playerid));
  211. cmd = strtok(cmdtext, idx);
  212. if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house price [house id] [price] :שימוש");
  213. new hid = strval(cmd);
  214. if(!houseInfo[hid][exist]) return SendClientMessage(playerid, 0xFF0000AA, ".אין בית כזה");
  215. cmd = strtok(cmdtext, idx);
  216. if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house price [house id] [price] :שימוש");
  217. new hprice = strval(cmd);
  218. if(hprice < 1) return SendClientMessage(playerid, 0xFFFFFFAA, ".מחיר שגוי");
  219. houseInfo[hid][price] = hprice;
  220. Delete3DTextLabel(htd[hid]);
  221. if(strlen(houseInfo[hid][owner]) < 1) format(str, sizeof(str), "%d :מספר הבית\n\r$%d :מחיר הבית\n\r%d :מספר חדרים", hid, houseInfo[hid][price], houseInfo[hid][rooms]);
  222. else format(str, sizeof(str), "%d :מספר הבית\n\r%s הבית שייך ל", hid, houseInfo[hid][owner]);
  223. htd[hid] = Create3DTextLabel(str, 0x87CEFFFF, houseInfo[hid][opos][0], houseInfo[hid][opos][1], houseInfo[hid][opos][2], 40.0, 0);
  224. format(str, sizeof(str), ".ערכת לבית מספר %d את המחיר ל $%d", hid, hprice);
  225. return SendClientMessage(playerid, 0x16EB43FF, str);
  226. }
  227. if(!strcmp("rooms", cmd, true))
  228. {
  229. assert(IsPlayerAdmin(playerid));
  230. cmd = strtok(cmdtext, idx);
  231. if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house rooms [house id] [rooms] :שימוש");
  232. new hid = strval(cmd);
  233. if(!houseInfo[hid][exist]) return SendClientMessage(playerid, 0xFF0000AA, ".אין בית כזה");
  234. cmd = strtok(cmdtext, idx);
  235. if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house rooms [house id] [rooms] :שימוש");
  236. new hrooms = strval(cmd);
  237. if(hrooms > maxRooms) return SendClientMessage(playerid, 0xFF0000AA, ".עברת את מגבלת החדרים");
  238. houseInfo[hid][rooms] = hrooms;
  239. houseInfo[hid][price] = rp[hrooms];
  240. Delete3DTextLabel(htd[hid]);
  241. if(strlen(houseInfo[hid][owner]) < 1) format(str, sizeof(str), "%d :מספר הבית\n\r$%d :מחיר הבית\n\r%d :מספר חדרים", hid, houseInfo[hid][price], houseInfo[hid][rooms]);
  242. else format(str, sizeof(str), "%d :מספר הבית\n\r%s הבית שייך ל", hid, houseInfo[hid][owner]);
  243. htd[hid] = Create3DTextLabel(str, 0x87CEFFFF, houseInfo[hid][opos][0], houseInfo[hid][opos][1], houseInfo[hid][opos][2], 40.0, 0);
  244. format(str, sizeof(str), ".ערכת לבית מספר %d את מספר החדרים ל %d", hid, hrooms);
  245. return SendClientMessage(playerid, 0x16EB43FF, str);
  246. }
  247. if(!strcmp("roomprice", cmd, true))
  248. {
  249. assert(IsPlayerAdmin(playerid));
  250. cmd = strtok(cmdtext, idx);
  251. if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house roomprice [rooms] [price] :שימוש");
  252. new hrooms = strval(cmd);
  253. if(hrooms > maxRooms) return SendClientMessage(playerid, 0xFF0000AA, ".עברת את מגבלת החדרים");
  254. cmd = strtok(cmdtext, idx);
  255. if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house roomprice [rooms] [price] :שימוש");
  256. new hprice = strval(cmd);
  257. if(hprice < 1) return SendClientMessage(playerid, 0xFFFFFFAA, ".מחיר שגוי");
  258. rp[hrooms] = hprice;
  259. for(new i; i < maxHouses; i++)
  260. {
  261. if(houseInfo[i][exist] && houseInfo[i][rooms] == hrooms)
  262. {
  263. houseInfo[i][price] = hprice;
  264. Delete3DTextLabel(htd[i]);
  265. if(strlen(houseInfo[i][owner]) < 1) format(str, sizeof(str), "%d :מספר הבית\n\r$%d :מחיר הבית\n\r%d :מספר חדרים", i, houseInfo[i][price], houseInfo[i][rooms]);
  266. else format(str, sizeof(str), "%d :מספר הבית\n\r%s הבית שייך ל", i, houseInfo[i][owner]);
  267. htd[i] = Create3DTextLabel(str, 0x87CEFFFF, houseInfo[i][opos][0], houseInfo[i][opos][1], houseInfo[i][opos][2], 40.0, 0);
  268. }
  269. }
  270. format(str, sizeof(str), ".ערכת את מחירי הבתים בעלי %d חדרים ל $%d", hrooms, hprice);
  271. return SendClientMessage(playerid, 0x16EB43FF, str);
  272. }
  273. if(!strcmp("in", cmd, true))
  274. {
  275. assert(IsPlayerAdmin(playerid));
  276. cmd = strtok(cmdtext, idx);
  277. if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house inhouse [house id] :שימוש");
  278. new hid = strval(cmd);
  279. if(!houseInfo[hid][exist]) return SendClientMessage(playerid, 0xFF0000AA, ".אין בית כזה");
  280. new Float:ppos[3];
  281. GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
  282. houseInfo[hid][ipos][0] = ppos[0];
  283. houseInfo[hid][ipos][1] = ppos[1];
  284. houseInfo[hid][ipos][2] = ppos[2];
  285. houseInfo[hid][interior] = GetPlayerInterior(playerid);
  286. format(str, sizeof(str), ".ערכת לבית מספר %d את מיקום הבית מבפנים", hid);
  287. return SendClientMessage(playerid, 0x16EB43FF, str);
  288. }
  289. if(!strcmp("buy", cmd, true))
  290. {
  291. if(!playerInfo[playerid][ohouse]) return SendClientMessage(playerid, 0xFF0000AA, ".עליך לעמוד על צ'קפוינט של בית");
  292. if(playerInfo[playerid][houseid] != 0) return SendClientMessage(playerid, 0xFF0000AA, ".כבר יש לך בית");
  293. if(GetPlayerMoney(playerid) < houseInfo[playerInfo[playerid][ohouse]][price])
  294. {
  295. format(str, sizeof(str), ".$%d בית זה עולה", houseInfo[playerInfo[playerid][ohouse]][price]);
  296. return SendClientMessage(playerid, 0xFF0000AA, str);
  297. }
  298. format(houseInfo[playerInfo[playerid][ohouse]][owner], MAX_PLAYER_NAME, GetName(playerid));
  299. playerInfo[playerid][houseid] = playerInfo[playerid][ohouse];
  300. GivePlayerMoney(playerid, -houseInfo[playerInfo[playerid][ohouse]][price]);
  301. Delete3DTextLabel(htd[playerInfo[playerid][ohouse]]);
  302. format(str, sizeof(str), "%d :מספר הבית\n\r%s הבית שייך ל", playerInfo[playerid][ohouse], houseInfo[playerInfo[playerid][ohouse]][owner]);
  303. htd[playerInfo[playerid][ohouse]] = Create3DTextLabel(str, 0x87CEFFFF, houseInfo[playerInfo[playerid][ohouse]][opos][0], houseInfo[playerInfo[playerid][ohouse]][opos][1], houseInfo[playerInfo[playerid][ohouse]][opos][2], 40.0, 0);
  304. format(str, sizeof(str), ".%d קנית את בית מספר", playerInfo[playerid][ohouse]);
  305. return SendClientMessage(playerid, 0x16EB43FF, str);
  306. }
  307. if(!strcmp("sell", cmd, true))
  308. {
  309. if(!playerInfo[playerid][houseid]) return SendClientMessage(playerid, 0xFF0000AA, ".אין לך בית");
  310. Delete3DTextLabel(htd[playerInfo[playerid][houseid]]);
  311. format(str, sizeof(str), "%d :מספר הבית\n\r$%d :מחיר הבית\n\r%d :מספר חדרים", playerInfo[playerid][houseid], houseInfo[playerInfo[playerid][houseid]][price], houseInfo[playerInfo[playerid][houseid]][rooms]);
  312. htd[playerInfo[playerid][houseid]] = Create3DTextLabel(str, 0x87CEFFFF, houseInfo[playerInfo[playerid][houseid]][opos][0], houseInfo[playerInfo[playerid][houseid]][opos][1], houseInfo[playerInfo[playerid][houseid]][opos][2], 40.0, 0);
  313. GivePlayerMoney(playerid, houseInfo[playerInfo[playerid][houseid]][price]);
  314. format(houseInfo[playerInfo[playerid][houseid]][owner], MAX_PLAYER_NAME, #);
  315. playerInfo[playerid][houseid] = 0;
  316. return SendClientMessage(playerid, 0x16EB43FF, ".הבית שלך נמכר בהצלחה");
  317. }
  318. if(!strcmp("key", cmd, true))
  319. {
  320. if(!playerInfo[playerid][houseid]) return SendClientMessage(playerid, 0xFF0000AA, ".אין לך בית");
  321. cmd = strtok(cmdtext, idx);
  322. if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFFAA, "/house key [id] :שימוש");
  323. new id = strval(cmd);
  324. if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000AA, ".שחקן לא מחובר");
  325. if(playerInfo[id][key][playerInfo[playerid][houseid]])
  326. {
  327. playerInfo[id][key][playerInfo[playerid][houseid]] = 0;
  328. format(str, sizeof(str), ".את המפתח לבית שלך %s לקחת ל", GetName(id));
  329. SendClientMessage(playerid, 0x33CCFFAA, str);
  330. format(str, sizeof(str), ".לקח ממך את המפתח לבית שלו %s", GetName(playerid));
  331. SendClientMessage(id, 0x33CCFFAA, str);
  332. }
  333. else
  334. {
  335. playerInfo[id][key][playerInfo[playerid][houseid]] = 1;
  336. format(str, sizeof(str), ".מפתח לבית שלך %s הבאת ל", GetName(id));
  337. SendClientMessage(playerid, 0x33CCFFAA, str);
  338. format(str, sizeof(str), ".הביא לך מפתח לבית שלו %s", GetName(playerid));
  339. SendClientMessage(id, 0x33CCFFAA, str);
  340. }
  341. return 1;
  342. }
  343. if(!strcmp("enter", cmd, true))
  344. {
  345. if(playerInfo[playerid][entered]) return SendClientMessage(playerid, 0xFF0000AA, ".אתה כבר בתוך הבית");
  346. if(!playerInfo[playerid][ohouse]) return SendClientMessage(playerid, 0xFF0000AA, ".עליך לעמוד על צ'קפוינט של בית");
  347. if((strlen(houseInfo[playerInfo[playerid][ohouse]][owner]) > 1 && !strcmp(houseInfo[playerInfo[playerid][ohouse]][owner], GetName(playerid))) || (playerInfo[playerid][key][playerInfo[playerid][ohouse]]))
  348. {
  349. new oh = playerInfo[playerid][ohouse];
  350. GetPlayerPos(playerid, playerInfo[playerid][pos][0], playerInfo[playerid][pos][1], playerInfo[playerid][pos][2]);
  351. SetPlayerVirtualWorld(playerid, oh);
  352. playerInfo[playerid][entered] = 1;
  353. SetPlayerInterior(playerid, houseInfo[oh][interior]);
  354. SetPlayerPos(playerid, houseInfo[oh][ipos][0], houseInfo[oh][ipos][1], houseInfo[oh][ipos][2]);
  355. format(str, sizeof(str), ".%s ברוך הבא לבית", houseInfo[oh][owner]);
  356. SendClientMessage(playerid, 0xFF9900AA, str);
  357. SendClientMessage(playerid, 0xFFFF00AA, "/house out - לצאת מהבית");
  358. }
  359. return 1;
  360. }
  361. if(!strcmp("out", cmd, true))
  362. {
  363. if(!playerInfo[playerid][entered]) return SendClientMessage(playerid, 0xFF0000AA, ".אתה לא בתוך בית");
  364. SetPlayerVirtualWorld(playerid, 0);
  365. playerInfo[playerid][entered] = 0;
  366. SetPlayerInterior(playerid, 0);
  367. SetPlayerPos(playerid, playerInfo[playerid][pos][0] - 5, playerInfo[playerid][pos][1], playerInfo[playerid][pos][2]);
  368. return SendClientMessage(playerid, 0xFF9900AA, ".יצאת בהצלחה מהבית");
  369. }
  370. if(!strcmp("spawn", cmd, true))
  371. {
  372. if(!playerInfo[playerid][houseid]) return SendClientMessage(playerid, 0xFF0000AA, ".אין לך בית");
  373. playerInfo[playerid][spawn] = playerInfo[playerid][spawn]? 0 : 1;
  374. return SendClientMessage(playerid, 0xFF9900AA, playerInfo[playerid][spawn]? (".הספאונים הבאים שלך יהיו בבית שלך מעכשיו") : (".ביטלת את הספאון אצלך בבית"));
  375. }
  376. if(!strcmp("watch", cmd, true))
  377. {
  378. if(!playerInfo[playerid][ohouse]) return SendClientMessage(playerid, 0xFF0000AA, ".עליך לעמוד על צ'קפוינט של בית");
  379. if(playerInfo[playerid][watching])
  380. {
  381. SetPlayerPos(playerid, houseInfo[playerInfo[playerid][ohouse]][opos][0], houseInfo[playerInfo[playerid][ohouse]][opos][1], houseInfo[playerInfo[playerid][ohouse]][opos][2]);\
  382. SetPlayerFacingAngle(playerid, houseInfo[playerInfo[playerid][ohouse]][opos][3]);
  383. SetCameraBehindPlayer(playerid);
  384. playerInfo[playerid][watching] = 0;
  385. TogglePlayerControllable(playerid, 1);
  386. SetPlayerInterior(playerid, 0);
  387. }
  388. else
  389. {
  390. SetPlayerCameraPos(playerid, houseInfo[playerInfo[playerid][ohouse]][ipos][0], houseInfo[playerInfo[playerid][ohouse]][ipos][1], houseInfo[playerInfo[playerid][ohouse]][ipos][2]);
  391. SetPlayerCameraLookAt(playerid, houseInfo[playerInfo[playerid][ohouse]][ipos][0], houseInfo[playerInfo[playerid][ohouse]][ipos][1], houseInfo[playerInfo[playerid][ohouse]][ipos][2]);
  392. playerInfo[playerid][watching] = 1;
  393. TogglePlayerControllable(playerid, 0);
  394. SetPlayerInterior(playerid, houseInfo[playerInfo[playerid][ohouse]][interior]);
  395. }
  396. return 1;
  397. }
  398. if(!strcmp("tele", cmd, true))
  399. {
  400. if(!playerInfo[playerid][houseid]) return SendClientMessage(playerid, 0xFF0000AA, ".אין לך בית");
  401. SetPlayerInterior(playerid, 0);
  402. SetPlayerVirtualWorld(playerid, 0);
  403. SetPlayerPos(playerid, houseInfo[playerInfo[playerid][houseid]][opos][0] - 5, houseInfo[playerInfo[playerid][houseid]][opos][1], houseInfo[playerInfo[playerid][houseid]][opos][2]);
  404. SetPlayerFacingAngle(playerid, houseInfo[playerInfo[playerid][houseid]][opos][3]);
  405. return SendClientMessage(playerid, 0xFF9900AA, ".שוגרת אל מחוץ לבית שלך");
  406. }
  407. return SendClientMessage(playerid, 0xFFFFFFAA, "/house [command] :שימוש");
  408. }
  409. return 0;
  410. }
  411. stock GetPlayerFile(playerid)
  412. {
  413. new pfile[64];
  414. format(pfile, sizeof(pfile), "HousesSystem/Players/%s.ini", GetName(playerid));
  415. return pfile;
  416. }
  417. stock GetName(playerid)
  418. {
  419. new name[MAX_PLAYER_NAME];
  420. GetPlayerName(playerid, name, sizeof(name));
  421. return name;
  422. }
  423. stock HouseFile(hid)
  424. {
  425. new hfile[64];
  426. format(hfile, sizeof(hfile), "HousesSystem/Houses/h%d.ini", hid);
  427. return hfile;
  428. }
  429.  
Advertisement
Add Comment
Please, Sign In to add comment