diff options
Diffstat (limited to 'world/map/npc/052-2/storage.txt')
-rw-r--r-- | world/map/npc/052-2/storage.txt | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/world/map/npc/052-2/storage.txt b/world/map/npc/052-2/storage.txt deleted file mode 100644 index a8582408..00000000 --- a/world/map/npc/052-2/storage.txt +++ /dev/null @@ -1,191 +0,0 @@ -//----------------------------------------------------------------------------- -// Illia Forsaken Inn - Storage -// $@illia_progress = 6 -// -// Level progress: -// 0: Initial state -// 1: Items and/or mobs are spawned -// 2: All spawns are done and the players killed all mobs -//----------------------------------------------------------------------------- - -052-2,23,69,0|script|#TriggerItemsInvoker|32767,1,0 -{ - set @step, 6; - if ($@illia_progress < @step) goto L_ShouldNotBeHere; - if (strcharinfo(0) != $@ILLIA_HERO$) end; - if ($@illia_level_6_progress == 0) goto L_StartItemInvoker; - end; - -L_ShouldNotBeHere: - heal -Hp, 0; - end; - -L_StartItemInvoker: - set $@illia_level_6_progress, 1; - donpcevent "#ItemsInvoker::OnCommandStart"; - end; - -} - -052-2,1,1,0|script|#ItemsInvoker|32767 -{ -end; - -OnInit: - setarray $@illia_storage_items, 541, 567, 568, 562; - setarray $@illia_storage_special_items, 687, 827, 1229; - // Map coords:* x1,y1, x2,y2, ... - setarray $@illia_storage_item_points, 20,67, 22,75, 27,71, 30,73, 34,76, 30,64, 34,65, 34,62, 21,61, 22,64; - end; - -OnCommandStart: - set $@illia_storage_max_items, 20; - set $@illia_storage_deviation, (8 + ($Illia_Luvia_Harvest*70)/100)*3; - initnpctimer; - areatimer 0, "052-2", 19, 60, 35, 78, 10, "#ItemsInvoker::OnStart"; - end; - -OnStart: - message strcharinfo(0), "You feel a strange atmosphere in this room... You sense a strong magic rising from the depth!"; - end; - -OnTimer1000: - if ($@illia_storage_max_items == 0) - goto L_CheckMobs; - set $@item_invoke_index, rand(getarraysize($@illia_storage_item_points)/2); - set $@item_invoke_x, $@illia_storage_item_points[$@item_invoke_index*2]; - set $@item_invoke_y, $@illia_storage_item_points[($@item_invoke_index*2)+1]; - npcwarp $@item_invoke_x, $@item_invoke_y, "#ItemsInvoker"; - // This is a fix to force the official mana client to display a npc after a warp. - // Note: the manaplus client do not need this. - disablenpc "#ItemsInvoker"; - end; - -OnTimer1500: - // See the note above. - enablenpc "#ItemsInvoker"; - areatimer 0, "052-2", 19, 60, 35, 78, 10, "#ItemsInvoker::OnItem"; - misceffect FX_GROUND_SPAWN; - end; - -OnTimer3750: - setnpctimer 0; - set $@item_invoke_x, 0; - set $@item_invoke_y, 0; - set $@item_invoke_index, 0; - end; - -OnItem: - if (strcharinfo(0) == $@ILLIA_HERO$) - goto L_ItemSpawn; - end; - -L_ItemSpawn: - // This section will decide what to spawn: special monster, monster, item, special item - // Calculation uses a decreasing variable which introduces a deviation. - // Its initial value is based on $@Illia_Luvia_Harvest - // * first decide (50% / 50%) if the deviation will be positive or negative - // * Apply the deviation to a random number between 0, 100. (note the final value can be < 0 or > 100) - // The purpose is that, when the initial deviation is high, there are high chances to get either - // a special monster, or a special item. - set @m, rand(100); - if (@m < 50) - set @r, rand(100) - $@illia_storage_deviation; - if (@m >= 50) - set @r, rand(100) + $@illia_storage_deviation; - // Reduce the deviation - set $@illia_storage_deviation, $@illia_storage_deviation*83/100; - if (@r < 5) - goto L_MakeSpecialMonster; - if (@r < 50) - goto L_MakeMonster; - if (@r > 98) - goto L_MakeSpecialItem; - // Normal item - makeitem $@illia_storage_items[rand(getarraysize($@illia_storage_items))], rand(2, 8), "052-2", $@item_invoke_x, $@item_invoke_y; - set $@illia_storage_max_items, $@illia_storage_max_items - 1; - set @r, 0; - end; - -L_MakeSpecialMonster: - monster "052-2", $@item_invoke_x, $@item_invoke_y, "", 1103, 1, "#ItemsInvoker::OnDeath"; - areatimer 0, "052-2", 19, 60, 35, 78, 10, "#ItemsInvoker::OnWtf"; - set $@illia_storage_max_items, $@illia_storage_max_items - 1; - end; - -L_MakeMonster: - monster "052-2", $@item_invoke_x, $@item_invoke_y, "", 1101, rand(1, 3), "#ItemsInvoker::OnDeath"; - set $@illia_storage_max_items, $@illia_storage_max_items - 1; - set @r, 0; - end; - -L_MakeSpecialItem: - makeitem $@illia_storage_special_items[rand(getarraysize($@illia_storage_special_items))], rand(2, 4), "052-2", $@item_invoke_x, $@item_invoke_y; - areatimer 0, "052-2", 19, 60, 35, 78, 10, "#ItemsInvoker::OnWow"; - set $@illia_storage_max_items, $@illia_storage_max_items - 1; - set @r, 0; - end; - -L_CheckMobs: - if ($@illia_progress != 6) - goto L_Clear; - if (mobcount("052-2", "#ItemsInvoker::OnDeath") < 0) - goto L_Stop; - setnpctimer 0; - end; - -L_Clear: - stopnpctimer; - setnpctimer 0; - set $@illia_storage_deviation, 0; - set $@illia_storage_max_items, 0; - killmonster "052-2", "#ItemsInvoker::OnDeath"; - end; - -L_Stop: - stopnpctimer; - setnpctimer 0; - npcwarp 1, 1, "#ItemsInvoker"; - set $@illia_storage_deviation, 0; - set $@illia_storage_max_items, 0; - set $@illia_level_6_progress, 2; - set $@illia_progress, 7; - callfunc "UpdateIlliaProgress"; - set $@illia_max_time, $@illia_max_time + 900; - areatimer 0, "052-2", 19, 60, 35, 78, 10, "#ItemsInvoker::OnStop"; - end; - -OnDeath: - end; - -OnStop: - message strcharinfo(0), "The magic seems to quickly dissipate."; - end; - -OnWtf: - message strcharinfo(0), "Look out!"; - end; - -OnWow: - message strcharinfo(0), "Wow, see what appeared!"; - end; - -} - -052-2,35,68,0|script|#ToPartyRoom|32767,1,1 -{ - set @step, 6; - if ($@illia_progress < @step) goto L_ShouldNotBeHere; - if ($@illia_level_6_progress == 2) goto L_Warp; - message strcharinfo(0), "The strong magic inside this room prevents you from going further."; - end; - -L_Warp: - warp "052-2", 73, 48; - end; - -L_ShouldNotBeHere: - heal -Hp, 0; - end; - -} |