藉由 底比斯寶箱 && 龜裂之核 語法;進而延伸,可使武器、防具、飾品進化
開啟 C_ItemUSe
收尋49092
|| itemId == 49092 //龜裂之核
複制代碼在下方新增 <進化媒介>
|| itemId == 49092 //龜裂之核
|| itemId == 700117 //武器進化媒介
複制代碼然後再找個好位子 再新增
//ADD 新增 簡易武器進化系統 700117
} else if (itemId == 700117) { //武器進化媒介編號
int WeaponId = l1iteminstance1.getItem().getItemId();
if (WeaponId == 武器編號 || WeaponId == 武器編號) {
/ /進化前的武器;ex: Lv1 絕世好劍 編號:500
if (_random.nextInt(100) <= 20) { //進化機率,不要就抓掉
createNewItem(pc, WeaponId + 1, 1);
//進化後的武器 ;ex: Lv2 絕世好劍 編號:501
//db 請設定正確;公式如語法 ↑↑
pc.getInventory().consumeItem(WeaponId, 1); //進化前武器消失
} else {
pc.sendPackets(new S_SystemMessage(\"武器進化失敗。 \" ));
}
pc.getInventory().consumeItem(700117, 1); //進化媒介消失
} else {
pc.sendPackets(new S_ServerMessage(79));
return;
}
//END
複制代碼DB內 道具700117武器進化石武器進化石materialchoicegemstone0327970900100000000000000010
複制代碼DB內 武器,上面語法公式沒改,
這邊記得要設定連號500LV1進化前武器Lv1 絕世好劍swordiron4000035245901012161111111100000000000000000001000000
501LV2進化後武器Lv2 絕世好劍swordiron4000035245901012161111111100000000000000000001000000
複制代碼0612 增加強化值設定
打開 L1PcInventory.java
找到 public int checkAddItem
在這段上面增加
//香 武器進化 增加強化值
public int checkAddItem_LV(L1ItemInstance item, int count, int EnchantLevel) {
return checkAddItem_LV(item, count, EnchantLevel, true);
}
public int checkAddItem_LV(L1ItemInstance item, int count, int EnchantLevel, boolean message) {
if (item == null) {
return -1;
}
if (getSize() > MAX_SIZE
|| (getSize() == MAX_SIZE && (!item.isStackable() || !checkItem(item
.getItem().getItemId())))) { // 容量確認
if (message) {
sendOverMessage(263); // \f1一人のキャラクターが持って歩けるアイテムは最大180個までです。
}
return SIZE_OVER;
}
int weight = getWeight() + item.getItem().getWeight() * count / 1000 + 1;
if (weight < 0 || (item.getItem().getWeight() * count / 1000) < 0) {
if (message) {
sendOverMessage(82); // アイテムが重すぎて、これ以上持てません。
}
return WEIGHT_OVER;
}
if (calcWeight240(weight) >= 240) {
if (message) {
}
return WEIGHT_OVER;
}
return OK;
}
int rndLV = _random.nextInt(6)+3; //0~5 +3 強化值
int t_ItemLV = l1iteminstance1.getEnchantLevel(); ***0613修改處
if (WeaponId == 武器編號 || WeaponId == 武器編號) {
//進化前的武器;ex: Lv1 絕世好劍 編號:500
if (_random.nextInt(100) <= 20) { //進化機率,不要就抓掉
createNewItem_LV(pc, WeaponId + 1, 1, t_ItemLV ); ***0613修改處
//進化後的武器 ;ex: Lv2 絕世好劍 編號:501
//db 請設定正確;公式如語法 ↑↑
pc.getInventory().consumeItem(WeaponId, 1); //進化前武器消失
} else {
pc.sendPackets(new S_SystemMessage(\"武器進化失敗。 \" ));
}
pc.getInventory().consumeItem( ); //進化媒介消失
} else {
pc.sendPackets(new S_ServerMessage( ));
return;
}
//END
0612
若要不管+幾去合成,合成出來都是一樣的強化值;就設定(1)+你要的數值。
_random.nextInt(1)+7 ←這樣就是合成出來都+7
0613
t_ItemLV,增加此語法..即可合成出相同強化值的武器
下列寫法已測試過,可行!!
加入種類判別
} else if (itemId = ) { // 武器進化系統
int t_ItemId = l1iteminstance1.getItem().getItemId();
int pc_ItemLV = pc.getWeapon().getEnchantLevel();
int rndLV = _random.nextInt(6)+3;
if (l1iteminstance1.getItem().getType2() == 1) { // 道具種類判別 1:武器 2:防具 0:道具
if (t_ItemId >= >= t_ItemId) { 合成武器的區塊
createNewItem_LV(pc, 4, 1, rndLV);//合成為指定道具
pc.getInventory().consumeItem(t_ItemId, );
pc.getInventory().consumeItem(300053, 1);
} else {
pc.sendPackets(new S_ServerMessage());
return;
}
} else {
pc.sendPackets(new S_ServerMessage( ));
return;
}
複制代碼補充增加~開啟 C_ItemUSe
找到 private boolean createNewItem// 香 武器進化 增加強化值
private boolean createNewItem_LV(L1PcInstance pc, int item_id, int count, int EnchantLevel) {
L1ItemInstance item = ItemTable.getInstance().createItem(item_id);
item.setCount(count);
item.setEnchantLevel(EnchantLevel);
if (item != null) {
if (pc.getInventory().checkAddItem_LV(item, count, EnchantLevel) == L1Inventory.OK) {
pc.getInventory().storeItem(item);
} else { // 持てない場合は地面に落とす 処理のキャンセルはしない(不正防止)
L1World.getInstance().getInventory(pc.getX(), pc.getY(),
pc.getMapId()).storeItem(item);
}
pc.sendPackets(new S_ServerMessage(403, item.getLogName())); // %0を手に入れました。
return true;
} else {
return false;
}
}
沒有留言:
張貼留言