RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Fishing Skill

0 Members and 1 Guest are viewing this topic.

***
Rep:
Level 89
is there any way to make a fishing skill, and get lvls and all of that
Badass, and a do'er not a thinker

******
Resource Maker
Rep:
Level 91
I have made fishing in my game... The way I done it was to make a skill called fishing and let the Spearmen (Lancers) Learn it at Level 10... Then I set up Events All around a pond, or coast line, with a Conditional Branch (If Spearmen in Party, with Skill fishing Then... and Else...) Some events I have set Large fish (30lbs), others small (10lbs), some none then some with a monster battle... (Create the Fish as Items)...

If you want the events to stop you can set another conditional branch to say when Holding Item FISH 10lbs - Show message You caught nothing...

The better fishing spots I set a different limit, so you stop catching fish when you reach a Certain level of Exp, and made different fish appear...

Conditional Branches work well for me, but if you find another way, lets us know....
 


My RMRK Wikki:- http://wiki.rmrk.net/index.php/Landofshadows
Make a Donation for my Resource making:- https://www.paypal.me/landofshadows

*
Resident Cloud
Rep:
Level 91
there is one as a script i cant remember what version your using so if you are using xp then ill find nad post the script

***
Rep:
Level 89
umm,ok landofshadows, wouldnt u just make a text in fishing spot, saying..,,,,you start fishing...........u catch a fish, then add item, u cant usde it in battle the raw fish, so make it wont heal any health, then make a fire event saying, u cook the fish, then u get the cooked fish (conditional branch) , if u dont hav raw fish say, (u do not hav a fish to cook) else, u cook the fish add cooked fish remove 1 item raw fish, use the  cooked fish as a heal item
Badass, and a do'er not a thinker

***
Rep:
Level 89
script, you mean there is a script for a fishing skill that no1 would ever think of!!! :shock:  :shock: , then i must know this site, or resource
Badass, and a do'er not a thinker

*
Resident Cloud
Rep:
Level 91

***
Rep:
Level 89
look, i am not a expert at scripting, acturlly i really suck at scripting and very good at events, but the link u sent me does not work. :cry:  :cry:
Badass, and a do'er not a thinker

*
Resident Cloud
Rep:
Level 91
gah you need a rmxp account anyway ill copy it to the scripts section of the forum and then send you the link

ahh here it is:

Code: [Select]

#-------------------------------#
#        Fishing System         #
#-------------------------------#
# Written By: Prexus            #
# www.prexus.nearfantastica.org #
#-------------------------------#
# Information:
# If you have bait and a fishing rod, you can fish in water. Water is designated
# by a Terrain Tag which is not equal (!=) to 0. The skill level of the water
# is equal to the Terrain Tag's value.
#
# If the Lure is equipped (shield), it adds its evasion to the roll for success.
# The roll for success is as follows:
# Success = Random Number between 0 and Fishing Skill + Lure Bonus
#
# The Fishing level system is inherited from the Actor's base EXP table.
# Every time you successfully fish, you gain 1 EXP towards your fishing level.
# This only occurs if the water level is equal to your level, since you cannot
# fish in waters of higher level than you and waters lower level are too easy.
# Leveling in the fishing opens up more waters to you.
#
# Obviously the benefits of fishing are up to the creator of the game but by
# request I added a "Best Fish" field.
# I figure that a fish sells for about 1 Gold per Pound. Thus, any fish
# in the database weighs half its price. This is what is set to Best Fish and
# is compared when catching new fish.
#
# Instructions:
# Search the text "Animations" and do what is requested there.
#
# The first part you see (RFIT1 = [1,2,3] etc.) is defining the Random Fish/Item Tables.
# This is where you customize what items can be yeilded depending on the level of
# the waters you are trying to fish from (Defined by Terrain Tag in Tileset part
# of database editor.)
#
# The difference between RIT and RFT is that RIT only produces every so often.
#
# This is where you'd put weird things like old boots and stuff or rare items.
#
# Below that is the Bait ID which is set to the ID of the item in the database
# that you are using as Bait. There is only one kind of bait (or only needs to be)
# because Lures change the result of success rate not bait.
#
# Below that is the Element IDs of both the pole and the lures.
# Go to the Database and on the System tab add two new elements, one called Pole
# and one called Lure.
# Lures are shields so make a shield in the database for each type of Lure you
# want. The modifier is held in the shield's evasion.
# If you want the lure to increase the chance by 1, then evasion = 1
#
# The chance to succeed is as follows: Success = Random Number between 0 and Fishing Skill + Lure Bonus
# If Success is greater than or equal to the terrain tag of the water, success.
# Anyhow. FishingLevelNames is an array with the levels of fisherman.
# There are of course 8 levels.
#
# All you need to do now is press D in game and you'll see what you need ^^

