iJayce

Untitled

May 4th, 2016
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.71 KB | None | 0 0
  1. /*
  2. |-------------------------------------------------------------|
  3. | ==ADVANCED GANG SYSTEM SQLLITE== |
  4. | ==AUTHOR:SREYAS== |
  5. | ==Version:1.0(Beta)== |
  6. | |
  7. | =======Commands========= |
  8. | /gcp - to enter gang control panel |
  9. | /creategang - to create new gang |
  10. | /gangtag - to add tag to your gang |
  11. | /gwar - to challenge other gang members for a gang war|
  12. | /gkick - to kick a member from gang |
  13. | /setleader - to set a member to leader |
  14. | /gmembers - to see whole members of gang |
  15. | /top - to see top 10 gangs |
  16. | /ginvite - to invite some to your gang |
  17. | /accept - to accept an invitation |
  18. | /decline - to decline an invitation |
  19. | /gangcolor - to change your gang color |
  20. | /lg - to leave the gang |
  21. | |
  22. | ======Other Features===== |
  23. | Use '#' to gang chat |
  24. | Each kill give 1 score for gang |
  25. | Gang Member's death will be notified |
  26. | Gang will be destroyed if a leader leaves it |
  27. | Gang Members will get 100$ per each 10 minutes |
  28. | |
  29. | |
  30. |-------------------------------------------------------------|
  31. */
  32. #define FILTERSCRIPT
  33.  
  34. #include<a_samp> //SA-MP TEAM
  35. #include<zcmd> //ZEEX
  36. #include<sscanf2> //Y_LESS
  37. #include<foreach> //Y_LESS
  38.  
  39. #define GANG_COLOR 78
  40. #define GTOP 79
  41. #define GMEMBERS 80
  42. #define GCP 81
  43. #define GKICK 82
  44. #define GWAR 83
  45. #define GLEADER 84
  46. #define GTAG 85
  47. #define MAX_GANGS 50
  48.  
  49. new Float:RandomSpawnsGW[][] =
  50. {
  51. {1390.2234,-46.3298,1000.9236,5.7688},
  52. {1417.2269,-45.6457,1000.9274,53.0826},
  53. {1393.3025,-33.7530,1007.8823,89.6141},
  54. {1365.5669,2.3778,1000.9285,11.9068}
  55.  
  56. };
  57. new bool:ActiveWar = false;
  58. //-----GANG COLORS--------------------------
  59. #define G_PURPLE 0xD526D9FF
  60. #define G_GREEN 0x00FF00FF
  61. #define G_PINK 0xFFB6C1FF
  62. #define G_CYAN 0x33CCFFAA
  63. #define G_GREY 0xAFAFAFAA
  64. #define G_WHITE 0xFFFFFFFF
  65. #define G_ORANGE 0xFF8000FF
  66. #define G_YELLOW 0xFFFF00FF
  67. #define G_BLUE 0x0080FFC8
  68. #define G_RED 0xFF0000FF
  69. //------------------------------------------
  70.  
  71.  
  72. //------Colors-----------------------------
  73. #define RED "{FF0000}"
  74. #define GREY "{C0C4C4}"
  75. #define ORANGE "{F07F1D}"
  76. #define CYAN "{00FFFF}"
  77. #define GREEN "{00FF00}"
  78. #define WHITE "{FFFFFF}"
  79. #define VIOLET "{8000FF}"
  80. #define YELLOW "{FFFF00}"
  81. #define BLUE "{0000FF}"
  82. #define PINK "{F7B0D0}"
  83. //---------------------------------------
  84.  
  85. enum G_USER_DATA
  86. {
  87. gangmember,
  88. gangleader,
  89. gangname[56],
  90. gang_id,
  91. bool:ganginvite,
  92. username[MAX_PLAYER_NAME],
  93. ginvitedname[56],
  94. gangcolor,
  95. gangtag[4]
  96. }
  97. new bool:inwar[MAX_PLAYERS];
  98.  
  99.  
  100. new GInfo[MAX_PLAYERS][G_USER_DATA];
  101. new DB:Database;
  102.  
  103. public OnFilterScriptInit()
  104. {
  105. print("\n--------------------------------------");
  106. print("---Gang---system---by---Sreyas---Loaded---");
  107. print("--------------------------------------\n");
  108.  
  109. Database = db_open("gang.db");
  110.  
  111. db_query( Database, "PRAGMA synchronous = OFF" );
  112.  
  113. return 1;
  114. }
  115. public OnFilterScriptExit()
  116. {
  117. db_close( Database );
  118. return 1;
  119. }
  120.  
  121.  
  122. public OnPlayerConnect(playerid)
  123. {
  124. for( new i; i < _: G_USER_DATA; ++i ) GInfo[ playerid ][ G_USER_DATA: i ] = 0;
  125.  
  126. GetPlayerName( playerid, GInfo[playerid][username], MAX_PLAYER_NAME );
  127. new Query[ 89 ],DBResult: Result;
  128. format( Query, sizeof( Query ), "SELECT * FROM Members WHERE UserName = '%s' LIMIT 0, 1", DB_Escape( GInfo[ playerid ][ username ] ) );
  129. Result = db_query( Database, Query );
  130. if( db_num_rows( Result ) )
  131. {
  132.  
  133. db_get_field_assoc( Result, "GangMember", Query, 7 );
  134. GInfo[ playerid ][ gangmember ] = strval( Query );
  135. db_get_field_assoc( Result, "GangLeader", Query, 7 );
  136. GInfo[ playerid ][ gangleader] = strval( Query );
  137. db_get_field_assoc(Result, "GangName", GInfo[playerid][gangname], 56);
  138.  
  139. if(GInfo[playerid][gangmember] == 1)
  140. {
  141. new str[128];
  142. SetTimerEx("GMoney",100000,true,"u",playerid);
  143.  
  144. if(GInfo[playerid][gangleader] == 1)
  145. {
  146.  
  147. format(str,sizeof(str),""RED"[GANG INFO]"ORANGE"Leader"GREEN" %s"ORANGE" has Logged in!!",GInfo[playerid][username]);
  148. SendGangMessage(playerid,str);
  149. }
  150. else if(GInfo[playerid][gangleader] == 0)
  151. {
  152. format(str,sizeof(str),""RED"[GANG INFO]"CYAN"Member"YELLOW" %s"ORANGE" has Logged in!!",GInfo[playerid][username]);
  153. SendGangMessage(playerid,str);
  154. }
  155.  
  156. new query[880],DBResult:result;
  157. format(query,sizeof(query),"SELECT * FROM Gangs Where GangName = '%s' ",DB_Escape(GInfo[playerid][gangname]));
  158. result = db_query(Database,query);
  159.  
  160. if(db_num_rows(result))
  161. {
  162. db_get_field_assoc(result,"GangColor",query,10);
  163. GInfo[playerid][gangcolor] = strval(query);
  164. SetPlayerColor(playerid,GInfo[playerid][gangcolor]);
  165. db_get_field_assoc(result, "GangTag", GInfo[playerid][gangtag], 4);
  166. db_free_result( result );
  167. }
  168.  
  169. db_free_result( Result );
  170. return 1;
  171. }
  172. return 1;
  173. }
  174. else
  175. {
  176. new GQuery[700];
  177. format( GQuery, sizeof( GQuery ), "INSERT INTO Members (UserName) VALUES ('%s')", DB_Escape( GInfo[ playerid ][ username ] ));
  178. db_query( Database, GQuery );
  179. return 1;
  180. }
  181. }
  182. public OnPlayerDisconnect(playerid,reason)
  183. {
  184.  
  185. SetPlayerName(playerid,GInfo[playerid][username]);//just to avoid some bugs
  186.  
  187. if(GInfo[playerid][gangmember] == 1)
  188. {
  189. new str[128];
  190. format(str,sizeof(str),"Member %s has Logged Out ",GInfo[playerid][username]);
  191. SendGangMessage(playerid,str);
  192. }
  193. for( new i; i < _: G_USER_DATA; ++i ) GInfo[ playerid ][ G_USER_DATA: i ] = 0;
  194. return 1;
  195. }
  196.  
  197. public OnPlayerText(playerid, text[])
  198. {
  199. if(text[0] == '#' && GInfo[playerid][gangmember] == 1)
  200. {
  201. new str[128],name[MAX_PLAYER_NAME];
  202. GetPlayerName(playerid, name, sizeof(name));
  203. format(str,sizeof(str),""RED"[GANG CHAT]"ORANGE" %s: "WHITE"%s",name,text[1]);
  204. SendGangMessage(playerid,str);
  205. return 0;
  206. }
  207. else
  208. {
  209. new pText[144];
  210. format(pText, sizeof (pText), "(%d) %s", playerid, text);
  211. SetPlayerChatBubble(playerid, text, 0xFFFFFFFF, 100.0, 10000);
  212. SendPlayerMessageToAll(playerid, pText);
  213. return 0;
  214. }
  215.  
  216. }
  217. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  218. {
  219. switch(dialogid)
  220. {
  221. case GANG_COLOR:
  222. {
  223. if(response)
  224. {
  225. switch(listitem)
  226. {
  227. case 0:
  228. {
  229. GInfo[playerid][gangcolor] = G_BLUE;
  230. SetPlayerColor(playerid,G_BLUE);
  231.  
  232. }
  233. case 1:
  234. {
  235. GInfo[playerid][gangcolor] = G_RED;
  236. SetPlayerColor(playerid,G_RED);
  237. }
  238. case 2:
  239. {
  240. GInfo[playerid][gangcolor] = G_WHITE;
  241. SetPlayerColor(playerid,G_WHITE);
  242. }
  243. case 3:
  244. {
  245. GInfo[playerid][gangcolor] = G_PINK;
  246. SetPlayerColor(playerid,G_PINK);
  247. }
  248. case 4:
  249. {
  250. GInfo[playerid][gangcolor] = G_CYAN;
  251. SetPlayerColor(playerid,G_CYAN);
  252. }
  253. case 5:
  254. {
  255. GInfo[playerid][gangcolor] = G_ORANGE;
  256. SetPlayerColor(playerid,G_ORANGE);
  257. }
  258. case 6:
  259. {
  260. GInfo[playerid][gangcolor] = G_GREEN;
  261. SetPlayerColor(playerid,G_GREEN);
  262. }
  263. case 7:
  264. {
  265. GInfo[playerid][gangcolor] = G_YELLOW;
  266. SetPlayerColor(playerid,G_YELLOW);
  267. }
  268.  
  269. }
  270. new Query[789];
  271. format(Query,sizeof(Query),"UPDATE Gangs SET GangColor = %d Where GangName = '%s'",GInfo[playerid][gangcolor],DB_Escape(GInfo[playerid][gangname]));
  272. db_query(Database,Query);
  273. SendGangMessage(playerid,""RED"Leader"YELLOW"Has changed gang color");
  274. return 1;
  275. }
  276. }
  277. case GCP:
  278. {
  279. if(response)
  280. {
  281. switch(listitem)
  282. {
  283. case 0:return cmd_gcp(playerid);
  284. case 1:return cmd_gcp(playerid);
  285. case 2:return cmd_gmembers(playerid);
  286. case 3:return cmd_top(playerid);
  287. case 4:return ShowPlayerDialog(playerid, GWAR, DIALOG_STYLE_INPUT, ""ORANGE"Input Enemy Gang Name", ""GREY"Please enter the name of enemy gang", "Start", "Cancel");
  288. case 5:return ShowPlayerDialog(playerid, GKICK, DIALOG_STYLE_INPUT, ""ORANGE"Input Member Name", ""GREY"Please enter the name or id Member to Kicked", "Kick", "Cancel");
  289. case 6:return ShowPlayerDialog(playerid, GTAG, DIALOG_STYLE_INPUT, ""ORANGE"Input Gang Tag", ""GREY"Please enter the new tag for your Gang", "Set", "Cancel");
  290. case 7:return cmd_gangcolor(playerid);
  291. case 8:return ShowPlayerDialog(playerid, GLEADER, DIALOG_STYLE_INPUT, ""ORANGE"Input Member Name or ID", ""GREY"Please enter the name or id Member to Set as leader ", "Kick", "Cancel");
  292. }
  293. }
  294. return 1;
  295. }
  296.  
  297. case GWAR :
  298. {
  299. if(response)
  300. {
  301.  
  302. return cmd_gwar(playerid,inputtext);
  303. }
  304. }
  305. case GKICK:
  306. {
  307. if(response)
  308. {
  309. return cmd_gkick(playerid,inputtext);
  310. }
  311. }
  312. case GLEADER:
  313. {
  314. if(response)
  315. {
  316. return cmd_setleader(playerid,inputtext);
  317. }
  318. }
  319. case GTAG:
  320. {
  321. if(response)
  322. {
  323. return cmd_gangtag(playerid,inputtext);
  324. }
  325. }
  326. }
  327. return 1;
  328. }
  329.  
  330. public OnPlayerDeath(playerid,killerid,reason)
  331. {
  332. SendDeathMessage(killerid, playerid, reason);
  333. if(inwar[playerid] == true)
  334. {
  335. inwar[playerid] = false;
  336. SpawnPlayer(playerid);
  337. CheckVict(GInfo[playerid][gangname],GInfo[killerid][gangname]);
  338. }
  339.  
  340. if(GInfo[playerid][gangmember] == 1)
  341. {
  342. new rvg[128];
  343. if(GInfo[killerid][gangmember] == 1)
  344. {
  345. format(rvg,sizeof(rvg),""GREY"The member of your Gang "YELLOW"%s"GREY" has been killed by a Member "RED"(%s)"GREY" of Gang "RED"%s",GInfo[playerid][username],GInfo[killerid][username],GInfo[killerid][gangname]);
  346. new Query1[80],Query2[80],DBResult: Result,Score = 0;
  347. format(Query1,sizeof(Query1),"SELECT GangScore FROM Gangs WHERE GangName = '%s'",GInfo[killerid][gangname]);
  348. Result = db_query(Database,Query1);
  349. if(db_num_rows(Result))
  350. {
  351. db_get_field_assoc(Result,"GangScore",Query1,10);
  352. Score = strval(Query1);
  353. }
  354.  
  355. Score++;
  356. format(Query2,sizeof(Query2),"UPDATE Gangs SET GangScore = %i WHERE GangName = '%s'",Score,GInfo[killerid][gangname]);
  357. db_query(Database,Query2);
  358. }
  359. else
  360. {
  361. format(rvg,sizeof(rvg),""GREY"The member of your Gang "RED"%s "GREY"has been killed by a Player Named "RED"%s ",GInfo[playerid][username],GInfo[killerid][username]);
  362. }
  363. SendGangMessage(playerid,rvg);
  364. }
  365.  
  366. return 1;
  367. }
  368.  
  369.  
  370. //---COMMANDS---------------------------------------------------------------------------------------------------------------------------
  371.  
  372. CMD:creategang(playerid,params[])
  373. {
  374. new gname[56],query[256],DBResult:result,string[128];
  375. GetPlayerName( playerid, GInfo[playerid][username], MAX_PLAYER_NAME );
  376. if(sscanf(params,"s[56]",gname))return SendClientMessage(playerid,-1,""RED"Error:"GREY"/creategang [GangName]");
  377. if(GInfo[playerid][gangmember] == 1)return SendClientMessage(playerid,-1,""RED"ERROR:"GREY"You are already in a Gang /lg to leave it");
  378. format(query,sizeof(query),"SELECT GangName FROM Gangs WHERE GangName = '%s'",DB_Escape(gname));
  379. result = db_query( Database, query );
  380. if( db_num_rows( result ) )
  381. {
  382. db_free_result(result);
  383. return SendClientMessage(playerid,-1,""RED"ERROR:"GREY"That name exits");
  384. }
  385. db_free_result(result);
  386.  
  387. GInfo[playerid][gangmember] = 1;
  388.  
  389. GInfo[playerid][gangname] = gname;
  390. GInfo[playerid][gangleader] = 1;
  391. ShowPlayerDialog(playerid,GANG_COLOR,DIALOG_STYLE_LIST,"Gang Color",""BLUE"Blue\n"RED"RED\n"WHITE"White\n"PINK"Pink\n"CYAN"Cyan\n"ORANGE"Orange\n"GREEN"Green\n"YELLOW"Yellow","OK","CANCEL");
  392.  
  393. new Query[128];
  394. format(Query,sizeof(query),"UPDATE Members SET GangName = '%s' ,GangMember = 1,GangLeader = 1 WHERE UserName = '%s' ",DB_Escape(gname),DB_Escape(GInfo[playerid][username]));
  395. db_query( Database, Query );
  396.  
  397. new gquery[256];
  398. format( gquery, sizeof( gquery ), "INSERT INTO Gangs (GangName,GangColor) VALUES ('%s','%s')", DB_Escape( GInfo[ playerid ][ gangname ] ),DB_Escape(GInfo[playerid][gangcolor]));
  399. db_query(Database,gquery);
  400. SendClientMessage(playerid,-1,""RED"[GANG INFO]:"GREY"You have sucessfully create a gang");
  401. format(string,sizeof(string),""ORANGE"%s"GREY" has created a new gang named "YELLOW"%s",GInfo[playerid][username],GInfo[playerid][gangname]);
  402. SendClientMessageToAll(-1,string);
  403. return 1;
  404. }
  405.  
  406. CMD:lg(playerid,params[])
  407. {
  408. if(GInfo[playerid][gangmember] == 0) return SendClientMessage(playerid,-1,""RED"ERROR:"GREY"You are not in a gang ");
  409. new gname [56],lquery[234] ;
  410. strcat(gname,GInfo[playerid][gangname],56) ;
  411. if(GInfo[playerid][gangleader] == 1)
  412. {
  413. foreach(new i : Player)
  414. {
  415. if(!strcmp(GInfo[i][gangname],GInfo[playerid][gangname],false))
  416. {
  417. GInfo[i][gangmember] = 0;
  418. GInfo[i][gangname] = '\0';
  419. if(GInfo[i][gangleader] == 1)
  420. {
  421. GInfo[playerid][gangleader] = 0;
  422. }
  423. }
  424. }
  425. new Query[102];
  426. format(Query,sizeof(Query),"DELETE FROM Gangs WHERE GangName = '%s'",DB_Escape(gname));
  427. db_query(Database,Query);
  428. format(lquery,sizeof(lquery),"UPDATE Members SET GangMember = 0,GangLeader = 0,GangName = NULL WHERE GangName = '%s'",DB_Escape(gname));
  429. db_query(Database,lquery);
  430. new str[128];
  431. format(str,sizeof(str),""RED"Leader "YELLOW"%s"RED" Has Left Gang "CYAN"%s"RED" and Gang is Destroyed",GInfo[playerid][username],gname);
  432. return SendClientMessageToAll(-1,str);
  433. }
  434. GInfo[playerid][gangmember] = 0;
  435. GInfo[playerid][gangname] = ' ';
  436. new query[102];
  437. format(query,sizeof(query),"UPDATE Members SET GangMember = 0,GangLeader = 0,GangName = NULL WHERE UserName = '%s'",DB_Escape(GInfo[playerid][username]));
  438. db_query(Database,query);
  439. new ls[128];
  440. format(ls,sizeof(ls),""RED"%s "GREY"has left Gang "YELLOW"%s",GInfo[playerid][username],gname);
  441. SendClientMessageToAll(-1,ls);
  442. return 1;
  443. }
  444.  
  445.  
  446.  
  447. CMD:setleader(playerid,params[])
  448. {
  449. new giveid,str[128],Query[256];
  450. if(sscanf(params,"u",giveid))return SendClientMessage(playerid,-1,""RED"Error:"GREY"/setleader playerid");
  451. if(GInfo[playerid][gangname]!=GInfo[giveid][gangname]) return SendClientMessage(playerid,-1,""RED"He is not in your gang ");
  452. if(GInfo[playerid][gangmember] == 0) return SendClientMessage(playerid,-1,""RED"You are not in a gang ");
  453. if(GInfo[giveid][gangmember] == 0) return SendClientMessage(playerid,-1,""RED"That guy is not in a gang");
  454. if(GInfo[giveid][gangleader] == 1) return SendClientMessage(playerid,-1,""RED"That guy is already leader in you gang");
  455. if(GInfo[playerid][gangleader] == 0) return SendClientMessage(playerid,-1,""RED"You are not authorised to do that");
  456. GInfo[giveid][gangleader] = 1;
  457. format(str,sizeof(str),"%s is promoted to Gang Leader of %s",GInfo[giveid][username],GInfo[giveid][gangname]);
  458. SendClientMessageToAll(-1,str);
  459. format(Query,sizeof(Query),"UPDATE Members SET GangLeader = 1 WHERE UserName = '%s' ",DB_Escape(GInfo[giveid][username]));
  460. db_query( Database, Query );
  461. return 1;
  462. }
  463.  
  464. CMD:ginvite(playerid,params[])
  465. {
  466. new giveid;
  467. if(sscanf(params,"u",giveid)) return SendClientMessage(playerid,-1,""RED"Error:"GREY"/ginvite playerid");
  468. if(GInfo[playerid][gangleader] == 0 ) return SendClientMessage(playerid,-1,""RED"You are not authorised to do that");
  469. if(GInfo[giveid][gangmember] == 1) return SendClientMessage(playerid,-1,""RED"He is already in a gang");
  470. GInfo[giveid][ganginvite] = true;
  471. SendClientMessage(playerid,-1,""GREEN"Invitation send successfully");
  472. SendClientMessage(giveid,-1,""GREEN"You have recieved a gang invitation /accept or /decline to accept or decline ");
  473. strdel(GInfo[giveid][ginvitedname],0,56);
  474. strcat(GInfo[giveid][ginvitedname], GInfo[playerid][gangname], 56);
  475. return 1;
  476. }
  477.  
  478. CMD:top(playerid)
  479. {
  480. new query[256];
  481. new DBResult:result;
  482. format(query,sizeof(query),"SELECT GangName,GangScore FROM Gangs ORDER BY GangScore DESC limit 0,10");
  483. result = db_query( Database, query );
  484. new scores,name[30],string[250];
  485. for (new a; a < db_num_rows(result); a++, db_next_row(result))
  486. {
  487. db_get_field_assoc(result, "GangName", name, sizeof(name));
  488. scores = db_get_field_assoc_int(result, "GangScore");
  489. format(string,sizeof(string),"%s\n"WHITE"%d.)"RED" %s "CYAN" scores:"ORANGE" %i", string, a + 1, name, scores);
  490. }
  491. ShowPlayerDialog(playerid, GTOP, DIALOG_STYLE_MSGBOX, ""RED"Top GANGS ", string, "Close", "");
  492. db_free_result(result);
  493. return 1;
  494. }
  495.  
  496.  
  497. CMD:gmembers(playerid)
  498. {
  499. new Query[256],name[30],string[250];
  500. new DBResult:result;
  501. if(GInfo[playerid][gangmember] == 0) return SendClientMessage(playerid,-1,""RED"ERROR:"GREY"You are not a Gang Member");
  502. format(Query,sizeof(Query),"SELECT UserName FROM Members WHERE GangName = '%s'",GInfo[playerid][gangname]);
  503. result = db_query(Database,Query);
  504. for (new a; a < db_num_rows(result); a++, db_next_row(result))
  505. {
  506. db_get_field_assoc(result, "UserName", name, sizeof(name));
  507. format(string,sizeof(string),"%s\n"WHITE"%d.)"RED" %s ",string,a + 1,name);
  508. }
  509. ShowPlayerDialog(playerid, GMEMBERS, DIALOG_STYLE_MSGBOX, ""RED"GANG MEMBERS ", string, "Close", "");
  510. db_free_result(result);
  511. return 1;
  512. }
  513.  
  514.  
  515. CMD:decline(playerid)
  516. {
  517. if(GInfo[playerid][ganginvite] == false) return SendClientMessage(playerid,-1,""RED"You didnt recieve any invitations");
  518. SendClientMessage(playerid,-1,"You declined the invitation");
  519. GInfo[playerid][ganginvite] = false;
  520. return 1;
  521. }
  522.  
  523. CMD:accept(playerid)
  524. {
  525. new Query[900];
  526. if(GInfo[playerid][ganginvite] == false) return SendClientMessage(playerid,-1,""RED"You didnt recieve any invitations");
  527. SendClientMessage(playerid,-1,""GREEN"You accepted invitation and you are now a gang member");
  528. GInfo[playerid][gangmember] = 1;
  529. strdel(GInfo[playerid][gangname],0,56);
  530. strcat(GInfo[playerid][gangname],GInfo[playerid][ginvitedname],55);
  531. GInfo[playerid][ganginvite] = false;
  532. format(Query,sizeof(Query),"UPDATE Members SET GangMember = 1,GangLeader = 0,GangName = '%s' WHERE UserName = '%s' ",DB_Escape(GInfo[playerid][gangname]),DB_Escape(GInfo[playerid][username]));
  533. db_query( Database, Query );
  534. new query[880],DBResult:result;
  535. format(query,sizeof(query),"SELECT * FROM Gangs Where GangName = '%s' ",DB_Escape(GInfo[playerid][gangname]));
  536. result = db_query(Database,query);
  537. if(db_num_rows(result))
  538. {
  539. db_get_field_assoc(result,"GangColor",query,10);
  540. GInfo[playerid][gangcolor] = strval(query);
  541. SetPlayerColor(playerid,GInfo[playerid][gangcolor]);
  542. db_free_result( result );
  543. }
  544. return 1;
  545. }
  546.  
  547. CMD:gkick(playerid,params[])
  548. {
  549. new Query[300],giveid,str[128];
  550. if(sscanf(params,"u",giveid)) return SendClientMessage(playerid,-1,"ERROR:/gkick playerid");
  551. if(GInfo[playerid][gangmember] == 0) return SendClientMessage(playerid,-1,"You are not a Gang Member");
  552. if(GInfo[playerid][gangleader] == 0) return SendClientMessage(playerid,-1,"You are not authorised to do it");
  553. if(GInfo[giveid][gangleader] == 1) return SendClientMessage(playerid,-1,"You cant kick a group leader");
  554. GInfo[giveid][gangmember] = 0;
  555. format(Query,sizeof(Query),"UPDATE Members SET GangMember = 0,GangName = NULL WHERE UserName = '%s' ",DB_Escape(GInfo[giveid][username]));
  556. db_query( Database, Query );
  557. format(str,sizeof(str),""YELLOW"%s"GREY" has Kicked from Gang "RED"%s "GREY"by GangLeader "BLUE"%s",GInfo[giveid][username],GInfo[playerid][username],GInfo[playerid][username]);
  558. SendClientMessageToAll(-1,str);
  559. return 1;
  560. }
  561.  
  562. CMD:gangtag(playerid,params[])
  563. {
  564. new tag[4],newname[25],Query[245];
  565. if(GInfo[playerid][gangmember] == 0) return SendClientMessage(playerid,-1,""RED"You are not a Gang Member");
  566. if(GInfo[playerid][gangleader] == 0) return SendClientMessage(playerid,-1,""RED"You are not authorised to do it");
  567. if(sscanf(params,"s[4]",tag)) return SendClientMessage(playerid,-1,""RED"Error:"GREY"/gangtag [new tag]");
  568. GetPlayerName(playerid,newname,25);
  569.  
  570. strcat(newname,tag,sizeof(newname));
  571.  
  572. format(Query,sizeof(Query),"UPDATE Gangs SET GangTag = '%s' WHERE GangName = '%s'",DB_Escape(tag),DB_Escape(GInfo[playerid][gangname]));
  573. db_query(Database,Query);
  574.  
  575. foreach(new i : Player)
  576. {
  577. if(!strcmp(GInfo[i][gangname],GInfo[playerid][gangname],false))
  578. {
  579.  
  580. SetPlayerName(i,newname);
  581. SendClientMessage(i,-1,""RED"Leader"WHITE"Has Set New Tag For Gang");
  582. }
  583. }
  584.  
  585. return 1;
  586. }
  587.  
  588. CMD:gangcolor(playerid)
  589. {
  590. ShowPlayerDialog(playerid,GANG_COLOR,DIALOG_STYLE_LIST,"Gang Color",""BLUE"Blue\n"RED"RED\n"WHITE"White\n"PINK"Pink\n"CYAN"Cyan\n"ORANGE"Orange\n"GREEN"Green\n"YELLOW"Yellow","OK","CANCEL");
  591. return 1;
  592. }
  593.  
  594. CMD:gwar(playerid,params[])
  595. {
  596. if(GInfo[playerid][gangmember] == 0) return SendClientMessage(playerid,-1,""RED"ERROR:"GREY"You are not a Gang Member!!");
  597. if(GInfo[playerid][gangleader] == 0) return SendClientMessage(playerid,-1,""RED"ERROR:"GREY"You are not Authorised to do that!!");
  598. if(ActiveWar == true) return SendClientMessage(playerid,-1,""RED"Error:"GREY"There is a War Going on now wait till it finishes");
  599. new gname[56],c1;
  600. if(sscanf(params,"s[56]",gname)) return SendClientMessage(playerid,-1,""RED"ERROR:"GREY":/gwar gangname");
  601.  
  602. foreach(new i : Player)
  603. {
  604. if(!strcmp(GInfo[i][gangname],gname,true))
  605. {
  606. printf("entered");
  607. c1++;
  608. }
  609.  
  610. }
  611.  
  612. if(c1 == 0)return SendClientMessage(playerid,-1,""RED"No members of that gang is online");
  613.  
  614. foreach(new i : Player)
  615. {
  616. if(!strcmp(GInfo[i][gangname],GInfo[playerid][gangname]) || !strcmp(gname,GInfo[i][gangname]))
  617. {
  618. inwar[i] = true;
  619. new Random = random(sizeof(RandomSpawnsGW));
  620. SetPlayerPos(i,RandomSpawnsGW[Random][0], RandomSpawnsGW[Random][1], RandomSpawnsGW[Random][2]);
  621. SetPlayerInterior(i,1);
  622. ResetPlayerWeapons(i);
  623. TogglePlayerControllable( i, false );
  624. }
  625. }
  626. ActiveWar = true;
  627.  
  628. SetTimerEx("GangWar",10000,false,"u",GInfo[playerid][gangname],gname);
  629.  
  630. new str[128];
  631. format(str,sizeof(str),""GREEN"%s"WHITE" has started a war against "RED"%s "WHITE"and will start in "YELLOW"10 seconds",GInfo[playerid][gangname],gname);
  632. SendClientMessageToAll(-1,str);
  633. return 1;
  634. }
  635. CMD:gcp(playerid)
  636. {
  637. if(GInfo[playerid][gangmember] == 0) return SendClientMessage(playerid,-1,""RED"ERROR:"GREY"You are not a Gang Member!!");
  638. new str[300],Query[80],DBResult:Result,GScore;
  639. format(Query,sizeof(Query),"SELECT GangScore FROM Gangs WHERE GangName = '%s'",DB_Escape(GInfo[playerid][gangname]));
  640. if( db_num_rows( Result ) )
  641. {
  642. db_get_field_assoc( Result, "GangScore", Query,10 );
  643. GScore = strval(Query);
  644. db_free_result( Result );
  645. }
  646.  
  647. format(str,sizeof(str),"GangName : %s \n GangScore : %d \nGangMembers \nTop Gangs \nGang War\nKick Member \nChange Tag \nChange Color\nSet Leader",GInfo[playerid][gangname],GScore);
  648. ShowPlayerDialog(playerid,GCP,DIALOG_STYLE_LIST,""RED"Gang Control Panel",str,"Ok","Cancel");
  649. return 1;
  650. }
  651. //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  652.  
  653.  
  654. //-Custom Functions--------------------------------------------------------------------------------------------------------------------------------------------------------
  655.  
  656. forward GangWar(gname1[],gname2[]);
  657. public GangWar(gname1[],gname2[])
  658. {
  659. new count1,count2;
  660. foreach(new i : Player)
  661. {
  662. if(!strcmp(gname1,GInfo[i][gangname]))
  663. {
  664. GivePlayerWeapon(i,34,100);
  665. SetPlayerHealth(i,100);
  666. SetPlayerArmour(i,100);
  667. TogglePlayerControllable( i, true );
  668. GameTextForPlayer(i, "~w~War ~g~ Has~r~ Started", 5000, 5);
  669. count1++;
  670. }
  671. if(!strcmp(gname2,GInfo[i][gangname]))
  672. {
  673. GivePlayerWeapon(i,34,100);
  674. SetPlayerHealth(i,100);
  675. SetPlayerArmour(i,100);
  676. TogglePlayerControllable( i, true );
  677. GameTextForPlayer(i, "~w~War ~g~ Has~r~ Started", 5000, 5);
  678. count2++;
  679. }
  680. }
  681.  
  682. if(count1 ==0 || count2 ==0)
  683. {
  684. foreach(new i : Player)
  685. {
  686. if(inwar[i] == true)
  687. {
  688. inwar[i] = false;
  689. SpawnPlayer(i);
  690. }
  691. }
  692. ActiveWar = false;
  693. return SendClientMessageToAll(-1,""RED "Gang war ended due to low participants");
  694. }
  695. return 1;
  696. }
  697.  
  698. forward GMoney(playerid);
  699. public GMoney(playerid)
  700. {
  701. GivePlayerMoney(playerid,100);
  702. GameTextForPlayer(playerid,"~w~RECIEVED ~g~100$ ~w~FROM GANG HQ FOR YOUR SERVICE",5000,5);
  703. return 1;
  704. }
  705.  
  706.  
  707.  
  708.  
  709. DB_Escape( text[ ] )
  710. {
  711. new
  712. ret[ 80 * 2 ],
  713. ch,
  714. i,
  715. j
  716. ;
  717. while( ( ch = text[ i++ ] ) && j < sizeof( ret ) )
  718. {
  719. if( ch == '\'' )
  720. {
  721. if( j < sizeof( ret ) - 2 )
  722. {
  723. ret[ j++ ] = '\'';
  724. ret[ j++ ] = '\'';
  725. }
  726. }
  727. else if( j < sizeof( ret ) )
  728. {
  729. ret[ j++ ] = ch;
  730. }
  731. else
  732. {
  733. j++;
  734. }
  735. }
  736. ret[ sizeof( ret ) - 1 ] = '\0';
  737. return ret;
  738. }
  739.  
  740.  
  741. SendGangMessage(playerid,Message[])
  742. {
  743. foreach(new i : Player)
  744. {
  745. if(!strcmp(GInfo[playerid][gangname],GInfo[i][gangname],false)&& !isnull(GInfo[i][gangname]))
  746. {
  747. SendClientMessage(i,-1,Message);
  748. }
  749. }
  750. return 0;
  751. }
  752.  
  753. CheckVict(gname1[],gname2[])
  754. {
  755. new count1,count2;
  756. foreach(new i : Player)
  757. {
  758. if(inwar[i] == true)
  759. {
  760. if(!strcmp(gname1,GInfo[i][gangname]))
  761. {
  762. count1++;
  763. }
  764. if(!strcmp(gname2,GInfo[i][gangname]))
  765. {
  766. count2++;
  767. }
  768. }
  769. }
  770. if(count1 ==0 || count2 ==0)
  771. {
  772. foreach(new i : Player)
  773. {
  774. if(inwar[i] == true)
  775. {
  776. inwar[i] = false;
  777. SpawnPlayer(i);
  778. }
  779. }
  780. new str[128];
  781. if(count1 == 0)
  782. {
  783. format(str,sizeof(str),""RED"%s "WHITE"has won the war against "RED"%s",gname2,gname1);
  784. SendClientMessageToAll(-1,str);
  785. ActiveWar = false;
  786. }
  787. else if(count2 == 0)
  788. {
  789. format(str,sizeof(str),""RED"%s "WHITE"has won the war against "RED"%s",gname1,gname2);
  790. SendClientMessageToAll(-1,str);
  791. ActiveWar = false;
  792. }
  793. }
  794. }
Advertisement
Add Comment
Please, Sign In to add comment