강화 스크립트
importPackage(Packages.server.items);
importPackage(Packages.client.items);
var ITEM_25 = 2049370;
var ITEM_50 = 2049371;
var ITEM_DT = 4031345;
function start()
{
St = -1;
action(1, 0, 0);
}
function Comma(i)
{
var reg = /(^[+-]?\d+)(\d{3})/;
i+= '';
while (reg.test(i))
i = i.replace(reg, '$1' + ',' + '$2');
return i;
}
function action(M, T, S)
{
if(M != 1)
{
cm.dispose();
return;
}
if(M == 1)
St++;
else
St--;
if(St == 0)
{
cm.sendSpirit("아이템을 강화시키는 일은 내 특기야. 위대한 하프링의 장비는 모두 내 손을 거쳐갔다구~\r\n"
+ "#L0##r저는 충분히 강하니 아이템 강화는 필요 없습니다.#l\r\n"
+ "#L1##b저의 아이템을 더욱 강하게 만들고 싶어요.#l\r\n", true, 0);
}
else if(St == 1)
{
if(S == 0)
{
cm.dispose();
return;
}
inv = cm.getInventory(1);
txt = "어떤 아이템에 강화를 할거야? 지금 인벤토리에 아이템은 이렇게 있는 것 같네.\r\n";
txt += "#L999##r대화를 종료합니다.#l\r\n";
for(i = 0; i < inv.getSlotLimit(); i++)
{
if(inv.getItem(i) == null)
{
continue;
}
txt += "#L"+ i +"##i"+inv.getItem(i).getItemId()+":##l";
}
cm.sendSpirit(txt, true, 0);
}
else if(St == 2)
{
S2 = S;
inz = cm.getInventory(1).getItem(S2);
if(S2 == 999)
{
cm.dispose();
return;
}
if(inz.getEnhance() > 0)
{
cm.sendSpirit("#i2049360:# #Cyellow##t2049360##k를 사용한 아이템에는 스타포스를 진행할 수 없어. 다른 아이템을 선택해 봐.\r\n"
+ "#L999##r저는 충분히 강하니 아이템 강화는 필요 없습니다.#l", true, 0);
cm.dispose();
return;
}
LVL = ItemInformation.getInstance().getReqLevel(inz.getItemId());
STF = inz.getStarForce();
ITF = STF < 25 ? ITEM_25 : ITEM_50;
ALL = LVL < 31 ? Math.floor(STF + STF * (LVL + 10)/5) : Math.floor(STF + (STF * LVL / 50));
ATK = LVL < 31 ? Math.floor(STF + STF * (LVL + 10)/8) : Math.floor(STF + (STF * LVL / 100));
SUC = (100 - Math.floor(STF * 5.9) < 15) ? 15 : 100 - Math.floor(STF * 5.9)
DST = 100 - SUC
SSG = LVL < 31 ? 10 * STF * 531980 : STF * 531980 * Math.floor(LVL / 30);
cm.sendYesNo(" - 선택한 아이템 : #b#i"+inz.getItemId()+":# #t"+inz.getItemId()+"##k\r\n"
+ " - 현재 강화성수 : #e#r"+inz.getStarForce()+"#n강#k\r\n"
+ " - 올스탯 증가량 : #e#r+"+ALL+"#n#k\r\n"
+ " - 공격력 증가량 : #e#r+"+ATK+"#n (마력 증가량)#k\r\n\r\n"
+ " - 강화 필요재료 : #b#i"+ITF+":# #t"+ITF+"##k\r\n"
+ " - 강화 필요메소 : #e#r"+Comma(SSG)+"#n 메소#k\r\n"
+ " - 강화 성공확률 : #e#r"+SUC+"%#n#k\r\n"
+ " - 실패 파괴확률 : #e#r"+DST+"%#n (실패 시 파괴확률)#k\r\n");
}
else if(St == 3)
{
if(!cm.haveItem(ITF))
{
cm.sendSpirit("#Cyellow##i"+ITF+":# #t"+ITF+"##k이 없는 것 같은데? #b타타모 촌장#k님이 몇 장 가지고 있으니까 한 번 촌장님한테 가볼래?\r\n#r#L999#타타모 촌장님이요? 알겠습니다. 한 번 여쭤볼게요.#l", true, 0);
cm.dispose();
return;
}
if(cm.getMeso() < SSG)
{
cm.sendSpirit("#Cyellow#메소#k가 부족한 것 같은데? 메소라면 리프레 주변 뿐만 아니라 메이플 월드 전역에서 얻을 수 있으니까 조금만 더 노력해 봐.\r\n#r#L999#메소가 부족한건가요… 알겠습니다. 모아서 다시 올게요.#l", true, 0);
cm.dispose();
return;
}
cm.gainItem(ITF, -1);
cm.gainMeso(-SSG);
mathSUC = Math.floor(Math.random() * 100);
mathDST = Math.floor(Math.random() * 100);
if(SUC > mathSUC)
{
inz.setStr(inz.getStr() + ALL);
inz.setDex(inz.getDex() + ALL);
inz.setInt(inz.getInt() + ALL);
inz.setLuk(inz.getLuk() + ALL);
inz.setWatk(inz.getWatk() + ATK);
inz.setMatk(inz.getMatk() + ATK);
inz.setStarForce(inz.getStarForce() + 1);
cm.getPlayer().forceReAddItem(inz, MapleInventoryType.EQUIP);
cm.showWZEffect("Effect/Quest.img/0", 0);
cm.getPlayer().dropMessage(5, "스타포스 강화권이 한 순간 빛나더니 신비로운 힘이 그대로 "+Packages.server.items.ItemInformation.getInstance().getName(inz.getItemId())+"에 전해졌습니다.");
}
else
{
cm.getPlayer().dropMessage(5, "스타포스 강화권이 한 순간 빛났지만 "+Packages.server.items.ItemInformation.getInstance().getName(inz.getItemId())+"에는 아무런 변화도 일어나지 않았습니다.");
cm.playSound(false, "Party1/Failed");
cm.showWZEffect("Effect/BasicEff.img/Enchant/Failure", 0);
if(DST < mathDST)
{
if(!cm.haveItem(ITEM_DT))
{
cm.getPlayer().dropMessage(5, "주문서의 힘으로 아이템이 파괴되었습니다.");
InventoryManipulator.removeFromSlot(cm.getClient(), MapleInventoryType.EQUIP, S2, 1, false);
}
else
{
cm.getPlayer().dropMessage(5, "성수의 효과로 아이템이 파괴되지 않았습니다.");
cm.gainItem(ITEM_DT, -1);
}
}
}
cm.dispose();
}
}

박인성 님의 최근 댓글