Advertisement
Guest User

C-Gang System by Crosslife

a guest
Jul 31st, 2016
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.88 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf2>
  4.  
  5. #define cyan                    0x00FFFFAA
  6. #define yellow                  0xFFFF00AA
  7. #define green                   0x33FF33AA
  8. #define red                     0xFF0000AA
  9. #define white                   0xFFFFFFAA
  10. #define blue                    0x375FFFFF
  11. #define grey                    0xC0C0C0AA
  12. #define orange                  0xFF9900AA
  13. #define lightblue               0x33CCFFAA
  14.  
  15. #define forpub%0(%1) forward%0(%1); public%0(%1)
  16. #define Connect 654
  17.  
  18. new DB: xx;
  19.  
  20. new zz[128];
  21.  
  22. new pLevel[MAX_PLAYERS];
  23.  
  24. public OnFilterScriptInit()
  25. {
  26.     xx = db_open("CGangSystem.db");
  27.     db_free_result(db_query(xx, "CREATE TABLE IF NOT EXISTS `CGangSystem` (`Key` INTEGER PRIMARY KEY AUTOINCREMENT , \
  28.                                                                             `Name` TEXT, \
  29.                                                                             `Vip` NUMERIC)"));
  30.     print("==============[FS]==============\n");
  31.     print("==========C-Gang System=========\n");
  32.     print("==========by Crosslife==========\n");
  33.     return 1;
  34. }
  35.  
  36. public OnPlayerConnect(playerid)
  37. {
  38.     new DBResult: w;
  39.     format(zz, 128, "SELECT * FROM `CGangSystem` WHERE `Name` = '%s'", pName(playerid));
  40.     w = db_query(xx, zz);
  41.     if(!db_num_rows(w))
  42.     {
  43.         format(zz, 128, "INSERT INTO `CGangSystem` VALUES (NULL, '%s', '%d')", pName(playerid), pLevel[playerid]=0);
  44.         db_query(xx, zz);
  45.     }
  46.     else
  47.     {
  48.         new az[69];
  49.         db_get_field_assoc(w, "Vip", az, 69); pLevel[playerid] = strval(az);
  50.     }
  51.     return 1;
  52. }
  53.  
  54. public OnPlayerDisconnect(playerid, reason)
  55. {
  56.     format(zz, 128, "UPDATE `CGangSystem` SET `Vip` = '%d' WHERE `Name` = '%s'", pLevel[playerid], pName(playerid));
  57.     db_query(xx, zz);
  58.     return 1;
  59. }
  60.  
  61. stock pName(playerid) {
  62.     new id[25];
  63.     GetPlayerName(playerid, id, 25);
  64.     return(id);
  65. }
  66.  
  67. forpub MessageToSAMP(colour, t[]) {
  68.     for(new i = 0; i < MAX_PLAYERS; i ++)
  69.     {
  70.         if(IsPlayerConnected(i), pLevel[i])
  71.         {
  72.             SendClientMessage(i, colour, t);
  73.         }
  74.     }
  75.     return 1;
  76. }
  77.  
  78. forpub SendUsage(playerid, color, teks[])
  79. {
  80.     format(zz, 128, "USAGE: %s", teks);
  81.     SendClientMessage(playerid, red, zz);
  82.     return 1;
  83. }
  84.  
  85. forpub Level(playerid, Lvl)
  86. {
  87.     if (Lvl >= 1) return SendClientMessage(playerid, red, "ERROR: You need to be [SA:MP] Member to use this command");
  88.     return 1 ;
  89. }
  90.  
  91. enum vInfo
  92. {
  93.     Modding,
  94.     Model,
  95.     Float:x_spawn,
  96.     Float:y_spawn,
  97.     Float:z_spawn,
  98.     Float:za_spawn,
  99.     Float:ox_spawn,
  100.     Float:oy_spawn,
  101.     Float:oz_spawn,
  102.     Float:oza_spawn,
  103.     Color_1,
  104.     Color_2,
  105.     owner[128],
  106.     VehicleCost,
  107.     bought,
  108.     Secure,
  109.     Asecure,
  110.     Vused,
  111.     Buybar,
  112.     name[128],
  113.     Mod_1,
  114.     Mod_2,
  115.     Mod_3,
  116.     Mod_4,
  117.     Mod_5,
  118.     Mod_6,
  119.     Mod_7,
  120.     Mod_8,
  121.     Mod_9,
  122.     Mod_10,
  123.     Mod_11,
  124.     Mod_12,
  125.     Mod_13,
  126.     Mod_14,
  127.     Mod_15,
  128.     Mod_16,
  129.     Mod_17,
  130.     Paintjob,
  131.     Temp,
  132. };
  133.  
  134. new VehicleInfo[MAX_VEHICLES][vInfo];
  135.  
  136. forpub CarSpawner(playerid, cmodel)
  137. {
  138.     if(IsPlayerInAnyVehicle(playerid)) return 0;
  139.     new Float:x, Float:y, Float:z, Float:angle;
  140.     GetPlayerPos(playerid, x, y, z);
  141.     GetPlayerFacingAngle(playerid, angle);
  142.     new ctsvehicle = CreateVehicle(cmodel, x, y, z, angle, -1, -1, 10000);
  143.     PutPlayerInVehicle(playerid, ctsvehicle, 0);
  144.     SetVehicleVirtualWorld(ctsvehicle, GetPlayerVirtualWorld(playerid));
  145.     LinkVehicleToInterior(ctsvehicle, GetPlayerInterior(playerid));
  146.     VehicleInfo[ctsvehicle][Temp] = 1;
  147.     return 1;
  148. }
  149.  
  150. //--------------Commands
  151. CMD:samphelp(playerid, params[]) {
  152.     if(pLevel[playerid] >= 1) {
  153.     SendClientMessage(playerid, red, "_____________[SA:MP] Member Commands_____________");
  154.     SendClientMessage(playerid, cyan, "Rank 7: /setsamp, /kicksamp\n");
  155.     SendClientMessage(playerid, cyan, "Rank 1-6: /sampsay, /samp, /sampafk, /sampback\n");
  156.     SendClientMessage(playerid, cyan, "/sampweaps, /sampcar, /sampbike\n");
  157.     } else return SendClientMessage(playerid,red, "ERROR: You need to be [SA:MP] member to use this command.");
  158.     return 1;
  159. }
  160.  
  161. CMD:setsamp(playerid, params[]) {
  162.     if(pLevel[playerid] >= 7 || IsPlayerAdmin(playerid)) {
  163.         new pid, Lvl;
  164.         if(sscanf(params, "ud", pid, Lvl)) return SendUsage(playerid, red, "/setsamp [playerid] [rank]");
  165.         else if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "ERROR: Player Is Not Connected!");
  166.         else if(Lvl < 1 || Lvl > 7) return SendClientMessage(playerid, red, "ERROR: Invalid Rank (1-7)" ) ;
  167.         else if(Lvl == pLevel[pid]) return SendClientMessage(playerid, red, "ERROR: Player is already have this Rank");
  168.         else
  169.         {
  170.             if(Lvl > pLevel[pid]) {
  171.                 GameTextForPlayer(pid, "~g~Promoted", 2000, 3);
  172.             }
  173.             else if(Lvl < pLevel[pid]) {
  174.                 GameTextForPlayer(pid, "~g~Demoted", 2000, 3);
  175.             }
  176.             pLevel[pid]=Lvl;
  177.             format(zz, 128, ">>[INFO] {ff0000}%s {ffffff}has set you to [SA:MP] gang status {FF0000}[Rank %d]", pName(playerid), Lvl);
  178.             SendClientMessage(pid, white, zz);
  179.      
  180.             format(zz, 128, "[SA:MP] '%s' (Rank: %d) | Command: SETSAMP", pName(playerid), pLevel[playerid]);
  181.             MessageToSAMP(green, zz);
  182.         }
  183.     }
  184.     else
  185.     {
  186.         SendClientMessage(playerid, red, "ERROR: You are not a high enough level to use this command");
  187.     }
  188.     return 1;
  189. }
  190.  
  191. CMD:kicksamp(playerid, params[]) {
  192.     if(pLevel[playerid] >= 7 || IsPlayerAdmin(playerid)) {
  193.         new pid, Lvl;
  194.         if(sscanf(params, "u", pid)) return SendUsage(playerid, red, "/kicksamp [id]");
  195.         else if(pLevel[pid] == 0) return SendClientMessage(playerid, red, "ERROR: This player is not even [SA:MP] member!");
  196.         else if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "ERROR: Player Is Not Connected!");
  197.         else
  198.         {
  199.             pLevel[pid] = Lvl;
  200.             format(zz, 128, ">>[INFO] %s has just Kicked you out from [SA:MP] gang!", pName(playerid));
  201.             SendClientMessage(pid, red, zz);
  202.  
  203.             format(zz, 128, "[SA:MP] '%s' (Rank: %d) | Command: KICKSAMP", pName(playerid), pLevel[playerid]);
  204.             MessageToSAMP(green, zz);
  205.         }
  206.     }
  207.     else
  208.     {
  209.         SendClientMessage(playerid, red, "ERROR: You are not a high enough level to use this command");
  210.     }
  211.     return 1;
  212. }
  213.  
  214. CMD:sampmembers(playerid, params[])
  215. {
  216.     SendClientMessage(playerid, cyan, " ");
  217.     SendClientMessage(playerid, cyan, "_______ |- Online [SA:MP] Members -| _______");
  218.     SendClientMessage(playerid, cyan, " ");
  219.     new count = 0;
  220.     for(new i = 0; i < MAX_PLAYERS; i++)
  221.     {
  222.         if(!IsPlayerConnected(i)) continue;
  223.         if(!pLevel[i]) continue;
  224.         new pname[MAX_PLAYER_NAME], gg[70];
  225.         GetPlayerName(i, pname, sizeof(pname));
  226.         switch(pLevel[i])
  227.         {
  228.             case 1: format(gg, sizeof(gg), "|| %s (ID:%i) || Rank: %d || Newbie ||", pname, i, pLevel[i]);
  229.             case 2: format(gg, sizeof(gg), "|| %s (ID:%i) || Rank: %d || Little Clucker ||", pname, i, pLevel[i]);
  230.             case 3: format(gg, sizeof(gg), "|| %s (ID:%i) || Rank: %d || Big Clucker ||", pname, i, pLevel[i]);
  231.             case 4: format(gg, sizeof(gg), "|| %s (ID:%i) || Rank: %d || Huge Clucker ||", pname, i, pLevel[i]);
  232.             case 5: format(gg, sizeof(gg), "|| %s (ID:%i) || Rank: %d || Gangsta ||", pname, i, pLevel[i]);
  233.             case 6: format(gg, sizeof(gg), "|| %s (ID:%i) || Rank: %d || High Roller ||", pname, i, pLevel[i]);
  234.             case 7: format(gg, sizeof(gg), "|| %s (ID:%i) || Rank: %d || Godfather ||", pname, i, pLevel[i]);
  235.             default: continue;
  236.         }
  237.         count++;
  238.         SendClientMessage(playerid, lightblue, gg);
  239.     }
  240.     if(!count) SendClientMessage(playerid, red, "No [SA:MP] Member Online");
  241.     SendClientMessage(playerid, cyan, "_________________________________________");
  242.     return 1;
  243. }
  244.  
  245. CMD:sampsay(playerid, params []) {
  246.     if(pLevel[playerid] >= 1) {
  247.         new t;
  248.         if(sscanf(params, "u", t)) return SendUsage(playerid, red, "/sampsay [text]");
  249.         else {
  250.             format(zz, 128, "**[SA:MP]Member - %s : %s", pName(playerid), params[0]);
  251.             SendClientMessageToAll(red, zz);
  252.  
  253.             format(zz, 128, "[SA:MP] '%s' (Rank: %d) | Command: SAMPSAY", pName(playerid), pLevel[playerid]);
  254.             MessageToSAMP(green, zz);
  255.         }
  256.         } else return SendClientMessage(playerid,red, "ERROR: You need to be [SA:MP] member to use this command.");
  257.     return 1;
  258. }
  259.  
  260. CMD:samp(playerid,params[]) {
  261.             new qq[128];
  262.             if(IsPlayerConnected(playerid)) {
  263.                 GetPlayerName(playerid, pName(playerid), MAX_PLAYER_NAME);
  264.                 if(pLevel[playerid] == 1)
  265.                 {
  266.                     format(qq,sizeof(qq), "[SA:MP-Newbie]{00FFFF} %s : %s", pName(playerid), params);
  267.                 }
  268.                 else if(pLevel[playerid] == 2)
  269.                 {
  270.                     format(qq,sizeof(qq), "[SA:MP-Little Clucker]{00FFFF} %s : %s", pName(playerid), params);
  271.                 }
  272.                 else if(pLevel[playerid] == 3)
  273.                 {
  274.                     format(qq,sizeof(qq), "[SA:MP-Big Clucker]{00FFFF} %s : %s", pName(playerid), params);
  275.                 }
  276.                 else if(pLevel[playerid] == 4)
  277.                 {
  278.                     format(qq,sizeof(qq), "[SA:MP-Huge Clucker]{00FFFF} %s : %s", pName(playerid), params);
  279.                 }
  280.                 else if(pLevel[playerid] == 5)
  281.                 {
  282.                     format(qq,sizeof(qq), "[SA:MP-Gangsta]{00FFFF} %s : %s", pName(playerid), params);
  283.                 }
  284.                 else if(pLevel[playerid] == 6)
  285.                 {
  286.                     format(qq,sizeof(qq), "[SA:MP-High Roller]{00FFFF} %s : %s", pName(playerid), params);
  287.                 }
  288.                 else if(pLevel[playerid] == 7)
  289.                 {
  290.                     format(qq,sizeof(qq), "[SA:MP-Godfather]{00FFFF} %s : %s", pName(playerid), params);
  291.                 }
  292.                 MessageToSAMP(red, qq);
  293.                 } else return SendClientMessage(playerid,red, "ERROR: You need to be [SA:MP] member to use this command.");
  294.             return 1;
  295. }
  296.  
  297. new Text3D: AFK[MAX_PLAYERS];
  298. CMD:sampafk(playerid, params[]) {
  299.     if(pLevel[playerid] >= 1) {
  300.     new string[256];
  301.     new boom[MAX_PLAYER_NAME];
  302.     SendClientMessage(playerid,0x99FF00AA,"Type /sampback when you will back.");
  303.     GameTextForPlayer(playerid,"~r~ You are now AFK", 5000, 1);
  304.     AFK[playerid] = Create3DTextLabel("AFK", 0xFF0000FF, 0.0, 0.0, 2.0, 40, 0, 0);
  305.     Attach3DTextLabelToPlayer(AFK[playerid],playerid, 0.0, 0.0, 0.4);
  306.     TogglePlayerControllable(playerid, 0);
  307.     GetPlayerName(playerid, boom, sizeof(boom));
  308.     GetPlayerName(playerid, pName(playerid),MAX_PLAYER_NAME);
  309.     if(pLevel[playerid] >= 1) {
  310.     format(string,sizeof(string), "[SA:MP] Member - {FFFF00}%s now away from keyboard!", pName(playerid));
  311.     }
  312.     SendClientMessageToAll(cyan, string);
  313.     format(zz, 128, "[SA:MP] '%s' (Rank: %d) | Command: SAMPAFK", pName(playerid), pLevel[playerid]);
  314.     MessageToSAMP(green, zz) ;
  315.     } else return SendClientMessage(playerid,red, "ERROR: You need to be [SA:MP] member to use this command.");
  316.     return 1;
  317. }
  318.  
  319. CMD:sampback(playerid, params[]) {
  320.     if(pLevel[playerid] >= 1) {
  321.     new string[256];
  322.     new boom[MAX_PLAYER_NAME];
  323.     Delete3DTextLabel(AFK[playerid]);
  324.     GameTextForPlayer(playerid,"~g~ Welcome Back", 5000, 1);
  325.     TogglePlayerControllable(playerid, 1);
  326.     GetPlayerName(playerid, boom, sizeof(boom));
  327.     GetPlayerName(playerid, pName(playerid), MAX_PLAYER_NAME);
  328.     if(pLevel[playerid] >= 1) {
  329.     format(string,sizeof(string), "[SA:MP] Member - {FFFF00}%s now back from afk!", pName(playerid));
  330.     }
  331.     SendClientMessageToAll(cyan, string);
  332.     format(zz, 128, "[SA:MP] '%s' (Rank: %d) | Command: SAMPBACK", pName(playerid), pLevel[playerid]);
  333.     MessageToSAMP(green, zz) ;
  334.     } else return SendClientMessage(playerid,red, "ERROR: You need to be [SA:MP] member to use this command.");
  335.     return 1;
  336. }
  337.  
  338. CMD:sampweaps(playerid, params[]) {
  339.     if(pLevel[playerid] >= 1) {
  340.             new yy[128];
  341.             new jjname[MAX_PLAYER_NAME];
  342.             GetPlayerName(playerid, jjname, sizeof(jjname));
  343.             format(yy, sizeof(yy), "[INFO]: %s has been used [SA:MP] Gang Weapons /sampweaps", jjname);
  344.             SendClientMessageToAll(red, yy);
  345.             GivePlayerWeapon(playerid,16,500); GivePlayerWeapon(playerid,26,500); //You can add more weapons
  346.             format(zz, 255, "[SA:MP] '%s' (Rank: %d) | Command: SAMPWEAPS", pName(playerid), pLevel[playerid]);
  347.             MessageToSAMP(green, zz);
  348.         } else return SendClientMessage(playerid,red, "ERROR: You need to be [SA:MP] member to use this command.");
  349.     return 1;
  350. }
  351.  
  352. CMD:sampcar(playerid,params[]) {
  353.     if(pLevel[playerid] >= 1) {
  354.         if(!IsPlayerInAnyVehicle(playerid)) {
  355.             CarSpawner(playerid, 579); //You can change the id of the car
  356.             format(zz, 255, "[SA:MP] '%s' (Rank: %d) | Command: SAMPCAR", pName(playerid), pLevel[playerid]);
  357.             MessageToSAMP(green, zz);
  358.             return SendClientMessage(playerid,blue,"Enjoy the SAMP car (Huntley)");
  359.         } else return SendClientMessage(playerid,red,"ERROR: You already have a vehicle");
  360.     } else return SendClientMessage(playerid,red,"ERROR: You need to be [SA:MP] member to use this command.");
  361. }
  362.  
  363. CMD:sampbike(playerid,params[]) {
  364.     if(pLevel[playerid] >= 1) {
  365.         if(!IsPlayerInAnyVehicle(playerid)) {
  366.             CarSpawner(playerid, 522); //You can change the id of the bike
  367.             format(zz, 255, "[SA:MP] '%s' (Rank: %d) | Command: SAMPBIKE", pName(playerid), pLevel[playerid]);
  368.             MessageToSAMP(green, zz);
  369.             return SendClientMessage(playerid,blue,"Enjoy the SAMP bike (NRG-500)");
  370.         } else return SendClientMessage(playerid,red,"ERROR: You already have a vehicle");
  371.     } else return SendClientMessage(playerid,red,"ERROR: You need to be [SA:MP] member to use this command.");
  372. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement