How am I supposed to edit and compile Gracial Final trunks when the SVN is only Epilogue?
My server is Gracia Final Rev. 3799 and I'm trying to edit some code... but I don't have the source to compile..
Any help would be appreciated!
Older Trunk Revisions
Forum rules
READ NOW: L2j Forums Rules of Conduct
READ NOW: L2j Forums Rules of Conduct
- MELERIX
- L2j Veteran
- Posts: 6667
- Joined: Sat Sep 23, 2006 11:31 pm
- Location: Chile
- Contact:
Re: Older Trunk Revisions
from the branches, the olders l2j revision are archived in the branches.
-
- Posts: 130
- Joined: Wed Dec 23, 2009 7:25 am
Re: Older Trunk Revisions
Hmmm, Okay I download the 2.3 branch but they're all back to
net/sf/l2j/gameserver..etc
Instead of
com/l2jserver/gameserver..etc
Why's that O.o?
net/sf/l2j/gameserver..etc
Instead of
com/l2jserver/gameserver..etc
Why's that O.o?
- MELERIX
- L2j Veteran
- Posts: 6667
- Joined: Sat Sep 23, 2006 11:31 pm
- Location: Chile
- Contact:
Re: Older Trunk Revisions
because in older releases we use net/sf/l2j
and in l2j epilogue has been changed to com/l2jserver
xD
and in l2j epilogue has been changed to com/l2jserver
xD
-
- Posts: 130
- Joined: Wed Dec 23, 2009 7:25 am
Re: Older Trunk Revisions
Doh >.< Got it now...
Think you could update me on these errors ?
It would be greatly appreciated!
Source:
Think you could update me on these errors ?

Code: Select all
Buildfile: C:\L2 Server\workspace\L2_GameServer\build.xmlclean: [delete] Deleting directory C:\L2 Server\workspace\L2_GameServer\buildverifyRequirements:init: [mkdir] Created dir: C:\L2 Server\workspace\L2_GameServer\build [mkdir] Created dir: C:\L2 Server\workspace\L2_GameServer\build\classes [mkdir] Created dir: C:\L2 Server\workspace\L2_GameServer\build\dist [mkdir] Created dir: C:\L2 Server\workspace\L2_GameServer\build\dist\login [mkdir] Created dir: C:\L2 Server\workspace\L2_GameServer\build\dist\gameserverversion:compile: [javac] Compiling 1361 source files to C:\L2 Server\workspace\L2_GameServer\build\classes [javac] C:\L2 Server\workspace\L2_GameServer\java\net\sf\l2j\gameserver\model\actor\instance\L2CraftManagerInstance.java:76: cannot find symbol [javac] symbol : constructor MultiSellList(int) [javac] location: class net.sf.l2j.gameserver.network.serverpackets.MultiSellList [javac] player.sendPacket(new MultiSellList(Integer.parseInt(listId))); [javac] ^ [javac] C:\L2 Server\workspace\L2_GameServer\java\net\sf\l2j\gameserver\model\actor\instance\L2CraftManagerInstance.java:321: cannot find symbol [javac] symbol : method getEquipSlot() [javac] location: class net.sf.l2j.gameserver.model.L2ItemInstance [javac] L2ItemInstance[] unequiped = player.getInventory().unEquipItemInSlotAndRecord(_item.getEquipSlot()); [javac] ^ [javac] C:\L2 Server\workspace\L2_GameServer\java\net\sf\l2j\gameserver\model\actor\instance\L2CraftManagerInstance.java:339: cannot find symbol [javac] symbol : variable EARNED_S2_S1_s [javac] location: class net.sf.l2j.gameserver.network.serverpackets.SystemMessage [javac] SystemMessage sm = new SystemMessage(SystemMessage.EARNED_S2_S1_s); [javac] ^ [javac] C:\L2 Server\workspace\L2_GameServer\java\net\sf\l2j\gameserver\model\actor\instance\L2CraftManagerInstance.java:545: cannot find symbol [javac] symbol : variable RATE_CRAFT_COST [javac] location: class net.sf.l2j.Config [javac] _quantityState="<font color=\"FF5555\">"+(int)(_quantity*_recipeItem.getQuantity()*Config.RATE_CRAFT_COST)+"</font>"; [javac] ^ [javac] C:\L2 Server\workspace\L2_GameServer\java\net\sf\l2j\gameserver\model\actor\instance\L2CraftManagerInstance.java:598: cannot find symbol [javac] symbol : variable RATE_CRAFT_COST [javac] location: class net.sf.l2j.Config [javac] if ((_item==null)||(_item.getCount()<(int)(_quantity*_recipeItem.getQuantity()*Config.RATE_CRAFT_COST))) [javac] ^ [javac] C:\L2 Server\workspace\L2_GameServer\java\net\sf\l2j\gameserver\model\actor\instance\L2CraftManagerInstance.java:626: cannot find symbol [javac] symbol : variable RATE_CRAFT_COST [javac] location: class net.sf.l2j.Config [javac] player.destroyItemByItemId("CraftManager", _recipeItem.getItemId(), (int)(_quantity*_recipeItem.getQuantity()*Config.RATE_CRAFT_COST), player, true); [javac] ^ [javac] C:\L2 Server\workspace\L2_GameServer\java\net\sf\l2j\gameserver\model\actor\instance\L2CraftManagerInstance.java:635: cannot find symbol [javac] symbol : variable EARNED_S2_S1_s [javac] location: class net.sf.l2j.gameserver.network.serverpackets.SystemMessage [javac] SystemMessage sm = new SystemMessage(SystemMessage.EARNED_S2_S1_s); [javac] ^ [javac] 7 errors BUILD FAILEDC:\L2 Server\workspace\L2_GameServer\build.xml:76: Compile failed; see the compiler error output for details. Total time: 41 seconds
Source:
Code: Select all
/** * */package net.sf.l2j.gameserver.model.actor.instance;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.Properties;import java.util.StringTokenizer; import javolution.text.TextBuilder;import net.sf.l2j.Config;import net.sf.l2j.gameserver.datatables.ItemTable;import net.sf.l2j.gameserver.RecipeController;import net.sf.l2j.gameserver.network.serverpackets.MultiSellList;import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate;import net.sf.l2j.util.Rnd;import net.sf.l2j.gameserver.model.itemcontainer.Inventory;import net.sf.l2j.gameserver.model.L2RecipeInstance;import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate;import net.sf.l2j.gameserver.model.L2ItemInstance;import net.sf.l2j.gameserver.templates.item.L2Item;import net.sf.l2j.gameserver.templates.item.L2EtcItemType;import net.sf.l2j.gameserver.model.L2RecipeList; /** * @author G1ta0 * Made in USSR */ public class L2CraftManagerInstance extends L2NpcInstance{ private static final String CUSTOM_CONFIG_FILE = "./config/custom.properties"; private static final int ADENA_ID = 57; private static final int ITEMS_PER_PAGE = 5; // items list size in craft and crystallize pages private static double ALT_PRICE; // reference price multiplier private static int DEFAULT_PRICE; // default price, in case reference is 0 private static boolean ALLOW_CRAFT; // allow to craft dwarven recipes private static boolean ALLOW_CRYSTALLIZE; // allow to break items private static boolean ALLOW_COMMON; // allow to craft common craft recipes public L2CraftManagerInstance(int objectId, L2NpcTemplate template) { super(objectId, template); try { loadConfig(); } catch(IOException e) // set default parameters if config gile not found { ALT_PRICE=0.1; DEFAULT_PRICE=50000; ALLOW_CRAFT=true; ALLOW_CRYSTALLIZE=true; ALLOW_COMMON=false; } } public void onAction(L2PcInstance player) { player.setLastFolkNPC(this); super.onAction(player); } public void onBypassFeedback(L2PcInstance player, String command) { if (command.startsWith("multisell")) { String listId = command.substring(9).trim(); player.sendPacket(new MultiSellList(Integer.parseInt(listId))); } else // List player inventory items for crystallization if (command.startsWith("Crystallize")) { int _pageId; ArrayList<Integer> _itemsSelected = new ArrayList<Integer>(); Inventory _inventory = player.getInventory(); StringTokenizer st = new StringTokenizer(command.substring(11).trim()); try { if (st.countTokens()>1) { _pageId= Integer.parseInt(st.nextToken()); while (st.hasMoreTokens()) { int _itemObjId=Integer.parseInt(st.nextToken()); if ((_inventory.getItemByObjectId(_itemObjId)!=null)&& (!_itemsSelected.contains(_itemObjId))) _itemsSelected.add(_itemObjId); } } else _pageId= Integer.parseInt(command.substring(11).trim()); } catch (NumberFormatException e){_pageId=0;} ArrayList<Integer> _items = new ArrayList<Integer>(); int _priceTotal = 0; ArrayList<Integer> _crystals = new ArrayList<Integer>(); _crystals.add(0,0);_crystals.add(1,0);_crystals.add(2,0); _crystals.add(3,0);_crystals.add(4,0);_crystals.add(5,0); for(L2ItemInstance _item : _inventory.getItems()) { if (!_item.isStackable() && _item.getItem().getCrystalType() != L2Item.CRYSTAL_NONE && _item.getItem().getCrystalCount() > 0) { _items.add(_item.getObjectId()); if (_itemsSelected.contains(_item.getObjectId())) { int _count =_crystals.get(_item.getItem().getCrystalType())+_item.getCrystalCount(); _crystals.set(_item.getItem().getCrystalType(), _count); int _crystalId = 1457 + _item.getItem().getCrystalType(); int _price = (int)(ALT_PRICE * _count * ItemTable.getInstance().getTemplate(_crystalId).getReferencePrice()); if (_price==0) _price=DEFAULT_PRICE; _priceTotal+=_price; } } } if (_items.size()==0) { sendOutOfItems(player,"at least one","breakable item"); return; } int _itemsOnPage=ITEMS_PER_PAGE; int _pages = _items.size()/_itemsOnPage; if (_items.size()>_pages*_itemsOnPage) _pages++; if (_pageId>_pages) _pageId=_pages; int _itemStart=_pageId*_itemsOnPage; int _itemEnd=_items.size(); if (_itemEnd - _itemStart > _itemsOnPage) _itemEnd = _itemStart + _itemsOnPage; String _elementsSelected=""; for (int i=0;i<_itemsSelected.size();i++) _elementsSelected+=" "+_itemsSelected.get(i); NpcHtmlMessage npcReply = new NpcHtmlMessage(1); TextBuilder replyMSG = new TextBuilder("<html><body>"); replyMSG.append("<center>Items to Crystallize</center>"); replyMSG.append("<img src=\"L2UI.SquareWhite\" width=270 height=1> <img src=\"L2UI.SquareBlank\" width=1 height=3>"); replyMSG.append("<table width=270><tr>"); replyMSG.append("<td width=66><button value=\"Back\" action=\"bypass -h npc_"+getObjectId()+((_pageId==0)?"_Chat 0":"_Crystallize ")+(_pageId-1)+_elementsSelected+"\" width=66 height=16 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\"></td>"); replyMSG.append("<td width=138></td>"); replyMSG.append("<td width=66>"+((_pageId+1<_pages)?"<button value=\"Next\" action=\"bypass -h npc_"+getObjectId()+"_Crystallize "+(_pageId+1)+_elementsSelected+"\" width=66 height=16 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\">":"")+"</td>"); replyMSG.append("</tr></table>"); replyMSG.append("<br><br>"); replyMSG.append("<table width=270><tr>"); if (ALLOW_CRYSTALLIZE) { replyMSG.append("<td width=35><button value=\"\" action=\"bypass -h npc_"+getObjectId()+"_BreakItem "+_elementsSelected+"\" width=32 height=32 back=\"icon.skill0248\" fore=\"icon.skill0248\"></td>"); replyMSG.append("<td width=135>"); replyMSG.append("<table border=0 width=100%>"); replyMSG.append("<tr><td><font color=\"B09878\">Cristallize</font></td></tr>"); replyMSG.append("<tr><td><font color=\"B09878\">selected items "+(_itemsSelected.size()==0?"":"("+_itemsSelected.size()+")")+"</font></td></tr></table></td>"); replyMSG.append("<td width=100>"); replyMSG.append("<table border=0 width=100%>"); replyMSG.append("<tr><td><font color=\"A2A0A2\">Total price:</font></td></tr>"); replyMSG.append("<tr><td><font color=\"B09878\">"+_priceTotal+" Adena</font></td></tr></table></td>"); } replyMSG.append("</tr></table><br>"); for (int i=_itemStart;i<_itemEnd;i++) { L2ItemInstance _item = _inventory.getItemByObjectId(_items.get(i)); if (_item==null) continue; int _crystalId = 1457 + _item.getItem().getCrystalType(); String _crystal = _item.getItem().getCrystalType()==1?"D": _item.getItem().getCrystalType()==2?"C": _item.getItem().getCrystalType()==3?"B": _item.getItem().getCrystalType()==4?"A":"S"; int _count =_item.getCrystalCount(); int _price =(int)(ALT_PRICE * _count * ItemTable.getInstance().getTemplate(_crystalId).getReferencePrice()); if (_price==0) _price=DEFAULT_PRICE; replyMSG.append("<br><table width=270><tr>"); replyMSG.append("<td width=35><img src="+getCrystalIcon(_item.getItem().getCrystalType())+" width=32 height=32 align=left></td>"); replyMSG.append("<td width=215>"); replyMSG.append("<table border=0 width=100%>"); replyMSG.append("<tr><td><font color=\"A2A0A2\">"+ItemTable.getInstance().getTemplate(_item.getItemId()).getName()+(_item.getEnchantLevel()==0?"":" +"+_item.getEnchantLevel())+"</font></td></tr>"); replyMSG.append("<tr><td><font color=\"A2A0A2\">"+_crystal+" Crystals:</font> <font color=\"B09878\">"+_count+"</font></td></tr></table></td>"); if (ALLOW_CRYSTALLIZE) { if (_itemsSelected.contains(_items.get(i))) replyMSG.append("<td valign=center width=20><button value=\"\" action=\"bypass -h npc_"+getObjectId()+"_Crystallize "+_pageId+_elementsSelected.replace(" "+_items.get(i).toString(),"") +"\" width=16 height=16 back=\"L2UI.CheckBox_checked\" fore=\"L2UI.CheckBox_checked\"></td>"); else replyMSG.append("<td valign=center width=20><button value=\"\" action=\"bypass -h npc_"+getObjectId()+"_Crystallize "+_pageId+" "+_items.get(i).toString()+_elementsSelected+"\" width=16 height=16 back=\"L2UI.CheckBox\" fore=\"L2UI.CheckBox\"></td>"); } else replyMSG.append("<td valign=center width=20></td>"); replyMSG.append("</tr></table>"); } replyMSG.append("</body></html>"); npcReply.setHtml(replyMSG.toString()); player.sendPacket(npcReply); } else // Crystallize selected items if (command.startsWith("BreakItem") &&ALLOW_CRYSTALLIZE) { ArrayList<Integer> _itemsSelected = new ArrayList<Integer>(); Inventory _inventory = player.getInventory(); StringTokenizer st = new StringTokenizer(command.substring(9).trim()); try { while (st.hasMoreTokens()) { int _itemObjId=Integer.parseInt(st.nextToken()); if ((_inventory.getItemByObjectId(_itemObjId)!=null)&& (!_itemsSelected.contains(_itemObjId))) _itemsSelected.add(_itemObjId); } } catch (NumberFormatException e){} if (_itemsSelected.size()==0) { sendOutOfItems(player,"at least one","breakable items"); return; } int _priceTotal = 0; ArrayList<Integer> _crystals = new ArrayList<Integer>(); _crystals.add(0,0);_crystals.add(1,0);_crystals.add(2,0); _crystals.add(3,0);_crystals.add(4,0);_crystals.add(5,0); for (int i=0;i<_itemsSelected.size();i++) { L2ItemInstance _item = _inventory.getItemByObjectId(_itemsSelected.get(i)); if( _item!=null && _item.getOwnerId()==player.getObjectId() && !_item.isStackable() && _item.getItem().getCrystalType() != L2Item.CRYSTAL_NONE && _item.getItem().getCrystalCount() > 0 && i<_itemsSelected.size()) { int _count =_crystals.get(_item.getItem().getCrystalType())+_item.getCrystalCount(); _crystals.set(_item.getItem().getCrystalType(), _count); int _crystalId = 1457 + _item.getItem().getCrystalType(); int _price = (int)(ALT_PRICE * _count * ItemTable.getInstance().getTemplate(_crystalId).getReferencePrice()); if (_price==0) _price=DEFAULT_PRICE; _priceTotal+=_price; } else _itemsSelected.remove(i); } if (_inventory.getInventoryItemCount(ADENA_ID,0)<_priceTotal) { sendOutOfItems(player,Integer.toString(_priceTotal),"Adena"); return; } InventoryUpdate iu = new InventoryUpdate(); player.destroyItemByItemId("CraftManager", ADENA_ID, _priceTotal, player, true); iu.addModifiedItem(player.getInventory().getItemByItemId(ADENA_ID)); for (int i=0;i<_itemsSelected.size();i++) { L2ItemInstance _item = _inventory.getItemByObjectId(_itemsSelected.get(i)); if( _item!=null && _item.getOwnerId()==player.getObjectId() && !_item.isStackable() && _item.getItem().getCrystalType() != L2Item.CRYSTAL_NONE && _item.getItem().getCrystalCount() > 0) { L2ItemInstance[] unequiped = player.getInventory().unEquipItemInSlotAndRecord(_item.getEquipSlot()); if (_item.isEquipped()) for (int ui = 0; ui < unequiped.length; ui++) iu.addModifiedItem(unequiped[ui]); player.destroyItem("CraftManager", _itemsSelected.get(i), 1, player, true); iu.addModifiedItem(player.getInventory().getItemByObjectId(_itemsSelected.get(i))); } } for (int i=0;i<_crystals.size();i++) { if (_crystals.get(i)>0) { int _crystalId = 1457 + i; SystemMessage sm = new SystemMessage(SystemMessage.EARNED_S2_S1_s); sm.addItemName(_crystalId); sm.addNumber(_crystals.get(i)); player.sendPacket(sm); sm=null; _inventory.addItem("CraftManager", _crystalId, _crystals.get(i), player, player.getTarget()); iu.addModifiedItem(player.getInventory().getItemByItemId(_crystalId)); } } player.sendPacket(iu); iu=null; player.broadcastUserInfo(); } else // List recipes from player inventory if (command.startsWith("Manufacture")) { int _pageId; try { _pageId= Integer.parseInt(command.substring(11).trim()); } catch (NumberFormatException e) { _pageId=0; } Inventory _inventory = player.getInventory(); ArrayList<Integer> _recipes = new ArrayList<Integer>(); for(L2ItemInstance _item : _inventory.getItems()) { if (_item.getItemType()==L2EtcItemType.RECEIPE) { L2RecipeList _recipe = RecipeController.getInstance().getRecipeByItemId(_item.getItemId()); if (_recipe!=null)_recipes.add(_item.getObjectId()); } } if (_recipes.size()==0) { sendOutOfItems(player,"at least one","recipe"); return; } int _itemsOnPage=ITEMS_PER_PAGE; int _pages = _recipes.size()/_itemsOnPage; if (_recipes.size()>_pages*_itemsOnPage) _pages++; if (_pageId>_pages) _pageId=_pages; int _itemStart=_pageId*_itemsOnPage; int _itemEnd=_recipes.size(); if (_itemEnd - _itemStart > _itemsOnPage) _itemEnd = _itemStart + _itemsOnPage; NpcHtmlMessage npcReply = new NpcHtmlMessage(1); TextBuilder replyMSG = new TextBuilder("<html><body>"); replyMSG.append("<center>List of Recipes</center>"); replyMSG.append("<img src=\"L2UI.SquareWhite\" width=270 height=1> <img src=\"L2UI.SquareBlank\" width=1 height=3>"); replyMSG.append("<table width=270><tr>"); replyMSG.append("<td width=66><button value=\"Back\" action=\"bypass -h npc_"+getObjectId()+((_pageId==0)?"_Chat 0":"_Manufacture ")+(_pageId-1)+"\" width=66 height=16 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\"></td>"); replyMSG.append("<td width=138></td>"); replyMSG.append("<td width=66>"+((_pageId+1<_pages)?"<button value=\"Next\" action=\"bypass -h npc_"+getObjectId()+"_Manufacture "+(_pageId+1)+"\" width=66 height=16 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\">":"")+"</td>"); replyMSG.append("</tr></table>"); replyMSG.append("<br>"); for (int i=_itemStart;i<_itemEnd;i++) { L2ItemInstance _recipe = _inventory.getItemByObjectId(_recipes.get(i)); if (_recipe==null) continue; L2RecipeList _recipeList = RecipeController.getInstance().getRecipeByItemId(_recipe.getItemId()); boolean _isConsumable = ItemTable.getInstance().getTemplate(_recipeList.getItemId()).isConsumable(); if (_recipeList==null) continue; int _price =(int)(ALT_PRICE * _recipeList.getSuccessRate()/100 * ItemTable.getInstance().getTemplate(_recipeList.getItemId()).getReferencePrice()); if (_price==0) _price=DEFAULT_PRICE; int _grade = ItemTable.getInstance().getTemplate(_recipeList.getItemId()).getCrystalType(); String _recipeIcon = _recipeList.isDwarvenRecipe()?getRecipeIcon(_grade):"icon.etc_recipe_green_i00"; replyMSG.append("<br>"); replyMSG.append("<table width=270><tr>"); replyMSG.append("<td valign=top width=35><button value=\"\" action=\"bypass -h npc_"+getObjectId()+"_CraftInfo "+_recipes.get(i)+" 1 "+_pageId+"\" width=32 height=32 back=\""+_recipeIcon +"\" fore=\""+_recipeIcon +"\"></td>"); replyMSG.append("<td valign=top width=235>"); replyMSG.append("<table border=0 width=100%>"); replyMSG.append("<tr><td><font color=\"A2A0A2\">"+ItemTable.getInstance().getTemplate(_recipe.getItemId()).getName()+"</font></td></tr>"); replyMSG.append("<tr><td><font color=\"A2A0A2\">Product:</font> <font color=\"B09878\">"+(_isConsumable?_recipeList.getCount()+" ":"")+ItemTable.getInstance().getTemplate(_recipeList.getItemId()).getName()+"</font></td></tr></table></td>"); replyMSG.append("</tr></table>"); replyMSG.append("<br>"); } replyMSG.append("</body></html>"); npcReply.setHtml(replyMSG.toString()); player.sendPacket(npcReply); } else // Show information about choosen recipe if (command.startsWith("CraftInfo")) { int _recipeObjId=0; int _pageId=0; int _quantity=1; StringTokenizer st = new StringTokenizer(command.substring(9).trim()); try { if (st.countTokens()>2) { _recipeObjId = Integer.parseInt(st.nextToken()); _quantity = Integer.parseInt(st.nextToken()); } else _recipeObjId = Integer.parseInt(st.nextToken()); _pageId = Integer.parseInt(st.nextToken()); } catch (NumberFormatException e){} Inventory _inventory = player.getInventory(); L2ItemInstance _recipe = _inventory.getItemByObjectId(_recipeObjId); L2RecipeList _recipeList = RecipeController.getInstance().getRecipeByItemId(_recipe.getItemId()); boolean _isConsumable = ItemTable.getInstance().getTemplate(_recipeList.getItemId()).isConsumable(); if( _recipe!=null && _recipe.getOwnerId()==player.getObjectId() && _recipe.getItemType()==L2EtcItemType.RECEIPE && _recipeList!=null) { int _price =(int)(ALT_PRICE * _recipeList.getSuccessRate()/100 * _quantity * (_isConsumable?_recipeList.getCount():1) * ItemTable.getInstance().getTemplate(_recipeList.getItemId()).getReferencePrice()); if (_price==0) _price=DEFAULT_PRICE; NpcHtmlMessage npcReply = new NpcHtmlMessage(1); TextBuilder replyMSG = new TextBuilder("<html><body>"); replyMSG.append("<center>Craft Info</center>"); replyMSG.append("<img src=\"L2UI.SquareWhite\" width=270 height=1> <img src=\"L2UI.SquareBlank\" width=1 height=3>"); replyMSG.append("<table width=270><tr>"); replyMSG.append("<td width=66><button value=\"Back\" action=\"bypass -h npc_"+getObjectId()+"_Manufacture "+_pageId+"\" width=66 height=16 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\"></td>"); replyMSG.append("<td width=138></td>"); replyMSG.append("<td width=66></td>"); replyMSG.append("</tr></table>"); replyMSG.append("<br>"); replyMSG.append("<table width=270><tr>"); if ((_recipeList.isDwarvenRecipe()&&ALLOW_CRAFT)||(!_recipeList.isDwarvenRecipe()&&ALLOW_COMMON)) replyMSG.append("<td valign=top width=35><button value=\"\" action=\"bypass -h npc_"+getObjectId()+"_CraftItem "+_recipeObjId+" "+_quantity+"\" width=32 height=32 back=\"icon.skill0172\" fore=\"icon.skill0172\"></td>"); else replyMSG.append("<td valign=top width=35><img src=icon.skill0172 width=32 height=32 align=left></td>"); replyMSG.append("<td valign=top width=235>"); replyMSG.append("<table border=0 width=100%>"); replyMSG.append("<tr><td><font color=\"A2A0A2\">"+ItemTable.getInstance().getTemplate(_recipeList.getItemId()).getName()+"</font></td></tr>"); replyMSG.append("<tr><td><font color=\"A2A0A2\">Product:</font> <font color=\"B09878\">"+(_isConsumable?_recipeList.getCount()*_quantity+" ":_quantity>1?_quantity:"")+ItemTable.getInstance().getTemplate(_recipeList.getItemId()).getName()+"</font></td></tr>"); if ((_recipeList.isDwarvenRecipe()&&ALLOW_CRAFT)||(!_recipeList.isDwarvenRecipe()&&ALLOW_COMMON)) replyMSG.append("<tr><td><font color=\"A2A0A2\">Price:</font> <font color=\"B09878\">"+_price+" Adena</font></td></tr></table></td>"); else replyMSG.append("<tr><td></td></tr></table></td>"); replyMSG.append("</tr></table>"); replyMSG.append("<br>"); replyMSG.append("<center>"); replyMSG.append("<table width=210>"); replyMSG.append("<tr><td valign=top width=70><font color=\"B09878\">Enter quantity:</font></td><td></td></tr>"); replyMSG.append("<tr><td valign=top width=70><edit var=\"quantity\" width=70></td>"); replyMSG.append("<td valign=top width=70><button value=\"Calculate\" action=\"bypass -h npc_"+getObjectId()+"_CraftInfo "+_recipeObjId+" $quantity "+_pageId+"\" width=66 height=16 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\"></td>"); replyMSG.append("</tr></table>"); replyMSG.append("</center>"); replyMSG.append("<br>"); replyMSG.append("<br>"); replyMSG.append("<table width=270><tr>"); replyMSG.append("<td width=220><font color=\"A2A0A2\">Ingredients</font></td>"); replyMSG.append("<td width=50><font color=\"A2A0A2\">Quantity</font></td></tr>"); L2RecipeInstance[] _recipeItems = _recipeList.getRecipes(); for (L2RecipeInstance _recipeItem:_recipeItems) { L2ItemInstance _item = _inventory.getItemByItemId(_recipeItem.getItemId()); String _quantityState="<font color=\"55FF55\">"+_quantity*_recipeItem.getQuantity()+"</font>"; if ((_item==null)||(_item.getCount()<_quantity*_recipeItem.getQuantity())) _quantityState="<font color=\"FF5555\">"+(int)(_quantity*_recipeItem.getQuantity()*Config.RATE_CRAFT_COST)+"</font>"; replyMSG.append("<tr><td width=220>"+ItemTable.getInstance().getTemplate(_recipeItem.getItemId()).getName()+"</td>"); replyMSG.append("<td width=50>"+_quantityState+"</td></tr>"); } replyMSG.append("</table>"); replyMSG.append("</body></html>"); npcReply.setHtml(replyMSG.toString()); player.sendPacket(npcReply); } }else // Craft amount of items using selected recipe if (command.startsWith("CraftItem")&& (ALLOW_CRAFT||ALLOW_COMMON)) { int _recipeObjId=0; int _quantity=1; StringTokenizer st = new StringTokenizer(command.substring(9).trim()); if (st.countTokens()!=2) return; try { _recipeObjId = Integer.parseInt(st.nextToken()); _quantity = Integer.parseInt(st.nextToken()); } catch (NumberFormatException e){} Inventory _inventory = player.getInventory(); L2ItemInstance _recipe = _inventory.getItemByObjectId(_recipeObjId); L2RecipeList _recipeList = RecipeController.getInstance().getRecipeByItemId(_recipe.getItemId()); boolean _isConsumable = ItemTable.getInstance().getTemplate(_recipeList.getItemId()).isConsumable(); if( _recipe!=null && _recipe.getOwnerId()==player.getObjectId() && _recipe.getItemType()==L2EtcItemType.RECEIPE && _recipeList!=null && ((_recipeList.isDwarvenRecipe()&&ALLOW_CRAFT)||(!_recipeList.isDwarvenRecipe()&&ALLOW_COMMON))) { L2RecipeInstance[] _recipeItems = _recipeList.getRecipes(); boolean _enoughtMaterials=true; for (L2RecipeInstance _recipeItem:_recipeItems) { L2ItemInstance _item = _inventory.getItemByItemId(_recipeItem.getItemId()); if ((_item==null)||(_item.getCount()<(int)(_quantity*_recipeItem.getQuantity()*Config.RATE_CRAFT_COST))) _enoughtMaterials=false; } int _price =(int)(ALT_PRICE * _recipeList.getSuccessRate()/100 * _quantity * _recipeList.getCount() * ItemTable.getInstance().getTemplate(_recipeList.getItemId()).getReferencePrice()); if (_price==0) _price=DEFAULT_PRICE; if (_inventory.getInventoryItemCount(ADENA_ID,0)<_price) { sendOutOfItems(player,Integer.toString(_price),"Adena"); return; } if (!_enoughtMaterials) { sendOutOfItems(player,"proper amount","materials"); return; } int _quantitySuccess=0; for(int i=0;i<_quantity;i++) if (Rnd.get(100) < _recipeList.getSuccessRate()) _quantitySuccess++; InventoryUpdate iu = new InventoryUpdate(); for (L2RecipeInstance _recipeItem:_recipeItems) { player.destroyItemByItemId("CraftManager", _recipeItem.getItemId(), (int)(_quantity*_recipeItem.getQuantity()*Config.RATE_CRAFT_COST), player, true); iu.addModifiedItem(player.getInventory().getItemByItemId(_recipeItem.getItemId())); } player.destroyItemByItemId("CraftManager", ADENA_ID, _price, player, true); iu.addModifiedItem(player.getInventory().getItemByItemId(ADENA_ID)); if (_quantitySuccess>0) { SystemMessage sm = new SystemMessage(SystemMessage.EARNED_S2_S1_s); sm.addItemName(_recipeList.getItemId()); sm.addNumber(_quantitySuccess * _recipeList.getCount()); player.sendPacket(sm); sm=null; iu.addModifiedItem(player.getInventory().getItemByItemId(_recipeList.getItemId())); _inventory.addItem("CraftManager", _recipeList.getItemId(), _quantitySuccess * (_isConsumable?_recipeList.getCount():1), player, player.getTarget()); } player.sendPacket(iu); iu=null; player.broadcastUserInfo(); sendCraftedItems(player,_quantitySuccess * (_isConsumable?_recipeList.getCount():1),(_quantity-_quantitySuccess)* (_isConsumable?_recipeList.getCount():1),ItemTable.getInstance().getTemplate(_recipeList.getItemId()).getName()); } }else super.onBypassFeedback(player,command); } private String getRecipeIcon(int grade) { return "icon.etc_recipe_"+( grade==1?"blue": grade==2?"yellow": grade==3?"red": grade==4?"violet": grade==5?"black":"white")+"_i00"; } private String getCrystalIcon(int grade) { return "icon.etc_crystal_"+(grade==1?"blue": grade==2?"green": grade==3?"red": grade==4?"silver":"gold")+"_i00"; } private void loadConfig() throws IOException { Properties CustomProperties = new Properties(); InputStream is = new FileInputStream(new File(CUSTOM_CONFIG_FILE)); CustomProperties.load(is); is.close(); ALLOW_CRAFT = Boolean.parseBoolean(CustomProperties.getProperty("CraftManagerDwarvenCraft", "True")); ALLOW_COMMON = Boolean.parseBoolean(CustomProperties.getProperty("CraftManagerCommonCraft", "False")); ALLOW_CRYSTALLIZE = Boolean.parseBoolean(CustomProperties.getProperty("CraftManagerCrystallize", "True")); ALT_PRICE = Float.parseFloat(CustomProperties.getProperty("CraftManagerPriceMultiplier", "0.1")); DEFAULT_PRICE = Integer.parseInt(CustomProperties.getProperty("CraftManagerDefaultPrice", "50000")); } private void sendOutOfItems(L2PcInstance player, String count, String itemname) { NpcHtmlMessage npcReply = new NpcHtmlMessage(1); TextBuilder replyMSG = new TextBuilder("<html><body>"); replyMSG.append(getName()+":<br>"); replyMSG.append("Come back later, when you will have "+count+" of "+itemname+"."); replyMSG.append("</body></html>"); npcReply.setHtml(replyMSG.toString()); player.sendPacket(npcReply); } private void sendCraftedItems(L2PcInstance player, int success, int failed, String itemname) { NpcHtmlMessage npcReply = new NpcHtmlMessage(1); TextBuilder replyMSG = new TextBuilder("<html><body>"); replyMSG.append(getName()+":<br>"); if (success==0) replyMSG.append("I am sorry, "+player.getName()+", but all attempts to create <font color=\"LEVEL\">"+itemname+"</font> failed. All your materials have been lost."); else if (failed==0) replyMSG.append("Congratulations, "+player.getName()+", I created "+success+" <font color=\"LEVEL\">"+itemname+"</font> for your!"); else replyMSG.append("Here you go, "+player.getName()+", "+success+" <font color=\"LEVEL\">"+itemname+"</font> successfully created, but "+failed+" broken while craft."); replyMSG.append("</body></html>"); npcReply.setHtml(replyMSG.toString()); player.sendPacket(npcReply); } public String getHtmlPath(int npcId, int val) { String pom = ""; if (val == 0) { pom = "" + npcId; } else { pom = npcId + "-" + val; } return "data/html/default/" + pom + ".htm"; }}
-
- Posts: 130
- Joined: Wed Dec 23, 2009 7:25 am
Re: Older Trunk Revisions
I'm proud of myself. I fixed them all!
SOLVED
SOLVED

- ThePhoenixBird
- L2j Inner Circle
- Posts: 1857
- Joined: Fri May 27, 2005 5:11 pm
Re: Older Trunk Revisions
Congrats you have lvl'd up!