#Naming Format: Random Fish Table = RFT, Random Item Table = RIT, followed by level number
# [ ] brackets encorperate the IDs of items you can get for each level and type.
# Random Fish table are just the random tables, Random Item Table results in a
# very rare result (generated by if two random numbers between 0 and 19 are equal)
RFT1 = [1, 2, 3]
RIT1 = [4]
RFT2 = [5, 6, 7]
RIT2 = [8]
RFT3 = [9, 10, 11]
RIT3 = [12]
RFT4 = [13, 14, 15]
RIT4 = [16]
RFT5 = [17, 18, 19]
RIT5 = [20]
RFT6 = [21, 22, 23]
RIT6 = [24]
RFT7 = [25, 26, 27]
RIT7 = [28]
RFT8 = [29, 30, 31]
RIT8 = [32]
# ID of the Bait item, there is only one kind of bait.
BaitID = 33
# Element ID of Fishing Pole. Create a new element id in Database > System and
# give that ID to a weapon under Element Set. That Item now acts as a fishing pole.
PoleElemID = 17
# Element ID of Lures. Same as above.
LureElemID = 18

# Names of advancements in fishing level (they go in order from 1-8)
FishingLevelNames = [
"Junior Fisherman",
"Apprentice Fisherman",
"Average Fisherman",
"Sport Fisherman",
"Famous Fisherman",
"Professional Fisherman",
"Master Fisherman",
"He-Who-Speak-To-Water"]

class Scene_Map
 def main
   @spriteset = Spriteset_Map.new
   @message_window = Window_Message.new
   # Added
   @fishing_window = Window_Fishing.new
   # End Added
   @window_wait_count = 0
   Graphics.transition
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
       break
     end
   end
   Graphics.freeze
   @spriteset.dispose
   @message_window.dispose
   # Added
   @fishing_window.dispose
   # End Added
   if $scene.is_a?(Scene_Title)
     Graphics.transition
     Graphics.freeze
   end
 end
 def update
   loop do
     $game_map.update
     $game_system.map_interpreter.update
     $game_player.update
     $game_system.update
     $game_screen.update
     unless $game_temp.player_transferring
       break
     end
     transfer_player
     if $game_temp.transition_processing
       break
     end
   end
   @spriteset.update
   @message_window.update
   # Added
   @fishing_window.update
   if @window_wait_count > 0
     @window_wait_count -= 1
     if @window_wait_count == 0
       @fishing_window.visible = false
     end
   end
   # End Added
   if $game_temp.gameover
     $scene = Scene_Gameover.new
     return
   end
   if $game_temp.to_title
     $scene = Scene_Title.new
     return
   end
   if $game_temp.transition_processing
     $game_temp.transition_processing = false
     if $game_temp.transition_name == ""
       Graphics.transition(20)
     else
       Graphics.transition(40, "Graphics/Transitions/" +
         $game_temp.transition_name)
     end
   end
   if $game_temp.message_window_showing
     return
   end
   if $game_player.encounter_count == 0 and $game_map.encounter_list != []
     unless $game_system.map_interpreter.running? or
            $game_system.encounter_disabled
       n = rand($game_map.encounter_list.size)
       troop_id = $game_map.encounter_list[n]
       if $data_troops[troop_id] != nil
         $game_temp.battle_calling = true
         $game_temp.battle_troop_id = troop_id
         $game_temp.battle_can_escape = true
         $game_temp.battle_can_lose = false
         $game_temp.battle_proc = nil
       end
     end
   end
   if Input.trigger?(Input::B)
     unless $game_system.map_interpreter.running? or
            $game_system.menu_disabled
       $game_temp.menu_calling = true
       $game_temp.menu_beep = true
     end
   end
   # Added
   if @window_wait_count == 0
     if Input.trigger?(Input::Z)
       call_fishing
     end
   end
   # End Added
   if $DEBUG and Input.press?(Input::F9)
     $game_temp.debug_calling = true
   end
   unless $game_player.moving?
     if $game_temp.battle_calling
       call_battle
     elsif $game_temp.shop_calling
       call_shop
     elsif $game_temp.name_calling
       call_name
     elsif $game_temp.menu_calling
       call_menu
     elsif $game_temp.save_calling
       call_save
     elsif $game_temp.debug_calling
       call_debug
     end
   end
 end
 # Added
 def call_fishing
   # Checks to see if anyone has a Fishing Rod. The first person found with one
   # is used for the system.
   for i in 0..$game_party.actors.size
     if $data_weapons[$game_party.actors[i].weapon_id] != nil
       if $data_weapons[$game_party.actors[i].weapon_id].element_set.include?(PoleElemID)
         actor = $game_party.actors[i]
         break
       end
     end
     if i == 3
       # Displays a message if nobody has pole.
       @fishing_window.catch_name("Nobody has Pole")
       @fishing_window.visible = true
       @window_wait_count = 50
       return
     end
   end
   # Takes direction of player and sets looking area to one block infront
   # animid is the ID of the animation you want to play.
   # "Animations"
   # When you press D, the game sets up an animation based on what direction
   # you are facing. With the script i've included a little water splash
   # animation however its up to you to decide how it looks.
   # The lines "animid = 102" is setting the animation to an animation ID.
   # Just change 102 or whatever is there to the ID of the animation
   # you wish to use. Remember, Animations target the player not the spot
   # infront of him.
   character = $game_player
   case character.direction
   when 2
     lookingx = character.x
     lookingy = character.y + 1
     animid = 102
   when 4
     lookingx = character.x - 1
     lookingy = character.y
     animid = 103
   when 6
     lookingx = character.x + 1
     lookingy = character.y
     animid = 104
   when 8
     lookingx = character.x
     lookingy = character.y - 1
     animid = 101
   end
   # If the terrain tag of the spot isn't 0, it goes ahead with the process
   if $game_map.terrain_tag(lookingx,lookingy) != 0
     # Plays animation on the character
     character.animation_id = animid
     # Plays a soundeffect of water.
     Audio.se_play("Audio/SE/021-Dive01")
   else
     # If it is = to 0 then show message.
     @fishing_window.catch_name("Need Water")
     @fishing_window.visible = true
     @window_wait_count = 20
     return
   end
   # Checks to see if you have more than 0 bait.
   if $game_party.item_number(BaitID) > 0
     # Chance to catch is set to a random number 0 to fishing skill
     catch_chance = rand(actor.fishing_skill + 1)
     # If you have a lure equipped (shield)...
     if $data_armors[actor.armor1_id] != nil
       if $data_armors[actor.armor1_id].guard_element_set.include?(LureElemID)
         # Increase chance by the value of the shield's evasion
         catch_chance += $data_armors[actor.armor1_id].eva
       end
     end
     # If you are the approriate level..
     if actor.fishing_skill >= $game_map.terrain_tag(lookingx, lookingy)
       # If the chance results in true..
       if catch_chance >= $game_map.terrain_tag(lookingx,lookingy)
         # Lose 1 bait
         $game_party.lose_item(BaitID, 1)
         # Check to see what Terrain Tag is equal to.
         # The number of the tag is level you require to use.
         case $game_map.terrain_tag(lookingx, lookingy)
         when 1
           # Setting for random chance to get RARE item
           num1 = rand(20)
           num2 = rand(20)
           if num1 != num2
             # If fail, give an item from Fish Table
             item = $data_items[RFT1[rand(RFT1.size)]]
           else
             # If succeed, give an item from Item Table
             item = $data_items[RIT1[rand(RIT1.size)]]
           end
         when 2
           num1 = rand(20)
           num2 = rand(20)
           if num1 != num2
             item = $data_items[RFT2[rand(RFT2.size)]]
           else
             item = $data_items[RIT2[rand(RIT2.size)]]
           end
         when 3
           num1 = rand(20)
           num2 = rand(20)
           if num1 != num2
             item = $data_items[RFT3[rand(RFT3.size)]]
           else
             item = $data_items[RIT3[rand(RIT3.size)]]
           end
         when 4
           num1 = rand(20)
           num2 = rand(20)
           if num1 != num2
             item = $data_items[RFT4[rand(RFT4.size)]]
           else
             item = $data_items[RIT4[rand(RIT4.size)]]
           end
         when 5
           num1 = rand(20)
           num2 = rand(20)
           if num1 != num2
             item = $data_items[RFT5[rand(RFT5.size)]]
           else
             item = $data_items[RIT5[rand(RIT5.size)]]
           end
         when 6
           num1 = rand(20)
           num2 = rand(20)
           if num1 != num2
             item = $data_items[RFT6[rand(RFT6.size)]]
           else
             item = $data_items[RIT6[rand(RIT6.size)]]
           end
         when 7
           num1 = rand(20)
           num2 = rand(20)
           if num1 != num2
             item = $data_items[RFT7[rand(RFT7.size)]]
           else
             item = $data_items[RIT7[rand(RIT7.size)]]
           end
         when 8
           num1 = rand(20)
           num2 = rand(20)
           if num1 != num2
             item = $data_items[RFT8[rand(RFT8.size)]]
           else
             item = $data_items[RIT8[rand(RIT8.size)]]
           end
         end
         # Adds item to inventory
         $game_party.gain_item(item.id, 1)
         if item.price > $game_party.best_fish
           $game_party.best_fish = item.price
           @fishing_window.catch_name(item.name, true)
         else
           @fishing_window.catch_name(item.name)
         end
         # Displays the name of the item you get
         @fishing_window.visible = true
         @window_wait_count = 50
         # If your skill is equal to or less than the terrain tag you get 1 exp
         if $game_map.terrain_tag(lookingx,lookingy) >= actor.fishing_skill
           actor.fishing_exp += 1
         end
         return
       else
         # Random chance of losing bait.
         num1 = rand(50)
         if num1 > 39
           $game_party.lose_item(BaitID, 1)
           @fishing_window.catch_name("Lost Bait")
           @fishing_window.visible = true
           @window_wait_count = 20
         end
         return
       end
     else
       # If level is too low show message
       @fishing_window.catch_name("Level too low.")
       @fishing_window.visible = true
       @window_wait_count = 20
       return
     end
   end
 else
   # If no bait show message
   @fishing_window.catch_name("No Bait")
   @fishing_window.visible = true
   @window_wait_count = 20
   return
 end
 # End Added
end

class Game_Actor < Game_Battler
 # Added
 attr_accessor :fishing_skill
 attr_accessor :fishing_exp
 # End Added
 def setup(actor_id)
   actor = $data_actors[actor_id]
   @actor_id = actor_id
   @name = actor.name
   @character_name = actor.character_name
   @character_hue = actor.character_hue
   @battler_name = actor.battler_name
   @battler_hue = actor.battler_hue
   @class_id = actor.class_id
   @weapon_id = actor.weapon_id
   @armor1_id = actor.armor1_id
   @armor2_id = actor.armor2_id
   @armor3_id = actor.armor3_id
   @armor4_id = actor.armor4_id
   @level = actor.initial_level
   # Added
   @fishing_skill = 1
   # End Added
   @exp_list = Array.new(101)
   make_exp_list
   @exp = @exp_list[@level]
   # Added
   @fishing_exp = @exp_list[@fishing_skill]
   # End Added
   @skills = []
   @hp = maxhp
   @sp = maxsp
   @states = []
   @states_turn = {}
   @maxhp_plus = 0
   @maxsp_plus = 0
   @str_plus = 0
   @dex_plus = 0
   @agi_plus = 0
   @int_plus = 0
   for i in 1..@level
     for j in $data_classes[@class_id].learnings
       if j.level == i
         learn_skill(j.skill_id)
       end
     end
   end
   update_auto_state(nil, $data_armors[@armor1_id])
   update_auto_state(nil, $data_armors[@armor2_id])
   update_auto_state(nil, $data_armors[@armor3_id])
   update_auto_state(nil, $data_armors[@armor4_id])
 end
 # Added
 def fishing_exp=(fishing_exp)
   @fishing_exp = [[fishing_exp, 9999999].min, 0].max
   # Limits fishing skill to level 8
   while @fishing_skill < 8 and @fishing_exp >= @exp_list[@fishing_skill+1] and @exp_list[@fishing_skill+1] > 0
     @fishing_skill += 1
   end
   while @fishing_exp < @exp_list[@fishing_skill] and @fishing_skill > 0
     @fishing_skill -= 1
   end
 end
 # End Added
