function script Debug { goto L_Begin; L_Begin: @debug_mask = 65535; @debug_shift = 0; @mexp = ((MAGIC_EXPERIENCE & @debug_mask) >> @debug_shift); mes "What do you want to do?"; menu "Reset stat points.", L_Level, "Change my level.", L_Level, "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_ResetStatusPoints: resetstatus; mes "Stats successfully resetted."; next; goto L_Begin; L_BasicSkills: adddefaultskills(); goto L_Begin; 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; */ 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; mes ""; mes l("Focus list:"); mesc l("%s : %s", l("Mallard's Eye"), (isfocused(SKILL_MALLARDS_EYE) ? l("Yes") : l("No"))); mesc l("%s : %s", l("Brawling"), (isfocused(SKILL_BRAWLING) ? l("Yes") : l("No"))); mesc l("%s : %s", l("Speed"), (isfocused(SKILL_SPEED) ? l("Yes") : l("No"))); mesc l("%s : %s", l("Resist Ailment"), (isfocused(SKILL_RESIST_POISON) ? l("Yes") : l("No"))); mesc l("%s : %s", l("Astral Soul"), (isfocused(SKILL_ASTRAL_SOUL) ? l("Yes") : l("No"))); mesc l("%s : %s", l("Raging"), (isfocused(SKILL_RAGING) ? l("Yes") : l("No"))); .@t=getactivatedpoolskilllist(); menuint l("Back"), -3, l("Focus Skill +"), -2, rif(getskilllv(SKILL_POOL), l("Focus Skill -")), -1, l("Add all focus skills"), 0, l("Remove all focus skills"), -4, ("Toggle Focus - Mallards Eye"), SKILL_MALLARDS_EYE, ("Toggle Focus - Brawling"), SKILL_BRAWLING, ("Toggle Focus - Speed"), SKILL_SPEED, ("Toggle Focus - Resist Ailment"), SKILL_RESIST_POISON, ("Toggle Focus - Astral Soul"), SKILL_ASTRAL_SOUL, ("Toggle Focus - Raging"), SKILL_RAGING; mes ""; switch (@menuret) { case -3: goto L_Begin; case -2: skill SKILL_POOL, @pool+1, 0; break; case -1: skill SKILL_POOL, max(0, @pool-1), 0; break; case 0: updateskill SKILL_MALLARDS_EYE, 9; updateskill SKILL_BRAWLING, 9; updateskill SKILL_SPEED, 9; updateskill SKILL_RESIST_POISON, 9; updateskill SKILL_ASTRAL_SOUL, 9; updateskill SKILL_RAGING, 9; break; case -4: skill SKILL_POOL, 0, 0; break; updateskill SKILL_MALLARDS_EYE, 0; updateskill SKILL_BRAWLING, 0; updateskill SKILL_SPEED, 0; updateskill SKILL_RESIST_POISON, 0; updateskill SKILL_ASTRAL_SOUL, 0; updateskill SKILL_RAGING, 0; break; default: if (FOCUSING & getpoolskillFID(@menuret)) { unpoolskill(@menuret); mesc "Focus removed", 1; } else { .@s = poolskill(@menuret); if (.@s) mesc "Focus added", 2; else mesc sprintf("Impossible to focus. You can only focus %d skills at a time.", .@t), 1; } } goto L_FocusSkills; /* 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) updateskill 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; updateskill 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; updateskill 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; updateskill 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; updateskill 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; updateskill 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; updateskill 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; updateskill SKILL_RAGING, @lvl; next; goto L_FocusSkills; L_AllFocusSkills: updateskill SKILL_POOL, 1; updateskill SKILL_MALLARDS_EYE, 9; updateskill SKILL_BRAWLING, 9; updateskill SKILL_SPEED, 9; updateskill SKILL_RESIST_POISON, 9; updateskill SKILL_ASTRAL_SOUL, 9; updateskill SKILL_RAGING, 9; mes "Focus skills added."; next; goto L_FocusSkills; L_ResetFocusSkills: updateskill SKILL_POOL, 0; updateskill SKILL_MALLARDS_EYE, 0; updateskill SKILL_BRAWLING, 0; updateskill SKILL_SPEED, 0; updateskill SKILL_RESIST_POISON, 0; updateskill SKILL_ASTRAL_SOUL, 0; updateskill 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) updateskill SKILL_MAGIC, 0; mes "General Magic skill changed to level 0."; next; goto L_MagicSkills; L_ChangeGeneralMagicSkill1: updateskill SKILL_MAGIC, 1; mes "General Magic skill changed to level 1."; next; goto L_MagicSkills; L_ChangeGeneralMagicSkill2: updateskill 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) updateskill SKILL_MAGIC_LIFE, 0; mes "Life Magic skill changed to level 0."; next; goto L_MagicSkills; L_ChangeLifeMagicSkill1: updateskill SKILL_MAGIC_LIFE, 1; mes "Life Magic skill changed to level 1."; next; goto L_MagicSkills; L_ChangeLifeMagicSkill2: updateskill 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) updateskill SKILL_MAGIC_WAR, 0; mes "War Magic skill changed to level 0."; next; goto L_MagicSkills; L_ChangeWarMagicSkill1: updateskill SKILL_MAGIC_WAR, 1; mes "War Magic skill changed to level 1."; next; goto L_MagicSkills; L_ChangeWarMagicSkill2: updateskill 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) updateskill SKILL_MAGIC_TRANSMUTE, 0; mes "Transmutation Magic skill changed to level 0."; next; goto L_MagicSkills; L_ChangeTransmutationMagicSkill1: updateskill SKILL_MAGIC_TRANSMUTE, 1; mes "Transmutation Magic skill changed to level 1."; next; goto L_MagicSkills; L_ChangeTransmutationMagicSkill2: updateskill 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) updateskill SKILL_MAGIC_NATURE, 0; mes "Nature Magic skill changed to level 0."; next; goto L_MagicSkills; L_ChangeNatureMagicSkill1: updateskill SKILL_MAGIC_NATURE, 1; mes "Nature Magic skill changed to level 1."; next; goto L_MagicSkills; L_ChangeNatureMagicSkill2: updateskill 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) updateskill SKILL_MAGIC_ASTAL, 0; mes "Astral Magic skill changed to level 0."; next; goto L_MagicSkills; L_ChangeAstralMagicSkill1: updateskill SKILL_MAGIC_ASTRAL, 1; mes "Astral Magic skill changed to level 1."; next; goto L_MagicSkills; L_ChangeAstralMagicSkill2: updateskill 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) updateskill SKILL_MAGIC_DARK, 0; mes "Dark Magic skill changed to level 0."; next; goto L_MagicSkills; L_ChangeDarkMagicSkill1: updateskill SKILL_MAGIC_DARK, 1; mes "Dark Magic skill changed to level 1."; next; goto L_MagicSkills; L_ChangeDarkMagicSkill2: updateskill 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: updateskill SKILL_MAGIC, 5; updateskill SKILL_MAGIC_LIFE, 5; updateskill SKILL_MAGIC_WAR, 5; updateskill SKILL_MAGIC_TRANSMUTE, 5; updateskill SKILL_MAGIC_NATURE, 5; updateskill SKILL_MAGIC_ASTRAL, 5; updateskill SKILL_MAGIC_DARK, 5; @mexp = 8000; callsub S_Update_Mask; mes "Magic skills added."; next; goto L_MagicSkills; L_ResetMagicSkills: updateskill SKILL_MAGIC, 0; updateskill SKILL_MAGIC_LIFE, 0; updateskill SKILL_MAGIC_WAR, 0; updateskill SKILL_MAGIC_TRANSMUTE, 0; updateskill SKILL_MAGIC_NATURE, 0; updateskill SKILL_MAGIC_ASTRAL, 0; updateskill SKILL_MAGIC_DARK, 0; @mexp = 0; callsub S_Update_Mask; mes "Magic skills removed."; next; goto L_MagicSkills; L_AddAll: adddefaultskills(); updateskill SKILL_POOL, 1; updateskill SKILL_MALLARDS_EYE, 9; updateskill SKILL_BRAWLING, 9; updateskill SKILL_SPEED, 9; updateskill SKILL_RESIST_POISON, 9; updateskill SKILL_ASTRAL_SOUL, 9; updateskill SKILL_RAGING, 9; updateskill SKILL_MAGIC, 5; updateskill SKILL_MAGIC_LIFE, 5; updateskill SKILL_MAGIC_WAR, 5; updateskill SKILL_MAGIC_TRANSMUTE, 5; updateskill SKILL_MAGIC_NATURE, 5; updateskill SKILL_MAGIC_ASTRAL, 5; updateskill SKILL_MAGIC_DARK, 5; // Real skills updateskill EVOL_AREA_PROVOKE, 9; updateskill EVOL_PHYSICAL_SHIELD, 9; @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; //adddefaultskills(); updateskill SKILL_POOL, 0; updateskill SKILL_MALLARDS_EYE, 0; updateskill SKILL_BRAWLING, 0; updateskill SKILL_SPEED, 0; updateskill SKILL_RESIST_POISON, 0; updateskill SKILL_ASTRAL_SOUL, 0; updateskill SKILL_RAGING, 0; updateskill SKILL_MAGIC, 0; updateskill SKILL_MAGIC_LIFE, 0; updateskill SKILL_MAGIC_WAR, 0; updateskill SKILL_MAGIC_TRANSMUTE, 0; updateskill SKILL_MAGIC_NATURE, 0; updateskill SKILL_MAGIC_ASTRAL, 0; updateskill 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,{ OnDebug: 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::OnDebug"; end; } 029-2,30,26,0 script Debug#0 NPC154,{ @debug_npc = 1; callfunc "Debug"; end; OnInit: if (!debug) disablenpc "Debug#0"; end; } 001-1,53,47,0 script Debug#1 NPC154,{ @debug_npc = 1; callfunc "Debug"; end; OnInit: if (!debug) disablenpc "Debug#1"; end; } 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: if (!debug) disablenpc "Debug#3"; end; }