SRL Archive - MSI Archives

Edgeville fisher


TomTuff

2010-09-26 08:35:56

Here it is :)

Scripts.simba
{==============================================================================\
| MSI Group Scripting Include |
| Scripts.scar |
|==============================================================================|
| For all the routines related to specific scripts |
| |
| * function MSI_LoadScript(): Boolean; * by The MSI Team |
| * procedure MSI_LoadAllScripts; * by Coh3n |
\_____________________________________________________________________________}

{******************************************************************************}
{ function MSI_LoadScript(whichScript: Integer): Boolean; }
{ By: The MSI Team }
{ Date: 17 August 2010 }
{ Description: Loads whichScript information. This should only be called in }
{ MSI_LoadAllScripts }
{******************************************************************************}
function MSI_LoadScript(whichScript: Integer): Boolean;
begin
case whichScript of

{ WOODCUTTERS ================================ ]
[============================================= }
SCRIPT_VE_TREES:
with MSI_Scripts[whichScript] do
begin
Name := 'Varrock East Trees';
Constant := SCRIPT_VE_TREES;
Tools := [TOOL_HATCHET];
SkillName := 'Woodcutting';
SkillConstant := SKILL_WOODCUTTING;
Objects := [TREE_NORMAL];
Items := [[LOGS_NORMAL]];
BankType := Bank;
WhichBank := MSI_BANK_VE;
CompassAng := -1;
AutoObjects := @MSI_ChopInvFull;

with PathInfo do
begin
StartLoc := LOC_VE_BANK;
EndLoc := LOC_VE_TREES;

Reflection := [
Point(3253, 3421), Point(3265, 3428),
Point(3275, 3429), Point(3280, 3439),
Point(3276, 3450)
];

ColorTo := [
WALK_WC_VE_TREE_1, WALK_WC_VE_TREE_2,
WALK_WC_VE_TREE_3, WALK_WC_VE_TREE_4
];

