Heartbreak61

「SIMPLE STUPID」 Export EXP & Param to CSV ver 0.60

Feb 4th, 2013
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.97 KB | None | 0 0
  1. #==============================================================================
  2. # ■ 「SIMPLE STUPID」 Export EXP & Param to CSV ver 0.60
  3. # by HBK
  4. # Requires: N/A
  5. # Rewrites method:  N/A
  6. # Aliases method:
  7. #       Data_Manager#self.load_database
  8. #      
  9. #==============================================================================
  10. # CHANGELOG
  11. # - ver0.60  2013.02.05   Started the script and finished
  12. #==============================================================================
  13. # INTRODUCTION
  14. #   - Export tabel exp dan parameter ke bentuk file .csv untuk memudahkan
  15. #   Databasing
  16. #==============================================================================
  17. # INSTRUCTION
  18. #   - Taruh di bawah ▼ Materials & di atas ▼ Main Process
  19. #==============================================================================
  20. if true # ganti jadi false kalo ga mau jalanin script ini
  21.  
  22. module HBK
  23.   module Export
  24.     # export exp?
  25.     ExpTable = true
  26.     ExpTableUseHeader = true
  27.    
  28.     # export parameter table?
  29.     ParamTable = true
  30.     ParamTableUseHeader = true
  31.    
  32.     # suffix untuk nama file
  33.     ExpTableNameSuffix = "_exp"
  34.     ParamTableNameSuffix = "_param"
  35.    
  36.     # tambah date di akhir nama file?
  37.     Date = true # false akan melakukan overwrite apabila ada file dengan nama sama
  38.  
  39.     # format dapat dilihat di Time class strftime format
  40.     # format default " %Y-%m-%d %H%M%S" akan meberikan suffix
  41.     # " 2012-12-21 235959" pada akhir nama file
  42.     DateFormat = " %Y-%m-%d %H%M%S"
  43.    
  44.     # export directory
  45.     Dir = "Data/Export/"
  46.   end
  47. end
  48.  
  49. module DataManager
  50.   class << self
  51.     alias hbk_export_table_init init
  52.   end
  53.  
  54.   def self.init
  55.     hbk_export_table_init
  56.     hbk_export_class_tables
  57.   end
  58.  
  59.   def self.hbk_export_class_tables
  60.     return unless HBK::Export::ExpTable
  61.     ($data_classes).each {|obj|
  62.       next unless obj
  63.       obj.check_export_dir(HBK::Export::Dir)
  64.       obj.export_exp_table($data_classes.size)
  65.       obj.export_param_table($data_classes.size)
  66.     }
  67.   end
  68. end
  69.  
  70. class RPG::Class < RPG::BaseItem
  71.   def check_export_dir path
  72.     Dir.mkdir(path) unless Dir.exist?(path)
  73.   end
  74.  
  75.   def export_exp_table(size)
  76.     n = make_exp_table_file_name(size)
  77.     if FileTest.exist?(n)
  78.       write_exp_value(File.open(n,"w"))
  79.     else
  80.       write_exp_value(File.new(n, "w"))
  81.     end
  82.   end
  83.  
  84.   def export_param_table(size)
  85.     n = make_exp_table_param_name(size)
  86.     if FileTest.exist?(n)
  87.       write_param_value(File.open(n,"w"))
  88.     else
  89.       write_param_value(File.new(n, "w"))
  90.     end
  91.   end
  92.  
  93.   def make_exp_table_file_name(size)
  94.     dir = HBK::Export::Dir
  95.     length = (size+1)%10
  96.     suffix = HBK::Export::ExpTableNameSuffix
  97.     fullname = sprintf("%0#{length}d",@id)+" #{@name.downcase}#{suffix}"
  98.     if HBK::Export::Date
  99.       return dir+fullname+Time.now.strftime("#{HBK::Export::DateFormat}")+".csv"
  100.     else
  101.       return dir+fullname+".csv"
  102.     end
  103.   end
  104.  
  105.   def make_exp_table_param_name(size)
  106.     dir = HBK::Export::Dir
  107.     length = (size+1)%10
  108.     suffix = HBK::Export::ParamTableNameSuffix
  109.     fullname = sprintf("%0#{length}d",@id)+" #{@name.downcase}#{suffix}"
  110.     if HBK::Export::Date
  111.       return dir+fullname+Time.now.strftime("#{HBK::Export::DateFormat}")+".csv"
  112.     else
  113.       return dir+fullname+".csv"
  114.     end
  115.   end
  116.  
  117.   def write_exp_value(file)
  118.     s = "#{@name.upcase}\n"
  119.     s += "LEVEL;EXP;TOTAL\n" if HBK::Export::ExpTableUseHeader
  120.     c = 0
  121.     t = 0
  122.     (1..99).each {|l|
  123.       t = exp_for_level(l)
  124.       s+="#{l};#{t-c};#{t}\n"
  125.       c = t
  126.     }
  127.     file.write(s)
  128.     file.close
  129.   end
  130.  
  131.   def write_param_value(file)
  132.     s = "#{@name.upcase}\n"
  133.     s += "LEVEL;MHP;MMP;ATK;DEF;MAT;MDF;AGI;LUK\n" if HBK::Export::ParamTableUseHeader
  134.     (1..99).each{|l|
  135.       s+="#{l};"
  136.       (0..8).each{|p|
  137.       s+="#{@params[p,l]};"
  138.       }
  139.       s+="\n"
  140.     }
  141.     file.write(s)
  142.     file.close
  143.   end
  144. end
  145.  
  146. $imported = {} if $imported.nil?
  147. $imported["HBK_SSEEPTC"] = 0.60
  148.  
  149. end
Advertisement
Add Comment
Please, Sign In to add comment