Moved remaining refine NPC to the database (#3145)
* Fixes #2510. * Added Holink and Wagjak values to their own entries in the refine database. * Added several anti-hack checks to refine NPC. Thanks to the suggestion from @mazvi and @Atemo!
This commit is contained in:
parent
394fb8acff
commit
a12c79f782
@ -38,6 +38,12 @@ Armor:
|
|||||||
- Type: REFINE_COST_OVER10_HD
|
- Type: REFINE_COST_OVER10_HD
|
||||||
Price: 100000
|
Price: 100000
|
||||||
Material: 6225
|
Material: 6225
|
||||||
|
- Type: REFINE_COST_HOLINK
|
||||||
|
Price: 15000
|
||||||
|
Material: 7619
|
||||||
|
- Type: REFINE_COST_WAGJAK
|
||||||
|
Price: 20000
|
||||||
|
Material: 985
|
||||||
Rates:
|
Rates:
|
||||||
- Level: 1
|
- Level: 1
|
||||||
Bonus: 100
|
Bonus: 100
|
||||||
@ -163,6 +169,12 @@ WeaponLv1:
|
|||||||
- Type: REFINE_COST_OVER10_HD
|
- Type: REFINE_COST_OVER10_HD
|
||||||
Price: 100000
|
Price: 100000
|
||||||
Material: 6226
|
Material: 6226
|
||||||
|
- Type: REFINE_COST_HOLINK
|
||||||
|
Price: 500
|
||||||
|
Material: 7620
|
||||||
|
- Type: REFINE_COST_WAGJAK
|
||||||
|
Price: 1000
|
||||||
|
Material: 1010
|
||||||
Rates:
|
Rates:
|
||||||
- Level: 8
|
- Level: 8
|
||||||
NormalChance: 60
|
NormalChance: 60
|
||||||
@ -254,6 +266,12 @@ WeaponLv2:
|
|||||||
- Type: REFINE_COST_OVER10_HD
|
- Type: REFINE_COST_OVER10_HD
|
||||||
Price: 100000
|
Price: 100000
|
||||||
Material: 6226
|
Material: 6226
|
||||||
|
- Type: REFINE_COST_HOLINK
|
||||||
|
Price: 2000
|
||||||
|
Material: 7620
|
||||||
|
- Type: REFINE_COST_WAGJAK
|
||||||
|
Price: 2000
|
||||||
|
Material: 1011
|
||||||
Rates:
|
Rates:
|
||||||
- Level: 7
|
- Level: 7
|
||||||
NormalChance: 60
|
NormalChance: 60
|
||||||
@ -350,6 +368,12 @@ WeaponLv3:
|
|||||||
- Type: REFINE_COST_OVER10_HD
|
- Type: REFINE_COST_OVER10_HD
|
||||||
Price: 100000
|
Price: 100000
|
||||||
Material: 6226
|
Material: 6226
|
||||||
|
- Type: REFINE_COST_HOLINK
|
||||||
|
Price: 20000
|
||||||
|
Material: 7620
|
||||||
|
- Type: REFINE_COST_WAGJAK
|
||||||
|
Price: 10000
|
||||||
|
Material: 984
|
||||||
Rates:
|
Rates:
|
||||||
- Level: 6
|
- Level: 6
|
||||||
NormalChance: 60
|
NormalChance: 60
|
||||||
@ -451,6 +475,12 @@ WeaponLv4:
|
|||||||
- Type: REFINE_COST_OVER10_HD
|
- Type: REFINE_COST_OVER10_HD
|
||||||
Price: 100000
|
Price: 100000
|
||||||
Material: 6226
|
Material: 6226
|
||||||
|
- Type: REFINE_COST_HOLINK
|
||||||
|
Price: 50000
|
||||||
|
Material: 7620
|
||||||
|
- Type: REFINE_COST_WAGJAK
|
||||||
|
Price: 20000
|
||||||
|
Material: 984
|
||||||
Rates:
|
Rates:
|
||||||
- Level: 5
|
- Level: 5
|
||||||
NormalChance: 60
|
NormalChance: 60
|
||||||
|
@ -2768,6 +2768,8 @@ REFINE_COST_OVER10 - For refining over +10
|
|||||||
REFINE_COST_HD - For refining with HD ores
|
REFINE_COST_HD - For refining with HD ores
|
||||||
REFINE_COST_ENRICHED - For refining with enriched ores
|
REFINE_COST_ENRICHED - For refining with enriched ores
|
||||||
REFINE_COST_OVER10_HD - For refining over +10 with HD ores
|
REFINE_COST_OVER10_HD - For refining over +10 with HD ores
|
||||||
|
REFINE_COST_HOLINK - For refining at Holink in Malangdo
|
||||||
|
REFINE_COST_WAGJAK - For refining at Refining Machine Wagjak in the Novice Academy
|
||||||
|
|
||||||
This function will return required cost for refining based on <information> argument.
|
This function will return required cost for refining based on <information> argument.
|
||||||
|
|
||||||
|
@ -55,12 +55,14 @@ payon,157,146,6 script Suhnbi#cash 85,{
|
|||||||
close;
|
close;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.@refineitemid = getequipid(.@part); // save id of the item
|
||||||
|
.@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
|
||||||
.@price = getequiprefinecost(.@part, REFINE_COST_ENRICHED, REFINE_ZENY_COST);
|
.@price = getequiprefinecost(.@part, REFINE_COST_ENRICHED, REFINE_ZENY_COST);
|
||||||
.@material = getequiprefinecost(.@part, REFINE_COST_ENRICHED, REFINE_MATERIAL_ID);
|
.@material = getequiprefinecost(.@part, REFINE_COST_ENRICHED, REFINE_MATERIAL_ID);
|
||||||
|
|
||||||
// Make sure you have the neccessary items and Zeny to refine your items
|
// Make sure you have the necessary items and Zeny to refine your items
|
||||||
// Determines chance of failure and verifies that you want to continue.
|
// Determines chance of failure and verifies that you want to continue.
|
||||||
callsub S_RefineValidate,getequipweaponlv(.@part),.@material,.@price,.@part;
|
callsub S_RefineValidate,getequipweaponlv(.@part),.@material,.@price,.@part,.@refineitemid,.@refinerycnt;
|
||||||
|
|
||||||
mes "[Suhnbi]";
|
mes "[Suhnbi]";
|
||||||
mes "Clang! Clang! Clang!";
|
mes "Clang! Clang! Clang!";
|
||||||
@ -89,7 +91,8 @@ payon,157,146,6 script Suhnbi#cash 85,{
|
|||||||
S_RefineValidate:
|
S_RefineValidate:
|
||||||
.@weapon_lvl = getarg(0);
|
.@weapon_lvl = getarg(0);
|
||||||
.@item_req = getarg(1);
|
.@item_req = getarg(1);
|
||||||
set .@price, getarg(2);
|
.@price = getarg(2);
|
||||||
|
.@part = getarg(3);
|
||||||
|
|
||||||
// If the VIP system is enabled, the prices for non-VIP players are considerably higher.
|
// If the VIP system is enabled, the prices for non-VIP players are considerably higher.
|
||||||
if (VIP_SCRIPT && !vip_status(VIP_STATUS_ACTIVE)) {
|
if (VIP_SCRIPT && !vip_status(VIP_STATUS_ACTIVE)) {
|
||||||
@ -109,7 +112,7 @@ S_RefineValidate:
|
|||||||
mes "Would you like to continue?";
|
mes "Would you like to continue?";
|
||||||
next;
|
next;
|
||||||
if(select("Yes:No") == 1) {
|
if(select("Yes:No") == 1) {
|
||||||
if (getequippercentrefinery(getarg(3)) < 100) {
|
if (getequippercentrefinery(.@part) < 100) {
|
||||||
if (.@weapon_lvl) {
|
if (.@weapon_lvl) {
|
||||||
mes "[Suhnbi]";
|
mes "[Suhnbi]";
|
||||||
mes "Wow!!";
|
mes "Wow!!";
|
||||||
@ -152,6 +155,18 @@ S_RefineValidate:
|
|||||||
if (countitem(.@item_req) > 0 && Zeny > .@price) {
|
if (countitem(.@item_req) > 0 && Zeny > .@price) {
|
||||||
delitem .@item_req,1;
|
delitem .@item_req,1;
|
||||||
set Zeny, Zeny - .@price;
|
set Zeny, Zeny - .@price;
|
||||||
|
|
||||||
|
// anti-hack
|
||||||
|
if (callfunc("F_IsEquipIDHack", .@part, getarg(4)) ||
|
||||||
|
callfunc("F_IsEquipRefineHack", .@part, getarg(5))) {
|
||||||
|
mes "[Holink]";
|
||||||
|
emotion ET_FRET;
|
||||||
|
mes "Wait a second...";
|
||||||
|
mes "Do you think I'm stupid?!";
|
||||||
|
mes "You switched the item while I wasn't looking! Get out of here!";
|
||||||
|
close;
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mes "[Suhnbi]";
|
mes "[Suhnbi]";
|
||||||
|
@ -12921,7 +12921,7 @@ izlude_d,153,126,1 duplicate(Refinery Owner Han#iz) Refinery Owner Han#iz_d 4_M_
|
|||||||
if (isbegin_quest(5153) == 1) {
|
if (isbegin_quest(5153) == 1) {
|
||||||
if (getequipweaponlv(.@part) == 1) {
|
if (getequipweaponlv(.@part) == 1) {
|
||||||
mes "[Refining Machine Wagjak]";
|
mes "[Refining Machine Wagjak]";
|
||||||
mes "Type : 1 level weapon";
|
mes "Type : Level 1 weapon";
|
||||||
mes "Charge : Phracon, 1000 zeny";
|
mes "Charge : Phracon, 1000 zeny";
|
||||||
mes "Service usage coupon sensed. No charge to be requested. Will you refine?";
|
mes "Service usage coupon sensed. No charge to be requested. Will you refine?";
|
||||||
next;
|
next;
|
||||||
@ -12969,33 +12969,17 @@ izlude_d,153,126,1 duplicate(Refinery Owner Han#iz) Refinery Owner Han#iz_d 4_M_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch(getequipweaponlv(.@part)) {
|
|
||||||
case 0:
|
.@refineitemid = getequipid(.@part); // save id of the item
|
||||||
|
.@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
|
||||||
|
.@price = getequiprefinecost(.@part, REFINE_COST_WAGJAK, REFINE_ZENY_COST);
|
||||||
|
.@material = getequiprefinecost(.@part, REFINE_COST_WAGJAK, REFINE_MATERIAL_ID);
|
||||||
|
|
||||||
|
if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4))
|
||||||
|
.@type$ = "Level " + getequipweaponlv(.@part) + " weapon";
|
||||||
|
else
|
||||||
.@type$ = "Armor";
|
.@type$ = "Armor";
|
||||||
.@material = 985;// Elunium
|
|
||||||
.@price = 20000;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
.@type$ = "Level 1 weapon";
|
|
||||||
.@material = 1010;// Phracon
|
|
||||||
.@price = 1000;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
.@type$ = "Level 2 weapon";
|
|
||||||
.@material = 1011;// Emveretarcon
|
|
||||||
.@price = 2000;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
.@type$ = "Level 3 weapon";
|
|
||||||
.@material = 984;// Oridecon
|
|
||||||
.@price = 10000;
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
.@type$ = "Level 4 weapon";
|
|
||||||
.@material = 984;// Oridecon
|
|
||||||
.@price = 20000;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
mes "[Refining Machine Wagjak]";
|
mes "[Refining Machine Wagjak]";
|
||||||
mes "Type : "+ .@type$ +"";
|
mes "Type : "+ .@type$ +"";
|
||||||
mes "Charge : "+ getitemname(.@material) +", "+ .@price +" zeny";
|
mes "Charge : "+ getitemname(.@material) +", "+ .@price +" zeny";
|
||||||
@ -13025,6 +13009,17 @@ izlude_d,153,126,1 duplicate(Refinery Owner Han#iz) Refinery Owner Han#iz_d 4_M_
|
|||||||
if (countitem(.@material) > 0 && Zeny >= .@price) {
|
if (countitem(.@material) > 0 && Zeny >= .@price) {
|
||||||
delitem .@material, 1;
|
delitem .@material, 1;
|
||||||
Zeny -= .@price;
|
Zeny -= .@price;
|
||||||
|
|
||||||
|
// anti-hack
|
||||||
|
if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
|
||||||
|
callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) {
|
||||||
|
mes "[Refining Machine Wagjak]";
|
||||||
|
emotion ET_FRET;
|
||||||
|
mes "Wait a second...";
|
||||||
|
mes "Do you think I'm stupid?!";
|
||||||
|
mes "You switched the item while I wasn't looking! Get out of here!";
|
||||||
|
close;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
mes "[Refining Machine Wagjak]";
|
mes "[Refining Machine Wagjak]";
|
||||||
mes "^FF0000- error number 8282 -^000000";
|
mes "^FF0000- error number 8282 -^000000";
|
||||||
|
@ -70,33 +70,31 @@ malangdo,221,174,6 script Holink#mal_cash 559,{
|
|||||||
close;
|
close;
|
||||||
}
|
}
|
||||||
mes "[Holink]";
|
mes "[Holink]";
|
||||||
// TODO: Price is different to Suhnbi of Payon. Intended? [Secret]
|
.@refineitemid = getequipid(.@part); // save id of the item
|
||||||
.@material = getequiprefinecost(.@part, REFINE_COST_ENRICHED, REFINE_MATERIAL_ID);
|
.@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
|
||||||
|
.@price = getequiprefinecost(.@part, REFINE_COST_HOLINK, REFINE_ZENY_COST);
|
||||||
|
.@material = getequiprefinecost(.@part, REFINE_COST_HOLINK, REFINE_MATERIAL_ID);
|
||||||
|
|
||||||
switch(getequipweaponlv(.@part)) {
|
switch(getequipweaponlv(.@part)) {
|
||||||
default:
|
default:
|
||||||
case 0: // Armor
|
case 0: // Armor
|
||||||
set .@price,15000;
|
.@type$ = "armor";
|
||||||
set .@type$,"armor";
|
|
||||||
mes "You have chosen an armor, meow~";
|
mes "You have chosen an armor, meow~";
|
||||||
break;
|
break;
|
||||||
case 1: // Level 1 Weapon
|
case 1: // Level 1 Weapon
|
||||||
set .@price,500;
|
.@type$ = "weapon";
|
||||||
set .@type$,"weapon";
|
|
||||||
mes "A level 1 weapon...?";
|
mes "A level 1 weapon...?";
|
||||||
break;
|
break;
|
||||||
case 2: // Level 2 Weapon
|
case 2: // Level 2 Weapon
|
||||||
set .@price,2000;
|
.@type$ = "weapon";
|
||||||
set .@type$,"weapon";
|
|
||||||
mes "Meow, a level 2 weapon...?";
|
mes "Meow, a level 2 weapon...?";
|
||||||
break;
|
break;
|
||||||
case 3: // Level 3 Weapon
|
case 3: // Level 3 Weapon
|
||||||
set .@price,20000;
|
.@type$ = "weapon";
|
||||||
set .@type$,"weapon";
|
|
||||||
mes "Meow Meow~~ A level 3 weapon~~";
|
mes "Meow Meow~~ A level 3 weapon~~";
|
||||||
break;
|
break;
|
||||||
case 4: // Level 4 Weapon
|
case 4: // Level 4 Weapon
|
||||||
set .@price,50000;
|
.@type$ = "weapon";
|
||||||
set .@type$,"weapon";
|
|
||||||
mes "Me-Meow!... A level 4 weapon...!";
|
mes "Me-Meow!... A level 4 weapon...!";
|
||||||
mes "I've only seen it twice while";
|
mes "I've only seen it twice while";
|
||||||
mes "learning from Aragam... Me-Meow!!";
|
mes "learning from Aragam... Me-Meow!!";
|
||||||
@ -108,7 +106,7 @@ malangdo,221,174,6 script Holink#mal_cash 559,{
|
|||||||
if(select("Yes!!:No!!") == 2) {
|
if(select("Yes!!:No!!") == 2) {
|
||||||
mes "[Holink]";
|
mes "[Holink]";
|
||||||
mes "Kyack!!";
|
mes "Kyack!!";
|
||||||
mes "You don't belive in refine master Holink, meow?~";
|
mes "You don't believe in refine master Holink, meow?~";
|
||||||
close;
|
close;
|
||||||
}
|
}
|
||||||
if (getequippercentrefinery(.@part, true) < 100) {
|
if (getequippercentrefinery(.@part, true) < 100) {
|
||||||
@ -148,6 +146,18 @@ malangdo,221,174,6 script Holink#mal_cash 559,{
|
|||||||
}
|
}
|
||||||
delitem .@material,1;
|
delitem .@material,1;
|
||||||
set Zeny, Zeny-.@price;
|
set Zeny, Zeny-.@price;
|
||||||
|
|
||||||
|
// anti-hack
|
||||||
|
if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
|
||||||
|
callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) {
|
||||||
|
mes "[Holink]";
|
||||||
|
emotion ET_FRET;
|
||||||
|
mes "Wait a second...";
|
||||||
|
mes "Do you think I'm stupid?!";
|
||||||
|
mes "You switched the item while I wasn't looking! Get out of here!";
|
||||||
|
close;
|
||||||
|
}
|
||||||
|
|
||||||
if (getequippercentrefinery(.@part, true) > rand(100)) {
|
if (getequippercentrefinery(.@part, true) > rand(100)) {
|
||||||
successrefitem .@part;
|
successrefitem .@part;
|
||||||
mes "[Holink]";
|
mes "[Holink]";
|
||||||
|
@ -74,6 +74,8 @@
|
|||||||
close;
|
close;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.@refineitemid = getequipid(.@part); // save id of the item
|
||||||
|
.@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
|
||||||
.@price = getequiprefinecost(.@part, REFINE_COST_HD, REFINE_ZENY_COST);
|
.@price = getequiprefinecost(.@part, REFINE_COST_HD, REFINE_ZENY_COST);
|
||||||
.@material = getequiprefinecost(.@part, REFINE_COST_HD, REFINE_MATERIAL_ID);
|
.@material = getequiprefinecost(.@part, REFINE_COST_HD, REFINE_MATERIAL_ID);
|
||||||
|
|
||||||
@ -105,6 +107,18 @@
|
|||||||
}
|
}
|
||||||
delitem .@material,1;
|
delitem .@material,1;
|
||||||
set Zeny, Zeny-.@price;
|
set Zeny, Zeny-.@price;
|
||||||
|
|
||||||
|
// anti-hack
|
||||||
|
if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
|
||||||
|
callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) {
|
||||||
|
mes "[Blacksmith Mighty Hammer]";
|
||||||
|
emotion ET_FRET;
|
||||||
|
mes "Wait a second...";
|
||||||
|
mes "Do you think I'm stupid?!";
|
||||||
|
mes "You switched the item while I wasn't looking! Get out of here!";
|
||||||
|
close;
|
||||||
|
}
|
||||||
|
|
||||||
mes "[Blacksmith Mighty Hammer]";
|
mes "[Blacksmith Mighty Hammer]";
|
||||||
mes "Tac! Tac! Tac!";
|
mes "Tac! Tac! Tac!";
|
||||||
if (getequippercentrefinery(.@part, true) > rand(100)) {
|
if (getequippercentrefinery(.@part, true) > rand(100)) {
|
||||||
@ -200,6 +214,8 @@ lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 826
|
|||||||
mes "This weapon is perfect, no need to refine it anymore~";
|
mes "This weapon is perfect, no need to refine it anymore~";
|
||||||
close;
|
close;
|
||||||
}
|
}
|
||||||
|
.@refineitemid = getequipid(.@part); // save id of the item
|
||||||
|
.@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
|
||||||
.@price = getequiprefinecost(.@part, REFINE_COST_OVER10_HD, REFINE_ZENY_COST);
|
.@price = getequiprefinecost(.@part, REFINE_COST_OVER10_HD, REFINE_ZENY_COST);
|
||||||
.@material = getequiprefinecost(.@part, REFINE_COST_OVER10_HD, REFINE_MATERIAL_ID);
|
.@material = getequiprefinecost(.@part, REFINE_COST_OVER10_HD, REFINE_MATERIAL_ID);
|
||||||
switch(getequipweaponlv(.@part)) {
|
switch(getequipweaponlv(.@part)) {
|
||||||
@ -253,6 +269,18 @@ lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 826
|
|||||||
}
|
}
|
||||||
delitem .@material,1;
|
delitem .@material,1;
|
||||||
set Zeny, Zeny-.@price;
|
set Zeny, Zeny-.@price;
|
||||||
|
|
||||||
|
// anti-hack
|
||||||
|
if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
|
||||||
|
callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) {
|
||||||
|
mes "[Basta]";
|
||||||
|
emotion ET_FRET;
|
||||||
|
mes "Wait a second...";
|
||||||
|
mes "Do you think I'm stupid?!";
|
||||||
|
mes "You switched the item while I wasn't looking! Get out of here!";
|
||||||
|
close;
|
||||||
|
}
|
||||||
|
|
||||||
mes "Pow! Pow! Pow! Pow!";
|
mes "Pow! Pow! Pow! Pow!";
|
||||||
if (getequippercentrefinery(.@part, true) > rand(100)) {
|
if (getequippercentrefinery(.@part, true) > rand(100)) {
|
||||||
successrefitem .@part;
|
successrefitem .@part;
|
||||||
|
@ -439,6 +439,8 @@ malangdo,224,172,6 script Clink#mal_normal 544,{
|
|||||||
close;
|
close;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.@refineitemid = getequipid(.@part); // save id of the item
|
||||||
|
.@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
|
||||||
.@price = getequiprefinecost(.@part, REFINE_COST_NORMAL, REFINE_ZENY_COST);
|
.@price = getequiprefinecost(.@part, REFINE_COST_NORMAL, REFINE_ZENY_COST);
|
||||||
.@material = getequiprefinecost(.@part, REFINE_COST_NORMAL, REFINE_MATERIAL_ID);
|
.@material = getequiprefinecost(.@part, REFINE_COST_NORMAL, REFINE_MATERIAL_ID);
|
||||||
|
|
||||||
@ -502,6 +504,18 @@ malangdo,224,172,6 script Clink#mal_normal 544,{
|
|||||||
}
|
}
|
||||||
delitem .@material,1;
|
delitem .@material,1;
|
||||||
Zeny = Zeny-.@price;
|
Zeny = Zeny-.@price;
|
||||||
|
|
||||||
|
// anti-hack
|
||||||
|
if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
|
||||||
|
callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) {
|
||||||
|
mes "[Clink]";
|
||||||
|
emotion ET_FRET;
|
||||||
|
mes "Wait a second...";
|
||||||
|
mes "Do you think I'm stupid?!";
|
||||||
|
mes "You switched the item while I wasn't looking! Get out of here!";
|
||||||
|
close;
|
||||||
|
}
|
||||||
|
|
||||||
if (getequippercentrefinery(.@part) <= rand(100)) {
|
if (getequippercentrefinery(.@part) <= rand(100)) {
|
||||||
failedrefitem .@part;
|
failedrefitem .@part;
|
||||||
mes "[Clink]";
|
mes "[Clink]";
|
||||||
|
@ -76,6 +76,8 @@ prontera,184,177,6 script Refine Master 851,{
|
|||||||
mes "This item is impossible to refine.";
|
mes "This item is impossible to refine.";
|
||||||
close;
|
close;
|
||||||
}
|
}
|
||||||
|
.@refineitemid = getequipid(.@part); // save id of the item
|
||||||
|
.@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
|
||||||
switch(getequipweaponlv(.@part)) {
|
switch(getequipweaponlv(.@part)) {
|
||||||
default:
|
default:
|
||||||
case 0:
|
case 0:
|
||||||
@ -143,9 +145,20 @@ prontera,184,177,6 script Refine Master 851,{
|
|||||||
mes "I have my own special way to refine...";
|
mes "I have my own special way to refine...";
|
||||||
mes ".......ka boom!";
|
mes ".......ka boom!";
|
||||||
specialeffect EF_SUI_EXPLOSION;
|
specialeffect EF_SUI_EXPLOSION;
|
||||||
if (countitem(.@ticket_id))
|
if (countitem(.@ticket_id)) {
|
||||||
delitem .@ticket_id,1;
|
delitem .@ticket_id,1;
|
||||||
else {
|
|
||||||
|
// anti-hack
|
||||||
|
if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
|
||||||
|
callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) {
|
||||||
|
mes "[Refine Master]";
|
||||||
|
emotion ET_FRET;
|
||||||
|
mes "Wait a second...";
|
||||||
|
mes "Do you think I'm stupid?!";
|
||||||
|
mes "You switched the item while I wasn't looking! Get out of here!";
|
||||||
|
close;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
next;
|
next;
|
||||||
mes "Error!";
|
mes "Error!";
|
||||||
mes "Please report this.";
|
mes "Please report this.";
|
||||||
|
@ -4960,6 +4960,8 @@
|
|||||||
export_constant(REFINE_COST_HD);
|
export_constant(REFINE_COST_HD);
|
||||||
export_constant(REFINE_COST_ENRICHED);
|
export_constant(REFINE_COST_ENRICHED);
|
||||||
export_constant(REFINE_COST_OVER10_HD);
|
export_constant(REFINE_COST_OVER10_HD);
|
||||||
|
export_constant(REFINE_COST_HOLINK);
|
||||||
|
export_constant(REFINE_COST_WAGJAK);
|
||||||
export_constant(REFINE_COST_MAX);
|
export_constant(REFINE_COST_MAX);
|
||||||
|
|
||||||
/* refine information types */
|
/* refine information types */
|
||||||
|
@ -44,6 +44,8 @@ enum refine_cost_type {
|
|||||||
REFINE_COST_HD,
|
REFINE_COST_HD,
|
||||||
REFINE_COST_ENRICHED,
|
REFINE_COST_ENRICHED,
|
||||||
REFINE_COST_OVER10_HD,
|
REFINE_COST_OVER10_HD,
|
||||||
|
REFINE_COST_HOLINK,
|
||||||
|
REFINE_COST_WAGJAK,
|
||||||
REFINE_COST_MAX
|
REFINE_COST_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user