忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2025/08/24 05:17 |
Minecraft1.3.2 CustomRenderBlock v1.0.8 カスタムレンダブロックのさらなる上位機能
前回、20480種類ものブロックが使えるカスタムレンダブロックさん最強すぐる、とか紹介しました。

が、実はあれでもまだ全然本気を出していなかったことが判明。
まあ本人から教えてもらったのですが。

CustomRenderBlockの設定ファイルは以下のようになっています。

cloth {
   BlockID=4001
   texture0=/terrain.png
   texture1=/terrain1.png
   texture2=/terrain2.png
   texture3=/terrain3.png
   texture4=/terrain4.png
   texture5=/terrain5.png
   texture6=/terrain6.png
   texture7=/terrain7.png
   texture8=/terrain8.png
   texture9=/terrain9.png
}


ここで、以下のように「/2」とつけてみましょう。
   texture1=/terrain1.png/2
するとどうなるか。

テクスチャファイルはこのように、一枚の画像に多種類のテクスチャ画像が収まっており、使う時はこれを縦16*横16に切り出して使用しています。
2012-09-28_21.31.18.png
Minecraft本体のブロックやアイテム、ModLoaderやForgeのテクスチャなど、基本どれも同じ構造です。

ところで本MODではテクスチャファイル名の最後に「/2」を付けると分割数が2倍になります。
つまり一枚の画像が縦32*横32に切り出されます。

分割だけ指定して画像がそのままだと、一枚のブロックの見た目が4分割された状態になります。
2012-09-28_21.31.19.png2012-09-28_21.38.16.png

テクスチャファイルを4枚くっつけて大きなサイズの画像を一枚作ると、32*32分割されたときにちょうど合った形になります。
2012-09-28_21.54.13.png2012-09-28_21.54.14.png

どういうことかって、ひとつのブロックの一つのテクスチャ画像の中で、実質4種類のテクスチャ画像が使用可能になるってことだよ!
わかりにくい?では言い直しましょう。
「/2」を付けるだけで前回までの4倍、320種類のテクスチャファイルが使えるってことだよ!

さらにこの分割、「/2」だけではなく「/4」「/8」まで対応しており、最大の「/8」だと1枚のテクスチャ画像を縦128*横128の16384枚にまで分割するという恐ろしいことになります。
前回超凄いとか言っていた80種類のテクスチャファイルが、1ブロックの「0」と「1」だけで全部入ってしまうとかいう事態に。

ブロックが8種類*ブロックごとにテクスチャファイルが10枚*テクスチャファイル一枚につき16384種類のテクスチャということで、理論上1310720種類もの見た目から選ぶことができるようになりました。
いやあ、本気でどうするんだよこれ。

さすがに5120種類ものテクスチャファイルを集めるのは無理だったので、以下はデフォルトのテクスチャを「/8」した結果です。
2012-09-28_21.58.52.png2012-09-28_22.15.36.png

左右のは普通のかぼちゃです。
本当は立方体にしようかと思ったんだけど挫折したので平面図。


マインクラフト1.3のまとめ
 
PR


2012/09/29 19:35 | Comments(0) | └minecraft
ZF1.11 Zend_Paginator
いつのまにかZF2が出てたので、今さら手元に残ってたZF1の未公開記事を大放出しちゃうシリーズ。

ページャーはPear::Pagerが優秀すぎてとりあえずそれ使っとけば安泰ではあるのですが、ZFにもZend_Paginatorが存在します。
特徴はZend_Db_Selectあたりと連携すると、全件数全ページ数などの取得も自動的に行ってくれることです。
公式の使用例は何故かルータやZend_Viewなどの使用が前提になっていて面倒なので、とりあえずZend_Paginatorのみ使う方向で作ってみます。

