rendered paste body/*
Water Mode!
by Amit `Amit_B` Barami
*/
//==============================================================================
#include <a_samp>
//==============================================================================
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_ORANGE 0xFF9900AA
//==============================================================================
new hd;
//==============================================================================
public OnGameModeInit()
{
SetGameModeText("Water Mode!");
ShowNameTags(1);
ShowPlayerMarkers(0);
SetWorldTime(7);
SetGravity(0.008);
AllowAdminTeleport(1);
AllowInteriorWeapons(0);
EnableTirePopping(0);
EnableZoneNames(0);
EnableStuntBonusForAll(1);
UsePlayerPedAnims();
DisableInteriorEnterExits();
CreateVehicle(595,359.4018,-1916.3444,0.1756,1.4130,112,20,5000);
CreateVehicle(588,281.5840,-1867.1434,2.5357,259.8463,1,1,5000);
CreateVehicle(573,165.9113,-1870.1450,3.6613,271.0521,3,6,5000);
CreateVehicle(573,165.9753,-1865.7430,3.7766,267.2350,7,118,5000);
CreateVehicle(573,165.8233,-1855.5649,4.0909,272.4438,126,1,5000);
CreateVehicle(573,165.7782,-1849.6241,4.2341,277.3918,0,1,5000);
CreateVehicle(573,165.5935,-1845.8009,4.3855,273.1616,0,0,5000);
CreateVehicle(573,164.9068,-1842.2814,4.5269,271.5270,86,5,5000);
CreateVehicle(573,165.0291,-1838.4843,4.5712,271.9459,6,6,5000);
CreateVehicle(573,165.5686,-1834.6073,4.5505,269.7067,16,8,5000);
CreateVehicle(567,209.4991,-1883.3282,1.3285,188.6973,3,6,5000);
CreateVehicle(567,206.8926,-1883.4789,1.3238,180.9479,7,118,5000);
CreateVehicle(567,212.7220,-1883.1818,1.3312,181.0762,126,1,5000);
CreateVehicle(567,215.7162,-1883.4298,1.3101,178.8985,0,1,5000);
CreateVehicle(567,218.7290,-1883.7869,1.2629,171.4435,0,0,5000);
CreateVehicle(567,221.6612,-1884.2727,1.2055,178.1907,86,5,5000);
CreateVehicle(567,224.3874,-1884.3024,1.1686,354.3509,6,6,5000);
CreateVehicle(567,227.3875,-1884.4889,1.1217,180.7645,16,8,5000);
CreateVehicle(563,224.9923,-1850.7572,3.8876,259.2454,1,6,5000);
CreateVehicle(556,280.2546,-1886.4872,2.1658,190.4249,1,1,5000);
CreateVehicle(556,276.3633,-1886.2527,2.1676,182.2010,1,1,5000);
CreateVehicle(541,251.6183,-1884.3885,0.7953,172.0716,3,6,5000);
CreateVehicle(541,248.5236,-1884.1927,0.8240,173.0781,7,118,5000);
CreateVehicle(541,245.4272,-1883.6072,0.8857,179.0392,126,1,5000);
CreateVehicle(541,242.1934,-1883.3754,0.9167,178.1413,0,1,5000);
CreateVehicle(541,238.8044,-1883.6112,0.9132,179.9917,0,0,5000);
CreateVehicle(539,214.7997,-1868.4741,2.0328,223.1677,7,118,5000);
CreateVehicle(539,201.2079,-1868.6820,2.1462,97.4586,126,1,5000);
CreateVehicle(539,245.7937,-1868.7296,1.7681,86.9396,0,1,5000);
CreateVehicle(539,289.2579,-1869.0787,1.9722,92.2666,0,0,5000);
CreateVehicle(539,338.0903,-1869.4633,2.1741,268.4736,86,5,5000);
CreateVehicle(522,216.7967,-1925.5710,-4.5267,188.9979,7,118,5000);
CreateVehicle(522,215.1438,-1925.4473,-4.5217,189.3044,0,1,5000);
CreateVehicle(522,214.2591,-1925.2888,-4.5116,182.8381,126,1,5000);
CreateVehicle(522,212.4340,-1925.7441,-4.5271,171.7093,3,6,5000);
CreateVehicle(522,210.9400,-1925.1517,-4.5156,165.6302,7,79,5000);
CreateVehicle(520,340.8157,-2125.3296,-27.5198,216.8018,0,1,5000);
CreateVehicle(513,196.8768,-2086.2637,-27.5981,179.6558,3,6,5000);
CreateVehicle(513,185.3716,-2086.2764,-27.7169,180.5223,7,118,5000);
CreateVehicle(513,175.9746,-2085.6584,-27.7380,179.8763,126,1,5000);
CreateVehicle(513,166.2140,-2085.7932,-27.7025,179.6502,0,1,5000);
CreateVehicle(511,211.5063,-2088.2124,-26.8840,172.8232,0,0,5000);
CreateVehicle(487,236.0497,-2093.2739,-28.0888,179.8482,3,6,5000);
CreateVehicle(487,246.8183,-2093.2402,-28.0429,179.9993,7,118,5000);
CreateVehicle(487,257.8907,-2094.6633,-27.9585,179.9421,126,1,5000);
CreateVehicle(486,254.5860,-2120.6504,-28.0357,180.0000,0,1,5000);
CreateVehicle(484,310.3337,-1905.9016,0.7043,175.6597,12,35,5000);
CreateVehicle(447,297.6173,-1884.4810,1.8964,0.1063,75,2,5000);
CreateVehicle(446,290.7897,-1908.3013,-0.5348,358.8961,3,6,5000);
CreateVehicle(446,283.3269,-1906.2926,-0.3511,0.0066,7,118,5000);
CreateVehicle(432,206.3286,-2137.1750,-28.2449,274.2039,43,0,5000);
CreateVehicle(430,165.8088,-1891.4324,0.2662,176.2904,46,26,5000);
CreateVehicle(416,166.1903,-1830.8673,3.9682,269.0743,1,3,5000);
for(new i;i<300;i++)
{
if(IsValidSkin(i))
{
AddPlayerClass(i,0.0,0.0,0.0,0.0,0,0,24,500,-1,-1);
}
}
AddStaticPickup(1240,15,213.2846,-1952.1073,-4.9213);
AddStaticPickup(1242,15,210.6053,-1951.1421,-4.8914);
AddStaticPickup(1240,15,654.6677,-1869.6510,5.5537);
AddStaticPickup(1242,15,673.1192,-1869.4020,5.4609);
AddStaticPickup(370,15,672.2285,-1864.6390,5.4537);
hd = INVALID_PLAYER_ID;
print("\n--------------------");
print("Water Mode! ");
print("by Amit_B - Loaded ");
print("--------------------\n");
return 1;
}
//==============================================================================
public OnGameModeExit()
{
print("\n--------------------");
print("Water Mode! ");
print("by Amit_B - UnLoaded ");
print("--------------------\n");
return 1;
}
//==============================================================================
public OnPlayerRequestClass(playerid,classid)
{
SetPlayerPos(playerid,288.6913,-1874.3064,6.4023);
SetPlayerFacingAngle(playerid,359.1816);
SetPlayerCameraPos(playerid,290.9239,-1871.2256,6.4023);
SetPlayerCameraLookAt(playerid,288.6913,-1874.3064,6.4023);
return 1;
}
//==============================================================================
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,COLOR_BLUE,"Welcome to \"Water Mode\"!");
GameTextForPlayer(playerid,"~w~Welcomt to ~n~~b~~h~Water ~w~Mode!",7000,1);
SendDeathMessage(INVALID_PLAYER_ID,playerid,200);
return 1;
}
//==============================================================================
public OnPlayerDisconnect(playerid,reason)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,201);
return 1;
}
//==============================================================================
public OnPlayerCommandText(playerid,cmdtext[])
{
if(strcmp(cmdtext,"/help",true) == 0)
{
SendClientMessage(playerid,COLOR_BLUE,"~~~ Help Menu: ~~~");
SendClientMessage(playerid,COLOR_YELLOW,"In this gamemode, you playing in the water.");
SendClientMessage(playerid,COLOR_YELLOW,"The mode created by Amit `Amit_B` Barami.");
SendClientMessage(playerid,COLOR_YELLOW,"You can fight, drive, and more, and all - in the water!");
SendClientMessage(playerid,COLOR_YELLOW,"To see the commands in this gamemode, type '/commands'.");
SendClientMessage(playerid,COLOR_YELLOW,"To back to the start, type '/spawn'.");
return 1;
}
if(strcmp(cmdtext,"/commands",true) == 0)
{
SendClientMessage(playerid,COLOR_BLUE,"~~~ Gamemode Commands ~~~");
SendClientMessage(playerid,COLOR_YELLOW,"To see the list of the colors, type '/colors'.");
SendClientMessage(playerid,COLOR_YELLOW,"To see the weapons you can buy, type '/weapons'.");
SendClientMessage(playerid,COLOR_YELLOW,"To see the \"Hotdog Car\" commands type '/hotdog'.");
return 1;
}
if(strcmp(cmdtext,"/colors",true) == 0)
{
SendClientMessage(playerid,COLOR_BLUE,"~~~ Colors: ~~~");
SendClientMessage(playerid,COLOR_GREY,"/cgrey");
SendClientMessage(playerid,COLOR_GREEN,"/cgreen");
SendClientMessage(playerid,COLOR_RED,"/cred");
SendClientMessage(playerid,COLOR_YELLOW,"/cyellow");
SendClientMessage(playerid,COLOR_WHITE,"/cwhite");
SendClientMessage(playerid,COLOR_BLUE,"/cblue");
SendClientMessage(playerid,COLOR_ORANGE,"/corange");
return 1;
}
if(strcmp(cmdtext,"/weapons",true) == 0)
{
SendClientMessage(playerid,COLOR_BLUE,"~~~ Weapons: ~~~");
SendClientMessage(playerid,COLOR_YELLOW,"/wuzi - MicroUzi - 300$");
SendClientMessage(playerid,COLOR_YELLOW,"/wtec9 - Tec9 - 250$");
SendClientMessage(playerid,COLOR_YELLOW,"/wcombat - Combat - 400$");
SendClientMessage(playerid,COLOR_YELLOW,"/wsawnoff - SawnOff - 500$");
SendClientMessage(playerid,COLOR_YELLOW,"/wminigun - Minigun - 2200$");
SendClientMessage(playerid,COLOR_YELLOW,"/wrocket - RocketLauncher - 2000$");
SendClientMessage(playerid,COLOR_YELLOW,"/wm4 - M4 - 600$");
SendClientMessage(playerid,COLOR_YELLOW,"/wgrenade - Grenade - 1200$");
SendClientMessage(playerid,COLOR_YELLOW,"/wsniper - SniperRifle - 1000$");
return 1;
}
if(strcmp(cmdtext,"/hotdog",true) == 0)
{
SendClientMessage(playerid,COLOR_BLUE,"~~~ \"Hotdog Car\" commands: ~~~");
SendClientMessage(playerid,COLOR_YELLOW,"/buyhd - buy hotdog - 3$");
SendClientMessage(playerid,COLOR_YELLOW,"/buycheeps - buy cheeps - 2$");
SendClientMessage(playerid,COLOR_YELLOW,"/buydrink - buy drink - 1$");
SendClientMessage(playerid,COLOR_YELLOW,"/buyketchup - buy ketchup - 1$");
SendClientMessage(playerid,COLOR_YELLOW,"/buyicecream - buy icecream - 2$");
return 1;
}
if(strcmp(cmdtext,"/spawn",true) == 0)
{
SendClientMessage(playerid,COLOR_BLUE,"You have teleported to the spawn place.");
SpawnPlayer(playerid);
return 1;
}
if(strcmp(cmdtext,"/cgrey",true) == 0)
{
SetPlayerColor(playerid,COLOR_GREY);
return 1;
}
if(strcmp(cmdtext,"/cgreen",true) == 0)
{
SetPlayerColor(playerid,COLOR_GREEN);
return 1;
}
if(strcmp(cmdtext,"/cred",true) == 0)
{
SetPlayerColor(playerid,COLOR_RED);
return 1;
}
if(strcmp(cmdtext,"/cyellow",true) == 0)
{
SetPlayerColor(playerid,COLOR_YELLOW);
return 1;
}
if(strcmp(cmdtext,"/cwhite",true) == 0)
{
SetPlayerColor(playerid,COLOR_WHITE);
return 1;
}
if(strcmp(cmdtext,"/cblue",true) == 0)
{
SetPlayerColor(playerid,COLOR_BLUE);
return 1;
}
if(strcmp(cmdtext,"/corange",true) == 0)
{
SetPlayerColor(playerid,COLOR_ORANGE);
return 1;
}
if(strcmp(cmdtext,"/wuzi",true) == 0)
{
if(GetPlayerMoney(playerid) < 300)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
GivePlayerWeapon(playerid,28,100000);
return 1;
}
if(strcmp(cmdtext,"/wtec9",true) == 0)
{
if(GetPlayerMoney(playerid) < 250)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
GivePlayerWeapon(playerid,32,100000);
return 1;
}
if(strcmp(cmdtext,"/wcombat",true) == 0)
{
if(GetPlayerMoney(playerid) < 400)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
GivePlayerWeapon(playerid,27,100000);
return 1;
}
if(strcmp(cmdtext,"/wsawnoff",true) == 0)
{
if(GetPlayerMoney(playerid) < 500)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
GivePlayerWeapon(playerid,26,100000);
return 1;
}
if(strcmp(cmdtext,"/wminigun",true) == 0)
{
if(GetPlayerMoney(playerid) < 2200)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
GivePlayerWeapon(playerid,38,100000);
return 1;
}
if(strcmp(cmdtext,"/wrocket",true) == 0)
{
if(GetPlayerMoney(playerid) < 2000)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
GivePlayerWeapon(playerid,35,100000);
return 1;
}
if(strcmp(cmdtext,"/wm4",true) == 0)
{
if(GetPlayerMoney(playerid) < 600)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
GivePlayerWeapon(playerid,31,100000);
return 1;
}
if(strcmp(cmdtext,"/wgrenade",true) == 0)
{
if(GetPlayerMoney(playerid) < 1200)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
GivePlayerWeapon(playerid,16,100000);
return 1;
}
if(strcmp(cmdtext,"/wsniper",true) == 0)
{
if(GetPlayerMoney(playerid) < 1000)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
GivePlayerWeapon(playerid,34,100000);
return 1;
}
if(strcmp(cmdtext,"/buyhd",true) == 0)
{
if(GetPlayerMoney(playerid) < 3)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
if(hd == INVALID_PLAYER_ID)
{
SendClientMessage(playerid,COLOR_RED,"There are no \"Hotdog Car\" driver, you cant buy!");
return 1;
}
if(GetDistanceBetweenPlayers(playerid,hd) < 8.0)
{
SendClientMessage(playerid,COLOR_RED,"You must be close to the \"Hotdog Car\"!");
return 1;
}
GivePlayerMoney(playerid,-3);
GivePlayerHealth(playerid,10);
SendClientMessage(playerid,COLOR_GREEN,"You have buy hotdog!");
ApplyAnimation(playerid,"FOOD","EAT_Burger",3.00,0,0,0,0,0);
return 1;
}
if(strcmp(cmdtext,"/buycheeps",true) == 0)
{
if(GetPlayerMoney(playerid) < 2)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
if(hd == INVALID_PLAYER_ID)
{
SendClientMessage(playerid,COLOR_RED,"There are no \"Hotdog Car\" driver, you cant buy!");
return 1;
}
if(GetDistanceBetweenPlayers(playerid,hd) < 8.0)
{
SendClientMessage(playerid,COLOR_RED,"You must be close to the \"Hotdog Car\"!");
return 1;
}
GivePlayerMoney(playerid,-2);
GivePlayerHealth(playerid,5);
SendClientMessage(playerid,COLOR_GREEN,"You have buy cheeps!");
ApplyAnimation(playerid,"FOOD","EAT_Burger",3.00,0,0,0,0,0);
return 1;
}
if(strcmp(cmdtext,"/buydrink",true) == 0)
{
if(GetPlayerMoney(playerid) < 1)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
if(hd == INVALID_PLAYER_ID)
{
SendClientMessage(playerid,COLOR_RED,"There are no \"Hotdog Car\" driver, you cant buy!");
return 1;
}
if(GetDistanceBetweenPlayers(playerid,hd) < 8.0)
{
SendClientMessage(playerid,COLOR_RED,"You must be close to the \"Hotdog Car\"!");
return 1;
}
GivePlayerMoney(playerid,-1);
GivePlayerHealth(playerid,5);
SendClientMessage(playerid,COLOR_GREEN,"You have buy drink!");
ApplyAnimation(playerid,"FOOD","EAT_Burger",3.00,0,0,0,0,0);
return 1;
}
if(strcmp(cmdtext,"/buyketchup",true) == 0)
{
if(GetPlayerMoney(playerid) < 1)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
if(hd == INVALID_PLAYER_ID)
{
SendClientMessage(playerid,COLOR_RED,"There are no \"Hotdog Car\" driver, you cant buy!");
return 1;
}
if(GetDistanceBetweenPlayers(playerid,hd) < 8.0)
{
SendClientMessage(playerid,COLOR_RED,"You must be close to the \"Hotdog Car\"!");
return 1;
}
GivePlayerMoney(playerid,-1);
GivePlayerHealth(playerid,3);
SendClientMessage(playerid,COLOR_GREEN,"You have buy ketchup!");
ApplyAnimation(playerid,"FOOD","EAT_Burger",3.00,0,0,0,0,0);
return 1;
}
if(strcmp(cmdtext,"/buyicecream",true) == 0)
{
if(GetPlayerMoney(playerid) < 2)
{
SendClientMessage(playerid,COLOR_RED,"You dont have enough money to buy this!");
return 1;
}
if(hd == INVALID_PLAYER_ID)
{
SendClientMessage(playerid,COLOR_RED,"There are no \"Hotdog Car\" driver, you cant buy!");
return 1;
}
if(GetDistanceBetweenPlayers(playerid,hd) < 8.0)
{
SendClientMessage(playerid,COLOR_RED,"You must be close to the \"Hotdog Car\"!");
return 1;
}
GivePlayerMoney(playerid,-2);
GivePlayerHealth(playerid,5);
SendClientMessage(playerid,COLOR_GREEN,"You have buy icecream!");
ApplyAnimation(playerid,"FOOD","EAT_Burger",3.00,0,0,0,0,0);
return 1;
}
return 0;
}
//==============================================================================
public OnPlayerDeath(playerid,killerid,reason)
{
GivePlayerMoney(killerid,GetPlayerMoney(playerid)+200);
ResetPlayerMoney(playerid);
if(killerid != INVALID_PLAYER_ID)
{
SendDeathMessage(killerid,playerid,reason);
}
return 1;
}
//==============================================================================
public OnPlayerStateChange(playerid,newstate,oldstate)
{
if(newstate == PLAYER_STATE_DRIVER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 588)
{
for(new all=0;all<=GetMaxPlayers();all++)
{
if(IsPlayerConnected(all) && all != playerid)
{
SetVehicleParamsForPlayer(1,all,1,1);
}
}
hd = playerid;
}
return 1;
}
//==============================================================================
public OnPlayerExitVehicle(playerid,vehicleid)
{
if(GetVehicleModel(vehicleid) == 588)
{
for(new all=0;all<=GetMaxPlayers();all++)
{
if(IsPlayerConnected(all) && all != playerid)
{
SetVehicleParamsForPlayer(1,all,0,0);
}
}
hd = INVALID_PLAYER_ID;
}
return 1;
}
//==============================================================================
public OnPlayerSpawn(playerid)
{
new r = random(3);
switch(r)
{
case 0: SetPlayerPos(playerid,183.5687,-1940.4738,-4.3239);
case 1: SetPlayerPos(playerid,195.6263,-1943.2715,-3.9503);
case 2: SetPlayerPos(playerid,205.5823,-1943.0797,-4.0632);
default: { SetPlayerPos(playerid,0.0,0.0,0.0); SendClientMessage(playerid,COLOR_RED,"Spawn error!"); }
}
GivePlayerWeapon(playerid,WEAPON_DEAGLE,1000000);
GivePlayerWeapon(playerid,WEAPON_CANE,0);
return 1;
}
//==============================================================================
IsValidSkin(skinid)
{
#define MAX_CRASH_SKINS sizeof(CrashSkins)
new CrashSkins[] = {3,4,5,6,8,42,65,74,86,119,149,208,265,266,267,268,269,270,271,272,273,289};
if(skinid < 0 || skinid > 299)
{
return 0;
}
for(new i=0;i<MAX_CRASH_SKINS;i++)
{
if(skinid == CrashSkins[i])
{
return 0;
}
}
#undef MAX_CRASH_SKINS
return 1;
}
//==============================================================================
GivePlayerHealth(playerid,Float:health)
{
if(health < 0 || health > 100)
{
return 0;
}
new Float:h_old, Float:h_new;
GetPlayerHealth(playerid,h_old);
SetPlayerHealth(playerid,h_old+health);
GetPlayerHealth(playerid,h_new);
if(h_new > 100.0)
{
SetPlayerHealth(playerid,100.0);
}
return 1;
}
//==============================================================================
forward Float:GetDistanceBetweenPlayers(p1,p2);
public Float:GetDistanceBetweenPlayers(p1,p2)
{
// Not created by me!
new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2;
if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
{
return -1.00;
}
GetPlayerPos(p1,x1,y1,z1);
GetPlayerPos(p2,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}