diff --git a/npc/custom/healer.txt b/npc/custom/healer.txt index e33024c73a..63f90b4b37 100644 --- a/npc/custom/healer.txt +++ b/npc/custom/healer.txt @@ -15,23 +15,30 @@ - script Healer -1,{ - set .@Price,0; // Zeny required for heal - set .@Buffs,0; // Also buff players? (1: yes / 0: no) - set .@Delay,0; // Heal delay, in seconds + .@Price = 0; // Zeny required for heal + .@Buffs = 0; // Also buff players? (1: yes / 0: no) + .@Delay = 0; // Heal delay, in seconds - if (@HD > gettimetick(2)) end; + if (@HD > gettimetick(2)) + end; if (.@Price) { - message strcharinfo(0),"Healing costs "+callfunc("F_InsertComma",.@Price)+" Zeny."; - if (Zeny < .@Price) end; - if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) end; - set Zeny, Zeny-.@Price; + message strcharinfo(0), "Healing costs " + callfunc("F_InsertComma",.@Price) + " Zeny."; + if (Zeny < .@Price) + end; + if (select("^0055FFHeal^000000:^777777Cancel^000000") == 2) + end; + Zeny -= .@Price; } - specialeffect2 EF_HEAL2; percentheal 100,100; + specialeffect2 EF_HEAL2; + percentheal 100,100; if (.@Buffs) { - specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10; - specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; + specialeffect2 EF_INCAGILITY; + sc_start SC_INCREASEAGI,240000,10; + specialeffect2 EF_BLESSING; + sc_start SC_BLESSING,240000,10; } - if (.@Delay) set @HD, gettimetick(2)+.@Delay; + if (.@Delay) + @HD = gettimetick(2) + .@Delay; end; } diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt index 74929a461b..d0da5bee35 100644 --- a/npc/custom/jobmaster.txt +++ b/npc/custom/jobmaster.txt @@ -20,12 +20,17 @@ prontera,153,193,6 script Job Master 123,{ function Job_Menu; mes "[Job Master]"; - if (Class > 4049) { + if (Class > Job_Soul_Linker) { mes "No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { - mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding."; + mes "Please remove your " + + ((checkfalcon()) ? "falcon" : "") + + ((checkcart()) ? "cart" : "") + + ((checkriding()) ? "Peco" : "") + + ((ismounting()) ? "mount" : "") + + " before proceeding."; close; } if (.SkillPointCheck && SkillPoint) { @@ -33,15 +38,18 @@ function Job_Menu; close; } - set .@eac, eaclass(); - set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); - if (.@i > 6 && .@i < 22) { + .@eac = eaclass(); + .@i = ((.ThirdClass) ? roclass(.@eac&EAJ_UPPERMASK) : Class); + if (.@i >= Job_Knight && .@i <= Job_Crusader2) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { - set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; - mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; + .@blvl = .Rebirth[0] - BaseLevel; + .@jlvl = .Rebirth[1] - JobLevel; + mes "You need " + + ((.@blvl > 0) ? .@blvl + " more base levels " + ((.@jlvl > 0) ? "/ " : "") : "") + + ((.@jlvl > 0) ? .@jlvl + " more job levels " : "") + "to continue."; close; } - if (Class > 21) { + if (Class > Job_Crusader2) { mes "Switch to third class?"; next; Job_Menu(roclass(.@eac|EAJL_THIRD)); @@ -50,25 +58,32 @@ function Job_Menu; while(1) { mes "Select an option."; next; - set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); - if (.@i==3) close; + .@i = select(" ~ ^0055FFRebirth^000000:" + ((.ThirdClass) ? " ~ ^FF0000Third Class^000000" : "") + ": ~ ^777777Cancel^000000"); + if (.@i == 3) + close; mes "[Job Master]"; mes "Are you sure?"; next; - Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); + Job_Menu(((.@i == 1) ? Job_Novice_High : roclass(.@eac|EAJL_THIRD))); mes "[Job Master]"; } } - set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2); - if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99; - if (Class == Job_Ninja || Class == Job_Gunslinger) setarray .@exp[0],.@j1,70; + .@j1 = roclass(.@eac|EAJL_2_1); + .@j2 = roclass(.@eac|EAJL_2_2); + if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) + setarray .@exp[0], roclass(.@eac|EAJL_THIRD), 99; + if (Class == Job_Ninja || Class == Job_Gunslinger) + setarray .@exp[0], .@j1, 70; if (.@exp[0] && .SecondExpanded) { if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) { - set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel; - mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; + .@blvl = .Rebirth[0] - BaseLevel; + .@jlvl = .@exp[1] - JobLevel; + mes "You need " + + ((.@blvl > 0) ? .@blvl + " more base levels " + ((.@jlvl > 0) ? "/ " : "") : "") + + ((.@jlvl > 0) ? .@jlvl + " more job levels " : "") + "to continue."; close; } - mes "Switch to "+jobname(.@exp[0])+"?"; + mes "Switch to " + jobname(.@exp[0]) + "?"; next; Job_Menu(.@exp[0]); close; @@ -80,107 +95,209 @@ function Job_Menu; } if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .JobReq[0]) - mes "A job level of "+.JobReq[0]+" is required to change into the 1st Class."; - else if (Class == 4001 && .LastJob && lastJob) { + mes "A job level of " + .JobReq[0] + " is required to change into the 1st Class."; + else if (Class == Job_Novice_High && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); - } else switch(Class) { - case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); - case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); - case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); - default: mes "An error has occurred."; break; + } else { + switch(Class) { + case Job_Novice: + Job_Menu( + Job_Swordman, + Job_Mage, + Job_Archer, + Job_Acolyte, + Job_Merchant, + Job_Thief, + Job_SuperNovice, + Job_Taekwon, + Job_Gunslinger, + Job_Ninja, + Job_Baby + ); + break; + case Job_Novice_High: + Job_Menu( + Job_Swordman_High, + Job_Mage_High, + Job_Archer_High, + Job_Acolyte_High, + Job_Merchant_High, + Job_Thief_High + ); + break; + case Job_Baby: + Job_Menu( + Job_Baby_Swordman, + Job_Baby_Mage, + Job_Baby_Archer, + Job_Baby_Acolyte, + Job_Baby_Merchant, + Job_Baby_Thief, + Job_Super_Baby + ); + break; + default: + mes "An error has occurred."; + break; + } } close; } if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) mes "No more jobs are available."; else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1]) - mes "A job level of "+.JobReq[1]+" is required to change into the 2nd Class."; + mes "A job level of " + .JobReq[1] + " is required to change into the 2nd Class."; else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) { mes "Switch classes now?"; next; - Job_Menu(lastJob+4001); + Job_Menu(lastJob + Job_Novice_High); } else - Job_Menu(.@j1,.@j2); + Job_Menu(.@j1, .@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; - set .@menu$,""; - for(set .@i,0; .@i 1)?"Go back":"Cancel")+"^000000") == 1) { + .@i = getarg(0); + if (select(" ~ Change into ^0055FF" + jobname(.@i) + "^000000 class: ~ ^777777" + ((getargcount() > 1) ? "Go back" : "Cancel") + "^000000") == 1) { mes "[Job Master]"; - mes "You are now "+callfunc("F_InsertArticle",jobname(.@i))+"!"; - if (.@i==4001 && .LastJob) set lastJob, Class; + mes "You are now " + callfunc("F_InsertArticle", jobname(.@i)) + "!"; + if (.@i == Job_Novice_High && .LastJob) + lastJob = Class; jobchange .@i; - if (.@i==4001) resetlvl(1); - else if (.@i==Job_Baby) resetstatus; - specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; - if (.Platinum) callsub Get_Platinum; + if (.@i == Job_Novice_High) + resetlvl(1); + else if (.@i == Job_Baby) + resetstatus; + specialeffect2 EF_ANGEL2; + specialeffect2 EF_ELECTRIC; + if (.Platinum) + callsub Get_Platinum; close; } - if (getargcount() == 1) return; + if (getargcount() == 1) + return; mes "[Job Master]"; } end; } Get_Platinum: - skill 142,1,0; - switch(BaseClass) { - case 0: if (Class !=23) skill 143,1,0; break; - case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break; - case 2: skill 157,1,0; break; - case 3: skill 147,1,0; skill 148,1,0; break; - case 4: skill 156,1,0; break; - case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break; - case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break; - default: break; + skill "NV_FIRSTAID",1,0; + switch (BaseClass) { + case Job_Novice: + if (Class != Job_SuperNovice) + skill "NV_TRICKDEAD",1,0; + break; + case Job_Swordman: + skill "SM_MOVINGRECOVERY",1,0; + skill "SM_FATALBLOW",1,0; + skill "SM_AUTOBERSERK",1,0; + break; + case Job_Mage: + skill "MG_ENERGYCOAT",1,0; + break; + case Job_Archer: + skill "AC_MAKINGARROW",1,0; + skill "AC_CHARGEARROW",1,0; + break; + case Job_Acolyte: + skill "AL_HOLYLIGHT",1,0; + break; + case Job_Merchant: + skill "MC_CARTREVOLUTION",1,0; + skill "MC_CHANGECART",1,0; + skill "MC_LOUD",1,0; + break; + case Job_Thief: + skill "TF_SPRINKLESAND",1,0; + skill "TF_BACKSLIDING",1,0; + skill "TF_PICKSTONE",1,0; + skill "TF_THROWSTONE",1,0; + break; + default: + break; } - switch(BaseJob) { - case 7: skill 1001,1,0; break; - case 8: skill 1014,1,0; break; - case 9: skill 1006,1,0; break; - case 10: skill 1012,1,0; skill 1013,1,0; break; - case 11: skill 1009,1,0; break; - case 12: skill 1003,1,0; skill 1004,1,0; break; - case 14: skill 1002,1,0; break; - case 15: skill 1015,1,0; skill 1016,1,0; break; - case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break; - case 17: skill 1005,1,0; break; - case 18: skill 238,1,0; break; - case 19: skill 1010,1,0; break; - case 20: skill 1011,1,0; break; - default: break; + switch (BaseJob) { + case Job_Knight: + skill "KN_CHARGEATK",1,0; + break; + case Job_Priest: + skill "PR_REDEMPTIO",1,0; + break; + case Job_Wizard: + skill "WZ_SIGHTBLASTER",1,0; + break; + case Job_Blacksmith: + skill "BS_UNFAIRLYTRICK",1,0; + skill "BS_GREED",1,0; + break; + case Job_Hunter: + skill "HT_PHANTASMIC",1,0; + break; + case Job_Assassin: + skill "AS_SONICACCEL",1,0; + skill "AS_VENOMKNIFE",1,0; + break; + case Job_Crusader: + skill "CR_SHRINK",1,0; + break; + case Job_Monk: + skill "MO_KITRANSLATION",1,0; + skill "MO_BALKYOUNG",1,0; + break; + case Job_Sage: + skill "SA_CREATECON",1,0; + skill "SA_ELEMENTWATER",1,0; + skill "SA_ELEMENTGROUND",1,0; + skill "SA_ELEMENTFIRE",1,0; + skill "SA_ELEMENTWIND",1,0; + break; + case Job_Rogue: + skill "RG_CLOSECONFINE",1,0; + break; + case Job_Alchemist: + skill "AM_BIOETHICS",1,0; + break; + case Job_Bard: + skill "BA_PANGVOICE",1,0; + break; + case Job_Dancer: + skill "DC_WINKCHARM",1,0; + break; + default: + break; } return; OnInit: setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class - set .ThirdClass,1; // Enable third classes? (1: yes / 0: no) - set .SecondExpanded,1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) - set .SNovice,45; // Minimum base level to turn into Super Novice - set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) - set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) - set .Platinum,1; // Get platinum skills automatically? (1: yes / 0: no) + .ThirdClass = 1; // Enable third classes? (1: yes / 0: no) + .SecondExpanded = 1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) + .SNovice = 45; // Minimum base level to turn into Super Novice + .LastJob = 1; // Enforce linear class changes? (1: yes / 0: no) + .SkillPointCheck = 1; // Force player to use up all skill points? (1: yes / 0: no) + .Platinum = 1; // Get platinum skills automatically? (1: yes / 0: no) end; } \ No newline at end of file diff --git a/npc/custom/platinum_skills.txt b/npc/custom/platinum_skills.txt index 0c1c17f18d..0a45bb3850 100644 --- a/npc/custom/platinum_skills.txt +++ b/npc/custom/platinum_skills.txt @@ -30,32 +30,90 @@ prontera,128,200,6 script Platinum Skill NPC 94,{ mes "Have a nice day... >.>"; close; } - skill 142,1,0; - switch(BaseClass) { - case 0: if (Class !=23) skill 143,1,0; break; - case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break; - case 2: skill 157,1,0; break; - case 3: skill 147,1,0; skill 148,1,0; break; - case 4: skill 156,1,0; break; - case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break; - case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break; - default: break; + skill "NV_FIRSTAID",1,0; + switch (BaseClass) { + case Job_Novice: + if (Class != Job_SuperNovice) + skill "NV_TRICKDEAD",1,0; + break; + case Job_Swordman: + skill "SM_MOVINGRECOVERY",1,0; + skill "SM_FATALBLOW",1,0; + skill "SM_AUTOBERSERK",1,0; + break; + case Job_Mage: + skill "MG_ENERGYCOAT",1,0; + break; + case Job_Archer: + skill "AC_MAKINGARROW",1,0; + skill "AC_CHARGEARROW",1,0; + break; + case Job_Acolyte: + skill "AL_HOLYLIGHT",1,0; + break; + case Job_Merchant: + skill "MC_CARTREVOLUTION",1,0; + skill "MC_CHANGECART",1,0; + skill "MC_LOUD",1,0; + break; + case Job_Thief: + skill "TF_SPRINKLESAND",1,0; + skill "TF_BACKSLIDING",1,0; + skill "TF_PICKSTONE",1,0; + skill "TF_THROWSTONE",1,0; + break; + default: + break; } - switch(BaseJob) { - case 7: skill 1001,1,0; break; - case 8: skill 1014,1,0; break; - case 9: skill 1006,1,0; break; - case 10: skill 1012,1,0; skill 1013,1,0; break; - case 11: skill 1009,1,0; break; - case 12: skill 1003,1,0; skill 1004,1,0; break; - case 14: skill 1002,1,0; break; - case 15: skill 1015,1,0; skill 1016,1,0; break; - case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break; - case 17: skill 1005,1,0; break; - case 18: skill 238,1,0; break; - case 19: skill 1010,1,0; break; - case 20: skill 1011,1,0; break; - default: break; + switch (BaseJob) { + case Job_Knight: + skill "KN_CHARGEATK",1,0; + break; + case Job_Priest: + skill "PR_REDEMPTIO",1,0; + break; + case Job_Wizard: + skill "WZ_SIGHTBLASTER",1,0; + break; + case Job_Blacksmith: + skill "BS_UNFAIRLYTRICK",1,0; + skill "BS_GREED",1,0; + break; + case Job_Hunter: + skill "HT_PHANTASMIC",1,0; + break; + case Job_Assassin: + skill "AS_SONICACCEL",1,0; + skill "AS_VENOMKNIFE",1,0; + break; + case Job_Crusader: + skill "CR_SHRINK",1,0; + break; + case Job_Monk: + skill "MO_KITRANSLATION",1,0; + skill "MO_BALKYOUNG",1,0; + break; + case Job_Sage: + skill "SA_CREATECON",1,0; + skill "SA_ELEMENTWATER",1,0; + skill "SA_ELEMENTGROUND",1,0; + skill "SA_ELEMENTFIRE",1,0; + skill "SA_ELEMENTWIND",1,0; + break; + case Job_Rogue: + skill "RG_CLOSECONFINE",1,0; + break; + case Job_Alchemist: + skill "AM_BIOETHICS",1,0; + break; + case Job_Bard: + skill "BA_PANGVOICE",1,0; + break; + case Job_Dancer: + skill "DC_WINKCHARM",1,0; + break; + default: + break; } mes "[Platinum Skill NPC]"; mes "There you go!"; diff --git a/npc/custom/resetnpc.txt b/npc/custom/resetnpc.txt index cff1abf224..518a65af34 100644 --- a/npc/custom/resetnpc.txt +++ b/npc/custom/resetnpc.txt @@ -17,15 +17,15 @@ prontera,150,193,4 script Reset Girl 124,{ - set .@ResetStat,5000; // Zeny for stat reset - set .@ResetSkill,5000; // Zeny for skill reset - set .@ResetBoth,9000; // Zeny for resetting both together + .@ResetStat = 5000; // Zeny for stat reset + .@ResetSkill = 5000; // Zeny for skill reset + .@ResetBoth = 9000; // Zeny for resetting both together mes "[Reset Girl]"; mes "I am the Reset Girl."; - mes "Reset Stats: "+ callfunc("F_InsertComma",.@ResetStat) +"z"; - mes "Reset Skills: "+ callfunc("F_InsertComma",.@ResetSkill) +"z"; - mes "Reset Both: "+ callfunc("F_InsertComma",.@ResetBoth) +"z"; + mes "Reset Stats: " + callfunc("F_InsertComma", .@ResetStat) + "z"; + mes "Reset Skills: " + callfunc("F_InsertComma", .@ResetSkill) + "z"; + mes "Reset Both: " + callfunc("F_InsertComma", .@ResetBoth) + "z"; mes "Please select the service you want:"; next; switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Cancel")) { @@ -35,9 +35,9 @@ prontera,150,193,4 script Reset Girl 124,{ mes "Sorry, you don't have enough Zeny."; close; } - set Zeny, Zeny-.@ResetSkill; + Zeny -= .@ResetSkill; sc_end SC_ALL; - ResetSkill; + resetskill; mes "There you go!"; close; case 2: @@ -46,8 +46,8 @@ prontera,150,193,4 script Reset Girl 124,{ mes "Sorry, you don't have enough Zeny."; close; } - set Zeny, Zeny-.@ResetStat; - ResetStatus; + Zeny -= .@ResetStat; + resetstatus; mes "There you go!"; close; case 3: @@ -56,10 +56,10 @@ prontera,150,193,4 script Reset Girl 124,{ mes "Sorry, you don't have enough Zeny."; close; } - set Zeny, Zeny-.@ResetBoth; + Zeny -= .@ResetBoth; sc_end SC_ALL; - ResetSkill; - ResetStatus; + resetskill; + resetstatus; mes "There you go!"; close; case 4: diff --git a/npc/custom/stylist.txt b/npc/custom/stylist.txt index a6c0010524..55753cb397 100644 --- a/npc/custom/stylist.txt +++ b/npc/custom/stylist.txt @@ -14,8 +14,14 @@ //============================================================ prontera,170,180,1 script Stylist#custom_stylist 122,{ - setarray .@Styles[1],getbattleflag("max_cloth_color"),getbattleflag("max_hair_style"),getbattleflag("max_hair_color"); - setarray .@Look[1],LOOK_CLOTHES_COLOR,LOOK_HAIR,LOOK_HAIR_COLOR; + setarray .@Styles[1], + getbattleflag("max_cloth_color"), + getbattleflag("max_hair_style"), + getbattleflag("max_hair_color"); + setarray .@Look[1], + LOOK_CLOTHES_COLOR, + LOOK_HAIR, + LOOK_HAIR_COLOR; set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color"); set .@Revert, getlook(.@Look[.@s]); set .@Style,1; @@ -24,13 +30,22 @@ prontera,170,180,1 script Stylist#custom_stylist 122,{ message strcharinfo(0),"This is style #"+.@Style+"."; set .@menu$, " ~ Next (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)"; switch(select(.@menu$)) { - case 1: set .@Style, ((.@Style!=.@Styles[.@s])?.@Style+1:1); break; - case 2: set .@Style, ((.@Style!=1)?.@Style-1:.@Styles[.@s]); break; - case 3: message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+"."; - input .@Style,0,.@Styles[.@s]; - if (!.@Style) set .@Style, rand(1,.@Styles[.@s]); - break; - case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; + case 1: + set .@Style, ((.@Style != .@Styles[.@s]) ? .@Style+1 : 1); + break; + case 2: + set .@Style, ((.@Style != 1) ? .@Style-1 : .@Styles[.@s]); + break; + case 3: + message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+"."; + input .@Style,0,.@Styles[.@s]; + if (!.@Style) + set .@Style, rand(1,.@Styles[.@s]); + break; + case 4: + set .@Style, .@Revert; + setlook .@Look[.@s], .@Revert; + break; } } } diff --git a/npc/jobs/2-2a/Creator.txt b/npc/jobs/2-2a/Creator.txt index 9f7c0e4a2f..42a6f14ab5 100644 --- a/npc/jobs/2-2a/Creator.txt +++ b/npc/jobs/2-2a/Creator.txt @@ -101,7 +101,7 @@ valkyrie,53,50,3 script Biochemist#Valkyrie 122,{ mes "responsibility in using these"; mes "secrets for the right ends..."; next; - skill 238,1,0; + skill "AM_BIOETHICS",1,0; mes "[Biochemist]"; mes "Open your eyes..."; mes "Now that you have"; diff --git a/npc/jobs/valkyrie.txt b/npc/jobs/valkyrie.txt index f446c22d34..f4a1a7fc5b 100644 --- a/npc/jobs/valkyrie.txt +++ b/npc/jobs/valkyrie.txt @@ -151,8 +151,8 @@ valkyrie,48,86,4 script Valkyrie# 811,{ jobchange Job_Novice_High; resetlvl(1); set MISC_QUEST,MISC_QUEST | 1024; //<-reset Skill Reset Event - skill 142,1,0; - skill 143,1,0; + skill "NV_FIRSTAID",1,0; + skill "NV_TRICKDEAD",1,0; completequest 1000; next; mes "[Valkyrie]"; diff --git a/npc/pre-re/jobs/1-1/acolyte.txt b/npc/pre-re/jobs/1-1/acolyte.txt index 8b36bec872..4aac026d6a 100644 --- a/npc/pre-re/jobs/1-1/acolyte.txt +++ b/npc/pre-re/jobs/1-1/acolyte.txt @@ -56,9 +56,9 @@ prt_church,184,41,4 script Cleric#aco 60,{ mes "wish you luck on your"; mes "new life's journey."; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Acolyte_High; - skill 156,1,0; + skill "AL_HOLYLIGHT",1,0; mes "[Father Mareusis]"; mes "Now, venture forth and seek those who need your help. May God light your path."; close; @@ -181,7 +181,7 @@ prt_church,184,41,4 script Cleric#aco 60,{ mes "[Father Mareusis]"; mes "I am proud to say that you are now ready to become an Acolyte!"; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; callfunc "Job_Change",Job_Acolyte; callfunc "F_ClearJobVar"; if(checkquest(1001) != -1) { diff --git a/npc/pre-re/jobs/1-1/archer.txt b/npc/pre-re/jobs/1-1/archer.txt index 4be6b8cda8..a496450bc8 100644 --- a/npc/pre-re/jobs/1-1/archer.txt +++ b/npc/pre-re/jobs/1-1/archer.txt @@ -51,10 +51,10 @@ payon_in02,64,71,4 script Archer Guildsman#archer 85,{ mes "need to say anything else."; mes "I know you'll make a great Archer..."; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Archer_high; - skill 147,1,0; - skill 148,1,0; + skill "AC_MAKINGARROW",1,0; + skill "AC_CHARGEARROW",1,0; mes "[Archer Guildsman]"; mes "Although there's no special"; mes "reward for you this time, I hope you understand. Take care of yourself."; diff --git a/npc/pre-re/jobs/1-1/mage.txt b/npc/pre-re/jobs/1-1/mage.txt index 522c02e705..2acbac2c2f 100644 --- a/npc/pre-re/jobs/1-1/mage.txt +++ b/npc/pre-re/jobs/1-1/mage.txt @@ -46,9 +46,9 @@ geffen_in,164,124,4 script Mage Guildsman 123,{ mes "[Mage Guildsman]"; mes "Well, since you have passed the Mage test once, I will not question your qualification. You want to have your magic skills back immediately, don't you?"; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Mage_High; - skill 157,1,0; + skill "MG_ENERGYCOAT",1,0; mes "[Mage Guildsman]"; mes "Wow, for some reason, you look way better than you did before. Anyway, I believe you will do a better job being a Mage as well."; close; diff --git a/npc/pre-re/jobs/1-1/merchant.txt b/npc/pre-re/jobs/1-1/merchant.txt index 46aaf48d72..1940bb6d55 100644 --- a/npc/pre-re/jobs/1-1/merchant.txt +++ b/npc/pre-re/jobs/1-1/merchant.txt @@ -56,11 +56,11 @@ alberta_in,53,43,6 script Merchant#mer 86,{ mes "[Chief Mahnsoo]"; mes "I guess it's destiny that we meet like this once more. Alright. Once again, let me change you into a Merchant!"; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Merchant_High; - skill 153,1,0; - skill 154,1,0; - skill 155,1,0; + skill "MC_CARTREVOLUTION",1,0; + skill "MC_CHANGECART",1,0; + skill "MC_LOUD",1,0; mes "[Chief Mahnsoo]"; mes "Ah~ How nostalgic. Just like old times! Alright, do your best!"; close; diff --git a/npc/pre-re/jobs/1-1/swordman.txt b/npc/pre-re/jobs/1-1/swordman.txt index 247d728950..7187272c35 100644 --- a/npc/pre-re/jobs/1-1/swordman.txt +++ b/npc/pre-re/jobs/1-1/swordman.txt @@ -59,11 +59,11 @@ izlude_in,74,172,4 script Swordman#swd_1 119,{ mes "[Swordman]"; mes "Excellent! Let me promote you to a Swordman right away!"; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Swordman_High; - skill 144,1,0; - skill 145,1,0; - skill 146,1,0; + skill "SM_MOVINGRECOVERY",1,0; + skill "SM_FATALBLOW",1,0; + skill "SM_AUTOBERSERK",1,0; mes "[Swordman]"; mes "Hmm... You look like a well-experienced Swordman. Still, I'm sure that you must train to improve your skills and gain strength!"; close; diff --git a/npc/pre-re/jobs/1-1/thief.txt b/npc/pre-re/jobs/1-1/thief.txt index 9bb0f6f60d..a9587cce13 100644 --- a/npc/pre-re/jobs/1-1/thief.txt +++ b/npc/pre-re/jobs/1-1/thief.txt @@ -40,12 +40,12 @@ moc_prydb1,39,129,2 script Thief Guide 69,{ mes "[Thief Guide]"; mes "Well, I got this feeling like you've been through a lifetime of fighting, so I'm promoting you to a Thief right this minute. I better give you tough guys what you want..."; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Thief_High; - skill 149,1,0; - skill 150,1,0; - skill 151,1,0; - skill 152,1,0; + skill "TF_SPRINKLESAND",1,0; + skill "TF_BACKSLIDING",1,0; + skill "TF_PICKSTONE",1,0; + skill "TF_THROWSTONE",1,0; mes "[Thief Guide]"; mes "Since you've become a Thief, live as a Thief. Now, go for it! Next~"; close; diff --git a/npc/pre-re/jobs/novice/novice.txt b/npc/pre-re/jobs/novice/novice.txt index e040fd237b..c2543115dd 100644 --- a/npc/pre-re/jobs/novice/novice.txt +++ b/npc/pre-re/jobs/novice/novice.txt @@ -753,7 +753,7 @@ new_1-2,83,111,3 script Skill Tutor#nv 753,{ next; mes "^3355FFYou have learned"; mes "the ^4A708BFirst Aid^3355FF skill.^000000"; - skill 142,1,0; //NV_FIRSTAID + skill "NV_FIRSTAID",1,0; set NOV_SK,3; set nov_get_item03,11; next; diff --git a/npc/quests/skills/assassin_skills.txt b/npc/quests/skills/assassin_skills.txt index d97815f2c5..c96e8652e2 100644 --- a/npc/quests/skills/assassin_skills.txt +++ b/npc/quests/skills/assassin_skills.txt @@ -538,7 +538,7 @@ in_moc_16,23,27,5 script Assassin#realgirl 885,{ mes "Yes, that's it...!"; mes "Very well executed."; mes "Good work, "+ strcharinfo(0) +"."; - skill 1003,1,0; + skill "AS_SONICACCEL",1,0; set ASSN_SK,7; next; mes "[Esmille]"; diff --git a/npc/quests/skills/bard_skills.txt b/npc/quests/skills/bard_skills.txt index a7a53ee712..ba05e010c6 100644 --- a/npc/quests/skills/bard_skills.txt +++ b/npc/quests/skills/bard_skills.txt @@ -571,7 +571,7 @@ morocc_in,169,72,7 script Spiteful-Looking Bard#bs 741,3,3,{ mes "spinning, head spinning...!''"; specialeffect2 EF_TALK_FROSTJOKE; delitem 574,5; //Egg - skill 1010,1,0; + skill "BA_PANGVOICE",1,0; set qskill_bard,9; next; mes "[Riott]"; diff --git a/npc/quests/skills/rogue_skills.txt b/npc/quests/skills/rogue_skills.txt index 3641631548..90a19d0cf5 100644 --- a/npc/quests/skills/rogue_skills.txt +++ b/npc/quests/skills/rogue_skills.txt @@ -140,7 +140,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 46,{ mes "eh? Then I will teach you the"; mes "Close Confine skill once again."; specialeffect2 EF_LIGHTSPHERE; - skill 1005,1,0; + skill "RG_CLOSECONFINE",1,0; set ROG_SK,13; close; } @@ -493,7 +493,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 46,{ mes "more about this skill through"; mes "practice, and that you become as great a legend as Chae Takbae."; set ROG_SK,12; - skill 1005,1,0; + skill "RG_CLOSECONFINE",1,0; specialeffect2 EF_LIGHTSPHERE; close; } @@ -505,7 +505,7 @@ in_rogue,355,179,0 script Haijara Greg#rogueguild 46,{ mes "practice. Good luck, and"; mes "thanks again for your help."; set ROG_SK,12; - skill 1005,1,0; + skill "RG_CLOSECONFINE",1,0; specialeffect2 EF_LIGHTSPHERE; close; } diff --git a/npc/re/instances/WolfchevLaboratory.txt b/npc/re/instances/WolfchevLaboratory.txt index 194804310e..6794a35683 100644 --- a/npc/re/instances/WolfchevLaboratory.txt +++ b/npc/re/instances/WolfchevLaboratory.txt @@ -973,99 +973,99 @@ lhz_cube,233,24,4 script Sorcerer#Bio4Reward 4_M_UMDANCEKID,{ mes "OK! Which power do you want to dwell in your equipment?"; next; switch(select("I say no! I don't need that!!", .@menu_in$[1], .@menu_in$[2], .@menu_in$[3])) { + case 1: + mes "[Pudding]"; + mes "Ohhh.. I was looking forward to doing it, but it's all up to you......"; + close; + case 2: + if (countitem(6469) < 10) { + mes "[Pudding]"; + mes "Not enough '^F2766EWill of Warrior^000000', You need to bring 10 '^F2766EWill of Warrior^000000'"; + close; + } + else if (getequipcardid(.@part, 3) > 0) { + mes "[Pudding]"; + mes "This equipment already got the power of '^F2766EWill of Warrior^000000'."; + close; + } else { + .@socket_type = 4; + } + break; + case 3: + if (countitem(6470) < 10) { + mes "[Pudding]"; + mes "Not enough '^952420Thirst for Blood^000000', You need to bring 10 '^952420Thirst for Blood^000000'"; + close; + } + else if (getequipcardid(.@part, 2) > 0) { + mes "[Pudding]"; + mes "This equipment already got the power of '^952420Thirst for Blood^000000'."; + close; + } else { + .@socket_type = 3; + } + break; + case 4: + // Enchant Removal + if (countitem(6471) < 10) { + .@menu_clear$[1] = "^999999Not enough 'Chill of the Dead'^000000"; + .@menu_clear$[2] = "^999999Not enough 'Chill of the Dead'^000000"; + .@4thzptsodyd = 1; + .@3thzptsodyd = 1; + } else { + if (getequipcardid(.@part, 3) > 0) { + .@menu_clear$[1] = "Remove the power of '^F2766EWill of Warrior^000000'"; + } else { + .@menu_clear$[1] = "^999999There's no power to remove^000000"; + .@4thzptsodyd = 1; + } + if (getequipcardid(.@part, 2) > 0) { + .@menu_clear$[2] = "Remove the power of '^952420Thirst for Blood^000000'"; + } else { + .@menu_clear$[2] = "^999999There's no power to remove^000000"; + .@3thzptsodyd = 1; + } + } + mes "[Pudding]"; + mes "Alright, which power do you want to remove?"; + next; + .@menu = select("No, I don't wannna remove any.", .@menu_clear$[1], .@menu_clear$[2]); + switch(.@menu){ case 1: mes "[Pudding]"; - mes "Ohhh.. I was looking forward to doing it, but it's all up to you......"; + mes "Really? Ok. I got it.."; close; case 2: - if (countitem(6469) < 10) { - mes "[Pudding]"; - mes "Not enough '^F2766EWill of Warrior^000000', You need to bring 10 '^F2766EWill of Warrior^000000'"; - close; - } - else if (getequipcardid(.@part, 3) > 0) { - mes "[Pudding]"; - mes "This equipment already got the power of '^F2766EWill of Warrior^000000'."; - close; - } else { - .@socket_type = 4; - } - break; case 3: - if (countitem(6470) < 10) { - mes "[Pudding]"; - mes "Not enough '^952420Thirst for Blood^000000', You need to bring 10 '^952420Thirst for Blood^000000'"; - close; - } - else if (getequipcardid(.@part, 2) > 0) { - mes "[Pudding]"; - mes "This equipment already got the power of '^952420Thirst for Blood^000000'."; - close; - } else { - .@socket_type = 3; - } - break; - case 4: - // Enchant Removal if (countitem(6471) < 10) { - .@menu_clear$[1] = "^999999Not enough 'Chill of the Dead'^000000"; - .@menu_clear$[2] = "^999999Not enough 'Chill of the Dead'^000000"; - .@4thzptsodyd = 1; - .@3thzptsodyd = 1; - } else { - if (getequipcardid(.@part, 3) > 0) { - .@menu_clear$[1] = "Remove the power of '^F2766EWill of Warrior^000000'"; - } else { - .@menu_clear$[1] = "^999999There's no power to remove^000000"; - .@4thzptsodyd = 1; - } - if (getequipcardid(.@part, 2) > 0) { - .@menu_clear$[2] = "Remove the power of '^952420Thirst for Blood^000000'"; - } else { - .@menu_clear$[2] = "^999999There's no power to remove^000000"; - .@3thzptsodyd = 1; - } + mes "[Pudding]"; + mes "Not enough '^88C6F7Chill of the Dead^000000', You need to bring 10 '^88C6F7Chill of the Dead^000000'"; + close; } + if ( (.@menu==3 && .@3thzptsodyd == 1) || (.@menu==2 && .@4thzptsodyd == 1) ) { + mes "[Pudding]"; + mes "This equipment didn't get any special power."; + close; + } + setarray .@equip_card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3); + if (.@menu == 2) + .@equip_card[3] = 0; + else + .@equip_card[2] = 0; + .@equip_item = getequipid(.@part); + specialeffect EF_BEGINSPELL2, AREA, "Sorcerer#Bio4Reward"; + progressbar "ffff00", 2; + specialeffect2 EF_FROSTWEAPON; + delitem 6471, 10; //Goast_Chill + delequip .@part; + getitem2 .@equip_item, 1, 1, .@refine_count, 0, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3]; mes "[Pudding]"; - mes "Alright, which power do you want to remove?"; - next; - .@menu = select("No, I don't wannna remove any.", .@menu_clear$[1], .@menu_clear$[2]); - switch(.@menu){ - case 1: - mes "[Pudding]"; - mes "Really? Ok. I got it.."; - close; - case 2: - case 3: - if (countitem(6471) < 10) { - mes "[Pudding]"; - mes "Not enough '^88C6F7Chill of the Dead^000000', You need to bring 10 '^88C6F7Chill of the Dead^000000'"; - close; - } - if ( (.@menu==3 && .@3thzptsodyd == 1) || (.@menu==2 && .@4thzptsodyd == 1) ) { - mes "[Pudding]"; - mes "This equipment didn't get any special power."; - close; - } - setarray .@equip_card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3); - if (.@menu == 2) - .@equip_card[3] = 0; - else - .@equip_card[2] = 0; - .@equip_item = getequipid(.@part); - specialeffect EF_BEGINSPELL2, AREA, "Sorcerer#Bio4Reward"; - progressbar "ffff00", 2; - specialeffect2 EF_FROSTWEAPON; - delitem 6471, 10; //Goast_Chill - delequip .@part; - getitem2 .@equip_item, 1, 1, .@refine_count, 0, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3]; - mes "[Pudding]"; - if (.@menu==3) - mes "The power of '^952420Thirst for Blood^000000' has been perfectly removed."; - else - mes "The power of '^F2766EWill of Warrior^000000' has been perfectly removed."; - close; - } + if (.@menu == 3) + mes "The power of '^952420Thirst for Blood^000000' has been perfectly removed."; + else + mes "The power of '^F2766EWill of Warrior^000000' has been perfectly removed."; + close; + } } mes "[Pudding]"; mes "Before I dwell the power, let me explain to you cautions."; diff --git a/npc/re/jobs/1-1/acolyte.txt b/npc/re/jobs/1-1/acolyte.txt index eb6630bbf1..2792a17a39 100644 --- a/npc/re/jobs/1-1/acolyte.txt +++ b/npc/re/jobs/1-1/acolyte.txt @@ -39,9 +39,9 @@ prt_church,184,41,4 script Cleric#aco 60,{ mes "wish you luck on your"; mes "new life's journey."; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Acolyte_High; - skill 156,1,0; + skill "AL_HOLYLIGHT",1,0; mes "[Father Mareusis]"; mes "Now, venture forth and seek those who need your help. May God light your path."; close; diff --git a/npc/re/jobs/1-1/archer.txt b/npc/re/jobs/1-1/archer.txt index 64b9f4989b..1e10c098b9 100644 --- a/npc/re/jobs/1-1/archer.txt +++ b/npc/re/jobs/1-1/archer.txt @@ -39,10 +39,10 @@ payon_in02,64,71,4 script Archer Guildsman#archer 85,{ mes "need to say anything else."; mes "I know you'll make a great Archer..."; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Archer_high; - skill 147,1,0; - skill 148,1,0; + skill "AC_MAKINGARROW",1,0; + skill "AC_CHARGEARROW",1,0; mes "[Archer Guildsman]"; mes "Although there's no special"; mes "reward for you this time, I hope you understand. Take care of yourself."; diff --git a/npc/re/jobs/1-1/mage.txt b/npc/re/jobs/1-1/mage.txt index 58e7b0ee76..4726aef50f 100644 --- a/npc/re/jobs/1-1/mage.txt +++ b/npc/re/jobs/1-1/mage.txt @@ -33,9 +33,9 @@ geffen_in,164,124,4 script Mage Guildsman#mage 123,{ mes "[Mage Guildsman]"; mes "Well, since you have passed the Mage test once, I will not question your qualification. You want to have your magic skills back immediately, don't you?"; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Mage_High; - skill 157,1,0; + skill "MG_ENERGYCOAT",1,0; mes "[Mage Guildsman]"; mes "Wow, for some reason, you look way better than you did before. Anyway, I believe you will do a better job being a Mage as well."; close; diff --git a/npc/re/jobs/1-1/merchant.txt b/npc/re/jobs/1-1/merchant.txt index 2d2b228075..8b55d13718 100644 --- a/npc/re/jobs/1-1/merchant.txt +++ b/npc/re/jobs/1-1/merchant.txt @@ -37,11 +37,11 @@ alberta_in,53,43,6 script Merchant#mer 86,{ mes "[Chief Mahnsoo]"; mes "I guess it's destiny that we meet like this once more. Alright. Once again, let me change you into a Merchant!"; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Merchant_High; - skill 153,1,0; - skill 154,1,0; - skill 155,1,0; + skill "MC_CARTREVOLUTION",1,0; + skill "MC_CHANGECART",1,0; + skill "MC_LOUD",1,0; mes "[Chief Mahnsoo]"; mes "Ah~ How nostalgic. Just like old times! Alright, do your best!"; close; diff --git a/npc/re/jobs/1-1/swordman.txt b/npc/re/jobs/1-1/swordman.txt index acba78f021..0dfaaabae1 100644 --- a/npc/re/jobs/1-1/swordman.txt +++ b/npc/re/jobs/1-1/swordman.txt @@ -34,11 +34,11 @@ izlude_in,74,172,4 script Swordman#swd 119,{ mes "[Swordman]"; mes "Excellent! Let me promote you to a Swordman right away!"; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Swordman_High; - skill 144,1,0; - skill 145,1,0; - skill 146,1,0; + skill "SM_MOVINGRECOVERY",1,0; + skill "SM_FATALBLOW",1,0; + skill "SM_AUTOBERSERK",1,0; mes "[Swordman]"; mes "Hmm... You look like a well-experienced Swordman. Still, I'm sure that you must train to improve your skills and gain strength!"; close; diff --git a/npc/re/jobs/1-1/thief.txt b/npc/re/jobs/1-1/thief.txt index fd52a0f3c9..41e88964de 100644 --- a/npc/re/jobs/1-1/thief.txt +++ b/npc/re/jobs/1-1/thief.txt @@ -30,12 +30,12 @@ moc_prydb1,39,129,2 script Thief Guide#thief 69,{ mes "[Thief Guide]"; mes "Well, I got this feeling like you've been through a lifetime of fighting, so I'm promoting you to a Thief right this minute. I better give you tough guys what you want..."; next; - skill 143,0,0; + skill "NV_TRICKDEAD",0,0; jobchange Job_Thief_High; - skill 149,1,0; - skill 150,1,0; - skill 151,1,0; - skill 152,1,0; + skill "TF_SPRINKLESAND",1,0; + skill "TF_BACKSLIDING",1,0; + skill "TF_PICKSTONE",1,0; + skill "TF_THROWSTONE",1,0; mes "[Thief Guide]"; mes "Since you've become a Thief, live as a Thief. Now, go for it! Next~"; close; diff --git a/npc/re/merchants/enchan_mora.txt b/npc/re/merchants/enchan_mora.txt index 6439a25bf8..657d3a7bab 100644 --- a/npc/re/merchants/enchan_mora.txt +++ b/npc/re/merchants/enchan_mora.txt @@ -1110,13 +1110,6 @@ L_Socket: } delitem 6380,1; //Mora_Coin set Zeny, Zeny-100000; - - // anti-hack - if (callfunc("F_IsEquipIDHack", .@part, .@equip_id) || - callfunc("F_IsEquipRefineHack", .@part, .@equip_refine) || - callfunc("F_IsEquipCardHack", .@part, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3])) - close; - delequip .@part; if (.@enchant == 9) { specialeffect2 EF_SUI_EXPLOSION;