/* Water Mode! by Amit `Amit_B` Barami */ //============================================================================== #include //============================================================================== #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 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)); }