end

# Added
class Window_Fishing < Window_Base
 def initialize
   super(0,0,640,64)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.visible = false
   self.x = $game_player.screen_x
   self.y = $game_player.screen_y
   self.opacity = 0
 end
 def catch_name(name, record = false)
   @name = name
   @record = record
   refresh
 end
 def refresh
   if @name != nil
     self.contents.clear
   end
   self.x = $game_player.screen_x - self.width / 2
   self.y = $game_player.screen_y
   if @record == false
     self.contents.font.color = Color.new(0,0,0,255)
     self.contents.draw_text(6, 2, 600, 32, @name.to_s, 1)
     self.contents.draw_text(6, 0, 600, 32, @name.to_s, 1)
     self.contents.draw_text(4, 2, 600, 32, @name.to_s, 1)
     self.contents.draw_text(4, 0, 600, 32, @name.to_s, 1)
     self.contents.font.color = normal_color
     self.contents.draw_text(5, 1, 600, 32, @name.to_s, 1)
   else
     self.contents.font.color = Color.new(0,0,0,255)
     self.contents.draw_text(6, 2, 600, 32, @name.to_s + " New Record!", 1)
     self.contents.draw_text(6, 0, 600, 32, @name.to_s + " New Record!", 1)
     self.contents.draw_text(4, 2, 600, 32, @name.to_s + " New Record!", 1)
     self.contents.draw_text(4, 0, 600, 32, @name.to_s + " New Record!", 1)
     self.contents.font.color = normal_color
     self.contents.draw_text(5, 1, 600, 32, @name.to_s + " New Record!", 1)
   end
 end
 def update
   super
   self.x = $game_player.screen_x - self.width / 2
   self.y = $game_player.screen_y
 end
end
# End Added

class Window_Base
 # Added
 def draw_fish_level(actor, x, y, width = 174)
   self.contents.font.color = system_color
   self.contents.draw_text(x, y, width, 32, FishingLevelNames[actor.fishing_skill - 1].to_s)
 end
 # End Added
end

class Game_Party
 # Added
 attr_accessor :best_fish
 # End Added
 def initialize
   @actors = []
   @gold = 0
   @steps = 0
   # Added
   @best_fish = 0
   # End Added
   @items = {}
   @weapons = {}
   @armors = {}
 end
end

class Window_Status < Window_Base
 def refresh
   self.contents.clear
   draw_actor_graphic(@actor, 40, 112)
   draw_actor_name(@actor, 4, 0)
   draw_actor_class(@actor, 4 + 144, 0)
   draw_actor_level(@actor, 96, 32)
   draw_actor_state(@actor, 96, 64)
   draw_actor_hp(@actor, 96, 112, 172)
   draw_actor_sp(@actor, 96, 144, 172)
   draw_actor_parameter(@actor, 96, 192, 0)
   draw_actor_parameter(@actor, 96, 224, 1)
   draw_actor_parameter(@actor, 96, 256, 2)
   draw_actor_parameter(@actor, 96, 304, 3)
   draw_actor_parameter(@actor, 96, 336, 4)
   draw_actor_parameter(@actor, 96, 368, 5)
   draw_actor_parameter(@actor, 96, 400, 6)
   self.contents.font.color = system_color
   self.contents.draw_text(320, 48, 80, 32, "EXP")
   self.contents.draw_text(320, 80, 80, 32, "NEXT")
   self.contents.font.color = normal_color
   self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2)
   self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2)
   self.contents.font.color = system_color
   self.contents.draw_text(320, 160, 96, 32, "Equipment")
   draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 128)
   draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 160)
   draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 192)
   draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 224)
   draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 256)
   draw_fish_level(@actor, 320, 288)
   self.contents.draw_text(320, 320, 96, 32, "Best Catch")
   self.contents.draw_text(336, 352, 64, 32, ($game_party.best_fish / 2).to_s + "lbs!")
 end
end


youll need this

http://i2.photobucket.com/albums/y41/AuroraDreamsGFX/Water.png

i did not make the above it belongs to prexus

***
Rep:
Level 89
umm.....ok thnx for that, i dont need it anymore srry :O_o:
Badass, and a do'er not a thinker


****
If Ham didn't taste like Ham, I would hope it tasted like turkey
Rep:
Level 88
>:O
This topic is over a year old.  Try searching the Script database.