Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Fishing Job Script.
- //
- // Things you need to know:
- //
- // - You only need to copy the new variables i have made into your
- // enumerator, i have used functions as much as possible to lessen
- // your work time in integrating it to the main script.
- //
- // - A player is determined to have a fishing job if pFishingLevel = 1;
- //
- // - I have only used the most necessary libraries for this script.
- //
- // - DEBUG SEARCH TERMS (CTRL + F):
- // - DEBUG-MSG
- // - DEBUG-VAR
- // - DEBUG-CMD
- // - DEBUG-MISC
- //
- // [The lines i have labeled with debug is either to be modified or to be deleted.]
- //
- // - Dev86
- //
- #include <a_samp>
- #include <Pawn.CMD>
- #include <streamer>
- // - Reefer
- #define FISHING_VEHICLE_ID 453
- #define randomEx(%1,%2) (random(%2-%1)+%1)
- enum pData { // - [DEBUG-VAR]
- pFishingXP,
- pRod,
- pFish,
- pBait,
- pSmallNet,
- pMediumNet,
- pLargeNet,
- pRodDurability,
- pSmallNetDurability,
- pMediumNetDurability,
- pLargeNetDurability,
- pTilapia,
- pMalasugi,
- pBangus
- };
- enum baData { // - [DEBUG-MISC]:
- baText[128],
- Float:baPosX,
- Float:baPosY,
- Float:baPosZ
- };
- new const boatingAreas[][baData] = {
- {"{E24E4E}Palomino Creek 1", 1900.5494, -98.1989, 0.8032}, // - [DEBUG-VAR]: Change these to /boatfish area locations.
- {"{E24E4E}Palomino Creek 2", 2020.1951, -183.7714, 1.1351}, // - [DEBUG-VAR]: Change these to /boatfish area locations.
- {"{E24E4E}Palomino Creek 3", 2171.5149, -218.6362, 1.0889}, // - [DEBUG-VAR]: Change these to /boatfish area locations.
- {"{E24E4E}Palomino Creek 4", 2102.8521, 47.5918, 1.0955} // - [DEBUG-VAR]: Change these to /boatfish area locations.
- };
- enum {
- ITEM_ROD,
- ITEM_BAIT,
- ITEM_FISH,
- ITEM_NET_SMALL,
- ITEM_NET_MED,
- ITEM_NET_LARGE,
- NET_ANY
- };
- new cFishing[MAX_PLAYERS] = 0;
- new PlayerInfo[MAX_PLAYERS][pData]; // - [DEBUG-VAR]
- new fishAmount;
- new Text3D:fishZoneLabel[4];
- new Text3D:fishMarketLabel;
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------"); // - [DEBUG-MSG]
- print(" Fishing Job - Filterscript [LOADED]"); // - [DEBUG-MSG]
- print(" Coded by Dev86, commissioned work for ToiletDuck."); // - [DEBUG-MSG]
- LoadFishingLocations();
- fishAmount = 500;
- SetTimer("FishTimer", 1000, true);
- SetTimer("FishRegen", 600000, true);
- CreateDynamic3DTextLabel("{DEDEDE}Fishing Dock\n{FFFFFF}type /fish to start fishing", 0x91F662FFF, 2101.9160,-104.5780,2.2751, 10.0);
- CreateDynamic3DTextLabel("{DEDEDE}Fish Market\n{FFFFFF}type /sellfish to sell the fish in your inventory.", 0x91F662FFF, 1324.3246, -1794.4163, 13.5469, 10.0);
- return 1;
- }
- public OnFilterScriptExit()
- {
- }
- public OnPlayerConnect(playerid)
- {
- PlayerInfo[playerid][pFishingXP] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pRod] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pFish] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pSmallNet] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pMediumNet] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pLargeNet] = 0; // - [DEBUG-VAR]
- cFishing[playerid] = 0; // - [DEBUG-VAR]
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- PlayerInfo[playerid][pFishingXP] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pRod] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pFish] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pSmallNet] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pMediumNet] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pLargeNet] = 0; // - [DEBUG-VAR]
- cFishing[playerid] = 0; // - [DEBUG-VAR]
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(FishingJobStatus(playerid) == 1)
- {
- SendClientMessage(playerid, 0xF64F4FFF, "You have died. Your rod, bait, and fish has been dropped."); // - [DEBUG-MSG]: You can remove this.
- PlayerInfo[playerid][pFish] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pBait] = 0; // - [DEBUG-VAR]
- PlayerInfo[playerid][pRod] = 0; // - [DEBUG-VAR]
- }
- return 1;
- }
- CMD:fishhelp(playerid, params[])
- {
- SendClientMessage(playerid, -1, "{4D4D4D}Fishing Information & Commands");
- SendClientMessage(playerid, -1, "{96FF89}/getfishjob - {FFFFFF}This command is used to get the fisherman job. [Must not be a fisherman already]");
- SendClientMessage(playerid, -1, "{96FF89}/fish - {FFFFFF}Can be used by fishermen level 1 - 3. [Must have rod & bait]");
- SendClientMessage(playerid, -1, "{96FF89}/boatfish - {FFFFFF}Can be used by fishermen level 4 - 5. [Must have net/fish & bait and must be ON a reefer]");
- SendClientMessage(playerid, -1, "{96FF89}/buyrod - {FFFFFF}Used to buy a fishing rod. [Must not have a rod already.]");
- SendClientMessage(playerid, -1, "{96FF89}/buybait - {FFFFFF}Used to buy a bait.");
- SendClientMessage(playerid, -1, "{96FF89}/buybignet - {FFFFFF}Used to buy a large net.");
- SendClientMessage(playerid, -1, "{96FF89}/buymediumnet - {FFFFFF}Used to buy a medium sized net.");
- SendClientMessage(playerid, -1, "{96FF89}/buysmallnet - {FFFFFF}Used to buy a small net.");
- SendClientMessage(playerid, -1, "{96FF89}/sellfish - {FFFFFF}Used to sell the fish in your inventory.");
- SendClientMessage(playerid, -1, "{96FF89}/fishinventory - {FFFFFF}Used to check your fishing related inventory.");
- SendClientMessage(playerid, -1, "{96FF89}Noteable Information:");
- SendClientMessage(playerid, -1, "- Fishing Rods & Nets have a 10 percent chance of breaking every time you fish.");
- SendClientMessage(playerid, -1, "- Do not overfish, you can see the status of the fish population as labeled by the boat fishing zones.");
- SendClientMessage(playerid, -1, "- A bait is consumed every time you fish.");
- SendClientMessage(playerid, -1, "- There is a 10 percent you can catch trash while fishing, meaning it can decrease the amount ...");
- SendClientMessage(playerid, -1, "... of fish you can catch.");
- SendClientMessage(playerid, -1, "{96FF89}Debug Commands:");
- SendClientMessage(playerid, -1, "- /fishlevel0 - /fishlevel4 - /debugfish - /debugmoney - /tp2fish - /tp2market");
- }
- // - Commands [Most of these commands we're made for debug purposes and can be removed/modified to fit the main script.]
- CMD:buyrod(playerid, params[]) // - [DEBUG-CMD]
- {
- /*if(IsPlayerInBusiness(...)) // - [DEBUG-MISC]
- {
- // - ikaw nalang mag add neto, you can add this with minimal effort using the return cmd function in ZCMD or Pawn.CMD.
- }*/
- if(FishingJobStatus(playerid) == 0)
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must have the fishing job to buy a rod.");
- }
- /* if(GetPlayerMoney(playerid) < ReturnPrice(ITEM_ROD)) // - [DEBUG-MISC]
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You do not have enough money to buy a rod.");
- }*/
- if(HasFishingItem(playerid, ITEM_ROD))
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You already have a fishing rod.");
- }
- AddFishingItem(playerid, ITEM_ROD, 1);
- SendClientMessage(playerid, 0x91F662FF, "You have successfully bought a fishing rod.");
- return 1;
- }
- CMD:buybait(playerid, params[]) // - [DEBUG-CMD]
- {
- /*if(IsPlayerInBusiness(...)) // - [DEBUG-MISC]
- {
- // - ikaw nalang mag add neto, you can add this with minimal effort using the return cmd function in ZCMD or Pawn.CMD.
- }*/
- if(FishingJobStatus(playerid) == 0)
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must have the fishing job to buy a bait.");
- }
- /* if(GetPlayerMoney(playerid) < ReturnPrice(ITEM_BAIT)) // - [DEBUG-MISC]
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You do not have enough money to buy a bait.");
- }*/
- if(PlayerInfo[playerid][pBait] > 19) // - [DEBUG-VAR]: change '19' into desired max bait amount
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You cannot hold any more bait.");
- }
- AddFishingItem(playerid, ITEM_BAIT, 1);
- SendClientMessage(playerid, 0x91F662FF, "You have successfully bought a bait.");
- return 1;
- }
- CMD:tp2fish(playerid, params[]) return SetPlayerPos(playerid, 2101.9160,-104.5780,2.2751);
- CMD:tp2market(playerid, params[]) return SetPlayerPos(playerid, 1324.3246, -1794.4163, 13.5469);
- CMD:fish(playerid, params[])
- {
- if(!IsInRangeOfFishingPoint(playerid)) // - This function already exists, nakacomment lang for you to adjust the area kung saan.
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must be near the fishing area to use this command."); // - [DEBUG-CMD]
- }
- if(cFishing[playerid] == 1)
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You are already fishing.");
- }
- if(FishingJobStatus(playerid) == 0)
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must have the fishing job to use this command.");
- }
- if(GetPlayerFishingLevel(playerid) > 3)
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must be fishing level 1-3 to use this command.");
- }
- if(!HasFishingItem(playerid, ITEM_BAIT) || !HasFishingItem(playerid, ITEM_ROD))
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must have a fishing rod and a bait to use this command.");
- }
- ApplyAnimation(playerid, "SAMP", "FishingIdle", 4.1, 0, 0, 0, 1, 0, 1);
- SetPlayerAttachedObject(playerid, 9, 18632, 6, 0.112999, 0.024000, 0.000000, -172.999954, 28.499994, 0.000000);
- GameTextForPlayer(playerid, "~w~Fishing...", 6000, 3);
- cFishing[playerid] = 1;
- SetTimerEx("OnPlayerFish", 6000, false, "i", playerid); // - [DEBUG-VAR]: Change time to your will
- return 1;
- }
- CMD:fishinventory(playerid, params[])
- {
- new string[128];
- format(string, sizeof(string), "Fish Weight: %dkg / Rod: %d / Bait: %d", PlayerInfo[playerid][pFish], PlayerInfo[playerid][pRod], PlayerInfo[playerid][pBait]);
- SendClientMessage(playerid, -1, string);
- format(string, sizeof(string), "Big Net: %d / Medium Net: %d / Small Net: %d / Level: %d", PlayerInfo[playerid][pLargeNet], PlayerInfo[playerid][pMediumNet], PlayerInfo[playerid][pSmallNet], GetPlayerFishingLevel(playerid));
- SendClientMessage(playerid, -1, string);
- }
- CMD:fishlevel0(playerid, params[]) return PlayerInfo[playerid][pFishingXP] = 0; // - [DEBUG-CMD]
- CMD:fishlevel4(playerid, params[]) return PlayerInfo[playerid][pFishingXP] = 150; // - [DEBUG-CMD]
- CMD:boatfish(playerid, params[])
- {
- if(!IsPlayerInRangeOfBoatingPoint(playerid))
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must be near the fishing area to use this command."); // - [DEBUG-CMD]
- }
- if(cFishing[playerid] == 1)
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You are already fishing.");
- }
- if(FishingJobStatus(playerid) == 0)
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must have the fishing job to use this command.");
- }
- if(GetPlayerFishingLevel(playerid) < 4)
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must be fishing level 4-5 to use this command.");
- }
- if(GetPlayerVehicleID(playerid))
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must be out of a vehicle to use this command.");
- }
- if(GetVehicleModel(GetNearbyVehicle(playerid)) != FISHING_VEHICLE_ID) // - [DEBUG-VAR]: change vehicle id into desired vehicle.
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must be in a fishing boat to use this command.");
- }
- if(!HasFishingItem(playerid, ITEM_BAIT) || !HasFishingItem(playerid, NET_ANY))
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must have a fishing rod and a bait to use this command.");
- }
- if(!BoatFishPossible())
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: Fish in Palomino Creek is currently too endangered for you to fish, please wait for the fish to regenerate.");
- }
- GameTextForPlayer(playerid, "~w~Fishing...", 6000, 3);
- ApplyAnimation(playerid, "SAMP", "FishingIdle", 4.1, 0, 0, 0, 1, 0, 1);
- SetPlayerAttachedObject(playerid, 9, 18632, 6, 0.112999, 0.024000, 0.000000, -172.999954, 28.499994, 0.000000);
- cFishing[playerid] = 1;
- SetTimerEx("OnPlayerFish", 6000, false, "i", playerid); // - [DEBUG-VAR]: Change time to your will
- return 1;
- }
- CMD:buysmallnet(playerid, params[])
- {
- SendClientMessage(playerid, 0x91F662FF, "You have bought a small net.");
- PlayerInfo[playerid][pSmallNet]++;
- }
- CMD:buymednet(playerid, params[])
- {
- SendClientMessage(playerid, 0x91F662FF, "You have bought a medium net.");
- PlayerInfo[playerid][pMediumNet]++;
- }
- CMD:buybignet(playerid, params[])
- {
- SendClientMessage(playerid, 0x91F662FF, "You have bought a big net.");
- PlayerInfo[playerid][pLargeNet]++;
- }
- CMD:sellfish(playerid, params[])
- {
- if(FishingJobStatus(playerid) == 0)
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must have the fishing job to use this command.");
- }
- if(!IsPlayerNearFishMarket(playerid))
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You must be near the fish market to use this command.");
- }
- new string[64];
- format(string, sizeof(string), "You have sold %dkg of fish for $%d.", GetPlayerFishWeight(playerid), GetPlayerFishWeight(playerid) * ReturnPrice(ITEM_FISH));
- SendClientMessage(playerid, 0x91F662FF, string);
- GivePlayerMoney(playerid, GetPlayerFishWeight(playerid) * ReturnPrice(ITEM_FISH));
- PlayerInfo[playerid][pFish] -= GetPlayerFishWeight(playerid);
- return 1;
- }
- CMD:debugmoney(playerid, params[])
- {
- if(isnull(params))
- {
- return SendClientMessage(playerid, -1, "/debugmoney [amount]");
- }
- if(!strval(params))
- {
- return SendClientMessage(playerid, -1, "the value must be an integer.");
- }
- GivePlayerMoney(playerid, strval(params));
- return 1;
- }
- CMD:debugfish(playerid, params[])
- {
- if(isnull(params))
- {
- return SendClientMessage(playerid, -1, "/debugfish [amount]");
- }
- if(!strval(params))
- {
- return SendClientMessage(playerid, -1, "the value must be an integer.");
- }
- fishAmount = strval(params);
- return 1;
- }
- CMD:getfishjob(playerid, params[])
- {
- if(FishingJobStatus(playerid) == 1)
- {
- return SendClientMessage(playerid, 0xF64F4FFF, "Error: You already have the fishing job.");
- }
- SendClientMessage(playerid, 0x91F662FFF, "You have applied for the fisherman job and has been accepted.");
- PlayerInfo[playerid][pFishingXP] = 1;
- return 1;
- }
- // - Functions [I made some functions that should ease the integration process.]
- forward LoadFishingLocations();
- public LoadFishingLocations()
- {
- new string[256];
- for(new i = 0; i < sizeof(boatingAreas); i++)
- {
- format(string, sizeof(string), "[Loading...]\n%s\n{EAEAEA}Type '/boatfish' to catch fish in the area.", boatingAreas[i][baText]);
- fishZoneLabel[i] = CreateDynamic3DTextLabel(string, 0x91F662FFF, boatingAreas[i][baPosX], boatingAreas[i][baPosY], boatingAreas[i][baPosZ], 100.0);
- }
- }
- forward UpdateFishingLocations();
- public UpdateFishingLocations()
- {
- new string[256];
- for(new i = 0; i < sizeof(boatingAreas); i++)
- {
- format(string, sizeof(string), "%s\n%s\n{EAEAEA}Type '/boatfish' to catch fish in the area.", ReturnFishHealth(), boatingAreas[i][baText]);
- UpdateDynamic3DTextLabelText(fishZoneLabel[i], -1, string);
- }
- }
- forward FishTimer();
- public FishTimer()
- {
- UpdateFishingLocations();
- }
- forward FishRegen();
- public FishRegen()
- {
- fishAmount += randomEx(90, 125);
- }
- stock ReturnFishHealth()
- {
- new hstring[64];
- if(55 <= fishAmount <= 150) {
- hstring = "{AE0000}[Alarmingly Low Population]";
- } else if(151 <= fishAmount <= 249) {
- hstring = "{FF4949}[Low Population]";
- } else if(250 <= fishAmount <= 349) {
- hstring = "{FF7900}[Limited Population]";
- } else if(350 <= fishAmount <= 449) {
- hstring = "{FFFB00}[Healthy Population]";
- } else if(450 <= fishAmount <= 650) {
- hstring = "{6AFF43}[Healthy Population]";
- } else {
- hstring = "{7C7C7C}[Endangered]";
- }
- return hstring;
- }
- stock BoatFishPossible()
- {
- if(fishAmount < 55) return 0;
- else return 1;
- }
- forward OnPlayerFish(playerid);
- public OnPlayerFish(playerid)
- {
- if(GetPlayerFishingLevel(playerid) < 4)
- {
- if(HasFishingItem(playerid, ITEM_ROD))
- {
- switch(randomEx(1, 10))
- {
- case 1:
- {
- SendClientMessage(playerid, -1, "You have reeled in some trash.");
- cFishing[playerid] = 0;
- TogglePlayerControllable(playerid, true);
- DelFishingItem(playerid, ITEM_BAIT, 1);
- }
- default:
- {
- if(GetPlayerFishingLevel(playerid) == 1) {
- GivePlayerFish(playerid, ITEM_ROD);
- fishAmount -= randomEx(2,10);
- } else if(GetPlayerFishingLevel(playerid) == 2) {
- GivePlayerFish(playerid, ITEM_ROD);
- fishAmount -= randomEx(10,20);
- } else if(GetPlayerFishingLevel(playerid) == 3) {
- GivePlayerFish(playerid, ITEM_ROD);
- fishAmount -= randomEx(10,20);
- }
- switch(random(10))
- {
- case 1: { PlayerInfo[playerid][pRod]--; SendClientMessage(playerid, -1, "Your rod has broken while reeling in some fish."); }
- default: { SendClientMessage(playerid, 0x91F662FFF, "You have reeled in some fish."); }
- }
- DecreaseItemDurability(playerid, ITEM_ROD);
- cFishing[playerid] = 0;
- TogglePlayerControllable(playerid, true);
- DelFishingItem(playerid, ITEM_BAIT, 1);
- return 1;
- }
- }
- return 1;
- }
- }
- if(GetPlayerFishingLevel(playerid) >= 4)
- {
- if(HasFishingItem(playerid, ITEM_NET_LARGE))
- {
- switch(randomEx(1, 10))
- {
- case 1:
- {
- switch(random(10))
- {
- case 1: { PlayerInfo[playerid][pLargeNet]--; SendClientMessage(playerid, -1, "Your large net has broken while reeling in some fish and trash."); }
- default: { SendClientMessage(playerid, 0x91F662FFF, "You have reeled in some fish and trash."); }
- }
- GivePlayerFish(playerid, ITEM_NET_LARGE);
- DecreaseItemDurability(playerid, ITEM_NET_LARGE);
- cFishing[playerid] = 0;
- TogglePlayerControllable(playerid, true);
- DelFishingItem(playerid, ITEM_BAIT, 1);
- fishAmount -= randomEx(35,40);
- }
- default:
- {
- switch(random(10))
- {
- case 1: { PlayerInfo[playerid][pLargeNet]--; SendClientMessage(playerid, -1, "Your large net has broken while reeling in some fish."); }
- default: { SendClientMessage(playerid, 0x91F662FFF, "You have reeled in some fish."); }
- }
- GivePlayerFish(playerid, ITEM_NET_LARGE, true);
- DecreaseItemDurability(playerid, ITEM_NET_LARGE);
- cFishing[playerid] = 0;
- TogglePlayerControllable(playerid, true);
- DelFishingItem(playerid, ITEM_BAIT, 1);
- fishAmount -= randomEx(40,55);
- }
- }
- return 1;
- }
- else if(HasFishingItem(playerid, ITEM_NET_MED))
- {
- switch(randomEx(1, 10))
- {
- case 1:
- {
- switch(random(10))
- {
- case 1: { PlayerInfo[playerid][pMediumNet]--; SendClientMessage(playerid, -1, "Your medium net has broken while reeling in some fish and trash."); }
- default: { SendClientMessage(playerid, 0x91F662FFF, "You have reeled in some fish and trash."); }
- }
- DecreaseItemDurability(playerid, ITEM_NET_MED);
- GivePlayerFish(playerid, ITEM_NET_MED);
- cFishing[playerid] = 0;
- TogglePlayerControllable(playerid, true);
- DelFishingItem(playerid, ITEM_BAIT, 1);
- fishAmount -= randomEx(25,30);
- }
- default:
- {
- switch(random(10))
- {
- case 1: { PlayerInfo[playerid][pMediumNet]--; SendClientMessage(playerid, -1, "Your medium has broken while reeling in some fish."); }
- default: { SendClientMessage(playerid, 0x91F662FFF, "You have reeled in some fish."); }
- }
- DecreaseItemDurability(playerid, ITEM_NET_MED);
- GivePlayerFish(playerid, ITEM_NET_MED, true);
- cFishing[playerid] = 0;
- TogglePlayerControllable(playerid, true);
- DelFishingItem(playerid, ITEM_BAIT, 1);
- fishAmount -= randomEx(30,40);
- }
- }
- return 1;
- }
- else if(HasFishingItem(playerid, ITEM_NET_SMALL))
- {
- switch(randomEx(1, 10))
- {
- case 1:
- {
- switch(random(10))
- {
- case 1: { PlayerInfo[playerid][pSmallNet]--; SendClientMessage(playerid, -1, "Your small net has broken while reeling in some fish and trash."); }
- default: { SendClientMessage(playerid, 0x91F662FFF, "You have reeled in some fish."); }
- }
- DecreaseItemDurability(playerid, ITEM_NET_SMALL);
- GivePlayerFish(playerid, ITEM_NET_SMALL);
- cFishing[playerid] = 0;
- TogglePlayerControllable(playerid, true);
- DelFishingItem(playerid, ITEM_BAIT, 1);
- fishAmount -= randomEx(15,20);
- }
- default:
- {
- switch(random(10))
- {
- case 1: { PlayerInfo[playerid][pSmallNet]--; SendClientMessage(playerid, -1, "Your small net has broken while reeling in some fish."); }
- default: { SendClientMessage(playerid, 0x91F662FFF, "You have reeled in some fish."); }
- }
- DecreaseItemDurability(playerid, ITEM_NET_SMALL);
- GivePlayerFish(playerid, ITEM_NET_SMALL, true);
- cFishing[playerid] = 0;
- TogglePlayerControllable(playerid, true);
- DelFishingItem(playerid, ITEM_BAIT, 1);
- fishAmount -= randomEx(20,30);
- }
- }
- return 1;
- }
- else if(HasFishingItem(playerid, ITEM_ROD))
- {
- switch(randomEx(1, 10))
- {
- case 1:
- {
- SendClientMessage(playerid, -1, "You have reeled in some trash.");
- cFishing[playerid] = 0;
- TogglePlayerControllable(playerid, true);
- DelFishingItem(playerid, ITEM_BAIT, 1);
- }
- default:
- {
- if(GetPlayerFishingLevel(playerid) == 1) {
- GivePlayerFish(playerid, ITEM_ROD);
- fishAmount -= randomEx(2,10);
- } else if(GetPlayerFishingLevel(playerid) == 2) {
- GivePlayerFish(playerid, ITEM_ROD);
- fishAmount -= randomEx(10,20);
- } else {
- GivePlayerFish(playerid, ITEM_ROD);
- fishAmount -= randomEx(10,20);
- }
- switch(random(10))
- {
- case 1: { PlayerInfo[playerid][pRod]--; SendClientMessage(playerid, -1, "Your rod has broken while reeling in some fish."); }
- default: { SendClientMessage(playerid, 0x91F662FFF, "You have reeled in some fish."); }
- }
- DecreaseItemDurability(playerid, ITEM_ROD);
- cFishing[playerid] = 0;
- TogglePlayerControllable(playerid, true);
- DelFishingItem(playerid, ITEM_BAIT, 1);
- return 1;
- }
- }
- return 1;
- }
- }
- return 1;
- }
- stock FishingJobStatus(playerid)
- {
- new status;
- switch(GetPlayerFishingLevel(playerid))
- {
- case 0: status = 0;
- case 1, 2, 3, 4, 5: status = 1;
- }
- return status;
- }
- stock FishEx(playerid, malasugi, tilapia, bangus)
- {
- PlayerInfo[playerid][pMalasugi] += malasugi;
- PlayerInfo[playerid][pTilapia] += tilapia;
- PlayerInfo[playerid][pBangus] += bangus;
- }
- stock GivePlayerFish(playerid, itemid, bool:trash = false)
- {
- switch(itemid)
- {
- case ITEM_ROD:
- {
- switch(GetPlayerFishingLevel(playerid))
- {
- case 1: { if(trash == false) { FishEx(playerid, 2, 3, 5); } else { FishEx(playerid, 0, 0, 0); } }
- case 2: { if(trash == false) { FishEx(playerid, 5, 7, 8); } else { FishEx(playerid, 0, 0, 0); } }
- case 3: { if(trash == false) { FishEx(playerid, 7, 9, 14); } else { FishEx(playerid, 0, 0, 0); } }
- }
- }
- case ITEM_NET_SMALL:
- {
- switch(GetPlayerFishingLevel(playerid))
- {
- case 4: { if(trash == false) { FishEx(playerid, 7, 9, 14); } else { FishEx(playerid, 5, 7, 8); } }
- case 5: { if(trash == false) { FishEx(playerid, 10, 10, 20); } else { FishEx(playerid, 7, 9, 14); } }
- }
- }
- case ITEM_NET_MED:
- {
- switch(GetPlayerFishingLevel(playerid))
- {
- case 4: { if(trash == false) { FishEx(playerid, 8, 7, 15); } else { FishEx(playerid, 5, 5, 10); } }
- case 5: { if(trash == false) { FishEx(playerid, 10, 10, 10); } else { FishEx(playerid, 5, 4, 11); } }
- }
- }
- case ITEM_NET_LARGE:
- {
- switch(GetPlayerFishingLevel(playerid))
- {
- case 4: { if(trash == false) { FishEx(playerid, 15, 20, 15); } else { FishEx(playerid, 10, 10, 15); } }
- case 5: { if(trash == false) { FishEx(playerid, 15, 15, 25); } else { FishEx(playerid, 10, 10, 20); } }
- }
- }
- }
- }
- stock DecreaseItemDurability(playerid, itemid)
- {
- switch(itemid)
- {
- case ITEM_ROD:
- {
- if(PlayerInfo[playerid][pRodDurability] == 1) {
- PlayerInfo[playerid][pRod]--;
- PlayerInfo[playerid][pRodDurability] = 5;
- SendClientMessage(playerid, -1, "You have overused your rod and it broke.");
- } else {
- PlayerInfo[playerid][pRodDurability]--;
- }
- }
- case ITEM_NET_SMALL:
- {
- if(PlayerInfo[playerid][pSmallNetDurability] == 1) {
- PlayerInfo[playerid][pSmallNet]--;
- PlayerInfo[playerid][pSmallNetDurability] = 5;
- SendClientMessage(playerid, -1, "You have overused your small net and it broke.");
- } else {
- PlayerInfo[playerid][pSmallNetDurability]--;
- }
- }
- case ITEM_NET_MED:
- {
- if(PlayerInfo[playerid][pMediumNetDurability] == 1) {
- PlayerInfo[playerid][pMediumNet]--;
- PlayerInfo[playerid][pMediumNetDurability] = 6;
- SendClientMessage(playerid, -1, "You have overused your medium net and it broke.");
- } else {
- PlayerInfo[playerid][pMediumNetDurability]--;
- }
- }
- case ITEM_NET_LARGE:
- {
- if(PlayerInfo[playerid][pLargeNetDurability] == 1) {
- PlayerInfo[playerid][pLargeNet]--;
- PlayerInfo[playerid][pLargeNetDurability] = 7;
- SendClientMessage(playerid, -1, "You have overused your large net and it broke.");
- } else {
- PlayerInfo[playerid][pLargeNetDurability]--;
- }
- }
- }
- }
- stock GetPlayerFishingLevel(playerid)
- {
- if(PlayerInfo[playerid][pFishingXP] == 0) {
- return 0;
- } else if(1 <= PlayerInfo[playerid][pFishingXP] <= 49) {
- return 1;
- } else if(50 <= PlayerInfo[playerid][pFishingXP] <= 99) {
- return 2;
- } else if(100 <= PlayerInfo[playerid][pFishingXP] <= 149) {
- return 3;
- } else if(150 <= PlayerInfo[playerid][pFishingXP] <= 199) {
- return 4;
- } else if(PlayerInfo[playerid][pFishingXP] >= 200) {
- return 5;
- }
- return 0;
- }
- stock AddFishingItem(playerid, itemid, amount)
- {
- switch(itemid)
- {
- case ITEM_ROD: { PlayerInfo[playerid][pRod] += amount; } // - [DEBUG-VAR]
- case ITEM_FISH: { PlayerInfo[playerid][pFish] += amount; } // - [DEBUG-VAR]
- case ITEM_BAIT: { PlayerInfo[playerid][pBait] += amount; } // - [DEBUG-VAR]
- case ITEM_NET_SMALL: { PlayerInfo[playerid][pSmallNet] += amount; } // - [DEBUG-VAR]
- case ITEM_NET_MED: { PlayerInfo[playerid][pMediumNet] += amount; } // - [DEBUG-VAR]
- case ITEM_NET_LARGE: { PlayerInfo[playerid][pLargeNet] += amount; }// - [DEBUG-VAR]
- }
- }
- stock DelFishingItem(playerid, itemid, amount)
- {
- switch(itemid)
- {
- case ITEM_ROD: { PlayerInfo[playerid][pRod] -= amount; } // - [DEBUG-VAR]
- case ITEM_FISH: { PlayerInfo[playerid][pFish] -= amount; } // - [DEBUG-VAR]
- case ITEM_BAIT: { PlayerInfo[playerid][pBait] -= amount; } // - [DEBUG-VAR]
- case ITEM_NET_SMALL: { PlayerInfo[playerid][pSmallNet] -= amount; } // - [DEBUG-VAR]
- case ITEM_NET_MED: { PlayerInfo[playerid][pMediumNet] -= amount; } // - [DEBUG-VAR]
- case ITEM_NET_LARGE: { PlayerInfo[playerid][pLargeNet] -= amount; }// - [DEBUG-VAR]
- }
- }
- stock HasFishingItem(playerid, itemid)
- {
- new status = 0;
- switch(itemid)
- {
- case ITEM_ROD: { if(PlayerInfo[playerid][pRod] != 0) { status = 1; } } // - [DEBUG-VAR]
- case ITEM_FISH: { if(PlayerInfo[playerid][pFish] != 0) { status = 1; } } // - [DEBUG-VAR]
- case ITEM_BAIT: { if(PlayerInfo[playerid][pBait] != 0) { status = 1; } } // - [DEBUG-VAR]
- case ITEM_NET_SMALL: { if(PlayerInfo[playerid][pSmallNet] != 0) { status = 1; } } // - [DEBUG-VAR]
- case ITEM_NET_MED: { if(PlayerInfo[playerid][pMediumNet] != 0) { status = 1; } } // - [DEBUG-VAR]
- case ITEM_NET_LARGE: { if(PlayerInfo[playerid][pLargeNet] != 0) { status = 1; } } // - [DEBUG-VAR]
- case NET_ANY: { if(PlayerInfo[playerid][pLargeNet] != 0 || PlayerInfo[playerid][pMediumNet] != 0 || PlayerInfo[playerid][pSmallNet] != 0) { status = 1; } }
- }
- return status;
- }
- stock ReturnPrice(itemid)
- {
- switch(itemid)
- {
- case ITEM_ROD: return 0;
- case ITEM_FISH: return 3;
- case ITEM_BAIT: return 0;
- case ITEM_NET_SMALL: return 0;
- case ITEM_NET_MED: return 0;
- case ITEM_NET_LARGE: return 0;
- }
- return 0;
- }
- stock IsPlayerNearFishMarket(playerid)
- {
- if(IsPlayerInRangeOfPoint(playerid, 5.0, 1324.3246, -1794.4163, 13.5469)) { // - [DEBUG-VAR]: Palitan yung location.
- return 1; // - If player is in range.
- } else {
- return 0; // - If player is not in range.
- }
- }
- stock IsPlayerInRangeOfBoatingPoint(playerid)
- {
- if(IsPlayerInRangeOfPoint(playerid, 100.0, 1900.5494, -98.1989, 0.8032)) {
- return 1;
- } else if(IsPlayerInRangeOfPoint(playerid, 100.0, 2020.1951, -183.7714, 1.1351)) {
- return 1;
- } else if(IsPlayerInRangeOfPoint(playerid, 100.0, 2171.5149, -218.6362, 1.0889)) {
- return 1;
- } else if(IsPlayerInRangeOfPoint(playerid, 100.0, 2102.8521, 47.5918, 1.0955)) {
- return 1;
- } else { return 0; }
- }
- stock GetPlayerFishWeight(playerid)
- {
- return PlayerInfo[playerid][pFish]; // - [DEBUG-VAR]
- }
- // - Other Functions. [IF YOU GET ERRORS DUE TO DUPLICATION, YOU CAN REMOVE THESE]
- GetNearbyVehicle(playerid)
- {
- new Float:x, Float:y, Float:z;
- for(new b = 1; b < MAX_PLAYERS; b++)
- {
- if(IsVehicleStreamedIn(b, playerid))
- {
- GetVehiclePos(b, x, y, z);
- if(IsPlayerInRangeOfPoint(playerid, 3.5, x, y, z))
- {
- return b;
- }
- }
- }
- return INVALID_VEHICLE_ID;
- }
- IsInRangeOfFishingPoint(playerid) // - tooken from old script, idk where to put em xd
- {
- if(IsPlayerInRangeOfPoint(playerid,3.0,2101.9160,-104.5780,2.2751)) {
- return 1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement