Advertisement
Guest User

Untitled

a guest
Mar 14th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.70 KB | None | 0 0
  1. package databuilder;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.SQLException;
  8. import java.text.DecimalFormat;
  9. import java.util.Comparator;
  10.  
  11. import l2s.commons.math.random.RndSelector;
  12. import l2s.gameserver.Config;
  13. import l2s.gameserver.data.xml.parser.BaseStatsBonusParser;
  14. import l2s.gameserver.data.xml.parser.ItemParser;
  15. import l2s.gameserver.data.xml.parser.LevelBonusParser;
  16. import l2s.gameserver.data.xml.parser.OptionDataParser;
  17. import l2s.gameserver.data.xml.parser.VariationDataParser;
  18. import l2s.gameserver.tables.SkillTable;
  19. import l2s.gameserver.templates.item.ItemTemplate;
  20. import databuilder.xml.builder.AlchemyRecipeBuilder;
  21. import databuilder.xml.builder.ItemBuilder;
  22. import databuilder.xml.builder.NpcBuilder;
  23. import databuilder.xml.builder.SkillBuilder;
  24. import databuilder.xml.builder.SkillTest;
  25. import databuilder.xml.builder.SpawnBuilder;
  26. import databuilder.xml.holder.L2onNpcHolder;
  27. import databuilder.xml.parser.L2onDropParser;
  28. import databuilder.xml.parser.L2onMixerParser;
  29. import databuilder.xml.parser.L2onNpcParser;
  30. import databuilder.xml.parser.NpcDropParser;
  31. import databuilder.xml.parser.NpcGaiParser;
  32. import databuilder.xml.parser.NpcParser;
  33. import databuilder.xml.parser.SkillParser;
  34. import databuilder.xml.parser.SkillTestParser;
  35. import databuilder.xml.parser.SpawnParser;
  36.  
  37. public class MainBuilder
  38. {
  39.    
  40.     public static MainBuilder _instance;
  41.     public static Connection _conn = null;
  42.     public static final String _datapack_path = "/Users/mylove1412/Workspace/ertheia/dist/gameserver/";
  43.     public static String _jdbc_connection = "jdbc:mysql://localhost/l2_raw?user=root&password=";
  44.    
  45.     private MainBuilder()
  46.     {
  47.         //BloodFakePlayers.getInstance();
  48.     }
  49.    
  50.     public static Connection connection(){
  51.        
  52.         if(_conn == null)
  53.         {
  54.             try {
  55.                 _conn = DriverManager.getConnection(_jdbc_connection);
  56.  
  57.                 // Do something with the Connection
  58.  
  59.             } catch (SQLException ex) {
  60.                 // handle any errors
  61.                 System.out.println("SQLException: " + ex.getMessage());
  62.                 System.out.println("SQLState: " + ex.getSQLState());
  63.                 System.out.println("VendorError: " + ex.getErrorCode());
  64.             }
  65.         }
  66.         return _conn;
  67.     }
  68.    
  69.     public static void buildNpc(){
  70.        
  71.         SkillTable.getInstance().load();
  72.         BaseStatsBonusParser.getInstance().load();
  73.         LevelBonusParser.getInstance().load();
  74.         NpcBuilder.getInstance();
  75.         NpcParser.getInstance().load();
  76.         NpcGaiParser.getInstance().load();
  77.         NpcBuilder.getInstance().buildAndStore();
  78.     }
  79.    
  80.     public static void buildDropList(){
  81.         SkillTable.getInstance().load();
  82.         OptionDataParser.getInstance().load();
  83.         VariationDataParser.getInstance().load();
  84.         ItemParser.getInstance().load();
  85.         NpcDropParser.getInstance().load();
  86.         L2onDropParser.getInstance().load();
  87.     }
  88.    
  89.     public static void buildItem(){
  90. //      SkillTable.getInstance().load();
  91. //      OptionDataParser.getInstance().load();
  92. //      VariationDataParser.getInstance().load();
  93. //      ItemParser.getInstance().load();
  94. //      buildFated();
  95.        
  96.         ItemBuilder.getInstance().build();
  97.         ItemBuilder.getInstance().store();
  98.     }
  99.    
  100.     public static void buildSkill(){
  101.         SkillParser.getInstance().load();
  102. //      SkillBuilder.getInstance().buildAndStore();
  103.     }
  104.    
  105.     public static void buildSpawn(){
  106.         SpawnParser.getInstance().load();
  107.         SpawnBuilder.getInstance().buildAndStore();
  108.     }
  109.    
  110.     public static void buildRaidSpawn(){
  111.         SpawnBuilder.getInstance().buildAndStoreRaidboss();
  112.     }
  113.    
  114.    
  115.     public static class CustomComparator implements Comparator<ItemTemplate> {
  116.         @Override
  117.         public int compare(ItemTemplate o1, ItemTemplate o2) {
  118.             if(!o1.getGrade().equals(o2.getGrade()))
  119.                 return o1.getGrade().compareTo(o2.getGrade());
  120.            
  121.             return 0;
  122.         }
  123.     }
  124.    
  125.     enum TalishMan{
  126.         Destruction(100, 0, 0, 25, 30),
  127.         Annihilation(30, 50, 20, 25, 30),
  128.         Hellfire(20, 60, 20, 25, 30),
  129.         Desire(10, 50, 40, 30, 60),
  130.         Longing(100, 0, 0, 35, 70);
  131.        
  132.         RndSelector<Integer> _rndSelector = new RndSelector<Integer>();
  133.         RndSelector<Integer> _safeSelector = new RndSelector<Integer>();
  134.         public int _destruction;
  135.         public int _giant;
  136.        
  137.         TalishMan(Integer rateUp, Integer rateStay, Integer rateDown, Integer destruction, Integer giant){
  138.             _rndSelector.add(1, rateUp);
  139.             _rndSelector.add(-1, rateDown);
  140.             _rndSelector.add(0, rateStay);
  141.             _safeSelector.add(1, rateUp);
  142.             _safeSelector.add(0, 100 - rateUp);
  143.             _destruction = destruction;
  144.             _giant = giant;
  145.         }
  146.        
  147.         public TalishMan exchange(){
  148.             int nextOrd = this.ordinal() + _rndSelector.select();
  149.             return TalishMan.values()[nextOrd];
  150.         }
  151.        
  152.         public TalishMan safe_exchange(){
  153.             int nextOrd = this.ordinal() + _safeSelector.select();
  154.             return TalishMan.values()[nextOrd];
  155.         }
  156.     }
  157.    
  158.     public static void testLonging(){
  159.         int total_destruction = 0;
  160.         int total_giant = 0;
  161.         int total_kaliel = 0;
  162.         DecimalFormat df2 = new DecimalFormat( "#,###,###,000" );
  163.         int maxTry = 1000;
  164.        
  165.         for(int i = 0; i < maxTry; i++){
  166.             int destruction = 0;
  167.             int giant = 0;
  168.             int kaliel = 0;
  169.             TalishMan myTM = TalishMan.Destruction;
  170.             while(myTM != TalishMan.Longing){
  171.                 destruction += myTM._destruction;
  172.                 giant += myTM._giant;
  173.                 kaliel += 1;
  174.                 myTM = myTM.safe_exchange();
  175.             }
  176.             total_destruction += destruction;
  177.             total_giant += giant;
  178.             total_kaliel += kaliel;
  179. //          System.out.println("Tried: "+i);
  180. //          System.out.println("Used destruction: "+destruction);
  181. //          System.out.println("Used giant: "+giant);
  182. //          System.out.println("VND convert: "+df2.format((destruction+giant)*5000));
  183. //          System.out.println("========================");
  184.         }
  185.         System.out.println("Average");
  186.         System.out.println("Used destruction: "+total_destruction/maxTry);
  187.         System.out.println("Used giant: "+total_giant/maxTry);
  188.         System.out.println("Used kaliel: "+total_kaliel/maxTry);
  189.         System.out.println("VND convert: "+df2.format((total_destruction/maxTry+total_giant/maxTry)*5000));
  190.         System.out.println("Adena convert: "+df2.format((total_destruction/maxTry+total_giant/maxTry)*10));
  191.        
  192.     }
  193.    
  194.     public static void main(String[] args)
  195.     {
  196.         System.out.println("Start...");
  197.         try {
  198.             Config.DATAPACK_ROOT = new File(_datapack_path).getCanonicalFile();
  199.         } catch (IOException e) {
  200.             // TODO Auto-generated catch block
  201.             e.printStackTrace();
  202.         }
  203.        
  204. //      buildNpc();
  205. //      buildSkill();
  206. //      buildDropList();
  207. //      buildSpawn();
  208. //      testLonging();
  209. //      SkillTest.getInstance();
  210. //      SkillTest.getInstance().testSkill();
  211. //      buildRaidSpawn();
  212. //      AlchemyRecipeBuilder.getInstance().save();
  213.         L2onNpcParser.getInstance().load();
  214.         L2onMixerParser.getInstance().load();
  215.         System.out.println(L2onNpcHolder.getInstance().getNpcInfo(20001));
  216.     }
  217.    
  218.    
  219.    
  220.    
  221.    
  222. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement