//---------------------------------------------------------
//
// Hoodlumz DM And Gangwar Server
//---------------------------------------------------------
//------------ [Includes and static] ------------------
#include <a_samp>
#include <core>
#include <float>
#include <Dini>
#include <dudb>
#include <dutils>
static gTeam[MAX_PLAYERS];
//------------ [Defines] ------------------
#define TEAM_1 0
#define TEAM_2 1
#define COLOR_BROWN 0xA52A2AAA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_DBLUE 0x2641FEAA
#define COLOR_BLUE 0x33AAFFFF
#define COLOR_GREEN 0x33AA33AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xFF0000FF
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_YELLOW2 0xF5DEB3AA
#define COLOR_CYAN 0x00FFFFAA
#define COLOR_SYSTEM 0xEFEFF7AA
#define MAX_GANGS 32
#define MAX_GANG_MEMBERS 6
#define MAX_GANG_NAME 16
// === [New] ===
new gangMembers[MAX_GANGS][MAX_GANG_MEMBERS];
new gangNames[MAX_GANGS][MAX_GANG_NAME];
new gangInfo[MAX_GANGS][3];
new gangBank[MAX_GANGS];
new playerGang[MAX_PLAYERS];
new gangInvite[MAX_PLAYERS];
new bounty[MAX_PLAYERS];
//new God[MAX_PLAYERS];
new GodTimer;
new Serverbot;
new BotMessages[15][256] = {
"PakBot: For information of the server type /help",
"PakBot: Do not bug abuse, Instead tell a admin!",
"PakBot: PakBot pwns you all",
"PakBot: /fc1, /fc2, /tpgw /hstunt /hdrift are your teleports!",
"PakBot: Please do not use CAPS!",
"PakBot: Speak english only in mainchat use /pm to talk in different languages!",
"PakBot: /uzi to change your tec's to uzi and /tec9 to change back!",
"PakBot: Post all your ideas, complaints and suggestions on the hoodlumz website!",
"PakBot: Take your time to listen to a admin or moderator!",
"PakBot: Need money? Tell a admin!",
"PakBot: To join [H] go to www.hoodlumz.smfforfree4.com!",
"PakBot: Never use cheats or hacks",
"PakBot: Have many 1v1's to gain experiance!",
"PakBot: Leader of [H] is [H]Infamous",
"PakBot: /hstunt may have some objects missplaced we know!"
};
// === [Pragma] ===
#pragma unused ret_memcpy
// === [Forward] ===
forward SendPlayerFormattedText(playerid, const str[], define);
forward SetupPlayerForClassSelection(playerid);
forward BotMSGToAll (playerid);
forward AutoMsg();
forward InfiniteLife(playerid);
forward PlayerLeaveGang(playerid);
//---------------------------------------------------------
main()
{
print("\n----------------------------------");
print(" Hoodlumz DM And Gangwar Server");
print("----------------------------------\n");
}
//---------------------------------------------------------
public OnGameModeInit()
{
SetGameModeText("[H] DM And GW");
UsePlayerPedAnims();
ShowNameTags(1);
ShowPlayerMarkers(1);
SetTimer("AutoMsg",300000,1);
SetTimer("BotMSGToAll",120000,true);
AddPlayerClass(107,1567.3187,-1249.1738,277.8786,184.7298,24,99999,32,99999,26,99999); // Grove Street
AddPlayerClass(104,1567.3187,-1249.1738,277.8786,184.7298,24,99999,32,99999,26,99999); // Balla's
AddStaticPickup(1240, 2, 2141.9729,-1803.1793,16.1475); // Health pickup at fc1
AddStaticPickup(1242, 2, 2144.5398,-1802.9600,16.1406); // Armour pickup at fc1
AddStaticPickup(1240, 2, 2100.5491,2168.5110,10.8203); // Health pickup at fc2
AddStaticPickup(1242, 2, 2100.3335,2170.2815,10.8203); // Armour pickup at fc2
AddStaticVehicle(541,2414.5840,700.3683,10.4344,270.7495,58,8); // Bullet
AddStaticVehicle(415,2414.2510,697.1436,10.5907,269.1522,25,1); // Cheetah next to bullet
AddStaticVehicle(411,2414.0881,693.8152,10.5474,268.1954,64,1); // Infernus next to cheetah
AddStaticVehicle(451,2414.4961,690.5084,10.5271,269.9096,125,125); // Turizmo next to infernus
AddStaticVehicle(506,2414.5938,687.2556,10.5249,270.6655,6,6); // Supergt next to turizmo
AddStaticVehicle(477,2414.6130,683.9703,10.5761,268.2617,94,1); // Z350 next to supergt
AddStaticVehicle(429,2414.4973,680.3223,10.4993,267.4791,13,13); // Banshee next to z350
AddStaticVehicle(559,2414.1797,676.8383,10.4760,270.9873,58,8); // Jester next to banshee
AddStaticVehicle(560,2414.6243,673.5172,10.5249,267.4776,9,39); // Sultan next to jester
AddStaticVehicle(481,2446.1563,680.5416,10.9714,359.7585,3,3); // Bmx outside mjaa house
AddStaticVehicle(522,2442.7341,709.3513,10.8169,89.3792,3,8); // NRG next door to swe household
AddStaticVehicle(522,2442.8074,707.8382,10.8102,90.8377,6,25); // Another nrg next to swe household
AddStaticVehicle(468,2172.5688,-3221.2590,1.8242,177.4596,46,46); // Stunt Area Vehicle - Sanchez
AddStaticVehicle(468,2170.6279,-3221.1240,1.8519,175.3357,53,53); // Stunt Area Vehicle - Sanchez
AddStaticVehicle(522,2167.9438,-3221.0137,1.8064,172.2171,8,82); // Stunt Area Vehicle - NRG
AddStaticVehicle(522,2165.9863,-3220.7852,1.8287,176.6714,39,106); // Stunt Area Vehicle - NRG
AddStaticVehicle(510,2158.2502,-3236.9651,4.8749,270.5667,46,46); // Stunt Area Vehicle - Mountain Bike
AddStaticVehicle(510,2158.3188,-3238.3608,4.8746,270.8672,39,39); // Stunt Area Vehicle - Mountain Bike
AddStaticVehicle(520,-1444.4866,-1591.8413,102.4811,265.3654,0,0); // Mjaa hydra
AddStaticVehicle(560,-1434.9363,-1538.3832,101.4795,90.1339,17,1); // Sultan outside mjaa home
AddStaticVehicle(541,-1434.9772,-1542.4886,101.3858,90.3527,60,1); // Bullet next to sultan
AddStaticVehicle(557,-1455.2404,-1451.4609,102.1404,175.2187,1,1); // Monster truck at mjaa home
AddStaticVehicle(557,-1463.1978,-1451.9999,102.1003,188.0319,1,1); // Monster truck next to monster truck
AddStaticVehicle(495,-1412.0571,-1507.6940,102.0266,96.9481,119,122); // Sandking at mjaa home
AddStaticVehicle(495,-1411.3284,-1513.5474,102.0450,94.2820,118,117); // Sandking next to sandking
AddStaticVehicle(522,-1435.5482,-1530.9313,101.3083,70.9989,51,118); // NRG outside mjaa home
AddStaticVehicle(471,-1436.3176,-1533.7869,101.2376,64.8092,103,111); // Quad next to NRG
AddStaticVehicle(437,-1419.4662,-1575.5695,101.8834,345.3862,79,7); // Bus at mjaa home
AddStaticVehicle(490,-1428.4818,-1469.3654,101.8084,268.5219,0,0); // FBI car at mjaa home
AddStaticVehicle(490,-1428.3578,-1464.3748,101.8619,269.6455,0,0); // FBI next to FBI car
AddStaticVehicle(469,-1434.5026,-1562.1538,101.7695,267.4820,1,3); // Sparrow at mjaa home
AddStaticVehicle(562,-1434.8789,-1477.9727,101.3575,90.5544,17,1); // Elgy outside mjaa home
AddStaticVehicle(562,-1434.8663,-1482.1277,101.3543,88.0173,35,1); // Elgy next to elgy
AddStaticVehicle(522,1282.4464,-831.2691,82.7035,1.3700,51,118); // NRG at farepak house
AddStaticVehicle(567,1254.7744,-805.4003,84.0090,178.9029,88,64); // Savanna outside farpak home
AddStaticVehicle(535,1248.9100,-805.1141,83.9043,179.3457,28,1); // Slamvan next to savanna
AddStaticVehicle(487,1291.3031,-786.3946,96.6594,180.1985,29,42); // Maverik at farepak home
AddStaticVehicle(558,-313.2693,1534.2321,75.0821,86.2959,116,1); // drift car #1
AddStaticVehicle(506,-346.0934,1515.0430,75.0573,0.1440,52,52); // Drift car #2
AddStaticVehicle(603,-339.7125,1514.7001,75.1974,0.0574,75,77); // drift car #3
AddStaticVehicle(541,-330.5052,1515.0807,75.0080,2.4409,22,1); // Drift car #4
AddStaticVehicle(506,-323.9244,1515.4131,75.0632,359.8132,76,76); // Drift car #5
AddStaticVehicle(603,-314.2010,1515.1790,75.1970,3.1600,18,1); // Drift car #6
AddStaticVehicle(411,-265.2804,1542.6840,75.0864,135.5489,80,1); // Drift car #7
AddStaticVehicle(541,-270.4614,1547.3766,74.9875,134.9284,13,8); // Drift car #8
AddStaticVehicle(411,-275.3764,1552.4293,75.0996,137.5847,64,1); // Drift car # 9
AddStaticVehicle(506,-280.3756,1557.3885,75.0457,138.0627,3,3); // Drift car #1-
AddStaticVehicle(541,-284.7664,1563.0043,75.0122,135.3770,2,1); // Drift car #11
AddStaticVehicle(411,-292.1123,1570.3981,75.0865,135.0187,75,1); // Drift car #12
AddStaticVehicle(451,-300.3471,1576.9791,75.0706,135.6597,36,36); // Drift car #13
AddStaticVehicle(411,-305.0305,1582.3158,75.0989,135.7257,12,1); // Drift final car
AddStaticVehicle(603,-272.5146,-2204.1873,28.5053,28.8684,69,1); // Phoenix at pedal home
AddStaticVehicle(556,-259.1723,-2182.1902,29.3861,22.2860,1,1); // Monster truck at pedal home
AddStaticVehicle(576,-288.2808,-2147.0752,28.1885,116.5949,68,96); // Car at pedal home #1
AddStaticVehicle(526,-285.7983,-2174.4551,28.4444,21.8987,9,39); // Car at pedal home #2
AddStaticVehicle(434,-269.0435,-2195.1487,28.7515,66.3880,12,12); // Car at pedal #3
AddStaticVehicle(491,-267.4268,-2192.2603,28.5854,45.1938,71,72); // Car at pedal home #4
AddStaticVehicle(579,-274.3774,-2176.1035,28.7035,115.4495,42,42); // Car at pedal home #5
AddStaticVehicle(521,-269.6331,-2155.6516,28.3152,29.9559,75,13); // Bike at pedal home #6
AddStaticVehicle(479,-257.1015,-2215.3333,28.5484,118.2089,59,36); // Car at pedal home #8
CreateObject(17864,2172.036,-3271.655,1.068,0.0,0.0,90.000);
CreateObject(17864,2172.537,-3234.238,1.122,0.0,0.0,90.000);
CreateObject(987,2156.648,-3214.486,1.374,0.0,0.0,270.000);
CreateObject(987,2156.850,-3230.799,1.372,0.0,0.0,270.000);
CreateObject(987,2156.324,-3254.734,1.317,0.0,0.0,270.000);
CreateObject(987,2156.261,-3266.724,1.319,0.0,0.0,270.000);
CreateObject(987,2156.705,-3218.535,1.373,0.0,0.0,270.000);
CreateObject(987,2156.766,-3242.788,1.373,0.0,0.0,270.000);
CreateObject(987,2156.272,-3278.693,1.319,0.0,0.0,270.000);
CreateObject(987,2156.243,-3302.759,1.327,0.0,0.0,270.000);
CreateObject(17864,2172.094,-3308.619,1.075,0.0,0.0,90.000);
CreateObject(987,2156.374,-3290.729,1.324,0.0,0.0,270.000);
CreateObject(17864,2203.854,-3233.598,0.614,0.0,0.0,90.000);
CreateObject(987,2156.339,-3314.678,1.326,0.0,0.0,270.000);
CreateObject(17864,2203.361,-3273.223,0.702,0.0,0.0,90.000);
CreateObject(17864,2203.354,-3308.900,0.395,0.0,0.0,90.000);
CreateObject(13641,2212.217,-3313.911,1.946,0.0,0.0,90.000);
CreateObject(13647,2159.246,-3302.547,1.289,0.0,0.0,270.000);
CreateObject(3881,2160.504,-3220.532,3.195,0.0,0.0,-180.000);
CreateObject(6052,2176.884,-3246.479,3.795,0.0,0.0,180.000);
CreateObject(13636,2171.751,-3304.630,3.353,0.0,0.0,180.000);
CreateObject(3625,2162.546,-3238.782,4.126,0.0,0.0,270.000);
CreateObject(13604,2170.904,-3257.142,2.760,0.0,0.0,180.000);
CreateObject(13641,2211.240,-3272.303,2.194,0.0,0.0,270.000);
CreateObject(12920,2194.779,-3296.371,0.598,0.0,0.0,90.000);
CreateObject(1503,2194.862,-3268.414,1.266,0.0,0.0,180.000);
CreateObject(1684,2178.563,-3220.047,2.582,0.0,0.0,0.0);
CreateObject(1684,2188.594,-3219.809,2.450,0.0,0.0,0.0);
CreateObject(3504,2196.484,-3219.250,2.062,0.0,0.0,180.000);
CreateObject(3504,2197.867,-3219.198,2.034,0.0,0.0,180.000);
CreateObject(1281,2203.260,-3219.711,1.420,0.0,0.0,90.000);
CreateObject(1281,2207.187,-3219.687,1.348,0.0,0.0,90.000);
CreateObject(1281,2211.190,-3219.448,1.264,0.0,0.0,90.000);
CreateObject(1378,2214.928,-3244.557,24.782,0.0,0.0,270.000);
CreateObject(987,2180.837,-3214.544,0.990,0.0,0.0,180.000);
CreateObject(987,2216.710,-3214.348,0.415,0.0,0.0,180.000);
CreateObject(987,2168.543,-3214.753,1.185,0.0,0.0,180.000);
CreateObject(987,2192.764,-3214.606,0.790,0.0,0.0,180.000);
CreateObject(987,2204.737,-3214.341,0.600,0.0,0.0,180.000);
CreateObject(987,2219.730,-3214.300,0.365,0.0,0.0,180.000);
CreateObject(987,2219.093,-3261.505,0.453,0.0,0.0,90.000);
CreateObject(987,2219.478,-3225.952,0.366,0.0,0.0,90.000);
CreateObject(987,2219.525,-3249.759,0.366,0.0,0.0,90.000);
CreateObject(987,2219.402,-3237.713,0.367,0.0,0.0,90.000);
CreateObject(987,2219.017,-3273.418,0.454,0.0,0.0,90.000);
CreateObject(987,2219.043,-3285.302,0.454,0.0,0.0,90.000);
CreateObject(987,2218.849,-3309.094,0.147,0.0,0.0,90.000);
CreateObject(987,2156.329,-3326.870,1.332,0.0,0.0,0.0);
CreateObject(987,2218.867,-3297.208,0.147,0.0,0.0,90.000);
CreateObject(987,2219.017,-3320.986,0.146,0.0,0.0,90.000);
CreateObject(987,2207.266,-3325.498,0.311,0.0,0.0,0.0);
CreateObject(987,2219.005,-3325.665,0.146,0.0,0.0,90.000);
CreateObject(987,2195.173,-3325.922,0.513,0.0,0.0,0.0);
CreateObject(987,2183.638,-3326.684,0.885,0.0,0.0,0.001);
CreateObject(987,2171.502,-3326.779,1.079,0.0,0.0,0.0);
CreateObject(987,2159.287,-3326.959,1.278,0.0,0.0,0.0);
return 1;
}
//---------------------------------------------------------
public PlayerLeaveGang(playerid)
{
new string[256];
new playername[MAX_PLAYER_NAME];
new gangnum = playerGang[playerid];
if(gangnum > 0)
{
for(new i = 0; i < gangInfo[gangnum][1]; i++)
{
if(gangMembers[gangnum][i]==playerid)
{
//One less gang member
gangInfo[gangnum][1]--;
for(new j = i; j < gangInfo[gangnum][1]; j++)
{
//Shift gang members
gangMembers[gangnum][j]=gangMembers[gangnum][j+1];
}
//Disband gang if no more members
if(gangInfo[gangnum][1]<1)
{
gangInfo[gangnum][0]=0;
gangInfo[gangnum][1]=0;
gangBank[gangnum]=0;
}
//Notify other members
for(new j = 0; j < gangInfo[gangnum][1]; j++)
{
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
format(string, sizeof(string),"%s has quit your gang.", playername);
SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string);
}
format(string, sizeof(string),"You have quit the gang '%s' (id: %d)", gangNames[gangnum], gangnum);
SendClientMessage(playerid, COLOR_ORANGE, string);
playerGang[playerid]=0;
SetPlayerColor(playerid,COLOR_GREEN);
return;
}
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "You are not in a gang.");
}
}
//---------------------------------------------------------
public SetupPlayerForClassSelection(playerid)
{
GameTextForPlayer(playerid,"~w~SA-MP: Hoodlumz DM And GW Server",5000,5);
SetPlayerInterior(playerid,14);
SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
SetPlayerFacingAngle(playerid, 270.0);
SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
PlayerPlaySound(playerid, 1185, 0.0, 0.0, 0.0);
}
//---------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
SetupPlayerForClassSelection(playerid);
switch (classid)
{
case 0:
{
GameTextForPlayer(playerid, "Team A", 1000, 3);
SetPlayerColor(playerid,COLOR_GREY);
gTeam[playerid] = TEAM_1;
}
case 1:
{
GameTextForPlayer(playerid, "Team B", 1000, 3);
SetPlayerColor(playerid,COLOR_GREY);
gTeam[playerid] = TEAM_2;
}
}
return 1;
}
//---------------------------------------------------------
public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid, 0);
PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0);
if(gTeam[playerid] == TEAM_1)
{
SetPlayerColor(playerid,COLOR_RED);
}
else if(gTeam[playerid] == TEAM_2)
{
SetPlayerColor(playerid,COLOR_DBLUE);
}
return 1;
}
//---------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
new playercash;
new string[255];
new killedplayer[MAX_PLAYER_NAME];
playercash = GetPlayerMoney(playerid);
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
}
else
{
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
if(bounty[playerid] > 0 && (playerGang[killerid] == 0 || playerGang[playerid] != playerGang[killerid]))
{
GetPlayerName(playerid, killedplayer, sizeof(killedplayer));
format(string, sizeof(string), "You earned a bounty of %d for killing %s.", bounty[playerid], killedplayer);
SendClientMessage(killerid, COLOR_GREEN, string);
GivePlayerMoney(killerid, bounty[playerid]);
bounty[playerid] = 0;
}
if(playercash > 0)
{
GivePlayerMoney(killerid, playercash);
}
}
if(playercash > 0)
{
ResetPlayerMoney(playerid);
}
return 1;
}
/* public OnPlayerDeath(playerid, killerid, reason)
{
new name[MAX_PLAYER_NAME];
new string[256];
new deathreason[20];
new playercash;
GetPlayerName(playerid, name, sizeof(name));
GetWeaponName(reason, deathreason, 20);
if (killerid == INVALID_PLAYER_ID)
{
switch (reason)
{
case WEAPON_DROWN:
{
format(string, sizeof(string), "*** %s drowned.)", name);
}
default:
{
if (strlen(deathreason) > 0)
{
format(string, sizeof(string), "*** %s died. (%s)", name, deathreason);
}
else
{
format(string, sizeof(string), "*** %s died.", name);
}
SendClientMessageToAll(COLOR_RED, string);
{
playercash = GetPlayerMoney(playerid);
if (playercash > 0)
{
GivePlayerMoney(killerid, playercash);
ResetPlayerMoney(playerid);
}
else
{
}
}
return 1;
}*/
//---------------------------------------------------------
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,COLOR_GREEN,"Welcome to the [H]oodlumz server made and scripted by Alex.T");
SendClientMessage(playerid,COLOR_GREEN,"Please type /help for all your information for this server!");
SendClientMessage(playerid,COLOR_GREEN,"Please read /rules to keep ban free!");
SendClientMessage(playerid,COLOR_GREEN,"Also read /tele for all your teleporting needs!");
new pName[MAX_PLAYER_NAME];
new string[48];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "%s has joined the server.", pName);
SendClientMessageToAll(0xAAAAAAAA, string);
GameTextForPlayer(playerid,"~w~SA-MP: Hoodlumz DM And GW Server",5000,5);
return 1;
}
//---------------------------------------------------------
public OnPlayerDisconnect(playerid, reason)
{
new pName[MAX_PLAYER_NAME];
new string[56];
GetPlayerName(playerid, pName, sizeof(pName));
switch(reason)
{
case 0: format(string, sizeof(string), "%s has left the server. (Timeout)", pName);
case 1: format(string, sizeof(string), "%s has left the server. (Leaving)", pName);
case 2: format(string, sizeof(string), "%s has left the server. (Kicked)", pName);
}
SendClientMessageToAll(0xAAAAAAAA, string);
return 1;
}
//---------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
new giveplayer[MAX_PLAYER_NAME];
new sendername[MAX_PLAYER_NAME];
new string[256];
new giveplayerid;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/gang", true) == 0)
{
new tmp[256];
new gangcmd, gangnum;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [create/join/invite/quit] [name/number]");
return 1;
}
giveplayerid = strval(tmp);
if(strcmp(tmp, "create", true)==0)
gangcmd = 1;
else if(strcmp(tmp, "invite", true)==0)
gangcmd = 2;
else if(strcmp(tmp, "join", true)==0)
gangcmd = 3;
else if(strcmp(tmp, "quit", true)==0)
gangcmd = 4;
tmp = strtok(cmdtext, idx);
if(gangcmd < 3 && !strlen(tmp))
{
if(gangcmd==0)
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [create/join/invite/quit] [name/number]");
else if(gangcmd==1)
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [create] [name]");
else if(gangcmd==2)
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [invite] [playerID]");
return 1;
}
if(gangcmd==1)
{
if(playerGang[playerid]>0)
{
SendClientMessage(playerid, COLOR_RED, "You are already in a gang!");
return 1;
}
for(new i = 1; i < MAX_GANGS; i++)
{
if(gangInfo[i][0]==0)
{
//name gang
format(gangNames[i], MAX_GANG_NAME, "%s", tmp);
//Gang exists
gangInfo[i][0]=1;
//There is one member
gangInfo[i][1]=1;
//Gang color is player's color
gangInfo[i][2]=COLOR_RED;
//Player is the first gang member
gangMembers[i][0] = playerid;
format(string, sizeof(string),"You have created the gang '%s' (id: %d)", gangNames[i], i);
SendClientMessage(playerid, COLOR_GREEN, string);
playerGang[playerid]=i;
return 1;
}
}
return 1;
}
else if (gangcmd==3)
{
gangnum = gangInvite[playerid];
if(playerGang[playerid]>0)
{
SendClientMessage(playerid, COLOR_RED, "You are already in a gang!");
return 1;
}
if(gangInvite[playerid]==0)
{
SendClientMessage(playerid, COLOR_RED, "You have not been invited to a gang.");
return 1;
}
if(gangInfo[gangnum][0]==0)
{
SendClientMessage(playerid, COLOR_RED, "That gang does not exist!");
return 1;
}
if(gangInfo[gangnum][1] < MAX_GANG_MEMBERS)
{
new i = gangInfo[gangnum][1];
gangInvite[playerid]=0;
gangMembers[gangnum][i] = playerid;
GetPlayerName(playerid, sendername, MAX_PLAYER_NAME);
for(new j = 0; j < gangInfo[gangnum][1]; j++)
{
format(string, sizeof(string),"%s has joined your gang.", sendername);
SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string);
}
gangInfo[gangnum][1]++;
playerGang[playerid] = gangnum;
SetPlayerColor(playerid,gangInfo[gangnum][2]);
format(string, sizeof(string),"You have joined the gang '%s' (id: %d)", gangNames[gangnum], gangnum);
SendClientMessage(playerid, COLOR_GREEN, string);
return 1;
}
SendClientMessage(playerid, COLOR_RED, "That gang is full.");
return 1;
}
else if (gangcmd==2)
{
giveplayerid = strval(tmp);
if(playerGang[playerid]==0)
{
SendClientMessage(playerid, COLOR_RED, "You are not in a gang!");
return 1;
}
// if(gangMembers[playerGang[playerid]][0]!=playerid)
// {
// SendClientMessage(playerid, COLOR_RED, "You need to be the gang leader to send an invite.");
// return 1;
// }
if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string),"You have sent a gang invite to %s.", giveplayer);
SendClientMessage(playerid, COLOR_GREEN, string);
format(string, sizeof(string),"You have recieved a gang invite from %s to '%s' (id: %d)", sendername, gangNames[playerGang[playerid]],playerGang[playerid]);
SendClientMessage(giveplayerid, COLOR_GREEN, string);
gangInvite[giveplayerid]=playerGang[playerid];
}
else
SendClientMessage(playerid, COLOR_RED, "No such player exists!");
}
else if (gangcmd==4)
{
PlayerLeaveGang(playerid);
}
return 1;
}
if(strcmp(cmd, "/ganginfo", true) == 0)
{
new tmp[256];
new gangnum;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp) && playerGang[playerid]==0)
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ganginfo [number]");
return 1;
}
else if (!strlen(tmp))
gangnum = playerGang[playerid];
else
gangnum = strval(tmp);
if(gangInfo[gangnum][0]==0)
{
SendClientMessage(playerid, COLOR_RED, "No such gang exists!");
return 1;
}
format(string, sizeof(string),"'%s' Gang Members (id: %d)", gangNames[gangnum], gangnum);
SendClientMessage(playerid, COLOR_GREEN, string);
for(new i = 0; i < gangInfo[gangnum][1]; i++)
{
GetPlayerName(gangMembers[gangnum][i], giveplayer, sizeof(giveplayer));
format(string, sizeof(string),"%s (%d)", giveplayer, gangMembers[gangnum][i]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
if(strcmp(cmd, "/gangs", true) == 0)
{
new x;
SendClientMessage(playerid, COLOR_GREEN, "Current Gangs:");
for(new i=0; i < MAX_GANGS; i++)
{
if(gangInfo[i][0]==1)
{
format(string, sizeof(string), "%s%s(%d) - %d members", string,gangNames[i],i,gangInfo[i][1]);
x++;
if(x > 2)
{
SendClientMessage(playerid, COLOR_YELLOW, string);
x = 0;
format(string, sizeof(string), "");
}
else
{
format(string, sizeof(string), "%s, ", string);
}
}
if(x <= 2 && x > 0)
{
string[strlen(string)-2] = '.';
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
return 0;
}
if(strcmp(cmd, "/hitman", true) == 0)
{
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /hitman [playerid] [amount]");
return 1;
}
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /hitman [playerid] [amount]");
return 1;
}
new moneys;
moneys = strval(tmp);
if(moneys > GetPlayerMoney(playerid))
{
SendClientMessage(playerid, COLOR_RED, "You don't have enough money!");
return 1;
}
if(moneys < 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Hey what are you trying to pull here.");
return 1;
}
if(IsPlayerConnected(giveplayerid)==0)
{
SendClientMessage(playerid, COLOR_RED, "No such player exists.");
return 1;
}
bounty[giveplayerid]+=moneys;
GivePlayerMoney(playerid, 0-moneys);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s has had a $%d bounty put on his head from %s (total: $%d).", giveplayer, moneys, sendername, bounty[giveplayerid]);
SendClientMessageToAll(COLOR_ORANGE, string);
format(string, sizeof(string), "You have had a $%d bounty put on you from %s (id: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_RED, string);
return 1;
}
if(strcmp(cmd, "/bounty", true) == 0)
{
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /bounty [playerid]");
return 1;
}
giveplayerid = strval(tmp);
if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Player %s (id: %d) has a $%d bounty on his head.", giveplayer,giveplayerid,bounty[giveplayerid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
else
{
SendClientMessage(playerid, COLOR_RED, "No such player exists!");
}
return 1;
}
if(strcmp(cmd, "/bounties", true) == 0)
{
// new tmp[256];
new x;
SendClientMessage(playerid, COLOR_GREEN, "Current Bounties:");
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && bounty[i] > 0)
{
GetPlayerName(i, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "%s%s(%d): $%d", string,giveplayer,i,bounty[i]);
x++;
if(x > 3)
{
SendClientMessage(playerid, COLOR_YELLOW, string);
x = 0;
format(string, sizeof(string), "");
}
else
{
format(string, sizeof(string), "%s, ", string);
}
}
}
if(x <= 3 && x > 0)
{
string[strlen(string)-2] = '.';
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
if(strcmp(cmdtext,"/fc1",true)==0)
{
SetPlayerPos(playerid,2149.0371,-1805.6539,16.1464);
SendClientMessage(playerid,0xFFFF00AA,"You Have Been Teleported To FC 1.");
return 1;
}
if(strcmp(cmdtext,"/fc2",true)==0)
{
SetPlayerPos(playerid,2104.8223,2182.3096,14.4965);
SendClientMessage(playerid,0xFFFF00AA,"You Have Been Teleported To FC 2.");
return 1;
}
if(strcmp(cmdtext,"/chome",true)==0)
{
SetPlayerPos(playerid,2442.3521,698.1706,11.2651);
SendClientMessage(playerid,0xFFFF00AA,"You Have Been Teleported To The Car Home!.");
return 1;
}
if(strcmp(cmdtext,"/mhome",true)==0)
{
SetPlayerPos(playerid,1417.8838,-1535.4391,101.7521);
SendClientMessage(playerid,0xFFFF00AA,"You Have Been Teleported To Mjaa's Home!.");
return 1;
}
if(strcmp(cmdtext,"/fhome",true)==0)
{
SetPlayerPos(playerid,1256.6593,-785.4722,92.0302);
SendClientMessage(playerid,0xFFFF00AA,"You Have Been Teleported To FarePak's Home!.");
return 1;
}
if(strcmp(cmdtext,"/phome",true)==0)
{
SetPlayerPos(playerid,1256.6593,-785.4722,92.0302);
SendClientMessage(playerid,0xFFFF00AA,"You Have Been Teleported To Pedaln's Home!.");
return 1;
}
if(strcmp(cmdtext,"/tpgw",true)==0)
{
SetPlayerPos(playerid,2374.0320,579.1430,7.7813);
SendClientMessage(playerid,0xFFFF00AA,"You Have Been Teleported To GW.");
return 1;
}
if(strcmp(cmdtext,"/hstunt",true)==0)
{
SetPlayerPos(playerid,2160.3364,-3228.2939,2.3324);
SendClientMessage(playerid,0xFFFF00AA,"You Have Been Teleported To Stunting Area.");
return 1;
}
if(strcmp(cmdtext,"/hdrift",true)==0)
{
SetPlayerPos(playerid,329.8065,1536.6130,76.6117);
SendClientMessage(playerid,0xFFFF00AA,"You Have Been Teleported To Drifting Area!.");
return 1;
}
if (strcmp(cmdtext, "/lock", true)==0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid,0xFFFF00AA,"You must be the driver to lock your vechicle!");
return 1;
}
new i;
for(i=0;i<MAX_PLAYERS;i++)
{
if(i != playerid)
{
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1);
}
}
SendClientMessage(playerid, 0xFFFF00AA, "Vehicle locked!");
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1056,pX,pY,pZ);
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "You're not in a vehicle!");
}
return 1;
}
if (strcmp(cmdtext, "/unlock", true)==0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid,0xFFFF00AA,"You must be the driver of the vechicle to unlock!");
return 1;
}
new i;
for(i=0;i<MAX_PLAYERS;i++)
{
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 0);
}
SendClientMessage(playerid, 0xFFFF00AA, "Vehicle unlocked!");
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "You're not in a vehicle!");
}
return 1;
}
if (strcmp(cmdtext, "/uzi", true)==0)
{
GivePlayerWeapon(playerid,28,100000);
SendClientMessage(playerid,0xFFFF00AA,"Uzi Selected");
return 1;
}
if (strcmp(cmdtext, "/tec9", true)==0)
{
GivePlayerWeapon(playerid,32,100000);
SendClientMessage(playerid,0xFFFF00AA,"Tec9 Selected");
return 1;
}
if(strcmp(cmdtext, "/kill", true) == 0) return SetPlayerHealth(playerid, 0.0);
if(!strcmp(cmd, "/skin", true))
{
new tmp[256], str[256], skin;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /skin [id]");
skin = strval(tmp);
SetPlayerSkin(playerid, skin);
format(str, 256, "Your skin is set to %d", skin);
SendClientMessage(playerid, COLOR_GREEN, str);
return true;
}
if(!strcmp(cmd, "/v", true) && if(IsPlayerAdmin(playerid))
{
new tmp[256], str[256], Float:x, Float:y, Float:z, id;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /v [id]");
id = strval(tmp);
GetPlayerPos(playerid, x, y, z);
CreateVehicle(id, x+2, y, z, 0, -1, -1, -1);
format(str, 256, "Got vehicle: %d", id);
SendClientMessage(playerid, COLOR_GREEN, str);
return true;
}
if(!strcmp(cmd, "/godmodeon", true))
{
GodTimer = SetTimerEx("InfiniteLife", 50, true, "i", playerid);
SendClientMessage(playerid, COLOR_GREEN, "Godmode ON!");
return true;
}
if(!strcmp(cmd, "/godmodeoff", true))
{
KillTimer(GodTimer);
SendClientMessage(playerid, COLOR_GREEN, "Godmode OFF!");
return true;
}
if(strcmp(cmdtext, "/help", true) == 0)
{
SendClientMessage(playerid,0xFFFF00AA,"Welcome to the [H]oodlumz server made and scripted by Alex.T");
SendClientMessage(playerid,0xFFFF00AA,"Type: /help1 For information about the server");
SendClientMessage(playerid,0xFFFF00AA,"Type: /help1 For information about the server");
return 1;
}
if(strcmp(cmdtext, "/help1", true) == 0)
{
SendClientMessage(playerid,0xFFFF00AA,"Welcome to the [H]oodlumz server made and scripted by Alex.T");
SendClientMessage(playerid,0xFFFF00AA,"This is a Hoodlumz training and Gangwar server");
SendClientMessage(playerid,0xFFFF00AA,"If interested in joining please go to www.smfforfree4.hoodlumz.com");
SendClientMessage(playerid,0xFFFF00AA,"Thanks for reading! Have fun!");
return 1;
}
if(strcmp(cmdtext, "/help2", true) == 0)
{
SendClientMessage(playerid,0xFFFF00AA,"Welcome to the [H]oodlumz server made and scripted by Alex.T");
SendClientMessage(playerid,0xFFFF00AA,"The commands you can use are as follows");
SendClientMessage(playerid,0xFFFF00AA,"/register /login /getid /report");
SendClientMessage(playerid,0xFFFF00AA,"For all mods and admins please use /adminhelp");
return 1;
}
if(strcmp(cmdtext, "/teles", true) == 0)
{
SendClientMessage(playerid,0xFFFF00AA,"Welcome to the [H]oodlumz server made and scripted by Alex.T");
SendClientMessage(playerid,0xFFFF00AA,"The teleport commands you can use are as follows");
SendClientMessage(playerid,0xFFFF00AA,"/hstunt /hdrift /tpgw /fc1 /fc2");
return 1;
}
if(strcmp(cmdtext, "/rules", true) == 0)
{
SendClientMessage(playerid,0xFFFF00AA,"Welcome to the [H]oodlumz server made and scripted by Alex.T");
SendClientMessage(playerid,0xFFFF00AA,"Do not: Shoot at people dueling, Bug abuse, Inturupt Gangwars,");
SendClientMessage(playerid,0xFFFF00AA,"Use any sort of hack or trainer and set the /count on 10+");
return 1;
}
if(!strcmp(cmd, "/nos", true))
{
if(IsPlayerInInvalidNosVehicle(playerid, GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, COLOR_RED, "This car can't have NOS!");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "You need to be inside a vehicle to do this!");
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
return true;
}
if(!strcmp(cmd, "/skydive", true))
{
new tmp[256], height, Float:x, Float:y, Float:z;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /skydive [heigth]");
height = strval(tmp);
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid, x, y, z+height);
GivePlayerWeapon(playerid, 46, 10000);
GameTextForPlayer(playerid,"Diiiive.",2000,5);
return true;
}
return 0;
}
//---------------------------------------------------------
public InfiniteLife(playerid)
{
SetPlayerHealth(playerid, 250);
}
//---------------------------------------------------------
public BotMSGToAll(playerid)
{
if(Serverbot < 33)
{
Serverbot++;
}
else
{
Serverbot = 0;
}
printf(" ");
SendClientMessageToAll(COLOR_ORANGE,BotMessages[Serverbot]);
printf("Bot sent message: %s",BotMessages[Serverbot]);
printf(" ");
}
//---------------------------------------------------------
public AutoMsg()
{
SendClientMessageToAll(0xFF1493AA, "Www.hoodlumz.smfforfree4.com for all your [H] info!");
return 1;
}
//---------------------------------------------------------
public OnPlayerText(playerid, text[])
{
if(text[0] == '!')
{
if(playerGang[playerid] > 0)
{
new gangChat[256];
new string[256];
// for(new i = 1; i < strlen(text)+1; i++)
// gangChat[i]=text[i];
strmid(gangChat,text,1,strlen(text));
format(string, sizeof(string),"%s: %s", gangChat);
for(new i = 0; i < gangInfo[playerGang[playerid]][1]; i++)
{
SendClientMessage(gangMembers[playerGang[playerid]][i], COLOR_LIGHTBLUE, string);
}
}
return 0;
}
return 1;
}
stock IsPlayerInInvalidNosVehicle(playerid,vehicleid)
{
#define MAX_INVALID_NOS_VEHICLES 29
new InvalidNosVehicles[MAX_INVALID_NOS_VEHICLES] =
{
581,523,462,521,463,522,461,448,468,586,
509,481,510,472,473,493,595,484,430,453,
452,446,454,590,569,537,538,570,449
};
vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid,vehicleid))
{
for(new i = 0; i < MAX_INVALID_NOS_VEHICLES; i++)
{
if(GetVehicleModel(vehicleid) == InvalidNosVehicles[i])
{
return true;
}
}
}
return false;
}
//---------------------------------------------------------