2014年11月25日

盾持ちサムライ できるかな?

谷ヘビを狩ってヘビの卵を集めるために、盾持ちサムライマクロを考えてみました。
これで3ボタンで狩りができます。



アタックシールド ガード乾坤圏に持ち替え
/cmd [アタック]/equipitem [*コダチ]
/pause 1
/cmd [シールド ガード]
/cmd [バッシュ]
/cmd [スタン ガード]
/cmd [複製]
/swapitembox [乾坤圏]
/swapequip 左手
/swapitembox *

左手専用の武器ならば、2ボタンでいけるのかな?

古いブログを見ると、昔はBloggerのエディタでテーブルを編集できたみたいですね。
まぁ、html手書きでもいいっか。

2014年11月19日

MoeItemでお買い物

今日は MoeItem を使うと、家ageでのお買い物が楽になるというお話です。

マクロに [/vendorlist ソウル オブ ヤマト] などを登録して、家ageを散策しましょう。
一旦ログアウトするか、/w all などを空打ちしてログを書き出したら、MoeItem を起動して、
[/vendorlistログ読み込み] を行います。


すると、C:\Willo\Master of Epic あたりからMoEのログファイルを読み込み、販売データとして一括登録できます。
初回は特に、全ログファイルを読み込もうとするので時間がかかります。初回でなくとも数分はかかります。辛抱強く待ってください。次回以降は追加ログだけが読み込みます。

[/vendorlistログ読み込み] で得られるデータに価格は含まれていませんので、家ageを散策しながら価格を追記していきます。


しばらくするとこのようなデータが得られます。黄色は更新日時が古いデータ、白色が新しいデータです。
ゲオ深淵 西エリアの 4,000 のソウルオブヤマトは売れたのでしょうか? 今回の調査では無くなっていますね。

今回ガチャを沢山回したのは、この人かな~っと、あたりをつけて行くと、掘り出し物に出会うこともあります。

2014年10月10日

MoeItem - MoEのデータベース

乱雑になってきたので、MoeItem - Moeのデータベース のページを独立させました。

MoE(Master of Epic)のアイテム情報を整理する専用データベースアプリです。
Excelの読み書きに対応していますので、Excelでデータ編集することもできます。


2014年8月30日

PyInstaller を使って、バイナリを作成する

moeItemなど、Pythonスクリプトをバイナリ配布するのに、いままでは cx_Freeze を使ってきましたが、
PyInstallerInno Setup を使うことにしました。

cx_Freezeは、Python単体で setup.exe や setup.msi を作成できて便利でしたが、最近のPythonに対応
していないらしく、Python-2.7 や Python-3.4 でビルドできなくなっているようです。
PyInstallerはPython-3.0系にまだ未対応ですが、この差はあまり気にしなくてもいいでしょう。
(Python3.xからPython2.xに、PyQt5からPyQt4に書き換えましたが、案外楽でした。)

作成されるバイナリサイズは、MS Visual 2010 C++ Redistributable Packageを含んでいるにも関わらず、
cx_Freezeのときよりも若干小さくなりました。 (27MBから13MB。それにしても大きいですよね)

PyInstaller を使ってバイナリを作成する

PyQt4でapiバージョン2を使う場合は、ランタイムフックを使う。
  > PyInstaller.exe --noconsole --runtime-hook rthook_pyqt4y.p moeItem.pyw

Inno Setup を使って、install.exe を作成する。

Inno Setup単体を使うのではなく、(QuickStart Packに含まれる) Inno Script Studioから使うと簡単です。
Inno Setup自体は日本語対応していますので、日本語のインストールメニューが作成できますが、
Inno Script Studioや各種マニュアルが英語なので、ちょっとやっかいではあります。
install.exeを作る人って、案外少ないのかもしれませんね。

2014年6月8日

料理新メニューの価格試算

moeItemの価格計算って適切なのかしらん?ってことで、新メニューの価格をmoeItemを用いて試算してみたよぉ~

[moeItemによる試算]
  鳥の唐揚げ : 66g
  親子丼 : 198g
  冷やし中華 : 131g
  焼き餃子 : 76g
  天津飯 : 232g
  担々麺 : 104g
  ロール キャベツ : 211g
  エッグ ベネディクト 332g
  ほうれん草とベーコンのパスタ 155g

どの料理も材料が沢山必要だから、不良在庫にならないようにどれを作るか厳選しないと~
家ageでの販売価格も調査しないとだね。

[家ageでの販売価格]
  鳥の唐揚げ : 200 - 350g
  親子丼 : 250 - 600g
  冷やし中華 : -
  焼き餃子 : 105 - 160g
  天津飯 : 200g
  担々麺 : 200 - 350g
  ロール キャベツ : 250 - 270g
  エッグ ベネディクト 250 - 700g
  ほうれん草とベーコンのパスタ 150 - 258g

冷やし中華は売ってなかったよぉ。売れちゃったのかなぁ?

2014年6月2日

FC2掲示板のBootStrap対応テンプレート

Seele活動掲示板でも使っている、FC2掲示板をBootStrap対応にするテンプレートです。

スマホからFC2掲示板を利用する場合に大変重宝すると思いますので、ここに公開しちゃいます。諸事情からマルチトピックタイプとなっていますが、改変、コピーなど構いませんので、自由に使っちゃってください。


2014年4月10日

toMoEgha用音源定義ファイル

toMoEgah(r17) では、チャンネル10をドラムチャネルとして自動認識しませんので、ABC譜に変換してもドラムの音が出ないってことがあります。
toMoEgah(r17) のマニュアルにも記載されているのですが、チャネル10の先頭付近にドラムチャネル変換マップを挿入する必要があります。Dominoでこの変換マップを入力するための音源定義ファイルを、ここに貼っておきます。

[使用方法]

1. 上のファイル (ok_GSm_forMoeABC.xml) を右クリックして、Domino の [Module] フォルダの中に保存しておきます。
2. Domino を起動すると、[ファイル] -> [環境設定] のMIDI-OUTPUT 設定に、音源 (GSm for MoeABC) が選択できるようになっているので、これに変更します。



3. チャンネル10のドラムチャネルの先頭付近に、[挿入]->[テンプレート] で、Step=5くらいの間隔で、toMoEgah Drum Pattern を挿入します。

4. パーカッション譜がある場合は、事前にドラムとパーカッションを別チャネルに分離しておく必要がありますね。
パーカッションチャネルの先頭付近に、toMoEgah Parcs Pattern を挿入します。

5. チャネル10の先頭付近に、右のようにドラムチャネル変換マップが挿入されていれば完成です。
あとは toMoEgah(r17) でMoE-ABC譜に変換するだけです。

2014年4月9日

moeFilter - 簡単なフィルタ

MoE (Master of Epic) のログファイルから、店舗検索(vendorlist)や、露店売上を抽出するフィルタです。
次のような表が出来ますので、Excelなどに "形式を指定して貼り付け" "TEXT形式" で貼りつけて使います。
表がずれてるですって? TSV形式でExcelに貼りつけるには問題ないのです:-)

[店舗検索ログ]

[露店ログ]
簡単にグラフ化できるように、0.2より出力フォーマットを変更しました。

ダウンロード

こちらからダウンロードできます。

今月の販売実績

今月の露店販売実績は、こんな感じです。



販売集計には、MoeFilterを使ってます。

2014年4月6日

トマトジュースの原価は?

トマトも海水も木炭も収穫できるので、トマトジュースの原価は0円だ。という人もいるのでしょうけど、せっかくMoeItem を作成したので、原価計算してみました。
  トマトジュース(16g)、バナナミル(33g)
労働対価を考えると、この2品は赤字なのですねぇ。客寄せ用なので構わないのですが、最近売上が多くて在庫補充が大変もに。

こちらはシッカリと黒字でした。
  セレモウニアルティ(155g)、アイスコーヒー(49g)、オレンジシェイク(57g)

同様に計算させてみると、どれが楽に儲かるかわかっちゃいますね。
  ペペロンチーノ(237g)、ミルクティ(32g)、カルボナーラ(143g)、ヘビーラウンドショット(29g)

もちろん、原価計算パラメータ次第なので、あくまで参考値ですが。
あ、私は↑の値段で販売してませんよ。念のため。

2014年3月13日

Pythonの開発環境を構築

忘れないうちに書いておかなくちゃ。

1. Pythonのインストール

配布元( python.org )から、最新版(現時点で3.3.5)を導入することにする。

2. Win32comモジュールの導入

PythonからExcelやWordを操作したいなら、配布元( Python for Windows Extensions )から導入する。
openpyxls というプロジェクトもあるが、Python3にはまだ十分対応していない。(書き込みができない)

3. PyQtモジュールの導入

GUIを作成するなら、配布元( Riverbank )からPyQt5を導入する。
Python3ではPyQt4は使えないことや、GPL3が適用されることに注意する。
なお、easy_install/pipを導入した後で、PySideを使うという手もある。

4. easy_install/pipの導入

以下の中身を、ez_setup.py として保存する。
https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
コマンドラインから、次のように easy_setup.py を起動する。
> Python easy_setup.py
これで、easy_install.exeが導入されたはず。

pipは、easy_install.exe を使って、次のように導入する。
> easy_install.exe pip

5.1 SQLAlchemyの導入

Pythonでデータベースを扱うなら、SQLAlchemy がお勧め。
pipを使って簡単に導入できる。

> pip install sqlalchemy
アップデートしたいなら、次のようにする
> pip install --upgrade sqlalchemy

5.2 cx_Freezeの導入

msiで配布するためには、cx_Freeze が必要。
配布元からmsiを持ってきてインストールする。

*.ui から *.py を纏めて生成するには次のバッチコマンドを使うか、Visual Studio に含まれる nmake を使う。(Windowsめんどくさすぎ)

@echo off
for %%A in (*.ui) do pyuic5 %%A -o ui_%%~nA.py

2014年2月26日

Bloggerのデザインを修正

しばらく放置していたら、Bloggerもスマホ対応していたのですね。このBlogのデザインも変更しないと...
ということで、トマトジュース色に染めるためのカスタムスタイルを追加。

body { padding:0 4px 4px !important }
.header-inner .Header .titlewrapper { padding:6px 6px 0 !important }
.Header h1 { margin-bottom:0 !important; font-size:200% !important; }
.header-inner .Header .descriptionwrapper { margin-bottom: 0 !important }
.Header .descriptionwrapper { margin-bottom: 0 !important }
.Header .description { font-size:50% !important }
.Header h1, .Header .description {
  text-shadow: 1px 2px 3px rgba(0, 0, 0, 0.8); }
.header-outer {
  margin: -4px -4px 0 -4px;
  border-radius:8px;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.8);
  background: #e60004 url() !important;
  background: -ms-linear-gradient(top, #FF6666 0%, #E60004 10%, #E60004 90%, #AA0000 100%), #e60004 url();
  background: linear-gradient(to bottom, #FF6666 0%, #E60004 10%, #E60004 90%, #AA0000 100%), #e60004 url();
  background-clip: padding-box; }
h2.date-header { margin-bottom: 4px !important; }
h3.post-title { margin-top: 4px !important;
  text-shadow:  0 0 2px #fff, 2px 2px 4px rgba(0,0,0,0.8);
  margin: 0 5px 0 -15px;
  padding: 2px 8px;
  background: -ms-linear-gradient(top, rgba(230,0,4,0.1) 0%, rgba(230,0,4,0.3) 100%);
  background: linear-gradient(to bottom, rgba(230,0,4,0.1) 0%, rgba(230,0,4,0.3) 100%);
  border-radius:8px;
}
.post-body { line-height:1.2 !important }
.post { margin-bottom: 0 !important }
.widget { line-height:1.1 !important; margin: 4px 0 !important }
.main-inner .column-center-inner { padding:0 0 0 10px !important }
.main-inner .column-right-inner { padding: 0 !important }
.main-inner .column-center-inner .section { margin: 0 4px 0 0 !important }
.footer-inner { padding:0 !important }
#footer-3 { display:none }

HTMLソース中に、スマホ上でのページ幅が1100pxと固定されているので、これを960pxに修正。
SyntaxHighliter も導入しましょう。

<b:if cond='data:blog.isMobile'>
      <meta content='width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0' name='viewport'/>
    <b:else/>
      <meta content='width=960' name='viewport'/>
    </b:if>
    <b:include data='blog' name='all-head-content'/>
    <!-- Syntax Highlighter Scripts Generator -->
    <link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
    <link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
    <script language='javascript' type='text/javascript'>
      SyntaxHighlighter.config.bloggerMode = true;
      SyntaxHighlighter.all();
    </script>
    <style>
      .syntaxhighlighter {
        overflow: auto !important;
        overflow-y: hidden !important; }
      .syntaxhighlighter .toolbar{ display:none !important }
    </style>

    <title><data:blog.pageTitle/></title>

2014年1月2日

Sandboxieを便利に使う

MoESandboxieで多重起動していると、起動が遅かったり、設定が保存されないという問題がありますが、
ほんの少し設定するだけで解決できるので、メモ。

Sandboxieコントロールを開き、サンドボックスの設定を開きます。


MoEがインストールされているフォルダを、以下のようにフルファイルアクセスとして追加登録します。


MoEのパッチは、必ず、メインで先に当てておく必要があります。
OSやMoEのパッチを適用した後は、サンドボックスの内容を消去しておきましょう。
userdataフォルダ直下にあるgame.ini, sound.iniは、サンドボックス化されたままなので、
画面や音楽設定だけ別に設定できます。