「ic2/雑草発生」の編集履歴(バックアップ)一覧はこちら

ic2/雑草発生」(2014/07/22 (火) 15:26:59) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<h1>雑草発生</h1> <h2>準拠: industrialcraft-2-2.2.517-experimental</h2> <h3>概要</h3> <p style="float:right;"><img alt="" src="http://cdn54.atwikiimg.com/mi_ic2/?cmd=upload&amp;act=open&amp;page=ic2%2F%E9%9B%91%E8%8D%89%E7%99%BA%E7%94%9F&amp;file=2013-09-14_11.58.15.png" style="height:313px;width:400px;" /></p> <p><span style="color:rgb(128,128,128);">概念としての雑草</span>はCrop農業における障壁の一つで、しばしばこれによる被害で貴重な作物の苗を全滅させるなどの被害が出ることがある。</p> <p><span style="color:rgb(128,128,128);">支柱に生えている物としての雑草</span>はシステム上、小麦やアシと同じく作物(CropCard)として扱われているが、ソース中のところどころでそのID値である0がハードコーディングされている(しばしばCropCard#isWeedなどを呼び出しているが、「雑草」と「雑草を生成可能」は異なる。<span style="color:rgb(255,0,0);">雑草(CropWeed)は常に雑草を生成可能(CropWeed#isWeed == true)である</span>。)など、特異性が伺える。</p> <p>以下、単に<span style="color:rgb(51,153,102);">雑草</span>という場合には<span style="color:rgb(255,102,0);">cropIdが0のCropWeedクラスで実装される雑草</span>を指す。また、<span style="color:rgb(255,102,0);">雑草を生成可能な性質</span>(CropCard#isWeed == true)については、<span style="color:rgb(51,153,102);">雑草属性</span>または<span style="color:rgb(51,153,102);">雑草属性状態</span>と称することとする(isWeedはGGR値や成長段階などで変化するため)。</p> <p>多くの作物はサイズ2以上かつGrowth24以上で雑草属性状態となる。</p> <p style="clear:both;"> </p> <h3>出現</h3> <h4>設置</h4> <p> 雑草は左クリックしても種袋をドロップさせるイベントを発生ず、種袋により植えることはできない。また、MODやバグ等を使い雑草の種を入手しても、植えることはできない(TileEntityCrop#tryPlantIn)。</p> <h4><a href="#emptycrop" name="emptycrop">空(交配用支柱を含む)の支柱に自然発生</a></h4> <p>何も植えられていない支柱には<span style="color:rgb(255,102,0);">雑草が発生する判定</span>が起こる可能性がある(TileEntityCrop#tick attemptCrossingの後)。ただし、そのtick内で交配が成立した場合は必ず発生しない。</p> <p><span style="color:rgb(255,102,0);">雑草が発生する判定</span>: 1%の確率で、WeedEXが残っていなかった(この判定時についでに5減少させる)場合に<strong><span style="color:rgb(255,0,0);">発生</span></strong>。それ以外の場合、10%の確率でWeedEXの残量を1減少させる。</p> <p><span style="color:rgb(0,0,255);">WeedEXにより抑制可能</span>。</p> <h4><a href="#cropdeath" name="cropdeath">作物の品質に比べて環境値が極端に低い支柱に間接的に発生</a></h4> <p>作物の品質(need値)が環境による容量(have値)を大きく超えていた場合に、作物が消滅して<strong><span style="color:rgb(255,0,0);">空の支柱に戻る</span></strong>。よって、前項目により雑草が発生する要因となる。</p> <p>この消滅はResistanceが高い場合には確率が下がり(0~31 &gt; Resistance)、31であった場合には起こらなくなる。</p> <h4><a href="#weedgrow" name="weedgrow">雑草属性状態の作物による周囲への繁殖</a></h4> <p>支柱に作物が存在して(id &gt;= 0。雑草も含む)、その作物が雑草属性状態である(CropCard#isWeed == true)場合に、crop tickごとに以下の確率で<span style="color:rgb(255,0,0);">雑草を出現させる処理</span>(TileEntityCrop#generateWeed)を行う。</p> <p style="margin-left:40px;">(3 + Growth) / 50</p> <p><span style="color:rgb(255,0,0);">雑草を出現させる処理</span>:</p> <p style="margin-left:40px;">自分からの相対座標で、<a href="http://www54.atwiki.jp/mi_ic2/pages/29.html">(x, z) =<span style="color:rgb(0,0,255);"><strong>(±0, ±0),</strong></span><strong><span style="color:rgb(255,0,0);">(-1, ±0)<span style="color:rgb(0,0,255);">, (±0, ±0),</span>(±0, -1)</span></strong>の4つの中からランダムに選択する</a>。</p> <p style="margin-left:40px;"> 半分の確率で自分自身の座標を選択するが、この場合はのちの処理で必ず無効になる(常に雑草属性状態なので、「<span style="color:rgb(255,102,0);">雑草属性状態でなくて</span>」の判定が常に偽になるため)。</p> <p style="margin-left:40px;">この位置に支柱がある(instanceof TileEntityCrop)場合、</p> <p style="margin-left:80px;"><a href="http://www54.atwiki.jp/mi_ic2/pages/28.html"><span style="color:rgb(255,102,0);">その支柱が空か交配用である</span>、</a>若しくは<span style="color:rgb(255,102,0);">その支柱の作物が雑草属性状態でなくてWeedEXの残量がない場合に(あった場合はついでに残量を5減少させる)以下のような確率</span>で、</p> <p style="margin-left:120px;">確率: (3<strong><span style="color:rgb(255,0,0);">2</span></strong>- Resistance) / 32</p> <p style="margin-left:120px;">その支柱をGGR値0の<strong><span style="color:rgb(255,0,0);">雑草で初期化する</span></strong>。この時、Growth値のみ次のような値に設定される。</p> <p style="margin-left:160px;"> 侵食側のGrowthか侵食前の被侵食側のGrowthのうち高いほうをとり、31未満ならば50%の確率で1を加算する。</p> <p style="margin-left:40px;">支柱がない場合、</p> <p style="margin-left:80px;"> この位置が空気ブロックであり、この位置の下のブロックが土・耕土・草のいずれかであった場合は下のブロックを草に変え、その位置のブロックを背の高い雑草にする。</p> <p>Resistanceによって侵食の確率を極端に抑えられるが、<span style="color:rgb(255,0,0);">31でも</span><span style="color:rgb(255,0,0);">可能性を0にすることはできない</span>。</p> <p>雑草のGrowth値を鍛えることは容易である。</p> <p>自然発生した雑草は比較的脅威は少ない。なぜなら、Growthが低くcrop tickごとの雑草判定処理の起こる確率が3/50であるからだ。しかし、Growth31の作物を侵食した場合、この確率は<span style="color:rgb(255,0,0);">34/50</span>(およそ20秒に1回侵食処理を起こす)となり侵食が迅速に広がってしまう。</p> <p><a href="http://www54.atwiki.jp/mi_ic2/pages/28.html"><span style="color:rgb(255,0,0);">雑草属性状態の作物に隣接した空か交配用の支柱は、WeedEXによる雑草抑制を無視する。</span></a></p> <p><strong><span style="color:rgb(0,0,255);">雑草属性状態の作物は雑草に侵食されない</span></strong>。 ①<br /><strong>多くの</strong>作物種においてGrowth24以上かつサイズ2以上でこの状態になる。一度成長させた作物は、ネザーワートを始めとする収穫するとサイズ1に戻る作物を除きこの判定で雑草をやり過ごすことができる。</p> <p><strong><span style="color:rgb(0,0,255);">雑草はX・Z座標のどちらかが負である方角にしか雑草を繁殖させない</span></strong>ため、X座標+Z座標=一定値となるようなナナメの領域で農場を建設すれば、雑草が発生してしまっても全体に広がらない。 ②</p> <p>①と②を組み合わせれば、<span style="color:rgb(0,0,255);">Growth24以上を持つ作物の交配も雑草を発生させることなく行うことができる</span>。交配用支柱が空の場合は②により、支柱に作物が生えた場合は①によりそれぞれ雑草の出現が抑制される。</p> <table border="1" cellpadding="1" cellspacing="1" style="width:820px;"><tbody><tr><td style="text-align:center;"><img alt="" src="http://cdn54.atwikiimg.com/mi_ic2/?cmd=upload&amp;act=open&amp;page=ic2%2F%E9%9B%91%E8%8D%89%E7%99%BA%E7%94%9F&amp;file=2013-09-14_12.37.23.png" style="width:400px;height:313px;" /></td> <td> </td> </tr><tr><td style="text-align:center;">雑草が方角依存で繁殖する様子</td> <td> </td> </tr><tr><td style="text-align:center;"><img alt="" src="http://cdn54.atwikiimg.com/mi_ic2/?cmd=upload&amp;act=open&amp;page=ic2%2F%E9%9B%91%E8%8D%89%E7%99%BA%E7%94%9F&amp;file=2014-07-19_04.09.05.png" style="height:225px;width:400px;" /></td> <td style="text-align:center;"><img alt="" src="http://cdn54.atwikiimg.com/mi_ic2/?cmd=upload&amp;act=open&amp;page=ic2%2F%E9%9B%91%E8%8D%89%E7%99%BA%E7%94%9F&amp;file=2014-07-19_04.09.27.png" style="width:400px;height:225px;" /></td> </tr><tr><td style="text-align:center;">バグを利用した雑草が繁殖しない交配用支柱(訂正:Y→Z)</td> <td style="text-align:center;">交配に成功しても雑草が発生しない</td> </tr></tbody></table><h3>抑制</h3> <p> WeedEXにより根本的に抑制するのが簡単で強力である。しかし、例外が存在する(この場合でも作物のない支柱にしか繁殖しないので、作物は守られる)。</p> <p>一部の原因に対しては侵食を受ける作物側のResistanceを鍛えることで被害の拡大を抑えることができる。</p> <p> 雑草属性状態による雑草の繁殖が方角に依存する(X・Z軸どちらかが正な隣接マスには判定が行われない)バグが存在するため、方角を考慮して農地を設計する。</p> <p> 雑草が発生してしまっても、雑草属性状態である作物は侵食されない。よって、Growth24以上でありサイズ2以上であれば、多くの作物(例外は<a href="http://www54.atwiki.jp/mi_ic2/pages/19.html">ヴェノミリア</a>が知られている)は侵食されなくなる。</p>
<h1>雑草発生</h1> <h2>準拠: industrialcraft-2-2.2.517-experimental</h2> <h3>概要</h3> <p style="float:right;"><img alt="" src="http://cdn54.atwikiimg.com/mi_ic2/?cmd=upload&amp;act=open&amp;page=ic2%2F%E9%9B%91%E8%8D%89%E7%99%BA%E7%94%9F&amp;file=2013-09-14_11.58.15.png" style="height:313px;width:400px;" /></p> <p><span style="color:rgb(128,128,128);">概念としての雑草</span>はCrop農業における障壁の一つで、しばしばこれによる被害で貴重な作物の苗を全滅させるなどの被害が出ることがある。</p> <p><span style="color:rgb(128,128,128);">支柱に生えている物としての雑草</span>はシステム上、小麦やアシと同じく作物(CropCard)として扱われているが、ソース中のところどころでそのID値である0がハードコーディングされている(しばしばCropCard#isWeedなどを呼び出しているが、「雑草」と「雑草を生成可能」は異なる。<span style="color:rgb(255,0,0);">雑草(CropWeed)は常に雑草を生成可能(CropWeed#isWeed == true)である</span>。)など、特異性が伺える。</p> <p>以下、単に<span style="color:rgb(51,153,102);">雑草</span>という場合には<span style="color:rgb(255,102,0);">cropIdが0のCropWeedクラスで実装される雑草</span>を指す。また、<span style="color:rgb(255,102,0);">雑草を生成可能な性質</span>(CropCard#isWeed == true)については、<span style="color:rgb(51,153,102);">雑草属性</span>または<span style="color:rgb(51,153,102);">雑草属性状態</span>と称することとする(isWeedはGGR値や成長段階などで変化するため)。</p> <p>多くの作物はサイズ2以上かつGrowth24以上で雑草属性状態となる。</p> <p style="clear:both;"> </p> <h3>出現</h3> <h4>設置</h4> <p> 雑草は左クリックしても種袋をドロップさせるイベントを発生ず、種袋により植えることはできない。また、MODやバグ等を使い雑草の種を入手しても、植えることはできない(TileEntityCrop#tryPlantIn)。</p> <h4><a href="#emptycrop" name="emptycrop">空(交配用支柱を含む)の支柱に自然発生</a></h4> <p>何も植えられていない支柱には<span style="color:rgb(255,102,0);">雑草が発生する判定</span>が起こる可能性がある(TileEntityCrop#tick attemptCrossingの後)。ただし、そのtick内で交配が成立した場合は必ず発生しない。</p> <p><span style="color:rgb(255,102,0);">雑草が発生する判定</span>: 1%の確率で、WeedEXが残っていなかった(この判定時についでに5減少させる)場合に<strong><span style="color:rgb(255,0,0);">発生</span></strong>。それ以外の場合、10%の確率でWeedEXの残量を1減少させる。</p> <p><span style="color:rgb(0,0,255);">WeedEXにより抑制可能</span>。</p> <h4><a href="#cropdeath" name="cropdeath">作物の品質に比べて環境値が極端に低い支柱に間接的に発生</a></h4> <p>作物の品質(need値)が環境による容量(have値)を大きく超えていた場合に、作物が消滅して<strong><span style="color:rgb(255,0,0);">空の支柱に戻る</span></strong>。よって、前項目により雑草が発生する要因となる。</p> <p>この消滅はResistanceが高い場合には確率が下がり(0~31 &gt; Resistance)、31であった場合には起こらなくなる。</p> <h4><a href="#weedgrow" name="weedgrow">雑草属性状態の作物による周囲への繁殖</a></h4> <p>支柱に作物が存在して(id &gt;= 0。雑草も含む)、その作物が雑草属性状態である(CropCard#isWeed == true)場合に、crop tickごとに以下の確率で<span style="color:rgb(255,0,0);">雑草を出現させる処理</span>(TileEntityCrop#generateWeed)を行う。</p> <p style="margin-left:40px;">(3 + Growth) / 50</p> <p><span style="color:rgb(255,0,0);">雑草を出現させる処理</span>:</p> <p style="margin-left:40px;">自分からの相対座標で、<a href="http://www54.atwiki.jp/mi_ic2/pages/29.html">(x, z) =<span style="color:rgb(0,0,255);"><strong>(±0, ±0),</strong></span><strong><span style="color:rgb(255,0,0);">(-1, ±0)<span style="color:rgb(0,0,255);">, (±0, ±0),</span>(±0, -1)</span></strong>の4つの中からランダムに選択する</a>。</p> <p style="margin-left:40px;"> 半分の確率で自分自身の座標を選択するが、この場合はのちの処理で必ず無効になる(常に雑草属性状態なので、「<span style="color:rgb(255,102,0);">雑草属性状態でなくて</span>」の判定が常に偽になるため)。</p> <p style="margin-left:40px;">この位置に支柱がある(instanceof TileEntityCrop)場合、</p> <p style="margin-left:80px;"><a href="http://www54.atwiki.jp/mi_ic2/pages/28.html"><span style="color:rgb(255,102,0);">その支柱が空か交配用である</span>、</a>若しくは<span style="color:rgb(255,102,0);">その支柱の作物が雑草属性状態でなくてWeedEXの残量がない場合に(あった場合はついでに残量を5減少させる)以下のような確率</span>で、</p> <p style="margin-left:120px;">確率: (3<strong><span style="color:rgb(255,0,0);">2</span></strong>- Resistance) / 32</p> <p style="margin-left:120px;">その支柱をGGR値0の<strong><span style="color:rgb(255,0,0);">雑草で初期化する</span></strong>。この時、Growth値のみ次のような値に設定される。</p> <p style="margin-left:160px;"> 侵食側のGrowthか侵食前の被侵食側のGrowthのうち高いほうをとり、31未満ならば50%の確率で1を加算する。</p> <p style="margin-left:40px;">支柱がない場合、</p> <p style="margin-left:80px;"> この位置が空気ブロックであり、この位置の下のブロックが土・耕土・草のいずれかであった場合は下のブロックを草に変え、その位置のブロックを背の高い雑草にする。</p> <p>Resistanceによって侵食の確率を極端に抑えられるが、<span style="color:rgb(255,0,0);">31でも</span><span style="color:rgb(255,0,0);">可能性を0にすることはできない</span>。</p> <p>雑草のGrowth値を鍛えることは容易である。</p> <p>自然発生した雑草は比較的脅威は少ない。なぜなら、Growthが低くcrop tickごとの雑草判定処理の起こる確率が3/50であるからだ。しかし、Growth31の作物を侵食した場合、この確率は<span style="color:rgb(255,0,0);">34/50</span>(およそ20秒に1回侵食処理を起こす)となり侵食が迅速に広がってしまう。</p> <p><a href="http://www54.atwiki.jp/mi_ic2/pages/28.html"><span style="color:rgb(255,0,0);">雑草属性状態の作物に隣接した空か交配用の支柱は、WeedEXによる雑草抑制を無視する。</span></a></p> <p><strong><span style="color:rgb(0,0,255);">雑草属性状態の作物は雑草に侵食されない</span></strong>。 ①<br /><strong>多くの</strong>作物種においてGrowth24以上かつサイズ2以上でこの状態になる。一度成長させた作物は、ネザーワートを始めとする収穫するとサイズ1に戻る作物を除きこの判定で雑草をやり過ごすことができる。</p> <p><strong><span style="color:rgb(0,0,255);">雑草はX・Z座標のどちらかが負である方角にしか雑草を繁殖させない</span></strong>ため、X座標+Z座標=一定値となるようなナナメの領域で農場を建設すれば、雑草が発生してしまっても全体に広がらない。 ②</p> <p>①と②を組み合わせれば、<span style="color:rgb(0,0,255);">Growth24以上を持つ作物の交配も雑草を発生させることなく行うことができる</span>。交配用支柱が空の場合は②により、支柱に作物が生えた場合は①によりそれぞれ雑草の出現が抑制される。</p> <table border="1" cellpadding="1" cellspacing="1" style="width:820px;"><tbody><tr><td style="text-align:center;"><img alt="" src="http://cdn54.atwikiimg.com/mi_ic2/?cmd=upload&amp;act=open&amp;page=ic2%2F%E9%9B%91%E8%8D%89%E7%99%BA%E7%94%9F&amp;file=2013-09-14_12.37.23.png" style="width:400px;height:313px;" /></td> <td style="text-align:center;"><img alt="" src="http://cdn54.atwikiimg.com/mi_ic2/?cmd=upload&amp;act=open&amp;page=ic2%2F%E9%9B%91%E8%8D%89%E7%99%BA%E7%94%9F&amp;file=2014-07-22_15.24.00.png" style="width:400px;height:313px;" /></td> </tr><tr><td style="text-align:center;">雑草が方角依存で繁殖する様子</td> <td style="text-align:center;">足りない背の高い草</td> </tr><tr><td style="text-align:center;"><img alt="" src="http://cdn54.atwikiimg.com/mi_ic2/?cmd=upload&amp;act=open&amp;page=ic2%2F%E9%9B%91%E8%8D%89%E7%99%BA%E7%94%9F&amp;file=2014-07-19_04.09.05.png" style="height:225px;width:400px;" /></td> <td style="text-align:center;"><img alt="" src="http://cdn54.atwikiimg.com/mi_ic2/?cmd=upload&amp;act=open&amp;page=ic2%2F%E9%9B%91%E8%8D%89%E7%99%BA%E7%94%9F&amp;file=2014-07-19_04.09.27.png" style="width:400px;height:225px;" /></td> </tr><tr><td style="text-align:center;">バグを利用した雑草が繁殖しない交配用支柱(訂正:Y→Z)</td> <td style="text-align:center;">交配に成功しても雑草が発生しない</td> </tr></tbody></table><h3>抑制</h3> <p> WeedEXにより根本的に抑制するのが簡単で強力である。しかし、例外が存在する(この場合でも作物のない支柱にしか繁殖しないので、作物は守られる)。</p> <p>一部の原因に対しては侵食を受ける作物側のResistanceを鍛えることで被害の拡大を抑えることができる。</p> <p> 雑草属性状態による雑草の繁殖が方角に依存する(X・Z軸どちらかが正な隣接マスには判定が行われない)バグが存在するため、方角を考慮して農地を設計する。</p> <p> 雑草が発生してしまっても、雑草属性状態である作物は侵食されない。よって、Growth24以上でありサイズ2以上であれば、多くの作物(例外は<a href="http://www54.atwiki.jp/mi_ic2/pages/19.html">ヴェノミリア</a>が知られている)は侵食されなくなる。</p>

表示オプション

横に並べて表示:
変化行の前後のみ表示: