iSparky Posted February 2, 2015 Posted February 2, 2015 (edited) Custom Race Starting Items v1 # New players Starting Items ( Human ) # Default: False EnableHumanReward = False # Human Fighter HumanFighterHelmID = HumanFighterChestID = HumanFighterLegsID = HumanFighterBootsID = HumanFighterGlovesID = HumanFighterWeaponID = # Human Mage HumanMageHelmID = HumanMageChestID = HumanMageLegsID = HumanMageBootsID = HumanMageGlovesID = HumanMageWeaponID = # New players Starting Items ( Elf ) # Default: False EnableElfReward = False # Elf Fighter ElfFighterHelmID = ElfFighterChestID = ElfFighterLegsID = ElfFighterBootsID = ElfFighterGlovesID = ElfFighterWeaponID = # Elf Mage ElfMageHelmID = ElfMageChestID = ElfMageLegsID = ElfMageBootsID = ElfMageGlovesID = ElfMageWeaponID = # New players Starting Items ( DarkElf ) # Default: False EnableDEReward = False # DarkElf Fighter DEFighterHelmID = DEFighterChestID = DEFighterLegsID = DEFighterBootsID = DEFighterGlovesID = DEFighterWeaponID = # DarkElf Mage DEMageHelmID = DEMageChestID = DEMageLegsID = DEMageBootsID = DEMageGlovesID = DEMageWeaponID = # New players Starting Items ( Orc ) # Default: False EnableOrcReward = False # Orc Fighter OrcFighterHelmID = OrcFighterChestID = OrcFighterLegsID = OrcFighterBootsID = OrcFighterGlovesID = OrcFighterWeaponID = # Orc Mage OrcMageHelmID = OrcMageChestID = OrcMageLegsID = OrcMageBootsID = OrcMageGlovesID = OrcMageWeaponID = # New players Starting Items ( Dwarf ) # Default: False EnableDwarfReward = False # Dwarf Fighter DwarfFighterHelmID = DwarfFighterChestID = DwarfFighterLegsID = DwarfFighterBootsID = DwarfFighterGlovesID = DwarfFighterWeaponID = http://pastebin.com/ywGtFmGY Credits : (Me) iSparkyEdit: Ignore this :P @@ -233,8 +498,7 @@ // Shortcuts newChar.registerShortCut(new L2ShortCut(0, 0, 3, 2, -1, 1)); // Attack - newChar.registerShortCut(new L2ShortCut(3, 0, 3, 5, -1, 1)); // Take - newChar.registerShortCut(new L2ShortCut(10, 0, 3, 0, -1, 1)); // Sit + newChar.registerShortCut(new L2ShortCut(1, 0, 3, 5, -1, 1)); // Take final ItemTable itemTable = ItemTable.getInstance(); final L2Item[] items = template.getItems(); Edited February 2, 2015 by iSparky
SweeTs Posted February 2, 2015 Posted February 2, 2015 I'm kinda shocked, speechless.. L2ItemInstance everywhere :troll:
iSparky Posted February 2, 2015 Author Posted February 2, 2015 (edited) Can you message me the better way ? :)At me works like this :PI know i can do it like this: if (newChar.getRace() == Race.human || newChar.isMageClass()) { newChar.getInventory().addItem("Start Human Mage Item", Config.HUMAN_M_HELM_ID, Config.REWARD_COUNT, newChar, null); } else { newChar.getInventory().addItem("Start Human Fighter Item", Config.HUMAN_F_HELM_ID, Config.REWARD_COUNT, newChar, null); } But i want to Equip this items :D Edited February 2, 2015 by iSparky
Ayami- Posted February 2, 2015 Posted February 2, 2015 bad coded , too much configs also but still a nice idea.. Everybody has their programming style. Others prefer a straight short code and others they achieve their idea circleing the code.. Well as an exercise its good but if you want to apply that on a project you must organize it a bit. I am not a good coder too i also sometimes add strange methods and using useless stuff.. Exercising its the best option.. Thanks for these share.
'Baggos' Posted February 2, 2015 Posted February 2, 2015 (edited) It is a good idea for starting items for each class... But maybe is more "clean", if you put fewer lines. For example, make all fighter race to get the same items, apart of weapon if you want. And the same on mage... or something better, make 2 item with name "Fighter Items" or "Mage Items" give this in inventory, and then, with 2 click give all that you want... (with class check for item). Edited February 2, 2015 by 'Baggos'
iSparky Posted February 3, 2015 Author Posted February 3, 2015 or something better, make 2 item with name "Fighter Items" or "Mage Items" give this in inventory, and then, with 2 click give all that you want... (with class check for item). Trust me i have do that on Live server and some people ask me "Gm why i have no items -.-" and if you put items at inventory they never open the bag to watch starting items ;) i think its a better way to equip the items :)
'Baggos' Posted February 3, 2015 Posted February 3, 2015 (edited) On part with fewer lines: Do something like that... I do not give a try if will be work exactly so, just i give you my idea for fewer lines. Ingore the Items... is a example... Because i like your idea, i want to you find a easy way... if (Config.STARTINGS_ITEMS_RACES) { if (!newChar.isMageClass()) { if (newChar.getRace() == Race.Human) { newChar.getInventory().addItem("Angel Slayer", 6367, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Light", 6379, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Boots", 6380, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Gloves", 6381, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Helmet", 6382, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } if (newChar.getRace() == Race.Elf) { newChar.getInventory().addItem("Angel Slayer", 6367, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Light", 6379, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Boots", 6380, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Gloves", 6381, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Helmet", 6382, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } if (newChar.getRace() == Race.DarkElf) { newChar.getInventory().addItem("Angel Slayer", 6367, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Light", 6379, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Boots", 6380, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Gloves", 6381, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Helmet", 6382, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } if (newChar.getRace() == Race.Orc) { newChar.getInventory().addItem("Angel Slayer", 6367, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Light", 6379, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Boots", 6380, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Gloves", 6381, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Helmet", 6382, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } if (newChar.getRace() == Race.Dwarf) { newChar.getInventory().addItem("Angel Slayer", 6367, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Light", 6379, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Boots", 6380, 1, newChar, newChar); newChar.getInventory().addItem("Dragonic Gloves", 6381, 1, newChar, newChar ); newChar.getInventory().addItem("Dragonic Helmet", 6382, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } else { newChar.getInventory().addItem("Arcana Mace Acumen", 6608, 1, newChar, newChar); newChar.getInventory().addItem("DC Robe", 2407, 1, newChar, newChar ); newChar.getInventory().addItem("DC Gloves", 5767, 1, newChar, newChar); newChar.getInventory().addItem("DC Boots", 5779, 1, newChar, newChar ); newChar.getInventory().addItem("DC Helmet", 512, 1, newChar, newChar); newChar.getInventory().addItem("TEO Necklace", 920, 1, newChar, newChar ); newChar.getInventory().addItem("TEO Earring", 858, 2, newChar, newChar); newChar.getInventory().addItem("TEO Ring", 889, 2, newChar, newChar ); } Edited February 3, 2015 by 'Baggos'
Tessa Posted February 3, 2015 Posted February 3, 2015 If you want a clean code, use xml... for example: <?xml version="1.0" encoding="UTF-8"?> <list> <template race="-1" classId="-1"> <equipment slot="rhand" item="12345"/> <equipment slot="lhand" item="12345"/> <inventory> <item id="1234" count="12313" /> <item id="567" count="2222" /> </inventory> <shortCut slot="1" page="1" type="1" id="5555" level="-1" charType="1"> </template> </list> Everything is optional and gives a lot more flexibility... you can set an default template which will be used by all races, you can define an special template for a specific race/class while all others uses the default, you can inherit an template and so on... the only limit will be your imagination :lol:
Fanky Posted February 3, 2015 Posted February 3, 2015 You should learn how to use arrays,it would help you a lot.
'Baggos' Posted February 3, 2015 Posted February 3, 2015 If you want a clean code, use xml... for example: <?xml version="1.0" encoding="UTF-8"?> <list> <template race="-1" classId="-1"> <equipment slot="rhand" item="12345"/> <equipment slot="lhand" item="12345"/> <inventory> <item id="1234" count="12313" /> <item id="567" count="2222" /> </inventory> <shortCut slot="1" page="1" type="1" id="5555" level="-1" charType="1"> </template> </list> Everything is optional and gives a lot more flexibility... you can set an default template which will be used by all races, you can define an special template for a specific race/class while all others uses the default, you can inherit an template and so on... the only limit will be your imagination :lol: Yes... A better way... and equipment items! ;)
SweeTs Posted February 3, 2015 Posted February 3, 2015 The equip item is done while creating the char, so..
`NeverMore Posted February 3, 2015 Posted February 3, 2015 add items on arrays and use a loop to equip everything with one method. it will not be more than 5 lines
iSparky Posted February 3, 2015 Author Posted February 3, 2015 Im not very good coder ;S if somebody can help me to make this code better please pm me or replace here the better way
`NeverMore Posted February 3, 2015 Posted February 3, 2015 well i will exlain you what i was saying, there will be a loop for the ids of an array. ( ids will be all ids for mage class for example ) on this loop you will add on players inventory one by one the items using .getInventory().addItem(..blabla.) and then force them to auto equip on character using .getInventory().equipItem(id here); you will propably need also inventory update and broadcastUserInfo each time you loop. its just an idea, and code will be much better, try it alone and if you cant do it, i will help you!
SweeTs Posted February 3, 2015 Posted February 3, 2015 As I said before, there is no need for equip part, since it's already there, few lines below :P if (item.isEquipable()) { if (newChar.getActiveWeaponItem() == null || !(item.getItem().getType2() != Item.TYPE2_WEAPON)) newChar.getInventory().equipItemAndRecord(item); }
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now