summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/functions/pondfishing.txt307
-rw-r--r--npc/scripts.conf1
2 files changed, 0 insertions, 308 deletions
diff --git a/npc/functions/pondfishing.txt b/npc/functions/pondfishing.txt
deleted file mode 100644
index bfc7773be..000000000
--- a/npc/functions/pondfishing.txt
+++ /dev/null
@@ -1,307 +0,0 @@
-// TMW2 Script
-// TMW2 functions.
-// Authors:
-// gumi
-// omatt
-// Travolta
-// Jesusalva
-// Saulc
-// Description:
-// Pond Fishing functions. DO NOT USE
-// Variable
-// .dir
-// DOWN Never try or pulled too late
-// UP Bait dropped
-// LEFT Fish bite bait
-// player log on .dir is DOWN, start by choose bait menu
-// player chooses bait, script addtimer in npc .dir is UP
-// if player pulls before signal npc, bait is lost, set .bait to DOWN goto choose bait
-// if player pulls after pull delay max, bait is lost, set .bait to DOWN goto choose bait
-// npc signal .dir is LEFT
-// player pulls between npc signal and pulls delay max, got the fish, set .dir to DOWN goto choose bait
-
-/*function script fishing_cleanup {
- .@npc$ = getarg(0, "");
- if (.@npc$ == "") end;
-
- set getvariableofnpc(.char_id, .@npc$), 0; // clean acc id
- set getvariableofnpc(.account_id, .@npc$), 0; // clean char id
- set getvariableofnpc(.last_used, .@npc$), gettimetick(2); // set last used time
- setnpcdir .@npc$, DOWN; // reset direction
- return;
-}*/
-
-- script candor fishing handler 32767,{
- end;
-
-OnBite:
- if (getnpcdir(@fishing_spot$) != UP)
- end;
-
- setnpcdir @fishing_spot$, LEFT;
- @fishing_tick = gettimetick(0);
- specialeffect(getvariableofnpc(.bite_fx, @fishing_spot$), SELF, playerattached());
- end;
-
-OnCleanUp:
- dispbottom l("You waited too long and lost the bait...");
- specialeffect(getvariableofnpc(.failure_fx, @fishing_spot$), SELF, playerattached()); // event fail
-OnPCLogoutEvent:
- fishing_cleanup @fishing_spot$;
- @fishing_spot$ = ""; // unbind fishing npc
- end;
-}
-
-function script pondfishing {
-
-///////////////////////////////////////////
-// Var initialization
-
- .@npc$ = strnpcinfo(0); // the full name of the fishing spot
-
- .@account_id = getvariableofnpc(.account_id, .@npc$); // the account id of the player using the fishing spot
- .@char_id = getvariableofnpc(.char_id, .@npc$); // the char id of the player using the fishing spot
- .@dir = getnpcdir(.@npc$); // direction of the fishing spot
- .@last_used = getvariableofnpc(.last_used, .@npc$); // when this fishing spot was last used
- .@baits = getvariableofnpc(.baits, .@npc$); // bait count
-
- .@rod = getvariableofnpc(.fishing_rod, .@npc$); // the fishing rod required for this spot
- .@rod = (.@rod ? .@rod : FishingRod);
-
- .@regen_time = getvariableofnpc(.cooldown, .@npc$); // cooldown for the fishing spot
- .@regen_time = (.@regen_time ? .@regen_time : 20);
-
- .@success_fx = getvariableofnpc(.success_fx, .@npc$); // effect to show on success
- .@success_fx = (.@success_fx ? .@success_fx : 27);
-
- .@failure_fx = getvariableofnpc(.failure_fx, .@npc$); // effect to show on failure
- if (.@failure_fx < 1)
- {
- .@failure_fx = 28;
- set getvariableofnpc(.failure_fx, .@npc$), .@failure_fx; // needed by global handler
- }
-
- .@initial_fx = getvariableofnpc(.initial_fx, .@npc$); // effect to show when throwing the bait
- .@initial_fx = (.@initial_fx ? .@initial_fx : 29);
-
- .@bite_fx = getvariableofnpc(.bite_fx, .@npc$); // effect to show when something bites
- if (.@bite_fx < 1)
- {
- .@bite_fx = 30;
- set getvariableofnpc(.bite_fx, .@npc$), .@bite_fx; // needed by global handler
- }
-
- .@wait_time_min = getvariableofnpc(.wait_time_min, .@npc$); // min amount of time to wait for the line to sink
- .@wait_time_min = (.@wait_time_min ? .@wait_time_min : 4000);
-
- .@wait_time_max = getvariableofnpc(.wait_time_max, .@npc$); // max amount of time to wait for the line to sink
- .@wait_time_max = (.@wait_time_max ? .@wait_time_max : 18000);
-
- .@catch_time = getvariableofnpc(.catch_time, .@npc$); // the player must catch the fish within X ms after the line sinks
- .@catch_time = (.@catch_time ? .@catch_time : 5000);
-
- .@pull_rand_max = getvariableofnpc(.pull_rand_max, .@npc$);
- .@pull_rand_max = (.@pull_rand_max ? .@pull_rand_max : 800);
-
- .@fish_id = Roach; // failsafe
-
- if (getarraysize(.common_fish) < 1)
- {
- // default fishes
- setarray .common_fish,
- Roach;
- }
-
- if (getarraysize(.rare_fish) < 1)
- {
- // default fishes
- setarray .rare_fish,
- Tench;
- }
-
- .@rare_fish_chance = getvariableofnpc(.rare_fish_chance, .@npc$);
- .@rare_fish_chance = (.@rare_fish_chance ? .@rare_fish_chance : 25);
-
- if (getvariableofnpc(.bait_ids[0], .@npc$) < 1)
- {
- // default baits (bait, chance booster)
- setarray getvariableofnpc(.bait_ids[0], .@npc$),
- SmallTentacles, 2,
- PiouLegs, 0,
- Bread, 0,
- Aquada, 2,
- Tentacles, 2,
- BugLeg, 0;
-
- }
-
- if (.@baits < 1)
- {
- // only count it once
- .@baits = getarraysize(getvariableofnpc(.bait_ids[0], .@npc$));
- set getvariableofnpc(.baits, .@npc$), .@baits;
- }
-
-
-///////////////////////////////////////////
-// Logic below
-
- if (countitem(.@rod) < 1)
- {
- dispbottom l("You don't have any @@.", getitemlink(.@rod));
- return -1;
- }
-
- if (.@account_id > 0 && !isloggedin(.@account_id, .@char_id))
- {
- fishing_cleanup .@npc$; // reset
- .@dir = DOWN;
- }
-
- if (.@char_id != getcharid(CHAR_ID_CHAR) && .@dir != DOWN)
- {
- dispbottom l("This fishing spot is already being used!");
- return -2;
- }
-
-
- // pull too soon
- if (.@dir == UP)
- {
- deltimer "candor fishing handler::OnCleanUp"; // cancel auto cleanup
- deltimer "candor fishing handler::OnBite";
- specialeffect(.@failure_fx, SELF, playerattached()); // event fail
- fishing_cleanup .@npc$; // do it manually instead
- dispbottom l("You pulled too soon and lost the bait.");
- return -3;
- }
-
- // pull maybe on time
- else if (.@dir == LEFT)
- {
- deltimer "candor fishing handler::OnCleanUp"; // cancel auto cleanup
- fishing_cleanup .@npc$; // do it manually instead
-
- getmapxy .@mapbis$, .@xbis, .@ybis, UNITTYPE_PC; // get current char location
-
- // Leave spot, lost the bait
- if (.@mapbis$ != @fishing_loc$[0] || .@xbis != @fishing_loc[0] || .@ybis != @fishing_loc[1] || @fishing_spot$ != .@npc$)
- {
- dispbottom l("You left your fishing spot!");
- return -4;
- }
-
- // RNG to obtain a rare fish or common fish
- if (rand(.@rare_fish_chance) <= getvariableofnpc(.bait_ids[@bait_d+1], .@npc$))
- {
- .@fish_id = .rare_fish[rand(getarraysize(.rare_fish))];
- } else {
- .@fish_id = .common_fish[rand(getarraysize(.common_fish))];
- }
-
- // RNG to obtain a fish
- if (rand(gettimetick(0) - @fishing_tick) <= .@pull_rand_max)
- {
- specialeffect(.@success_fx, SELF, playerattached()); // event success
-
- if(!checkweight(.@fish_id, 1))
- {
- dispbottom l("You caught a @@ but had no room in your inventory to carry it.", getitemlink(.@fish_id));
- makeitem .@fish_id, 1, .@mapbis$, .@xbis, .@ybis; // drop on the ground
- return 0;
- }
-
- //dispbottom l("You caught a @@!", getitemlink(.@fish_id)); <= already shows "you picked up [...]"
- getitem .@fish_id, 1;
- }
- else
- {
- dispbottom l("You pulled too late and lost the bait...");
- specialeffect(.@failure_fx, SELF, playerattached()); // event fail
- .@fish_id = 0;
- }
-
- return .@fish_id;
- }
-
-
-
- if (gettimetick(2) - .@last_used < .@regen_time)
- {
- dispbottom l("This fishing spot has just been used, give it a rest.");
- return -5;
- }
-
-
- // begin fishing
- narrator S_LAST_NEXT,
- l("You see some fish reflecting the sun on the surface of the water."),
- l("What will be the bait for the fish?");
-
- mes "##B" + l("Drag and drop an item from your inventory.") + "##b";
-
- .@bait = requestitem();
- .@bait_c = false;
-
- if (.@bait < 1)
- {
- narrator S_FIRST_BLANK_LINE,
- l("You take your fishing rod and leave.");
-
- return -6;
- }
-
- if (countitem(.@bait) < 1)
- {
- return -6;
- }
-
- for (.@i = 0; .@i < .@baits; .@i += 2)
- {
- if (getvariableofnpc(.bait_ids[.@i], .@npc$) == .@bait)
- {
- .@bait_c = true;
- @bait_d = .@i;
- break;
- }
- }
-
- if (.@bait_c != true)
- {
- narrator S_FIRST_BLANK_LINE,
- l("This item cannot be used as bait here.");
-
- return -6;
- }
-
- if (getvariableofnpc(.char_id, .@npc$) > 0)
- {
- narrator S_FIRST_BLANK_LINE,
- l("Somebody took your place on this spot!"),
- l("You take your fishing rod and leave.");
- return -8;
- }
-
- @fishing_spot$ = .@npc$; // bind player to fishing spot
- set getvariableofnpc(.account_id, .@npc$), getcharid(CHAR_ID_ACCOUNT); // record account id
- set getvariableofnpc(.char_id, .@npc$), getcharid(CHAR_ID_CHAR); // record char id
- set getvariableofnpc(.last_used, .@npc$), gettimetick(2);
- getmapxy(@fishing_loc$[0], @fishing_loc[0], @fishing_loc[1], 0); // record char pos
- delitem .@bait, 1;
-
- // The player uses this spot, his bait is ready, he just has to wait for the signal.
- closedialog;
-
- specialeffect(.@initial_fx, SELF); // throw the bait
- sleep2 800; // wait 0.8s for synchronize the sound of "plop" in water with the npc dir UP.
- setnpcdir .@npc$, UP;
-
- dispbottom l("Wait for the bait to sink underwater.");
-
- .@delay = rand(.@wait_time_min, .@wait_time_max);
-
- addtimer .@delay, "candor fishing handler::OnBite"; // bite logic
- addtimer (.@delay + .@catch_time), "candor fishing handler::OnCleanUp"; // auto clean up
-
- return 0;
-}
diff --git a/npc/scripts.conf b/npc/scripts.conf
index 512fca5f7..ee908344b 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -47,7 +47,6 @@
"npc/functions/confused-tree-dict.txt",
"npc/functions/util.txt",
"npc/functions/soul_menhir.txt",
-"npc/functions/pondfishing.txt",
// quest debug
"npc/functions/quest-debug/functions.txt",