素材は昔作ったページャー
<?php
	require_once('Zend/Paginator.php');
	require_once('Zend/Paginator/Adapter/Array.php');
	
	//適当な配列
		$arr=array();
		for($i=1;$i<1000;$i++){
			$arr[]=array(
				'id'=>$i
				,'md5'=>md5($i)
			);
		}
	
	//ページャー
		$zendPaginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($arr));
	
	//設定
		//現在のページ数
		$zendPaginator->setCurrentPageNumber(5);
		//1ページに表示する件数
		$zendPaginator->setItemCountPerPage(20);
		//前後合わせて表示するページ数
		$zendPaginator->setPageRange(7);
	
	//ページング情報を取得
		$pager = $zendPaginator->getPages();
		print('全ページ数:' . $pager->pageCount);
		print('次のページ:' . $pager->next);
	
	//アイテムを取得
		//現在のページのアイテムを取得
		$zendPaginator->getCurrentItems();
		//指定したページのアイテムを取得
		$zendPaginator->getItemsByPage(15);
		//JSON形式で取得
		$zendPaginator->toJson();
	
	//foreachすると、現在のページのアイテムだけをforeachする
		foreach($zendPaginator as $key=>$val){
			print($val['id'] . ' : ' . $val['md5']);
		}
Zend_Paginatorのインスタンスには配列を渡すことはできず、アダプタのインスタンスを渡さなければなりません。
配列ならいったんZend_Paginator_Adapter_Arrayに突っ込んでからZend_Paginatorを呼び出すという形になります。
他のアダプタとしては、Zend_Db_Selectインスタンスをそのまま渡すだけでcountとかlimitとかを自動的に発行してページャーやデータを取得したりしてくれるすごいアダプタZend_Paginator_Adapter_DbSelect、単にページャーだけが必要でデータそのものは不要なときに使うZend_Paginator_Adapter_Nullなどがあります。

アダプタの指定がよくわからないという場合は、コンストラクタのかわりにZend_Paginator::factory()メソッドを使うと、概ねよきにはからってくれます。

なお、こちらはPear::Pagerと違って、HTMLのリンクを作成したりしてくれる機能はありません。
そこらへんは自力で実装することになります。
Zend_Viewを使用している場合は、Zend_View_Helper_PaginationControlというヘルパーでできるようになるみたいです。
まあ、機能の単位という点では確かにこちらの実装の方が正しいのかもしれませんが、やはり具体的なリンクまで簡単に作ってくれるPear::Pagerのほうが便利ですね。


2012/09/28 21:00 | Comments(0) | PHP
Minecraft1.3.2 CustomRenderBlock v1.0.8 カスタムレンダブロックがえらいことになっていた
CustomRenderBlockを紹介しました。
この時点でも十分反則じみた使い勝手のMODでしたが、その後気がついたらとんでもないことになっていたので再度紹介してみます。
使用したバージョンはv1.0.8、使用BlockID数は8です。

基本的な使い方は前回と変わりません。
2012-09-26_23.28.25.png
ただ、左側に謎の0から9の数字が増えています。
これをクリックしてみるとあら不思議。
2012-09-26_23.30.02.png
テクスチャがまるっと入れ替わりました。

はい、一種類のカスタムレンダブロックで10種類のテクスチャファイルが使用可能になったのです。
カスタムレンダブロックの種類は8種類なので、全部違うテクスチャファイルにするとどえらいことに。

2012-09-26_23.31.10.png
かぼちゃの頭だけでこれ。
反則とかそういう次元を遙かに通り過ぎてます。

ブロックが8種類*ブロックごとにテクスチャファイルが10枚*テクスチャファイル一枚につき256種類のテクスチャということで、合計20480種類の見た目が選択可能になりました。
根気さえあれば何でも実現可能なレベルですな。

欠点としては、80種類ものテクスチャを読み込むので起動に少々時間がかかってしまうところでしょうか。
ファイルサイズが100メガ近くになってしまいました。
あと79種類(ひとつはバニラ)のテクスチャファイルを集めるのが一番大変でした。


ちなみにどうでもいいですが、テクスチャはLoafCraftが一番好みです。
普段はバニラしか使いませんが。


マインクラフト1.3のまとめ


2012/09/27 21:26 | Comments(0) | └minecraft
Minecraft1.3.2 Portals++ v1.6.1 自由な形のネザーゲート
Portals++は、ネザーゲートの生成規則を変え、またディメンションをひとつ追加するMODです。
使用したバージョンはv1.6.1、使用BlockID数はたぶん0です。

こちらを導入すると、まずネザーゲートの法則が変わります。
ゲートの色が赤になり、通常の2*3の大きさではなく、どんな大きさでもゲートを作成できるようになります。
2012-09-19_20.31.03.png
それどころか四角形である必要すらなく、黒曜石で囲ってさえいればどのような形でも問題ありません。
2012-09-19_20.36.40.png

