Advertisement
Guest User

Air Advanced Family System

a guest
Apr 2nd, 2016
1,003
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 97.79 KB | None | 0 0
  1. // This Filterscript Created By Airblog v0.1
  2. // special thanks Gammix , y_less for sscanf , zeex for zcmd , dini
  3. #define FILTERSCRIPT
  4. #define MAX_TURFS 41 // Ignore 0
  5. #define MAX_FAMILIES 11 // Ignore 0
  6. #define MAX_HQ 51
  7.  
  8.  
  9. //colors
  10. #define COLOR_WHITE 0xFFFFFFFF
  11. #define WARN "{FF6347}"
  12. #define HQ "{00B200}"
  13. #define SCM SendClientMessage
  14. #define COLOR_LIGHTBLUE 0x33CCFFFF
  15. #define COLOR_ORANGE 0xFF9900FF
  16. #define COLOR_GREY 0xAFAFAFFF
  17. #define COLOR_PURPLE 0xC2A2DAFF
  18. #define COLOR_CYAN 0x01FCFFFF
  19. #define COLOR_LIGHTRED 0xFF6347FF
  20.  
  21. #include <a_samp>
  22. #include <zcmd>
  23. #include <sscanf2>
  24. #include <gangzone>// Interactive Gangzones by Gammix
  25. #include <dini>
  26. #include <foreach>
  27. #pragma tabsize 0
  28.  
  29.  
  30. // Family Vehicles
  31. new Fam[MAX_VEHICLES];
  32. new ZoneOnOff[MAX_PLAYERS];
  33.  
  34.  
  35. #if defined FILTERSCRIPT
  36.  
  37. public OnFilterScriptInit()
  38. {
  39. print("\n--------------------------------------");
  40. print("----------AirGangZoneMaker----------");
  41. print("--------------------------------------\n");
  42. LoadTurfs();
  43. LoadFamilies();
  44. LoadHq();
  45. SetTimer("TurfTimer",1000,true);
  46. return 1;
  47. }
  48.  
  49. public OnFilterScriptExit()
  50. {
  51. SaveFamilies();
  52. SaveTurfs();
  53. SaveHq();
  54. return 1;
  55. }
  56.  
  57. #else
  58.  
  59. main()
  60. {
  61. print("\n----------------------------------");
  62. print("----------AirGangZoneMaker----------");
  63. print("------------------------------------\n");
  64. }
  65.  
  66. #endif
  67.  
  68. forward IsPlayerInTurf(playerid, turfid);
  69. forward GetPlayerTurf(playerid);
  70.  
  71. static TurfAttacker[MAX_TURFS],
  72. TurfKhod[MAX_TURFS],
  73. KillsAttacker[MAX_PLAYERS],
  74. DeathsAttacker[MAX_PLAYERS],
  75. OurKills[MAX_PLAYERS],
  76. OurDeaths[MAX_PLAYERS],
  77. OnWar[MAX_PLAYERS],
  78. KillsAttackerturf[MAX_TURFS],
  79. DeathsAttackerturf[MAX_TURFS],
  80. OurKillsturf[MAX_TURFS],
  81. TurfReload[MAX_TURFS],
  82. OurDeathsturf[MAX_TURFS],
  83. AttackerScore[MAX_TURFS],
  84. OurScore[MAX_TURFS],
  85. TurfTime[MAX_TURFS];
  86.  
  87. new fInvited[MAX_PLAYERS];
  88. new fInviter[MAX_PLAYERS];
  89. new Family[MAX_PLAYERS];
  90. new pskin[MAX_PLAYERS], fskin[MAX_PLAYERS];
  91.  
  92. // Families
  93. enum famInfo
  94. {
  95. fTaken,
  96. fName[32],
  97. fMOTD[64],
  98. fColor,
  99. fLeader[MAX_PLAYER_NAME],
  100. fMembers,
  101. Float:fSafeX,
  102. Float:fSafeY,
  103. Float:fSafeZ,
  104. fMoney,
  105. fMats,
  106. fWeed,
  107. fCrack,
  108. fRank1[32],
  109. fRank2[32],
  110. fRank3[32],
  111. fRank4[32],
  112. fRank5[32],
  113. fRank6[32],
  114. fSkins[7],
  115. fStrikes,
  116. Text3D:fText,
  117. fPickup,
  118. fVeh[5],
  119. fVehType[5],
  120. Float:fVehCoX[5],
  121. Float:fVehCoY[5],
  122. Float:fVehCoZ[5],
  123. fVehCol1[5],
  124. fVehCol2[5],
  125. Float:fVehRot[5],
  126. fStr,
  127. fHq,
  128. fAttacker,
  129. fUnderAtt
  130. }
  131. new FamInfo[MAX_FAMILIES][famInfo];
  132.  
  133. enum pInfo
  134. {
  135. pFam,pFamRank,pModel
  136. }
  137. new PlayerInfo[MAX_PLAYERS][pInfo];
  138. stock LoadChar(playerid)
  139. {
  140. new file[64];
  141. format(file, sizeof(file), "users/%s.ini", RPNU(playerid));
  142. PlayerInfo[playerid][pFam] = dini_Int(file, "Fam");
  143. PlayerInfo[playerid][pFamRank] = dini_Int(file, "FamRank");
  144. if(PlayerInfo[playerid][pFam] > 0)
  145. {
  146. new famil =PlayerInfo[playerid][pFam];
  147. for(new z = 0;z<30;z++)
  148. {
  149. if(TurfAttacker[z] == famil || TurfKhod[z] == famil)
  150. {
  151. OnWar[playerid] = z;
  152. SCM(playerid,COLOR_LIGHTBLUE,"[Turfs]:"HQ" You have a war type /timeofwar to see more information.");
  153. }
  154. }
  155. }
  156. if(PlayerInfo[playerid][pFam])
  157. {
  158. new idx = PlayerInfo[playerid][pFam];
  159. if(FamInfo[idx][fStrikes] >= 3)
  160. {
  161. PlayerInfo[playerid][pFam] = 0;
  162. PlayerInfo[playerid][pFamRank] = 0;
  163. SendClientMessage(playerid, COLOR_LIGHTBLUE, "Your family has been disbanded due to having 3 strikes, you have been autokicked from the family.");
  164. }
  165. }
  166. SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
  167. return 1;
  168. }
  169. stock SaveChar(playerid)
  170. {
  171. new file[64];
  172. format(file, sizeof(file), "users/%s.ini", RPNU(playerid));
  173. if(!dini_Exists(file)) dini_Create(file);
  174. dini_IntSet(file, "Fam", PlayerInfo[playerid][pFam]);
  175. dini_IntSet(file, "FamRank", PlayerInfo[playerid][pFamRank]);
  176. return 1;
  177. }
  178. enum hqinfo
  179. {
  180. Float:qX,
  181. Float:qY,
  182. Float:qZ,
  183. Float:qiX,
  184. Float:qiZ,
  185. Float:qiY,
  186. qOwner[42],
  187. qVW,
  188. qiVW,
  189. qInt,
  190. qiInt,
  191. Text3D:qTextID,
  192. qText[128],
  193. qPickup,
  194. qPrice,
  195. qPickups
  196. }
  197. new HqInfo[MAX_HQ][hqinfo];
  198.  
  199. stock SaveHq()
  200. {
  201. new idx = 0, File:file;
  202. new string[256];
  203. if(!fexist("Hqs.cfg")) fcreate("Hqs.cfg");
  204. while(idx < MAX_HQ)
  205. {
  206. format(string, sizeof(string), "%f|%f|%f|%f|%f|%f|%s|%d|%d|%d|%d|%s|%d|%d\r\n",
  207. HqInfo[idx][qX],
  208. HqInfo[idx][qY],
  209. HqInfo[idx][qZ],
  210. HqInfo[idx][qiX],
  211. HqInfo[idx][qiY],
  212. HqInfo[idx][qiZ],
  213. HqInfo[idx][qOwner],
  214. HqInfo[idx][qInt],
  215. HqInfo[idx][qVW],
  216. HqInfo[idx][qiVW],
  217. HqInfo[idx][qiInt],
  218. HqInfo[idx][qText],
  219. HqInfo[idx][qPickup],
  220. HqInfo[idx][qPrice]);
  221.  
  222. if(idx == 0)
  223. {
  224. file = fopen("Hqs.cfg", io_write);
  225. }
  226. else
  227. {
  228. file = fopen("Hqs.cfg", io_append);
  229. }
  230. fwrite(file, string);
  231. fclose(file);
  232. idx++;
  233. }
  234. print("HQs saved successfully.");
  235. }
  236.  
  237.  
  238. stock LoadHq()
  239. {
  240. new dinfo[14][128];
  241. new string[256];
  242. if(!fexist("Hqs.cfg")) fcreate("Hqs.cfg");
  243. new File:file = fopen("Hqs.cfg", io_read);
  244. if(file)
  245. {
  246. new idx = 0;
  247. while(idx < MAX_HQ)
  248. {
  249. fread(file, string);
  250. split(string, dinfo, '|');
  251. HqInfo[idx][qX] = floatstr(dinfo[0]);
  252. HqInfo[idx][qY] = floatstr(dinfo[1]);
  253. HqInfo[idx][qZ] = floatstr(dinfo[2]);
  254. HqInfo[idx][qiX] = floatstr(dinfo[3]);
  255. HqInfo[idx][qiY] = floatstr(dinfo[4]);
  256. HqInfo[idx][qiZ] = floatstr(dinfo[5]);
  257. format(HqInfo[idx][qOwner],128, "%s", dinfo[6]);
  258. HqInfo[idx][qInt] = strval(dinfo[7]);
  259. HqInfo[idx][qVW] = strval(dinfo[8]);
  260. HqInfo[idx][qiVW] = strval(dinfo[9]);
  261. HqInfo[idx][qiInt] = strval(dinfo[10]);
  262. HqInfo[idx][qPickup] = strval(dinfo[12]);
  263. format(HqInfo[idx][qText], 128, "%s", dinfo[11]);
  264. HqInfo[idx][qPrice] = strval(dinfo[13]);
  265. if(HqInfo[idx][qPickup])
  266. {
  267. HqInfo[idx][qPickups] = CreateDynamicPickup(HqInfo[idx][qPickup], 1, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ], HqInfo[idx][qVW], HqInfo[idx][qInt]);
  268. if(!strcmp("The State", HqInfo[idx][qOwner]))format(string, sizeof(string), ""HQ"%s (%d)\n[HQ Owner: %s ]\n Status:[For Sell]\nPrice:"WARN"%s", HqInfo[idx][qText] , idx, HqInfo[idx][qOwner],FormatNumber(HqInfo[idx][qPrice]));
  269. else format(string, sizeof(string), ""HQ"%s (%d)\n[HQ Owner: %s ]", HqInfo[idx][qText] , idx, HqInfo[idx][qOwner]);
  270. HqInfo[idx][qTextID] = CreateDynamic3DTextLabel(string, COLOR_WHITE, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ]+0.3, 15);
  271. }
  272. idx++;
  273. }
  274. }
  275. print("HQs loaded successfully.");
  276. return 1;
  277. }
  278.  
  279.  
  280. stock SaveFamilies()
  281. {
  282. new idx = 1, File:file;
  283. new string[1400];
  284. if(!fexist("families.cfg")) fcreate("families.cfg");
  285. while(idx < MAX_FAMILIES)
  286. {
  287. format(string, sizeof(string), "%d|%s|%s|%d|%s|%d|%f|%f|%f|%d|%d|%d|%d|%s|%s|%s|%s|%s|%s|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d\r\n",
  288. FamInfo[idx][fTaken],
  289. FamInfo[idx][fName],
  290. FamInfo[idx][fMOTD],
  291. FamInfo[idx][fColor],
  292. FamInfo[idx][fLeader],
  293. FamInfo[idx][fMembers],
  294. FamInfo[idx][fSafeX],
  295. FamInfo[idx][fSafeY],
  296. FamInfo[idx][fSafeZ],
  297. FamInfo[idx][fMoney],
  298. FamInfo[idx][fMats],
  299. FamInfo[idx][fWeed],
  300. FamInfo[idx][fCrack],
  301. FamInfo[idx][fRank1],
  302. FamInfo[idx][fRank2],
  303. FamInfo[idx][fRank3],
  304. FamInfo[idx][fRank4],
  305. FamInfo[idx][fRank5],
  306. FamInfo[idx][fRank6],
  307. FamInfo[idx][fSkins][0],
  308. FamInfo[idx][fSkins][1],
  309. FamInfo[idx][fSkins][2],
  310. FamInfo[idx][fSkins][3],
  311. FamInfo[idx][fSkins][4],
  312. FamInfo[idx][fSkins][5],
  313. FamInfo[idx][fSkins][6],
  314. FamInfo[idx][fStrikes],
  315. FamInfo[idx][fVehType][0], // Veh 1
  316. FamInfo[idx][fVehType][1], // Veh 2
  317. FamInfo[idx][fVehType][2], // Veh 3
  318. FamInfo[idx][fVehType][3], // Veh 4
  319. FamInfo[idx][fVehType][4], // Veh 5
  320. FamInfo[idx][fVehCoX][0], // Veh 1 Coords
  321. FamInfo[idx][fVehCoY][0],
  322. FamInfo[idx][fVehCoZ][0],
  323. FamInfo[idx][fVehCoX][1], // Veh 2 Coords
  324. FamInfo[idx][fVehCoY][1],
  325. FamInfo[idx][fVehCoZ][1],
  326. FamInfo[idx][fVehCoX][2], // Veh 3 Coords
  327. FamInfo[idx][fVehCoY][2],
  328. FamInfo[idx][fVehCoZ][2],
  329. FamInfo[idx][fVehCoX][3], // Veh 4 Coords
  330. FamInfo[idx][fVehCoY][3],
  331. FamInfo[idx][fVehCoZ][3],
  332. FamInfo[idx][fVehCoX][4], // Veh 5 Coords
  333. FamInfo[idx][fVehCoY][4],
  334. FamInfo[idx][fVehCoZ][4],
  335. FamInfo[idx][fVehRot][0],
  336. FamInfo[idx][fVehRot][1],
  337. FamInfo[idx][fVehRot][2],
  338. FamInfo[idx][fVehRot][3],
  339. FamInfo[idx][fVehRot][4],
  340. FamInfo[idx][fVehCol1][0],
  341. FamInfo[idx][fVehCol1][1],
  342. FamInfo[idx][fVehCol1][2],
  343. FamInfo[idx][fVehCol1][3],
  344. FamInfo[idx][fVehCol1][4],
  345. FamInfo[idx][fVehCol2][0],
  346. FamInfo[idx][fVehCol2][1],
  347. FamInfo[idx][fVehCol2][2],
  348. FamInfo[idx][fVehCol2][3],
  349. FamInfo[idx][fVehCol2][4],
  350. FamInfo[idx][fStr],
  351. FamInfo[idx][fHq],
  352. FamInfo[idx][fAttacker],
  353. FamInfo[idx][fUnderAtt]);
  354. if(idx == 1)
  355. {
  356. file = fopen("families.cfg", io_write);
  357. }
  358. else
  359. {
  360. file = fopen("families.cfg", io_append);
  361. }
  362. fwrite(file, string);
  363. fclose(file);
  364. idx++;
  365. }
  366. print("Families saved successfully.");
  367. }
  368.  
  369. stock LoadFamilies()
  370. {
  371. new finfo[66][48];
  372. new string[512];
  373. if(!fexist("families.cfg")) fcreate("families.cfg");
  374. new File:file = fopen("families.cfg", io_read);
  375. if(file)
  376. {
  377. new idx = 1;
  378. while(idx < MAX_FAMILIES)
  379. {
  380. fread(file, string);
  381. split(string, finfo, '|');
  382. FamInfo[idx][fTaken] = strval(finfo[0]);
  383. format(FamInfo[idx][fName], 32, "%s", finfo[1]);
  384. format(FamInfo[idx][fMOTD], 64, "%s", finfo[2]);
  385. FamInfo[idx][fColor] = strval(finfo[3]);
  386. format(FamInfo[idx][fLeader], MAX_PLAYER_NAME, "%s", finfo[4]);
  387. FamInfo[idx][fMembers] = strval(finfo[5]);
  388. FamInfo[idx][fSafeX] = floatstr(finfo[6]);
  389. FamInfo[idx][fSafeY] = floatstr(finfo[7]);
  390. FamInfo[idx][fSafeZ] = floatstr(finfo[8]);
  391. FamInfo[idx][fMoney] = strval(finfo[9]);
  392. FamInfo[idx][fMats] = strval(finfo[10]);
  393. FamInfo[idx][fWeed] = strval(finfo[11]);
  394. FamInfo[idx][fCrack] = strval(finfo[12]);
  395. format(FamInfo[idx][fRank1], 32, "%s", finfo[13]);
  396. format(FamInfo[idx][fRank2], 32, "%s", finfo[14]);
  397. format(FamInfo[idx][fRank3], 32, "%s", finfo[15]);
  398. format(FamInfo[idx][fRank4], 32, "%s", finfo[16]);
  399. format(FamInfo[idx][fRank5], 32, "%s", finfo[17]);
  400. format(FamInfo[idx][fRank6], 32, "%s", finfo[18]);
  401. FamInfo[idx][fSkins][0] = strval(finfo[19]);
  402. FamInfo[idx][fSkins][1] = strval(finfo[20]);
  403. FamInfo[idx][fSkins][2] = strval(finfo[21]);
  404. FamInfo[idx][fSkins][3] = strval(finfo[22]);
  405. FamInfo[idx][fSkins][4] = strval(finfo[23]);
  406. FamInfo[idx][fSkins][5] = strval(finfo[24]);
  407. FamInfo[idx][fSkins][6] = strval(finfo[25]);
  408. FamInfo[idx][fStrikes] = strval(finfo[26]);
  409. FamInfo[idx][fVehType][0] = strval(finfo[27]);
  410. FamInfo[idx][fVehType][1] = strval(finfo[28]);
  411. FamInfo[idx][fVehType][2] = strval(finfo[29]);
  412. FamInfo[idx][fVehType][3] = strval(finfo[30]);
  413. FamInfo[idx][fVehType][4] = strval(finfo[31]);
  414. FamInfo[idx][fVehCoX][0] = floatstr(finfo[32]);
  415. FamInfo[idx][fVehCoY][0] = floatstr(finfo[33]);
  416. FamInfo[idx][fVehCoZ][0] = floatstr(finfo[34]);
  417. FamInfo[idx][fVehCoX][1] = floatstr(finfo[35]);
  418. FamInfo[idx][fVehCoY][1] = floatstr(finfo[36]);
  419. FamInfo[idx][fVehCoZ][1] = floatstr(finfo[37]);
  420. FamInfo[idx][fVehCoX][2] = floatstr(finfo[38]);
  421. FamInfo[idx][fVehCoY][2] = floatstr(finfo[39]);
  422. FamInfo[idx][fVehCoZ][2] = floatstr(finfo[40]);
  423. FamInfo[idx][fVehCoX][3] = floatstr(finfo[41]);
  424. FamInfo[idx][fVehCoY][3] = floatstr(finfo[42]);
  425. FamInfo[idx][fVehCoZ][3] = floatstr(finfo[43]);
  426. FamInfo[idx][fVehCoX][4] = floatstr(finfo[44]);
  427. FamInfo[idx][fVehCoY][4] = floatstr(finfo[45]);
  428. FamInfo[idx][fVehCoZ][4] = floatstr(finfo[46]);
  429. FamInfo[idx][fVehRot][0] = strval(finfo[47]); // Rot
  430. FamInfo[idx][fVehRot][1] = strval(finfo[48]);
  431. FamInfo[idx][fVehRot][2] = strval(finfo[49]);
  432. FamInfo[idx][fVehRot][3] = strval(finfo[50]);
  433. FamInfo[idx][fVehRot][4] = strval(finfo[51]);
  434. FamInfo[idx][fVehCol1][0] = strval(finfo[52]); // Colors
  435. FamInfo[idx][fVehCol1][1] = strval(finfo[53]);
  436. FamInfo[idx][fVehCol1][2] = strval(finfo[54]);
  437. FamInfo[idx][fVehCol1][3] = strval(finfo[55]);
  438. FamInfo[idx][fVehCol1][4] = strval(finfo[56]);
  439. FamInfo[idx][fVehCol2][0] = strval(finfo[57]);
  440. FamInfo[idx][fVehCol2][1] = strval(finfo[58]);
  441. FamInfo[idx][fVehCol2][2] = strval(finfo[59]);
  442. FamInfo[idx][fVehCol2][3] = strval(finfo[60]);
  443. FamInfo[idx][fVehCol2][4] = strval(finfo[61]);
  444. FamInfo[idx][fStr] = strval(finfo[62]);
  445. FamInfo[idx][fHq] = strval(finfo[63]);
  446. FamInfo[idx][fAttacker] = strval(finfo[64]);
  447. FamInfo[idx][fUnderAtt] = strval(finfo[65]);
  448. if(FamInfo[idx][fSafeX] != 0 && FamInfo[idx][fSafeY] != 0 && FamInfo[idx][fSafeZ] != 0)
  449. {
  450. FamInfo[idx][fPickup] = CreateDynamicPickup(1239, 1, FamInfo[idx][fSafeX], FamInfo[idx][fSafeY], FamInfo[idx][fSafeZ], -1);
  451. format(string, sizeof(string), "%s's Safe", FamInfo[idx][fName]);
  452. FamInfo[idx][fText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, FamInfo[idx][fSafeX], FamInfo[idx][fSafeY], FamInfo[idx][fSafeZ]+0.3, 15);
  453. }
  454. for(new i=0; i<5; i++)
  455. {
  456. if(FamInfo[idx][fVehType][i])
  457. {
  458. FamInfo[idx][fVeh][i] = CreateVehicle(FamInfo[idx][fVehType][i], FamInfo[idx][fVehCoX][i], FamInfo[idx][fVehCoY][i], FamInfo[idx][fVehCoZ][i], FamInfo[idx][fVehRot][i], FamInfo[idx][fVehCol1][i], FamInfo[idx][fVehCol2][i], 12000);
  459. ChangeVehicleColor(FamInfo[idx][fVeh][i], FamInfo[idx][fVehCol1][i], FamInfo[idx][fVehCol2][i]);
  460. Fam[FamInfo[idx][fVeh][i]] = idx;
  461. }
  462. }
  463. idx++;
  464. }
  465. }
  466. print("Families loaded successfully.");
  467. return 1;
  468. }
  469.  
  470. enum turfInfo
  471. {
  472. Float:tMinX,
  473. Float:tMinY,
  474. Float:tMaxX,
  475. Float:tMaxY,
  476. tColor,
  477. tOwner,
  478. tPrice,
  479. tTime,
  480. tGangZ,
  481. tUnderAtt
  482. }
  483. new TurfInfo[MAX_TURFS][turfInfo];
  484.  
  485.  
  486. stock SaveTurfs()
  487. {
  488. if(!fexist("turfs.cfg")) fcreate("turfs.cfg");
  489. new idx = 1, File:file;
  490. new string[1300];
  491. while(idx < MAX_TURFS)
  492. {
  493. format(string, sizeof(string), "%f|%f|%f|%f|%d|%d|%d|%d|%d\r\n",
  494. TurfInfo[idx][tMinX],
  495. TurfInfo[idx][tMinY],
  496. TurfInfo[idx][tMaxX],
  497. TurfInfo[idx][tMaxY],
  498. TurfInfo[idx][tColor],
  499. TurfInfo[idx][tOwner],
  500. TurfInfo[idx][tPrice],
  501. TurfInfo[idx][tTime],
  502. TurfInfo[idx][tUnderAtt]);
  503. if(idx == 1)
  504. {
  505. file = fopen("turfs.cfg", io_write);
  506. }
  507. else
  508. {
  509. file = fopen("turfs.cfg", io_append);
  510. }
  511. fwrite(file, string);
  512. fclose(file);
  513. idx++;
  514. }
  515. print("Turfs saved successfully.");
  516. }
  517.  
  518.  
  519. stock LoadTurfs()
  520. {
  521. if(!fexist("turfs.cfg")) fcreate("turfs.cfg");
  522. new tinfo[66][48];
  523. new string[512];
  524. new File:file = fopen("turfs.cfg", io_read);
  525. if(file)
  526. {
  527. new idx = 1;
  528. while(idx < MAX_TURFS)
  529. {
  530. fread(file, string);
  531. split(string, tinfo, '|');
  532. TurfInfo[idx][tMinX] = floatstr(tinfo[0]);
  533. TurfInfo[idx][tMinY] = floatstr(tinfo[1]);
  534. TurfInfo[idx][tMaxX] = floatstr(tinfo[2]);
  535. TurfInfo[idx][tMaxY] = floatstr(tinfo[3]);
  536. TurfInfo[idx][tColor] = strval(tinfo[4]);
  537. TurfInfo[idx][tOwner] = strval(tinfo[5]);
  538. TurfInfo[idx][tPrice] = strval(tinfo[6]);
  539. TurfInfo[idx][tTime] = strval(tinfo[7]);
  540. TurfInfo[idx][tUnderAtt] = strval(tinfo[8]);
  541. if(!TurfInfo[idx][tTime])
  542. {
  543. TurfInfo[idx][tGangZ] = GangZoneCreate(TurfInfo[idx][tMinX],TurfInfo[idx][tMinY],TurfInfo[idx][tMaxX],TurfInfo[idx][tMaxY],TurfInfo[idx][tColor],0,0,1.7,0xF5FFFFD9);
  544. TurfAttacker[idx] = 9999;
  545. TurfKhod[idx] = 9999;
  546. KillsAttackerturf[idx] = 0;
  547. DeathsAttackerturf[idx] = 0;
  548. OurKillsturf[idx] = 0;
  549. OurDeathsturf[idx] = 0;
  550. AttackerScore[idx] = 0;
  551. OurScore[idx] = 0;
  552. TurfTime[idx] = 0;
  553. TurfReload[idx] = 0;
  554. }
  555. idx++;
  556. }
  557. }
  558. print("Turfs Loaded successfully.");
  559. return 1;
  560. }
  561. public GetPlayerTurf(playerid)
  562. {
  563. for(new idx = 1;idx < MAX_TURFS; idx++)
  564. {
  565. if(IsPlayerInTurf(playerid,idx))
  566. {
  567. return idx;
  568. }
  569. }
  570. return -1;
  571. }
  572. public IsPlayerInTurf(playerid, turfid)
  573. {
  574. if(IsPlayerConnected(playerid))
  575. {
  576. if(turfid == -1)
  577. {
  578. return 0;
  579. }
  580. new Float:x, Float:y, Float:z;
  581. GetPlayerPos(playerid,x,y,z);
  582. if(x >= TurfInfo[turfid][tMinX] && x < TurfInfo[turfid][tMaxX] && y >= TurfInfo[turfid][tMinY] && y < TurfInfo[turfid][tMaxY])
  583. {
  584. return 1;
  585. }
  586. }
  587. return 0;
  588. }
  589.  
  590. public OnGameModeInit()
  591. {
  592. LoadTurfs();
  593. LoadFamilies();
  594. LoadHq();
  595. return 1;
  596. }
  597.  
  598. public OnGameModeExit()
  599. {
  600. SaveFamilies();
  601. SaveTurfs();
  602. SaveHq();
  603. return 1;
  604. }
  605. public OnPlayerConnect(playerid)
  606. {
  607. new pfile[64];
  608. format(pfile, sizeof(pfile), "users/%s.ini", RPNU(playerid));
  609. new file[64];
  610. format(file, sizeof(file), "users/%s.ini", RPNU(playerid));
  611. ZoneOnOff[playerid] = 0;
  612. OnWar[playerid] = 9999;
  613. return 1;
  614. }
  615.  
  616. public OnPlayerDisconnect(playerid, reason)
  617. {
  618. return 1;
  619. }
  620.  
  621. public OnPlayerSpawn(playerid)
  622. {
  623. LoadChar(playerid);
  624. return 1;
  625. }
  626. public OnPlayerRequestClass(playerid, classid)
  627. {
  628.  
  629. new file[64];
  630. format(file, sizeof(file), "users/%s.ini", RPNU(playerid));
  631. if(!dini_Exists(file))
  632. {
  633. dini_Create(file);
  634. dini_Set(file, "Fam", PlayerInfo[playerid][pFam]);
  635. dini_Set(file, "FamRank", PlayerInfo[playerid][pFamRank]);
  636. }
  637.  
  638. return 1;
  639. }
  640. public OnPlayerDeath(playerid, killerid, reason)
  641. {
  642. if(killerid != INVALID_PLAYER_ID)
  643. {
  644. new famil = PlayerInfo[killerid][pFam];
  645. if(OnWar[playerid] != 9999)
  646. {
  647. if(PlayerInfo[playerid][pFam] == TurfAttacker[OnWar[playerid]])
  648. {
  649. if(IsPlayerInTurf(playerid,OnWar[playerid]) && IsPlayerInTurf(killerid,OnWar[killerid]) && famil != TurfAttacker[OnWar[playerid]])
  650. {
  651. OurKills[killerid] ++;
  652. OurKillsturf[OnWar[killerid]] ++;
  653. DeathsAttacker[playerid] ++;
  654. DeathsAttackerturf[OnWar[playerid]] ++;
  655. new strlol[512];
  656. new minbaghi,secbaghi,TurfTimerEx[MAX_TURFS];
  657. TurfTimerEx[OnWar[playerid]] = TurfTime[OnWar[playerid]];
  658. for(new c = 0;c<100;c++)
  659. {
  660. if(TurfTimerEx[OnWar[playerid]] >= 60)
  661. {
  662. TurfTimerEx[OnWar[playerid]] -= 60;
  663. minbaghi ++;
  664. new minebaghi = minbaghi*60;
  665. secbaghi = TurfTime[OnWar[playerid]]-minebaghi;
  666. }
  667. }
  668. if(TurfTime[OnWar[playerid]] < 60) { minbaghi = 0; secbaghi = TurfTime[OnWar[playerid]]; }
  669. format(strlol,512,"[TurfWarn]:"WARN" Deaths:"HQ" %i"WARN",Kills: "HQ"%i"WARN", Score: "HQ"%i"WARN",Time Remaining: "HQ"00:%s%d:%s%d",DeathsAttacker[playerid],KillsAttacker[playerid],KillsAttacker[playerid] - DeathsAttacker[playerid],(minbaghi < 10) ? ("0") : (""),minbaghi,(secbaghi < 10) ? ("0") : (""),secbaghi);
  670. SCM(playerid,COLOR_LIGHTBLUE,strlol);
  671. format(strlol,512,"[TurfWarn]:"WARN" Deaths:"HQ" %i"WARN",kills: "HQ"%i"WARN", Score: "HQ"%i"WARN",Time Remaining: "HQ"00:%s%d:%s%d",OurDeaths[killerid],OurKills[killerid],OurKills[killerid] - OurDeaths[killerid],(minbaghi < 10) ? ("0") : (""),minbaghi,(secbaghi < 10) ? ("0") : (""),secbaghi);
  672. SCM(killerid,COLOR_LIGHTBLUE,strlol);
  673. }
  674. }
  675. if(PlayerInfo[playerid][pFam] == TurfKhod[OnWar[playerid]])
  676. {
  677. if(IsPlayerInTurf(playerid,OnWar[playerid]) && IsPlayerInTurf(killerid,OnWar[killerid]) && famil != TurfKhod[OnWar[playerid]])
  678. {
  679. KillsAttacker[killerid] ++;
  680. KillsAttackerturf[OnWar[killerid]] ++;
  681. OurDeaths[playerid] ++;
  682. OurDeathsturf[OnWar[playerid]] ++;
  683. new strlol[512];
  684. new minbaghi,secbaghi,TurfTimerEx[MAX_TURFS];
  685. TurfTimerEx[OnWar[playerid]] = TurfTime[OnWar[playerid]];
  686. for(new c = 0;c<100;c++)
  687. {
  688. if(TurfTimerEx[OnWar[playerid]] >= 60)
  689. {
  690. TurfTimerEx[OnWar[playerid]] -= 60;
  691. minbaghi ++;
  692. new minebaghi = minbaghi*60;
  693. secbaghi = TurfTime[OnWar[playerid]]-minebaghi;
  694. }
  695. }
  696. if(TurfTime[OnWar[playerid]] < 60) { minbaghi = 0; secbaghi = TurfTime[OnWar[playerid]]; }
  697. format(strlol,512,"[TurfWarn]:"WARN" Deaths:"HQ" %i"WARN",Kills: "HQ"%i"WARN", score: "HQ"%i"WARN",Time Remaining: "HQ"00:%s%d:%s%d",OurDeaths[playerid],OurKills[playerid],OurKills[playerid] - OurDeaths[playerid],(minbaghi < 10) ? ("0") : (""),minbaghi,(secbaghi < 10) ? ("0") : (""),secbaghi);
  698. SCM(playerid,COLOR_LIGHTBLUE,strlol);
  699. format(strlol,512,"[TurfWarn]:"WARN" Deaths:"HQ" %i"WARN",Kills: "HQ"%i"WARN", score: "HQ"%i"WARN",Time Remaining: "HQ"00:%s%d:%s%d",DeathsAttacker[killerid],KillsAttacker[killerid],KillsAttacker[killerid] - DeathsAttacker[killerid],(minbaghi < 10) ? ("0") : (""),minbaghi,(secbaghi < 10) ? ("0") : (""),secbaghi);
  700. SCM(killerid,COLOR_LIGHTBLUE,strlol);
  701. }
  702. }
  703. if(PlayerInfo[playerid][pFam] == TurfAttacker[OnWar[playerid]])
  704. {
  705. if(IsPlayerInTurf(playerid,OnWar[playerid]) && IsPlayerInTurf(killerid,OnWar[killerid]) && famil == TurfAttacker[OnWar[playerid]])
  706. {
  707. DeathsAttacker[playerid] ++;
  708. DeathsAttackerturf[OnWar[playerid]] ++;
  709. new strlol[512];
  710. new minbaghi,secbaghi,TurfTimerEx[MAX_TURFS];
  711. TurfTimerEx[OnWar[playerid]] = TurfTime[OnWar[playerid]];
  712. for(new c = 0;c<100;c++)
  713. {
  714. if(TurfTimerEx[OnWar[playerid]] >= 60)
  715. {
  716. TurfTimerEx[OnWar[playerid]] -= 60;
  717. minbaghi ++;
  718. new minebaghi = minbaghi*60;
  719. secbaghi = TurfTime[OnWar[playerid]]-minebaghi;
  720. }
  721. }
  722. if(TurfTime[OnWar[playerid]] < 60) { minbaghi = 0; secbaghi = TurfTime[OnWar[playerid]]; }
  723. format(strlol,512,"[TurfWarn]:"WARN" Deaths:"HQ" %i"WARN",Kills: "HQ"%i"WARN", Score: "HQ"%i"WARN",Time Remaining: 00:%s%d:%s%d",DeathsAttacker[playerid],KillsAttacker[playerid],KillsAttacker[playerid] - DeathsAttacker[playerid],(minbaghi < 10) ? ("0") : (""),minbaghi,(secbaghi < 10) ? ("0") : (""),secbaghi);
  724. SCM(playerid,COLOR_LIGHTBLUE,strlol);
  725. }
  726. }
  727. if(PlayerInfo[playerid][pFam] == TurfKhod[OnWar[playerid]])
  728. {
  729. if(IsPlayerInTurf(playerid,OnWar[playerid]) && IsPlayerInTurf(killerid,OnWar[killerid]) && famil == TurfKhod[OnWar[playerid]])
  730. {
  731. OurDeaths[playerid] ++;
  732. OurDeathsturf[OnWar[playerid]] ++;
  733. new strlol[512];
  734. new minbaghi,secbaghi,TurfTimerEx[MAX_TURFS];
  735. TurfTimerEx[OnWar[playerid]] = TurfTime[OnWar[playerid]];
  736. for(new c = 0;c<100;c++)
  737. {
  738. if(TurfTimerEx[OnWar[playerid]] >= 60)
  739. {
  740. TurfTimerEx[OnWar[playerid]] -= 60;
  741. minbaghi ++;
  742. new minebaghi = minbaghi*60;
  743. secbaghi = TurfTime[OnWar[playerid]]-minebaghi;
  744. }
  745. }
  746. if(TurfTime[OnWar[playerid]] < 60) { minbaghi = 0; secbaghi = TurfTime[OnWar[playerid]]; }
  747. format(strlol,512,"[TurfWarn]: "WARN"Deaths:"HQ" %i"WARN",Kills: "HQ"%i"WARN", Score: "HQ"%i"WARN",Time Remaining: "HQ"00:%s%d:%s%d",OurDeaths[playerid],OurKills[playerid],OurKills[playerid] - OurDeaths[playerid],(minbaghi < 10) ? ("0") : (""),minbaghi,(secbaghi < 10) ? ("0") : (""),secbaghi);
  748. SCM(playerid,COLOR_LIGHTBLUE,strlol);
  749. }
  750. }
  751. }
  752. }
  753.  
  754. return 1;
  755. }
  756.  
  757. public OnPlayerText(playerid, text[])
  758. {
  759. return 1;
  760. }
  761.  
  762. public OnPlayerStateChange(playerid, newstate, oldstate)
  763. {
  764. new vehicleid = GetPlayerVehicleID(playerid);
  765. if(newstate == PLAYER_STATE_DRIVER && oldstate != PLAYER_STATE_DRIVER)
  766. {
  767. if(IsFamVehicle(vehicleid) && Fam[vehicleid] != PlayerInfo[playerid][pFam])
  768. {
  769. RemovePlayerFromVehicle(playerid);
  770. SendClientMessage(playerid, COLOR_ORANGE, " This vehicle is restricted to a family.");
  771. }
  772. }
  773. return 1;
  774. }
  775.  
  776. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  777. {
  778. if(IsFamVehicle(vehicleid) && Fam[vehicleid] != PlayerInfo[playerid][pFam])
  779. {
  780. new Float:pos[3];
  781. GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  782. SetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  783. SendClientMessage(playerid, COLOR_ORANGE, " This vehicle is restricted to a family.");
  784. }
  785. }
  786. forward TurfTimer();
  787. public TurfTimer()
  788. {
  789. for(new c = 1;c<MAX_TURFS;c++)
  790. {
  791. if(TurfTime[c] >= 1)
  792. {
  793. TurfTime[c] --;
  794. if(TurfTime[c] == 1)
  795. {
  796. new turfid = c;
  797. AttackerScore[turfid] = KillsAttackerturf[turfid] - DeathsAttackerturf[turfid];
  798. OurScore[turfid] = OurKillsturf[turfid] - OurDeathsturf[turfid];
  799. new stringo[512];
  800. if(AttackerScore[turfid] > OurScore[turfid])
  801. {
  802. new sss;
  803. for(new i = 0;i<MAX_PLAYERS;i++)
  804. {
  805. if(PlayerInfo[i][pFam] == TurfAttacker[turfid])
  806. {
  807. sss = PlayerInfo[i][pFam];
  808. format(stringo,512,"[TurfWarn]:"HQ" Your family [%s] captured Turfid %i FamScore: %i[Kills: %i & Deaths: %i]",RPFaN(i),turfid,AttackerScore[turfid],KillsAttackerturf[turfid],DeathsAttackerturf[turfid]);
  809. SCM(i,COLOR_LIGHTBLUE,stringo);
  810. GangZoneStopFlashForPlayer(i,TurfInfo[turfid][tGangZ]);
  811. format(stringo,512,"[TurfWarn]:"HQ" Your Score Was :%i [your kills: %i & your deaths: %i]",KillsAttacker[i] - DeathsAttacker[i],KillsAttacker[i],DeathsAttacker[i]);
  812. SCM(i,COLOR_LIGHTBLUE,stringo);
  813. }
  814. }
  815. TurfInfo[turfid][tOwner] = sss;
  816. TurfInfo[turfid][tColor] = FamInfo[TurfAttacker[turfid]][fColor];
  817. FamInfo[TurfAttacker[turfid]][fMoney] += TurfInfo[turfid][tPrice];
  818. FamInfo[TurfKhod[turfid]][fMoney] -= TurfInfo[turfid][tPrice];
  819. TurfInfo[turfid][tTime] = 24;
  820. SaveFamilies();
  821. SaveTurfs();
  822. GangZoneDestroy(TurfInfo[turfid][tGangZ]);
  823. for(new i = 0;i<MAX_PLAYERS;i++)
  824. {
  825. if(PlayerInfo[i][pFam] == TurfKhod[turfid])
  826. {
  827. format(stringo,512,"[TurfWarn]:"HQ" Your family losed to capture turfid %i, FamScore: %i[Kills: %i & Deaths: %i]",turfid,OurScore[turfid],OurKillsturf[turfid],OurDeathsturf[turfid]);
  828. SCM(i,COLOR_LIGHTBLUE,stringo);
  829. format(stringo,512,"[TurfWarn]:"HQ" Your Score :%i [Yor kills: %i & your deaths: %i]",OurKills[i] - OurDeaths[i],OurKills[i],OurDeaths[i]);
  830. SCM(i,COLOR_LIGHTBLUE,stringo);
  831. }
  832. }
  833. }
  834. if(AttackerScore[turfid] < OurScore[turfid])
  835. {
  836. new ssss;
  837. for(new i = 0;i<MAX_PLAYERS;i++)
  838. {
  839. if(PlayerInfo[i][pFam] == TurfKhod[turfid])
  840. {
  841. ssss = PlayerInfo[i][pFam];
  842. format(stringo,512,"[TurfWarn]:"HQ" your family [%s] Captured Turfid %i FamScore: %i[Kills: %i & Deaths: %i]",RPFaN(i),turfid,OurScore[turfid],OurKillsturf[turfid],OurDeathsturf[turfid]);
  843. SCM(i,COLOR_LIGHTBLUE,stringo);
  844. GangZoneStopFlashForPlayer(i,TurfInfo[turfid][tGangZ]);
  845. format(stringo,512,"[TurfWarn]:"HQ" your score :%i [Your Kills: %i & Your Deaths: %i]",OurKills[i] - OurDeaths[i],OurKills[i],OurDeaths[i]);
  846. SCM(i,COLOR_LIGHTBLUE,stringo);
  847. }
  848. }
  849. TurfInfo[turfid][tOwner] = ssss;
  850. TurfInfo[turfid][tColor] = FamInfo[TurfKhod[turfid]][fColor];
  851. FamInfo[TurfKhod[turfid]][fMoney] += TurfInfo[turfid][tPrice];
  852. FamInfo[TurfAttacker[turfid]][fMoney] -= TurfInfo[turfid][tPrice];
  853. TurfInfo[turfid][tTime] = 24;
  854. SaveFamilies();
  855. SaveTurfs();
  856. GangZoneDestroy(TurfInfo[turfid][tGangZ]);
  857. for(new i = 0;i<MAX_PLAYERS;i++)
  858. {
  859. if(PlayerInfo[i][pFam] == TurfAttacker[turfid])
  860. {
  861. format(stringo,512,"[TurfWarn]:"HQ" Your family losed to capture Turfid %i, FamScore: %i[Kills: %i & Deaths: %i]",turfid,AttackerScore[turfid],KillsAttackerturf[turfid],DeathsAttackerturf[turfid]);
  862. SCM(i,COLOR_LIGHTBLUE,stringo);
  863. format(stringo,512,"[TurfWarn]:"HQ" Your Score :%i [Your Kills: %i & Your Deaths: %i]",KillsAttacker[i] - DeathsAttacker[i],KillsAttacker[i],DeathsAttacker[i]);
  864. SCM(i,COLOR_LIGHTBLUE,stringo);
  865. }
  866. }
  867. }
  868. if(AttackerScore[turfid] == OurScore[turfid])
  869. {
  870. for(new i = 0;i<MAX_PLAYERS;i++)
  871. {
  872. if(OnWar[i] == turfid)
  873. {
  874. format(stringo,512,"[TurfWarn]:"HQ" Both of Families score is %d ,you have 5 minutes to capture the turf.",AttackerScore[turfid]);
  875. SCM(i,COLOR_LIGHTBLUE,stringo);
  876. TurfTime[turfid] = 300;
  877. TurfReload[turfid] = 1;
  878. }
  879. }
  880. return 1;
  881. }
  882. for(new i = 0;i<MAX_PLAYERS;i++)
  883. {
  884. if(PlayerInfo[i][pFam] == TurfAttacker[turfid] || PlayerInfo[i][pFam] == TurfKhod[turfid])
  885. {
  886. KillsAttacker[i] = 0;
  887. DeathsAttacker[i] = 0;
  888. OurKills[i] = 0;
  889. OurDeaths[i] = 0;
  890. OnWar[i] = 9999;
  891. }
  892. }
  893. KillsAttackerturf[turfid] = 0;
  894. DeathsAttackerturf[turfid] = 0;
  895. OurKillsturf[turfid] = 0;
  896. OurDeathsturf[turfid] = 0;
  897. AttackerScore[turfid] = 0;
  898. OurScore[turfid] = 0;
  899. TurfAttacker[turfid] = 9999;
  900. TurfKhod[turfid] = 9999;
  901. TurfTime[turfid] = 0;
  902. TurfReload[turfid] = 0;
  903. }
  904. }
  905. }
  906. return 1;
  907. }
  908. CMD:exithq(playerid,params[])
  909. {
  910. new done;
  911. for(new idx=1; idx<MAX_HQ; idx++) // Dynamic HQs
  912. {
  913. if(!done && IsPlayerInRangeOfPoint(playerid, 3, HqInfo[idx][qiX], HqInfo[idx][qiY], HqInfo[idx][qiZ]) && GetPlayerVirtualWorld(playerid) == HqInfo[idx][qiVW] && GetPlayerInterior(playerid) == HqInfo[idx][qiInt])
  914. {
  915.  
  916. SetPlayerInterior(playerid, HqInfo[idx][qInt]);
  917. SetPlayerVirtualWorld(playerid, HqInfo[idx][qVW]);
  918. SetCameraBehindPlayer(playerid);
  919. SetPlayerPos(playerid, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ]);
  920. done = 1;
  921. }
  922. }
  923. return 1;
  924. }
  925. CMD:enterhq(playerid, params[])
  926. {
  927. new ss = FamInfo[PlayerInfo[playerid][pFam]][fHq];
  928. if(IsPlayerInRangeOfPoint(playerid, 3, HqInfo[ss][qX], HqInfo[ss][qY], HqInfo[ss][qZ]))
  929. {
  930.  
  931. SetPlayerInterior(playerid, HqInfo[ss][qiInt]);
  932. SetPlayerVirtualWorld(playerid, HqInfo[ss][qiVW]);
  933. SetCameraBehindPlayer(playerid);
  934. SetPlayerPos(playerid, HqInfo[ss][qiX], HqInfo[ss][qiY], HqInfo[ss][qiZ]);
  935. return 1;
  936. }
  937. return 1;
  938. }
  939.  
  940. CMD:park(playerid, params[])
  941. {
  942. new sss = GetPlayerVirtualWorld(playerid);
  943. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You Are Not in vehicle.");
  944. // Family Vehicles
  945. if(IsFamVehicle(GetPlayerVehicleID(playerid)) && Fam[GetPlayerVehicleID(playerid)] == PlayerInfo[playerid][pFam])
  946. {
  947. new idx = PlayerInfo[playerid][pFam], veh = GFVS(GetPlayerVehicleID(playerid));
  948.  
  949. GetVehiclePos(GetPlayerVehicleID(playerid), FamInfo[idx][fVehCoX][veh], FamInfo[idx][fVehCoY][veh], FamInfo[idx][fVehCoZ][veh]);
  950. GetVehicleZAngle(GetPlayerVehicleID(playerid), FamInfo[idx][fVehRot][veh]);
  951. if(FamInfo[idx][fVehType][veh])
  952. {
  953. DestroyVehicle(FamInfo[idx][fVeh][veh]);
  954. }
  955. FamInfo[idx][fVeh][veh] = CreateVehicle(FamInfo[idx][fVehType][veh], FamInfo[idx][fVehCoX][veh], FamInfo[idx][fVehCoY][veh], FamInfo[idx][fVehCoZ][veh], FamInfo[idx][fVehRot][veh], FamInfo[idx][fVehCol1][veh], FamInfo[idx][fVehCol2][veh], 12000);
  956. ChangeVehicleColor(FamInfo[idx][fVeh][veh], FamInfo[idx][fVehCol1][veh], FamInfo[idx][fVehCol2][veh]);
  957. SendClientMessage(playerid, COLOR_LIGHTBLUE, " You have parked your family vehicle, it will always spawn here until you park it somewhere else.");
  958. return 1;
  959. }
  960. else SendClientMessage(playerid,COLOR_WHITE,"You Are Not In family Vehicle");
  961. return 1;
  962. }
  963. CMD:next(playerid, params[])
  964. {
  965. new family = PlayerInfo[playerid][pFam];
  966. if(!fskin[playerid]) return SendClientMessage(playerid, COLOR_GREY, "You are not choosing a family skin.");
  967. if(pskin[playerid] >= 6)
  968. {
  969. pskin[playerid] = 0;
  970. SetPlayerSkin(playerid, FamInfo[family][fSkins][pskin[playerid]]);
  971. }
  972. else
  973. {
  974. SetPlayerSkin(playerid, FamInfo[family][fSkins][pskin[playerid]+1]);
  975. pskin[playerid] ++;
  976. }
  977. return 1;
  978. }
  979. CMD:acceptfamily(playerid, params[])
  980. {
  981. new string[128],tmp[128];
  982.  
  983. if(!fInvited[playerid]) return SendClientMessage(playerid, COLOR_GREY, "You haven't been invited to a family.");
  984. {
  985. new idx = Family[playerid];
  986. PlayerInfo[playerid][pFam] = Family[playerid];
  987. PlayerInfo[playerid][pFamRank] = 1;
  988. SaveChar(playerid);
  989. FamInfo[idx][fMembers] ++;
  990. fInvited[playerid] = 0;
  991. Family[playerid] = 0;
  992. format(string, sizeof(string), " You have accepted %s's invitation to join the {33AA33}%s {33CCFF}family.", RPN(fInviter[playerid]), FamInfo[idx][fName]);
  993. SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
  994. format(string, sizeof(string), " %s has accepted your family invitation.", RPN(playerid));
  995. SendClientMessage(fInviter[playerid], COLOR_LIGHTBLUE, string);
  996. TogglePlayerControllable(playerid, 0);
  997. new family = PlayerInfo[playerid][pFam]; fskin[playerid] = 1; pskin[playerid] = 0;
  998. SetPlayerSkin(playerid, FamInfo[family][fSkins][0]);
  999. SendClientMessage(playerid, COLOR_LIGHTBLUE, " Type /next for the next family skin, type /done to choose a skin.");
  1000. SaveChar(playerid);
  1001. return 1;
  1002. }
  1003. return 1;
  1004. }
  1005. CMD:fclothes(playerid,params[])
  1006. {
  1007. new idxx = PlayerInfo[playerid][pFam];
  1008. if(!IsPlayerInRangeOfPoint(playerid, 3, FamInfo[idxx][fSafeX], FamInfo[idxx][fSafeY], FamInfo[idxx][fSafeZ])) return SendClientMessage(playerid, COLOR_GREY, "You are not near your family safe.");
  1009.  
  1010. new idx = GetPlayerVirtualWorld(playerid)-100;
  1011. TogglePlayerControllable(playerid, 0);
  1012. new family = PlayerInfo[playerid][pFam]; fskin[playerid] = 1; pskin[playerid] = 0;
  1013. SetPlayerSkin(playerid, FamInfo[family][fSkins][0]);
  1014. SendClientMessage(playerid, COLOR_LIGHTBLUE, " Type /next for the next family skin, type /done to choose a skin.");
  1015. return 1;
  1016. }
  1017.  
  1018. CMD:done(playerid, params[])
  1019. {
  1020. if(!fskin[playerid]) return SendClientMessage(playerid, COLOR_GREY, "You are not choosing a family skin.");
  1021. if(GetPlayerSkin(playerid) == 0) return SendClientMessage(playerid, COLOR_GREY, "This skin slot is empty, choose another one.");
  1022. PlayerInfo[playerid][pModel] = GetPlayerSkin(playerid);
  1023. SendClientMessage(playerid, COLOR_LIGHTBLUE, " You have chosen your family skin.");
  1024. fskin[playerid] = 0; pskin[playerid] = 0;
  1025. TogglePlayerControllable(playerid, 1);
  1026. return 1;
  1027. }
  1028. CMD:safe(playerid, params[])
  1029. {
  1030. new amount, string[128], options[32];
  1031. if(!PlayerInfo[playerid][pFam]) return SendClientMessage(playerid, COLOR_GREY, "You Are Not In A Family.");
  1032. new idx = PlayerInfo[playerid][pFam];
  1033. if(!IsPlayerInRangeOfPoint(playerid, 3, FamInfo[idx][fSafeX], FamInfo[idx][fSafeY], FamInfo[idx][fSafeZ])) return SendClientMessage(playerid, COLOR_GREY, "You are not near your family safe.");
  1034. if(sscanf(params, "s[32]", params))
  1035. {
  1036. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /safe [option]");
  1037. SendClientMessage(playerid, COLOR_GREY, "OPTIONS: deposit | withdraw");
  1038. format(string, sizeof(string), "SAFE: Money: $%d | Materials: %d | Weed: %d | Crack: %d", FamInfo[idx][fMoney], FamInfo[idx][fMats], FamInfo[idx][fWeed], FamInfo[idx][fCrack]);
  1039. SendClientMessage(playerid, COLOR_WHITE, string);
  1040. return 1;
  1041. }
  1042. if(!strcmp(params, "deposit", true, 7))
  1043. {
  1044. if(sscanf(params, "s[32]s[32]i", params, options, amount))
  1045. {
  1046. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /safe deposit [item] [amount]");
  1047. SendClientMessage(playerid, COLOR_GREY, "ITEMS: money");
  1048. return 1;
  1049. }
  1050. if(amount < 0) return SendClientMessage(playerid, COLOR_GREY, "Invalid amount.");
  1051. if(!strcmp(options, "money", true, 5))
  1052. {
  1053. if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid, COLOR_GREY, "you dont have enugh money.");
  1054. FamInfo[idx][fMoney] += amount;
  1055. GivePlayerMoney(playerid, -amount);
  1056. format(string, sizeof(string), "* %s has deposited $%d in their family safe.", RPN(playerid), amount);
  1057. SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1058. SendPlayerFamMessage(playerid,COLOR_CYAN,string);
  1059. }
  1060.  
  1061. else SendClientMessage(playerid, COLOR_GREY, "Invalid option.");
  1062. }
  1063. else if(!strcmp(params, "withdraw", true, 8))
  1064. {
  1065. if(sscanf(params, "s[32]s[32]i", params, options, amount))
  1066. {
  1067. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /safe withdraw [item] [amount]");
  1068. SendClientMessage(playerid, COLOR_GREY, "ITEMS: money");
  1069. return 1;
  1070. }
  1071. if(amount < 0) return SendClientMessage(playerid, COLOR_GREY, "Invalid amount.");
  1072. if(!strcmp(options, "money", true, 5))
  1073. {
  1074. if(PlayerInfo[playerid][pFamRank] < 6) return SendClientMessage(playerid, COLOR_GREY, "Your Rank is Low.");
  1075. if(FamInfo[idx][fMoney] < amount) return SendClientMessage(playerid, COLOR_GREY, "You don't have that much money in your family safe.");
  1076. FamInfo[idx][fMoney] -= amount;
  1077. GivePlayerMoney(playerid, amount);
  1078. format(string, sizeof(string), "* %s has withdrawn $%d from their family safe.", RPN(playerid), amount);
  1079. SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1080. }
  1081. else SendClientMessage(playerid, COLOR_GREY, "Invalid option.");
  1082. }
  1083. else SendClientMessage(playerid, COLOR_GREY, "Invalid option.");
  1084. return 1;
  1085. }
  1086.  
  1087. CMD:f(playerid, params[])
  1088. {
  1089. new string[128];
  1090. if(!PlayerInfo[playerid][pFam]) return SendClientMessage(playerid, COLOR_GREY, "You Are Not In a family.");
  1091. if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/f)amilychat [text]");
  1092. format(string, sizeof(string), "** [FAM] (%d) %s %s: %s", PlayerInfo[playerid][pFamRank], RPFaRN(playerid), NORPN(playerid), params);
  1093. SendPlayerFamMessage(playerid, COLOR_CYAN, string);
  1094. return 1;
  1095. }
  1096.  
  1097. CMD:tedit(playerid,params[])
  1098. {
  1099. new string[256], point, time, profit,owner;
  1100. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Your Admin Level Is Low");
  1101. if(sscanf(params, "s[32]", params))
  1102. {
  1103. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /tedit [option]");
  1104. SendClientMessage(playerid, COLOR_GREY, "OPTIONS: time | profit | Name | owner");
  1105. }
  1106. if(!strcmp(params, "time", true, 4))
  1107. {
  1108. if(sscanf(params, "s[32]ii", params, point, time)) return SCM(playerid,COLOR_WHITE,"USAGE: /tedit time [turfid] [hours]");
  1109. if(point < 1 || point > 40) return SendClientMessage(playerid, COLOR_GREY, "Points are between 1 and 40.");
  1110. if(time < 0) return SendClientMessage(playerid, COLOR_GREY, "Invalid time.");
  1111. if(!TurfInfo[point][tPrice]) return SendClientMessage(playerid, COLOR_GREY, "Invalid gangzone id.");
  1112. TurfInfo[point][tTime] = time;
  1113. format(string, sizeof(string), "{FF0000}[Admin Warn]{FF6347} %s has set turf %d's Time to be capturable in %d Hours .", NORPN(playerid), point, TurfInfo[point][tTime]);
  1114. SendClientMessage(playerid,COLOR_WHITE,string);
  1115. SaveTurfs();
  1116. }
  1117. if(!strcmp(params, "profit", true, 6))
  1118. {
  1119. if(sscanf(params, "s[32]ii", params, point, profit)) return SCM(playerid,COLOR_WHITE,"USAGE: /tedit Profit [turfid] [Meghdar$]");
  1120. if(point < 1 || point > 40) return SendClientMessage(playerid, COLOR_GREY, "turfs are between 1 and 40.");
  1121. if(profit < 0 || profit >100000) return SendClientMessage(playerid, COLOR_GREY, "profit bayad beyn $0 va $100,000 bashe.");
  1122. if(!TurfInfo[point][tPrice]) return SendClientMessage(playerid, COLOR_GREY, "Invalid gangzone id.");
  1123. TurfInfo[point][tPrice] = profit;
  1124. format(string, sizeof(string), "{FF0000}[Admin Warn]{FF6347} %s has set turf %d's profit to %d .", NORPN(playerid), point, TurfInfo[point][tPrice]);
  1125. SendClientMessage(playerid, -1, string);
  1126. SaveTurfs();
  1127. }
  1128. if(!strcmp(params, "owner", true, 5))
  1129. {
  1130. if(sscanf(params, "s[32]ii", params, point, owner)) return SCM(playerid,COLOR_WHITE,"USAGE: /tedit owner [turfid] [FamID]");
  1131. if(point < 1 || point > 40) return SendClientMessage(playerid, COLOR_GREY, "turfs are between 1 and 40.");
  1132. if(owner < 1 || owner > 10) return SendClientMessage(playerid, COLOR_GREY, "families are between 1 and 10.");
  1133. if(!TurfInfo[point][tPrice]) return SendClientMessage(playerid, COLOR_GREY, "Invalid gangzone id.");
  1134. if(!FamInfo[owner][fTaken]) return SendClientMessage(playerid, COLOR_GREY, "Family slot is not being used.");
  1135. if(FamInfo[owner][fColor] == 0) return SCM(playerid,COLOR_WHITE, "This Family Han Not Color Yet");
  1136. TurfInfo[point][tOwner] = owner;
  1137. TurfInfo[point][tColor] = FamInfo[owner][fColor];
  1138. GangZoneDestroy(TurfInfo[point][tGangZ]);
  1139. TurfInfo[point][tGangZ] = GangZoneCreate(TurfInfo[point][tMinX],TurfInfo[point][tMinY],TurfInfo[point][tMaxX],TurfInfo[point][tMaxY],TurfInfo[point][tColor],0,0,0.7,0x000000FF);
  1140. format(string, sizeof(string), "{FF0000}[Admin Warn]{FF6347} %s has set turf %d's ownership to %s .", NORPN(playerid), point, FamInfo[owner][fName]);
  1141. SendClientMessage(playerid, -1, string);
  1142. SaveTurfs();
  1143. }
  1144. return 1;
  1145. }
  1146.  
  1147. CMD:tused(playerid)
  1148. {
  1149. new string[255];
  1150. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Your Admin Level Is Low");
  1151. for(new idx=1;idx<MAX_TURFS;idx++)
  1152. {
  1153. if(TurfInfo[idx][tOwner])
  1154. {
  1155. format(string,256,"Owner: %s | Time: %d | Profit: %d | ID: %d",TRFaN(idx),TurfInfo[idx][tTime],TurfInfo[idx][tPrice],idx);
  1156. SCM(playerid,-1,string);
  1157. }
  1158. }
  1159. return 1;
  1160. }
  1161.  
  1162. CMD:turf(playerid,params[])
  1163. {
  1164. new string[256],Float:x,Float:y,Float:z;
  1165. if(PlayerInfo[playerid][pFamRank] < 6) return SendClientMessage(playerid, COLOR_GREY, "Your Rank Is Low");
  1166. GetPlayerPos(playerid, x,y,z);
  1167. new idx = GetPlayerTurf(playerid);
  1168. format(string,256,"Owner: %s | Time: %d | Profit: %d | ID: %d",TRFaN(idx),TurfInfo[idx][tTime],TurfInfo[idx][tPrice],idx);
  1169. SCM(playerid,-1,string);
  1170. return 1;
  1171. }
  1172.  
  1173. CMD:timeofwar(playerid,params[])
  1174. {
  1175. if(!PlayerInfo[playerid][pFam]) return SCM(playerid,COLOR_WHITE,"You Are Not In A Family");
  1176. if(OnWar[playerid] == 9999) return SCM(playerid,COLOR_WHITE,"You Are Not at War.");
  1177. new strlol[512];
  1178. new minbaghi,secbaghi,TurfTimerEx[MAX_TURFS];
  1179. TurfTimerEx[OnWar[playerid]] = TurfTime[OnWar[playerid]];
  1180. new mem = PlayerInfo[playerid][pFam];
  1181. if(mem == TurfAttacker[OnWar[playerid]])
  1182. {
  1183. for(new c = 0;c<100;c++)
  1184. {
  1185. if(TurfTimerEx[OnWar[playerid]] >= 60)
  1186. {
  1187. TurfTimerEx[OnWar[playerid]] -= 60;
  1188. minbaghi ++;
  1189. new minebaghi = minbaghi*60;
  1190. secbaghi = TurfTime[OnWar[playerid]]-minebaghi;
  1191. }
  1192. }
  1193. if(TurfTime[OnWar[playerid]] < 60) { minbaghi = 0; secbaghi = TurfTime[OnWar[playerid]]; }
  1194. format(strlol,512,"[TurfWarn]:"WARN" Times Deaths: %i,Times Kills: %i, score: %i,Time remaining: "HQ"00:%s%d:%s%d",DeathsAttacker[playerid],KillsAttacker[playerid],KillsAttacker[playerid] - DeathsAttacker[playerid],(minbaghi < 10) ? ("0") : (""),minbaghi,(secbaghi < 10) ? ("0") : (""),secbaghi);
  1195. SCM(playerid,COLOR_LIGHTBLUE,strlol);
  1196. }
  1197. else if(mem == TurfKhod[OnWar[playerid]])
  1198. {
  1199. for(new c = 0;c<100;c++)
  1200. {
  1201. if(TurfTimerEx[OnWar[playerid]] >= 60)
  1202. {
  1203. TurfTimerEx[OnWar[playerid]] -= 60;
  1204. minbaghi ++;
  1205. new minebaghi = minbaghi*60;
  1206. secbaghi = TurfTime[OnWar[playerid]]-minebaghi;
  1207. }
  1208. }
  1209. if(TurfTime[OnWar[playerid]] < 60) { minbaghi = 0; secbaghi = TurfTime[OnWar[playerid]]; }
  1210. format(strlol,512,"[Turfs]:"WARN" Times Deaths: %i,Times Kills: %i, score: %i,Time remaining: "HQ"00:%s%d:%s%d",OurDeaths[playerid],OurKills[playerid],OurKills[playerid] - OurDeaths[playerid],(minbaghi < 10) ? ("0") : (""),minbaghi,(secbaghi < 10) ? ("0") : (""),secbaghi);
  1211. SCM(playerid,COLOR_LIGHTBLUE,strlol);
  1212. }
  1213. return 1;
  1214. }
  1215.  
  1216. CMD:deletegzone(playerid, params[])
  1217. {
  1218. new idx;
  1219. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Your Admin Level Is Low");
  1220. if(sscanf(params, "i", idx)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /deletegzone [zoneid]");
  1221. if(!TurfInfo[idx][tPrice]) return SendClientMessage(playerid, COLOR_GREY, "Invalid gangzone id.");
  1222. TurfInfo[idx][tMinX] = 0;
  1223. TurfInfo[idx][tMinY] = 0;
  1224. TurfInfo[idx][tMaxX] = 0;
  1225. TurfInfo[idx][tMaxY] = 0;
  1226. TurfInfo[idx][tColor] = 0;
  1227. TurfInfo[idx][tPrice] = 0;
  1228. TurfInfo[idx][tTime] = 9999;
  1229. TurfInfo[idx][tOwner] = 0;
  1230. GangZoneDestroy(TurfInfo[idx][tGangZ]);
  1231. SCM(playerid,COLOR_WHITE,"Destroyed");
  1232. SaveTurfs();
  1233. return 1;
  1234. }
  1235.  
  1236. CMD:mypos(playerid,params[])
  1237. {
  1238. new Float:s,Float:ss,Float:sss,string[128];
  1239. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Your Admin Level Is Low");
  1240. GetPlayerPos(playerid,s,ss,sss);
  1241. format(string,sizeof(string),"your pos= X:%f | Y:%f",s,ss);
  1242. SCM(playerid,COLOR_WHITE,string);
  1243. return 0;
  1244. }
  1245.  
  1246. CMD:creategzone(playerid, params[])
  1247. {
  1248. new price,Float:s,ss,sss,string[128];
  1249. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Your Admin Level Is Low");
  1250. if(sscanf(params, "iii", price,ss,sss)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /creategzone [Price] [MaxX+?] [MaxY+?]");
  1251. if(price < 1) return SendClientMessage(playerid, COLOR_WHITE, "Wrong Price");
  1252. for(new idx=1; idx<MAX_TURFS; idx++)
  1253. {
  1254. if(!TurfInfo[idx][tPrice])
  1255. {
  1256. GetPlayerPos(playerid,TurfInfo[idx][tMinX],TurfInfo[idx][tMinY],s);
  1257. TurfInfo[idx][tMaxX] = TurfInfo[idx][tMinX]+ss;
  1258. TurfInfo[idx][tMaxY] = TurfInfo[idx][tMinY]+sss;
  1259. TurfInfo[idx][tColor] = 0xFFFFA1A1;
  1260. TurfInfo[idx][tPrice] = price;
  1261. TurfInfo[idx][tTime] = 0;
  1262. TurfInfo[idx][tOwner] = 0;
  1263. TurfAttacker[idx] = 9999;
  1264. TurfInfo[idx][tGangZ] = GangZoneCreate(TurfInfo[idx][tMinX],TurfInfo[idx][tMinY],TurfInfo[idx][tMaxX],TurfInfo[idx][tMaxY],TurfInfo[idx][tColor],-1,-1,0.8,0x000000FF);
  1265. format(string,128,"Zone ID %d Created",idx);
  1266. SCM(playerid,COLOR_WHITE,string);
  1267. idx = MAX_TURFS;
  1268. SaveTurfs();
  1269. }
  1270. }
  1271. return 1;
  1272. }
  1273.  
  1274. CMD:zones(playerid,params[])
  1275. {
  1276. if(ZoneOnOff[playerid] == 0)
  1277. {
  1278.  
  1279.  
  1280. GangZoneShowForPlayer(playerid,TurfInfo[0][tGangZ],TurfInfo[0][tColor],0x000000FF);
  1281. GangZoneShowForPlayer(playerid,TurfInfo[1][tGangZ],TurfInfo[1][tColor],0x000000FF);
  1282. GangZoneShowForPlayer(playerid,TurfInfo[2][tGangZ],TurfInfo[2][tColor],0x000000FF);
  1283. GangZoneShowForPlayer(playerid,TurfInfo[3][tGangZ],TurfInfo[3][tColor],0x000000FF);
  1284. GangZoneShowForPlayer(playerid,TurfInfo[4][tGangZ],TurfInfo[4][tColor],0x000000FF);
  1285. GangZoneShowForPlayer(playerid,TurfInfo[5][tGangZ],TurfInfo[5][tColor],0x000000FF);
  1286. GangZoneShowForPlayer(playerid,TurfInfo[6][tGangZ],TurfInfo[6][tColor],0x000000FF);
  1287. GangZoneShowForPlayer(playerid,TurfInfo[7][tGangZ],TurfInfo[7][tColor],0x000000FF);
  1288. GangZoneShowForPlayer(playerid,TurfInfo[8][tGangZ],TurfInfo[8][tColor],0x000000FF);
  1289. GangZoneShowForPlayer(playerid,TurfInfo[9][tGangZ],TurfInfo[9][tColor],0x000000FF);
  1290. GangZoneShowForPlayer(playerid,TurfInfo[10][tGangZ],TurfInfo[10][tColor],0x000000FF);
  1291. GangZoneShowForPlayer(playerid,TurfInfo[11][tGangZ],TurfInfo[11][tColor],0x000000FF);
  1292. GangZoneShowForPlayer(playerid,TurfInfo[12][tGangZ],TurfInfo[12][tColor],0x000000FF);
  1293. GangZoneShowForPlayer(playerid,TurfInfo[13][tGangZ],TurfInfo[13][tColor],0x000000FF);
  1294. GangZoneShowForPlayer(playerid,TurfInfo[14][tGangZ],TurfInfo[14][tColor],0x000000FF);
  1295. GangZoneShowForPlayer(playerid,TurfInfo[15][tGangZ],TurfInfo[15][tColor],0x000000FF);
  1296. GangZoneShowForPlayer(playerid,TurfInfo[16][tGangZ],TurfInfo[16][tColor],0x000000FF);
  1297. GangZoneShowForPlayer(playerid,TurfInfo[17][tGangZ],TurfInfo[17][tColor],0x000000FF);
  1298. GangZoneShowForPlayer(playerid,TurfInfo[18][tGangZ],TurfInfo[18][tColor],0x000000FF);
  1299. GangZoneShowForPlayer(playerid,TurfInfo[19][tGangZ],TurfInfo[19][tColor],0x000000FF);
  1300. GangZoneShowForPlayer(playerid,TurfInfo[20][tGangZ],TurfInfo[20][tColor],0x000000FF);
  1301. GangZoneShowForPlayer(playerid,TurfInfo[21][tGangZ],TurfInfo[21][tColor],0x000000FF);
  1302. GangZoneShowForPlayer(playerid,TurfInfo[22][tGangZ],TurfInfo[22][tColor],0x000000FF);
  1303. GangZoneShowForPlayer(playerid,TurfInfo[23][tGangZ],TurfInfo[23][tColor],0x000000FF);
  1304. GangZoneShowForPlayer(playerid,TurfInfo[24][tGangZ],TurfInfo[24][tColor],0x000000FF);
  1305. GangZoneShowForPlayer(playerid,TurfInfo[25][tGangZ],TurfInfo[25][tColor],0x000000FF);
  1306. GangZoneShowForPlayer(playerid,TurfInfo[26][tGangZ],TurfInfo[26][tColor],0x000000FF);
  1307. GangZoneShowForPlayer(playerid,TurfInfo[27][tGangZ],TurfInfo[27][tColor],0x000000FF);
  1308. GangZoneShowForPlayer(playerid,TurfInfo[28][tGangZ],TurfInfo[28][tColor],0x000000FF);
  1309. GangZoneShowForPlayer(playerid,TurfInfo[29][tGangZ],TurfInfo[29][tColor],0x000000FF);
  1310. GangZoneShowForPlayer(playerid,TurfInfo[30][tGangZ],TurfInfo[30][tColor],0x000000FF);
  1311. GangZoneShowForPlayer(playerid,TurfInfo[31][tGangZ],TurfInfo[31][tColor],0x000000FF);
  1312. GangZoneShowForPlayer(playerid,TurfInfo[32][tGangZ],TurfInfo[32][tColor],0x000000FF);
  1313. GangZoneShowForPlayer(playerid,TurfInfo[33][tGangZ],TurfInfo[33][tColor],0x000000FF);
  1314. GangZoneShowForPlayer(playerid,TurfInfo[34][tGangZ],TurfInfo[34][tColor],0x000000FF);
  1315. GangZoneShowForPlayer(playerid,TurfInfo[35][tGangZ],TurfInfo[35][tColor],0x000000FF);
  1316. GangZoneShowForPlayer(playerid,TurfInfo[36][tGangZ],TurfInfo[36][tColor],0x000000FF);
  1317. GangZoneShowForPlayer(playerid,TurfInfo[37][tGangZ],TurfInfo[37][tColor],0x000000FF);
  1318. GangZoneShowForPlayer(playerid,TurfInfo[38][tGangZ],TurfInfo[38][tColor],0x000000FF);
  1319. GangZoneShowForPlayer(playerid,TurfInfo[39][tGangZ],TurfInfo[39][tColor],0x000000FF);
  1320. GangZoneShowForPlayer(playerid,TurfInfo[40][tGangZ],TurfInfo[40][tColor],0x000000FF);
  1321. ZoneOnOff[playerid] = 1;
  1322. SCM(playerid,COLOR_WHITE,"Gang Zones Showed On Map");
  1323. if(OnWar[playerid] != 9999)
  1324. {
  1325. new famil;
  1326. famil = PlayerInfo[playerid][pFam];
  1327. for(new i = 0;i<MAX_PLAYERS;i++)
  1328. {
  1329. if(IsPlayerConnected(playerid) && OnWar[i] == OnWar[playerid])
  1330. {
  1331. }
  1332. }
  1333.  
  1334. GangZoneFlashForPlayer(playerid,TurfInfo[OnWar[playerid]][tGangZ],FamInfo[TurfAttacker[OnWar[playerid]]][fColor]);
  1335. }
  1336. return 1;
  1337. }
  1338. else if(ZoneOnOff[playerid] == 1)
  1339. {
  1340. ZoneOnOff[playerid] = 0;
  1341. SCM(playerid,COLOR_WHITE,"Gang Zones Removed From Map");
  1342. HideAllGangZonesForPlayer(playerid);
  1343. }
  1344. return 1;
  1345. }
  1346.  
  1347. CMD:fedit(playerid, params[])
  1348. {
  1349. new string[128], option[32], idx, skin, skinid, veh, vehid, col1, col2;
  1350. if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Connected To Server");
  1351. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Admin.");
  1352.  
  1353. if(sscanf(params, "is[32]", idx, option))
  1354. {
  1355. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fedit [slot] [option]");
  1356. SendClientMessage(playerid, COLOR_GREY, "OPTIONS: skin | name | leader | vehicle | Color");
  1357. return 1;
  1358. }
  1359. if(idx < 1 || idx > 15) return SendClientMessage(playerid, COLOR_GREY, "Families are between 1 and 15.");
  1360. if(!FamInfo[idx][fTaken]) return SendClientMessage(playerid, COLOR_GREY, "Family slot is not being used.");
  1361. if(!strcmp(option, "skin", true, 4))
  1362. {
  1363. if(sscanf(params, "is[32]ii", idx, option, skin, skinid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fedit [familyslot] skin [skinslot] [skinid]");
  1364. if(skin < 1 || skin > 5) return SendClientMessage(playerid, COLOR_GREY, "Skin slots are between 1 and 7.");
  1365. skin = skin-1;
  1366. FamInfo[idx][fSkins][skin] = skinid;
  1367. /*switch(skin)
  1368. {
  1369. case 1: FamInfo[idx][fSkins][0] = skinid;
  1370. case 2: FamInfo[idx][fSkins][1] = skinid;
  1371. case 3: FamInfo[idx][fSkins][2] = skinid;
  1372. case 4: FamInfo[idx][fSkins][3] = skinid;
  1373. case 5: FamInfo[idx][fSkins][4] = skinid;
  1374. case 6: FamInfo[idx][fSkins][5] = skinid;
  1375. case 7: FamInfo[idx][fSkins][6] = skinid;
  1376. }*/
  1377. format(string, sizeof(string), "{FF0000} %s has set family %d's skin slot %d to %d.", NORPN(playerid), idx, skin+1, skinid);
  1378. SendClientMessage(playerid,COLOR_WHITE,string);
  1379. SaveFamilies();
  1380. return 1;
  1381. }
  1382. else if(!strcmp(option, "name", true, 4))
  1383. {
  1384. if(sscanf(params, "is[32]s[32]", idx, option, params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fedit [familyslot] name [familyname]");
  1385. format(FamInfo[idx][fName], 32, "%s", params);
  1386. format(string, sizeof(string), "{FF0000} %s has set family %d's name to %s.", NORPN(playerid), idx, params);
  1387. SendClientMessage(playerid,COLOR_WHITE,string);
  1388. SaveFamilies();
  1389. }
  1390. else if(!strcmp(option, "leader", true, 6))
  1391. {
  1392. new playerb;
  1393. if(sscanf(params, "is[32]i", idx, option, playerb)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fedit [familyslot] leader [playerid]");
  1394. format(FamInfo[idx][fLeader], 32, "%s", RPN(playerb));
  1395. PlayerInfo[playerb][pFam] = idx;
  1396. PlayerInfo[playerb][pFamRank] = 6;
  1397. format(string, sizeof(string), "{FF0000} %s has Give family %d's leader to %s.", NORPN(playerid), idx, RPN(playerb));
  1398. SendClientMessage(playerid,COLOR_WHITE,string);
  1399. SaveChar(playerb);
  1400. SaveFamilies();
  1401. }
  1402. else if(!strcmp(option, "vehicle", true, 7))
  1403. {
  1404. if(sscanf(params, "is[32]iiii", idx, option, veh, vehid, col1, col2)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fedit [familyslot] vehicle [vehiclelot] [vehiclemodel] [color1] [color2]");
  1405. if(veh < 1 || veh > 7) return SendClientMessage(playerid, COLOR_GREY, "Vehicle slots are between 1 and 7.");
  1406. veh = veh-1;
  1407. if(FamInfo[idx][fVehType][veh])
  1408. {
  1409. FamInfo[idx][fVehType][veh] = 0;
  1410. FamInfo[idx][fVehCoX][veh] = 0;
  1411. FamInfo[idx][fVehCoY][veh] = 0;
  1412. FamInfo[idx][fVehCoZ][veh] = 0;
  1413. FamInfo[idx][fVehRot][veh] = 0;
  1414. FamInfo[idx][fVehCol1][veh] = 0;
  1415. FamInfo[idx][fVehCol2][veh] = 0;
  1416. DestroyVehicle(FamInfo[idx][fVeh][veh]);
  1417. }
  1418. if(vehid)
  1419. {
  1420. FamInfo[idx][fVehType][veh] = vehid;
  1421. GetPlayerPos(playerid, FamInfo[idx][fVehCoX][veh], FamInfo[idx][fVehCoY][veh], FamInfo[idx][fVehCoZ][veh]);
  1422. GetPlayerFacingAngle(playerid, FamInfo[idx][fVehRot][veh]);
  1423. FamInfo[idx][fVehCol1][veh] = col1;
  1424. FamInfo[idx][fVehCol2][veh] = col2;
  1425. FamInfo[idx][fVeh][veh] = CreateVehicle(vehid, FamInfo[idx][fVehCoX][veh], FamInfo[idx][fVehCoY][veh], FamInfo[idx][fVehCoZ][veh], FamInfo[idx][fVehRot][veh], FamInfo[idx][fVehCol1][veh], FamInfo[idx][fVehCol2][veh], 12000);
  1426. ChangeVehicleColor(FamInfo[idx][fVeh][veh], FamInfo[idx][fVehCol1][veh], FamInfo[idx][fVehCol2][veh]);
  1427. Fam[FamInfo[idx][fVeh][veh]] = idx;
  1428. format(string, sizeof(string), "{FF0000} %s has set family %d's vehicle slot %d to ID %d.", NORPN(playerid), idx, veh+1, vehid);
  1429. SendClientMessage(playerid,COLOR_WHITE,string);
  1430. }
  1431. SaveFamilies();
  1432. }
  1433. else if(!strcmp(option, "color", true, 5))
  1434. {
  1435. if(sscanf(params, "is[5]s[32]",idx, option,params))
  1436. {
  1437. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fedit famid Color [color]");
  1438. SendClientMessage(playerid, COLOR_WHITE, "COLORS: Red LightBlue blue purple Green Yellow LightRed Black Gold Grey Pink");
  1439. }
  1440. if(!strcmp(params, "red", true))
  1441. {
  1442. FamInfo[idx][fColor] = 0xB900009F;
  1443. format(string, sizeof(string), "FAMILY Color: Red");
  1444. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1445. }
  1446. else if(!strcmp(params, "lightblue", true))
  1447. {
  1448. FamInfo[idx][fColor] = 0x00FFFF9F;
  1449. format(string, sizeof(string), "FAMILY Color: LightBlue");
  1450. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1451. }
  1452. else if(!strcmp(params, "blue", true))
  1453. {
  1454. FamInfo[idx][fColor] = 0x074BFF9F;
  1455. format(string, sizeof(string), "FAMILY Color: Blue");
  1456. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1457. }
  1458. else if(!strcmp(params, "purple", true))
  1459. {
  1460. FamInfo[idx][fColor] = 0xB500FF9F;
  1461. format(string, sizeof(string), "FAMILY Color: purple");
  1462. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1463. }
  1464. else if(!strcmp(params, "green", true))
  1465. {
  1466. FamInfo[idx][fColor] = 0x00C3009F;
  1467. format(string, sizeof(string), "FAMILY Color: Green");
  1468. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1469. }
  1470. else if(!strcmp(params, "yellow", true))
  1471. {
  1472. FamInfo[idx][fColor] = 0xFFF3009F;
  1473. format(string, sizeof(string), "FAMILY Color: Yellow");
  1474. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1475. }
  1476. else if(!strcmp(params, "lightred", true))
  1477. {
  1478. FamInfo[idx][fColor] = 0xFF00009F;
  1479. format(string, sizeof(string), "FAMILY Color: LightRed");
  1480. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1481. }
  1482. else if(!strcmp(params, "black", true))
  1483. {
  1484. FamInfo[idx][fColor] = 0x0000009F;
  1485. format(string, sizeof(string), "FAMILY Color: Black");
  1486. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1487. }
  1488. else if(!strcmp(params, "gold", true))
  1489. {
  1490. FamInfo[idx][fColor] = 0xCFFF009F;
  1491. format(string, sizeof(string), "FAMILY Color: Gold");
  1492. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1493. }
  1494. else if(!strcmp(params, "grey", true))
  1495. {
  1496. FamInfo[idx][fColor] = 0x7674769F;
  1497. format(string, sizeof(string), "FAMILY Color: Grey");
  1498. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1499. }
  1500. else if(!strcmp(params, "pink", true))
  1501. {
  1502. FamInfo[idx][fColor] = 0xFF3AD69F;
  1503. format(string, sizeof(string), "FAMILY Color: Pink");
  1504. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  1505. }
  1506. SaveFamilies();
  1507. }
  1508. else SendClientMessage(playerid, COLOR_GREY, "Invalid option.");
  1509. return 1;
  1510. }
  1511.  
  1512. CMD:fcreate(playerid, params[])
  1513. {
  1514. new string[128], playerb, idx;
  1515.  
  1516. if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Connected To Server.");
  1517. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Admin.");
  1518. if(sscanf(params, "ui", playerb, idx)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fcreate [id/PartOfName] [slot]");
  1519.  
  1520. if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "ID Bazikon Vared Shode Eshtebah Ast.");
  1521. if(idx < 1 || idx > 10) return SendClientMessage(playerid, COLOR_GREY, "Families are between 1 and 10.");
  1522. if(FamInfo[idx][fTaken]) return SendClientMessage(playerid, COLOR_GREY, "Family slot is already in use.");
  1523. FamInfo[idx][fTaken] = 1;
  1524. FamInfo[idx][fMembers] ++;
  1525. PlayerInfo[playerb][pFam] = idx;
  1526. PlayerInfo[playerb][pFamRank] = 6;
  1527. FamInfo[idx][fStrikes] = 0;
  1528. FamInfo[idx][fHq] = 0;
  1529. SaveChar(playerid);
  1530. format(FamInfo[idx][fLeader], MAX_PLAYER_NAME, "%s", RPN(playerb));
  1531. format(string, sizeof(string), "{FF0000} %s has given %s family slot %d.", NORPN(playerid), NORPN(playerb), idx);
  1532. SendClientMessage(playerid,COLOR_WHITE,string);
  1533. format(string, sizeof(string), " %s has given you family slot {33AA33}%d {33CCFF}ownership.", NORPN(playerid), idx);
  1534. SendClientMessage(playerb, COLOR_LIGHTBLUE, string);
  1535. return 1;
  1536. }
  1537.  
  1538. CMD:fstrike(playerid, params[])
  1539. {
  1540. new string[128], idx;
  1541. if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_GREY, "First Connect To Server.");
  1542. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Admin.");
  1543.  
  1544. if(sscanf(params, "i", idx)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fstrike [slot]");
  1545. if(idx < 1 || idx > 15) return SendClientMessage(playerid, COLOR_GREY, "Families are between 1 and 15.");
  1546. if(!FamInfo[idx][fTaken]) return SendClientMessage(playerid, COLOR_GREY, "Family slot is not being used.");
  1547. FamInfo[idx][fStrikes] ++;
  1548. format(string, sizeof(string), "{FF0000} %s has given family slot %d a strike.", NORPN(playerid), idx);
  1549. SendClientMessage(playerid,COLOR_WHITE,string);
  1550. if(FamInfo[idx][fStrikes] >= 3)
  1551. {
  1552. format(string, sizeof(string), "{FF0000} %s has disbanded family slot %d. (3 Strikes)", NORPN(playerid), idx);
  1553. SendClientMessage(playerid,COLOR_WHITE,string);
  1554. for(new i=0;i<MAX_PLAYERS;i++)
  1555. {
  1556. if(IsPlayerConnected(i))
  1557. {
  1558. if(PlayerInfo[i][pFam] == idx)
  1559. {
  1560. PlayerInfo[i][pFam] = 0;
  1561. PlayerInfo[i][pFamRank] = 0;
  1562. format(string, sizeof(string), " %s has disbanded your family, you have been autokicked from the family.", NORPN(playerid));
  1563. SendClientMessage(i, COLOR_LIGHTBLUE, string);
  1564. }
  1565. }
  1566. }
  1567. FamInfo[idx][fTaken] = 0;
  1568. format(FamInfo[idx][fName], 32, "None");
  1569. format(FamInfo[idx][fMOTD], 64, "");
  1570. FamInfo[idx][fColor] = 0;
  1571. format(FamInfo[idx][fLeader], MAX_PLAYER_NAME, "None");
  1572. FamInfo[idx][fMembers] = 0;
  1573. FamInfo[idx][fSafeX] = 0;
  1574. FamInfo[idx][fSafeY] = 0;
  1575. FamInfo[idx][fSafeZ] = 0;
  1576. FamInfo[idx][fMoney] = 0;
  1577. FamInfo[idx][fMats] = 0;
  1578. FamInfo[idx][fWeed] = 0;
  1579. FamInfo[idx][fCrack] = 0;
  1580. format(FamInfo[idx][fRank1], 32, "");
  1581. format(FamInfo[idx][fRank2], 32, "");
  1582. format(FamInfo[idx][fRank3], 32, "");
  1583. format(FamInfo[idx][fRank4], 32, "");
  1584. format(FamInfo[idx][fRank5], 32, "");
  1585. format(FamInfo[idx][fRank6], 32, "");
  1586. FamInfo[idx][fSkins][0] = 0;
  1587. FamInfo[idx][fSkins][1] = 0;
  1588. FamInfo[idx][fSkins][2] = 0;
  1589. FamInfo[idx][fSkins][3] = 0;
  1590. FamInfo[idx][fSkins][4] = 0;
  1591. FamInfo[idx][fSkins][5] = 0;
  1592. FamInfo[idx][fSkins][6] = 0;
  1593. DestroyDynamicPickup(FamInfo[idx][fPickup]);
  1594. DestroyDynamic3DTextLabel(FamInfo[idx][fText]);
  1595. for(new veh=0; veh<5; veh++)
  1596. {
  1597. if(FamInfo[idx][fVehType][veh])
  1598. {
  1599. FamInfo[idx][fVehType][veh] = 0;
  1600. FamInfo[idx][fVehCoX][veh] = 0;
  1601. FamInfo[idx][fVehCoY][veh] = 0;
  1602. FamInfo[idx][fVehCoZ][veh] = 0;
  1603. FamInfo[idx][fVehRot][veh] = 0;
  1604. FamInfo[idx][fVehCol1][veh] = 0;
  1605. FamInfo[idx][fVehCol2][veh] = 0;
  1606. DestroyVehicle(FamInfo[idx][fVeh][veh]);
  1607. }
  1608. }
  1609. }
  1610. return 1;
  1611. }
  1612.  
  1613. CMD:fstrikes(playerid, params[])
  1614. {
  1615. new string[128], idx, amount;
  1616. if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_GREY, "First Connect To Server.");
  1617. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Admin.");
  1618.  
  1619. if(sscanf(params, "ii", idx, amount)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fstrike [slot] [strikes]");
  1620. if(idx < 1 || idx > 15) return SendClientMessage(playerid, COLOR_GREY, "Families are between 1 and 15.");
  1621. if(amount < 0 || amount > 3) return SendClientMessage(playerid, COLOR_GREY, "Strikes are between 0 and 3.");
  1622. if(!FamInfo[idx][fTaken]) return SendClientMessage(playerid, COLOR_GREY, "Family slot is not being used.");
  1623. FamInfo[idx][fStrikes] ++;
  1624. format(string, sizeof(string), "{FF0000} %s has set family slot %d's strikes to %d.", NORPN(playerid), idx, amount);
  1625. SendClientMessage(playerid,COLOR_WHITE,string);
  1626. FamInfo[idx][fStrikes] = amount;
  1627. if(FamInfo[idx][fStrikes] >= 3)
  1628. {
  1629. format(string, sizeof(string), "{FF0000} %s has disbanded family slot %d. (3 Strikes)", NORPN(playerid), idx);
  1630. SendClientMessage(playerid,COLOR_WHITE,string);
  1631. for(new i=0;i<MAX_PLAYERS;i++)
  1632. {
  1633. if(IsPlayerConnected(i))
  1634. {
  1635. if(PlayerInfo[i][pFam] == idx)
  1636. {
  1637. PlayerInfo[i][pFam] = 0;
  1638. PlayerInfo[i][pFamRank] = 0;
  1639. format(string, sizeof(string), " %s has disbanded your family, you have been autokicked from the family.", NORPN(playerid));
  1640. SendClientMessage(i, COLOR_LIGHTBLUE, string);
  1641. }
  1642. }
  1643. }
  1644. FamInfo[idx][fTaken] = 0;
  1645. format(FamInfo[idx][fName], 32, "None");
  1646. format(FamInfo[idx][fMOTD], 64, "");
  1647. FamInfo[idx][fColor] = 0;
  1648. format(FamInfo[idx][fLeader], MAX_PLAYER_NAME, "None");
  1649. FamInfo[idx][fMembers] = 0;
  1650. FamInfo[idx][fSafeX] = 0;
  1651. FamInfo[idx][fSafeY] = 0;
  1652. FamInfo[idx][fSafeZ] = 0;
  1653. FamInfo[idx][fMoney] = 0;
  1654. FamInfo[idx][fMats] = 0;
  1655. FamInfo[idx][fWeed] = 0;
  1656. FamInfo[idx][fCrack] = 0;
  1657. format(FamInfo[idx][fRank1], 32, "");
  1658. format(FamInfo[idx][fRank2], 32, "");
  1659. format(FamInfo[idx][fRank3], 32, "");
  1660. format(FamInfo[idx][fRank4], 32, "");
  1661. format(FamInfo[idx][fRank5], 32, "");
  1662. format(FamInfo[idx][fRank6], 32, "");
  1663. FamInfo[idx][fSkins][0] = 0;
  1664. FamInfo[idx][fSkins][1] = 0;
  1665. FamInfo[idx][fSkins][2] = 0;
  1666. FamInfo[idx][fSkins][3] = 0;
  1667. FamInfo[idx][fSkins][4] = 0;
  1668. FamInfo[idx][fSkins][5] = 0;
  1669. FamInfo[idx][fSkins][6] = 0;
  1670. DestroyDynamicPickup(FamInfo[idx][fPickup]);
  1671. DestroyDynamic3DTextLabel(FamInfo[idx][fText]);
  1672. for(new veh=0; veh<5; veh++)
  1673. {
  1674. if(FamInfo[idx][fVehType][veh])
  1675. {
  1676. FamInfo[idx][fVehType][veh] = 0;
  1677. FamInfo[idx][fVehCoX][veh] = 0;
  1678. FamInfo[idx][fVehCoY][veh] = 0;
  1679. FamInfo[idx][fVehCoZ][veh] = 0;
  1680. FamInfo[idx][fVehRot][veh] = 0;
  1681. FamInfo[idx][fVehCol1][veh] = 0;
  1682. FamInfo[idx][fVehCol2][veh] = 0;
  1683. DestroyVehicle(FamInfo[idx][fVeh][veh]);
  1684. }
  1685. }
  1686. }
  1687. return 1;
  1688. }
  1689.  
  1690. CMD:buyhq(playerid,params[])
  1691. {
  1692. new string[256], done;
  1693. if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_GREY, "First Connect To Server.");
  1694. if(PlayerInfo[playerid][pFamRank] < 6) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Family Leader");
  1695. if(FamInfo[PlayerInfo[playerid][pFam]][fHq] != 0) return SendClientMessage(playerid, COLOR_GREY, "Your Family Has a Hq Cant To buy");
  1696. for(new idx=1; idx<MAX_HQ; idx++)
  1697. {
  1698. if(IsPlayerInRangeOfPoint(playerid, 2, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ]))
  1699. {
  1700. if(!strcmp("The State", HqInfo[idx][qOwner], false))
  1701. {
  1702. if(FamInfo[PlayerInfo[playerid][pFam]][fMoney] < HqInfo[idx][qPrice]) return SendClientMessage(playerid, COLOR_GREY, "Your family Has not enough money in its safe");
  1703. FamInfo[PlayerInfo[playerid][pFam]][fMoney] -= HqInfo[idx][qPrice];
  1704. FamInfo[PlayerInfo[playerid][pFam]][fHq] = idx;
  1705. format(HqInfo[idx][qOwner], 42, "%s", RPFaN(playerid));
  1706. format(string, sizeof(string), ""HQ"%s (%d)\n[HQ Owner: %s ]", HqInfo[idx][qText] , idx, HqInfo[idx][qOwner]);
  1707. UpdateDynamic3DTextLabelText(HqInfo[idx][qTextID], COLOR_WHITE, string);
  1708. SendClientMessage(playerid, COLOR_WHITE, "You bought a Hq For Your Family.");
  1709. format(string, sizeof(string), "%s has bought Hq id %d.", RPN(playerid), idx);
  1710. idx = MAX_HQ;
  1711. SaveHq();
  1712. SaveFamilies();
  1713. done = 1;
  1714. }
  1715. if(idx == MAX_HQ-1 && !done)
  1716. {
  1717. SendClientMessage(playerid, COLOR_GREY, "this hq bought in past.");
  1718. }
  1719. }
  1720. if(idx == MAX_HQ-1 && !done)
  1721. {
  1722. SendClientMessage(playerid, COLOR_GREY, "you are not near any hq.");
  1723. }
  1724. }
  1725. return 1;
  1726. }
  1727.  
  1728. CMD:qedit(playerid, params[])
  1729. {
  1730. new idx, text[128], string[128];
  1731. if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_GREY, "First connect.");
  1732. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not an authorized to use this command.");
  1733. if(sscanf(params, "s[128]", params))
  1734. {
  1735. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /qedit [option] [Hqid]");
  1736. SendClientMessage(playerid, COLOR_GREY, "OPTIONS: Pickup | Text | Interior | Exterior | Price");
  1737. return 1;
  1738. }
  1739. if(!strcmp(params, "pickup", true, 6))
  1740. {
  1741. new pickup;
  1742. if(sscanf(params, "s[6]ii", params, idx, pickup)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /qedit pickup [hqid] [pickupid]");
  1743. if(HqInfo[idx][qPrice] == 0) return SendClientMessage(playerid, COLOR_GREY, "Invalid hq id.");
  1744. HqInfo[idx][qPickup] = pickup;
  1745. if(IsValidDynamicPickup(HqInfo[idx][qPickups]))
  1746. {
  1747. DestroyDynamicPickup(HqInfo[idx][qPickups]);
  1748. }
  1749. HqInfo[idx][qPickups] = CreateDynamicPickup(HqInfo[idx][qPickup], 1, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ], HqInfo[idx][qVW], HqInfo[idx][qInt]);
  1750. format(string, sizeof(string), " You have set hq ID %d's pickup to %d", idx, pickup);
  1751. SendClientMessage(playerid, COLOR_WHITE, string);
  1752. SaveHq();
  1753. }
  1754. if(!strcmp(params, "text", true, 4))
  1755. {
  1756. if(sscanf(params, "s[128]is[128]", params, idx, text)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /qedit text [hqid] [text]");
  1757.  
  1758. if(HqInfo[idx][qPrice] == 0) return SendClientMessage(playerid, COLOR_GREY, "Invalid hq id.");
  1759. format(HqInfo[idx][qText], 128, "%s", text);
  1760. if(!strcmp("The State", HqInfo[idx][qOwner]))format(string, sizeof(string), ""HQ"%s (%d)\n[HQ Owner: %s ]\n Status:[For Sell]\nPrice:"WARN"%s", HqInfo[idx][qText] , idx, HqInfo[idx][qOwner],FormatNumber(HqInfo[idx][qPrice]));
  1761. else format(string, sizeof(string), ""HQ"%s (%d)\n[HQ Owner: %s ]", HqInfo[idx][qText] , idx, HqInfo[idx][qOwner]);
  1762. UpdateDynamic3DTextLabelText(HqInfo[idx][qTextID], COLOR_WHITE, string);
  1763. format(string, sizeof(string), " You have set hq ID %d's text to %s", idx, text);
  1764. SendClientMessage(playerid, COLOR_WHITE, string);
  1765. SaveHq();
  1766. }
  1767. if(!strcmp(params, "interior", true, 8))
  1768. {
  1769. if(sscanf(params, "s[128]i", params, idx, text)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /qedit interior [hqid]");
  1770. if(HqInfo[idx][qPrice] == 0) return SendClientMessage(playerid, COLOR_GREY, "Invalid hq id.");
  1771. HqInfo[idx][qiInt] = GetPlayerInterior(playerid);
  1772. HqInfo[idx][qiVW] = GetPlayerVirtualWorld(playerid);
  1773. GetPlayerPos(playerid, HqInfo[idx][qiX], HqInfo[idx][qiY], HqInfo[idx][qiZ]);
  1774. format(string, sizeof(string), " You have set hq ID %d's interior to your coordinates. (Int: %d | VW: %d)", idx, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  1775. SendClientMessage(playerid, COLOR_WHITE, string);
  1776. SaveHq();
  1777. }
  1778. if(!strcmp(params, "exterior", true, 8))
  1779. {
  1780. if(sscanf(params, "s[128]i", params, idx, text)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /qedit interior [hqid]");
  1781. if(HqInfo[idx][qPrice] == 0) return SendClientMessage(playerid, COLOR_GREY, "Invalid hq id.");
  1782. HqInfo[idx][qInt] = GetPlayerInterior(playerid);
  1783. HqInfo[idx][qVW] = GetPlayerVirtualWorld(playerid);
  1784. GetPlayerPos(playerid, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ]);
  1785. DestroyDynamicPickup(HqInfo[idx][qPickups]);
  1786. HqInfo[idx][qPickups] = CreateDynamicPickup(HqInfo[idx][qPickup], 1, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ], HqInfo[idx][qVW], HqInfo[idx][qInt]);
  1787. DestroyDynamic3DTextLabel(HqInfo[idx][qTextID]);
  1788. if(!strcmp("The State", HqInfo[idx][qOwner]))format(string, sizeof(string), ""HQ"%s (%d)\n[HQ Owner: %s ]\n Status:[For Sell]\nPrice:"WARN"%s", HqInfo[idx][qText] , idx, HqInfo[idx][qOwner],FormatNumber(HqInfo[idx][qPrice]));
  1789. else format(string, sizeof(string), ""HQ"%s (%d)\n[HQ Owner: %s ]", HqInfo[idx][qText] , idx, HqInfo[idx][qOwner]);
  1790. HqInfo[idx][qTextID] = CreateDynamic3DTextLabel(string, COLOR_WHITE, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ]+0.3, 15);
  1791. format(string, sizeof(string), " You have set hq ID %d's exterior to your coordinates. (Int: %d | VW: %d)", idx, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  1792. SendClientMessage(playerid, COLOR_WHITE, string);
  1793. SaveHq();
  1794. }
  1795. if(!strcmp(params, "price", true, 5))
  1796. {
  1797. new price;
  1798. if(sscanf(params, "s[128]ii", params, idx, price)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /qedit price [hqid] [price]");
  1799. if(HqInfo[idx][qPrice] == 0) return SendClientMessage(playerid, COLOR_GREY, "Invalid hq id.");
  1800. HqInfo[idx][qPrice] = price;
  1801. if(!strcmp("The State", HqInfo[idx][qOwner]))format(string, sizeof(string), ""HQ"%s (%d)\n[HQ Owner: %s ]\n Status:[For Sell]\nPrice:"WARN"%s", HqInfo[idx][qText] , idx, HqInfo[idx][qOwner],FormatNumber(HqInfo[idx][qPrice]));
  1802. HqInfo[idx][qTextID] = CreateDynamic3DTextLabel(string, COLOR_WHITE, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ]+0.3, 15);
  1803. format(string, sizeof(string), " You have set hq ID %d's Price to %d", idx, price);
  1804. SendClientMessage(playerid, COLOR_WHITE, string);
  1805. SaveHq();
  1806. }
  1807.  
  1808. return 1;
  1809. }
  1810.  
  1811. CMD:gotohq(playerid, params[])
  1812. {
  1813. new idx, string[128];
  1814. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Admin.");
  1815.  
  1816. if(sscanf(params, "i", idx)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gotohq [hqid]");
  1817. if(!HqInfo[idx][qPickup]) return SendClientMessage(playerid, COLOR_GREY, "Invalid hq id.");
  1818. SetPlayerInterior(playerid, HqInfo[idx][qInt]);
  1819. SetPlayerVirtualWorld(playerid, HqInfo[idx][qVW]);
  1820. SetPlayerPos(playerid, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ]);
  1821. format(string, sizeof(string), " You have teleported to hq ID %d.", idx);
  1822. SendClientMessage(playerid, COLOR_WHITE, string);
  1823. return 1;
  1824. }
  1825.  
  1826. CMD:createhq(playerid,params[])
  1827. {
  1828. new string[128],pickup,price;
  1829. if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, COLOR_GREY, "You are not Admin.");
  1830. if(sscanf(params, "iis[128]", pickup,price,params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /createhq [pickup] [price] [text]");
  1831. if(price < 1)return SCM(playerid,COLOR_WHITE,"wrong price");
  1832. for(new idx=1; idx<MAX_HQ; idx++)
  1833. {
  1834. if(!HqInfo[idx][qPrice])
  1835. {
  1836. format(HqInfo[idx][qText],128,"%s",params);
  1837. HqInfo[idx][qPickup] = pickup;
  1838. HqInfo[idx][qPrice] = price;
  1839. format(HqInfo[idx][qOwner],32,"The State");
  1840. GetPlayerPos(playerid, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ]);
  1841. HqInfo[idx][qInt] = GetPlayerInterior(playerid);
  1842. HqInfo[idx][qVW] = GetPlayerVirtualWorld(playerid);
  1843. format(string, sizeof(string), ""HQ"%s (%d)\n Status[For Sell]\nOwner:[ %s ]\n Price:"WARN"%s",params, idx,HqInfo[idx][qOwner],FormatNumber(HqInfo[idx][qPrice]));
  1844. HqInfo[idx][qTextID] = CreateDynamic3DTextLabel(string, COLOR_WHITE, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ]+0.3, 15);
  1845. HqInfo[idx][qPickups] = CreateDynamicPickup(pickup, 1, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ], HqInfo[idx][qVW], HqInfo[idx][qInt]);
  1846. format(string, sizeof(string), "{FF0000}%s has created HQ ID %d. (Int: %d | VW: %d)", RPN(playerid), idx, HqInfo[idx][qInt], HqInfo[idx][qVW]);
  1847. SaveHq();
  1848. idx = MAX_HQ;
  1849. }
  1850. }
  1851. return 1;
  1852. }
  1853.  
  1854. CMD:sellhqtomarket(playerid, params[])
  1855. {
  1856. new string[128];
  1857. if(PlayerInfo[playerid][pFamRank] < 6) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Family Leader.");
  1858. if(FamInfo[PlayerInfo[playerid][pFam]][fHq] == 0) return SendClientMessage(playerid, COLOR_GREY, "your family has not any hq");
  1859. if(sscanf(params, "s[8]", params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /sellhqtomarket confirm");
  1860. if(!strcmp(params, "confirm", true))
  1861. {
  1862. new done;
  1863. new idx = FamInfo[PlayerInfo[playerid][pFam]][fHq];
  1864. if(IsPlayerInRangeOfPoint(playerid, 2, HqInfo[idx][qX], HqInfo[idx][qY], HqInfo[idx][qZ]))
  1865. {
  1866. FamInfo[PlayerInfo[playerid][pFam]][fMoney] += HqInfo[idx][qPrice];
  1867. format(HqInfo[idx][qOwner], 32, "The State");
  1868. format(string, sizeof(string), ""HQ"%s (%d)\n Status[For Sell]\nOwner:[ %s ]\n Price:"WARN"%s",params, idx,HqInfo[idx][qOwner],FormatNumber(HqInfo[idx][qPrice]));
  1869. UpdateDynamic3DTextLabelText(HqInfo[idx][qTextID], COLOR_WHITE, string);
  1870. SendClientMessage(playerid, COLOR_WHITE, " You have successfully sold your family Hq to The State(money Sended To Safe).");
  1871. format(string, sizeof(string), "%s has sold His Family Hq id %d to the market.", RPN(playerid), idx);
  1872. FamInfo[PlayerInfo[playerid][pFam]][fHq] = 0;
  1873. SaveFamilies();
  1874. SaveHq();
  1875. done = 1;
  1876. }
  1877. if(!done)
  1878. {
  1879. SendClientMessage(playerid, COLOR_GREY, "You are not near your Family Hq.");
  1880. return 1;
  1881. }
  1882. }
  1883. return 1;
  1884. }
  1885.  
  1886. CMD:deletehq(playerid,params[])
  1887. {
  1888. new idx, string[128];
  1889. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Admin.");
  1890.  
  1891. if(sscanf(params, "i", idx)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /deletehq [hqid]");
  1892. if(!HqInfo[idx][qPrice]) return SendClientMessage(playerid, COLOR_GREY, "Invalid hq id.");
  1893. HqInfo[idx][qPickup] = 0;
  1894. HqInfo[idx][qX] = 0;
  1895. HqInfo[idx][qY] = 0;
  1896. HqInfo[idx][qZ] = 0;
  1897. HqInfo[idx][qiZ] = 0;
  1898. HqInfo[idx][qiX] = 0;
  1899. HqInfo[idx][qiY] = 0;
  1900. HqInfo[idx][qInt] = 0;
  1901. HqInfo[idx][qVW] = 0;
  1902. HqInfo[idx][qiVW] = 0;
  1903. HqInfo[idx][qiInt] = 0;
  1904. HqInfo[idx][qPrice] = 0;
  1905. FamInfo[idx][fHq] = 0;
  1906. format(HqInfo[idx][qText], 32, "");
  1907. format(HqInfo[idx][qOwner], 32, "");
  1908. DestroyDynamicPickup(HqInfo[idx][qPickups]);
  1909. DestroyDynamic3DTextLabel(HqInfo[idx][qTextID]);
  1910. format(string, sizeof(string), "{FF0000} %s has deleted hq ID %d.", RPN(playerid), idx);
  1911.  
  1912. return 1;
  1913. }
  1914.  
  1915. CMD:fdelete(playerid, params[])
  1916. {
  1917. new string[128], idx;
  1918. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "you are not Admin.");
  1919.  
  1920. if(sscanf(params, "i", idx)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fdelete [slot]");
  1921. if(idx < 1 || idx > 10) return SendClientMessage(playerid, COLOR_GREY, "Families are between 1 and 10.");
  1922. if(!FamInfo[idx][fTaken]) return SendClientMessage(playerid, COLOR_GREY, "Family slot is not being used.");
  1923. format(string, sizeof(string), "{FF0000} %s has disbanded family slot %d", NORPN(playerid), idx);
  1924. SendClientMessage(playerid,COLOR_WHITE,string);
  1925. for(new i=0;i<MAX_PLAYERS;i++)
  1926. {
  1927. if(IsPlayerConnected(i))
  1928. {
  1929. if(PlayerInfo[i][pFam] == idx)
  1930. {
  1931. PlayerInfo[i][pFam] = 0;
  1932. PlayerInfo[i][pFamRank] = 0;
  1933. format(string, sizeof(string), " %s has disbanded your family, you have been autokicked from the family.", NORPN(playerid));
  1934. SendClientMessage(i, COLOR_LIGHTBLUE, string);
  1935. }
  1936. }
  1937. }
  1938. FamInfo[idx][fTaken] = 0;
  1939. format(FamInfo[idx][fName], 32, "None");
  1940. format(FamInfo[idx][fMOTD], 64, "");
  1941. FamInfo[idx][fColor] = 0;
  1942. format(FamInfo[idx][fLeader], MAX_PLAYER_NAME, "None");
  1943. FamInfo[idx][fMembers] = 0;
  1944. FamInfo[idx][fSafeX] = 0;
  1945. FamInfo[idx][fSafeY] = 0;
  1946. FamInfo[idx][fSafeZ] = 0;
  1947. FamInfo[idx][fMoney] = 0;
  1948. FamInfo[idx][fMats] = 0;
  1949. FamInfo[idx][fWeed] = 0;
  1950. FamInfo[idx][fCrack] = 0;
  1951. if(FamInfo[idx][fHq] != 0)
  1952. {
  1953. format(HqInfo[FamInfo[idx][fHq]][qOwner], 32, "The State");
  1954. format(string, sizeof(string), ""HQ"%s (%d)\n Status[For Sell]\nOwner:[ %s ]\n Price:"WARN"%s",HqInfo[FamInfo[idx][fHq]][qText], idx,HqInfo[FamInfo[idx][fHq]][qOwner],FormatNumber(HqInfo[FamInfo[idx][fHq]][qPrice]));
  1955. UpdateDynamic3DTextLabelText(HqInfo[FamInfo[idx][fHq]][qTextID], COLOR_WHITE, string);
  1956. FamInfo[idx][fHq] = 0;
  1957. }
  1958. format(FamInfo[idx][fRank1], 32, "");
  1959. format(FamInfo[idx][fRank2], 32, "");
  1960. format(FamInfo[idx][fRank3], 32, "");
  1961. format(FamInfo[idx][fRank4], 32, "");
  1962. format(FamInfo[idx][fRank5], 32, "");
  1963. format(FamInfo[idx][fRank6], 32, "");
  1964. FamInfo[idx][fSkins][0] = 0;
  1965. FamInfo[idx][fSkins][1] = 0;
  1966. FamInfo[idx][fSkins][2] = 0;
  1967. FamInfo[idx][fSkins][3] = 0;
  1968. FamInfo[idx][fSkins][4] = 0;
  1969. FamInfo[idx][fSkins][5] = 0;
  1970. FamInfo[idx][fSkins][6] = 0;
  1971. DestroyDynamicPickup(FamInfo[idx][fPickup]);
  1972. DestroyDynamic3DTextLabel(FamInfo[idx][fText]);
  1973. for(new veh=0; veh<5; veh++)
  1974. {
  1975. if(FamInfo[idx][fVehType][veh])
  1976. {
  1977. FamInfo[idx][fVehType][veh] = 0;
  1978. FamInfo[idx][fVehCoX][veh] = 0;
  1979. FamInfo[idx][fVehCoY][veh] = 0;
  1980. FamInfo[idx][fVehCoZ][veh] = 0;
  1981. FamInfo[idx][fVehRot][veh] = 0;
  1982. FamInfo[idx][fVehCol1][veh] = 0;
  1983. FamInfo[idx][fVehCol2][veh] = 0;
  1984. DestroyVehicle(FamInfo[idx][fVeh][veh]);
  1985. }
  1986. }
  1987. return 1;
  1988. }
  1989.  
  1990. CMD:attack(playerid,params[])
  1991. {
  1992.  
  1993. if(PlayerInfo[playerid][pFamRank] < 5) return SendClientMessage(playerid, COLOR_GREY, "You are not a family leader\rank +5.");
  1994. if(OnWar[playerid] != 9999)return SCM(playerid,COLOR_WHITE,"You Are in War Now.");
  1995. new turf = GetPlayerTurf(playerid);
  1996. if(turf == -1) return SCM(playerid,COLOR_WHITE,"shoma dar hich turfi nistid.");
  1997. if(PlayerInfo[playerid][pFam] == TurfInfo[turf][tOwner])return SCM(playerid,COLOR_WHITE,"You Cant Attack To Your Turf.");
  1998. if(TurfAttacker[turf] != 9999) return SCM(playerid,COLOR_WHITE,"This Turf is Already in war.");
  1999. if(FamInfo[PlayerInfo[playerid][pFam]][fColor] == 0) return SCM(playerid,COLOR_WHITE,"First Ask an admin to choose a color for your family.");
  2000. new famil = PlayerInfo[playerid][pFam];
  2001. new familtaraf = famil;
  2002. new rang;
  2003. new turfmembers = TurfInfo[turf][tOwner];
  2004. rang = FamInfo[familtaraf][fColor];
  2005. for(new i=0;i<MAX_PLAYERS;i++)
  2006. {
  2007. if(PlayerInfo[i][pFam] == TurfInfo[turf][tOwner])
  2008. {
  2009. GangZoneFlashForPlayer(i,TurfInfo[turf][tGangZ],rang);
  2010. new stringg[512];
  2011. format(stringg,512,"[TurfWarn]:"HQ" Turf ID %i Attacked By : %s Time Remaining: "WARN"00:30:00",turf,FamInfo[famil][fName]);
  2012. SCM(i,COLOR_LIGHTBLUE,stringg);
  2013. KillsAttacker[i] = 0;
  2014. DeathsAttacker[i] = 0;
  2015. OurKills[i] = 0;
  2016. OurDeaths[i] = 0;
  2017. OnWar[i] = turf;
  2018. }
  2019. if(PlayerInfo[i][pFam] == famil)
  2020. {
  2021. GangZoneFlashForPlayer(i,TurfInfo[turf][tGangZ],rang);
  2022. new stringg[512];
  2023. format(stringg,512,"[TurfWarn]:"HQ"Your Family Attacked turf ID: (%i) TurfOwner: %s Time Remaining: "WARN"00:30:00",turf,FamInfo[famil][fName]);
  2024. SCM(i,COLOR_LIGHTBLUE,stringg);
  2025. KillsAttacker[i] = 0;
  2026. DeathsAttacker[i] = 0;
  2027. OurKills[i] = 0;
  2028. OurDeaths[i] = 0;
  2029. OnWar[i] = turf;
  2030. }
  2031. }
  2032. TurfAttacker[turf] = famil;
  2033. TurfKhod[turf] = turfmembers;
  2034. KillsAttackerturf[turf] = 0;
  2035. DeathsAttackerturf[turf] = 0;
  2036. OurKillsturf[turf] = 0;
  2037. OurDeathsturf[turf] = 0;
  2038. AttackerScore[turf] = 0;
  2039. OurScore[turf] = 0;
  2040. TurfTime[turf] = 1800;
  2041.  
  2042. return 1;
  2043. }
  2044.  
  2045. CMD:families(playerid, params[])
  2046. {
  2047. new string[128];
  2048. for(new idx=1; idx<MAX_FAMILIES; idx++)
  2049. {
  2050. format(string, sizeof(string), "%d) Name: %s | Leader: %s | Members: %d | Strikes: %d", idx, FamInfo[idx][fName], FamInfo[idx][fLeader], FamInfo[idx][fMembers], FamInfo[idx][fStrikes]);
  2051. SendClientMessage(playerid, COLOR_WHITE, string);
  2052. }
  2053. return 1;
  2054. }
  2055.  
  2056. CMD:famedit(playerid, params[])
  2057. {
  2058. new string[128], option[32], idx, skin, skinid;
  2059. if(PlayerInfo[playerid][pFamRank] < 6) return SendClientMessage(playerid, COLOR_GREY, "You Are Not Family Leader.");
  2060. idx = PlayerInfo[playerid][pFam];
  2061. if(sscanf(params, "s[32]", option))
  2062. {
  2063. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /famedit [option]");
  2064. SendClientMessage(playerid, COLOR_GREY, "OPTIONS: name | rankname | safe | motd | skin | Color | hqtext");
  2065. return 1;
  2066. }
  2067. if(!strcmp(option, "name", true, 4))
  2068. {
  2069. if(sscanf(params, "s[32]s[32]", option, params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /famedit name [name]");
  2070. format(FamInfo[idx][fName], 32, "%s", params);
  2071. format(string, sizeof(string), " You have set your family's name to {33AA33}%s", params);
  2072. SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
  2073. format(string, sizeof(string), "%s's Safe", FamInfo[idx][fName]);
  2074. UpdateDynamic3DTextLabelText(FamInfo[idx][fText], COLOR_WHITE, string);
  2075. if(FamInfo[idx][fHq] != 0)
  2076. {
  2077. format(HqInfo[FamInfo[idx][fHq]][qOwner], 32, "%s",FamInfo[idx][fName]);
  2078. format(string, sizeof(string), ""HQ"%s (%d)\nOwner:[ %s ]",HqInfo[FamInfo[idx][fHq]][qText], idx,HqInfo[FamInfo[idx][fHq]][qOwner]);
  2079. UpdateDynamic3DTextLabelText(HqInfo[FamInfo[idx][fHq]][qTextID], COLOR_WHITE, string);
  2080. }
  2081. }
  2082. else if(!strcmp(option, "rankname", true, 8))
  2083. {
  2084. new rank;
  2085. if(sscanf(params, "s[32]is[32]", option, rank, params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /famedit rankname [rank] [name]");
  2086. if(rank < 0 || rank > 6) return SendClientMessage(playerid, COLOR_GREY, "Family ranks are between 1 and 6.");
  2087. switch(rank)
  2088. {
  2089. case 1: format(FamInfo[idx][fRank1], 32, "%s", params);
  2090. case 2: format(FamInfo[idx][fRank2], 32, "%s", params);
  2091. case 3: format(FamInfo[idx][fRank3], 32, "%s", params);
  2092. case 4: format(FamInfo[idx][fRank4], 32, "%s", params);
  2093. case 5: format(FamInfo[idx][fRank5], 32, "%s", params);
  2094. case 6: format(FamInfo[idx][fRank6], 32, "%s", params);
  2095. }
  2096. format(string, sizeof(string), " You have set your family rank %d's name to {33AA33}%s", rank, params);
  2097. SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
  2098. }
  2099. else if(!strcmp(option, "safe", true, 4))
  2100. {
  2101. new confirm[8];
  2102. if(PlayerInfo[playerid][pFamRank] < 6) return SendClientMessage(playerid, COLOR_GREY, "Shoma Sath Dast Resi Be In CMD Ra Nadarid.");
  2103. if(FamInfo[idx][fSafeX] != 0 && FamInfo[idx][fSafeY] != 0 && FamInfo[idx][fSafeZ] != 0)
  2104. {
  2105. // SSCANF Check
  2106. if(sscanf(params, "s[32]s[8]", option, confirm))
  2107. {
  2108. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /famedit safe confirm");
  2109. SendClientMessage(playerid, COLOR_LIGHTRED, " Changing your family's safe location will cost $50,000.");
  2110. return 1;
  2111. }
  2112. // Confirm Check
  2113. if(strcmp(confirm, "confirm", true, 8))
  2114. {
  2115. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /famedit safe confirm");
  2116. SendClientMessage(playerid, COLOR_LIGHTRED, " Changing your family's safe location will cost $50,000.");
  2117. return 1;
  2118. }
  2119. // Money Check
  2120. if(GetPlayerMoney(playerid) < 50000) return SendClientMessage(playerid, COLOR_GREY, "Shoma in Andaze Pool Nadarid. ($50,000)");
  2121. GivePlayerMoney(playerid, -50000);
  2122. }
  2123. GetPlayerPos(playerid,FamInfo[idx][fSafeX], FamInfo[idx][fSafeY], FamInfo[idx][fSafeZ]);
  2124. DestroyDynamicPickup(FamInfo[idx][fPickup]);
  2125. FamInfo[idx][fPickup] = CreateDynamicPickup(1239, 1, FamInfo[idx][fSafeX], FamInfo[idx][fSafeY], FamInfo[idx][fSafeZ], -1);
  2126. DestroyDynamic3DTextLabel(FamInfo[idx][fText]);
  2127. format(string, sizeof(string), "%s's Safe", FamInfo[idx][fName]);
  2128. FamInfo[idx][fText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, FamInfo[idx][fSafeX], FamInfo[idx][fSafeY], FamInfo[idx][fSafeZ]+0.3, 15);
  2129. SendClientMessage(playerid, COLOR_LIGHTBLUE, " You have set your family's safe location.");
  2130. }
  2131. else if(!strcmp(option, "motd", true, 4))
  2132. {
  2133. if(sscanf(params, "s[32]s[32]", option, params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /famedit motd [motd]");
  2134. format(FamInfo[idx][fMOTD], 64, "%s", params);
  2135. format(string, sizeof(string), "FAMILY MOTD: {FFFFFF}%s", FamInfo[PlayerInfo[playerid][pFam]][fMOTD]);
  2136. SendPlayerFamMessage(playerid, COLOR_LIGHTRED, string);
  2137. }
  2138. else if(!strcmp(option, "skin", true, 4))
  2139. {
  2140. if(sscanf(params, "s[32]ii", option, skin, skinid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /famedit skin [skinslot] [skinid]");
  2141. if(skin < 1 || skin > 7) return SendClientMessage(playerid, COLOR_GREY, "Skin slots are between 1 and 7.");
  2142. skin = skin-1;
  2143. FamInfo[idx][fSkins][skin] = skinid;
  2144. format(string, sizeof(string), "Family: skin slot %d setted to skin %d.", skin+1, skinid);
  2145. SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
  2146. return 1;
  2147. }
  2148. else if(!strcmp(option, "hqtext", true, 6))
  2149. {
  2150. new ss[256];
  2151. if(sscanf(params, "s[32]s[32]", option, params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /famedit hqtext [text]");
  2152. format(HqInfo[FamInfo[idx][fHq]][qText], 128, "%s", params);
  2153. format(string, sizeof(string), ""HQ"%s (%d)\nOwner:[ %s ]",HqInfo[FamInfo[idx][fHq]][qText], idx,HqInfo[FamInfo[idx][fHq]][qOwner]);
  2154. UpdateDynamic3DTextLabelText(HqInfo[FamInfo[idx][fHq]][qTextID], COLOR_WHITE, string);
  2155. format(ss,256,"Shoma Text Hq khodetoono taghir dadid be "WARN"(%s)",params);
  2156. SCM(playerid,COLOR_WHITE,ss);
  2157. }
  2158. else SendClientMessage(playerid, COLOR_GREY, "Invalid option.");
  2159. return 1;
  2160. }
  2161.  
  2162. CMD:finvite(playerid, params[])
  2163. {
  2164. new playerb, string[128], idx = PlayerInfo[playerid][pFam];
  2165. if(PlayerInfo[playerid][pFamRank] < 5) return SendClientMessage(playerid, COLOR_GREY, "You are not a family leader.");
  2166. if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /finvite [id/PartOfName]");
  2167. if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "ID Bazikon Vared Shode Eshtebah Ast.");
  2168. if(PlayerInfo[playerb][pFam]) return SendClientMessage(playerid, COLOR_GREY, "Player is already in a family.");
  2169. if(playerid == playerb) return SendClientMessage(playerid, COLOR_GREY, "You can't invite yourself.");
  2170. // Inviting
  2171. fInvited[playerb] = 1;
  2172. fInviter[playerb] = playerid;
  2173. Family[playerb] = idx;
  2174.  
  2175. format(string, sizeof(string), " You have invited %s to join the {33AA33}%s {33CCFF}family.", RPN(playerb), FamInfo[idx][fName]);
  2176. SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
  2177. format(string, sizeof(string), " %s has invited you to join the {33AA33}%s {33CCFF}family. (/accept family) (/cancel family)", RPN(playerid), FamInfo[idx][fName]);
  2178. SendClientMessage(playerb, COLOR_LIGHTBLUE, string);
  2179. return 1;
  2180. }
  2181. CMD:fhelp(playerid,params[])
  2182. {
  2183. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREY, "you are not Admin.");
  2184. SCM(playerid,COLOR_WHITE,"HQ: /exithq /enterhq /buyhq /qedit /gotohq /createhq /sellhqtomarket /deletehq");
  2185. SCM(playerid,COLOR_WHITE,"Family: /park /next /acceptfamily /fclothes /done /safe /f /fedit /fcreate /fstrike");
  2186. SCM(playerid,COLOR_WHITE,"Family: /fstrikes /timeofwar /fdelete /attack /families /famedit /finvite /funinvite /slot");
  2187. SCM(playerid,COLOR_WHITE,"Turfs: /tedit /tused /turf /deletegzone /mypos /creategzone /zones ");
  2188. return 1;
  2189. }
  2190. CMD:funinvite(playerid, params[])
  2191. {
  2192. new playerb, string[128], idx = PlayerInfo[playerid][pFam];
  2193.  
  2194. if(PlayerInfo[playerid][pFamRank] < 5) return SendClientMessage(playerid, COLOR_GREY, "You are not a family leader.");
  2195. if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /fuinvite [id/PartOfName]");
  2196. if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "ID Bazikon Vared Shode Eshtebah Ast.");
  2197. if(PlayerInfo[playerb][pFam] != PlayerInfo[playerid][pFam]) return SendClientMessage(playerid, COLOR_GREY, "Player is not in your family.");
  2198. if(playerid == playerb) return SendClientMessage(playerid, COLOR_GREY, "You can't unnvite yourself.");
  2199. if(!strcmp(RPN(playerb), FamInfo[idx][fLeader], false)) return SendClientMessage(playerid, COLOR_GREY, "You cannot uninvite the family leader.");
  2200. PlayerInfo[playerb][pFam] = 0;
  2201. PlayerInfo[playerb][pFamRank] = 0;
  2202. FamInfo[idx][fMembers] --;
  2203. format(string, sizeof(string), " You have kicked %s out of the {33AA33}%s {33CCFF}family.", RPN(playerb), FamInfo[idx][fName]);
  2204. SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
  2205. format(string, sizeof(string), " %s has kicked you out of the {33AA33}%s {33CCFF}family.", RPN(playerid), FamInfo[idx][fName]);
  2206. SendClientMessage(playerb, COLOR_LIGHTBLUE, string);
  2207. SaveChar(playerb);
  2208. return 1;
  2209. }
  2210.  
  2211. CMD:slot(playerid, params[])
  2212. {
  2213. new string[128];
  2214. format(string, sizeof(string), "Slot: %d", GFVS(GetPlayerVehicleID(playerid)));
  2215. SendClientMessage(playerid, COLOR_GREY, string);
  2216. return 1;
  2217. }
  2218. stock TRFaN(turfid)
  2219. {
  2220. new famname[32];
  2221. if(!TurfInfo[turfid][tOwner]) format(famname, sizeof(famname), "None");
  2222. else format(famname, sizeof(famname), "%s", FamInfo[TurfInfo[turfid][tOwner]][fName]);
  2223. return famname;
  2224. }
  2225.  
  2226. stock RPFaN(playerid)
  2227. {
  2228. new famname[32];
  2229. if(!PlayerInfo[playerid][pFam]) format(famname, sizeof(famname), "None");
  2230. else format(famname, sizeof(famname), "%s", FamInfo[PlayerInfo[playerid][pFam]][fName]);
  2231. return famname;
  2232. }
  2233.  
  2234. stock RFaN(idx)
  2235. {
  2236. new famname[32];
  2237. if(!idx) format(famname, sizeof(famname), "None");
  2238. else format(famname, sizeof(famname), "%s", FamInfo[idx][fName]);
  2239. return famname;
  2240. }
  2241. stock RPFaRN(playerid)
  2242. {
  2243. new rankname[32];
  2244. if(PlayerInfo[playerid][pFamRank] == 0 && PlayerInfo[playerid][pFam] == 0) format(rankname, sizeof(rankname), "None");
  2245. else if(PlayerInfo[playerid][pFam])
  2246. {
  2247. if(PlayerInfo[playerid][pFamRank] == 1) format(rankname, sizeof(rankname), "%s", FamInfo[PlayerInfo[playerid][pFam]][fRank1]);
  2248. else if(PlayerInfo[playerid][pFamRank] == 2) format(rankname, sizeof(rankname), "%s", FamInfo[PlayerInfo[playerid][pFam]][fRank2]);
  2249. else if(PlayerInfo[playerid][pFamRank] == 3) format(rankname, sizeof(rankname), "%s", FamInfo[PlayerInfo[playerid][pFam]][fRank3]);
  2250. else if(PlayerInfo[playerid][pFamRank] == 4) format(rankname, sizeof(rankname), "%s", FamInfo[PlayerInfo[playerid][pFam]][fRank4]);
  2251. else if(PlayerInfo[playerid][pFamRank] == 5) format(rankname, sizeof(rankname), "%s", FamInfo[PlayerInfo[playerid][pFam]][fRank5]);
  2252. else if(PlayerInfo[playerid][pFamRank] == 6) format(rankname, sizeof(rankname), "%s", FamInfo[PlayerInfo[playerid][pFam]][fRank6]);
  2253. }
  2254. return rankname;
  2255. }
  2256. stock SendPlayerFamMessage(playerid, color, string[])
  2257. {
  2258. for(new i=0;i<MAX_PLAYERS;i++)
  2259. {
  2260. if(IsPlayerConnected(i) && PlayerInfo[i][pFam] == PlayerInfo[playerid][pFam])
  2261. {
  2262. SendClientMessage(i, color, string);
  2263. }
  2264. }
  2265. return 1;
  2266. }
  2267. stock RPNU(playerid)
  2268. {
  2269. new name[MAX_PLAYER_NAME];
  2270. GetPlayerName(playerid, name, sizeof(name));
  2271. return name;
  2272. }
  2273.  
  2274. stock RPN(playerid)
  2275. {
  2276. new string[25];
  2277. format(string, sizeof(string), "%s", RemoveUnderScore(playerid));
  2278. return string;
  2279. }
  2280. stock split(const strsrc[], strdest[][], delimiter)
  2281. {
  2282. new i, li;
  2283. new aNum;
  2284. new len;
  2285. while(i <= strlen(strsrc))
  2286. {
  2287. if(strsrc[i] == delimiter || i == strlen(strsrc))
  2288. {
  2289. len = strmid(strdest[aNum], strsrc, li, i, 128);
  2290. strdest[aNum][len] = 0;
  2291. li = i+1;
  2292. aNum++;
  2293. }
  2294. i++;
  2295. }
  2296. return 1;
  2297. }
  2298. stock fcreate(filename[])
  2299. {
  2300. if (fexist(filename)) return false;
  2301. new File:fhnd;
  2302. fhnd=fopen(filename,io_write);
  2303. if (fhnd) {
  2304. fclose(fhnd);
  2305. return true;
  2306. }
  2307. return false;
  2308. }
  2309. stock IsFamVehicle(vehicleid)
  2310. {
  2311. for(new idx=1; idx<MAX_FAMILIES; idx++)
  2312. {
  2313. for(new v=0; v<5; v++)
  2314. {
  2315. if(vehicleid == FamInfo[idx][fVeh][v]) return 1;
  2316. }
  2317. }
  2318. return 0;
  2319. }
  2320. stock GFVS(vehicleid)
  2321. {
  2322. new slot;
  2323. for(new idx=1; idx<MAX_FAMILIES; idx++)
  2324. {
  2325. for(new v=0; v<5; v++)
  2326. {
  2327. if(vehicleid == FamInfo[idx][fVeh][v]) {slot = v;}
  2328. }
  2329. }
  2330. return slot;
  2331. }
  2332. stock SendNearbyMessage(playerid, Float:radius, string[], col1, col2, col3, col4, col5)
  2333. {
  2334. new Float:x, Float:y, Float:z;
  2335. GetPlayerPos(playerid, x, y, z);
  2336. new Float:ix, Float:iy, Float:iz;
  2337. new Float:cx, Float:cy, Float:cz;
  2338. foreach(Player, i)
  2339. {
  2340. if(IsPlayerConnected(i))
  2341. {
  2342. if(GetPlayerInterior(playerid) == GetPlayerInterior(i) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
  2343. {
  2344. GetPlayerPos(i, ix, iy, iz);
  2345. cx = (x - ix);
  2346. cy = (y - iy);
  2347. cz = (z - iz);
  2348. if(((cx < radius/16) && (cx > -radius/16)) && ((cy < radius/16) && (cy > -radius/16)) && ((cz < radius/16) && (cz > -radius/16)))
  2349. {
  2350. SendClientMessage(i, col1, string);
  2351. }
  2352. else if(((cx < radius/8) && (cx > -radius/8)) && ((cy < radius/8) && (cy > -radius/8)) && ((cz < radius/8) && (cz > -radius/8)))
  2353. {
  2354. SendClientMessage(i, col2, string);
  2355. }
  2356. else if(((cx < radius/4) && (cx > -radius/4)) && ((cy < radius/4) && (cy > -radius/4)) && ((cz < radius/4) && (cz > -radius/4)))
  2357. {
  2358. SendClientMessage(i, col3, string);
  2359. }
  2360. else if(((cx < radius/2) && (cx > -radius/2)) && ((cy < radius/2) && (cy > -radius/2)) && ((cz < radius/2) && (cz > -radius/2)))
  2361. {
  2362. SendClientMessage(i, col4, string);
  2363. }
  2364. else if(((cx < radius) && (cx > -radius)) && ((cy < radius) && (cy > -radius)) && ((cz < radius) && (cz > -radius)))
  2365. {
  2366. SendClientMessage(i, col5, string);
  2367. }
  2368. }
  2369. }
  2370. }
  2371. return 1;
  2372. }
  2373. stock NORPN(playerid)
  2374. {
  2375. new astring[25];
  2376. format(astring, sizeof(astring), "%s", RemoveUnderScore(playerid));
  2377. return astring;
  2378. }
  2379. FormatNumber(number)
  2380. {
  2381. new Str[15];
  2382. format(Str, 15, "%d", number);
  2383.  
  2384. if (strlen(Str) < sizeof(Str))
  2385. {
  2386. if (number >= 1000 && number < 10000)
  2387. strins( Str, ",", 1, sizeof(Str));
  2388.  
  2389. else if (number >= 10000 && number < 100000)
  2390. strins(Str, ",", 2, sizeof(Str));
  2391.  
  2392. else if (number >= 100000 && number < 1000000)
  2393. strins(Str, ",", 3, sizeof(Str));
  2394.  
  2395. else if (number >= 1000000 && number < 10000000)
  2396. strins(Str, ",", 1, sizeof(Str)),strins(Str, ",", 5, sizeof(Str));
  2397.  
  2398. else if (number >= 10000000 && number < 100000000)
  2399. strins(Str, ",", 2, sizeof(Str)),strins(Str, ",", 6, sizeof(Str));
  2400.  
  2401. else if (number >= 100000000 && number < 1000000000)
  2402. strins(Str, ",", 3, sizeof(Str)),strins(Str, ",", 7, sizeof(Str));
  2403.  
  2404. else if (number >= 1000000000 && number < 10000000000)
  2405. strins(Str, ",", 1, sizeof(Str)),
  2406. strins(Str, ",", 5, sizeof(Str)),
  2407. strins(Str, ",", 9, sizeof(Str));
  2408. else format(Str, 10, "%d", number);
  2409. }
  2410. else format( Str, 15, "<BUG>" );
  2411. return Str;
  2412. }
  2413. stock RemoveUnderScore(playerid)
  2414. {
  2415. new name[MAX_PLAYER_NAME];
  2416. GetPlayerName(playerid,name,sizeof(name));
  2417. for(new i = 0; i < MAX_PLAYER_NAME; i++)
  2418. {
  2419. if(name[i] == '_') name[i] = ' ';
  2420. }
  2421. return name;
  2422. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement