「なんのことだかわかんない」って人のために説明するわね。
スカイリム(Skyrim)って洋ゲーがあるの。まぁ詳しくはググッてくれていいけど、何年も前に出た、まぁ今となっては「枯れた」ものといえるわね。
重要なのはこのゲーム、コンソールモードがあって「ちょっと○○のイベント確認したい」みたいな、やりこみプレイむけの特殊なチートキャラを簡単につくれる事。
たとえば、 隠密能力を100倍に引き上げる指環 とか作れるので、これを使って敵をスルーして現地にスパっと調査にいけるのよね。おかげさまで、やりこみプレイ好きのわたしは何年も楽しんでるってわけ。
問題は、この底上げや技能つけのために必要なチートキーの調査なのよね。きちんと英語で研究されているファンサイトがあるけど、ひとつひとつキーを打ち込んでいたら大変でしょう?
だから、 特定スキルツリーのあるURLをいれると、そのスキルツリーを全部オンにしてくれる コマンドを生成するスクリプトを作ってみたの。
なお、インストールが必要なのは以下だけ。
# gem install nokogiri
#!/usr/bin/ruby -EUTF-8 require 'nkf' require 'nokogiri' require 'open-uri' # UESP Skyrim Skills class SSpell def initialize @name = nil @id = nil @comment = nil end attr_accessor :name,:id,:comment end # UESPの該当URLを並べて設定してください urls = [ "http...Alteration","http..Illusion","http..Conjuration" ] ss = [] d = nil save_name = nil urls.each{|url| open(url) do |u| d = u.readlines end
doc = Nokogiri.HTML(NKF.nkf("-w",d.join(""))) doc.xpath("//table[@class='wikitable sortable']").each{|e| c = e.inner_text if c =~ /Spell\ Name/ else doc2 = Nokogiri.HTML(e.inner_html) doc2.xpath("//tr").each{|e2| doc3 = Nokogiri.HTML(e2.inner_html) i = 0 c = SSpell.new kk = [0,2,3] doc3.xpath("//td").each{|e3| print "#{i}:#{e3.inner_text}\n" if i == kk[1] c.comment = e3.inner_text.clone elsif i == kk[2] c.id = e3.inner_text.clone elsif i == 0 if e3.inner_text !~ /^\d+$/ c.name = e3.inner_text.clone else c.name = save_name.clone kk = [0,1,2] end end i += 1 } if c.id != nil ss.push(c) save_name = c.name.clone end } end } } sx = [] ss.each{|hs| x = <<EOM ; #{hs.name} ; #{hs.comment} player.addperk #{hs.id} ; EOM sx.push(x) } File.write("spellperk.txt",sx.join("\n"))
; Novice Alteration ; Cast Novice level Alteration spells for half magicka. player.addperk 000f2ca6 ; : : : ; Twin Souls ; You can have two atronachs or reanimated zombies.[1] player.addperk 000d5f1c ;
うん、こんな感じかな?
実際のURLは迷惑がかかるかもなので、ここには載せないわ。本当にやってみたい方は自己責任で調べてみる事になるけど、くれぐれもよその善意のサイトさんに迷惑をかけないでね。
出てきたテキストファイルの使い方については、Skyrim関係のwikiを参考にしてね。