ColorFrom := [
WALK_WC_VE_BANK_1, WALK_WC_VE_BANK_2,
WALK_WC_VE_BANK_3, WALK_WC_VE_BANK_4
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_VE_OAKS:
with MSI_Scripts[whichScript] do
begin
Name := 'Varrock East Oaks';
Constant := SCRIPT_VE_OAKS;
Tools := [TOOL_HATCHET];
SkillName := 'Woodcutting';
SkillConstant := SKILL_WOODCUTTING;
Objects := [TREE_OAK];
Items := [[LOGS_OAK]];
BankType := Bank;
WhichBank := MSI_BANK_VE;
CompassAng := -1;
AutoObjects := @MSI_ChopInvFull;

with PathInfo do
begin
StartLoc := LOC_VE_BANK;
EndLoc := LOC_VE_OAKS;

Reflection := [
Point(3253, 3420), Point(3266, 3429),
Point(3279, 3428)
];

ColorTo := [
WALK_WC_VE_OAKS_1, WALK_WC_VE_OAKS_2
];

ColorFrom := [
WALK_WC_VE_BANK_3, WALK_WC_VE_BANK_4
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_POWER_CHOP:
with MSI_Scripts[whichScript] do
begin
Name := 'Powerchopper';
Constant := SCRIPT_POWER_CHOP;
Tools := [TOOL_HATCHET];
SkillName := 'Woodcutting';
SkillConstant := SKILL_WOODCUTTING;

Objects := [
TREE_NORMAL, TREE_OAK, TREE_WILLOW, TREE_MAPLE,
TREE_YEW, TREE_MAGIC
];

Items := [
[LOGS_NORMAL], [LOGS_OAK], [LOGS_WILLOW],
[LOGS_MAPLE], [LOGS_YEW], [LOGS_MAGIC]
];

BankType := NoBank;
CompassAng := -1;
AutoObjects := @MSI_ChopInvFull;
end;

SCRIPT_GE_YEWS:
with MSI_Scripts[whichScript] do
begin
Name := 'Grand Exchange Yews';
Constant := SCRIPT_GE_YEWS;
Tools := [TOOL_HATCHET];
SkillName := 'Woodcutting';
SkillConstant := SKILL_WOODCUTTING;
Objects := [TREE_YEW];
Items := [[LOGS_YEW]];
BankType := Bank;
WhichBank := MSI_BANK_GE;
CompassAng := -1;
AutoObjects := @MSI_ChopInvFull;

with PathInfo do
begin
StartLoc := LOC_GE_BANK;
EndLoc := LOC_GE_YEWS;

Reflection := [
Point(3169, 3490), Point(3183, 3489),
Point(3193, 3489), Point(3197, 3499),
Point(3208, 3503)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_DB_WILLOWS:
with MSI_Scripts[whichScript] do
begin
Name := 'Draynor Willows';
Constant := SCRIPT_DB_WILLOWS;
Tools := [TOOL_HATCHET];
SkillName := 'Woodcutting';
SkillConstant := SKILL_WOODCUTTING;
Objects := [TREE_WILLOW];
Items := [[LOGS_WILLOW]];
BankType := Bank;
WhichBank := MSI_BANK_DB;
CompassAng := -1;
AutoObjects := @MSI_ChopInvFull;

with PathInfo do
begin
StartLoc := LOC_DB_BANK;
EndLoc := LOC_DB_WILLOWS;

Reflection := [
Point(3092, 3245), Point(3087, 3234)
];

ColorTo := [
WALK_WC_DB_WILLOWS_1
];

ColorFrom := [
WALK_WC_DB_WILLOWS_BANK_1
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_RM_YEWS:
with MSI_Scripts[whichScript] do
begin
Name := 'Rimmington Yews';
Constant := SCRIPT_RM_YEWS;
Tools := [TOOL_HATCHET];
SkillName := 'Woodcutting';
SkillConstant := SKILL_WOODCUTTING;
Objects := [TREE_YEW];
Items := [[LOGS_YEW]];
BankType := Bank;
WhichBank := MSI_BANK_FE;
CompassAng := -1;
AutoObjects := @MSI_ChopInvFull;

with PathInfo do
begin
StartLoc := LOC_FE_BANK;
EndLoc := LOC_RM_YEWS;

Reflection := [
Point(3012, 3354), Point(3007, 3348),
Point(3008, 3334), Point(3008, 3323),
Point(3008, 3309), Point(3008, 3295),
Point(3003, 3285), Point(2991, 3279),
Point(2980, 3272), Point(2975, 3260),
Point(2965, 3252), Point(2956, 3241),
Point(2945, 3232), Point(2937, 3230)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_PS_WILLOWS:
with MSI_Scripts[whichScript] do
begin
Name := 'Port Sarim Willows';
Constant := SCRIPT_PS_WILLOWS;
Tools := [TOOL_HATCHET];
SkillName := 'Woodcutting';
SkillConstant := SKILL_WOODCUTTING;
Objects := [TREE_WILLOW];
Items := [[LOGS_WILLOW]];
BankType := DBox;
WhichBank := DBOX_PS;
CompassAng := -1;
AutoObjects := @MSI_ChopInvFull;

with PathInfo do
begin
StartLoc := LOC_PS_DBOX;
EndLoc := LOC_PS_WILLOWS;

Reflection := [
Point(3047, 3236), Point(3052, 3248),
Point(3060, 3253)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_PS_YEWS:
with MSI_Scripts[whichScript] do
begin
Name := 'Port Sarim Yews';
Constant := SCRIPT_PS_YEWS;
Tools := [TOOL_HATCHET];
SkillName := 'Woodcutting';
SkillConstant := SKILL_WOODCUTTING;
Objects := [TREE_YEW];
Items := [[LOGS_YEW]];
BankType := DBox;
WhichBank := DBOX_PS;
CompassAng := -1;
AutoObjects := @MSI_ChopInvFull;

with PathInfo do
begin
StartLoc := LOC_PS_DBOX;
EndLoc := LOC_PS_YEWS;

Reflection := [
Point(3047, 3263), Point(3041, 3244),
Point(3041, 3256), Point(3048, 3263),
Point(3052, 3270)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_SV_MAGICS:
with MSI_Scripts[whichScript] do
begin
Name := 'Seers Village Magics';
Constant := SCRIPT_SV_MAGICS;
Tools := [TOOL_HATCHET];
SkillName := 'Woodcutting';
SkillConstant := SKILL_WOODCUTTING;
Objects := [TREE_MAGIC];
Items := [[LOGS_MAGIC]];
BankType := Bank;
WhichBank := MSI_BANK_SV;
CompassAng := -1;
AutoObjects := @MSI_ChopInvFull;

with PathInfo do
begin
StartLoc := LOC_SV_BANK;
EndLoc := LOC_SV_MAGICS;

Reflection := [
Point(2726, 3492), Point(2725, 3489),
Point(2722, 3474), Point(2722, 3458),
Point(2720, 3443), Point(2720, 3431),
Point(2720, 3415), Point(2715, 3402),
Point(2702, 3398)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

{ MINERS ===================================== ]
[============================================= }
SCRIPT_POWER_MINER:
with MSI_Scripts[whichScript] do
begin
Name := 'Powerminer';
Constant := SCRIPT_POWER_MINER;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;

Objects := [
ROCK_CLAY, ROCK_COPPER, ROCK_TIN, ROCK_IRON, ROCK_SILVER,
ROCK_COAL, ROCK_GOLD, ROCK_MITHRIL, ROCK_ADAMANTITE
];

Items := [
[ORE_CLAY], [ORE_COPPER], [ORE_TIN], [ORE_IRON],
[ORE_SILVER], [ORE_COAL], [ORE_GOLD], [ORE_MITHRIL],
[ORE_ADAMANTITE]
];

BankType := NoBank;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;
end;

SCRIPT_VE_MINER:
with MSI_Scripts[whichScript] do
begin
Name := 'Varrock East Miner';
Constant := SCRIPT_VE_MINER;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_TIN, ROCK_COPPER, ROCK_IRON];
Items := [[ORE_TIN], [ORE_COPPER], [ORE_IRON]];
BankType := Bank;
WhichBank := MSI_BANK_VE;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_VE_BANK;
EndLoc := LOC_VE_MINE;

Reflection := [
Point(3254, 3421), Point(3265, 3429),
Point(3279, 3429), Point(3288, 3418),
Point(3292, 3406), Point(3292, 3393),
Point(3294, 3381), Point(3288, 3368)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;


SCRIPT_LSW_MINER:
with MSI_Scripts[whichScript] do
begin
Name := 'Lumby Swamp West Miner';
Constant := SCRIPT_LSW_MINER;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_COAL, ROCK_MITHRIL, ROCK_ADAMANTITE];
Items := [[ORE_COAL], [ORE_MITHRIL], [ORE_ADAMANTITE]];
BankType := Bank;
WhichBank := MSI_BANK_DB;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_DB_BANK;
EndLoc := LOC_LSW_MINE;

Reflection := [
Point(3094, 3242), Point(3105, 3246),
Point(3108, 3233), Point(3117, 3219),
Point(3124, 3213), Point(3132, 3207),
Point(3144, 3201), Point(3147, 3191),
Point(3147, 3181), Point(3148, 3170),
Point(3149, 3161), Point(3150, 3153),
Point(3149, 3146)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_VW_MINER:
with MSI_Scripts[whichScript] do
begin
Name := 'Varrock West Miner';
Constant := SCRIPT_VE_MINER;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_TIN, ROCK_CLAY, ROCK_IRON, ROCK_SILVER];
Items := [[ORE_TIN], [ORE_CLAY], [ORE_IRON], [ORE_SILVER]];
BankType := Bank;
WhichBank := MSI_BANK_VW;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_VW_BANK;
EndLoc := LOC_VW_MINE;

Reflection := [
Point(3187, 3437), Point(3183, 3429),
Point(3174, 3427), Point(3171, 3418),
Point(3173, 3408), Point(3170, 3397),
Point(3173, 3387), Point(3174, 3377),
Point(3171, 3367), Point(3176, 3361),
Point(3181, 3367)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_BBV_MINER:
with MSI_Scripts[whichScript] do
begin
Name := 'Barbarian Village Miner';
Constant := SCRIPT_BBV_MINER;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_TIN, ROCK_COAL];
Items := [[ORE_TIN], [ORE_COAL]];
BankType := Bank;
WhichBank := MSI_BANK_EV;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_EV_BANK;
EndLoc := LOC_BBV_MINE;

Reflection := [
Point(3093, 3494), Point(3087, 3492),
Point(3081, 3479), Point(3085, 3464),
Point(3088, 3451), Point(3089, 3436),
Point(3082, 3422)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_RM_CLAY:
with MSI_Scripts[whichScript] do
begin
Name := 'Rimmington Clay Miner';
Constant := SCRIPT_RM_CLAY;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_CLAY];
Items := [[ORE_CLAY]];
BankType := DBox;
WhichBank := DBOX_PS;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_PS_DBOX;
EndLoc := LOC_RM_CLAY;

Reflection := [
Point(3047, 3234), Point(3033, 3234),
Point(3022, 3233), Point(3011, 3230),
Point(3000, 3232), Point(2993, 3230),
Point(2986, 3236)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_RM_TIN:
with MSI_Scripts[whichScript] do
begin
Name := 'Rimmington Tin Miner';
Constant := SCRIPT_RM_TIN;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_TIN];
Items := [[ORE_TIN]];
BankType := DBox;
WhichBank := DBOX_PS;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_PS_DBOX;
EndLoc := LOC_RM_TIN;

Reflection := [
Point(3047, 3234), Point(3033, 3234),
Point(3022, 3233), Point(3011, 3230),
Point(3000, 3232), Point(2993, 3230),
Point(2986, 3236)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_RM_COPPER:
with MSI_Scripts[whichScript] do
begin
Name := 'Rimmington Copper Miner';
Constant := SCRIPT_RM_COPPER;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_COPPER];
Items := [[ORE_COPPER]];
BankType := DBox;
WhichBank := DBOX_PS;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_PS_DBOX;
EndLoc := LOC_RM_COPPER;

Reflection := [
Point(3046, 3234), Point(3033, 3234),
Point(3020, 3230), Point(3007, 3231),
Point(2997, 3230), Point(2986, 3231),
Point(2981, 3241), Point(2979, 3245)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_RM_IRON_1:
with MSI_Scripts[whichScript] do
begin
Name := 'Rimmington Iron Miner 1';
Constant := SCRIPT_RM_IRON_1;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_IRON];
Items := [[ORE_IRON]];
BankType := DBox;
WhichBank := DBOX_PS;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_PS_DBOX;
EndLoc := LOC_RM_IRON_1;

Reflection := [
Point(3047, 3234), Point(3033, 3234),
Point(3021, 3233), Point(3008, 3231),
Point(2996, 3231), Point(2983, 3233)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_RM_IRON_2:
with MSI_Scripts[whichScript] do
begin
Name := 'Rimmington Iron Miner 2';
Constant := SCRIPT_RM_IRON_2;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_IRON];
Items := [[ORE_IRON]];
BankType := DBox;
WhichBank := DBOX_PS;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_PS_DBOX;
EndLoc := LOC_RM_IRON_2;

Reflection := [
Point(3047, 3234), Point(3033, 3234),
Point(3021, 3233), Point(3008, 3231),
Point(2996, 3231), Point(2983, 3230),
Point(2974, 3235), Point(2971, 3239)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_RM_GOLD:
with MSI_Scripts[whichScript] do
begin
Name := 'Rimmington Gold Miner';
Constant := SCRIPT_RM_GOLD;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_GOLD];
Items := [[ORE_GOLD]];
BankType := DBox;
WhichBank := DBOX_PS;
CompassAng := -1;
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_PS_DBOX;
EndLoc := LOC_RM_GOLD;

Reflection := [
Point(3047, 3234), Point(3033, 3234),
Point(3021, 3233), Point(3008, 3231),
Point(2996, 3231), Point(2983, 3230),
Point(2977, 3233)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_AK_IRON:
with MSI_Scripts[whichScript] do
begin
Name := 'Al Kharid iron miner';
Constant := SCRIPT_AK_MIRON;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_COPPER, ROCK_IRON;
Items := [[ROCK_COPPER], [ROCK_IRON]];
BankType := Bank;
WhichBank := MSI_BANK_AK;
CompassAng := 'n';
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_AK_BANK;
EndLoc := LOC_AK_IRON;

Reflection := [
Point(3269, 3164), Point(3277, 3178), Point(3282, 3193),
Point(3285, 3210), Point(3279, 3226), Point(3287, 3241),
Point(3294, 3255), Point(3296, 3273), Point(3297, 3287),
Point(3294, 3300), Point(3298, 3311)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_AK_MITHRIL:
with MSI_Scripts[whichScript] do
begin
Name := 'Al Kharid mithril miner';
Constant := SCRIPT_AK_MINER;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_IRON, ROCK_MITHRIL];
Items := [[ROCK_IRON], [[ROCK_MITHRIL]];
BankType := Bank;
WhichBank := MSI_BANK_AK;
CompassAng := 'n';
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_AK_BANK;
EndLoc := LOC_AK_MITHRIL;

Reflection := [
Point(3269, 3164), Point(3277, 3178), Point(3282, 3193),
Point(3285, 3210), Point(3279, 3226), Point(3287, 3241),
Point(3294, 3255), Point(3296, 3273), Point(3297, 3287),
Point(3294, 3300), Point(3302, 3311)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_AK_SILVER:
with MSI_Scripts[whichScript] do
begin
Name := 'Al Kharid silver miner';
Constant := SCRIPT_AK_SILVER;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_SILVER];
Items := [[ROCK_SILVER]];
BankType := Bank;
WhichBank := MSI_BANK_AK;
CompassAng := 'n';
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_AK_BANK;
EndLoc := LOC_AK_SILVER;

Reflection := [
Point(3269, 3164), Point(3277, 3178), Point(3282, 3193),
Point(3285, 3210), Point(3279, 3226), Point(3287, 3241),
Point(3294, 3255), Point(3296, 3273), Point(3297, 3287),
Point(3294, 3300)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_AK_COAL:
with MSI_Scripts[whichScript] do
begin
Name := 'Al Kharid coal miner';
Constant := SCRIPT_AK_COAL;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_IRON, ROCK_COAL];
Items := [[ROCK_IRON], [ROCK_COAL]];
BankType := Bank;
WhichBank := MSI_BANK_AK;
CompassAng := 'n';
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_AK_BANK;
EndLoc := LOC_AK_COAL;

Reflection := [
Point(3269, 3164), Point(3277, 3178), Point(3282, 3193),
Point(3285, 3210), Point(3279, 3226), Point(3287, 3241),
Point(3294, 3255), Point(3296, 3273), Point(3297, 3287),
Point(3300, 3300)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_AK_GOLD:
with MSI_Scripts[whichScript] do
begin
Name := 'Al Kharid miner';
Constant := SCRIPT_AK_MINER;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_IRON, ROCK_GOLD];
Items := [[ROCK_IRON], [ROCK_GOLD]];
BankType := Bank;
WhichBank := MSI_BANK_AK;
CompassAng := 'n';
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_AK_BANK;
EndLoc := LOC_AK_GOLD;

Reflection := [
Point(3269, 3164), Point(3277, 3178), Point(3282, 3193),
Point(3285, 3210), Point(3279, 3226), Point(3287, 3241),
Point(3294, 3255), Point(3296, 3273), Point(3297, 3287)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_AK_ADAMANT:
with MSI_Scripts[whichScript] do
begin
Name := 'Al Kharid miner';
Constant := SCRIPT_AK_ADAMANT;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_TIN, ROCK_COPPER, ROCK_ADAMANTITE];
Items := [[ROCK_TIN], [ROCK_COPPER], [ROCK_ADAMANTITE]];
BankType := Bank;
WhichBank := MSI_BANK_AK;
CompassAng := 'n';
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_AK_BANK;
EndLoc := LOC_AK_ADAMANT;

Reflection := [
Point(3269, 3164), Point(3277, 3178), Point(3282, 3193),
Point(3285, 3210), Point(3279, 3226), Point(3287, 3241),
Point(3294, 3255), Point(3296, 3273), Point(3297, 3287),
Point(3294, 3300), Point(3300, 3316)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_AK_COP_TIN:
with MSI_Scripts[whichScript] do
begin
Name := 'Al Kharid miner';
Constant := SCRIPT_AK_COP_TIN;
Tools := [TOOL_PICKAXE];
SkillName := 'Mining';
SkillConstant := SKILL_MINING;
Objects := [ROCK_TIN, ROCK_COPPER, ROCK_IRON, ROCK_SILVER, ROCK_GOLD, ROCK_COAL, ROCK_MITHRIL, ROCK_ADAMANTITE];
Items := [[ROCK_TIN], [ROCK_COPPER], [ROCK_IRON], [ROCK_SILVER], [ROCK_GOLD], [ROCK_COAL], [ROCK_MITHRIL], [ROCK_ADAMANTITE]];
BankType := Bank;
WhichBank := MSI_BANK_AK;
CompassAng := 'n';
AutoObjects := @MSI_MineInvFull;

with PathInfo do
begin
StartLoc := LOC_AK_BANK;
EndLoc := LOC_AK_COP_TIN;

Reflection := [
Point(3269, 3164), Point(3277, 3178), Point(3282, 3193),
Point(3285, 3210), Point(3279, 3226), Point(3287, 3241),
Point(3294, 3255), Point(3296, 3273), Point(3297, 3287),
Point(3294, 3300), Point(3297, 3314)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;


{ FISHERS ==================================== ]
[============================================= }
SCRIPT_POWER_FISHER:
with MSI_Scripts[whichScript] do
begin
Name := 'Powerfisher';
Constant := SCRIPT_POWER_FISHER;
Tools := [TOOL_FISH];
SkillName := 'Fishing';
SkillConstant := SKILL_FISHING;

Objects := [
FISHSPOT_NET, FISHSPOT_BAIT, FISHSPOT_LURE,
FISHSPOT_CAGE, FISHSPOT_HARPOON
];

Items := [
[FISH_RAW_SHRIMP, FISH_RAW_ANCHOVIE],
[FISH_RAW_SARDINE, FISH_RAW_HERRING, FISH_RAW_PIKE],
[FISH_RAW_TROUT, FISH_RAW_SALMON], [FISH_RAW_LOBSTER],
[FISH_RAW_TUNA, FISH_RAW_SWORDFISH]
];

BankType := NoBank;
CompassAng := -1;
AutoObjects := @MSI_FishInvFull;
end;

SCRIPT_DB_FISHER:
with MSI_Scripts[whichScript] do
begin
Name := 'Draynor Village Fisher';
Constant := SCRIPT_DB_FISHER;
Tools := [TOOL_FISH];
SkillName := 'Fishing';
SkillConstant := SKILL_FISHING;

Objects := [
FISHSPOT_NET, FISHSPOT_BAIT
];

Items := [
[FISH_RAW_SHRIMP, FISH_RAW_ANCHOVIE],
[FISH_RAW_SARDINE, FISH_RAW_HERRING, FISH_RAW_PIKE]
];

BankType := Bank;
WhichBank := MSI_BANK_DB;
CompassAng := 'N';
AutoObjects := @MSI_FishInvFull;

with PathInfo do
begin
StartLoc := LOC_DB_BANK;
EndLoc := LOC_DB_FISH;

Reflection := [
Point(3093, 3242), Point(3087, 3234),
Point(3087, 3228)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

SCRIPT_EV_FLY:
with MSI_Scripts[whichScript] do
begin
Name := 'Edgeville fly fisher';
Constant := SCRIPT_EV_FLY;
Tools := [TOOL_FISH];
SkillName := 'Fishing';
SkillConstant := SKILL_FISHING;
Objects := [FISHSPOT_LURE];
Items := [[FISH_RAW_TROUT, FISH_RAW_SALMON]]
BankType := Bank;
WhichBank := MSI_BANK_EV;
CompassAng := 'N';
AutoObjects := @MSI_FishInvFull;

with PathInfo do
begin
StartLoc := LOC_EV_BANK;
EndLoc := LOC_BBV_FISH;

Reflection := [
Point(3094, 3489), Point(3098, 3472), Point(3097, 3454),
Point(3096, 3437), Point(3104, 3430)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

{ COOKERS ==================================== ]
[============================================= }
SCRIPT_VE_COOKER:
with MSI_Scripts[whichScript] do
begin
Name := 'Varrock East Cooker';
Constant := SCRIPT_VE_COOKER;
Tools := [];
SkillName := 'Cooker';
SkillConstant := SKILL_COOKING;

Objects := [COOKSPOT_RANGE];

Items := [
[MSI_LoadFoodRange]
];

BankType := Bank;
WhichBank := MSI_BANK_VE;
CompassAng := 'S';
AutoObjects := @MSI_CookFullInv;

with PathInfo do
begin
StartLoc := LOC_VE_BANK;
EndLoc := LOC_VE_MINE;

Reflection := [
Point(0, 0)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;
end;

Result := (MSI_Scripts[whichScript].Name <> '');
end;

{******************************************************************************}
{ procedure MSI_LoadAllScripts; }
{ By: Coh3n }
{ Date: 28 July 2010 }
{ Description: Loads all the scripts into MSI_Scripts array; should only be }
{ called once in SetupMSI }
{******************************************************************************}
procedure MSI_LoadAllScripts;
var
i: Integer;
begin
for i := 0 to High(MSI_Scripts) do
MSI_LoadScript(i);
end;

Globals.simba
{==============================================================================\
| MSI Group Scripting Include |
| Globals.scar |
|==============================================================================|
| Used to store all necessary global types, consts and vars |
| |
\_____________________________________________________________________________}

(**
* Abbreviations:
* - FS: Fishing Spot
* - GS: General Store
* - GE: Grand Exchange
* - VE: Varrock East
* - VW: Varrock West
* - FW: Falador West
* - FE: Falador East
* - CG: Castle Guards
* - DW: Dark Wizards
* - SO: Stronghold Of *
* - AK: Al Kharid
* - SW: Spinning Wheel
* - LB: Lumby
* - EV: EdgeVille
* - BV: Barbarian Village
* - DB: Draynor Bank
* - RM: Rimmington
* - PS: Port Sarim
* - SV: Seers Village
*)

{==============================================================================\
| Constants |
\==============================================================================}

(**
* All of MSI's suppoted script constants; used in player setup
*)
const
// Woodcutting
SCRIPT_POWER_CHOP = 10;
SCRIPT_VE_TREES = 11;
SCRIPT_VE_OAKS = 12;
SCRIPT_GE_YEWS = 13;
SCRIPT_DB_WILLOWS = 14;
SCRIPT_RM_YEWS = 15;
SCRIPT_PS_WILLOWS = 16;
SCRIPT_PS_YEWS = 17;
SCRIPT_SV_MAGICS = 18;

// Mining
SCRIPT_POWER_MINER = 30;
SCRIPT_VE_MINER = 31;
SCRIPT_VW_MINER = 32;
SCRIPT_LSW_MINER = 33;
SCRIPT_BBV_MINER = 34;
SCRIPT_RM_CLAY = 35;
SCRIPT_RM_TIN = 36;
SCRIPT_RM_COPPER = 37;
SCRIPT_RM_IRON_1 = 38;
SCRIPT_RM_IRON_2 = 39;
SCRIPT_RM_GOLD = 40;
SCRIPT_AK_GOLD = 41;
SCRIPT_AK_SILVER = 42;
SCRIPT_AK_COAL = 43;
SCRIPT_AK_IRON = 44;
SCRIPT_AK_MITHRIL = 45;
SCRIPT_AK_COP_TIN = 46;
SCRIPT_AK_ADAMANT = 47;

// Fishing
SCRIPT_POWER_FISHER = 50;
SCRIPT_DB_FISHER = 51;
SCRIPT_EV_FLY = 52;

// Cooking
SCRIPT_VE_COOKER = 70;

SCRIPT_ARRAY_LENGTH = 70; // Change to the highest script constant

(**
* The constants that don't fit into any other category
*)
const
ANTI_BAN_CHANCE = 10; // The chance (in %) of performing antiban
BANK_SYMBOL_ACCURACY = 0.45; // The symbol accuracy of the bank
TOLERANCE_FLAG = 15; // The amount of pixels from the flag to player

PATH_PLAYER = IncludePath + 'MSI\Player.txt'; // Path for the player remote file
PATH_REPORT = IncludePath + 'MSI\MSI Progress Reports\'; // Path for progress report
PATH_DEBUG = IncludePath + 'MSI\MSI Logs\'; // Path for debug

(**
* Represents the stats system's custom variable array indexes
*)
const
STATS_LINK = 'http://scriptmanager.freehostia.com/submit.php';
STATS_LOGINS = 1;
STATS_BANKS = 2;
STATS_LOADS = 3;
STATS_RANDOMS = 4;
STATS_LEVELS = 5;
STATS_EXP = 6;
STATS_LOGS = 7;
STATS_ORES = 8;
STATS_FISH = 9;

(**
* Represents all the possible player locations; used for the indexes in
* the MSI_Location global array
*)
const
// Undefined
LOC_POWER_SKILL = 0;
LOC_LOST = 1;

// Varrock
// East
LOC_VE_TREES = 10;
LOC_VE_OAKS = 11;
LOC_VE_BANK = 12;
LOC_VE_MINE = 13;
LOC_VE_RANGE = 14;

// West
LOC_VW_BANK = 15;
LOC_VW_MINE = 16;

// Grand Exchange
LOC_GE_BANK = 20;
LOC_GE_YEWS = 21;

// Draynor
LOC_DB_BANK = 30;
LOC_DB_WILLOWS = 31;
LOC_DB_FISH = 32;

// Rimmington
LOC_RM_YEWS = 40;
LOC_RM_CLAY = 41;
LOC_RM_TIN = 42;
LOC_RM_COPPER = 43;
LOC_RM_IRON_1 = 44;
LOC_RM_IRON_2 = 45;
LOC_RM_GOLD = 46;

// Falador
LOC_FE_BANK = 50;

// Port Sarim
LOC_PS_WILLOWS = 60;
LOC_PS_YEWS = 61;
LOC_PS_DBOX = 62;

// Lumbridge
LOC_LSW_MINE = 70;
LOC_LSE_MINE = 71;

// Edgeville
LOC_EV_BANK = 80;

// Barbarian Village
LOC_BBV_MINE = 90;
LOC_BBV_FISH = 91;

// Seers Village
LOC_SV_MAGICS = 100;
LOC_SV_BANK = 101;

// Al Kharid
LOC_AK_BANK = 110;
LOC_AK_GOLD = 111;
LOC_AK_SILVER = 112;
LOC_AK_COAL = 113;
LOC_AK_IRON = 114;
LOC_AK_MITHRIL = 115;
LOC_AK_COP_TIN = 116;
LOC_AK_ADAMANT = 117;

LOC_ARRAY_LENGTH = 117; // Change to the highest location constant

(**
* Color constants used in MSI's custom autocoloring functions
*)
const
COLOR_ROAD_GENERAL = 6579821;
COLOR_ROAD_VARROCK = 8686729;
COLOR_ROAD_FALLY = 7831173;
COLOR_ROAD_LUMBY = 8225677;
COLOR_ROAD_DIRT = 1853272;
COLOR_BANKER = 1179390;
COLOR_WATER = 10850700;
COLOR_ROCK = 5789528;
COLOR_TREE = 1532978;
COLOR_SAND = 0;

(**
* The different color walking points; used similar to reflection paths where
* instead of a TPointArray (or TTileArray), it's a TIntegerArray
*)
const
WALK_WC_VE_TREE_1 = 0;
WALK_WC_VE_TREE_2 = 1;
WALK_WC_VE_TREE_3 = 2;
WALK_WC_VE_TREE_4 = 3;

WALK_WC_VE_OAKS_1 = 4;
WALK_WC_VE_OAKS_2 = 5;

WALK_WC_VE_BANK_1 = 6;
WALK_WC_VE_BANK_2 = 7;
WALK_WC_VE_BANK_3 = 8;
WALK_WC_VE_BANK_4 = 9;

WALK_WC_DB_WILLOWS_1 = 10;
WALK_WC_DB_WILLOWS_BANK_1 = 11;

(**
* All the different indexes for MSI_WalkInfo global variable; each index is
* used in MSI_WalkTPA by 3Garrett3 in Walking_Color.simba
*)
const
WALK_VE_MINE_1 = 10;
WALK_VE_MINE_2 = 11;

WALK_ARRAY_LENGTH = 11; // Change to the highest walk constant

(**
* Constants used for MSI_WalkTPA for splitting and sorting methods
*)
const
SPLIT_TPA_TO_ATPA = 0;
SPLIT_TPA_TO_ATPA_EX = 1;
SPLIT_SPLIT_TPA = 2;
SPLIT_SPLIT_TPA_EX = 3;

SORT_ATPA_FROM = 0;
SORT_FIRST_LARGE = 1;
SORT_FIRST_SMALL = 2;

(**
* All the different color minimap areas used for relocating
*)
const
AREA_GE_YEWS_1 = 10;
AREA_GE_YEWS_2 = 11;

AREA_RM_YEWS_1 = 20;
AREA_RM_YEWS_2 = 21;

AREA_ARRAY_LENGTH = 21; // Change to the highest area constant

(**
* Constants used for (D)DTMs in ItemInfo.scar; each point constant corresponds
* to the TPointArray returned in MSI_GetDTMPoints();
*)
const
DTM_TOLERANCE = 15;
DTM_POINT_1 = 0;
DTM_POINT_2 = 1;
DTM_POINT_3 = 2;
DTM_POINT_4 = 3;
DTM_POINT_5 = 4;

(**
* Represents the different types of tools; used in the scriptTools attribute
* in the TScript type
*)
const
TOOL_HATCHET = 0;
TOOL_PICKAXE = 1;
TOOL_FISH = 2;

(**
* Represents the required level to use the different tools
*)
const
// Hatchets and pickaxes
REQ_BRONZE = 1;
REQ_IRON = 1;
REQ_STEEL = 6;
REQ_MITHRIL = 21;
REQ_ADAMANT = 31;
REQ_RUNE = 41;
REQ_DRAGON = 61;

REQ_MAX_LEVEL = 99;

(**
* All the different items used throughout the MSI scripts
*)
const
PICKAXE_BRONZE = 10;
PICKAXE_IRON = 11;
PICKAXE_STEEL = 12;
PICKAXE_MITHRIL = 13;
PICKAXE_ADAMANT = 14;
PICKAXE_RUNE = 15;

HATCHET_BRONZE = 20;
HATCHET_IRON = 21;
HATCHET_STEEL = 22;
HATCHET_MITHRIL = 23;
HATCHET_ADAMANT = 24;
HATCHET_RUNE = 25;
HATCHET_DRAGON = 26;

LOGS_NORMAL = 30;
LOGS_OAK = 31;
LOGS_WILLOW = 32;
LOGS_MAPLE = 33;
LOGS_YEW = 34;
LOGS_MAGIC = 35;

ORE_CLAY = 40;
ORE_COPPER = 41;
ORE_TIN = 42;
ORE_IRON = 43;
ORE_SILVER = 44;
ORE_COAL = 45;
ORE_GOLD = 46;
ORE_MITHRIL = 47;
ORE_ADAMANTITE = 48;
ORE_RUNITE = 49;

FISH_SMALLNET = 60;
FISH_CRAYPOT = 61;
FISH_ROD = 62;
FISH_BAIT = 63;
FISH_FLY = 64;
FISH_FEATHER = 65;
FISH_HARPOON = 66;
FISH_CAGE = 67;

FISH_RAW_SHRIMP = 70;
FISH_RAW_CRAYFISH = 71;
FISH_RAW_SARDINE = 72;
FISH_RAW_HERRING = 73;
FISH_RAW_ANCHOVIE = 74;
FISH_RAW_TROUT = 75;
FISH_RAW_PIKE = 76;
FISH_RAW_SALMON = 77;
FISH_RAW_TUNA = 78;
FISH_RAW_LOBSTER = 79;
FISH_RAW_SWORDFISH = 80;

FISH_COOKED_SHRIMP = 100;
FISH_COOKED_CRAYFISH = 101;
FISH_COOKED_SARDINE = 102;
FISH_COOKED_HERRING = 103;
FISH_COOKED_ANCHOVIE = 104;
FISH_COOKED_TROUT = 105;
FISH_COOKED_PIKE = 106;
FISH_COOKED_SALMON = 107;
FISH_COOKED_TUNA = 108;
FISH_COOKED_LOBSTER = 109;
FISH_COOKED_SWORDFISH = 110;

GEM_SAPPHIRE = 120;
GEM_EMERALD = 121;
GEM_RUBY = 122;
GEM_DIAMOND = 123;

MISC_BIRD_NEST = 130;

ITEM_ARRAY_LENGTH = 130; // Change to the highest item constant

(**
* All the different objects used throughout the MSI scripts
*)
const
TREE_NORMAL = 10;
TREE_OAK = 11;
TREE_WILLOW = 12;
TREE_MAPLE = 13;
TREE_YEW = 14;
TREE_MAGIC = 15;

ROCK_CLAY = 20;
ROCK_TIN = 21;
ROCK_COPPER = 22;
ROCK_IRON = 23;
ROCK_SILVER = 24;
ROCK_COAL = 25;
ROCK_GOLD = 26;
ROCK_MITHRIL = 27;
ROCK_ADAMANTITE = 28;
ROCK_RUNITE = 29;

MSI_BANK_VE = 30; // Includes the 'MSI_' because there are bank constants in SRL's Bank.scar
MSI_BANK_VW = 31;
MSI_BANK_DB = 32;
MSI_BANK_GE = 33;
MSI_BANK_FE = 34;
MSI_BANK_EV = 35;
MSI_BANK_SV = 36;
MSI_BANK_AK = 37;

DBOX_PS = 40;

FISHSPOT_NET = 50;
FISHSPOT_BAIT = 51;
FISHSPOT_LURE = 52;
FISHSPOT_CAGE = 53;
FISHSPOT_HARPOON = 54;

COOKSPOT_FIRE = 60;
COOKSPOT_RANGE = 61;

OBJ_BIRD_NEST = 70;
BIRD_NEST_CBMESSAGE = 'nest falls out of';

OBJ_ARRAY_LENGTH = 70; // Change to the highest object constant

(**
* Used in MSI_AddToProggy in Debug.scar to determine what to add to the
* progress report
*)
const
PROG_ADD_EXP = 0;
PROG_ADD_ITEMS = 1;
PROG_ADD_LOADS = 2;

(**
* Used for any array indexes in DeclarePlayers
*)
const
L_COUNT = 2;

L_BREAK = 0;
L_TOTAL = 1;

{==============================================================================\
| Types |
\==============================================================================}

(**
* The type that holds all the attributes of any main screen objects used
* throughout MSI scripts
*)
type
TMSObject = record
X, Y : Integer;
Name : string;
UpText : string;
Option : string;
Exp : Extended;
Colors : TIntegerArray;
FindAllColors : Boolean; // Result False if not ALL colors are found
Tol : Integer;
Hue : Extended;
Sat : Extended;
W, H : Integer;
Accuracy : Integer; // Min pixels to be found
ExcludeSelf : Boolean; // Exclude pixels in a box, the box might need revamping / making it dynamic
RightClickOnly : Boolean;
Tries : Integer;
Anim : Boolean; // Result False if not animating
WaitToMove : Boolean; // When ClickLeft, wait till we have stopped moving?
BadColors : TIntegerArray;
BadColorTolerance: Integer;
AssociatedItems : TVariantArray;
end;

TMSObjectArray = array of TMSObject;

(**
* Stores all the attributes of each item used in MSI scripts
*)
type
TItem = record
Name : string;
UpText : TStringArray;
ItemP : TPoint;
Stackable: Boolean;
Colors : TIntegerArray;
Tol : Integer;
DTM : Integer;
end;

TItemArray = array of TItem;

(**
* Used in the banking functions to determine the type of bank
*)
type
TBank = (Bank, DBox, NoBank);

(**
* Stores all the different path information. Used in the TScript type
*)
type
TPath = record
StartLoc : Integer;
EndLoc : Integer;
Reflection : TPointArray;
ColorTo : TIntegerArray;
ColorFrom : TIntegerArray;
ObstaclePoints: TPointArray;
Obstacles : TIntegerArray;
DoObstacles : array of function(Obstacle: Integer): Boolean;
end;

(**
* Stores all the necessary script information for ease of adding new scripts
*)
type
TScript = record
// All relative script information
Name : string;
Constant : Integer;
Runtime : Integer;
Tools : TIntegerArray; // The required tools for the script
SkillName : string;
SkillConstant: Integer; // The skill constants are in Players.scar (SRL)
Objects : TVariantArray; // The default objects to be autoed;
Items : array of TVariantArray;
BankType : TBank;
WhichBank : Integer;
CompassAng : Variant; // Ideal compass angle to auto at (-1 to leave as is)
AutoObjects : function: Boolean;
PathInfo : TPath;

// Used for progress reports; keeps track of player information
PlayerSkillLevel : Integer;
PlayerGainedExp : Integer;
PlayerLoads : Integer;
PlayerItemAmounts: array of TIntegerArray;
end;

TScriptArray = array of TScript;

(**
* Stores the necessary information for a player's progress report
*)
type
TProggy = record
PlayerName : string;
PlayerStatus: Boolean;
FalseReason : string;
PlayerLoc : Integer;
PlayerTime : Integer;
LoadsDone : Integer;
ScriptInfo : TScriptArray;
end;

TProggyArray = array of TProggy;

(**
* MSI's custom player record; used to setup each player. TUser can be found in
* SRL (Players.scar)
*)
type
TPlayerInfo = record
Name : string;
Pass : string;
Nick : string;
Pin : string;
Active : Boolean;
Member : Boolean;
Location : Integer;
Scripts : TIntegerArray;
Objects : array of TVariantArray;
Priority : array of TVariantArray;
DontDrop : TIntegerArray;
Loads : array[0..(L_COUNT - 1)] of Integer;
Items : array of array of TVariantArray;
ItemNames : array of array of TStringArray;
Experiences: array of array of TExtendedArray;
end;

TPlayerInfoArray = array of TPlayerInfo;

(**
* A record that stores all the properties of the different MSI player
* locations. Used in the MSI relocater
*)
type
TLocation = record
Name : string;
Constant : Integer;
AtBank : Boolean;
RelocatePoints: TPointArray; // Reflection tiles
RelocateAreas : TIntegerArray; // Area constants
RelocateDist : Integer; // Min distance (in pixels) for the player to be from the relocation point
RelocateTime : Integer; // Time (in ms) to wait before relocating
end;

(**
* A record that stores all the color properties for relocating to certain
* locations. Used in the MSI relocater
*)
type
TMMColorArea = record
Name : string;
Symbol : string;
DTM : Integer;
W, H : Integer;
Colors : TIntegerArray;
Tolerances : TIntegerArray;
Counts : TIntegerArray;
Bounds : TBox;
end;

TMMColorAreaArray = array of TMMColorArea;

(**
* A record that stores all the color properties for individual points for
* walking paths
*)
type
TWalkInfo = record
Name : string;
Color : Integer;
Tolerance : Integer;
SplitMethod : Integer; // See the split method constants
SortMethod : Integer; // See the sort method constants
Filter : Boolean; // Use FilterPointsPie?
CTS2 : Boolean; // Use ColorToleranceSpeed 2?
HueMod : Extended;
SatMod : Extended;
StartRadial : Integer;
EndRadial : Integer;
MinRadius : Integer;
MaxRadius : Integer;
SortPoint : TPoint; // Point to sort from (for SortTPAFrom only)
SplitDist : Integer; // For TPAToATPA/SplitTPA only
W, H : Integer; // For TPAToATPAEx/SplitTPAEx only
end;

TWalkInfoArray = array of TWalkInfo;

{==============================================================================\
| Variables |
\==============================================================================}

(**
* Miscellaneous variables used throughout the include
*)
var
ProgressReportArray: TProggyArray;
CurrentScript : Integer;
ReflectionBroken : Boolean;
MSIRev : string;
ScriptStart : string;
NextAntiban : Integer;

(**
* Arrays that store all the necessary "go-to" information for MSI
*)
var
MSI_Players : TPlayerInfoArray;
MSI_Items : array[0..ITEM_ARRAY_LENGTH] of TItem;
MSI_Objects : array[0..OBJ_ARRAY_LENGTH] of TMSObject;
MSI_Locations : array[0..LOC_ARRAY_LENGTH] of TLocation;
MSI_Scripts : array[0..SCRIPT_ARRAY_LENGTH] of TScript;
MSI_ColorAreas: array[0..AREA_ARRAY_LENGTH] of TMMColorArea;
MSI_WalkInfo : array[0..WALK_ARRAY_LENGTH] of TWalkInfo;

(**
* The global variables used throughout the stats system (Stats.scar)
*)
var
Stats_UserID : string;
Stats_Password : string;
Stats_ScriptID : string;
Stats_LastTime : Integer;
Stats_CustomVars: array [1..20] of Integer;



Locations.simba
{==============================================================================\
| MSI Group Scripting Include |
| Scripts.scar |
|==============================================================================|
| For all the routines related to specific scripts |
| |
| * function MSI_LoadLocation(): Boolean; * by The MSI Team |
| * procedure MSI_LoadAllLocations; * by Coh3n |
\_____________________________________________________________________________}

{******************************************************************************}
{ procedure MSI_LoadAllLocations; }
{ By: The MSI Team }
{ Date: 17 August 2010 }
{ Description: Loads Which location information. This should only be called }
{ in MSI_LoadAllScripts }
{******************************************************************************}
function MSI_LoadLocation(Which: Integer): Boolean;
begin
case Which of
LOC_POWER_SKILL:
with MSI_Locations[Which] do
begin
Name := 'The wonderful world of Runescape!';
Constant := LOC_POWER_SKILL;
AtBank := False;
end;

LOC_LOST:
with MSI_Locations[Which] do
begin
Name := 'Lost';
Constant := LOC_LOST;
AtBank := False;
end;

LOC_VE_TREES:
with MSI_Locations[Which] do
begin
Name := 'Varrock east trees';
Constant := LOC_VE_TREES;
AtBank := False;
end;

LOC_VE_OAKS:
with MSI_Locations[Which] do
begin
Name := 'Varrock east oaks';
Constant := LOC_VE_OAKS;
AtBank := False;
end;

LOC_VE_BANK:
with MSI_Locations[Which] do
begin
Name := 'Varrock east bank';
Constant := LOC_VE_BANK;
AtBank := True;
end;

LOC_VE_MINE:
with MSI_Locations[Which] do
begin
Name := 'Varrock east mine';
Constant := LOC_VE_MINE;
AtBank := False;
end;

LOC_VW_MINE:
with MSI_Locations[Which] do
begin
Name := 'Varrock west mine';
Constant := LOC_VW_MINE;
AtBank := False;
end;

LOC_VW_BANK:
with MSI_Locations[Which] do
begin
Name := 'Varrock west bank';
Constant := LOC_VW_BANK;
AtBank := True;
end;

LOC_GE_BANK:
with MSI_Locations[Which] do
begin
Name := 'Grand Exchange bank';
Constant := LOC_GE_BANK;
AtBank := True;
end;

LOC_GE_YEWS:
with MSI_Locations[Which] do
begin
Name := 'Grand Exchange yews';
Constant := LOC_GE_YEWS;
AtBank := False;
RelocatePoints := [Point(3209, 3503), Point(3220, 3502)];
RelocateAreas := [AREA_GE_YEWS_1, AREA_GE_YEWS_2];
RelocateDist := 10;
RelocateTime := 2000;
end;

LOC_DB_BANK:
with MSI_Locations[Which] do
begin
Name := 'Draynor Village bank';
Constant := LOC_DB_BANK;
AtBank := True;
end;

LOC_DB_WILLOWS:
with MSI_Locations[Which] do
begin
Name := 'Draynor Village willows';
Constant := LOC_DB_WILLOWS;
AtBank := False;
end;

LOC_DB_FISH:
with MSI_Locations[Which] do
begin
Name := 'Draynor Village fishing spots';
Constant := LOC_DB_FISH;
AtBank := False;
end;

LOC_RM_YEWS:
with MSI_Locations[Which] do
begin
Name := 'Rimmington yews';
Constant := LOC_RM_YEWS;
AtBank := False;
RelocatePoints := [Point(2937, 3231), Point(2935, 3228)];
RelocateAreas := [AREA_RM_YEWS_1, AREA_RM_YEWS_2];
RelocateDist := 5;
RelocateTime := 8000;
end;

LOC_RM_CLAY:
with MSI_Locations[Which] do
begin
Name := 'Rimmington clay rocks';
Constant := LOC_RM_CLAY;
AtBank := False;
end;

LOC_RM_TIN:
with MSI_Locations[Which] do
begin
Name := 'Rimmington tin rocks';
Constant := LOC_RM_TIN;
AtBank := False;
end;

LOC_RM_COPPER:
with MSI_Locations[Which] do
begin
Name := 'Rimmington copper rocks';
Constant := LOC_RM_COPPER;
AtBank := False;
end;

LOC_RM_IRON_1:
with MSI_Locations[Which] do
begin
Name := 'Rimmington iron rocks 1';
Constant := LOC_RM_IRON_1;
AtBank := False;
end;

LOC_RM_IRON_2:
with MSI_Locations[Which] do
begin
Name := 'Rimmington iron rocks 2';
Constant := LOC_RM_IRON_2;
AtBank := False;
end;

LOC_RM_GOLD:
with MSI_Locations[Which] do
begin
Name := 'Rimmington gold rocks';
Constant := LOC_RM_GOLD;
AtBank := False;
end;

LOC_FE_BANK:
with MSI_Locations[Which] do
begin
Name := 'Falador east bank';
Constant := LOC_FE_BANK;
AtBank := True;
end;

LOC_PS_WILLOWS:
with MSI_Locations[Which] do
begin
Name := 'Port Sarim willows';
Constant := LOC_PS_WILLOWS;
AtBank := False;
end;

LOC_PS_YEWS:
with MSI_Locations[Which] do
begin
Name := 'Port Sarim yews';
Constant := LOC_PS_YEWS;
AtBank := False;
end;

LOC_PS_DBOX:
with MSI_Locations[Which] do
begin
Name := 'Port Sarim deposit box';
Constant := LOC_PS_DBOX;
AtBank := True;
end;

LOC_LSW_MINE:
with MSI_Locations[Which] do
begin
Name := 'Lumbridge swamp west mine';
Constant := LOC_LSW_MINE;
AtBank := False;
end;

LOC_LSE_MINE:
with MSI_Locations[Which] do
begin
Name := 'Lumbridge swamp east mine';
Constant := LOC_LSE_MINE;
AtBank := False;
end;

LOC_EV_BANK:
with MSI_Locations[Which] do
begin
Name := 'Edgeville bank';
Constant := LOC_EV_BANK;
AtBank := True;
end;

LOC_BBV_FISH:
with MSI_Locations[Which] do
begin
Name := 'Barbarian Village fly fishing spot';
Constant := LOC_BBV_FISH;
AtBank := False;
end;

LOC_BBV_MINE:
with MSI_Locations[Which] do
begin
Name := 'Barbarian Village mine';
Constant := LOC_BBV_MINE;
AtBank := False;
end;

LOC_VE_RANGE:
with MSI_Locations[Which] do
begin
Name := 'Varrock East cooking ranges';
Constant := LOC_VE_RANGE;
AtBank := False;
end;

LOC_AK_BANK:
with MSI_Locations[Which] do
begin
Name := 'Al Kharid bank';
Constant := LOC_AK_BANK;
AtBank := True;
end;

LOC_AK_GOLD:
With MSI_Locations[Which] do
begin
Name := 'Al Kharid gold rocks';
Constant := LOC_AK_GOLD;
AtBank := False;
end;

LOC_AK_SILVER:
With MSI_Locations[Which] do
begin
Name := 'Al Kharid silver rocks';
Constant := LOC_AK_SILVER;
AtBank := False;
end;

LOC_AK_COAL:
With MSI_Locations[Which] do
begin
Name := 'Al Kharid coal rocks';
Constant := LOC_AK_COAL;
AtBank := False;
end;

LOC_AK_IRON:
With MSI_Locations[Which] do
begin
Name := 'Al Kharid iron rocks';
Constant :+ LOC_AK_IRON;
AtBank := False;
end;

LOC_AK_MITHRIL:
With MSI_Locations[Which] do
begin
Name := 'Al Kharid mithril rocks';
Constant :+ LOC_AK_MITHRIL;
AtBank := False;
end;

LOC_AK_COP_TIN:
With MSI_Locations[Which] do
begin
Name := 'Al Kharid copper/tin rocks';
Constant :+ LOC_AK_COP_TIN;
AtBank := False;
end;

LOC_AK_ADAMANT:
With MSI_Locations[Which] do
begin
Name := 'Al Kharid adamantite rocks';
Constant :+ LOC_AK_ADAMANT;
AtBank := False;
end;

end;

Result := (MSI_Locations[Which].Name <> '');
end;

{******************************************************************************}
{ procedure MSI_LoadAllLocations; }
{ By: Coh3n }
{ Date: 02 August 2010 }
{ Description: Loads all the locations into MSI_Locations array; should only }
{ be called once in SetupMSI }
{******************************************************************************}
procedure MSI_LoadAllLocations;
var
i: Integer;
begin
for i := 0 to High(MSI_Locations) do
MSI_LoadLocation(i);
end;

P.S. these files also contain my AK Miner i've implemented, found here
E: P.P.S.: this is untested!!

NCDS

2010-09-26 10:58:48

Would you mind testing please?

I don't have much time ATM, but later tonight I will and if they have been tested I will commit them.

Thanks :)

Also, I'm going to close the thread about the AK Miner since this one contains both.

TomTuff

2010-09-26 11:03:01

From: NCDS
Would you mind testing please?

I don't have much time ATM, but later tonight I will and if they have been tested I will commit them.

Thanks :)

Also, I'm going to close the thread about the AK Miner since this one contains both.


ok, will do.

E: had some trouble at first, but fisher works now, gonna get AK miner working and i'm set =)

[0:07:47]: {----------------------------------------------------------------}
[0:07:47]: { MSI Phoenix Player Report }
[0:07:47]: {------------------------- Revision 309 -------------------------}
[0:07:47]: { Time Running: 7 Minutes and 47 Seconds }
[0:07:47]: {----------------------------------------------------------------}
[0:07:47]: { }
[0:07:47]: { Player 0: *********** }
[0:07:47]: { Location: Barbarian Village fly fishing spot }
[0:07:47]: { Time: 04m 25s }
[0:07:47]: { Total Loads: 1 }
[0:07:48]: { Active: True }
[0:07:48]: { }
[0:07:48]: { Script: Edgeville fly fisher }
[0:07:48]: { Time: 04m 25s }
[0:07:48]: { Skill: Fishing }
[0:07:48]: { Loads: 1 }
[0:07:48]: { Exp: 1,860 }
[0:07:48]: { Level: Not yet defined }
[0:07:48]: { Item: Raw trout }
[0:07:48]: { Amount: 26 }
[0:07:48]: { Item: Raw salmon }
[0:07:48]: { Amount: 8 }
[0:07:48]: { }
[0:07:48]: {----------------------------------------------------------------}
[0:07:48]: {----------------------------------------------------------------}

Coh3n

2010-09-28 14:34:47

Could you post like you did in this thread? I find it much clearer and, not that I don't trust you, but this way we know exactly what's been changed. :)

doublex8

2010-09-29 19:00:05

I'm extremely to new to MSI so I am sorry if this is a redundant question but should I paste those into the files myself or update the repositories or did I completely guess wrong?

TomTuff

2010-09-29 19:19:14

From: Coh3n
Could you post like you did in this thread? I find it much clearer and, not that I don't trust you, but this way we know exactly what's been changed. :)


sure here it is:

TScriptRecord:
    SCRIPT_EV_FLY:
with MSI_Scripts[whichScript] do
begin
Name := 'Edgeville fly fisher';
Constant := SCRIPT_EV_FLY;
Tools := [TOOL_FISH];
SkillName := 'Fishing';
SkillConstant := SKILL_FISHING;
Objects := [FISHSPOT_LURE];
Items := [[FISH_RAW_TROUT, FISH_RAW_SALMON]]
BankType := Bank;
WhichBank := MSI_BANK_EV;
CompassAng := 'N';
AutoObjects := @MSI_FishInvFull;

with PathInfo do
begin
StartLoc := LOC_EV_BANK;
EndLoc := LOC_BBV_FISH;

Reflection := [
Tile(3094, 3489), Tile(3100, 3478),
Tile(3098, 3462), Tile(3096, 3449),
Tile(3103, 3435), Tile(3107, 3433)
];

// ObstaclePoints := [];
// Obstacles := [];
// DoObstacles := [];
end;
end;

Location:
     LOC_BBV_FISH:
with MSI_Locations[Which] do
begin
Name := 'Barbarian Village fly fishing spot';
Constant := LOC_BBV_FISH;
AtBank := False;
end;

Globals:

location globals:
  // Barbarian Village
LOC_BBV_MINE = 90;
LOC_BBV_FISH = 91;

script globals:
  // Fishing
SCRIPT_POWER_FISHER = 50;
SCRIPT_DB_FISHER = 51;
SCRIPT_EV_FLY = 52;

Proggress report (short but sweet lol)
[0:07:47]: {----------------------------------------------------------------}
[0:07:47]: { MSI Phoenix Player Report }
[0:07:47]: {------------------------- Revision 309 -------------------------}
[0:07:47]: { Time Running: 7 Minutes and 47 Seconds }
[0:07:47]: {----------------------------------------------------------------}
[0:07:47]: { }
[0:07:47]: { Player 0: *********** }
[0:07:47]: { Location: Barbarian Village fly fishing spot }
[0:07:47]: { Time: 04m 25s }
[0:07:47]: { Total Loads: 1 }
[0:07:48]: { Active: True }
[0:07:48]: { }
[0:07:48]: { Script: Edgeville fly fisher }
[0:07:48]: { Time: 04m 25s }
[0:07:48]: { Skill: Fishing }
[0:07:48]: { Loads: 1 }
[0:07:48]: { Exp: 1,860 }
[0:07:48]: { Level: Not yet defined }
[0:07:48]: { Item: Raw trout }
[0:07:48]: { Amount: 26 }
[0:07:48]: { Item: Raw salmon }
[0:07:48]: { Amount: 8 }
[0:07:48]: { }
[0:07:48]: {----------------------------------------------------------------}
[0:07:48]: {----------------------------------------------------------------}

Coh3n

2010-09-29 22:04:21

From: doublex8
I'm extremely to new to MSI so I am sorry if this is a redundant question but should I paste those into the files myself or update the repositories or did I completely guess wrong?

Now that it's been committed, just update your MSI and try it out. :)

@Tom - thanks! :) For MSI, Tile() > Point(). We still use point to avoid compiling problems if the user doesn't have reflection installed.

Also, is luring the only thing you can do at the Edgeville spots? If not, let me know what the others are and I'll add them to SCRIPT_EV_FISHER.

TomTuff

2010-09-29 22:06:37

From: Coh3n
For MSI, Tile() > Point(). We still use point to avoid compiling problems if the user doesn't have reflection installed..


gah, meant to run that through notepad… sorry!

From: Coh3n
Also, is luring the only thing you can do at the Edgeville spots? If not, let me know what the others are and I'll add them to SCRIPT_EV_FISHER.


bait fishing works too.

Coh3n

2010-09-29 22:17:53

From: TomTuff
bait fishing works too.

Okay, I added bait fishing to the default objects.