summaryrefslogtreecommitdiff
path: root/npc/commands/debug.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/commands/debug.txt')
-rwxr-xr-x[-rw-r--r--]npc/commands/debug.txt1109
1 files changed, 974 insertions, 135 deletions
diff --git a/npc/commands/debug.txt b/npc/commands/debug.txt
index 8cc1f1cd..c1ebf81d 100644..100755
--- a/npc/commands/debug.txt
+++ b/npc/commands/debug.txt
@@ -1,145 +1,984 @@
-function script GlobalDebugMenu {
- function resetAll {
- function doReset {
- resetstatus;
- resetskill;
- resetlvl 1;
- dispbottom l("Reset done!");
- if (getarg(0,0) == 3)
- {
- closeclientdialog;
- doevent "::OnGlobalQuestReset"; // executes in all quest npcs // FIXME: maybe have a `resetquest` buildin?
- Zeny = 0;
- BankVault = 0;
- clearitem;
- warp "000-0", 0, 0; // starting point
- end; // script must end for doevent to execute
- }
- return;
- }
- clear;
- setnpcdialogtitle l("Debug - Reset");
- mes l("What do you want to reset?");
- select
- menuimage("actions/abort", l("Abort")),
- menuimage("actions/reset", l("Reset stats, skills, level")),
- menuimage("actions/nuke", l("Reset EVERYTHING")),
- menuimage("actions/back", l("Return to Debug menu"));
-
- switch (@menu)
- {
- case 2:
- case 3: doReset @menu;
- }
-
- return;
- }
-
- function changeLevel {
- clear;
- setnpcdialogtitle l("Debug - Change level");
- mes l("To change your base level, use this command:");
- mes "";
- mes " " + col("@blvl <" + l("delta") + ">", 3);
- next;
- mes l("Example:");
- mes "@blvl 50";
- mes " " + l("Raises your base level by 50");
- mes "@blvl -50";
- mes " " + l("Reduces your base level by 50");
- next;
- mes l("To change your job level, use this command:");
- mes "";
- mes " " + col("@jlvl <" + l("delta") + ">", 3);
- next;
- mes l("Example:");
- mes "@jlvl 50";
- mes " " + l("Raises your job level by 50");
- mes "@jlvl -50";
- mes " " + l("Reduces your job level by 50");
- next;
- return;
- }
- function changeStats {
- clear;
- setnpcdialogtitle l("Debug - Change stats");
- mes l("To change your stats, use these commands:");
- mes "";
- mes " " + col("@str <" + l("delta") + ">", 3);
- mes " " + col("@agi <" + l("delta") + ">", 3);
- mes " " + col("@vit <" + l("delta") + ">", 3);
- mes " " + col("@int <" + l("delta") + ">", 3);
- mes " " + col("@dex <" + l("delta") + ">", 3);
- mes " " + col("@luk <" + l("delta") + ">", 3);
- next;
- mes l("Example:");
- mes "@int 50";
- mes " " + l("Raises your Int by 50");
- mes "@int -50";
- mes " " + l("Reduces your Int by 50");
- next;
- mes l("If you simply wish to get 99 in all stats:");
- mes "";
- mes " " + col("@allstats", 3);
- next;
- mes l("If you wish to reset your stats:");
- mes "";
- mes " " + col("@streset", 3);
- next;
- return;
- }
- do
- {
- clear;
- setnpcdialogtitle l("Debug");
- mes l("This menu allows you to modify your account data.");
- mes "";
- mes l("What do you want to do?");
- select
- menuimage("actions/manage", l("Change my level")),
- menuimage("actions/manage", l("Change my stats")),
- menuimage("actions/manage", l("Change my skills")),
- menuimage("actions/manage", l("Change my appearance")),
- menuimage("actions/add", l("Create items")),
- menuimage("actions/add", l("Get money")),
- menuimage("actions/edit", l("Change my quests")),
- rif(debug, menuimage("actions/reset", l("Set Legacy Account"))),
- menuimage("actions/reset", l("Reset")),
- rif(getarg(0,0), menuimage("actions/home", l("Return to Super Menu")));
-
- .@c = getarg(0,0) ? 2 : 1;
-
- switch (@menu)
- {
- case 1: changeLevel; break;
- case 2: changeStats; break;
- case 3: GlobalSkillDebug .@c; break;
- case 4: BarberDebug .@c; break;
- case 5: closeclientdialog; clientcommand "createitems"; end;
- case 6: Zeny = 0x7FFFFFFE; break;
- case 7: GlobalQuestDebug .@c; break;
- case 8: setfakelegacyaccount(); break;
- case 9: resetAll; break;
- case 10: return;
- }
- } while(1);
+
+function script Debug {
+ if(!@debug_npc) goto L_Begin;
+ mes "The debug NPCs have been deprecated. Please use this command instead:";
+ mes "";
+ mes "%%E ##a@debug##0";
+ @debug_npc = 0;
+ goto L_close;
+
+L_Begin:
+ @debug_mask = 65535;
+ @debug_shift = 0;
+ @mexp = ((MAGIC_EXPERIENCE & @debug_mask) >> @debug_shift);
+ mes "What do you want to do?";
+ menu
+ "Change my level.", L_Level,
+ "Change my stats.", L_Status,
+ "Change my basic skills.", L_BasicSkills,
+ "Change my focus skills.", L_FocusSkills,
+ "Change my magic skills.", L_MagicSkills,
+ "Add everything.", L_AddAll,
+ "Reset everything.", L_ResetAll,
+ "Close.", L_close;
+
+L_Level:
+ mes "What level do you want to be (min: 1 - max: 99)?";
+ input @lvl;
+ if (@lvl < 1)
+ goto L_LevelTooLow;
+ if (@lvl > 99)
+ goto L_LevelTooHigh;
+ if (BaseLevel == @lvl)
+ goto L_SameLevel;
+ BaseLevel = @lvl;
+ resetstatus;
+ mes "You are now level " + BaseLevel + ".";
+ goto L_Begin;
+
+L_LevelTooLow:
+ mes "Bad choice. Minimum level is 1.";
+ next;
+ goto L_Begin;
+
+L_LevelTooHigh:
+ mes "Bad choice. Maximum level is 99.";
+ next;
+ goto L_Begin;
+
+L_SameLevel:
+ mes "You already are level " + @lvl + ".";
+ next;
+ goto L_Begin;
+
+L_Status:
+ mes "What do you want to do?";
+ menu
+ "Set all of my stats myself.", L_ChangeStrength,
+ "Set one of my stats myself.", L_ChangeSingleStat,
+ "Get maximum points in all stats.", L_ChangeAllStats,
+ "Reset my status points.", L_ResetStatusPoints,
+ "Back to the main menu.", L_Begin,
+ "Close.", L_close;
+
+L_ChangeAllStats:
+ Str = 99;
+ Agi = 99;
+ Vit = 99;
+ Int = 99;
+ Dex = 99;
+ Luk = 99;
+ mes "You now have 99 in all stats.";
+ next;
+ goto L_Begin;
+
+L_ChangeStrength:
+ mes "How much strength do you want to have (min: 1 - max: 99)?";
+ input @str;
+ if (@str < 1)
+ goto L_StatTooLow;
+ if (@str > 99)
+ goto L_StatTooHigh;
+ Str = @str;
+ goto L_ChangeAgility;
+
+L_ChangeAgility:
+ mes "How much agility do you want to have (min: 1 - max: 99)?";
+ input @agi;
+ if (@agi < 1)
+ goto L_StatTooLow;
+ if (@agi > 99)
+ goto L_StatTooHigh;
+ Agi = @agi;
+ goto L_ChangeVitality;
+
+L_ChangeVitality:
+ mes "How much vitality do you want to have (min: 1 - max: 99)?";
+ input @vit;
+ if (@vit < 1)
+ goto L_StatTooLow;
+ if (@vit > 99)
+ goto L_StatTooHigh;
+ Vit = @vit;
+ goto L_ChangeIntelligence;
+
+L_ChangeIntelligence:
+ mes "How much intelligence do you want to have (min: 1 - max: 99)?";
+ input @int;
+ if (@int < 1)
+ goto L_StatTooLow;
+ if (@int > 99)
+ goto L_StatTooHigh;
+ Int = @int;
+ goto L_ChangeDexterity;
+
+L_ChangeDexterity:
+ mes "How much dexterity do you want to have (min: 1 - max: 99)?";
+ input @dex;
+ if (@dex < 1)
+ goto L_StatTooLow;
+ if (@dex > 99)
+ goto L_StatTooHigh;
+ Dex = @dex;
+ goto L_ChangeLuck;
+
+L_ChangeLuck:
+ mes "How much luck do you want to have (min: 1 - max: 99)?";
+ input @luk;
+ if (@luk < 1)
+ goto L_StatTooLow;
+ if (@luk > 99)
+ goto L_StatTooHigh;
+ Luk = @luk;
+ mes "You now have " + Str + " in strength.";
+ mes "You now have " + Agi + " in agility.";
+ mes "You now have " + Vit + " in vitality.";
+ mes "You now have " + Int + " in intelligence.";
+ mes "You now have " + Dex + " in dexterity.";
+ mes "You now have " + Luk + " in luck.";
+ next;
+ goto L_Begin;
+
+L_StatTooLow:
+ mes "Bad choice. Minimum stat value is 1. Aborting.";
+ next;
+ goto L_Status;
+
+L_StatTooHigh:
+ mes "Bad choice. Maximum stat value is 99. Aborting.";
+ next;
+ goto L_Status;
+
+L_ChangeSingleStat:
+ mes "Which stat do you want to change?";
+ menu
+ "Strength.", L_ChangeStrengthSingle,
+ "Agility.", L_ChangeAgilitySingle,
+ "Vitality.", L_ChangeVitalitySingle,
+ "Intelligence.", L_ChangeIntelligenceSingle,
+ "Dexterity.", L_ChangeDexteritySingle,
+ "Luck.", L_ChangeLuckSingle,
+ "Back to the main menu.", L_Begin,
+ "Close.", L_close;
+
+L_ChangeStrengthSingle:
+ mes "How much strength do you want to have (min: 1 - max: 99)?";
+ input @str;
+ if (@str < 1)
+ goto L_StatTooLow;
+ if (@str > 99)
+ goto L_StatTooHigh;
+ Str = @str;
+ mes "You now have " + Str + " in strength.";
+ next;
+ goto L_Begin;
+
+L_ChangeAgilitySingle:
+ mes "How much agility do you want to have (min: 1 - max: 99)?";
+ input @agi;
+ if (@agi < 1)
+ goto L_StatTooLow;
+ if (@agi > 99)
+ goto L_StatTooHigh;
+ Agi = @agi;
+ mes "You now have " + Agi + " in agility.";
+ next;
+ goto L_Begin;
+
+L_ChangeVitalitySingle:
+ mes "How much vitality do you want to have (min: 1 - max: 99)?";
+ input @vit;
+ if (@vit < 1)
+ goto L_StatTooLow;
+ if (@vit > 99)
+ goto L_StatTooHigh;
+ Vit = @vit;
+ mes "You now have " + Vit + " in vitality.";
+ next;
+ goto L_Begin;
+
+L_ChangeIntelligenceSingle:
+ mes "How much intelligence do you want to have (min: 1 - max: 99)?";
+ input @int;
+ if (@int < 1)
+ goto L_StatTooLow;
+ if (@int > 99)
+ goto L_StatTooHigh;
+ Int = @int;
+ mes "You now have " + Int + " in intelligence.";
+ next;
+ goto L_Begin;
+
+L_ChangeDexteritySingle:
+ mes "How much dexterity do you want to have (min: 1 - max: 99)?";
+ input @dex;
+ if (@dex < 1)
+ goto L_StatTooLow;
+ if (@dex > 99)
+ goto L_StatTooHigh;
+ Dex = @dex;
+ mes "You now have " + Dex + " in dexterity.";
+ next;
+ goto L_Begin;
+
+L_ChangeLuckSingle:
+ mes "How much luck do you want to have (min: 1 - max: 99)?";
+ input @luk;
+ if (@luk < 1)
+ goto L_StatTooLow;
+ if (@luk > 99)
+ goto L_StatTooHigh;
+ Luk = @luk;
+ mes "You now have " + Luk + " in luck.";
+ next;
+ goto L_Begin;
+
+L_ResetStatusPoints:
+ resetstatus;
+ mes "Stats successfully resetted.";
+ next;
+ goto L_Begin;
+
+L_BasicSkills:
+ @emote = getskilllv(SKILL_EMOTE);
+ @trade = getskilllv(SKILL_TRADE);
+ @party = getskilllv(SKILL_PARTY);
+ menu
+ "Overview of my basic skills.", L_BasicSkillsOverview,
+ "Add basic skills.", L_AddBasicSkills,
+ "Reset basic skills.", L_ResetBasicSkills,
+ "Back to main menu.", L_Begin,
+ "Close.", L_close;
+
+L_BasicSkillsOverview:
+ mes "Your level in the emote skill is " + @emote + ".";
+ mes "Your level in the trade skill is " + @trade + ".";
+ mes "Your level in the party skill is " + @party + ".";
+ next;
+ goto L_BasicSkills;
+
+L_AddBasicSkills:
+ menu
+ "Emote", L_ChangeEmoteSkill,
+ "Trade.", L_ChangeTradeSkill,
+ "Party.", L_ChangePartySkill,
+ "All basic skills to their maximum level.", L_AllBasicSkills,
+ "Back to the basic skills menu.", L_BasicSkills,
+ "Close.", L_close;
+
+L_ChangeEmoteSkill:
+ mes "Your level in the emote skill is " + @emote + ". What do you want to do?";
+ menu
+ "Get level 0.", L_Next,
+ "Get level 1.", L_ChangeEmoteSkill1;
+
+L_Next:
+ if (@menu == 1)
+ addtoskill SKILL_EMOTE, 0;
+ mes "Emote skill changed to level 0.";
+ next;
+ goto L_BasicSkills;
+
+L_ChangeEmoteSkill1:
+ addtoskill SKILL_EMOTE, 1;
+ mes "Emote skill changed to level 1.";
+ next;
+ goto L_BasicSkills;
+
+L_ChangeTradeSkill:
+ mes "Your level in the trade skill is " + @trade + ". What do you want to do?";
+ menu
+ "Get level 0.", L_Next1,
+ "Get level 1.", L_ChangeTradeSkill1;
+
+L_Next1:
+ if (@menu == 1)
+ addtoskill SKILL_TRADE, 0;
+ mes "Trade skill changed to level 0.";
+ next;
+ goto L_BasicSkills;
+
+L_ChangeTradeSkill1:
+ addtoskill SKILL_TRADE, 1;
+ mes "Trade skill changed to level 1.";
+ next;
+ goto L_BasicSkills;
+
+L_ChangePartySkill:
+ mes "Your level in the party skill is " + @trade + ". What do you want to do?";
+ menu
+ "Get level 0.", L_Next2,
+ "Get level 1.", L_ChangePartySkill1,
+ "Get level 2.", L_ChangePartySkill2;
+
+L_Next2:
+ if (@menu == 1)
+ addtoskill SKILL_PARTY, 0;
+ mes "Party skill changed to level 0.";
+ next;
+ goto L_BasicSkills;
+
+L_ChangePartySkill1:
+ addtoskill SKILL_PARTY, 1;
+ mes "Party skill changed to level 1.";
+ next;
+ goto L_BasicSkills;
+
+L_ChangePartySkill2:
+ addtoskill SKILL_PARTY, 2;
+ mes "Party skill changed to level 2.";
+ next;
+ goto L_BasicSkills;
+
+L_AllBasicSkills:
+ addtoskill SKILL_EMOTE, 1;
+ addtoskill SKILL_TRADE, 1;
+ addtoskill SKILL_PARTY, 2;
+ mes "Basic skills added.";
+ next;
+ goto L_BasicSkills;
+
+L_ResetBasicSkills:
+ addtoskill SKILL_EMOTE, 0;
+ addtoskill SKILL_TRADE, 0;
+ addtoskill SKILL_PARTY, 0;
+ mes "Basic skills removed.";
+ next;
+ goto L_BasicSkills;
+
+L_FocusSkills:
+ @pool = getskilllv(SKILL_POOL);
+ @mallard = getskilllv(SKILL_MALLARDS_EYE);
+ @brawling = getskilllv(SKILL_BRAWLING);
+ @speed = getskilllv(SKILL_SPEED);
+ @poison = getskilllv(SKILL_RESIST_POISON);
+ @astralsoul = getskilllv(SKILL_ASTRAL_SOUL);
+ @raging = getskilllv(SKILL_RAGING);
+ menu
+ "Overview of my focus skills.", L_SeeFocusSkills,
+ "Focus or unfocus.", L_Unfocus,
+ "Add focus skills.", L_ChangeFocusSkills,
+ "Reset focus skills.", L_ResetFocusSkills,
+ "Back to the main menu.", L_Begin,
+ "Close.", L_close;
+
+L_SeeFocusSkills:
+ cleararray @skilllist_name$[0], "", 8;
+ cleararray @skilllist_id[0], 0, 8;
+ cleararray @skilllist_count[0], 0, 8;
+ getactivatedpoolskilllist;
+ if (@skilllist_count == 0)
+ goto L_NotFocusedMessage;
+ if (@skilllist_count != 0)
+ mes "You are currently focused on the " + @skilllist_name$[@skilllist_count-1] + " skill.";
+ goto L_FocusSkills;
+
+L_NotFocusedMessage:
+ mes "You are not focused on any skill right now.";
+ goto L_FocusSkillsOverview;
+
+L_FocusSkillsOverview:
+ mes "Your focusing skill level is " + @pool + ".";
+ mes "Your mallard's eye skill level is " + @mallard + ".";
+ mes "Your brawling skill level is " + @brawling + ".";
+ mes "Your speed skill level is " + @speed + ".";
+ mes "Your resist poison skill level is " + @poison + ".";
+ mes "Your astral soul skill level is " + @astralsoul + ".";
+ mes "Your raging skill level is " + @raging + ".";
+ next;
+ goto L_FocusSkills;
+
+L_Unfocus:
+ cleararray @skilllist_name$[0], "", 8;
+ cleararray @skilllist_id[0], 0, 8;
+ cleararray @skilllist_count[0], 0, 8;
+ if (getskilllv(SKILL_POOL) == 0)
+ addtoskill SKILL_POOL, 1;
+ getactivatedpoolskilllist;
+ if (@skilllist_count == 0)
+ goto L_Focus;
+ getactivatedpoolskilllist;
+ if (@skilllist_count != 0)
+ goto L_AskUnfocus;
+ mes "You are not focused on a skill at the moment.";
+ goto L_FocusSkills;
+
+L_Focus:
+ cleararray @skilllist_name$[0], "", 8;
+ cleararray @skilllist_id[0], 0, 8;
+ cleararray @skilllist_count[0], 0, 8;
+ getunactivatedpoolskilllist;
+ if (@skilllist_count == 0)
+ goto L_NoFocusSkills;
+ @skilllist_id[@skilllist_count] = 0;
+ @skilllist_name$[@skilllist_count] = "Back to the focus skills menu.";
+ mes "You are not focused on any focus skill right now. Which one do you want to focus on?";
+ menu
+ @skilllist_name$[0], L_MenuItems,
+ @skilllist_name$[1], L_MenuItems,
+ @skilllist_name$[2], L_MenuItems,
+ @skilllist_name$[3], L_MenuItems,
+ @skilllist_name$[4], L_MenuItems,
+ @skilllist_name$[5], L_MenuItems,
+ @skilllist_name$[6], L_MenuItems,
+ @skilllist_name$[7], L_MenuItems;
+
+L_MenuItems:
+ @menu = @menu - 1;
+ poolskill @skilllist_id[@menu];
+ goto L_FocusSkills;
+
+L_NoFocusSkills:
+ mes "You have no skills to focus on or unfocus from.";
+ goto L_FocusSkills;
+
+L_AskUnfocus:
+ mes "Unfocus " + @skilllist_name$[@skilllist_count-1] + "?";
+ menu
+ "Yes.", L_Next3,
+ "No.", L_FocusSkills;
+
+L_Next3:
+ unpoolskill @skilllist_id[@skilllist_count-1];
+ goto L_FocusSkills;
+
+L_ChangeFocusSkills:
+ menu
+ "Focusing.", L_ChangeFocusingSkill,
+ "Mallard's Eye.", L_ChangeMallardsEyeSkill,
+ "Brawling.", L_ChangeBrawlingSkill,
+ "Speed.", L_ChangeSpeedSkill,
+ "Resist Poison.", L_ChangeResistPoisonSkill,
+ "Astral Soul.", L_ChangeAstralSoulSkill,
+ "Raging.", L_ChangeRagingSkill,
+ "All focus skills to their maximum level.", L_AllFocusSkills,
+ "Back to the focus skills menu.", L_FocusSkills,
+ "Close.", L_close;
+
+L_BadSkillLevel:
+ mes "Invalid skill level.";
+ next;
+ goto L_ChangeFocusSkills;
+
+L_ChangeFocusingSkill:
+ mes "Enter the level you want to be in this skill (min: 0 - max: 1).";
+ input @lvl;
+ if (@lvl > 1)
+ goto L_BadSkillLevel;
+ addtoskill SKILL_POOL, @lvl;
+ next;
+ goto L_FocusSkills;
+
+L_ChangeMallardsEyeSkill:
+ mes "Enter the level you want to be in this skill (min: 0 - max: 9).";
+ input @lvl;
+ if (@lvl > 9)
+ goto L_BadSkillLevel;
+ addtoskill SKILL_MALLARDS_EYE, @lvl;
+ next;
+ goto L_FocusSkills;
+
+L_ChangeBrawlingSkill:
+ mes "Enter the lvl you want to be in this skill (min: 0 - max: 9).";
+ input @lvl;
+ if (@lvl > 9)
+ goto L_BadSkillLevel;
+ addtoskill SKILL_BRAWLING, @lvl;
+ next;
+ goto L_FocusSkills;
+
+L_ChangeSpeedSkill:
+ mes "Enter the lvl you want to be in this skill (min: 0 - max: 9).";
+ input @lvl;
+ if (@lvl > 9)
+ goto L_BadSkillLevel;
+ addtoskill SKILL_SPEED, @lvl;
+ next;
+ goto L_FocusSkills;
+
+L_ChangeResistPoisonSkill:
+ mes "Enter the lvl you want to be in this skill (min: 0 - max: 9).";
+ input @lvl;
+ if (@lvl > 9)
+ goto L_BadSkillLevel;
+ addtoskill SKILL_RESIST_POISON, @lvl;
+ next;
+ goto L_FocusSkills;
+
+L_ChangeAstralSoulSkill:
+ mes "Enter the lvl you want to be in this skill (min: 0 - max: 9).";
+ input @lvl;
+ if (@lvl > 9)
+ goto L_BadSkillLevel;
+ addtoskill SKILL_ASTRAL_SOUL, @lvl;
+ next;
+ goto L_FocusSkills;
+
+L_ChangeRagingSkill:
+ mes "Enter the lvl you want to be in this skill (min: 0 - max: 9).";
+ input @lvl;
+ if (@lvl > 9)
+ goto L_BadSkillLevel;
+ addtoskill SKILL_RAGING, @lvl;
+ next;
+ goto L_FocusSkills;
+
+L_AllFocusSkills:
+ addtoskill SKILL_POOL, 1;
+ addtoskill SKILL_MALLARDS_EYE, 9;
+ addtoskill SKILL_BRAWLING, 9;
+ addtoskill SKILL_SPEED, 9;
+ addtoskill SKILL_RESIST_POISON, 9;
+ addtoskill SKILL_ASTRAL_SOUL, 9;
+ addtoskill SKILL_RAGING, 9;
+ mes "Focus skills added.";
+ next;
+ goto L_FocusSkills;
+
+L_ResetFocusSkills:
+ addtoskill SKILL_POOL, 0;
+ addtoskill SKILL_MALLARDS_EYE, 0;
+ addtoskill SKILL_BRAWLING, 0;
+ addtoskill SKILL_SPEED, 0;
+ addtoskill SKILL_RESIST_POISON, 0;
+ addtoskill SKILL_ASTRAL_SOUL, 0;
+ addtoskill SKILL_RAGING, 0;
+ mes "Focus skills removed.";
+ next;
+ goto L_FocusSkills;
+
+L_MagicSkills:
+ @general = getskilllv(SKILL_MAGIC);
+ @life = getskilllv(SKILL_MAGIC_LIFE);
+ @war = getskilllv(SKILL_MAGIC_WAR);
+ @trans = getskilllv(SKILL_MAGIC_TRANSMUTE);
+ @nature = getskilllv(SKILL_MAGIC_NATURE);
+ @astral = getskilllv(SKILL_MAGIC_ASTRAL);
+ @dark = getskilllv(SKILL_MAGIC_DARK);
+ menu
+ "Overview of my magical skills.", L_MagicSkillsOverview,
+ "Get magic skills.", L_ChangeMagicSkills,
+ "Get magic experience.", L_MagicExperience,
+ "All magic skills to their maximum level and maximum magic experience.", L_GetAllMagic,
+ "Reset magic skills and experience.", L_ResetMagicSkills,
+ "Back to the main menu.", L_Begin,
+ "Close.", L_close;
+
+L_MagicSkillsOverview:
+ mes "Your current magic experience skill is " + @mexp + ".";
+ mes "Your level in the general magic skill is " + @general + ".";
+ mes "Your level in the life magic skill is " + @life + ".";
+ mes "Your level in the war magic skill is " + @war + ".";
+ mes "Your level in the transmutation magic skill is " + @trans + ".";
+ mes "Your level in the nature magic skill is " + @nature + ".";
+ mes "Your level in the astral magic skill is " + @astral + ".";
+ mes "Your level in the dark magic skill is " + @dark + ".";
+ next;
+ goto L_MagicSkills;
+
+L_MagicExperience:
+ mes "Your current magic experience is " + @mexp + ".";
+ if (@general == 0
+ && @life == 0
+ && @war == 0
+ && @trans == 0
+ && @nature == 0
+ && @astral == 0
+ && @dark == 0)
+ goto L_NoMagicSkills;
+
+ goto L_ChangeMagicExperience;
+
+L_NoMagicSkills:
+ mes "You can't have magic experience, since you have no magic skills yet.";
+ goto L_MagicSkills;
+
+L_ChangeMagicExperience:
+ mes "Set the desired magic experience (min: 0 - max: 8000).";
+ input @value;
+ if (@value < 0 || @value > 8000)
+ goto L_WrongMagicExperience;
+ @mexp = @value;
+ callsub S_Update_Mask;
+ mes "You now have " + @mexp + " magic experience points.";
+ goto L_MagicSkills;
+
+L_WrongMagicExperience:
+ mes "Wrong value informed. Aborting.";
+ goto L_MagicSkills;
+
+L_ChangeMagicSkills:
+ menu
+ "General Magic.", L_ChangeGeneralMagicSkill,
+ "Life Magic.", L_ChangeLifeMagicSkill,
+ "War Magic.", L_ChangeWarMagicSkill,
+ "Transmutation Magic.", L_ChangeTransmutationMagicSkill,
+ "Nature Magic.", L_ChangeNatureMagicSkill,
+ "Astral Magic.", L_ChangeAstralMagicSkill,
+ "Dark Magic.", L_ChangeDarkMagicSkill,
+ "Back to the magic skills menu.", L_MagicSkills,
+ "Close.", L_close;
+
+L_ChangeGeneralMagicSkill:
+ mes "Your level in the general magic skill is " + @general + ". What do you want to do?";
+ menu
+ "Get level 0.", L_Next4,
+ "Get level 1.", L_ChangeGeneralMagicSkill1,
+ "Get level 2.", L_ChangeGeneralMagicSkill2;
+
+L_Next4:
+ if (@menu == 1)
+ addtoskill SKILL_MAGIC, 0;
+ mes "General Magic skill changed to level 0.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeGeneralMagicSkill1:
+ addtoskill SKILL_MAGIC, 1;
+ mes "General Magic skill changed to level 1.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeGeneralMagicSkill2:
+ addtoskill SKILL_MAGIC, 2;
+ if (@mexp < 100)
+ @mexp = 100;
+ callsub S_Update_Mask;
+ mes "General Magic skill changed to level 2.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeLifeMagicSkill:
+ mes "Your level in the life magic skill is " + @life + ". What do you want to do?";
+ menu
+ "Get level 0.", L_Next5,
+ "Get level 1.", L_ChangeLifeMagicSkill1,
+ "Get level 2.", L_ChangeLifeMagicSkill2;
+
+L_Next5:
+ if (@menu == 1)
+ addtoskill SKILL_MAGIC_LIFE, 0;
+ mes "Life Magic skill changed to level 0.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeLifeMagicSkill1:
+ addtoskill SKILL_MAGIC_LIFE, 1;
+ mes "Life Magic skill changed to level 1.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeLifeMagicSkill2:
+ addtoskill SKILL_MAGIC_LIFE, 2;
+ if (@mexp < 100)
+ @mexp = 100;
+ callsub S_Update_Mask;
+ mes "Life Magic skill changed to level 2.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeWarMagicSkill:
+ mes "Your level in the war magic skill is " + @war + ". What do you want to do?";
+ menu
+ "Get level 0.", L_Next6,
+ "Get level 1.", L_ChangeWarMagicSkill1,
+ "Get level 2.", L_ChangeWarMagicSkill2;
+
+L_Next6:
+ if (@menu == 1)
+ addtoskill SKILL_MAGIC_WAR, 0;
+ mes "War Magic skill changed to level 0.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeWarMagicSkill1:
+ addtoskill SKILL_MAGIC_WAR, 1;
+ mes "War Magic skill changed to level 1.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeWarMagicSkill2:
+ addtoskill SKILL_MAGIC_WAR, 2;
+ if (@mexp < 100)
+ @mexp = 100;
+ callsub S_Update_Mask;
+ mes "War Magic skill changed to level 2.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeTransmutationMagicSkill:
+ mes "Your level in the transmutation magic skill is " + @trans + ". What do you want to do?";
+ menu
+ "Get level 0.", L_Next7,
+ "Get level 1.", L_ChangeTransmutationMagicSkill1,
+ "Get level 2.", L_ChangeTransmutationMagicSkill2;
+
+L_Next7:
+ if (@menu == 1)
+ addtoskill SKILL_MAGIC_TRANSMUTE, 0;
+ mes "Transmutation Magic skill changed to level 0.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeTransmutationMagicSkill1:
+ addtoskill SKILL_MAGIC_TRANSMUTE, 1;
+ mes "Transmutation Magic skill changed to level 1.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeTransmutationMagicSkill2:
+ addtoskill SKILL_MAGIC_TRANSMUTE, 2;
+ if (@mexp < 100)
+ @mexp = 100;
+ callsub S_Update_Mask;
+ mes "Transmutation Magic skill changed to level 2.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeNatureMagicSkill:
+ mes "Your level in the nature magic skill is " + @nature + ". What do you want to do?";
+ menu
+ "Get level 0.", L_Next8,
+ "Get level 1.", L_ChangeNatureMagicSkill1,
+ "Get level 2.", L_ChangeNatureMagicSkill2;
+
+L_Next8:
+ if (@menu == 1)
+ addtoskill SKILL_MAGIC_NATURE, 0;
+ mes "Nature Magic skill changed to level 0.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeNatureMagicSkill1:
+ addtoskill SKILL_MAGIC_NATURE, 1;
+ mes "Nature Magic skill changed to level 1.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeNatureMagicSkill2:
+ addtoskill SKILL_MAGIC_NATURE, 2;
+ if (@mexp < 100)
+ @mexp = 100;
+ callsub S_Update_Mask;
+ mes "Nature Magic skill changed to level 2.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeAstralMagicSkill:
+ mes "Your level in the astral magic skill is " + @astral + ". What do you want to do?";
+ menu
+ "Get level 0.", L_Next9,
+ "Get level 1.", L_ChangeAstralMagicSkill1,
+ "Get level 2.", L_ChangeAstralMagicSkill2;
+
+L_Next9:
+ if (@menu == 1)
+ addtoskill SKILL_MAGIC_ASTAL, 0;
+ mes "Astral Magic skill changed to level 0.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeAstralMagicSkill1:
+ addtoskill SKILL_MAGIC_ASTRAL, 1;
+ mes "Astral Magic skill changed to level 1.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeAstralMagicSkill2:
+ addtoskill SKILL_MAGIC_ASTRAL, 2;
+ if (@mexp < 100)
+ @mexp = 100;
+ callsub S_Update_Mask;
+ mes "Astral Magic skill changed to level 2.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeDarkMagicSkill:
+ mes "Your level in the dark magic skill is " + @dark + ". What do you want to do?";
+ menu
+ "Get level 0.", L_Next10,
+ "Get level 1.", L_ChangeDarkMagicSkill1,
+ "Get level 2.", L_ChangeDarkMagicSkill2;
+
+L_Next10:
+ if (@menu == 1)
+ addtoskill SKILL_MAGIC_DARK, 0;
+ mes "Dark Magic skill changed to level 0.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeDarkMagicSkill1:
+ addtoskill SKILL_MAGIC_DARK, 1;
+ mes "Dark Magic skill changed to level 1.";
+ next;
+ goto L_MagicSkills;
+
+L_ChangeDarkMagicSkill2:
+ addtoskill SKILL_MAGIC_DARK, 2;
+ if (@mexp < 100)
+ @mexp = 100;
+ callsub S_Update_Mask;
+ mes "Dark Magic skill changed to level 2.";
+ next;
+ goto L_MagicSkills;
+
+S_Update_Mask:
+ set MAGIC_EXPERIENCE,
+ (MAGIC_EXPERIENCE & ~(@debug_mask))
+ | (@mexp << @debug_shift);
+ return;
+
+L_GetAllMagic:
+ addtoskill SKILL_MAGIC, 5;
+ addtoskill SKILL_MAGIC_LIFE, 5;
+ addtoskill SKILL_MAGIC_WAR, 5;
+ addtoskill SKILL_MAGIC_TRANSMUTE, 5;
+ addtoskill SKILL_MAGIC_NATURE, 5;
+ addtoskill SKILL_MAGIC_ASTRAL, 5;
+ addtoskill SKILL_MAGIC_DARK, 5;
+ @mexp = 8000;
+ callsub S_Update_Mask;
+ mes "Magic skills added.";
+ next;
+ goto L_MagicSkills;
+
+L_ResetMagicSkills:
+ addtoskill SKILL_MAGIC, 0;
+ addtoskill SKILL_MAGIC_LIFE, 0;
+ addtoskill SKILL_MAGIC_WAR, 0;
+ addtoskill SKILL_MAGIC_TRANSMUTE, 0;
+ addtoskill SKILL_MAGIC_NATURE, 0;
+ addtoskill SKILL_MAGIC_ASTRAL, 0;
+ addtoskill SKILL_MAGIC_DARK, 0;
+ @mexp = 0;
+ callsub S_Update_Mask;
+ mes "Magic skills removed.";
+ next;
+ goto L_MagicSkills;
+
+L_AddAll:
+ addtoskill SKILL_EMOTE, 1;
+ addtoskill SKILL_TRADE, 1;
+ addtoskill SKILL_PARTY, 2;
+ addtoskill SKILL_POOL, 1;
+ addtoskill SKILL_MALLARDS_EYE, 9;
+ addtoskill SKILL_BRAWLING, 9;
+ addtoskill SKILL_SPEED, 9;
+ addtoskill SKILL_RESIST_POISON, 9;
+ addtoskill SKILL_ASTRAL_SOUL, 9;
+ addtoskill SKILL_RAGING, 9;
+ addtoskill SKILL_MAGIC, 5;
+ addtoskill SKILL_MAGIC_LIFE, 5;
+ addtoskill SKILL_MAGIC_WAR, 5;
+ addtoskill SKILL_MAGIC_TRANSMUTE, 5;
+ addtoskill SKILL_MAGIC_NATURE, 5;
+ addtoskill SKILL_MAGIC_ASTRAL, 5;
+ addtoskill SKILL_MAGIC_DARK, 5;
+ @mexp = 8000;
+ resetstatus;
+ BaseLevel = 99;
+ mes "All skills added to their maximum level.";
+ mes "Maximum number of Magic Experience points.";
+ mes "You are now level " + BaseLevel + ".";
+ next;
+ goto L_Begin;
+
+L_ResetAll:
+ cleararray @skilllist_name$[0], "", 8;
+ cleararray @skilllist_id[0], 0, 8;
+ cleararray @skilllist_count[0], 0, 8;
+ addtoskill SKILL_EMOTE, 0;
+ addtoskill SKILL_TRADE, 0;
+ addtoskill SKILL_PARTY, 0;
+ addtoskill SKILL_POOL, 0;
+ addtoskill SKILL_MALLARDS_EYE, 0;
+ addtoskill SKILL_BRAWLING, 0;
+ addtoskill SKILL_SPEED, 0;
+ addtoskill SKILL_RESIST_POISON, 0;
+ addtoskill SKILL_ASTRAL_SOUL, 0;
+ addtoskill SKILL_RAGING, 0;
+ addtoskill SKILL_MAGIC, 0;
+ addtoskill SKILL_MAGIC_LIFE, 0;
+ addtoskill SKILL_MAGIC_WAR, 0;
+ addtoskill SKILL_MAGIC_TRANSMUTE, 0;
+ addtoskill SKILL_MAGIC_NATURE, 0;
+ addtoskill SKILL_MAGIC_ASTRAL, 0;
+ addtoskill SKILL_MAGIC_DARK, 0;
+ @mexp = 0;
+ callsub S_Update_Mask;
+ resetstatus;
+ BaseLevel = 1;
+ mes "All skills removed.";
+ mes "Minimum number of Magic Experience points.";
+ mes "You are now level " + BaseLevel + ".";
+ next;
+ goto L_Begin;
+
+L_close:
+ close2;
+ return;
+
}
+- script Debug Spell NPC32767,{
+ if(!debug && getgmlevel() < CMD_DEBUG) end;
+ callfunc "Debug";
+ end;
+OnDeprecated:
+ message strcharinfo(0), "Debug : ##3The #debug spell has been superseded by the ##B@debug##b command.";
+ end;
+OnInit:
+ registercmd "@debug", "Debug Spell";
+ registercmd "#debug", "Debug Spell::OnDeprecated";
+ end;
+}
+029-2,30,26,0 script Debug#0 NPC154,{
+ @debug_npc = 1;
+ callfunc "Debug";
+ end;
+OnInit:
+ if (!debug)
+ disablenpc "Debug#0";
+ end;
+}
-- script @debug 32767,{
+001-1,53,47,0 script Debug#1 NPC154,{
+ @debug_npc = 1;
+ callfunc "Debug";
+ end;
+OnInit:
+ if (!debug)
+ disablenpc "Debug#1";
end;
+}
-OnCall:
- if (!debug && !is_admin())
- {
- end;
- }
- GlobalDebugMenu;
- closeclientdialog;
+009-1,45,33,0 script Debug#2 NPC154,{
+ @debug_npc = 1;
+ callfunc "Debug";
+ end;
+OnInit:
+ if (!debug)
+ disablenpc "Debug#2";
end;
+}
+020-1,75,85,0 script Debug#3 NPC154,{
+ @debug_npc = 1;
+ callfunc "Debug";
+ end;
OnInit:
- bindatcmd "debug", "@debug::OnCall", 0, 99, 0;
- // TODO / FIXME: add a @test command that opens the help window for test-server
+ if (!debug)
+ disablenpc "Debug#3";
+ end;
+}
+
+027-2,125,103,0 script Debug#5 NPC154,{
+ @debug_npc = 1;
+ callfunc "Debug";
+ end;
+OnInit:
+ if (!debug)
+ disablenpc "Debug#5";
+ end;
}