ゲート作成に失敗して普通に火が点くことがあるのですが、その場合は左下隅を狙うとうまくいくみたいです。

さらには上下を向いたゲートなんてのも。
ゾンビピッグマントラップが実用化に?
2012-09-19_20.40.17.png

ネザー側のゲートも変わります。
ゲートの色が緑色になり、素材は丸石になります。
2012-09-19_20.41.07.png

緑は「通常世界に戻る」というゲートです。
地上に緑のゲートを作ることも可能ですが、そのゲートからはどこにも移動することはできません。
逆にネザーに黒曜石のゲートを作っても移動はできません。

さて、もう一つおまけとして、焼石で囲って火を付けると青いゲートができます。
2012-09-19_20.50.52.png

このゲートをくぐると、新たな世界、空島に行くことができます。
2012-09-19_20.53.08.png

海と岩盤が無く、浮遊大陸が点在する開放感溢れる世界です。
組成などは通常世界と変わらないようです。
もちろん転落したら死にます。
ベータ1.8のころにあった世界らしいですが、こんなのあったっけ。

問題点としては、ゲートの素材が丸石や焼石とありふれすぎた素材である点でしょうか。
洞窟内で火を付けようとしてうっかり空島ゲートが開くなんて事故がありそうです。
2012-09-19_20.53.30.png

もっとも素材ブロックは設定で変えられるので心配要りませんが。
普段使わないようなブロックにしておくとよいでしょう。
2012-09-19_21.05.13.png

ということで、ネザーゲートの法則を変えて自由なレイアウトを可能にし、おまけで空島も追加されるPortals++、使い勝手がいいので試してみてはどうでしょう。
2012-09-19_21.05.14.png


マインクラフト1.3のまとめ


2012/09/26 22:37 | Comments(2) | └minecraft
Minecraft1.3.2 FlatBedrock v1.3 / LevelingFlat v1.5 地形生成に干渉するMOD
地形生成に干渉するMODを2種類紹介。

まずFlatBedrockは、岩盤を綺麗に均してくれます。
使用したバージョンはv1.3、使用BlockID数は0です。

通常、世界の一番下は、Y=0が岩盤で埋め尽くされ、Y=1から4の範囲にもランダムで岩盤が設置されています。
2012-09-19_15.28.16.png
これのせいでY=1から4の高さが実質使用できません。

そこでこちらのFlatBedrockを入れて起動すると、自分がいるチャンクのY=1から4の範囲にある岩盤が石に置き換えられます。
2012-09-19_15.29.58.png
ネザーではネザーラックに置き換えられます。

あとは整地してしまえば、Y=1から4の高さも自由に使うことができるようになります。
見た目もきれいになるので、特に巨大建築などの用が無くてもとりあえず使っておいて損はないでしょう。
2012-09-19_15.31.53.png

単にブロックを置き換えるだけなので、岩盤整地完了後には外してしまっても問題ありません。
外した場合、その後に生成されたチャンクは再びぼこぼこ岩盤になります。
入れたままにするもよし、使い分けるもよしです。
どう使い分ける要素があるのか謎ですが。


もうひとつ、LevelingFlatはスーパーフラットの生成規則を変更するMODです。
使用したバージョンはv1.5、使用BlockID数は0です。

これを導入すると、ワールド生成時のタイプに「LevelingFlat」が追加されます。
2012-09-19_18.27.37.png

基本スーパーフラットですが、Lキーでメニューが呼び出せます。
2012-09-19_18.32.54.png

下の「7,3,3,2」の部分が、現在のスーパーフラットの生成規則です。
ここをカンマ区切りで適当に変更すると、以後生成されるチャンクがそれに従った構造になります。
2012-09-19_18.42.54.png2012-09-19_18.44.03.png

鉱石などを追加してアイテムに不自由しないスーパーフラットにしたり、ある程度深さのある実験場が欲しいといったときに役立つでしょう。

欠点としては、現在のところメタデータを指定できないようです。
羊毛であれば白羊毛、原木であればオークしか設定できません。

あとBlockListでブロックIDの一覧が見られるのですが、他のMODで追加されたブロックがあった場合フリーズするようです。
ForgeのせいなのかBlockID拡張のせいか、それとも文字ブロックMODの作りが駄目なせいなのかは不明ですが、他MODのブロックを指定するとフリーズしてしまいました。
2012-09-19_18.44.04.png

また下部のオプションから洞窟や廃坑、村などの生成をオンオフできます。
オンにした場合、生成アルゴリズム自体は変わらないため、空中に廃坑などが生成されます。
2012-09-19_18.44.49.png
構造の調査・研究などにもいいかもしれません。

とっても安全な村ができました。
2012-09-19_18.45.35.png


マインクラフト1.3のまとめ


2012/09/25 22:54 | Comments(0) | └minecraft
Minecraft1.2.5 エンチャント交換MOD 1.0.4 その3 エンチャント?武器
前回の続き。

何気に解説には全く載っていませんが、どこかで見たような武器を作ることが可能です。

木の棒、鉄インゴット*3でバスターソード(BasterSword)。
2012-09-18_00.22.27.png
攻撃力は4と低めですが、使用回数は無限で壊れることはありません。
それ以外は極めて普通の武器で、もちろんエンチャントも可能です。

バスターソード、基礎マテリアレベル10、ダイヤの剣*2、金の剣*2、鉄の剣でユニオンソード(UnionSword)。
2012-09-18_00.43.12.png
とんでもないコストのわりに、攻撃力4、壊れないとバスターソードと効果が変わりません。
しかし何故かインベントリを持っており、右クリックで中に物を入れておくことができます。
どんな武器だ。
2012-09-18_00.49.15.png

ダイヤの剣、基礎マテリアレベル10、鉄インゴットで正宗(MasamuneBlade)。
2012-09-18_00.51.12.png
中身はバスターソードと全く同じです。


これらの剣、内部的なデータが全く同じです。
ここらへんの武器はまだ開発中なのだと思われます。
今後のバージョンアップに期待というところでしょう。
最強武器は傘と軍手どちらでしょうね。


マインクラフト1.2のまとめ


2012/09/24 23:00 | Comments(0) | └minecraft
買ったものリスト 2012/09/23
3DSのVC「カエルの為に鐘は鳴る」クリア。
いやあ、最後のオチまで見事に作り込まれた名作でした。

今から初めてプレイすると古くさいところもあるかもしれませんが、というかネタが古いですが、
価格以上は十分に楽しめる作品ですので是非プレイしてみてください。


ソード・ワールド2.0リプレイ 新米女神の勇者たちリターンズ 秋田 みやび
☆☆☆☆

SW2リプレイシリーズで一番面白かったシリーズが再臨。
しかもバブリーズリターンのような単発ではなく、今後続刊もあるみたいです。
なんか新作が売れないから続編とか嫌なフレーズが頭をよぎったが、まあ変わらず面白かったからいいや。
キャンペーンが重かったから後日談は軽く、とか言いつつ早速なんか大きな陰謀が始まりつつある気がするんですがどうなんでしょう。


ソード・ワールド2.0リプレイfrom USA(6) 蛮竜侵撃‐ドレイクストライク‐ ベーテ・有理・黒崎
☆☆☆

シティアドベンチャー+政治ものとか激しく日本に侵食されている気がするマッスルリプレイ第六弾。
内容は相変わらずシビアですが、今回はシビアがアドベンチャー部分にかかってきたかんじで、そのかわり戦闘はわりと普通でした。
いつもの無茶なバランスはどうした。


ソード・ワールド2.0リプレイSweets(4) きらめき魔剣はあきらめない! 藤澤 さなえ
☆☆☆

このシリーズは好きじゃなかったのですが、さすがに最終巻はきちんとまとまってました。

しっかしその出鱈目な剣はどうするんだ。
サーペントの連中だって手が届かないような魔剣でしょう?
これを巡って新たな戦いが勃発してもおかしくないような気が。


ソード・ワールド2.0リプレイ with BRAVE(1) 聖剣のクルセイド 北沢 慶
☆☆

新作かと思ったら実は聖戦士物語の続きだった。
なんかこう、あーうん、もういいです。
そういう系統の話はラノベでやってくれ。

http://www.toranoana.jp/mailorder/article/04/0030/06/94/040030069481.html
看板娘はさしおさえ AfterDays 鈴城 芹
☆☆☆

さしおさえシリーズの後日談という形の本人による同人誌です。
といっても新しい展開や設定の開陳があったりするわけでもなく、わりと本編と同じような空気が流れています。
商業作家があえて同人で出す意味って何なのだろう。


2012/09/23 22:16 | Comments(0) | 買ったもの
Minecraft1.3.2 Crossbow Mod2 Version4 その3 アタッチメント
前回の続き。
今回は残りのアタッチメントを紹介します。

鉄インゴット*6、火打ち石*3で炎アタッチメント(Flame Crossbpw Attachment)。
鉄インゴット*6、レッドストーン、グロウストーンダスト*2で雷アタッチメント(Lightning Crossbpw Attachment)。
鉄インゴット*6、TNT*3で爆発アタッチメント(Explosive Crossbpw Attachment)。
2012-09-15_15.51.36.png2012-09-15_15.52.11.png2012-09-15_15.52.23.png

クロスボウを作るときに、これらをアタッチメント枠にセットすると、それぞれの効果があるクロスボウを作成できます。
それぞれ名前のとおり、撃ち出したボルトが炎上、落雷、爆発の効果を発揮します。
2012-09-15_15.54.02.png2012-09-15_15.54.23.png2012-09-15_15.54.41.png

これらの特徴は矢の種類ではなく撃ち出すクロスボウに依存するので、効果ごとに矢を持ち分けたりしなくていいのが楽です。
まあ炎上とかはともかく、爆発効果をどうやって発動させているのかとか謎ですが。


鉄インゴット*6、溶岩バケツ*3で溶岩アタッチメント(Lava Crossbpw Attachment)。
鉄インゴット*6、雪ブロック*3で冷凍アタッチメント(Frost Crossbpw Attachment)。
2012-09-15_16.06.09.png2012-09-15_16.06.18.png

溶岩アタッチメントは、敵に当たったときに炎上するのは炎アタッチメントと同じですが、地形に着弾したときはそこに溶岩源を作り出します。
2012-09-15_16.13.28.png

冷凍アタッチメントは、敵に当たると何かのポーション効果が出るみたいなのですが、どんな効果なのかはよくわかりませんでした。
鈍足かな?
2012-09-15_16.14.03.png
特に水源を作り出したり水を凍らせたりする機能はないようでした。残念。

鉄インゴット*6、蜘蛛の目、ネザーウォート*2で毒アタッチメント(Poison Crossbpw Attachment)。
まあただの毒なので省略。
2012-09-15_16.16.44.png

最後にトーチアタッチメント(Torch Crossbpw Attachment)は鉄インゴット*6、木の棒、石炭、火打ち石。
2012-09-15_16.19.29.png

着弾地点にトーチを立ててくれます。
広い洞窟で向こう側を照らしたり、丘の上からあたりに乱射したりと何気に便利です。
2012-09-15_16.21.50.png2012-09-15_16.21.52.png
そのかわり攻撃力は一切なくなって敵に当たらなくなりますが、便利さを考えると十分だといえるでしょう。
天井や水中など松明を立てられないところに着弾した場合、何も起こらないか直後にドロップアイテム化します。

素材が5種類*連射装置が4種類*アタッチメントが9+1種類というとんでもない数の組み合わせで、任意のクロスボウが作成できるCrossbow Mod2、遠距離攻撃主体の人は是非入れてみましょう。


マインクラフト1.3のまとめ


2012/09/22 23:12 | Comments(0) | └minecraft
ZF1.11: Zend_Config_Writer
いつのまにかZF2が出てたので、今さら手元に残ってたZF1の未公開記事を大放出しちゃうシリーズ。

http://framework.zend.com/manual/ja/zend.config.writer.introduction.html
> Zend_Config_Writer は、設定ファイルに Zend_Config オブジェクトを書き出します。

config.iniとかconfig.xmlとかを勝手に作ってくれるというものです。
これ単品ではあまり使用価値はありませんが、大規模なアプリを作った際にプログラムから設定を変更したい、といったときに重宝すると思われます。

さっそく使ってみる。
<?php
	header('Content-type: text/html; charset=UTF-8');
	require_once('Zend/Config.php');
	require_once('Zend/Config/Writer/Ini.php');
	require_once('Zend/Config/Writer/Json.php');
	require_once('Zend/Config/Writer/Xml.php');
	require_once('Zend/Config/Writer/Yaml.php');
	require_once('Zend/Config/Writer/Array.php');
	
	//適当なコンフィグを作成
		$zendConfig = new Zend_Config(array(), true);
		//stagingはproductionを継承する
		$zendConfig->setExtend('staging', 'production');
		//production、stagingの設定
		$configProductionArray = array(
			'webhost'  => 'www.example.com',
			'database' => array(
				'adapter' => 'pdo_mysql',
				'params'  => array(
					'host'     => 'db.example.com',
					'username' => 'dbuser',
					'password' => 'secret',
					'dbname'   => 'dbname'
				)
			)
		);
		$configStagingArray = array(
			'database' => array(
				'params'  => array(
					'username' => 'staging.example.com',
					'password' => 'staginguser',
					'dbname'   => 'stagingsecret'
				)
			)
		);
		$zendConfig->production = $configProductionArray;
		$zendConfig->staging = $configStagingArray;
	
	//config.iniに保存
	$zendConfigWriterIni = new Zend_Config_Writer_Ini(array(
		 'filename' => 'config.ini'
		,'config'   => $zendConfig
	));
	$zendConfigWriterIni->write();
	
	//config.jsonに保存
	$zendConfigWriterJson = new Zend_Config_Writer_Json(array(
		 'filename' => 'config.json'
		,'config'   => $zendConfig
	));
	$zendConfigWriterJson->write();
	
	//config.xmlに保存
	$zendConfigWriterXml = new Zend_Config_Writer_Xml(array(
		 'filename' => 'config.xml'
		,'config'   => $zendConfig
	));
	$zendConfigWriterXml->write();
	
	//config.yamlに保存
	$zendConfigWriterYaml = new Zend_Config_Writer_Yaml(array(
		 'filename' => 'config.yaml'
		,'config'   => $zendConfig
	));
	$zendConfigWriterYaml->write();
	
	//config.phpに保存
	$zendConfigWriterArray = new Zend_Config_Writer_Array(array(
		 'filename' => 'config.php'
		,'config'   => $zendConfig
	));
	$zendConfigWriterArray->write();

config.ini
[production]
webhost = "www.example.com"
database.adapter = "pdo_mysql"
database.params.host = "db.example.com"
database.params.username = "dbuser"
database.params.password = "secret"
database.params.dbname = "dbname"

[staging : production]
database.params.username = "dev.example.com"
database.params.password = "devuser"
database.params.dbname = "devsecret"

config.json
{
    "production":{
        "webhost":"www.example.com","database":{
            "adapter":"pdo_mysql","params":{
                "host":"db.example.com","username":"dbuser","password":"secret","dbname":"dbname"
            }
        }
    },"staging":{
        "database":{
            "params":{
                "username":"dev.example.com","password":"devuser","dbname":"devsecret"
            }
        },"_extends":"production"
    }
}

config.xml
<?xml version="1.0"?>
<zend-config xmlns:zf="http://framework.zend.com/xml/zend-config-xml/1.0/">
  <production>
    <webhost>www.example.com</webhost>
    <database>
      <adapter>pdo_mysql</adapter>
      <params>
        <host>db.example.com</host>
        <username>dbuser</username>
        <password>secret</password>
        <dbname>dbname</dbname>
      </params>
    </database>
  </production>
  <staging zf:extends="production">
    <database>
      <params>
        <username>dev.example.com</username>
        <password>devuser</password>
        <dbname>devsecret</dbname>
      </params>
    </database>
  </staging>
</zend-config>

config.yaml
production: 
  webhost: www.example.com
  database: 
    adapter: pdo_mysql
    params: 
      host: db.example.com
      username: dbuser
      password: secret
      dbname: dbname
staging: 
  database: 
    params: 
      username: dev.example.com
      password: devuser
      dbname: devsecret
  _extends: production

config.php
<?php
return array (
  'production' => 
  array (
    'webhost' => 'www.example.com',
    'database' => 
    array (
      'adapter' => 'pdo_mysql',
      'params' => 
      array (
        'host' => 'db.example.com',
        'username' => 'dbuser',
        'password' => 'secret',
        'dbname' => 'dbname',
      ),
    ),
  ),
  'staging' => 
  array (
    'database' => 
    array (
      'params' => 
      array (
        'username' => 'dev.example.com',
        'password' => 'devuser',
        'dbname' => 'devsecret',
      ),
    ),
  ),
);

Zend_Configの素材として使った配列はこちらです。
見事に設定ファイルの形式になりました。
つまりはZend_Configのちょうど正反対のことをやってくれるというわけです。

なにげにjson_encode()やsimplexml_load_string()、yaml_emit()といった統一性のない関数を使わずに、Zend_ConfigとZend_Config_Writerで統一的なフォーマット変換が行えるので、むしろそっち用途としてのほうが便利なのではなかろうか。


2012/09/21 22:55 | Comments(0) | PHP
Minecraft1.2.5 エンチャント交換MOD 1.0.4 その2 エンチャントを作成
前回の続き。

前回はエンチャントツールからエンチャントを取り出しましたが、実はエンチャントの元は自作可能です。
これでもう欲しいエンチャントが出るまでトラップタワーに籠もる必要はありません。
ただまあ、あまり便利すぎてもちょっとなという気がしないでもないですが。
まあとりあえず見てみましょう。

まず基礎マテリア(Materia of Base Lv.0)はダイヤモンド、エンダーパール。
2012-09-17_23.46.36.png
全てのマテリアの基礎となるアイテムで、これ自体をエンチャントすることはできません。

基礎マテリア、ブレイズパウダー*8で炎マテリア(Materia of Fire Lv.0)。
2012-09-17_23.49.21.png
炎属性を付与するマテリアです。
剣に付ければFire Aspectを、弓にFlameを、防具にFire Protectionをエンチャントしてくれます。
が、現在はレベル0。
レベル0では効果がないためエンチャントできません。

前回のように右クリックでレベルを上げてもいいですが、かわりにエンチャントボトルでレベルアップも可能です。
レベル0のマテリアとエンチャントボトルひとつでレベル1になります。
2012-09-17_23.54.09.png

同様にレベル1のマテリア+エンチャントボトルふたつでレベル2に、レベル2マテリア+ボトルみっつでレベル3に、とレベル5までは育てることが可能です。
それ以上育てるには、やはり自分のレベルを消費する必要があります。

さて、画像は省略しますが、同様に基礎マテリアをアイテム8個で囲むことで、他のエンチャントマテリアを作成可能です。

基礎マテリア、蜘蛛の目*8で蜘蛛特効(Bane of Arthropods)。
基礎マテリア、鉄インゴット*8で耐久力増加(Durability)。
基礎マテリア、水バケツ*8で水中呼吸(Oxygen)。
基礎マテリア、金インゴット*8で効率強化(Effciency)。
基礎マテリア、矢*8で飛び道具耐性(Projectile)。
基礎マテリア、糸*8でシルクタッチ(Silk)。
基礎マテリア、火薬*8で爆破耐性(Blast)。
基礎マテリア、金りんご*8でドロップ増加/幸運(LootBonus)。
基礎マテリア、羽根*8で落下耐性(Fall)。
基礎マテリア、弓*8でインフィニティ(Infinite)。
基礎マテリア、ファイアチャージ*8で武器にダメージ増加、防具にダメージ減少(Damage)。
基礎マテリア、スライムボール*8でノックバック(Knockback)。
基礎マテリア、火打ち石*8でアンデッド特効(Smite)。
ひとつだけレシピが違い、基礎マテリア、ダイヤモンド*4で水中採掘(AquaAffinity)。

なかなか出ないフォーチュンなんかを簡単に作れてしまうのはちょっとどうなのという気はしますが、まあレベルを育てるのが大変なので相殺といったところでしょうか。
なお、基礎マテリアの状態でもレベルを上げることが可能で、9レベルまでなら、レベルを上げた状態でクラフトするとそのレベルのエンチャントマテリアになります。
2012-09-18_00.35.25.png

何気にレベルダウンとクラフトを使ってレベル錬金術が可能です。
基礎マテリアは1レベル上下するのに10レベルが必要ですが、シルクタッチは20レベルも必要です。
つまり基礎マテリアの状態でレベル9まで上げ、シルクタッチにしてからレベル0に戻すと差し引き80レベルのプラスになります。
ダイヤモンドひとつで80レベルとはエンチャントボトル形無し。

作者もこのことには気がついているようですが、経験値TTの方が楽とか言っています。
でもレベル80とダイヤひとつってどっちが楽かって言われたら後者のような気が。


マインクラフト1.2のまとめ


2012/09/20 23:31 | Comments(0) | └minecraft

<<前のページ | HOME | 次のページ>>
忍者ブログ[PR]