プログラミングとゲーム関連を書いていく。

プログラミングの小言とゲーム関連の記事を書いていきます

ToramOnlineのツール集

どうもです。今回はトーラムオンラインのステータス系ツールを色々な所で出回っている資料を参考に作ってみたのでご紹介。

github.com

 

※以下のツールはPythonというプログラミング言語で書かれています。なのでPCならPythonをインストールして、スマホならアプリを入れてお使いください。(筆者のおすすめはモバイルCというアプリやPythonista3というアプリです)

モバイル C [ C/C++ コンパイラ ]

モバイル C [ C/C++ コンパイラ ]

  • Jeong Seop Lee
  • 教育
  • 無料

apps.apple.com

Pythonista 3

Pythonista 3

  • omz:software
  • 仕事効率化
  • ¥1,220

apps.apple.com

 

とりあえず使い方の説明

 

異常耐性計算ツールの使い方

f:id:NoName-toPy7:20210411235505j:image

Pythonをインストール後、「コマンドプロンプト」か「端末(Termianl)」で

python3 Abnormal_Tolerance_Calculator.py

とするか

Pythonが扱えるアプリで「Abnormal_Tolerance_Calculator.py」を実行します。

  1. 「MEN: 」でステータスのMENの値を入力して下さい。(上記画像では255と入力)
  2. 「MEN装備(%) part〇〇」で装備(オシャレを含む)の異常耐性〇〇%という部分の数値を入力(最大8個まで)

異常耐性率が自動的に計算されて出力されます。(上記画像では「102%」と出力されています)

 

クリティカル率計算ツールの使い方

f:id:NoName-toPy7:20210411235518j:image

Pythonをインストール後、「コマンドプロンプト」か「端末(Termianl)」で

python3 Critical_Calculator.py

とするか

Pythonが扱えるアプリで「Critical_Calculator.py」を実行します。

  1.  ご使用端末の種類(iPhone(1)かAndroid(2))を入力してください。(上記画像ではiPhoneなので「1」と入力)
  2. ステータスのCRT値を入力。(振っていない場合は空白でok。上記画像では「255」としています)
  3. クリティカルUpのスキルLvを入力(振っていない場合は空白でok。上記画像では「10」としています)
  4. 装備やクリスタについているクリティカル率の合計値を入力します。(上記画像では「25」と入力)
  5. 装備やクリスタについているクリティカル率(%)の合計値を入力します。(上記画像では「25」と入力)

クリティカル率が計算されて出力されます。(上記画像では「155%」と出力されています)

 

クリティカルダメージ計算ツールの使い方

f:id:NoName-toPy7:20210411235556j:image

Pythonをインストール後、「コマンドプロンプト」か「端末(Termianl)」で

python3 Critical_Damage_Calculator.py

とするか

Pythonが扱えるアプリで「Critical_Damage_Calculator.py」を実行します。

  1. ステータスのSTR値を入力します(上記画像では「356」と入力)
  2. 装備やクリスタについているクリティカルダメージの合計値を入力します。(上記画像では「40」と入力)
  3. 装備やクリスタについているクリティカルダメージ(%)の合計値を入力します。(上記画像では「10」と入力

クリティカルダメージの合計値が計算されて出力されます。(上記画像では「283」と出力されています)

 

以上となります。

使う人がいるかはともかく自分用に作りました(笑)

トーラムオンラインは良いゲームなのでこれからも発展していくといいなぁと個人的に思っています。

まだプレイしていないという人は以下のリンクからAppleStoreに飛べますのでぜひ遊んでみてくださいね。

トーラムオンライン

トーラムオンライン

  • ASOBIMO,Inc.
  • ゲーム
  • 無料

apps.apple.com

Minecraft BE(PE)用のアドオンManifest作成ツールを作ってみた。(Pythonista3)

今回は過去に作成したコードとそれをGUIにしたお話。

github.co

スマホ版マイクラをしてたら作りたくなる自作アドオン。

しかし、「アドオンのmanifest.jsonを書くのは心が折れる。」そんな方向けに作ったのが始まりでした。

以下はスクショ

f:id:NoName-toPy7:20210411200322j:image

f:id:NoName-toPy7:20210411200358j:image

 しかし、これじゃない感が漂っていましたし、コンソール画面は苦手という方もいるかなぁと思っていました。

 (上記のスクリプトpythonがあれば動きます。下記はPythonista3専用です。)

そこでGUI版を作ってみました。

github.com

f:id:NoName-toPy7:20210411200723j:image

GUIが英語統一なのはグローバルにしてみようかなと思ったからです(笑)

GUIの説明をしていきます。

  • ResourcePack: リソースパック
  • ResourcePack(Data): リソースパックのデータパック版
  • BehavaPack: ベイヘビアーパックいわゆるデータパック
  • SkinPack: スキンパック
  • PackName: パックの名前
  • Description: パックの説明
  • Pack Version: パックのバージョン
  • min engines: データパックを動かしたいマイクラのバージョン

となっており、

「Create」を押すと作成したmanifest.jsonがその下にプレビューとして出てきます。

肝心のmanifest.json自体はスクリプトが置いてあるディレクトリにmanifest.jsonとして作成されているはずです。

後はpack_icon.pngとアドオンの内容を作ればアドオンの完成となります。

 

インストール方法

  1. StaShでgit cloneする
  2. pyファイルを実行

 

Minecraft

Minecraft

  • Mojang
  • ゲーム
  • ¥860

apps.apple.com

Pythonista3でPermissionアプリを作ってみた。

昨日に続きまたまた自作コード紹介です。

やる気がある時に更新するので一気に更新する時もあります。

github.com

さて、Linuxを触っていましたらどうしても必要になってくるパーミッション管理。

iOSアプリはあるのですが、どうにも怪しい雰囲気が漂っているものばかり...。

「なら作ってしまえばいいじゃない」となり作ったのがPyPermissions。

f:id:NoName-toPy7:20210411192043j:image

 UIは上記の画像通りです。

  • Rは読み込み。
  • Wは書き込み。
  • Xは実行。

となっていて、英字と数字出力に対応しています。

 と言っても3時間くらいで書き上げたコードです。

バグはできるだけ取り除いていますがやっつけ感が拭えないコードとなっています(笑)

 

インストール方法

  1. StaShでgit cloneする
  2. pyファイルを実行

以上です

 

元々は無料で使っていたアプリがあったんですけど、ストアを探しても見つからなくなってしまったので「ないなら自分で作ればいいじゃない。」になったんですよね。

(しかし...Pythonista3さんよ...UI自体の文字色変えたら重くなってクラッシュするのをどうにかしておくれ...。)

 

Pythonista 3

Pythonista 3

  • omz:software
  • 仕事効率化
  • ¥1,220

apps.apple.com

 

Pythonista3でpip list --outdatedしてみる。

お久しぶりです。1年以上ブログを放置していましたが今回はPythonista3で「pip list --outdated」をするお話です。

github.comGitHubに私が公開した上記のツールを利用します。

まず、「pip-configration-tool.py」を

Githubからコピーして実行します。

または下記のコードをコンソールへコピペして実行します。

import requests as r; exec(r.get('https://tinyurl.com/Setup-pipTerminal').content)

スクリプトのやっていることはとても単純で、後からインストールするpipに「モジュールのインストール場所はここですよー」と教える設定ファイルを環境変数「$HOME」内の「.config/pip」に作成しているだけです。

ただし、やっていることは簡単でもここの質問を見つけるまで結構な時間を要しました。

stackoverflow.com

上記のstackoverflowには

[global]
prefix={Install path}

を$HOME/.config/pip/pip.configに記載すればいいと書いてあります。

本ツールはこの手間をなくすべく作成したツールです。

※2023年5月30日追記

Pythonista3がバージョン3.4へ上がり、targetがprefixへと変わったので書き換えました。

話が逸れましたが、実行しましたらPythonista3を再起動して下さい。

 

次に私が適当に作ったpipTerminalなるものを起動します。

実行すると「mobile@[DeviceName]~Documents$: 」と出てきます。ここで「pip list」と入力するとモジュールが表示されます。

次に「list --outdated」と入力してみると何も表示されませんが、これはまだアップデートするパッケージがないためです。

アップデートするパッケージがあると一覧として表示されます。

 

実はこのpipTerminalはsys.argvへ無理矢理引数を渡しているだけです(笑)

※2021年8月28日追記

pipTerminalの大幅な改修を行い、pip以外のコマンドを使えるようにしてさらに改良をしてみました。

※2023年5月30日追記

pipTerminal周りと導入の簡略化をしました。

 

実行すると以下の画像の様になります。

Preview

例に上げると以下のようになります。

sys.argv[1:] = input('PyTerminal~# ').split(' ')

このように書くと「sys.argv[1:]」に「input」で渡された入力を「スペース」で区切ってリストにしてから「sys.argv[1:]」へ渡しています。

(※pipTerminalは上記の方法を基に作られています。)

「sys.argv」はリスト形式で引数を扱っているのでこうするとinputでもコマンドを実行できるようです。

 

Pythonista 3

Pythonista 3

  • omz:software
  • 仕事効率化
  • ¥1,220

apps.apple.com

 

LibTermというiOSアプリを使ってみる

AppleStoreにはたまに香ばしいアプリが置いてあることがあります。

大半は例のごとくAppleにリジェクトを食らい消滅します。

私はいつものように珍しいアプリ等を探していたところ…

「LibTerm」なる何やら香ばしいアプリを見つけたのでご紹介( 。・ω・)ノ

LibTerm

LibTerm

  • Marcela Cid
  • ユーティリティ
  • 無料

 

LibTermとは…

LibTermは、Python 3.7およびLua 5.3を搭載したiOS用の端末です。


このアプリはOpenTermのようなものですが、この端末はあなた自身のアプリに埋め込むことができ、LuaPython 2.7をサポートします。” (GitHubの説明文をGoogle翻訳したやつ)

とまあ…OpenTermというsandbox内で動くターミナルをベースに作り、一からコードを書き直した端末系アプリのようです( 'ω')

で、実際使ってみたのですが…まあ…不具合が多いというのが第一印象。(出たばかりなのと無料アプリだからというものもありそう…。無料アプリに期待するのは間違いというのはいつものお約束ですけどねー。)後「これちょっとどうなの?()」って不具合を見つけたのでこれもご紹介。ちなみに、この手のアプリは注意すべき点として「変な通信をしてないか」を疑うべきなのですが見た感じ変な通信はしてない模様…( 'ω')

まあ…怪しさマックスですが、何はともあれ使ってみました( 'ω')

f:id:NoName-toPy7:20190301115040j:image

開いた直後はこんな感じになってます。

なお、OpenTermの様にフォントカラーを変えることはできないようになっています。

(※開発者さんに英語で直接頼めば実装してくれそうではありそう…)

早速使って行くわけですが

アプリの説明文には

コマンドを追加するには package installからインストールして下さい"

との事ですが、実はGithub上にこっそりと”自作のコマンドを追加するには設置してあるリポジトリにコミット申請してね”と書いてあるわけで…つまり、Githubアカウントを取得後にコミット申請しないと自作コマンドを”package install”でインストールするのは無理なご様子…

 

しかし、私はこの手のアプリはかなり触って来たのでとりあえず自力で無理矢理に解決してみました( 'ω')ノ

(※以下で解説するやり方は開発者の意図に反している可能性が非常に高い為今後修正される可能性が大いにあります。ご了承下さい)

 

まず、ターミナルから

python -m pip install pproxy” 等のコマンドが追加されるPythonモジュールをインストールします。

次に以下のコマンドで”package install” でインストールされるフォルダーの一個上に行きます。

“cd ../Library/“ 

“ls”コマンドで一覧を取得するとわかるのですが

「Caches」,「scripts」,「Preferences」,「stash_extensions」の4つがあると思います。

とりあえず”rm -rf scripts“ とし「scripts」の項目を削除。(※「rm -rf」とは…rmコマンドは通常フォルダーは削除できません。しかし「-rf」オプションを付けると空フォルダーじゃなくてもフォルダーだったとしても削除してくれるようになります。なお、使い方次第ではハードディスクを空っぽにできたりするので管理者権限での扱いには結構注意が必要だったり…)

次に”ln -s stash_extensions/bin/ scripts“ とし「stash_extensions」の下にある「bin」フォルダーのシンボリックリンクを削除したscriptsフォルダーの名前と同じ名前で作成します。

これで以降はpython -m pip install ○○” でインストールしたコマンド達が使えるはずです。

ただし、pproxyコマンドを使うには一工夫が必要なのでこれも説明…

とりあえずcd scripts” とコマンドを打ちscriptsに移動します。

次に”mv pproxy.py Pproxy.py” とし「pproxy.py」の名前を「Pproxy.py」にします。

何故こういう面倒なことをしないといけないのかというと、Pythonista3も同じ挙動で悩みましたがどうやら

import pproxy

等とした時、インポートする先をsite-packages3からのインポートじゃなく同一の名前のスクリプトがフォルダーにある場合それを先に読み込む不具合があるようで「pproxy.py」のままだと実行する「pproxy.py」のスクリプト自体をインポートしちゃうのでループとなりエラーが起こる様です。

これはもう、Pythonista3と同じStaShを使ってpipを動かしているのでStaSh側がなんとかしない限り治らない謂わばこの手のアプリの宿命とも言えます。

ちなみに、確認した限りでは「wsgidav」も同一の影響を受けるので、仮にwsgidavを使用したいならwsgidav.py → Wsgidav.pyとcheroot.py → Cheroot.pyの様にする必要性があります。

次に一々python -m pip” と打つのが面倒な人の為にPproxy.pyがあるフォルダーへpip.pyをコピーしちゃいましょう。

まず”env”とコマンドを入力。

ずらっと環境変数が一覧に出てきますが、

その中にある「PYTHONHOME=」の項目内にある値をコピーします(※「/var/containers/Bundle/Application/“ランダムな文字列”/LibTerm.app」と書いてあるやつです。)

次にcp -a /var/containers/Bundle/Application/“ランダムな文字列”/LibTerm.app/site-packages/pip.py ./ “

とコマンドを打ちます。するとpip.pyがコピーされ、以後「python -m pip」とせずに「pip install」が使える様になります。

そして、envコマンドを実行した時にわかると思いますが、このアプリはどうやらLibTerm.app直下に配置された「python37.zip」というzipファイルからPythonを実行しているっぽいのです。ただ、問題点はこのzipの所為で純正の「pip」が使えない点です。

LibTerm.appはアプリフォルダーなので当然、読み込みのみしかできません。したがって、純正の「pip」がpythonフォルダー直下に書き込めずにエラーを吐いてしまうのです。

ちなみに、対策を模索してみましたがこればっかりはダメでした( 'ω')

LibTerm.app以外の読み込み可能フォルダー(Libraryフォルダー等)にpython37.zipを投げ込み展開後「setenv」コマンドで無理矢理Python環境変数を書き変えれないか試しましたがアプリの再起動後、強制的に元に戻されるので無理な様子( 'ω')。

純正の「pip」使えたらなぁ感が否めませんがこれもPythonista3と同様の宿命かなぁと思います。

 

変わって“pip install” 時に「pkg_resources.zip」をどこかに配置しようとしてエラーが毎回出る場合の対処です。

ひとまず「tmp」フォルダーの位置を確認しに行きます

ターミナルから”env” とコマンドを実行。

1番上にある「TMPDIR=」の項目にある値をコピー。

次にターミナルから

“package install unzip”(エラーが出た場合リトライして下さい)

を実行し、新規タブを開き

”mkdir tmples;cd tmples“

と実行し、作業フォルダーに移動後

先程コピーしたTMPDIRの値をこのように貼り付け

“cp -a /private/var/mobile/Containers/Data/Application/ランダムな文字列/tmp/pkg_resources.zip ./ “ を実行します。

次に“unzip pkg_resource.zip“ と実行し「pkg_resources.zip」を展開します。

次に”mv pkg_resources pkg;cd pkg/pkg_resources-master/pkg_resources;pwdと実行し出てきた値をコピー。

更に新規タブを開き”cd site-packages3”とコマンドを実行しsite-packages3に移動。

次に"cp -a 先ほどコピーした値 ./“と実行し「site-packages3」フォルダーに「pkg_resources」フォルダーを配置すると以後インストール時のエラーは出なくなります。

しかし「/Users/adrianlabbe/Desktop....」の警告が出るようになりますが恐らく開発者さん側の環境でエラーを確認しないまま出しているものだと思いますのでこれも不具合だと思われます。

無視で構わないのですが、気になるなら開発者さんに連絡を入れてみるのもありではあります( 'ω')

 

最後に…このアプリは以前は課金制でしたが、不具合で無料になっていたのが修正を断念したのか無料で配布される様になって今に至っている様です。

(今後、開発者さんの気まぐれで課金が復活しないとも限らないので遊ぶなら今のうちかもしれない…)

また、不具合なのかフォルダーアイコンをタップして開いてicloud driveからファイルを読み込んでも何も起こらないあたりまだまだ発展途上なアプリなのが伺えます。

また現時点でその他強制終了もたまに発生しますが無料アプリですのでそこらへんはもう割り切りましょう。

ちなみに、pythonista3をお持ちの方がこのアプリが必要かと問われたらPythonista3で動かないモジュールも動いたりしなくもないので遊ぶには丁度良いかもしれません。

そして、開発者さんのモチベ上げにも開発者さんが出してる有料アプリも買って上げて下さいね( ˘ω˘)

(Pythonista3とどことなくUIが似てるのがちょっと気になるけど…)

 

KLUE(Kona Linux Ubuntu Edition)3.0がネットに繋がらない場合の対処法

※前回投稿した記事に誤りがあったので別記事である本記事で対処法をまとめ、誤りがあった投稿の方は削除致しました。申し訳ございませんでした。

 

音響効果が素晴らしいと巷で有名なKLUE(Kona Linux Ubuntu Edition)3.0においてインストール後約30分でネットに繋がらなくなったので対処法がないか検索してみるとGoogle グループに作者様が書いてくれてましたのでまとめてみました。

 

  1. まず、Live DVDまたはISOファイルからKLUE3.0を起動
  2. Live DVD(またはISOファイル)側にある
  • /usr/sbin/NetworkManager
  • /sbin/wpa_supplicant
  • /sbin/dhclient

をUSBか何かに一旦保存させ、インストール先にある

  • /usr/sbin/NetworkManager
  • /sbin/wpa_supplicant
  • /sbin/dhclient
  • /usr/sbin/NetworkManager.save
  • /sbin/wpa_supplicant.save
  • /sbin/dhclient.save

上記の削除後一旦保存した

  • NetworkManager
  • wpa_supplicant
  • dhclient

をそれぞれ削除したファイルの元の場所へとコピーしてやればいいだけのようです。

(※念のためそれぞれのファイルには「chmodコマンド」で実行権限を付与しておいてください。コマンドは以下の

  • sudo chmod 777 /sbin/dhclient
  • sudo chmod 777 /usr/sbin/NetworkManager
  • sudo chmod 777 /sbin/wpa_supplicant

を実行してください)

そして、何故0バイトになるかですが、

今回0バイトになったファイルは私の環境だと「dhclient」と「NetworkManager」の2ファイルでこの二つのファイルには共通点があることに気づきました。

それは「0バイトになった2つのファイルが「/var/lib/kona/bin/」に配置されているシンボリックリンク」だということです。

シンボリックリンクはリンク先にファイルが無い場合参照できなくなるので0バイトになります。

つまり、KLUEをインストールした直後に

  • sudo rm /usr/sbin/NetworkManager
  • sudo rm /sbin/dhclient
  • sudo mv /var/lib/kona/bin/NetworkManager /usr/sbin/
  • sudo mv /var/lib/kona/bin/dhclient /sbin/

を実行すれば良いだけっぽいです。

 

※2019年1月19日現在の最新版でも今回の不具合は発生する模様ですのでご注意下さい。

ブログ始めてみました。

皆さま始めまして( 。・ω・)ノ"

当ブログではプログラミング(主にPython)などの小言や個人的なメモ、ゲームでの豆知識などを不定期ですが書いていくつもりです。( 。・ω・)

今後もどうぞよろしくお願いします|_-)

※アイコン類は自作したものを使用しておりますが30分程度で作ったクオリティです。ご了承下さい。