rendered paste body#include <a_samp>
#include <core>
#include <float>
#include <file>
#include <dudb>
#include <dini>
#define DIR_PLAYERS "/freeroam/players"
#define FILE_SETTINGS "/freeroam/config/settings.ini"
#define FILE_TOTALSTAT "/freeroam/stats/stats.log"
#define FILE_PROPERTY "/freeroam/save/property.ini"
#define COLOR_RED 0xFF0000FF //licht rood
#define COLOR_WHITE 0xFFFFFFAA //spier wit
#define COLOR_YELLOW 0xFFFF00FF //licht geel
#define COLOR_GREEN 0x008000FF //donker groen
#define COLOR_GREY 0xAFAFAFAA //grijs
#define TMOUT 60
#define CP_BANK 0
#define CP_PIRATE 1
#define CP_AMMU 2
#define CP_DRAGON 3
#define CP_SEXSHOP 4
#define CP_BAR 5
#define CP_CALIGULA 6
#define CP_ZIP 7
#define CP_BINCO 8
#define CP_TATOO 9
#define CP_BOTIQUE 10
#define CP_JIZZY 11
#define CP_PIZZA 12
#define CP_VICTIM 13
#define CP_STRIPCLUB 14
#define CP_WANGCARS 15
#define CP_EMERALD 16
#define CP_VISAGE 17
#define CP_SUBURBAN 18
#define CP_PROLAPS 19
#define CP_BURGER 20
#define CP_CLUCKIN 21
#define CP_CLUB 22
#define CP_DS 23
#define CP_ZOMBO 24
#define P_DRAGON 0
#define P_SEXSHOP 1
#define P_BAR 2
#define P_CALIGULA 3
#define P_ZIP 4
#define P_BINCO 5
#define P_TATOO 6
#define P_BOTIQUE 7
#define P_JIZZY 8
#define P_PIZZA 9
#define P_VICTIM 10
#define P_STRIPCLUB 11
#define P_WANGCARS 12
#define P_EMERALD 13
#define P_VISAGE 14
#define P_SUBURBAN 15
#define P_PROLAPS 16
#define P_BURGER 17
#define P_CLUCKIN 18
#define P_CLUB 19
#define P_DS 20
#define P_ZOMBO 21
#define P_OFFSET 3
#define MAX_POINTS 25
new Float:checkCoords[MAX_POINTS][4] = {
{-36.5483,-57.9948, -17.2655,-49.2967}, //BANK
{1894.6128,1445.3431, 2084.9739,1637.8186}, //PIRATE
{284.0546,-86.4384, 302.9315,-56.6674}, //AMMUNATION
{1925.1511,968.2358, 2019.0715,1067.4276}, //DRAGON
{-115.9544,-24.2706, -99.1631,-7.1391}, //SEXSHOP
{487.6558,-88.5900, 512.0635, -67.7503}, //BAR
{2216.7971,1638.0493, 2255.2097,1714.0806}, //CALIGULA
{144.9131,-96.0927, 177.4128,-70.7923}, //ZIP
{201.4462,-112.4556, 218.5237,-95.1238}, //BINCO
{-204.7623,-44.0326, -200.2330,-39.8128}, //TATOO
{416.7485,-84.4242, 422.6890,-74.0611}, //BOTIQUE
{-2676.0637,1398.3545,-2642.4065,1421.6180},//JIZZY
{369.0025,-131.6332,378.1711,-116.3600}, //PIZZA
{201.9053,-11.7524,225.9064,-4.1778}, //VICTIM
{1201.1422,-16.6343,1223.4420,12.6656}, //STRIPCLUB
{-1996.0801,253.4684,-1942.0564,310.0717}, //WANG CARS
{2099.1985,2328.5200,2179.1382,2405.8721}, //EMERALD ISLE
{1998.3783,1875.9679,2066.3425,1957.0034}, //THE VISAGE
{199.4294,-46.8185,209.5469,-34.0015}, //SUBURBAN
{198.8601,-137.9890,214.9677,-128.5504}, //PRO LAPS
{363.5299,-73.9080,381.7558,-57.7846}, //BURGER SHOT
{364.8330,-10.3823,380.1563,-6.4998}, //CLUCKIN' BELL
{478.4092,-22.1267,498.3633,-7.5962}, //CLUB
{198.9507,-166.7670,210.7806,-156.2189}, //DIDIER SACHS
{-1986.7450,640.8196,-1918.7468,712.6972} //ZOMBOTECH
};
new Float:checkpoints[MAX_POINTS][3] = {
{-22.2549,-55.6575,1003.5469},
{2000.3132,1538.6012,13.5859},
{291.0004,-84.5168,1001.5156},
{1989.0619,1005.5241,994.4688},
{-103.5525,-22.4661,1000.7188},
{501.4927,-75.4323,998.7578},
{2235.5408,1679.0402,1008.3594},
{161.1875,-79.9915,1001.8047},
{207.5640,-97.8188,1005.2578},
{-203.4864,-41.2045,1002.2734},
{418.5547,-80.1667,1001.8047},
{-2649.101,1409.747,906.2734},
{376.0949,-125.8507,1001.5},
{218.443,-8.778273,1001.211},
{1212.3918,-10.9459,1000.9219},
{-1957.5327,300.2131,35.4688},
{2127.5940,2370.4255,10.8203},
{2022.5179,1916.6848,12.3397},
{203.6803,-40.7557,1001.8047},
{206.9941,-133.5536,1002.8672},
{367.5272,-67.4198,1001.5078},
{371.3292,-8.9039,1001.8516},
{487.3790,-14.7161,1000.6797},
{204.3967,-161.7745,1000.5234},
{-1950.9393,674.2313,46.5625}
};
new checkpointType[MAX_POINTS] = {
CP_BANK,
CP_PIRATE,
CP_AMMU,
CP_DRAGON,
CP_SEXSHOP,
CP_BAR,
CP_CALIGULA,
CP_ZIP,
CP_BINCO,
CP_TATOO,
CP_BOTIQUE,
CP_JIZZY,
CP_PIZZA,
CP_VICTIM,
CP_STRIPCLUB,
CP_WANGCARS,
CP_EMERALD,
CP_VISAGE,
CP_SUBURBAN,
CP_PROLAPS,
CP_BURGER,
CP_CLUCKIN,
CP_CLUB,
CP_DS,
CP_ZOMBO
};
#define MAX_PROPERTIES 22
new propertyNames[MAX_PROPERTIES][32] = {
"Four Dragons Casino",
"Sex Shop",
"Bar",
"Caligula Casino",
"Zip Shop",
"Binco Shop",
"Tatoo Parlor",
"Botique",
"Jizzy's Club",
"The Well Stacked Pizza",
"Victim Shop",
"Strip Club",
"Wang Cars",
"Emerald Isle",
"The Visage",
"Sub Urban",
"Pro Laps",
"Burger Shot",
"Cluckin' Bell",
"Club",
"Didier Sachs",
"Zombotech Corp."
};
new propertyValues[MAX_PROPERTIES] = {
150000,
50000,
40000,
200000,
30000,
30000,
20000,
40000,
150000,
30000,
30000,
60000,
40000,
120000,
200000,
30000,
30000,
40000,
20000,
100000,
250000,
80000
};
new propertyEarnings[MAX_PROPERTIES] = {
7500,
2500,
2000,
10000,
1500,
1500,
1000,
2000,
7500,
1500,
1500,
3000,
2000,
6000,
10000,
1500,
1500,
2000,
1000,
5000,
12500,
4000
};
new propertyOwner[MAX_PROPERTIES] = {999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999};
new logged[MAX_PLAYERS];
new timeout[MAX_PLAYERS];
new spawned[MAX_PLAYERS];
new jailed[MAX_PLAYERS];
new jailtime[MAX_PLAYERS];
new mute[MAX_PLAYERS];
new playerCheckpoint[MAX_PLAYERS];
new admingate1,admingate2;
new Float:gRandomPlayerSpawns[8][3] = {
{2004.2555,1521.8010,17.0682}, // spawnpunt schip 1
{1997.4397,1521.4657,17.0625}, // spawnpunt schip 2
{1996.6748,1533.9108,14.6172}, // spawnpunt schip 3
{2003.9340,1533.6292,14.6223}, // spawnpunt schip 4
{2003.8167,1555.2704,14.4799}, // spawnpunt schip 5
{1997.7933,1555.3453,14.4828}, // spawnpunt schip 6
{2000.6272,1566.4745,15.3672}, // spawnpunt schip 7
{1998.1041,1544.3392,14.4938} // spawnpunt schip 8
};
new Float:gJailSpawns[4][3] = {
{-27.2086,2320.9827,24.3034}, // spawnpunt jail 1
{-18.2877,2321.3909,24.3034}, // spawnpunt jail 2
{-9.9036,2328.9912, 24.3034}, // spawnpunt jail 3
{-9.8919,2336.6885, 24.3034} // spawnpunt jail 4
};
new Float:gNotLoggedSpawn[4][3] = {
{2316.2031,-1138.5328,1054.3047},// spawnpunt villa 1
{2332.4248,-1139.6155,1054.3047},// spawnpunt villa 2
{2315.8704,-1147.9385,1050.7031},// spawnpunt villa 3
{2334.1233,-1136.3329,1050.7031} // spawnpunt villa 4
};
main()
{
print("+----------------------------------+");
print("|Freeroam sanandreas |");
print("+----------------------------------+");
}
public OnGameModeInit()
{
SetGameModeText("Freeroam sanandreas");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
AddStaticVehicle(451,202.6830,1871.4354,12.8472,178.6198,36,36); // turismo
AddStaticVehicle(451,205.2651,1871.4668,12.8504,178.6778,16,16); // trismo
AddStaticVehicle(470,204.1277,1859.1207,13.1320,269.4572,43,0); // patriot
AddStaticVehicle(470,204.2478,1862.0872,13.1350,268.9823,43,0); // patriot
AddStaticVehicle(494,208.2126,1871.3666,13.0695,178.5258,36,13); // hotring
AddStaticVehicle(506,212.1625,1853.9520,12.5870,4.1752,6,6); // supergt
AddStaticVehicle(522,223.9312,1869.7368,12.7013,355.0856,3,8); // nrg-500
AddStaticVehicle(522,222.7358,1869.7441,12.6972,356.1466,6,25); // nrg-500
AddStaticVehicle(523,221.3371,1869.8647,12.7092,0.3490,0,0); // hpv-1000
AddStaticVehicle(411,214.6078,1853.8364,12.5743,2.8442,123,1); // infernus
AddStaticVehicle(530,225.4682,1854.5200,12.6476,358.3176,111,1); // forklift
AddStaticVehicle(424,217.6264,1854.1738,12.6553,3.3824,24,53); // BF injection
AddStaticVehicle(535,220.2838,1853.8114,12.5982,2.0281,28,1); // slamvan
AddStaticVehicle(434,223.1932,1854.4432,12.8497,1.8361,2,2); // hotknife
admingate1 = CreateObject(971, 213.913376, 1875.433350, 12.566868, 0, 0, 180);
admingate2 = CreateObject(971, 96.611115, 1923.231445, 20.471872, 0, 0, 270);
SetTimer("timeoutcount",1000,1);
SetTimer("autounjail",1000,1);
SetTimer("checkpointUpdate", 1100, 1);
SetTimer("PirateShipScoreUpdate", 2001, 1);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid,2852.5979,1290.3447,11.3906);
SetPlayerCameraPos(playerid,2844.1477,1290.6550,11.3906);
SetPlayerCameraLookAt(playerid,2852.5979,1290.3447,11.3906);
SetPlayerFacingAngle(playerid,90);
return 1;
}
public OnPlayerSpawn(playerid)
{
new playername[MAX_PLAYER_NAME];
new tmp[256],tmp2[256],tmp3[256];
GetPlayerName(playerid, playername, sizeof(playername));
format(tmp3, sizeof(tmp3), "%s/%s.user", DIR_PLAYERS,playername);
tmp2 = dini_Get((tmp3), "jailed");
jailed[playerid] = strval(tmp2);
if(logged[playerid] == 0){
SetPlayerInterior(playerid,12);
new rand = random(sizeof(gNotLoggedSpawn));
SetPlayerPos(playerid, gNotLoggedSpawn[rand][0], gNotLoggedSpawn[rand][1], gNotLoggedSpawn[rand][2]);
timeout[playerid] = TMOUT;
spawned[playerid] = 1;
}
if(logged[playerid] == 1){
SetPlayerInterior(playerid,0);
new rand = random(sizeof(gRandomPlayerSpawns));
SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]);
spawned[playerid] = 1;
if(jailed[playerid] == 1){
new rand = random(sizeof(gJailSpawns));
SetPlayerPos(playerid, gJailSpawns[rand][0], gJailSpawns[rand][1], gJailSpawns[rand][2]);
}
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
spawned[playerid] = 0;
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
if(mute[playerid] == 1){
SendClientMessage(playerid,COLOR_RED,"* You are muted and can not send massages.");
print("^^^^MUTE MSG^^^^");
return 0;
}
return 1;
}
public OnPlayerPrivmsg(playerid, recieverid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new string[256];
new playermoney;
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new meplayer[MAX_PLAYER_NAME];
new cmd[256];
new iddx;
new giveplayerid, moneys, idx, weaponid, adminrank, health, time ;
new tmp[256], tmp2[256], tmp3[256], tmp4[256], tmp5[256];
new playername[MAX_PLAYER_NAME];
new hh,mm,ss,YY,MM,DD;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/help", true) == 0) {
SendClientMessage(playerid, COLOR_YELLOW, "Welcome to freeroam Sanandreas.");
SendClientMessage(playerid, COLOR_YELLOW, "V.3.2.0");
SendClientMessage(playerid, COLOR_YELLOW, "Type: /cmd for all server commands.");
SendClientMessage(playerid, COLOR_YELLOW, "Type: /admincmd for all server admincommands.");
SendClientMessage(playerid, COLOR_YELLOW, "Please use /report to send a report massage.");
return 1;
}
if(strcmp(cmd, "/cmd", true) == 0) {
SendClientMessage(playerid, COLOR_YELLOW, "ACCOUNT: /register /login /setpass");
return 1;
}
if(strcmp(cmd, "/admincmd", true) == 0) {
SendClientMessage(playerid, COLOR_YELLOW, "PLAYER: /mute /unmute /jail /unjail /kick /ban");
SendClientMessage(playerid, COLOR_YELLOW, "HEALTH: /murder /heal /sethealth");
SendClientMessage(playerid, COLOR_YELLOW, "CAR: /carkick");
SendClientMessage(playerid, COLOR_YELLOW, "GATE AREA 59: /open1 /close1 /open2 /close2");
return 1;
}
if(strcmp(cmd, "/register", true) == 0) {
tmp = dini_Get(FILE_SETTINGS, "register");
if (strval(tmp) == 0) {
SendClientMessage(playerid, COLOR_RED, "* Register are not allowed on this server!");
return 1;
}
tmp = dini_Get(FILE_SETTINGS, "maxusers");
tmp2 = dini_Get(FILE_TOTALSTAT, "users");
if (strval(tmp2) >= strval(tmp)) {
SendClientMessage(playerid, COLOR_RED, "* User limit reached! You cannot register.");
return 1;
}
tmp = strtok(cmdtext, idx);
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerIp(playerid,tmp4,sizeof(tmp4));
gettime(hh,mm,ss);
getdate(YY,MM,DD);
if(20 < strlen(tmp) || strlen(tmp) < 5) {
SendClientMessage(playerid, COLOR_YELLOW, "* Password length must be 5-20 symbols.");
return 1;
}
if(!strlen(tmp))
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /register [password]");
else {
format(tmp3, sizeof(tmp3), "%s/%s.user", DIR_PLAYERS,playername);
format(tmp5, sizeof(tmp5), "%d-%d-%d %d:%d:%d",YY,MM,DD,hh,mm,ss);
if (!dini_Exists((tmp3))) {
dini_Create((tmp3));
dini_Set((tmp3), "password", tmp);
dini_Set((tmp3), "registerIP", tmp4);
dini_Set((tmp3), "registerat", tmp5);
dini_Set((tmp3), "money", "0");
dini_Set((tmp3), "bank", "0");
dini_Set((tmp3), "bounty", "0");
if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);
tmp2 = dini_Get(FILE_TOTALSTAT, "users");
dini_IntSet(FILE_TOTALSTAT, "users", strval(tmp2)+1);
format(string, sizeof(string), "--- %s (id: %d) created account. Password: %s.", playername, playerid, tmp);
printf(string);
format(string, sizeof(string), "* Account named %s created! You can login with password %s.", playername, tmp);
SendClientMessage(playerid, COLOR_GREEN, string);
}
else {
format(string, sizeof(string), "* %s already registered.", playername,tmp);
SendClientMessage(playerid, COLOR_RED, string);
}
}
return 1;
}
if(strcmp(cmd, "/login", true) == 0) {
tmp = dini_Get(FILE_SETTINGS, "register");
if (strval(tmp) == 0) {
SendClientMessage(playerid, COLOR_RED, "* Register are not allowed on this server!");
return 1;
}
tmp = strtok(cmdtext, idx);
GetPlayerName(playerid, playername, sizeof(playername));
format(tmp3, sizeof(tmp3), "%s/%s.user", DIR_PLAYERS,playername);
if(!strlen(tmp))
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /login [password]");
else {
if (dini_Exists((tmp3))) {
if (logged[playerid] == 1) {
format(string, sizeof(string), "%s already logged.", playername);
printf(string);
SendClientMessage(playerid, COLOR_YELLOW, "* You already logged.");
}
else {
tmp2 = dini_Get((tmp3), "password");
if(strcmp(tmp, tmp2, true)!=0){
format(string, sizeof(string), "--- %s (id: %d) typed wrong password: %s.", playername, playerid, tmp);
printf(string);
SendClientMessage(playerid, COLOR_RED, "* Wrong password.");
}
else {
logged[playerid] = 1;
SpawnPlayer(playerid);
format(string, sizeof(string), "--- %s (id: %d) logged in. Password: %s.", playername, playerid, tmp);
printf(string);
SendClientMessage(playerid, COLOR_GREEN, "* You are logged in!");
}
}
}
else {
format(string, sizeof(string), "* %s no such account.", playername);
SendClientMessage(playerid, COLOR_RED, string);
}
}
return 1;
}
if(strcmp(cmd, "/setpass", true) == 0) {
tmp = dini_Get(FILE_SETTINGS, "register");
if (strval(tmp) == 0) {
SendClientMessage(playerid, COLOR_RED, "* Register are not allowed on this server!");
return 1;
}
tmp = strtok(cmdtext, idx);
GetPlayerName(playerid, playername, sizeof(playername));
format(tmp3, sizeof(tmp3), "%s/%s.user", DIR_PLAYERS,playername);
if(20 < strlen(tmp) || strlen(tmp) < 5) {
SendClientMessage(playerid, COLOR_YELLOW, "* Password length must be 5-20 symbols.");
return 1;
}
if(!strlen(tmp))
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /setpass [password]");
else {
if (dini_Exists((tmp3))) {
if (logged[playerid] == 1) {
dini_Set((tmp3), "password", tmp);
format(string, sizeof(string), "--- %s (id: %d) changed his pass to %s.", playername, playerid, tmp);
printf(string);
format(string, sizeof(string), "* Password changed to %s, remember it.", tmp);
SendClientMessage(playerid, COLOR_GREEN, string);
}
else SendClientMessage(playerid, COLOR_RED, "* You must be logged in to change your password.");
}
else {
format(string, sizeof(string), "* %s no such account.", playername);
SendClientMessage(playerid, COLOR_RED, string);
}
}
return 1;
}
if(strcmp(cmd, "/buy", true) == 0) {
new property=999;
tmp = dini_Get(FILE_SETTINGS, "properties");
if (strval(tmp) == 0) {
SendClientMessage(playerid, COLOR_RED, "* Properties are not allowed on this server!");
return 1;
}
if(IsPlayerInCheckpoint(playerid)) {
switch (playerCheckpoint[playerid]) {
case CP_DRAGON:{
property = P_DRAGON;
}
case CP_SEXSHOP:{
property = P_SEXSHOP;
}
case CP_BAR:{
property = P_BAR;
}
case CP_CALIGULA:{
property = P_CALIGULA;
}
case CP_ZIP:{
property = P_ZIP;
}
case CP_BINCO:{
property = P_BINCO;
}
case CP_TATOO:{
property = P_TATOO;
}
case CP_BOTIQUE:{
property = P_BOTIQUE;
}
case CP_JIZZY:{
property = P_JIZZY;
}
case CP_PIZZA:{
property = P_PIZZA;
}
case CP_VICTIM:{
property = P_VICTIM;
}
case CP_STRIPCLUB:{
property = P_STRIPCLUB;
}
case CP_WANGCARS:{
property = P_WANGCARS;
}
case CP_EMERALD:{
property = P_EMERALD;
}
case CP_VISAGE:{
property = P_VISAGE;
}
case CP_SUBURBAN:{
property = P_SUBURBAN;
}
case CP_PROLAPS:{
property = P_PROLAPS;
}
case CP_BURGER:{
property = P_BURGER;
}
case CP_CLUCKIN:{
property = P_CLUCKIN;
}
case CP_CLUB:{
property = P_CLUB;
}
case CP_DS:{
property = P_DS;
}
case CP_ZOMBO:{
property = P_ZOMBO;
}
}
if (property == 999) {
SendClientMessage(playerid, COLOR_YELLOW, "* You need to be in a property checkpoint to /buy it.");
return 1;
}
if (GetPlayerMoney(playerid) < propertyValues[property]) {
SendClientMessage(playerid, COLOR_RED, "* You don't have enough money!");
return 1;
}
if (propertyOwner[property] == playerid) {
SendClientMessage(playerid, COLOR_RED, "* You already own this property.");
return 1;
}
print("1");
GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
print("2");
if (propertyOwner[property] < 999) {
print("3");
StatGivePlayerMoney(propertyOwner[property], propertyValues[property]);
format (string, sizeof(string), "* Your property, the %s, has been bought out by %s (id: %d).",propertyNames[property],giveplayer,playerid);
SendClientMessage(propertyOwner[property], COLOR_RED, string);
}
print("4");
StatGivePlayerMoney(playerid, -propertyValues[property]);
print("5");
propertyOwner[property] = playerid;
dini_Set((FILE_PROPERTY), propertyOwner[property], playername);
format(string, sizeof(string), "--- %s (id: %d) bought %s for $%d.", giveplayer,playerid,propertyNames[property],propertyValues[property]);
printf(string);
format(string, sizeof(string), "%s (id: %d) bought %s for $%d.", giveplayer,playerid,propertyNames[property],propertyValues[property]);
SendClientMessageToAll(COLOR_GREEN,string);
format(string, sizeof(string), "* You have purchased the %s!", propertyNames[property]);
SendClientMessage(playerid, COLOR_GREEN, string);
}
else {
SendClientMessage(playerid, COLOR_YELLOW, "* You need to be in a property checkpoint to /buy it.");
return 1;
}
return 1;
}
//ADMIN CMD
if(strcmp(cmd, "/open1", true) == 0 && IsPlayerAdmin(playerid) == 1) {
SendClientMessage(playerid, COLOR_WHITE, "* GATE 1 is now open.");
MoveObject(admingate1,213.913376, 1875.433350, 4.566868,1);
return 1;
}
if(strcmp(cmd, "/close1", true) == 0 && IsPlayerAdmin(playerid) == 1) {
SendClientMessage(playerid, COLOR_WHITE, "* GATE 1 is now closed.");
MoveObject(admingate1,213.913376, 1875.433350, 12.566868,1);
GivePlayerMoney(playerid,100000);
return 1;
}
if(strcmp(cmd, "/open2", true) == 0 && IsPlayerAdmin(playerid) == 1) {
SendClientMessage(playerid, COLOR_WHITE, "* GATE 2 is now open.");
MoveObject(admingate2,96.611115, 1923.231445, 5.471872,1);
return 1;
}
if(strcmp(cmd, "/close2", true) == 0 && IsPlayerAdmin(playerid) == 1) {
SendClientMessage(playerid, COLOR_WHITE, "* GATE 2 is now closed.");
MoveObject(admingate2,96.611115, 1923.231445, 20.471872,1);
return 1;
}
if(strcmp(cmd, "/mute", true) == 0 && IsPlayerAdmin(playerid) == 1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /mute [playerid] [reason]");
return 1;
}
giveplayerid = strval(tmp);
strmid(tmp, cmdtext, 6+strlen(tmp), strlen(cmdtext));
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /mute [playerid] [reason]");
return 1;
}
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
mute[giveplayerid] = 1;
format(string, sizeof(string), "--- %s muted %s, Reason: %s.",playerid, giveplayerid,tmp);
print(string);
format(string, sizeof(string), "*** %s muted, Reason: %s.", giveplayer,tmp);
SendClientMessageToAll(COLOR_GREY,string);
format(tmp3, sizeof(tmp3), "%s/%s.user", DIR_PLAYERS,giveplayer);
dini_Set((tmp3), "mute", "1");
}
else {
format(string, sizeof(string), "* %d is not an active player.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
if(strcmp(cmd, "/unmute", true) == 0 && IsPlayerAdmin(playerid) == 1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /unmute [playerid] [reason]");
return 1;
}
giveplayerid = strval(tmp);
strmid(tmp, cmdtext, 8+strlen(tmp), strlen(cmdtext));
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /unmute [playerid] [reason]");
return 1;
}
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
mute[giveplayerid] = 0;
format(string, sizeof(string), "--- %s unmuted %s, Reason: %s.",playerid, giveplayerid,tmp);
print(string);
format(string, sizeof(string), "*** %s unmuted, Reason: %s.", giveplayer,tmp);
SendClientMessageToAll(COLOR_GREY,string);
format(tmp3, sizeof(tmp3), "%s/%s.user", DIR_PLAYERS,giveplayer);
dini_Set((tmp3), "mute", "0");
}
else {
format(string, sizeof(string), "* %d is not an active player.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
if(strcmp(cmd, "/murder", true) == 0 && IsPlayerAdmin(playerid) == 1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /murder [playerid]");
return 1;
}
giveplayerid = strval(tmp);
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerHealth(giveplayerid,0.0);
format(string, sizeof(string), "--- %s murderd %s", sendername,giveplayer);
printf(string);
format(string, sizeof(string), "%s succesfull killed.", giveplayer,giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
else {
format(string, sizeof(string), "* %d is not an Active player.", giveplayerid);
SendClientMessage(playerid, COLOR_RED, string);
}
return 1;
}
if(strcmp(cmd, "/heal", true) == 0 && IsPlayerAdmin(playerid) == 1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /heal [playerid]");
return 1;
}
giveplayerid = strval(tmp);
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerHealth(giveplayerid,100.0);
format(string, sizeof(string), "--- %s healed %s", sendername,giveplayer);
printf(string);
format(string, sizeof(string), "%s succesfull healed.", giveplayer);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
else {
format(string, sizeof(string), "* %d is not an Active player.", giveplayerid);
SendClientMessage(playerid, COLOR_RED, string);
}
return 1;
}
if(strcmp(cmd, "/sethealth", true) == 0 && IsPlayerAdmin(playerid) == 1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /sethealth [playerid] [Float:health]");
return 1;
}
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /sethealth [playerid] [Float:health]");
return 1;
}
health = strval(tmp);
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
SetPlayerHealth(giveplayerid,health);
format(string, sizeof(string), "--- %s set health %s to %d", sendername,giveplayer,health);
printf(string);
format(string, sizeof(string), "%s succesfull healed to %d.", giveplayer,health);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
else {
format(string, sizeof(string), "* %d is not an Active player.", giveplayerid);
SendClientMessage(playerid, COLOR_RED, string);
}
return 1;
}
if(strcmp(cmd, "/jail", true) == 0 && IsPlayerAdmin(playerid) == 1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /jail [playerid] [time] [reason]");
return 1;
}
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /jail [playerid] [time] [reason]");
return 1;
}
time = strval(tmp);
strmid(tmp, cmdtext, 6+strlen(tmp), strlen(cmdtext));
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /jail [playerid] [time] [reason]");
return 1;
}
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
jailed[giveplayerid] = 1;
jailtime[giveplayerid] = time;
format(tmp3, sizeof(tmp3), "%s/%s.user", DIR_PLAYERS,giveplayer);
dini_Set((tmp3), "jailed", "1");
dini_IntSet((tmp3), "jailtime", time);
format(string, sizeof(string), "--- %s jailed %s for %d minutes, Reason: %s.",sendername, giveplayer,time,tmp);
print(string);
format(string, sizeof(string), "*** %s jailed for %d minutes, Reason: %s.", giveplayer,time,tmp);
SendClientMessageToAll(COLOR_GREY,string);
new rand = random(sizeof(gJailSpawns));
SetPlayerPos(giveplayerid, gJailSpawns[rand][0], gJailSpawns[rand][1], gJailSpawns[rand][2]);
}
else {
format(string, sizeof(string), "* %d is not an active player.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
if(strcmp(cmd, "/unjail", true) == 0 && IsPlayerAdmin(playerid) == 1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /unjail [playerid] [reason]");
return 1;
}
giveplayerid = strval(tmp);
strmid(tmp, cmdtext, 8+strlen(tmp), strlen(cmdtext));
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /unjail [playerid] [reason]");
return 1;
}
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
jailed[giveplayerid] = 0;
jailtime[giveplayerid] = -1;
format(tmp3, sizeof(tmp3), "%s/%s.user", DIR_PLAYERS,giveplayer);
dini_Set((tmp3), "jailed", "0");
dini_Set((tmp3), "jailtime", "-1");
format(string, sizeof(string), "--- %s unjailed %s, Reason: %s.",sendername,giveplayer,tmp);
print(string);
format(string, sizeof(string), "*** %s unjailed, Reason: %s.", giveplayer,tmp);
SendClientMessageToAll(COLOR_GREY,string);
new rand = random(sizeof(gRandomPlayerSpawns));
SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]);
}
else {
format(string, sizeof(string), "* %d is not an active player.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
if(strcmp(cmd, "/kick", true) == 0 && IsPlayerAdmin(playerid) == 1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /kick [playerid] [reason]");
return 1;
}
giveplayerid = strval(tmp);
strmid(tmp, cmdtext, 6+strlen(tmp), strlen(cmdtext));
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /kick [playerid] [reason]");
return 1;
}
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "*** %s (id: %d) kicked by %s (id: %d). Reason: %s ***", giveplayer,giveplayerid, sendername,playerid, tmp);
printf(string);
format(string, sizeof(string), "*** %s (id: %d) kicked. Reason: %s ***", giveplayer,giveplayerid, tmp);
SendClientMessageToAll(COLOR_GREY, string);
Kick(giveplayerid);
}
else {
format(string, sizeof(string), "* %d is not an active player.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
if(strcmp(cmd, "/ban", true) == 0 && IsPlayerAdmin(playerid) == 1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /ban [playerid] [reason]");
return 1;
}
giveplayerid = strval(tmp);
strmid(tmp, cmdtext, 5+strlen(tmp), strlen(cmdtext));
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /ban [playerid] [reason]");
return 1;
}
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "*** %s (id: %d) banned by %s (id: %d). Reason: %s ***", giveplayer,giveplayerid, sendername,playerid, tmp);
printf(string);
format(string, sizeof(string), "*** %s (id: %d) banned. Reason: %s ***", giveplayer,giveplayerid, tmp);
SendClientMessageToAll(COLOR_GREY, string);
Kick(giveplayerid);
}
else {
format(string, sizeof(string), "* %d is not an active player.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
if(strcmp(cmd, "/carkick", true) == 0 && IsPlayerAdmin(playerid) == 1) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /carkick [playerid]");
return 1;
}
giveplayerid = strval(tmp);
if (IsPlayerConnected(giveplayerid)) {
if(IsPlayerInAnyVehicle(giveplayerid)){
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
RemovePlayerFromVehicle(giveplayerid);
format(string, sizeof(string), "--- %s kicked from car %s", sendername,giveplayer);
printf(string);
format(string, sizeof(string), "%s succesfull removed from car.", giveplayer,giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
else
{
format(string, sizeof(string), "* %s is not in a vehicle.", giveplayer);
SendClientMessage(playerid, COLOR_RED, string);
}
}
else {
format(string, sizeof(string), "* %d is not an Active player.", giveplayerid);
SendClientMessage(playerid, COLOR_RED, string);
}
return 1;
}
return 0;
}
public OnPlayerInfoChange(playerid)
{
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
new string[256];
new ownplayer[MAX_PLAYER_NAME];
switch (getCheckpointType(playerid)) {
case CP_BANK: {
SendClientMessage(playerid, COLOR_YELLOW, "* You are at an ATM. To store money use '/bank amount', to withdraw");
SendClientMessage(playerid, COLOR_YELLOW, "* money use '/get amount', and '/balance' to see your balance.");
}
case CP_PIRATE: {
SendClientMessage(playerid, COLOR_YELLOW, "* You can hold the pirate ship area to gain money.");
}
case CP_AMMU: {
SendClientMessage(playerid, COLOR_GREEN, "* You can purchase weapons here so that you have them every time you spawn.");
SendClientMessage(playerid, COLOR_YELLOW, "* Type /bw(melee,pistol,shotgun,smg,rifle) and /weaplist for a list of weapons.");
}
}
if (getCheckpointType(playerid) >= P_OFFSET) {
format(string, sizeof(string), "* You can buy the %s for $%d with /buy.", propertyNames[playerCheckpoint[playerid]-P_OFFSET], propertyValues[playerCheckpoint[playerid]-P_OFFSET]);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "* You will earn $%d regularly.", propertyEarnings[playerCheckpoint[playerid]-P_OFFSET]);
SendClientMessage(playerid, COLOR_YELLOW, string);
if (propertyOwner[playerCheckpoint[playerid]-P_OFFSET] < 999) {
GetPlayerName(propertyOwner[playerCheckpoint[playerid]-P_OFFSET], ownplayer, sizeof(ownplayer));
format(string, sizeof(string), "* This property is currently owned by %s.", ownplayer);
SendClientMessage(playerid, COLOR_RED, string);
}
}
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
new playername[MAX_PLAYER_NAME];
new tmp[256],tmp2[256],tmp3[256];
GetPlayerName(playerid, playername, sizeof(playername));
format(tmp3, sizeof(tmp3), "%s/%s.user", DIR_PLAYERS,playername);
tmp2 = dini_Get((tmp3), "jailed");
jailed[playerid] = strval(tmp2);
tmp2 = dini_Get((tmp3), "jailtime");
jailtime[playerid] = strval(tmp2);
tmp2 = dini_Get((tmp3), "mute");
mute[playerid] = strval(tmp2);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public timeoutcount ()
for(new i=0;i<MAX_PLAYERS;i++){
if(logged[i] == 0){
if(spawned[i] == 1){
timeout[i] = timeout[i] - 1;
if(timeout[i] > 30){
new string[256];
format(string, sizeof(string), "~g~You have %d second to login or register",timeout[i]);
GameTextForPlayer(i,string,999,3);
}
if(timeout[i] < 31){
new string[256];
format(string, sizeof(string), "~y~You have %d second to login or register",timeout[i]);
GameTextForPlayer(i,string,999,3);
}
if(timeout[i] == 0){ GameTextForPlayer(i,"~r~TIME UP You kicked.",9999,5); Kick(i);}
}
}
}
public autounjail ()
{
new string[256];
new tmp3[256];
new sendername[MAX_PLAYER_NAME];
for(new i=0;i<MAX_PLAYERS;i++){
if(logged[i] == 1){
if(spawned[i] == 1){
if(jailtime[i] > 0){
format(string, sizeof(string), "You left %d minutes in the jail.",jailtime[i]);
SendClientMessage(i,COLOR_YELLOW,string);
jailtime[i] = jailtime[i] - 1;
}
if(jailtime[i] == 0){
GetPlayerName(i, sendername, sizeof(sendername));
jailed[i] = 0;
jailtime[i] = -1;
format(tmp3, sizeof(tmp3), "%s/%s.user", DIR_PLAYERS,sendername);
dini_Set((tmp3), "jailed", "0");
dini_Set((tmp3), "jailtime", "-1");
format(string, sizeof(string), "%s relased from the jail.",sendername);
SendClientMessageToAll(COLOR_GREY,string);
new rand = random(sizeof(gRandomPlayerSpawns));
SetPlayerPos(i, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]);
}
}
}
}
return 1;
}
public getCheckpointType(playerID) {
return checkpointType[playerCheckpoint[playerID]];
}
public IsPlayerInArea(playerid, Float:data[4])
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x >= data[0] && x <= data[2] && y >= data[1] && y <= data[3]) return 1;
return 0;
}
public IsPlayerAt(playerid, Float:x1, Float:y1, Float:x2, Float:y2)
{
new Float:x, Float:y, Float:z;
if (IsPlayerConnected(playerid)) {
GetPlayerPos(playerid, x, y, z);
if(x >= x1 && x <= x2 && y >= y1 && y <= y2) return 1;
}
return 0;
}
public checkpointUpdate()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i)) {
for(new j=0; j < MAX_POINTS; j++) {
if(IsPlayerInArea(i, checkCoords[j])) {
if(playerCheckpoint[i]!=j) {
DisablePlayerCheckpoint(i);
SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2], 2);
playerCheckpoint[i] = j;
}
} else {
if(playerCheckpoint[i]==j) {
DisablePlayerCheckpoint(i);
playerCheckpoint[i] = 999;
}
}
}
}
}
}
public PropertyScoreUpdate()
{
new owners[MAX_PROPERTIES];
new payments[MAX_PROPERTIES];
for(new i=0; i < MAX_PROPERTIES; i++)
owners[i]=999;
for(new i=0; i < MAX_PROPERTIES; i++)
{
if(propertyOwner[i] < 999) {
for(new j=0; j < MAX_PROPERTIES; j++) {
if(owners[j]==propertyOwner[i]) {
payments[j]+=propertyEarnings[i];
j = MAX_PROPERTIES;
} else if (owners[j]==999) {
owners[j]=propertyOwner[i];
payments[j]+=propertyEarnings[i];
j = MAX_PROPERTIES;
}
}
}
}
for(new i=0; i < MAX_PROPERTIES; i++) {
if(owners[i] < 999 && IsPlayerConnected(owners[i])) {
new string[256];
StatGivePlayerMoney(owners[i], payments[i]);
format(string, sizeof(string), "* You earned $%d from your properties.", payments[i]);
SendClientMessage(owners[i], COLOR_GREEN, string);
}
}
}
public StatGivePlayerMoney(playerid, amount)
{
new tmp[256];
if (IsPlayerConnected(playerid)) {
tmp = dini_Get(FILE_SETTINGS, "maxmoney");
if (GetPlayerMoney(playerid)+amount <= strval(tmp)) {
GivePlayerMoney(playerid, amount);
if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);
if (amount > 0) {
tmp = dini_Get(FILE_TOTALSTAT, "moneyreceived");
dini_IntSet(FILE_TOTALSTAT, "moneyreceived", strval(tmp)+amount);
}
else {
tmp = dini_Get(FILE_TOTALSTAT, "moneylost");
dini_IntSet(FILE_TOTALSTAT, "moneylost", strval(tmp)-amount);
}
}
else {
SendClientMessage(playerid, COLOR_RED, "* WARNING! Your money at maximum and you cannot receive more money!");
SendClientMessage(playerid, COLOR_RED, "* Store money in bank or send them to be able to get more.");
return 0;
}
}
return 1;
}
public OnGameModeExit()
{
return 1;
}