// Author: alastrim, Jenalya function|script|Debug|{ L_Begin: set @debug_mask, 65535; set @debug_shift, 0; set @mexp, ((MAGIC_EXPERIENCE & @debug_mask) >> @debug_shift); mes "What do you want to do?"; menu "Change base level", L_Level, "Reset status points", L_Status, "Change my skills", L_Skills, "Change my magic skills", L_Magic, "Close", -; close; L_Level: mes "Which level do you want to be? (min: 1 - max: 255)"; next; input @lvl; if (@lvl > 255) goto L_Leveltoohigh; if (@lvl < 1) goto L_Leveltoolow; if (Baselevel == @lvl) goto L_Samelvl; set BaseLevel, @lvl; resetstatus; message strcharinfo(0), "New level: " + Baselevel; goto L_Begin; L_Samelvl: mes "You are already level " + @lvl; next; goto L_Level; L_Leveltoolow: mes "Bad choice. Minimum level is 1."; next; goto L_Level; L_Leveltoohigh: mes "Bad choice. Maximum level is 255."; next; goto L_Level; L_Skills: set @mallard, getskilllv(SKILL_MALLARDS_EYE); set @brawling, getskilllv(SKILL_BRAWLING); set @speed, getskilllv(SKILL_SPEED); set @poison, getskilllv(SKILL_RESIST_POISON); set @astralsoul, getskilllv(SKILL_ASTRAL_SOUL); set @raging, getskilllv(SKILL_WARRIOR_RAGING); menu "Overview of my skills", L_Seeskills, "Focus/Unfocus", L_Unfocus, "Add skills", L_Changeskills, "Reset skills", L_Resetskills, "Back to main menu", L_Begin, "Close", -; close; L_Unfocus: cleararray @skilllist_name$[0], "", 8; cleararray @skilllist_id[0], 0, 8; cleararray @skilllist_count[0], 0, 8; if (getskilllv(SKILL_POOL) == 0) setskill SKILL_POOL, 1; getactivatedpoolskilllist; if (@skilllist_count == 0) goto L_Focus; getactivatedpoolskilllist; if (@skilllist_count != 0) goto L_Askunfocus; mes "You aren't focused on a skill at the moment"; goto L_Skills; L_Askunfocus: mes "Unfocus " + @skilllist_name$[@skilllist_count-1] + "?"; menu "Yes", -, "No", L_Skills; unpoolskill @skilllist_id[@skilllist_count-1]; goto L_Skills; 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_Noskills; set @skilllist_id[@skilllist_count], 0; set @skilllist_name$[@skilllist_count], "Back to skills menu"; mes "You don't have any skill focused right now. Which one do you want to focus?"; menu @skilllist_name$[0], -, @skilllist_name$[1], -, @skilllist_name$[2], -, @skilllist_name$[3], -, @skilllist_name$[4], -, @skilllist_name$[5], -, @skilllist_name$[6], -, @skilllist_name$[7], -; set @menu, @menu - 1; poolskill @skilllist_id[@menu]; goto L_Skills; L_Noskills: mes "You have no skills to focus/unfocus."; goto L_Skills; L_Seeskills: cleararray @skilllist_name$[0], "", 8; cleararray @skilllist_id[0], 0, 8; cleararray @skilllist_count[0], 0, 8; getactivatedpoolskilllist; if (@skilllist_count == 0) goto L_Focusmessage; if (@skilllist_count != 0) mes "You are focused on " + @skilllist_name$[@skilllist_count-1] + " skill."; L_Skillsoverview: mes "You level in mallards eye skill is " + @mallard; mes "You level in brawling skill is " + @brawling; mes "You level in speed skill is " + @speed; mes "You level in resist poison skill is " + @poison; mes "You level in astral soul skill is " + @astralsoul; mes "You level in raging skill is " + @raging; next; goto L_Skills; L_Focusmessage: mes "You don't have any skill focused right now."; goto L_Skillsoverview; L_Changeskills: menu "Mallards eye", L_Changemallard, "Brawling", L_Changebrawling, "Speed", L_Changespeed, "Resist Poison", L_Changepoison, "Astral Soul", L_Changeastralsoul, "Raging", LChangeraging, "All skills level 9", L_AllSkills, "Back to skills menu", L_Skills, "Close", -; close; L_Badskilllvl: mes "Invalid skill lvl. Try again."; next; goto L_Changeskills; L_Changemallard: mes "Enter the lvl you want to be in this skill(min: 1 - max: 9):"; input @lvl; if (@lvl < 1 || @lvl > 9) goto L_Badskilllvl; setskill SKILL_MALLARDS_EYE, @lvl; goto L_Skills; L_Changebrawling: mes "Enter the lvl you want to be in this skill(min: 1 - max: 9):"; input @lvl; if (@lvl < 1 || @lvl > 9) goto L_Badskilllvl; setskill SKILL_BRAWLING, @lvl; goto L_Skills; L_Changespeed: mes "Enter the lvl you want to be in this skill(min: 1 - max: 9):"; input @lvl; if (@lvl < 1 || @lvl > 9) goto L_Badskilllvl; setskill SKILL_SPEED, @lvl; goto L_Skills; L_Changepoison: mes "Enter the lvl you want to be in this skill(min: 1 - max: 9):"; input @lvl; if (@lvl < 1 || @lvl > 9) goto L_Badskilllvl; setskill SKILL_RESIST_POISON, @lvl; goto L_Skills; L_Changeastralsoul: mes "Enter the lvl you want to be in this skill(min: 1 - max: 9):"; input @lvl; if (@lvl < 1 || @lvl > 9) goto L_Badskilllvl; setskill SKILL_ASTRAL_SOUL, @lvl; goto L_Skills; L_Changeraging: mes "Enter the lvl you want to be in this skill(min: 1 - max: 9):"; input @lvl; if (@lvl < 1 || @lvl > 9) goto L_Badskilllvl; setskill SKILL_WARRIOR_RAGING, @lvl; goto L_Skills; L_AllSkills: setskill SKILL_MALLARDS_EYE, 9; setskill SKILL_BRAWLING, 9; setskill SKILL_SPEED, 9; setskill SKILL_RESIST_POISON, 9; setskill SKILL_ASTRAL_SOUL, 9; setskill SKILL_WARRIOR_RAGING, 9; goto L_Skills; L_Resetskills: setskill SKILL_MALLARDS_EYE, 0; setskill SKILL_BRAWLING, 0; setskill SKILL_SPEED, 0; setskill SKILL_RESIST_POISON, 0; setskill SKILL_ASTRAL_SOUL, 0; setskill SKILL_WARRIOR_RAGING, 0; goto L_Skills; L_Magic: set @general, getskilllv(SKILL_MAGIC); set @life, getskilllv(SKILL_MAGIC_LIFE); set @war, getskilllv(SKILL_MAGIC_WAR); set @trans, getskilllv(SKILL_MAGIC_TRANSMUTE); set @nature, getskilllv(SKILL_MAGIC_NATURE); set @astral, getskilllv(SKILL_MAGIC_ASTRAL); menu "Overview of my magical skills", L_Seemagic, "Get magic skills", L_Changemagic, "Get magic experience", L_Magicexp, "Get all magic skills lvl2 and max exp", L_GetAllMagic, "Reset magic", L_Resetmagic, "Back to main menu", L_Begin, "Close", -; close; L_Nomagicskills: mes "You can't have magic experience, since you have no magic skills."; goto L_Magic; L_GetAllMagic: setskill SKILL_MAGIC, 2; setskill SKILL_MAGIC_LIFE, 2; setskill SKILL_MAGIC_WAR, 2; setskill SKILL_MAGIC_TRANSMUTE, 2; setskill SKILL_MAGIC_NATURE, 2; setskill SKILL_MAGIC_ASTRAL, 2; set @mexp, 1200; callsub S_Update_Mask; goto L_Magic; L_Resetmagic: setskill SKILL_MAGIC, 0; setskill SKILL_MAGIC_LIFE, 0; setskill SKILL_MAGIC_WAR, 0; setskill SKILL_MAGIC_TRANSMUTE, 0; setskill SKILL_MAGIC_NATURE, 0; setskill SKILL_MAGIC_ASTRAL, 0; set @mexp, 0; callsub S_Update_Mask; goto L_Magic; L_Wrongexp: mes "Wrong value informed. Try again."; L_Magicexp: mes "Your current magic experience is " + @mexp; if (@general == 0 && @life == 0 && @war == 0 && @trans == 0 && @nature == 0 && @astral == 0) goto L_Nomagicskills; if (@general == 2 || @life == 2 || @war == 2 || @trans == 2 || @nature == 2 || @astral == 2) goto L_Magicexp2; L_Magicexp1: mes "Set the desired magic experience (min: 1 - max: 100)"; input @value; if (@value < 1 || @value > 100) goto L_Wrongexp; set @mexp, @value; callsub S_Update_Mask; goto L_Magic; L_Magicexp2: mes "Set the desired magic experience (min: 100 - max: 1200)"; input @value; if (@value < 100 || @value > 1200) goto L_Wrongexp; set @mexp, @value; callsub S_Update_Mask; goto L_Magic; L_Changemagic: menu "General Magic", L_Changegeneral, "Life Magic", L_Changelife, "War Magic", L_Changewar, "Transmutation Magic", L_Changetrans, "Nature Magic", L_Changenature, "Astral Magic", L_Changeastral, "Back to magic menu", L_Magic, "Close", -; close; L_Seemagic: mes "Your current magic experience is " + @mexp; mes "You level in general magic is " + @general; mes "You level in life magic is " + @life; mes "You level in war magic is " + @war; mes "You level in transmutation magic is " + @trans; mes "You level in nature magic is " + @nature; mes "You level in astral magic is " + @astral; next; goto L_Magic; L_Changegeneral: mes "You level in general magic is " + @general + ". What do you want to do?"; menu "Get Level one", -, "Get Level two", L_Generallvl2, "Back to magic menu", L_Magic; if (@menu == 1) setskill SKILL_MAGIC, 1; goto L_Magic; L_Generallvl2: setskill SKILL_MAGIC, 2; if (@mexp < 100) set @mexp, 100; callsub S_Update_Mask; goto L_Magic; L_Changelife: mes "You level in life magic is " + @war + ". What do you want to do?"; menu "Get Level one", -, "Get Level two", L_Lifelvl2, "Back to magic menu", L_Magic; if (@menu == 1) setskill SKILL_MAGIC_LIFE, 1; goto L_Magic; L_Lifelvl2: setskill SKILL_MAGIC_LIFE, 2; if (@mexp < 100) set @mexp, 100; callsub S_Update_Mask; goto L_Magic; L_Changewar: mes "You level in war magic is " + @war + ". What do you want to do?"; menu "Get Level one", -, "Get Level two", L_Warlvl2, "Back to magic menu", L_Magic; if (@menu == 1) setskill SKILL_MAGIC_WAR, 1; goto L_Magic; L_Warlvl2: setskill SKILL_MAGIC_WAR, 2; if (@mexp < 100) set @mexp, 100; callsub S_Update_Mask; goto L_Magic; L_Changetrans: mes "You level in transmutation magic is " + @trans + ". What do you want to do?"; menu "Get Level one", -, "Get Level two", L_Translvl2, "Back to magic menu", L_Magic; if (@menu == 1) setskill SKILL_MAGIC_TRANSMUTE, 1; goto L_Magic; L_Translvl2: setskill SKILL_MAGIC_TRANSMUTE, 2; if (@mexp < 100) set @mexp, 100; callsub S_Update_Mask; goto L_Magic; L_Changenature: mes "You level in nature magic is " + @nature + ". What do you want to do?"; menu "Get Level one", -, "Get Level two", L_Naturelvl2, "Back to magic menu", L_Magic; if (@menu == 1) setskill SKILL_MAGIC_NATURE, 1; goto L_Magic; L_Naturelvl2: setskill SKILL_MAGIC_NATURE, 2; if (@mexp < 100) set @mexp, 100; callsub S_Update_Mask; close; L_Changeastral: mes "You level in astral magic is " + @astral + ". What do you want to do?"; menu "Get Level one", -, "Get Level two", L_Astrallvl2, "Back to magic menu", L_Magic; if (@menu == 1) setskill SKILL_MAGIC_ASTAL, 1; goto L_Magic; L_Astrallvl2: setskill SKILL_MAGIC_ASTRAL, 2; if (@mexp < 100) set @mexp, 100; callsub S_Update_Mask; goto L_Magic; L_Status: resetstatus; goto L_Begin; S_Update_Mask: set MAGIC_EXPERIENCE, (MAGIC_EXPERIENCE & ~(@debug_mask)) | (@mexp << @debug_shift); return; }