Some script cleaning.

- Replaced lots of numerics with constants.
- Added spacing to make some scripts more readable.

Fixed a mistake in 14fddd3.

Signed-off-by: Euphy <euphy.raliel@rathena.org>
This commit is contained in:
Euphy 2014-08-23 15:17:59 -04:00
parent 2acf9a401a
commit 30b4d578a7
25 changed files with 466 additions and 276 deletions

View File

@ -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;
}

View File

@ -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<getargcount(); set .@i,.@i+1)
set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
.@menu$ = "";
for (.@i = 0; .@i < getargcount(); .@i++)
.@menu$ = .@menu$ + " ~ " + jobname(getarg(.@i)) + ":";
.@menu$ = .@menu$+" ~ ^777777Cancel^000000";
next;
set .@i, getarg(select(.@menu$)-1,0);
if (!.@i) close;
if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
.@i = getarg(select(.@menu$) - 1, 0);
if (!.@i)
close;
if ((.@i == Job_SuperNovice || .@i == Job_Super_Baby) && BaseLevel < .SNovice) {
mes "[Job Master]";
mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
mes "A base level of " + .SNovice + " is required to turn into a " + jobname(.@i) + ".";
close;
}
mes "[Job Master]";
mes "Are you sure?";
next;
} else
set .@i, getarg(0);
if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 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;
}

View File

@ -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!";

View File

@ -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:

View File

@ -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;
}
}
}

View File

@ -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";

View File

@ -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]";

View File

@ -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) {

View File

@ -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.";

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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]";

View File

@ -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]";

View File

@ -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;
}

View File

@ -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.";

View File

@ -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;

View File

@ -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.";

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;