MOD


WaywardはModがサポートされていて、公式Wikiでいくつか紹介されています。
(リンクはしていませんので使用する際は公式wikiからどうぞ。公式wikiトップのSub Wikis以下Saved Game StatesページからMods pageへと行けます。)


公式wikiのModの使用法

1.当該ページにて「Download Mod」リンクを右クリックし「名前をつけて保存」で任意の場所に保存する。
またはリンクをクリックしてブラウザ上で内容を表示させてからページを右クリックして「名前をつけて保存」する。

2.Waywardを起動し、オプションメニューの「Modding」から保存したファイルを読み込む。

Modリスト


Better Save/Load from File

  • セーブ直後にリロードが必要なエラーが起こらない。
  • オプションではなくメインメニューにセーブボタンを追加する
  • ロードボタンは追加ファイルのインプットではなくファイル自体を要求する。
  • 場所ごとにきれいなファイルネームを提案する。
  • Opera12でもデフォルトのファイルネームであれば動作する。
  • ローカルストレージ全体を保存するのではなく、実際のゲームデータだけを保存する。
以前のSave/Load from File MODのデータも読み込みできる。
対応バージョン:Beta 1.6+


Save/Load from File

オプションページに、ローカルファイルにセーブデータを保存/読み込みできるボタンを追加する。
このModで作成されたセーブデータも公式wikiやフォーラムで公開されている。
対応バージョン:Beta 1.4+


Show World Map Cheat

ワールドマップと洞窟マップをオプションメニューのボタンで表示できるようにする。
対応バージョン:Beta 1.6+ / Free 1.9.4
+ ...
//公式wikiのものを少しだけ改変、画面左下メニューの「Skills」の次に表示ON/OFFボタンを移動させています
//バージョン1.9.4 Free版で動作確認済 - スイッチの人
$("#actionsopen").parent().append('<button type="button" id="showMap">Show Map</button>');
$("#showMap").css("background-color","rgb(64,64,128)");
$("#actionsopen").parent().on("click","#showMap",function(e){
 if($("#map").css("display")=="block")$("#map").hide()}else{$("#map").show()}
 e.preventDefault()
});

Tweakward

かなり発展したModで、ゲームプレイの改善し磨きをかけることを試みた。完全に動作させるにはModをロードしてから新しいゲームを始める(自殺する)必要がある。今はまだ自動でロードは出来ないので、始める度にModをロードする必要がある。今後も開発が続けられる予定。
対応バージョン:Beta 1.6+

EzEdit

以下のMODを一度に導入する。
   Save/Load from File
   Show World Map Cheat
   EzRenderTile
   EzItemGet
   Selective Monster Spawner
対応バージョン:Beta 1.5

Monster Party

最大100のモンスターを周囲に出現させる。スポーンするモンスターの種類はタレント値と地形に依存する(通常のスポーンと同じになる)。
対応バージョン:Beta 1.6+



Unmovable Chests Fix

岩の上や洞窟の入口などにある箱(や他の周囲のアイテム)を入手する。このModをロードするとアクセスを復活させるためにそれらのものの下に土ができる。
対応バージョン:全て?

野良Mod

テキストファイルにコピペしてmodで読み込む

  • 入れ物
containerに耐久基本値を付ける
これによってrepairやreinforceが出来るようになる。
+ ...
items.smallbag.durability = 10;
items.backpack.durability = 20;
items.leatherquiver.durability = 40;
値はお好みで。
  • 苗木
「枝」から「苗木」が作れるようになる。
+ ...
items.sapling.recipe={requires:[["branch", 1, 1]],skill: "botany",level: "Advanced"};

for(var i = 0; i < player.crafted.length; i++)if(player.crafted[i] === "sapling")player.crafted.splice(i,1);
上の苗木modを使わなくなったら再起動のあと実行しましょう。
modを使った事によって出来たちょっとしたゴミを消してくれます。
実行しなくても影響ははい(はず)
  • たいまつ
持続ターン
+ ...
items.poletorch_lit.decayable[0] = 1000;
items.barktorch_lit.decayable[0] = 4000;
items.animalfattorch_lit.decayable[0] = 14000;
値はお好みで。↑は全部4倍した値
鳥肉が食べたい。羽を毟りたい。そんな貴方に
+ ...
非推奨
for(var i=0;i<0xB;i++)for(var j=0;j<0xB;j++)spawnMonster("chicken", player.x+player.direction.x*6-5+i, player.y+player.direction.y*6-5+j);
passTurn(false);

推奨
spawnMonster("chicken", player.x+player.direction.x, player.y+player.direction.y);
passTurn(false);

  • ↑の変則版、モンスター呼び出し。
モンスターと戦いたい、そんな君に……。
+ ...
魚類はちょっと特殊
spawnMonster("rabbit", player.x+player.direction.x, player.y+player.direction.y);
passTurn(false);

//spawnMonster("rabbit"の"ここに"↓の英文名を書き込むと目の前にモンスターが出現します。
//ただし、目の前に障害物や既にモンスターが存在する場合は出現しません。

//rabbit = うさぎ
//slime = スライム
//jellycube = ゼリーキューブ
//rat = 鼠
//giantrat = 大きな鼠
//chicken = ニワトリ
//harpy = ハーピー
//giantspider = 大きな蜘蛛
//trapdoorspider = トラップドアスパイダー
//snake = 蛇
//bear = 熊
//vampirebat = 吸血コウモリ
//greywolf = グレイウルフ
//imp = インプ
//bogling = ボグリング
//livingrock = リビングロック
//zombie = ゾンビ
//skeleton = スケルトン
//pirateghost = パイレーツゴースト
//timeskitter = タイムスキッター
//fireelemental = ファイヤーエレメンタル
//hobgoblin = ホブゴブリン
//livingmushroom = リビングマッシュルーム
//kraken = クラーケン

//↓水が目の前にある場合のみ出現

//blindfish = 盲目魚
//shark = 鮫
//trout = マス
  • 沼設置
peatを設置すると沼が出来るように
+ ...
items.peat.use = ["stokeFire", "placeTile"],
items.peat.onUse = {stokeFire: 4, placeTile: "swamp"}

  • 変異種
  • 黒色火薬


  • 大きなミニマップ
nキーで大きなミニマップを表示。
敵表示有り。txt編集で非表示に出来るようにしてる。
ver0.0.2
ver 0.0.2 地下の事を忘れていたのでその修正。

  • クラフティングテーブル追加
茶色い領域にアイテムを並べるとそこからクラフトします
適当にアイテムを選ばれるのが嫌な人に
craftingtable_v100.js



ご利用は計画的に

  • アイテム発生Mod
+ ...
//日本語化の後に読み込むとアイテム名だけ日本語化
//二回読み込むと削除
if(document.getElementById('ItemGetMod') === null){
	$("#optionswindow").append('<div id="ItemGetMod" />');
	$("#ItemGetMod").append('<p>ItemGetMod</p><select id="ItemGetMod_ItemList" size="5" />');
	for(var itemType in items){
		$('#ItemGetMod_ItemList').append('<option value="' + itemType + '">' + ItemGetMod_ItemList.length + " : " + items[itemType].name + '</option>');
	}
	ItemGetMod_ItemList.selectedIndex = 0;
	$("#ItemGetMod").append('<select id = "ItemGetMod_QualityList" size="5">\
		<option value = "">Durability</option>\
		<option value = "Remarkable">Remarkable</option>\
		<option value = "Exceptional">Exceptional</option>\
		<option value = "Legendary">Legendary</option>\
		<option value = "Random" selected>Random</option>\
	</select>');
	$("#ItemGetMod").append('<button type="button" id="ItemGetMod_ItemGetButton">Get</button>');
	$("#ItemGetMod").on("click", '#ItemGetMod_ItemGetButton', function(e) {
		itemGet({type: ItemGetMod_ItemList.value, quality: ItemGetMod_QualityList.value});
		craftTable()
	});
} else {
	var delTargetElement=document.getElementById('ItemGetMod');
	delTargetElement.parentNode.removeChild(delTargetElement);
}


  • チェンジタイル
タイルのパターンはセーブされないので悪しからず

+ ...

//チェンジタイル
//タイルのパターンはセーブされないので悪しからず
//二回読み込むと削除

if(document.getElementById('ChangeTileMod') === null){

	$("#optionswindow").append('<div id="ChangeTileMod" />');
	$("#ChangeTileMod").append('<p>ChangeTileMod</p>');
	$("#ChangeTileMod").append('<select id="ChangeTileMod_TileList" size="5" />');

	for(var TileType in tiletypes){
		$('#ChangeTileMod_TileList').append('<option value="' + TileType + '">' + ChangeTileMod_TileList.length + " : " + tiletypes[TileType].name + '</option>');
	}
	ChangeTileMod_TileList.selectedIndex = 0;


	$("#ChangeTileMod").append('<select id="ChangeTileMod_PatternList" size="5" />');
	$("#ChangeTileMod_PatternList").append('<option value="0">0</option>');
	$("#ChangeTileMod_PatternList").append('<option value="1">1</option>');
	$("#ChangeTileMod_PatternList").append('<option value="2">2</option>');
	$("#ChangeTileMod_PatternList").append('<option value="Random" selected>Random</option>');

	$("#ChangeTileMod").append('<button type="button" id="ChangeTileMod_ChangeTileButton">Change</button>');

	$("#ChangeTileMod").on("click", '#ChangeTileMod_ChangeTileButton', function(e) {
		changeTile({type: ChangeTileMod_TileList.value}, player.x + player.direction.x, player.y + player.direction.y, false);
		if(ChangeTileMod_PatternList.value == "Random"){
			tile[player.x + player.direction.x][player.y + player.direction.y].gfx = Math.floor(Math.random() * 3);
		} else {
			tile[player.x + player.direction.x][player.y + player.direction.y].gfx = ChangeTileMod_PatternList.value;
		}
		passTurn(false);
	});
} else {
	var delTargetElement=document.getElementById('ChangeTileMod');
	delTargetElement.parentNode.removeChild(delTargetElement);
}



 ・いろいろスイッチ&インベントリエディタ&技術情報
 ※ゲームバランス崩壊待ったなし

+ ...
//いろいろスイッチ version 0.12c
//=== スイッチ類説明 ===
//◆ボタン群 (押す度に発動)
//[Health][Stamina][FOOD][WATER]それぞれライフ・スタミナ・満腹度・水分全快
//[Bad]毒・やけど・切り傷回復
//[HPSTBAD]ライフ・スタミナ・状態異常全快(満腹度・水分は以外)
//[All]上記全て全快
//[converge map]インベントリ内の全てのボロボロの地図の目的場所を自分の足元へ(コンテナ・カバン内のものは除外)
//[Find Drop]落ちているアイテムを近い順にログに表示
//[Find Placed]設置されているアイテムを近い順にログに表示
//[Find Ore]木の実、鉱物、沼地、灰、雪などの資源を近い順にログに表示
//※地上にいるときは地下のものは表示されません、また地下にいるときは地上のものは表示されません
//※検索結果表示数の初期値は10です
// mod_recover_saveData.findCount = 20
// と入力すると表示数が20件に変更されます、緑色のsaveボタンを押した時点での値が保存されます
//[soundBuff Clear]予約済みのサウンドエフェクトを全て削除します
//[invClean]現在持っているアイテムの最大ID以降の未使用領域を消去します
//メインで所持するもの以外を全てカバンやチェストに保管することで最大の効果を得ることができます
//上記2つとメッセージウィンドウ下部の[Clear Messages]ボタンを押すことで長時間プレイ時の処理の重さを低減します
//◆スイッチ群 (押すと有効、もう一度押すと無効)
//[AutoRecover]ライフとスタミナが常に全快状態
//[AlwaysDaylight]常に昼、洞窟内も昼
//[Ignore Weight]重さ超過を無視
//[fresh sea]海水を淡水に(水袋・ガラス瓶で海を整地可能)、地下エリアの暗闇部分を砂利に
//[Skillgrow]スキル上昇判定時に必ずスキル経験上昇・スキル100%キャップ解除
//[Delay cut]行動待ち時間をスキップ(オプションの「Smooth Movement/動作を滑らかにする」をONにしていると効果無し)
//[SpeedCraft]製作待ち時間をスキップ
//[Dig100%]必ず掘れる、対象のマスを掘った時に取得できる可能性があるアイテムを全て取得する
//[infinityGun]saltpeter(硝石)無しで銃が撃てる、銃弾は別途必要
//[Map100%]瓶入りの手紙を開けると必ず宝の地図が出る
//[holeySkin]holey(穴あき)、空の水袋で淡水を汲んでも水が満たされない、海水は汲める
//[dropAllExtend]深い淡水・深い海水に向かってアイテムを「全て置く」と、まとめて捨てます(コンテナ・カバン・装備中・QuickSlot内は除外)
//               地面に置く場合も、装備中・QuickSlotのアイテムは除外します
//[pickupAll]踏んだら全部拾う
//[MultiCreate]ボタンはクラフトテーブルの上に生成されます、1クリックで素材が続く限り同じアイテムを作成します、HP減少時に中断します
//[taintFree]耐久減少と腐敗を無くす
//[autoCarve]死体を踏んで、移動するときに足元にある死体と血痕を全て切り出し(消費ターンは1)
//[ugCulture]地下に植物を植えることができます
//[RottenMeat]製作から腐った肉を作成できます
//[calcWeight]カバン・コンテナ等を開けた時やアイテムを入れた時に、入っているアイテム数、現在の重量、空き重量が表示されます
//[waterClean]キャンプファイアに向かっていなくても脱塩水、浄化水を作成できるようになります
//[immotalFire]キャンプファイア・かまど・炉・金床・トーチスタンドの火が消えなくなる
//v0.11更新
//ボタンの状態を保存する処理を追加しました、saveボタンで現在の状態を保存できます(押さないと保存されません)
//modを読み込んだ時に保存された情報があれば自動で適用されます
//ウィンドウ幅の保存・読込ができなかったため、スクリプト先頭に幅を指定する変数(mod_recover_width)を付加しています
//v0.11b更新
//multiCreateボタンの設定が正常に保存・読み出しされるように修正
//v0.11c更新
//[female]コメントログにあったプレイヤー画像 [(名無しさん) 2014-01-30 06:03:11] 差し替えテスト
//v0.11d更新
//[offalNOTmeat]内臓の属性(堆肥・肉)を解除します、ONにすると内臓の使い道がマジカルエッセンスと腱の2つだけになります
//v0.11e更新
//[offalNOTmeat]ボタン操作時に製作テーブルも更新
//[DurMax]使用した素材の耐久値に関わらず製作品の耐久値がMAXに、最大耐久値はランダムのまま
//v0.11f更新
//[popAberrant]ONの状態でモンスターがポップした場合、必ず変異種になる…はずです
//[DurMax]現在耐久値を最大耐久値と同じにするよう修正
//v0.11g更新
//[multiCreate]一括作成の対象から装備品・クイックスロットのアイテムを除外
//v0.12更新
//[Find Drop]/[Find Placed]/[Find Ore]の探索用ボタンを追加
//[SoundBuff Clear]/[InvClean]のメンテナンスボタンを追加
//読み込み時に[MultiCreate]ボタンを必ずoffにするよう変更
//mod_recoverの表示/非表示切り替えボタンの位置をオプションウィンドウ内部からメイン画面左下の[Skills]ボタンの次に変更
//mod_recoverウィンドウの位置を保存するよう変更
//緑色の[save]ボタンを押した際にゲーム全体を保存するよう変更
//既知の不具合
//製作した壁を設置した後に回収すると耐久力がおかしくなって再設置できない
//→コメントログにあるとおり下記のコマンドを貼り付けて対処をお願いします、このコードを使用すると耐久力の表示を修正します
//for(var itm in player.invItems){if(!isFinite(player.invItems[itm].mindur)){player.invItems[itm].mindur=player.invItems[itm].maxdur}}
//ロード直後に十字キーが効かないことがあります
//→画面をクリックして一度でもキャラの方向を変えると以降正しく反応します
//Findボタンを押したときに方向表示が文字化けする
//→v0.12bで修正済
//Find Oreボタンが1件しか表示してくれない
//→v0.12cでmod_recover_saveData.findCountを参照するよう修正済
Messages.debug="_0_";var f_ret=false;var buttondebug=false;var mod_recover_saveData=[];initSaveData();function _msg(a,c,b){if(!c){c=""}if(b==""||b===undefined||b===null){b="debug"}ui.message(b,c,[a])}function initSaveData(){mod_recover_saveData.left=0;mod_recover_saveData.top=0;mod_recover_saveData.width=560;mod_recover_saveData.height=140;mod_recover_saveData.recoverAuto=false;mod_recover_saveData.alwaysDaylight=false;mod_recover_saveData.ignoreWeight=false;mod_recover_saveData.freshWater=false;mod_recover_saveData.skillGrow=false;mod_recover_saveData.delaycut=false;mod_recover_saveData.speedCraft=false;mod_recover_saveData.successDig=false;mod_recover_saveData.infinityGun=false;mod_recover_saveData.treasureMap=false;mod_recover_saveData.holeySkin=false;mod_recover_saveData.dropAllEx=false;mod_recover_saveData.pickupAll=false;mod_recover_saveData.taintFree=false;mod_recover_saveData.autoCarve=false;mod_recover_saveData.ugCulture=false;mod_recover_saveData.rottenMeat=false;mod_recover_saveData.calcWeight=false;mod_recover_saveData.waterClean=false;mod_recover_saveData.immotalFire=false;mod_recover_saveData.female=false;mod_recover_saveData.offalNOTmeat=false;mod_recover_saveData.DurMax=false;mod_recover_saveData.Aberrant=false;mod_recover_saveData.findCount=10}function sw(b,a){if(b.indexOf("#")!=0){b="#"+b}if(a==""||a==undefined||a==null){a="black"}if($(b).css("background-color")=="rgb(0, 0, 0)"){a="orange"}$(b).css("background-color",a)}function appendfunc_addNewWindow(a){$("#afterload").prepend('<div id="'+a+'_root" />');$("#"+a+"_root").prepend('<div id="'+a+'_window" class="window" title='+a+'" />');$("#"+a+"_window").dialog({width:500,height:140,autoOpen:true,closeOnEscape:false,title:a});$("#mod_root").append('<button id="'+a+'_visible">'+a+"</button>");$("#mod_root").on("click","#"+a+"_vibible",function(b){if($("#"+a+"_window").dialog("isOpen")){$("#"+a+"_window").dialog("close")}else{$("#"+a+"_window").dialog("open")}})}if(document.getElementById("mod_root")===null){$("#optionswindow").append('<div id="mod_root" />');$("#optionswindow").append('<div id="mod_disp" />')}if(document.getElementById("mod_recover_root")==null){$("#actionsopen").parent().append('<button id="mod_recover_visible">mod_recover</button>');$("#mod_recover_visible").css("background-color","rgba(150,150,0,0.6)");$("#afterload").prepend('<div id="mod_recover_root" />');$("#mod_recover_root").prepend('<div id="mod_recover_window" class="window" title="mod_recover" />');$("#mod_recover_window").dialog({width:mod_recover_saveData.width,height:140,autoOpen:true,closeOnEscape:false,title:"mod_recover"});$("#mod_recover_window").append('<div id="mod_recover_window_top" />');$("#mod_recover_window_top").append('<div id="recover" />');$("#recover").append('<button type="button" id="recover_Health">Health</button><button type="button" id="recover_Stamina">Stamina</button><button type="button" id="recover_Hunger">Food</button><button type="button" id="recover_Thirst">WATER</buttion><button type="button" id="recover_BadStatus">Bad</button><button type="button" id="recover_HealthStaminaBadStatus">HPSTBAD</button><button type="button" id="recover_All">All</button>');$("#recover").append(' | <button id="mod_convergeMap">collectMap</button>');$("#recover").append(' | <button id="mod_recover_save">save</button>');$("#recover").on("click","#mod_recover_save",function(a){mod_recover_save();_msg("mod_recover:button status saved.");saveGame()});$("#mod_recover_save").css("background-color","green");$("#recover").append(' | <button id="mod_searchDrop">Find Drop</button>');$("#recover").on("click","#mod_searchDrop",function(a){appendfunc_searchDropItem()});$("#recover").append('<button id="mod_searchPlaced">Find Placed</button>');$("#recover").on("click","#mod_searchPlaced",function(a){appendfunc_searchPlacedItem()});$("#recover").append('<button id="mod_findOre">Find Ore</button>');var oreSonar=[];isInitoreSonar=false;$("#recover").on("click","#mod_findOre",function(a){if(!isInitoreSonar){appendfunc_oreSonarInit();isInitoreSonar=true}appendfunc_oreSonarVerify()});$("#recover").append(' | <button id="mod_SoundFlush">SoundBuff Clear</button>');$("#recover").on("click","#mod_SoundFlush",function(a){ui.message("debug","",[audio.soundList.length+" Soundbuffer flushed"]);audio.soundList=[]});$("#recover").append(' | <button id="mod_invClean">InvClean</button><hr>');$("#recover").on("click","#mod_invClean",function(c){var a=0;for(var b=player.invItems.length-1;b>=0;b--){if(!player.invItems[b]){player.invItems.splice(b,1);a++}else{break}}ui.message("debug","",["invIndex="+player.invItems.length+"(-"+a+" buffer)"])});function appendfunc_convergeMap(){f_ret=false;var a=0;for(itemType in player.invItems){if(player.invItems[itemType].type=="tatteredmap"){a++;player.invItems[itemType].props[0]=player.x;player.invItems[itemType].props[1]=player.y}}if(a>=1){ui.message("debug","",[a+" tatteled maps in your inventry pointing on your foot!"]);f_ret=true}else{ui.message("debug","",["You have no tattered map."]);f_ret=false}delete a;return f_ret}$("#recover").on("click","#mod_convergeMap",function(a){appendfunc_convergeMap()});$("#recover_Health").css("background-color","orange");$("#recover_Stamina").css("background-color","#00EA0B");$("#recover_Hunger").css("background-color","purple");$("#recover_Thirst").css("background-color","#0033FF");$("#mod_recover_button").on("click","#recover_Visible",function(a){if($("#recover").css("display")=="none"){$("#recover").css("display","block")}else{$("#recover").css("display","none")}});function appendfunc_recover(a,b){f_ret=false;switch(a){case"health":if(player.strength==player.health){if(!b){_msg("recover::Health needless.","bad");return false}}else{if(!b){_msg(player.strength-player.health,"","gainedHealth")}player.health=player.strength;f_ret=true}break;case"stamina":if(player.stamina==player.dexterity){if(!b){_msg("recover::Stamina needless.","bad");return false}}else{if(!b){_msg(player.dexterity-player.stamina,"","gainedStamina")}player.stamina=player.dexterity;f_ret=true}break;case"hunger":if(player.hunger==player.starvation){if(!b){_msg("recover::Food needless.","bad");f_ret=false}}else{if(!b){_msg(player.starvation-player.hunger,"","gainedHunger")}player.hunger=player.starvation;f_ret=true}break;case"thirst":if(player.thirst==player.dehydration){if(!b){_msg("recover::Thirst needless.","bad");f_ret=false}}else{if(!b){_msg(player.dehydration-player.thirst,"","gainedThirst")}player.thirst=player.dehydration;f_ret=true}break;case"bad":if(player.status.bleeding){if(!b){_msg("","","curedBleeding")}player.status.bleeding=false;f_ret=true}if(player.status.burning){if(!b){_msg("","","curedBurning")}player.status.burning=false;f_ret=true}if(player.status.poisoned){if(!b){_msg("","","curedPoison")}player.status.poisoned=false;f_ret=true}if(!b&&!f_ret){_msg("recover::Bad needless.","bad")}break}return f_ret}$("#recover").on("click","#recover_Health",function(a){appendfunc_recover("health");passTurn(false)});$("#recover").on("click","#recover_Stamina",function(a){appendfunc_recover("stamina");passTurn(false)});$("#recover").on("click","#recover_Hunger",function(a){appendfunc_recover("hunger");passTurn(false)});$("#recover").on("click","#recover_Thirst",function(a){appendfunc_recover("thirst");passTurn(false)});$("#recover").on("click","#recover_BadStatus",function(a){appendfunc_recover("bad");passTurn(false)});$("#recover").on("click","#recover_HealthStaminaBadStatus",function(b){var a=false;a=appendfunc_recover("health",true)||a;a=appendfunc_recover("stamina",true)||a;a=appendfunc_recover("bad",true)||a;if(a){_msg("Health & Stamina & Bad Status recovered.")}else{_msg("recover::HPSTBAD needless.","bad")}delete a;passTurn(false)});$("#recover").on("click","#recover_All",function(b){var a=false;a=appendfunc_recover("health",true)||a;a=appendfunc_recover("stamina",true)||a;a=appendfunc_recover("hunger",true)||a;a=appendfunc_recover("thirst",true)||a;a=appendfunc_recover("bad",true)||a;if(a){_msg("You are completely recovered.")}else{_msg("recover::All needless.","bad")}delete a;passTurn(false)});function chk_recoverAuto(){if(passTurn.toString().indexOf("dexterity")==-1){return false}else{return true}}function appendfunc_recoverAuto(){f_ret=false;var prev1="game.staminaTimer++;";var new_1="game.staminaTimer++;player.health=player.strength;player.stamina=player.dexterity;";if(!chk_recoverAuto()){passTurn=eval("("+passTurn.toString().replace(prev1,new_1)+")");sw("#recover_auto","orange");f_ret=true}else{passTurn=eval("("+passTurn.toString().replace(new_1,prev1)+")");sw("#recover_auto");f_ret=false}delete prev1;delete new_1;return f_ret}$("#recover").append('<button type="button" id="recover_auto">AutoRecover</button>');if(passTurn.toString().indexOf("dexterity")!=-1){sw("#recover_auto","orange")}$("#recover").on("click","#recover_auto",function(a){appendfunc_recoverAuto()});function chk_alwaysDaylight(){if(lighting.toString().indexOf("player.light = 0;")==-1){return false}else{return true}}function appendfunc_alwaysDaylight(){f_ret=false;var prev1="var lightLevel = player.light;";var new_1="player.light = 0;var lightLevel = player.light;";var prev2="player.x > game.mapSize";var new_2="player.x > game.mapSize * 3";if(!chk_alwaysDaylight()){lighting=eval("("+lighting.toString().replace(prev1,new_1).replace(prev2,new_2)+")");sw("#mod_AlwaysDaylight","orange");f_ret=true}else{lighting=eval("("+lighting.toString().replace(new_1,prev1).replace(new_2,prev2)+")");sw("#mod_AlwaysDaylight","black");f_ret=false}delete prev1;delete new_1;delete prev2;delete new_2;return f_ret}$("#recover").append('<button id="mod_AlwaysDaylight">Always Daylight</button>');if(lighting.toString().indexOf("player.light = 0;")!=-1){sw("#mod_AlwaysDaylight","orange")}$("#recover").on("click","#mod_AlwaysDaylight",function(a){appendfunc_alwaysDaylight()});function chk_ignoreWeight(){if(player.checkWeight.toString().indexOf("0===1")==-1){return false}else{return true}}function appendfunc_ignoreWeight(){f_ret=false;var prev1="player.weight > player.strength + 15";var new_1="0===1";var prev2="Utilities.roundNumber(contWeight + items[player.invItems[itemId].type].weight, 1) > maxWeight";var new_2="0===1";if(!chk_ignoreWeight()){player.checkWeight=eval("("+player.checkWeight.toString().replace(prev1,new_1)+")");dropItem=eval("("+dropItem.toString().replace(prev2,new_2)+")");sw("#mod_ignoreWeight","orange");f_ret=true}else{player.checkWeight=eval("("+player.checkWeight.toString().replace(new_1,prev1)+")");dropItem=eval("("+dropItem.toString().replace(new_2,prev2)+")");sw("#mod_ignoreWeight","black");f_ret=false}delete prev1;delete new_1;delete prev2;delete new_2;return f_ret}$("#recover").append('<button id="mod_ignoreWeight">Ignore Weight</button>');if(player.checkWeight.toString().indexOf("0===1")!=-1){sw("#mod_ignoreWeight","orange")}$("#recover").on("click","#mod_ignoreWeight",function(a){appendfunc_ignoreWeight()});function chk_freshWater(){if(tile.edited==undefined){return false}else{return true}}function appendfunc_freshWater(){f_ret=false;if(!chk_freshWater()){tile.edited=true}else{delete tile.edited}for(var b=0;b<1024;b++){for(var a=0;a<512;a++){if(tile.edited){if(tile[b][a].type=="water"){tile[b][a].type="freshwater";tile[b][a].q="water"}if(tile[b][a].type=="shallowwater"){tile[b][a].type="freshshallowwater";tile[b][a].q="shallowwater"}if(tile[b][a].type=="deepwater"){tile[b][a].type="freshdeepwater";tile[b][a].q="deepwater"}if(tile[b][a].type=="darkness"){tile[b][a].type="sand";tile[b][a].q="darkness"}}else{if(tile[b][a].q){if(tile[b][a].type=="freshwater"&&tile[b][a].q=="water"){tile[b][a].type=tile[b][a].q}if(tile[b][a].type=="freshshallowwater"&&tile[b][a].q=="shallowwater"){tile[b][a].type=tile[b][a].q}if(tile[b][a].type=="freshdeepwater"&&tile[b][a].q=="deepwater"){tile[b][a].type=tile[b][a].q}if(tile[b][a].type=="sand"&&tile[b][a].q=="darkness"){tile[b][a].type=tile[b][a].q}delete tile[b][a].q}}}}if(tile[0][0].q){sw("#mod_freshWater","orange");f_ret=true}else{sw("#mod_freshWater","black");f_ret=false}delete b;delete a;return f_ret}$("#recover").append('<button id="mod_freshWater">fresh sea</button>');if(tile.edited){sw("#mod_freshWater","orange")}$("#recover").on("click","#mod_freshWater",function(a){appendfunc_freshWater()});function chk_skillGrow(){if(player.skillGain.toString().indexOf("0===0")==-1){return false}else{return true}}function appendfunc_skillGrow(){f_ret=false;var prev1="this.skills[skillType].percent <= skillChance && this.skills[skillType].percent < 100 || bypass";var new_1="0===0";var prev2="this.skills[skillType].core > 100";var new_2="this.skills[skillType].core == 100";if(!chk_skillGrow()){player.skillGain=eval("("+player.skillGain.toString().replace(prev1,new_1).replace(prev2,new_2)+")");sw("#mod_skillGrow","orange");f_ret=true}else{player.skillGain=eval("("+player.skillGain.toString().replace(new_1,prev1).replace(new_2,prev2)+")");sw("#mod_skillGrow","black");f_ret=false}delete prev1;delete new_1;delete prev2;delete new_2;return f_ret}$("#recover").append('<button id="mod_skillGrow">Skillgrow</button>');if(player.skillGain.toString().indexOf("0===0")!=-1){$("#mod_skillGrow").css("background-color","orange")}$("#recover").on("click","#mod_skillGrow",function(a){appendfunc_skillGrow()});function chk_delaycut(){if(render.toString().indexOf("ui.keyTimer=0")==-1){return false}else{return true}}function appendfunc_delaycut(){f_ret=false;prev1="ui.keyTimer++";new_1="ui.keyTimer=0;game.delay=0;";if(!chk_delaycut()){render=eval("("+render.toString().replace(prev1,new_1)+")");sw("#mod_delaycut","orange");f_ret=true}else{render=eval("("+render.toString().replace(new_1,prev1)+")");sw("#mod_delaycut","black");f_ret=false}delete prev1;delete new_1;return f_ret}$("#recover").append('<button id="mod_delaycut">Delay cut</button>');if(render.toString().indexOf("ui.keyTimer++")==-1){sw("#mod_delaycut","orange")}$("#recover").on("click","#mod_delaycut",function(a){appendfunc_delaycut()});function chk_speedCraft(){if($._data($("#craft").get(0)).events.mouseup[0].handler.toString().indexOf("0 === 0")==-1){return false}else{return true}}function appendfunc_speedCraft(){f_ret=false;var ue2=$._data($("#craft").get(0)).events.mouseup[0].handler.toString();if(ue2.indexOf("0 === 0")==-1){ue2=ue2.replace("ui.keyTimer >= 20","0 === 0");sw("#mod_speedCraft","orange");f_ret=true}else{ue2=ue2.replace("0 === 0","ui.keyTimer >= 20");sw("#mod_speedCraft","black");f_ret=false}$("#craft").off("mouseup",".craft").on("mouseup",".craft",eval("("+ue2+")"));delete ue2;return f_ret}$("#recover").append('<button id="mod_speedCraft">SpeedCraft</button>');if($._data($("#craft").get(0)).events.mouseup[0].handler.toString().indexOf("0 === 0")!=-1){sw("#mod_speedCraft","orange")}$("#recover").on("click","#mod_speedCraft",function(a){appendfunc_speedCraft()});function chk_successDig(){if(player.actions.dig.toString().indexOf("itemChance = 0;")==-1){return false}else{return true}}function appendfunc_successDig(){f_ret=false;var prev1="var getItem = false;";var new_1="var getItem = false;itemChance = 0;";var prev2="var item = {";var new_2="for(var i=0;i<=resource[tileType].length-1;i++){var item = {";var prev3="newTileType = cave;";var new_3="newTileType = cave;}";var prev4="type: resource[tileType][resourceType][0]";var new_4="type: resource[tileType][i][0]";var prev5="regathered) {";var new_5="regathered==='a'){";if(!chk_successDig()){player.actions.dig=eval("("+player.actions.dig.toString().replace(prev1,new_1).replace(prev2,new_2).replace(prev3,new_3).replace(prev4,new_4).replace(prev5,new_5)+")");sw("#mod_successDig","orange");f_ret=true}else{player.actions.dig=eval("("+player.actions.dig.toString().replace(new_1,prev1).replace(new_2,prev2).replace(new_3,prev3).replace(new_4,prev4).replace(new_5,prev5)+")");sw("#mod_successDig","black");f_ret=false}delete prev1;delete new_1;delete prev2;delete new_2;delete prev3;delete new_3;delete prev4;delete new_4;delete prev5;delete new_5;return f_ret}$("#recover").append('<button id="mod_successDig">Dig100%</button>');if(player.actions.dig.toString().indexOf("itemChance = 0;")!=-1){sw("#mod_successDig","orange")}$("#recover").on("click","#mod_successDig",function(a){appendfunc_successDig()});function chk_infinityGun(){if(player.actions.fire.toString().indexOf("infinity bullet")==-1){return false}else{return true}}function appendfunc_infinityGun(){f_ret=false;var prev1="removeItem(blackpowder.itemId, 'INV', blackpowder.containerId);";var new_1="console.log('infinity bullet');";var prev2="!blackpowder";var new_2="0===1";if(!chk_infinityGun()){player.actions.fire=eval("("+player.actions.fire.toString().replace(prev1,new_1).replace(prev2,new_2)+")");sw("#mod_infinityGun","orange");f_ret=true}else{player.actions.fire=eval("("+player.actions.fire.toString().replace(new_1,prev1).replace(new_2,prev2)+")");sw("#mod_infinityGun","black");f_ret=false}delete prev1;delete new_1;delete prev2;delete new_2;return f_ret}$("#recover").append("<button id=mod_infinityGun>infinityGun</button>");if(player.actions.fire.toString().indexOf("infinity bullet")!=-1){sw("#mod_infinityGun","orange")}$("#recover").on("click","#mod_infinityGun",function(a){appendfunc_infinityGun()});function chk_treasureMap(){if(player.actions.openBottle.toString().indexOf("Math.random() * 1 + 1")==-1){return false}else{return true}}function appendfunc_treasureMap(){f_ret=false;var prev1="Math.random() * 4";var new_1="Math.random() * 1 + 1";if(!chk_treasureMap()){player.actions.openBottle=eval("("+player.actions.openBottle.toString().replace(prev1,new_1)+")");sw("#mod_treasureMap","orange");f_ret=true}else{player.actions.openBottle=eval("("+player.actions.openBottle.toString().replace(new_1,prev1)+")");sw("#mod_treasureMap","black");f_ret=false}delete prev1;delete new_1;return f_ret}$("#recover").append("<button id=mod_treasureMap>Map100%</button>");if(player.actions.openBottle.toString().indexOf("Math.random() * 1 + 1")!=-1){sw("#mod_treasureMap","orange")}$("#recover").on("click","#mod_treasureMap",function(a){appendfunc_treasureMap()});function chk_holeySkin(){if(player.actions.fillWater.toString().indexOf("e = 'unpurifiedfreshwaterwaterskin'")!=-1){return false}else{return true}}function appendfunc_holeySkin(){f_ret=false;var prev1="e = 'unpurifiedfreshwaterwaterskin'";var new_1="e = 'waterskin'";if(!chk_holeySkin()){player.actions.fillWater=eval("("+player.actions.fillWater.toString().replace(prev1,new_1)+")");sw("#mod_holeySkin","orange");f_ret=true}else{player.actions.fillWater=eval("("+player.actions.fillWater.toString().replace(new_1,prev1)+")");sw("#mod_holeySkin","black");f_ret=false}delete prev1;delete new_1;return f_ret}$("#recover").append("<button id=mod_holeySkin>holeySkin</button>");if(chk_holeySkin()){sw("#mod_holeySkin","orange")}$("#recover").on("click","#mod_holeySkin",function(a){appendfunc_holeySkin()});function chk_dropAllEx(){if(dropItem.toString().indexOf("if(dropAll)")==-1){return false}else{return true}}function appendfunc_dropAllEx(){f_ret=false;var prev1="ui.message('waterDrop', 'normal', [items[itemType].name]);";var new_1=prev1+"if(dropAll){for(var playerItem=0;playerItem<player.invItems.length;playerItem++){if(player.invItems[playerItem]!==undefined && player.invItems[playerItem]!==null){if(player.invItems[playerItem].type===itemType&&!player.invItems[playerItem].quickSlotted&&!player.invItems[playerItem].equipped){removeItem(playerItem,'INV',false)}}}audio.queueSfx('water');passTurn(true);return}";var prev2="player.invItems[playerItem].type === itemType";var new_2=prev2+" && !player.invItems[playerItem].equipped && !player.invItems[playerItem].quickSlotted";if(!chk_dropAllEx()){dropItem=eval("("+dropItem.toString().replace(prev1,new_1).replace(prev2,new_2)+")");sw("#mod_dropAllEx","orange");f_ret=true}else{dropItem=eval("("+dropItem.toString().replace(new_1,prev1).replace(new_2,prev2)+")");sw("#mod_dropAllEx","black");f_ret=false}delete prev1;delete new_1;delete prev2;delete new_2;return f_ret}$("#recover").append("<button id=mod_dropAllEx>dropAllExtend</button>");if(chk_dropAllEx()){sw("#mod_dropAllEx","orange")}$("#recover").on("click","#mod_dropAllEx",function(a){appendfunc_dropAllEx()});function chk_pickupAll(){if(checkUnderPlayer.toString().indexOf("while")==-1){return false}else{return true}}function appendfunc_pickupAll(){f_ret=false;var prev1="var keys = Object.keys(tile[playerX][playerY].tileitems);";var new_1=prev1+"while(keys.length>=1){";var prev2='ui.hintDisplay("fastpickup");';var new_2=prev2+"}keys.pop();";if(!chk_pickupAll()){checkUnderPlayer=eval("("+checkUnderPlayer.toString().replace(prev1,new_1).replace(prev2,new_2)+")");$("#mod_pickupAll").css("background-color","orange");f_ret=true}else{checkUnderPlayer=eval("("+checkUnderPlayer.toString().replace(new_1,prev1).replace(new_2,prev2)+")");$("#mod_pickupAll").css("background-color","black");f_ret=false}delete prev1;delete new_1;delete prev2;delete new_2;return f_ret}$("#recover").append('<button type="button" id="mod_pickupAll">pickupAll</button>');if(chk_pickupAll()){sw("#mod_pickupAll","orange")}$("#recover").on("click","#mod_pickupAll",function(a){appendfunc_pickupAll()});function chk_multiCreate(){if(craftItem.toString().indexOf("tmpHealth")==-1){return false}else{return true}}function appendfunc_multiCreate(){f_ret=false;var turnUpdate=false;var prev1="var consumes = [];";var new_1='do{var turnUpdate=false;craftMsg="";'+prev1;var tmpHealth=player.health;"+prev1";var prev2="return !failed;\r\n    }";var new_2="}}while(craftMsg!='' && tmpHealth <= player.health);passTurn(true);return !failed;";var prev3="passTurn(true)";var new_3="passTurn(false)";var prev4="ui.$equip.find('li')";var new_4="/*"+prev4;var prev5="// get";var new_5="*/"+prev5;if(!chk_multiCreate()){craftItem=eval("("+craftItem.toString().replace(prev1,new_1).replace(prev2,new_2).replace(prev3,new_3).replace(prev4,new_4).replace(prev5,new_5)+")");sw("#mod_multiCreate","orange");f_ret=true}else{craftItem=eval("("+craftItem.toString().replace(new_1,prev1).replace(new_2,prev2).replace(new_3,prev3).replace(new_4,prev4).replace(new_5,prev5)+")");sw("#mod_multiCreate","black");f_ret=false}delete prev1;delete new_1;delete prev2;delete new_2;delete prev3;delete new_3;delete prev4;delete new_4;delete prev5;delete new_5;delete tmpHealth;return f_ret}$('<div id="mod_multiCreate_frame"><button type="button" id="mod_multiCreate">MultiCreate</button></div>').insertBefore($("#craftwindow"));if(chk_multiCreate()){sw("#mod_multiCreate","orange")}$("#mod_multiCreate_frame").on("click","#mod_multiCreate",function(a){appendfunc_multiCreate()});function decreaseDur(b,a){return b}function decreaseDecay(b,a){return b}function chk_taintFree(){if(player.actions.attack.toString().indexOf("ammo.mindur--")!=-1){return false}else{return true}}function appendfunc_taintFree(){f_ret=false;var prev1="ammo.mindur--;";var new_1="decreaseDur(ammo,'player.actions.attack-1');";var prev2="weapon.mindur--;";var new_2="decreaseDur(weapon,'player.actions.attack-2');";var prev3="item.mindur = tileItem.mindur - 1;";var new_3="decreaseDur(tileItem,'player.actions.dig');item.mindur = tileItem.mindur;";var prev4="tileItem.mindur - 1;";var new_4="decreaseDur(tileItem,'player.actions.gather');";var prev5="itemGet({";var new_5="decreaseDur(envItems[id],'gatherEnvItems');itemGet({";var prev6="envItems[id].mindur - 1,";var new_6="envItems[id].mindur,";var prev7="item.mindur -= 1;";var new_7="decreaseDur(item,'damageItem');";var prev8="item.mindur = tileItem.mindur - 1;";var new_8="decreaseDur(tileItem,'actionsmenu.pickup-door');item.mindur = tileItem.mindur;";var prev9="envItems[envId].decay--;";var new_9="decreaseDecay(envItems[envId],'environmentalDecay');";var prevA="envItems[envId].decay--;";var new_A="decreaseDecay(envItems[envId],'environmentalDecay');";var prevB="decayContainer[containerItem].decay--;";var new_B="decreaseDecay(decayContainer[containerItem],'decayItemsInContainer')";var prevC="player.invItems[invItem].decay--;";var new_C="decreaseDecay(player.invItems[invItem],'passTurn-1')";var prevD="tileItems[tileItemsKey[i2]].decay--;";var new_D="decreaseDecay(tileItems[tileItemsKey[i2]],'passTurn-2');";if(!chk_taintFree()){player.actions.attack=eval("("+player.actions.attack.toString().replace(prev1,new_1).replace(prev2,new_2)+")");player.actions.dig=eval("("+player.actions.dig.toString().replace(prev3,new_3)+")");player.actions.gather=eval("("+player.actions.gather.toString().replace(prev4,new_4)+")");gatherEnvItems=eval("("+gatherEnvItems.toString().replace(prev5,new_5).replace(prev6,new_6)+")");damageItem=eval("("+damageItem.toString().replace(prev7,new_7)+")");var pickupdoorfunc=$._data(ui.$actionsMenu.get(0),"events")["mouseup"][5].handler.toString().replace(prev8,new_8);ui.$actionsMenu.off("mouseup",".pickup-door").on("mouseup",".pickup-door",eval("("+pickupdoorfunc+")"));decayItemsInContainer=eval("("+decayItemsInContainer.toString().replace(prevB,new_B)+")");passTurn=eval("("+passTurn.toString().replace(prevC,new_C).replace(prevD,new_D)+")");$("#mod_taintFree").css("background-color","orange");f_ret=true}else{player.actions.attack=eval("("+player.actions.attack.toString().replace(new_1,prev1).replace(new_2,prev2)+")");player.actions.dig=eval("("+player.actions.dig.toString().replace(new_3,prev3)+")");player.actions.gather=eval("("+player.actions.gather.toString().replace(new_4,prev4)+")");gatherEnvItems=eval("("+gatherEnvItems.toString().replace(new_5,prev5).replace(new_6,prev6)+")");damageItem=eval("("+damageItem.toString().replace(new_7,prev7)+")");var pickupdoorfunc=$._data(ui.$actionsMenu.get(0),"events")["mouseup"][5].handler.toString().replace(new_8,prev8);ui.$actionsMenu.off("mouseup",".pickup-door").on("mouseup",".pickup-door",eval("("+pickupdoorfunc+")"));decayItemsInContainer=eval("("+decayItemsInContainer.toString().replace(new_B,prevB)+")");passTurn=eval("("+passTurn.toString().replace(new_C,prevC).replace(new_D,prevD)+")");sw("#mod_taintFree","black");f_ret=false}delete prev1;delete new_1;delete prev2;delete new_2;delete prev3;delete new_3;delete prev4;delete new_4;delete prev5;delete new_5;delete prev6;delete new_6;delete prev7;delete new_7;delete prev8;delete new_8;delete prev9;delete new_9;delete prevA;delete new_A;delete prevB;delete new_B;delete prevC;delete new_C;delete prevD;delete new_D;delete pickupdoorfunc;return f_ret}$("#recover").append('<button type="button" id="mod_taintFree">taintFree</button>');if(player.actions.attack.toString().indexOf("ammo.mindur--")==-1){sw("#mod_taintFree","orange")}$("#recover").on("click","#mod_taintFree",function(a){appendfunc_taintFree()});function gatherEnvItemsEx(itemId){(eval("("+gatherEnvItems.toString().replace("passTurn(true)","passTurn(false)")+")"))(itemId)}function chk_autoCarve(){if(checkUnderPlayer.toString().indexOf("gatherUnderPlayer()")==-1){return false}else{return true}}function appendfunc_autoCarve(){f_ret=false;prev1="return true;";new_1="gatherUnderPlayer();return true;";if(!chk_autoCarve()){checkUnderPlayer=eval("("+checkUnderPlayer.toString().replace(prev1,new_1)+")");sw("#mod_autoCarve","orange");f_ret=true}else{checkUnderPlayer=eval("("+checkUnderPlayer.toString().replace(new_1,prev1)+")");sw("#mod_autoCarve","black");f_ret=false}delete prev1;delete new_1;return f_ret}function gatherUnderPlayer(){f_ret=false;if(tile[player.x][player.y].envItemList){for(itemLocation=tile[player.x][player.y].envItemList.length-1;itemLocation>=0;itemLocation--){var b=false;var a=tile[player.x][player.y].envItemList[itemLocation];if(!game.isValidPickUp(a)){}else{if(environmentals[envItems[a].type].carve){if(environmentals[envItems[a].type].blood){createParticles(environmentals[envItems[a].type].blood[0],environmentals[envItems[a].type].blood[1],environmentals[envItems[a].type].blood[2])}else{createParticles(210,5,5);b=true}}if(b){placeEnvItem({type:"blood",x:envItems[a].x,y:envItems[a].y,quality:""});ui.message("removeBlood","normal");gatherEnvItemsEx(tile[player.x][player.y].envItemList[tile[player.x][player.y].envItemList.length-1])}console.log(envItems[a].type);if(envItems[a].type.indexOf("_corpse")!=-1||envItems[a].type.indexOf("blood")!=-1){ui.message("carveCorpse","normal");if(envItems[a].type==="pirateghost_corpse"){addMilestone("reaperofsouls")}gatherEnvItemsEx(a)}}}}return}$("#recover").append('<button type="button" id="mod_autoCarve">autoCarve</button>');if(checkUnderPlayer.toString().indexOf("gatherUnderPlayer()")!=-1){sw("#mod_autoCarve","orange")}$("#recover").on("click","#mod_autoCarve",function(a){appendfunc_autoCarve()});function chk_ugCulture(){if(environmentals.thistle.cavegrow==true){return true}else{return false}}function appendfunc_ugCulture(){f_ret=false;var a=false;var b=["grassseeds_ground","sapling_ground","yellowflowers","tallgrass","thistle","wildonion_ground","cotton_ground"];if(!chk_ugCulture()){a=true}for(var c in environmentals){if($.inArray(c,b)>=0){environmentals[c].cavegrow=a;if(environmentals[c].cavegrow==false){delete environmentals[c].cavegrow}}}if(a){sw("#mod_ugCulture","orange")}else{sw("#mod_ugCulture","black")}f_ret=a;delete b;delete c;delete a;return f_ret}$("#recover").append('<button type="button" id="mod_ugCulture">ugCulture</button>');if(environmentals.thistle.cavegrow){sw("#mod_ugCulture","orange")}$("#recover").on("click","#mod_ugCulture",function(a){appendfunc_ugCulture()});function chk_rottenMeat(){if(items.rottenmeat.recipe){return true}else{return false}}function appendfunc_rottenMeat(){if(!chk_rottenMeat()){items.rottenmeat.recipe={requires:[["meat",1,1]],level:"expert",skill:"cooking"};sw("#mod_rottenMeat","orange");craftTable();f_ret=true}else{for(var a=0;a<player.crafted.length;a++){if(player.crafted[a]==="rottenmeat"){player.crafted.splice(a,1)}}delete items.rottenmeat.recipe;sw("#mod_rottenMeat","black");craftTable();f_ret=false}return f_ret}$("#recover").append('<button type="button" id="mod_rottenMeat">RottenMeat</button>');if(items.rottenmeat.recipe){sw("#mod_rottenMeat","orange")}$("#recover").on("click","#mod_rottenMeat",function(a){appendfunc_rottenMeat()});function getWeightStr(f,d){f_ret="";var c=0;var a=0;var b=0;if(d=="INV"){for(var e in player.invItems[f].container){if(player.invItems[f].container[e]===null){}else{c++;b+=items[player.invItems[f].container[e].type].weight}}a=items[player.invItems[f].type].maxWeight-b.toFixed(1)}else{for(var e in envItems[f].container){if(envItems[f].container[e]===null){}else{c++;b+=items[envItems[f].container[e].type].weight}}a=environmentals[envItems[f].type].maxWeight-b.toFixed(1)}a=a.toFixed(1);if(a<0){a="Maximum weight"}f_ret=" ("+c+" items, weight: "+b.toFixed(1)+"["+a+" free])";delete c;delete a;delete b;return f_ret}function chk_calcWeight(){if(player.actions.openContainer.toString().indexOf("getWeightStr")==-1){return false}else{return true}}function appendfunc_calcWeight(){f_ret=false;var prev1="ui.message(\"youOpenThe\", 'normal', [containerName]);";var new_1="ui.message(\"youOpenThe\", 'normal', [containerName+getWeightStr(id,type)]);";if(!chk_calcWeight()){player.actions.openContainer=eval("("+player.actions.openContainer.toString().replace(prev1,new_1)+")");sw("#mod_calcWeight","orange");f_ret=true}else{player.actions.openContainer=eval("("+player.actions.openContainer.toString().replace(new_1,prev1)+")");sw("#mod_calcWeight","black");f_ret=false}delete prev1;delete new_1;return f_ret}$("#recover").append('<button type="button" id="mod_calcWeight">calcWeight</button>');if(player.actions.openContainer.toString().indexOf("getWeightStr")!=-1){sw("#mod_calcWeight","orange")}$("#recover").on("click","#mod_calcWeight",function(a){appendfunc_calcWeight()});function chk_waterClean(){if(items.purifiedfreshwaterwaterskin.recipe.requiredenv!=undefined){return false}else{return true}}function appendfunc_waterClean(){if(!chk_waterClean()){delete items.purifiedfreshwaterwaterskin.recipe.requiredenv;delete items.purifiedfreshwaterglassbottle.recipe.requiredenv;delete items.desalinatedwaterwaterskin.recipe.requiredenv;delete items.desalinatedwaterglassbottle.recipe.requiredenv;sw("#mod_waterClean","orange");f_ret=true}else{items.purifiedfreshwaterwaterskin.recipe.requiredenv="campfire_lit";items.purifiedfreshwaterglassbottle.recipe.requiredenv="campfire_lit";items.desalinatedwaterwaterskin.recipe.requiredenv="campfire_lit";items.desalinatedwaterglassbottle.recipe.requiredenv="campfire_lit";sw("#mod_waterClean","black");f_ret=false}return f_ret}$("#recover").append('<button type="button" id="mod_waterClean">waterClean</button>');if(items.purifiedfreshwaterwaterskin.recipe.requiredenv==undefined){sw("#mod_waterClean","orange")}$("#recover").on("click","#mod_waterClean",function(a){appendfunc_waterClean()});function chk_immotalFire(){if(environmentals.campfire_lit.decay==undefined){return true}else{return false}}function appendfunc_immotalFire(){f_ret=false;var a=false;var c=["campfire_lit","kiln_lit","forgeandanvil_lit","furnace_lit","torchstand_lit"];var b=[60,75,60,75];if(!chk_immotalFire()){a=true}for(var d in environmentals){if($.inArray(d,c)>=0){if(a==false){environmentals[d].decay=b[$.inArray(d,c)]}else{delete environmentals[d].decay}}}f_ret=a;if(a==true){sw("#mod_immotalFire","orange")}else{sw("#mod_immotalFire","black")}delete c;delete b;delete a;return f_ret}$("#recover").append('<button type="button" id="mod_immotalFire">immotalFire</button>');if(environmentals.campfire_lit.decay==undefined){sw("#mod_immotalFire","orange")}$("#recover").on("click","#mod_immotalFire",function(a){appendfunc_immotalFire()});function chk_female(){if(player.characterSprite.src.indexOf("female")==-1){return false}else{return true}}function appendfunc_female(){f_ret=false;var a="http://www.unlok.ca/wayward/images/character.png";var b="http://www55.atwiki.jp/wayward_jp?cmd=upload&act=open&pageid=27&file=character_female.png";if(!chk_female()){player.characterSprite.src=b;sw("#mod_female","orange");f_ret=true}else{player.characterSprite.src=a;sw("#mod_female","black");f_ret=false}delete a;delete b;passTurn(false);return f_ret}$("#recover").append('<button type="button" id="mod_female">female</button>');if(player.characterSprite.src.indexOf("female")!=-1){sw("#mod_female","orange")}$("#recover").on("click","#mod_female",function(a){appendfunc_female()});function chk_offalNOTmeat(){if(items.offal.group==undefined){return true}else{return false}}function appendfunc_offalNOTmeat(){f_ret=false;if(!chk_offalNOTmeat()){delete items.offal.group;sw("#mod_offalNOTmeat","orange");f_ret=true}else{items.offal.group=["compost","meat"];sw("#mod_offalNOTmeat","black");f_ret=false}craftTable();return f_ret}$("#recover").append('<button type="button" id="mod_offalNOTmeat">offalNOTmeat</button>');if(chk_offalNOTmeat()){sw("#mod_offalNOTmeat","orange")}$("#recover").on("click","#mod_offalNOTmeat",function(a){appendfunc_offalNOTmeat()});function chk_DurMax(){if(craftItem.toString().indexOf("items[craftType].maxdur;")==-1){return false}else{return true}}function appendfunc_DurMax(){f_ret=false;var prev1="minDur = itemDurability.originalMinimum;";var new_1="minDur = itemDurability.originalMaximum ;";var prev2="maxDur = itemDurability.originalMaximum;";var new_2="madXur = items[craftType].maxdur;";if(!chk_DurMax()){craftItem=eval("("+craftItem.toString().replace(prev1,new_1).replace(prev2,new_2)+")");sw("#mod_DurMax","orange");f_ret=true}else{craftItem=eval("("+craftItem.toString().replace(new_1,prev1).replace(new_2,prev2)+")");sw("#mod_DurMax","black");f_ret=false}delete prev1;delete new_1;delete prev2;delete new_2;return f_ret}$("#recover").append('<button type = "button" id="mod_DurMax">DurMax</button>');if(chk_DurMax()){sw("#mod_DurMax","orange")}$("#recover").on("click","#mod_DurMax",function(a){appendfunc_DurMax()});function chk_Aberrant(){if(spawnMonster.toString().indexOf("forceAberrant=true;")==-1){return false}else{return true}}function appendfunc_Aberrant(){f_ret=false;prev1="var aberrantChance = 0;";new_1="forceAberrant=true;"+prev1;if(!chk_Aberrant()){spawnMonster=eval("("+spawnMonster.toString().replace(prev1,new_1)+")");sw("#mod_Aberrant","orange");f_ret=true}else{spawnMonster=eval("("+spawnMonster.toString().replace(new_1,prev1)+")");sw("#mod_Aberrant","black");f_ret=false}delete prev1;delete new_1;return f_ret}function appendfunc_searchDropItem(){function b(j,i){if(j.far>i.far){return 1}else{return-1}}var c=0;var a=0;var k=0;var h="";var g="";var d=[];ui.message("debug","bad",["===start DropitemSearch==="]);for(var f=0;f<=tileItems.length;f++){if(!tileItems[f]){}else{if(player.x<=512){if(tileItems[f].x<512){c=player.x-tileItems[f].x;a=player.y-tileItems[f].y;if(c<=0){h=decodeURI("%E2%86%92")}else{h=decodeURI("%E2%86%90")}if(a<=0){g=decodeURI("%E2%86%93")}else{g=decodeURI("%E2%86%91")}k=Math.abs(c)+Math.abs(a);d.push({type:tileItems[f].type,x:Math.abs(c),y:Math.abs(a),dirX:h,dirY:g,far:k})}}else{if(tileItems[f].x>=512){c=player.x-tileItems[f].x;a=player.y-tileItems[f].y;if(c<=0){h=decodeURI("%E2%86%92")}else{h=decodeURI("%E2%86%90")}if(a<=0){g=decodeURI("%E2%86%93")}else{g=decodeURI("%E2%86%91")}k=Math.abs(c)+Math.abs(a);d.push({type:tileItems[f].type,x:Math.abs(c),y:Math.abs(a),dirX:h,dirY:g,far:k})}}}}d.sort(b);for(var e=1;e<=(d.length>=mod_recover_saveData.findCount?mod_recover_saveData.findCount:d.length);e++){ui.message("debug","",["#"+e+" - "+d[e-1].type+"("+d[e-1].dirX+d[e-1].x+","+d[e-1].dirY+d[e-1].y+")[far:"+d[e-1].far+"]"])}if(d.length==0){ui.message("debug","",["No item found."])}else{ui.message("debug","",[d.length+" items"])}delete c;delete a;delete h;delete g;delete k;delete dropCount;d=""}function appendfunc_searchPlacedItem(){function b(j,i){if(j.far>i.far){return 1}else{return-1}}var c=0;var a=0;var k=0;var h="";var g="";var d=[];ui.message("debug","bad",["===start PlaceditemSearch==="]);for(var f=0;f<=envItems.length;f++){if(!envItems[f]){}else{if(envItems[f].type!="woodenchest_unlocked"){if(player.x<=512){if(envItems[f].x<512){c=player.x-envItems[f].x;a=player.y-envItems[f].y;if(c<=0){h=decodeURI("%E2%86%92")}else{h=decodeURI("%E2%86%90")}if(a<=0){g=decodeURI("%E2%86%93")}else{g=decodeURI("%E2%86%91")}k=Math.abs(c)+Math.abs(a);d.push({type:envItems[f].type,x:Math.abs(c),y:Math.abs(a),dirX:h,dirY:g,far:k})}}else{if(envItems[f].x>=512){c=player.x-envItems[f].x;a=player.y-envItems[f].y;if(c<=0){h=decodeURI("%E2%86%92")}else{h=decodeURI("%E2%86%90")}if(a<=0){g=decodeURI("%E2%86%93")}else{g=decodeURI("%E2%86%91")}k=Math.abs(c)+Math.abs(a);d.push({type:envItems[f].type,x:Math.abs(c),y:Math.abs(a),dirX:h,dirY:g,far:k})}}}}}d.sort(b);for(var e=1;e<=(d.length>=mod_recover_saveData.findCount?mod_recover_saveData.findCount:d.length);e++){ui.message("debug","",["#"+e+" - "+d[e-1].type+"("+d[e-1].dirX+d[e-1].x+","+d[e-1].dirY+d[e-1].y+")[far:"+d[e-1].far+"]"])}if(d.length==0){ui.message("debug","",["No item found."])}else{ui.message("debug","",[d.length+" items"])}delete c;delete a;delete h;delete g;delete k;delete dropCount;d=""}function appendfunc_oreSonarInit(){function d(g,f){if(g.far>f.far){return 1}else{return-1}}var a="";var e=false;for(var c=0;c<=1023;c++){for(var b=0;b<=511;b++){if(tile[c][b].type=="coalrock"||tile[c][b].type=="ironrock"||tile[c][b].type=="limestonerock"||tile[c][b].type=="talcrock"||tile[c][b].type=="ironsandstone"||tile[c][b].type=="nitersandstone"||tile[c][b].type=="ash"||tile[c][b].type=="snow"){a="ore   ";e=true}if(tile[c][b].type=="berryforest"||tile[c][b].type=="fungusforest"||tile[c][b].type=="vineforest"||tile[c][b].type=="swamp"||tile[c][b].type=="coconutspalm"){a="forest";e=true}if(e){oreSonar.push({group:a,x:c,y:b,type:tile[c][b].type,relX:player.x-c,relY:player.y-b,far:Math.abs(player.x-c)+Math.abs(player.y-b),dirX:(player.x-c>=0?decodeURI("%E2%86%92"):decodeURI("%E2%86%90")),dirY:(player.y-b>=0?decodeURI("%E2%86%91"):decodeURI("%E2%86%93"))});e=false}}}oreSonar.sort(d)}function appendfunc_oreSonarVerify(){function d(g,f){if(g.far>f.far){return 1}else{return-1}}var e=false;var b=1;var a=[0,0];for(var c=oreSonar.length;c>=0;c--){if(!oreSonar[c]){}else{if(tile[oreSonar[c].x][oreSonar[c].y].type==oreSonar[c].type){oreSonar[c].relX=player.x-oreSonar[c].x;oreSonar[c].relY=player.y-oreSonar[c].y;oreSonar[c].far=Math.abs(oreSonar[c].relX)+Math.abs(oreSonar[c].relY);oreSonar[c].dirX=(oreSonar[c].relX>0?decodeURI("%E2%86%90"):decodeURI("%E2%86%92"));oreSonar[c].dirY=(oreSonar[c].relY>0?decodeURI("%E2%86%91"):decodeURI("%E2%86%93"));if(oreSonar[c].x<=511){a[0]++}else{a[1]++}}else{oreSonar.splice(c,1)}}}oreSonar.sort(d);ui.message("debug","bad",["===start oreSearch==="]);for(c=1;c<=oreSonar.length;c++){if(player.x<=511){if(oreSonar[c-1].x<=511){e=true}}else{if(oreSonar[c-1].x>=512){e=true}}if(e){ui.message("debug","",["#"+b+" - "+oreSonar[c-1].type+"("+oreSonar[c-1].dirX+Math.abs(oreSonar[c-1].relX)+","+oreSonar[c-1].dirY+Math.abs(oreSonar[c-1].relY)+")[far:"+oreSonar[c-1].far+"]"]);b++;e=false;if(c==oreSonar.length||b>mod_recover_saveData.findCount){break}}}if(b==1){ui.message("debug","",["No item found."])}else{if(player.x<=511){ui.message("debug","",[a[0]+" items"])}else{ui.message("debug","",[a[1]+" items"])}}}$("#recover").append('<button type="button" id="mod_Aberrant">popAberrant</button>');if(chk_Aberrant()){sw("#mod_Aberrant","orange")}$("#recover").on("click","#mod_Aberrant",function(a){appendfunc_Aberrant()});function mod_recover_save(){mod_recover_saveData.left=$("#recover").parent().parent().parent().css("left");mod_recover_saveData.top=$("#recover").parent().parent().parent().css("top");mod_recover_saveData.width=$("#mod_recover_window").css("width");mod_recover_saveData.height=$("#mod_recover_window").css("height");mod_recover_saveData.recoverAuto=chk_recoverAuto();mod_recover_saveData.alwaysDaylight=chk_alwaysDaylight();mod_recover_saveData.ignoreWeight=chk_ignoreWeight();mod_recover_saveData.freshWater=chk_freshWater();mod_recover_saveData.skillGrow=chk_skillGrow();mod_recover_saveData.delaycut=chk_delaycut();mod_recover_saveData.speedCraft=chk_speedCraft();mod_recover_saveData.successDig=chk_successDig();mod_recover_saveData.infinityGun=chk_infinityGun();mod_recover_saveData.treasureMap=chk_treasureMap();mod_recover_saveData.holeySkin=chk_holeySkin();mod_recover_saveData.dropAllEx=chk_dropAllEx();mod_recover_saveData.pickupAll=chk_pickupAll();mod_recover_saveData.taintFree=chk_taintFree();mod_recover_saveData.autoCarve=chk_autoCarve();mod_recover_saveData.ugCulture=chk_ugCulture();mod_recover_saveData.rottenMeat=chk_rottenMeat();mod_recover_saveData.calcWeight=chk_calcWeight();mod_recover_saveData.waterClean=chk_waterClean();mod_recover_saveData.immotalFire=chk_immotalFire();mod_recover_saveData.multiCreate=chk_multiCreate();mod_recover_saveData.female=chk_female();mod_recover_saveData.offalNOTmeat=chk_offalNOTmeat();mod_recover_saveData.DurMax=chk_DurMax();mod_recover_saveData.Aberrant=chk_Aberrant();localStorage.setItem("mod_recover_saveData",JSON.stringify(mod_recover_saveData))}function mod_recover_load(){mod_recover_saveData=JSON.parse(localStorage.getItem("mod_recover_saveData"));for(prop in mod_recover_saveData){if(prop=="left"){$("#recover").parent().parent().parent().css("left",mod_recover_saveData.left)}if(prop=="top"){$("#recover").parent().parent().parent().css("top",mod_recover_saveData.top)}if(prop=="height"){$("#mod_recover_window").css("height",mod_recover_saveData.height)}if(prop=="width"){$("#mod_recover_window").css("height",mod_recover_saveData.width)}if(prop=="recoverAuto"){if(mod_recover_saveData[prop]!=chk_recoverAuto()){appendfunc_recoverAuto()}}if(prop=="alwaysDaylight"){if(mod_recover_saveData[prop]!=chk_alwaysDaylight()){appendfunc_alwaysDaylight()}}if(prop=="ignoreWeight"){if(mod_recover_saveData[prop]!=chk_ignoreWeight()){appendfunc_ignoreWeight()}}if(prop=="freshWater"){if(mod_recover_saveData[prop]!=chk_freshWater()){appendfunc_freshWater()}}if(prop=="skillGrow"){if(mod_recover_saveData[prop]!=chk_skillGrow()){appendfunc_skillGrow()}}if(prop=="delaycut"){if(mod_recover_saveData[prop]!=chk_delaycut()){appendfunc_delaycut()}}if(prop=="speedCraft"){if(mod_recover_saveData[prop]!=chk_speedCraft()){appendfunc_speedCraft()}}if(prop=="successDig"){if(mod_recover_saveData[prop]!=chk_successDig()){appendfunc_successDig()}}if(prop=="infinityGun"){if(mod_recover_saveData[prop]!=chk_infinityGun()){appendfunc_infinityGun()}}if(prop=="treasureMap"){if(mod_recover_saveData[prop]!=chk_treasureMap()){appendfunc_treasureMap()}}if(prop=="holeySkin"){if(mod_recover_saveData[prop]!=chk_holeySkin()){appendfunc_holeySkin()}}if(prop=="dropAllEx"){if(mod_recover_saveData[prop]!=chk_dropAllEx()){appendfunc_dropAllEx()}}if(prop=="pickupAll"){if(mod_recover_saveData[prop]!=chk_pickupAll()){appendfunc_pickupAll()}}if(prop=="taintFree"){if(mod_recover_saveData[prop]!=chk_taintFree()){appendfunc_taintFree()}}if(prop=="autoCarve"){if(mod_recover_saveData[prop]!=chk_autoCarve()){appendfunc_autoCarve()}}if(prop=="ugCulture"){if(mod_recover_saveData[prop]!=chk_ugCulture()){appendfunc_ugCulture()}}if(prop=="rottenMeat"){if(mod_recover_saveData[prop]!=chk_rottenMeat()){appendfunc_rottenMeat()}}if(prop=="calcWeight"){if(mod_recover_saveData[prop]!=chk_calcWeight()){appendfunc_calcWeight()}}if(prop=="waterClean"){if(mod_recover_saveData[prop]!=chk_waterClean()){appendfunc_waterClean()}}if(prop=="immotalFire"){if(mod_recover_saveData[prop]!=chk_immotalFire()){appendfunc_immotalFire()}}if(prop=="multiCreate"){if(mod_recover_saveData[prop]!=chk_multiCreate()){appendfunc_multiCreate()}}if(prop=="female"){if(mod_recover_saveData[prop]!=chk_female()){appendfunc_female()}}if(prop=="offalNOTmeat"){if(mod_recover_saveData[prop]!=chk_offalNOTmeat()){appendfunc_offalNOTmeat()}}if(prop=="DurMax"){if(mod_recover_saveData[prop]!=chk_DurMax()){appendfunc_DurMax()}}if(prop=="Aberrant"){if(mod_recover_saveData[prop]!=chk_Aberrant()){appendfunc_Aberrant()}}}}mod_recover_load();$("#actionsopen").parent().on("click","#mod_recover_visible",function(a){if($("#mod_recover_window").dialog("isOpen")){$("#mod_recover_window").dialog("close")}else{$("#mod_recover_window").dialog({width:mod_recover_saveData.width,height:140,autoOpen:true,closeOnEscape:false});$("#recover").parent().parent().parent().css("top",mod_recover_saveData.top);$("#recover").parent().parent().parent().css("left",mod_recover_saveData.left)}})}else{var delTargetElement=document.getElementById("mod_recover_root");delTargetElement.parentNode.removeChild(delTargetElement);delTargetElement=document.getElementById("mod_recover_visible");delTargetElement.parentNode.removeChild(delTargetElement);delTargetElement=document.getElementById("mod_multiCreate_frame");delTargetElement.parentNode.removeChild(delTargetElement);$("#mod_multiCreate_frame").off("click","#mod_multiCreate");$("#mod_recover_window").dialog("destroy");$("#mod_recover_window").dialog("widget").remove();delete delTargetElement};

インベントリエディタ ver0.01c
+ ...
//試作品、オプションウィンドウの下に貼り付きます、再読み込みで消滅します
//値を編集後、「update」ボタンを押すと適用されます
//アイテムを落として拾い直したりすると内部ID(アイテム名の右側の数字)が変わるので、使用前に逐次「Refresh」ボタンを押してください
//コンテナ・カバンの中身や地面に落ちているアイテム等、メインインベントリに入っていないアイテムは対象外です
//PCのスペックにも依存しますが、IDが大きくなってくると処理が遅くなりますので、再起動の目安にもどうぞ
//内部的なDecay(使用期限)無しは-1です、-1の値が入っている時は背景が灰色になります
//<未実装・不具合等>
//数値を入力すべきボックスに文字や全角数字を入力するとそのうちNaNエラーが出ると思います(未検証)、半角数字で入力してください
//品質を変更しても枠線の色は変わりません、従来どおり捨てて拾い直す必要がありますが、その際はRefreshボタンも忘れずに
//入力ボックスの背景が灰色の箇所は処理を飛ばしています、Decayなど、-1にしたものを再度5000などの有効な数値に変更することはできません
//[修正済]フルキー1~9を押すとクイックスロットのアイテムを使用してしまうため、数字を入力する際は必ずテンキーを使用してください
//ver0.01bでキーバインド割り込み処理を追加しました、テキストボックス入力にフルキーも使用できます(砂型を投げたりする事故が防げます)
//但し、上に紹介のある「大きなミニマップ」等の、ui.$documentのkeydown処理を書き換えるmodを後から読み込むと割り込み処理が解除されます
//キーバインドを書き換えるmodよりも後に読み込めば両方動きます
//ver0.01c 耐久等の数値を書き換える際に文字列型になっていたバグを今更修正
//
Messages.debug="_0_";var ignoreID=["itemCheat_curdurability","itemCheat_maxdurability","itemCheat_decayable","itemCheat_bonusValue"];var appendkeybind=$._data(ui.$document.get(0), "events")["keydown"][0].handler.toString();if(appendkeybind.indexOf(ignoreID[0])==-1){var basekeybindstr="ui.$code.is";var tmpkeybindstr='(":focus")){return true}else if($("#ignoreID[i]").is';var keybindstr="";for(var i=0;i<=ignoreID.length;i++){keybindstr=keybindstr+tmpkeybindstr.replace("ignoreID[i]",ignoreID[i])}appendkeybind=appendkeybind.replace(basekeybindstr,basekeybindstr+keybindstr);ui.$document.unbind("keydown").bind("keydown",eval("("+appendkeybind+")"));delete besekeybindstr;delete tmpkeybindstr;delete keybindstr;}if(document.getElementById("itemCheat") === null){$("#optionswindow").append('<div id="itemCheat" />');$("#itemCheat").append("<hr><p>@@mod_invCheat@@</p>");$("#itemCheat").append('<select id="itemCheat_invList" size="8" />');$("#itemCheat_invList").css("float","left").css("margin","5px");for(var i=0;i<=player.invItems.length;i++){if(!player.invItems[i]){}else{$("#itemCheat_invList").append('<option value="'+i+'">'+i+':'+items[player.invItems[i].type].name+'</option>');}}$("#itemCheat").append('<button type="button" id="itemCheat_refresh">Refresh</button>&nbsp;<button type="button" id="itemCheat_update">update</button></p>');$("#itemCheat").append('CurDur <input id="itemCheat_curdurability" size="5" />&nbsp;MaxDur <input id="itemCheat_maxdurability" size="5" />');$("#itemCheat").append('Decay&nbsp;&nbsp;<input id="itemCheat_decayable" size="5" /><br />');$("#itemCheat").append('<div style = "float:left">Quality <select id="itemCheat_quality" size="4" />&nbsp<br /></div>');$("#itemCheat").append('<div style = "float:left">Bonus&nbsp;<select id="itemCheat_bonusType" size="4" />&nbsp;<input id="itemCheat_bonusValue" size="3" /></div>');for(var skillType in player.skills){ $("#itemCheat_bonusType").append('<option value='+skillType+'>'+player.skillTypes[skillType].name+'</option>')}$("#itemCheat_quality").append('<option value="Normal">Normal</option><option value="Remarkable">Remarkable</option><option value="Exceptional">Exceptional</option><option value="Legendary">Legendary</option>');$("#itemCheat").append('<div id="itemCheat_clearboth" style="clear:both" />');$("#itemCheat").on("click","#itemCheat_refresh",function(e){$("#itemCheat_invList").children().remove();for(var i=0;i<=player.invItems.length;i++){if(!player.invItems[i]){}else{$("#itemCheat_invList").append('<option value="'+i+'">'+i+':'+items[player.invItems[i].type].name+'</option>');}}});$("#itemCheat").on("click","#itemCheat_quality",function(e){if(itemCheat_quality.value=="Legendary"){$("#itemCheat_bonusType").css("background-color","white");$("#itemCheat_bonusValue").css("background-color","black")}else{$("#itemCheat_bonusType").css("background-color","gray");$("#itemCheat_bonusValue").css("background-color","gray")}});$("#itemCheat").on("click","#itemCheat_invList",function(e){if(player.invItems[itemCheat_invList.value].decay==-1){$("#itemCheat_decayable").css("background-color","gray");}else{$("#itemCheat_decayable").css("background-color","black");}itemCheat_decayable.value=player.invItems[itemCheat_invList.value].decay;itemCheat_curdurability.value=player.invItems[itemCheat_invList.value].mindur;itemCheat_maxdurability.value=player.invItems[itemCheat_invList.value].maxdur;itemCheat_quality.value="Normal";if(player.invItems[itemCheat_invList.value].props!==null&&player.invItems[itemCheat_invList.value].props!==undefined){itemCheat_bonusType.value=player.invItems[itemCheat_invList.value].props[0];itemCheat_bonusValue.value=player.invItems[itemCheat_invList.value].props[1]}else{itemCheat_bonusType.selectedIndex=-1;itemCheat_bonusValue.value=0}if(player.invItems[itemCheat_invList.value].quality!=""){itemCheat_quality.value=player.invItems[itemCheat_invList.value].quality;if(itemCheat_quality.value=="Legendary"){$("#itemCheat_bonusType").css("background-color","white");$("#itemCheat_bonusValue").css("background-color","black")}else{$("#itemCheat_bonusType").css("background-color","gray");$("#itemCheat_bonusValue").css("background-color","gray")}}else{itemCheat_bonusType.selectedIndex=-1;$("#itemCheat_bonusType").css("background-color","gray");itemCheat_bonusValue.value="0";$("#itemCheat_bonusValue").css("background-color","gray");}});$("#itemCheat").on("click","#itemCheat_update",function(e){if(itemCheat_invList.selectedIndex==-1){ui.message("debug","bad",["TargetItem not selected!"]);}else{if($("#itemCheat_decayable").css("background-color")=="rgb(0, 0, 0)"){player.invItems[itemCheat_invList.value].decay=itemCheat_decayable.value}player.invItems[itemCheat_invList.value].mindur=parseInt(itemCheat_curdurability.value);player.invItems[itemCheat_invList.value].maxdur=parseInt(itemCheat_maxdurability.value);if(itemCheat_quality.value=="Normal"){player.invItems[itemCheat_invList.value].quality=""}else{player.invItems[itemCheat_invList.value].quality=itemCheat_quality.value}if($("#itemCheat_bonusValue").css("background-color")!="rgb(128, 128, 128)"){player.invItems[itemCheat_invList.value].props=[itemCheat_bonusType.value,parseInt(itemCheat_bonusValue.value)]}ui.message("debug","",[itemCheat_invList.value+":"+items[player.invItems[itemCheat_invList.value].type].name+" edited."]);}});}else{var delTargetElement=document.getElementById("itemCheat");delTargetElement.parentNode.removeChild(delTargetElement);}

要望の検証について
+ ...
「耐久値や使用期限が…減る/減らない」(食料だけ、武器・防具だけ、と種類別で指定できるのも良いかと)
◆状況: 減る/減らないの処理は[taintFree]ボタンにて適用済、※アイテムの種類ごとの指定は手間がかかるので取下げ
[アイテムの種類の判別方法(例)]
 武器: if(items.[obj.type].damageType != undefined){ 武器用の処理 }
 防具: if(items.[obj.type].equip != undefined && items.[obj.type].equip != "held"){ 防具用の処理 }
 食料: if(items.[obj.type].use != undefined){if(items.[obj.type].use[0] == "eat"){ 食料用の処理 }

「アイテムを入手した際における耐久値(m/n)は…ゲーム仕様に戻す/常にm=nの新品状態で入手」
◆状況: 未着手
itemGet()の先頭にitem.mindur=items[item].maxdur;を追加する、craftItemのランダム処理を潰す
 itemGet=eval("("+itemGet.toString().replace(";placeItem",";item.mindur=items[item.type].maxdur; placeItem")+")");
 (未完成っぽい、上記だとCraft時に耐久減ったものができるので追加のコードが必要)
 地面から拾った時に耐久が1減る(耐久の増減の④と⑤)処理については未調査

「自キャラ正面のパネルで燃えている火を…ゲーム仕様に戻す/何も燃やさず直ちに消す/そこに可燃物(地形、アイテム)がある場合は一瞬で燃やしつくして直ちに消火」
◆状況: 未着手
(スイッチで機能を選択して「消火」ボタンを押下、隣接するパネルへ延焼せずに消火)
→何も燃やさず直ちに消すのは、player.actions.startFire()辺りにchangeTile(type:"ash",以下未調査)を仕込めばできそう
可燃物の消滅は上記に加えてdropAllExcendと同じ処理をtileItemsに対して回せばできそう

「「ペミカン」を製作する素材として「内臓」を…使用する/使用しない」(「マジカルエッセンス」製作用に「内臓」をインベントリに残して置きたい場合)
→これは、内臓のグループを解除すればいいのかな、多分肥料の材料にもしたくないと思うので
◆状況: [offalMeat]で実装予定
消す場合: delete items.offal.grouping;
戻す場合: items.offal.grouping=["compost","meat"];

「徒歩による移動速度は地形の影響を…受ける/受けない」(進入不可なタイルは除く)
→これはrender()の中身を把握した上で、移動ウェイトの直前に[player.x+player.direction.x][player.y+player.direction.y]の位置のタイルを判定してdelayを増減するものを差し込む形になるのかな、すぐには見当つかないです・・・
◆状況: 未着手、というか実装できる気がしないです

「プレイヤーの近くにいる鶏が各ターンに確率で卵を産む(鶏の数が多いと卵を産まなくなる)」
→次のコードを保存し、先頭の数値を書き換えてから読み込んでみてください
//=== ここから ===
var posRange = 10; //自分と指定したマス以上離れていれば生成を行わない
var firechance = 40; //ファイアエレメントが炎を撒き散らす確率、低いほど確率が上がる、0を指定すると100%落ちる
var swampchance = 40; //ボグリングが足元を沼にする確率、同上
var trapchance = 200; //ホブゴブリンがくくり罠を設置する確率、同上
var eggchance = 2000; //ニワトリがタマゴを落とす確率、同上
var featherchance = 400; //ハーピーが羽を落とす確率、同上
var rangequalify = " && game.monsters[monster].x > player.x-posRange && game.monsters[monster].x < player.x+posRange && game.monsters[monster].y > player.y - posRange && game.monsters[monster].y < player.y + posRange";
monsterMove=eval("("+monsterMove.toString().replace("(Math.floor(Math.random() * 40 + 1) === 1)","(Math.floor(Math.random() * "+firechance+" + 1)===1"+rangequalify+")").replace("(Math.floor(Math.random() * 40 + 1) === 1)","(Math.floor(Math.random() * "+swampchance+" + 1)===1"+rangequalify+")").replace("(Math.floor(Math.random() * 2000 + 1) === 1)","(Math.floor(Math.random() * "+eggchance+" + 1)===1"+rangequalify+")").replace("(Math.floor(Math.random() * 200 + 1) === 1)","(Math.floor(Math.random() * "+trapchance+" + 1)===1"+rangequalify+")").replace("(Math.floor(Math.random() * 400 + 1) === 1)","(Math.floor(Math.random() * "+featherchance+" + 1)===1"+rangequalify+")")+")");
delete posRange;delete firechance; delete swampchance; delete trapchance;delete eggchance;delete featherchance;delete rangequalify;
//=== ここまで ===

なお、上記ではposRangeで設定した距離以上離れている全てのモンスターのドロップ判定がキャンセルされますので、ニワトリのタマゴの確率だけを操作したいのであれば次のコードを
//=== ここから ===
var posRange = 10; //自分と指定したマス以上離れていれば生成を行わない
var eggchance = 2000; ////ニワトリがタマゴを落とす確率、低いほど確率が上がる、0を指定すると100%落ちる
var rangequalify = " && game.monsters[monster].x > player.x-posRange && game.monsters[monster].x < player.x+posRange && game.monsters[monster].y > player.y - posRange && game.monsters[monster].y < player.y + posRange";
monsterMove=eval("("+monsterMove.toString().replace("(Math.floor(Math.random() * 2000 + 1) === 1)","(Math.floor(Math.random() * "+eggchance +" + 1)===1"+rangequalify+")")+")");
delete posRange;delete eggchance;delete rangequalify;

//=== ここまで ===

技術情報
+ ...
◇内部処理の書き換えについて
 ①元処理の取得方法 
  ●タイプA(普通の関数) : var basefunc = passTurn.toString();
  ●タイプB(イベントドリブン) : var basefunc = $._data(<$obj>.get(0), "events")[<action>][0].handler.toString();
 ②処理の書き換え
  basefunc.toString().replace("置換前","置換後");
 ③処理の書き戻し
  ●タイプA : passTurn = eval("("+basefunc+")");
  ●タイプB : <$obj>.unbind(<action>).bind(<action>,eval("("+basefunc+")");

a) 私が使用している「普通の関数」の書き換え方法は、上記①②③が全部セットになって1行で動作します
例)
passTurn = eval("("+passTurn.toString().replace("置換前","置換後")+")");
b) タイプB「イベントドリブン」は、「マウスが押された時」「キーが押された時」「ページが更新された時」などの処理です
私がキーバインド割り込みと呼んでいるものはこちら側の処理です
ui.$document.unbind("keyup").bind("keyup",eval("("+[元処理参照].replace("置換前","置換後")+")")と
記述すると、unbind完了後(元処理削除後)に元処理参照が行われて空の関数が返ってきてしまうので、変数を使います
良い例:先に変数basefuncに元処理を格納
①と②var basefunc = $._data(ui.$document.get(0), "events")["keyup"][0].handler.toString().replace("置換前","置換後");
③ui.$document.unbind("keyup").bind("keyup",eval("("+basefunc+")"));
悪い例:unbindの後に処理内容を参照している
ui.$document.unbind("keyup").bind("keyup",eval("("+$._data(ui.$document.get(0), "events")
["keyup"][0].handler.toString().replace("置換前","置換後")+")");
この場合、$._data(以下略)["keyup"][0].handler.toString() はunbind()後なので空の関数が返ってきてしまいます

◇スイッチ化について(いろいろボタンの構成)
basefunc.indexOf()を使用しています、basefuncの取り方は上に記載したとおりです
if(basefunc.indexOf("識別文字")==-1){ 置換処理 } else { 戻す処理 }
①ボタンの追加処理
 $(<#obj>).append('<button id = "ボタン名">表示文字</button>');
②既に書換が済んでしているかどうか判定(書き換えられているなら背景を指定した色に)
 if(basefunc.indexOf("識別文字")!=-1){ $("#ボタン名").css("background-color","色指定"); }
③ボタンの押下処理
 $(<#obj>).on("click","#ボタン名",function(e){
  if(basefunc.indexOf("識別文字")==-1){ 置換処理; 色変更処理(ON); } else { 戻す処理; 色変更処理(OFF) }
 }); ←jQueryは関数の閉じカッコに気を付けましょう、functionの終わり"}"とonの終わり");"

◇複数箇所の置換と復帰について
 replace()関数は、最初に見つかったものだけを置き換えます
 "abcdabcd".replace("abcd","ABCD")の結果は "ABCDabcd"になります
 "ABCDABCD"に変換したい場合は "abcdabcd".replace("abcd","ABCD").replace("abcd","ABCD")とする必要があります
 これを利用して、識別文字を割り当てることができます
  識別文字の作成方法
  ①"console.log('この部分は置換済');" 等の意味の無い処理をを後ろに付ける方法(値の書き換え等で使用、文字は適当)
  ②"if(0 === 0)", "if(0 === 1)" などで分岐を操作する方法
  などがありますが、②について、"if(0 === 0)", "if(0===0)", "if(0=== 0)", "if(0 ===0)", "if(0  === 0)"のように
  書換後の処理が同じでも半角スペースの場所を変えることによって置換したものを戻す場所を特定できます
  (可読性は犠牲になりますが)
  
補足情報(蛇足とも言う)
 ①var と delete
  var basefunc; → basefuncという変数を宣言します
  delete basefunc; → basefuncという変数を削除します
  基本的に、いらない変数は処理の最後に削除してしまう方がよいのですが、ボタン化した場合などは特に、
  むやみにdeleteするとエラーの原因になりますので気を付けましょう。ちなみにdeleteですが、値を削除しますので
  for(var itm in items){if(items[itm].decay){delete items[itm].decay}}
  このような使い方をすると、以降生成されるアイテムの使用期限(decay)が全てなくなったりします
 ②eval()について
 eval(str)は、strを関数として解釈するための命令ですが、前後にカッコを付ける必要があります
 悪い例
 eval("function(void){ a = 1; }");
 良い例
 eval("(" + "function(void){ a = 1; }" + ")");

さいごに
名前付けの規則だったりスペースを入れる場所だったり、本職の方から見たら許せないような箇所も
たくさん見受けられるかと思いますが、私はプログラマでもなんでもない独学でやっているだけの
素人ですので、ご容赦頂ければと思います。



日本語化(野良Mod)

有志による日本語化対応

※最新版は MOD(日本語化) へ。

旧版は編集の邪魔になるので削除。



匿名Mod

ミニModを不定期に追加していきます

※一部のコードはコメントアウトしてますが、これはModPackとしてまとめて使用しても癖の少ない変更点で抑えるために行っているためです。
 有効にしたいときは、コメント文「//」を削除してください。
+ ...
//--------------------------------------------------
//匿名ModPack ver0.03

//--------------------------------------------------
//匿名Mod 導入必須 ver0.03

//当MOD導入に必要(関数変更関数を関数インスタンスから実行できる関数を関数で登録する無名関数(MODのコメントにPatchFixのPFがあればこれが前提に必要となる)
(function(){Function.prototype.funcreplace=function(){var s=this.toString().substring(this.toString().indexOf("{")+2,this.toString().lastIndexOf("}")-1);for(var i=0;i<arguments.length-1;i+=2)s=s.replace(arguments[i],arguments[i+1]);return s;}})()

//当MOD導入に必要(関数を1つ追加 MODのコメントにStyleSheetのSSがあればこれが前提に必要となる)
styleSheet=function(){for(var i=0;i<arguments.length;i++)document.styleSheets[0].insertRule(arguments[i], document.styleSheets[0].cssRules.length)};

//-------------------------

//匿名Mod 修正版 ver0.03

//バッグを開いてる時にアイテムを右クリックするとバッグへ入るように修正する(PF 通常は地上に落とす)
dropItem=new Function('itemId','location','dropAll',dropItem.funcreplace('    var fireDrop = false;','    if(game.containerOpened.containerType===\'INV\'){location=\'INV\';};var fireDrop = false;'));

//箱とバッグからアイテムを取り出せなくなるバグを修正する(PF)
moveToInventoryFromContainer=new Function('invId','moveAllItems',moveToInventoryFromContainer.funcreplace('var cont = envItems[containerId].container;','var cont = null;','    var item = cont[invId];','    if(cont==null)cont = envItems[containerId].container;var item = cont[invId];'));

// 連続してクラフトすると移動できなくなる時間ができるバグを修正する(PF)
craftItem=new Function('craftType',craftItem.funcreplace('        game.delay += 10;','        game.delay = 10;'));

// 入れ物ウィンドウが開いてる場合で、箱の中身が入っていない時に箱を掘り出すと入れ物ウィンドウが閉じないバグを修正する(PF)
game.isValidPickUp=new Function('envItemId',game.isValidPickUp.funcreplace('        return true;','        if(game.containerOpened.containerType==="ENV"&&envItems[envItemId].container&&envItems[envItemId].container.length==0)closeContainer();return true;'));

//「全て今開いている入れ物に入れる」にて道具が入りきれなくなったら処理を中断させるように修正(PF)
dropItem=new Function('itemId','location','dropAll',dropItem.funcreplace('                    finishItemDrop(playerItem, location, containerId);','                    if(!finishItemDrop(playerItem, location, containerId))break;'));

//箱とバッグ内部に溜まる不要な情報を削除する(削除するのはnullだけなので恐らく安全 動作速度を若干向上しながらセーブデータ容量を少し減らす)
closeContainer=new Function(closeContainer.funcreplace('    game.containerOpened.containerType = "";','    if(game.containerOpened.id>=0&&game.containerOpened.containerType){var f=game.containerOpened.containerType==="ENV"?envItems[game.containerOpened.id]:player.invItems[game.containerOpened.id];if(f&&f.container&&f.container.length>0){f=f.container;var r=f.length;for(var i=0;i<r;i++){if(f[i]==null){f.splice(i--,1);r--;}}}};game.containerOpened.containerType = "";'));

// アイテムのコンディションが赤に表示している場合、修理すると元のコンディションに戻るように修正(PF 補強すると変化するでは効果はありません、そもそも対応させるのが面倒なので…)
player.actions.repair=new Function('invId','invClass','containerId','bypassId',player.actions.repair.funcreplace('                        item.mindur = item.maxdur;','                        item.mindur=item.maxdur;if(item.mindur>2){if(containerId){ui.$container.find(\'.item[data-itemid=\"\'+bypassId+\'\"]\').removeClass(\'damaged\');}else{ui.$inventoryEquip.find(\'.item[data-itemid=\"\'+bypassId+\'\"]\').removeClass(\'damaged\');}};'));

//設置した箱のアイテムは一切腐らなくなる(PF 大量にアイテムを保管してるワールド(容量が数MB以上)で20歩毎に発生する負荷を軽減する)
// environmentalDecay=new Function('envId',environmentalDecay.funcreplace('decayItemsInContainer(envId, envItems[envId].container, \"ENV\");',''));

//地上に置いたバッグのアイテムは一切腐らなくなる(PF 地上にバッグを置く人向けに負荷を軽減する)
// passTurn=new Function('move',passTurn.funcreplace('                    decayItemsInContainer(tileItemsKey[i2], tileItems[tileItemsKey[i2]].container, \"TILE\");',''));

// スキル・実績のウィンドウが開いてる時に行動すると負荷が上がるのを抑える(PF HTML情報に変化がなければ更新しない、ブラウザによってはこの問題を解決してる事があるためその場合は効果がない)
player.skillGain=new Function('skillType','mod','bypass',player.skillGain.funcreplace('            ui.$skills.html(skillOutput);','            if(skillOutput!=ui.$skills[0].innerHTML)ui.$skills.html(skillOutput);'));
addMilestone=new Function('milestone',addMilestone.funcreplace('        ui.$milestones.html(milestonesOutput);','        if(milestonesOutput!=ui.$milestones[0].innerHTML)ui.$milestones.html(milestonesOutput);'));

//ミニマップを無効にする(PF 移動時の負荷を軽減する)
// $('#miniMapCanvas').remove();updateMiniMap=false;statbar=[];passTurn=new Function('move',passTurn.funcreplace('        game.updateMiniMap = true;',''));

//-------------------------

//匿名Mod ゲームUI版 ver0.03

//ウィンドウの表示枠を大きくする(SS 表示の無駄をかなり減らす事ができる)
// styleSheet(".ui-dialog .ui-dialog-content{width:auto !important;padding:0px !important;}",".ui-dialog {height:auto !important;}",".ui-dialog .ui-dialog-titlebar,.ui-dialog .ui-dialog-buttonpane,.ui-dialog-buttonset .ui-button,.ui-button .ui-button-text,.filter{padding:0px !important;margin:0px !important;}","#inventory li,#craft div,#equipment .equip, #container li{margin:0px !important;}",".fontstyle, .fontstyle button{line-height:12px !important;}");

//閉じるボタンを縮小する(SS 「ウィンドウの表示枠を大きくする」と組み合わせる事を推奨)
// styleSheet(".ui-dialog .ui-dialog-titlebar-close{margin: 0px !important;top: auto !important;right: 0px !important;padding: 5px 8px !important;background:none !important;width: auto !important;height: auto !important;}");

// ウィンドウの背景をより薄くする(SS アイテムも透明化になると不便なのでこちらは色を付ける)
// styleSheet(".ui-dialog .ui-dialog-content{background: none !important;}",".ui-dialog:not([aria-describedby=equipmentwindow]) .ui-dialog-content, #inventory li, #container li, #craft div:not(.crafted), .equip li, .equip:empty{background-color: rgba(4, 4, 4, 0.4) !important;}",".equip:not(:empty){background: none !important;}","#craft div.crafted:not(:hover){border-color: transparent !important;}");

//ステータスバーの色を薄く&透明度をつける(SS 個人的に色が濃すぎてちょっと目に優しくないな、と)
// styleSheet("#health{background: none repeat scroll 0% 0% rgba(100%, 0%, 10%, 0.6) !important;}","#stamina{background: none repeat scroll 0% 0% rgba(0%, 90%, 10%, 0.6) !important;}","#hunger{background: none repeat scroll 0% 0% rgba(90%, 0%, 100%, 0.6) !important;}","#thirst{background: none repeat scroll 0% 0% rgba(0%, 50%, 100%, 0.6) !important;}");

//クラフトウィンドウの制作できないアイテムを目立たせる
// styleSheet("#craft div.crafted{box-shadow: 0px 0px 10px rgba(255, 0, 29, 0.6) inset;}");

//マップを拡大しないようにする(SS マップが大きすぎる、といった場合に有効)
// styleSheet(".map, #miniMapCanvas{min-width: 114px !important;width: 114px !important;height: 114px !important;}");

//メッセージボックスを非表示にする(SS 邪魔!と思った方にお勧めです)
// styleSheet("#messageoverlay{display:none !important;}");

//メッセージボックスを左から右に移動する(SS)
// styleSheet("#messageoverlay{left: auto !important;right: 0px;}");

//メッセージウィンドウの背景を透明にする(SS メッセージクリアボタンも削除)
// styleSheet("#messageswindow,[aria-describedby=messageswindow] .ui-dialog-titlebar,[aria-describedby=messageswindow] .ui-dialog-buttonpane{background:none !important;}","[aria-describedby=messageswindow] .ui-dialog-buttonset{display:none !important;}");

//--------------------------------------------------



  • アイテムの枠の色を適正化
補強と変化でアイテムの状態が変わったときに枠の色を適切にする。
※匿名Mod(Pack ver0.03)の導入が必須です。匿名Modの更新次第でこのスクリプトは必要なくなるまたは使えなくなる可能性があります。
対応バージョン : DL版 Beta 1.9.2(Windows)

+ ...
//匿名Modの「player.actions.repair=new Function~」の部分の次の行に挿入して使ってください。
//補強
player.actions.reinforce=new Function('invId','invClass','containerId','bypassId',player.actions.reinforce.funcreplace('ui.message("reinforce", \'normal\');','if(item.mindur>2){ui.$inventoryEquip.find(\'.item[data-itemid="\'+bypassId+\'"]\').removeClass(\'damaged\');}ui.message("reinforce",\'normal\');'));
//変化
player.actions.transmogrify=new Function('invId','invClass','containerId','bypassId',player.actions.transmogrify.funcreplace('item.quality = "Legendary";','var old_quality=item.quality;item.quality="Legendary";ui.$inventoryEquip.find(\'.item[data-itemid="\'+bypassId+\'"]\').removeClass(old_quality.toLowerCase()).addClass(item.quality.toLowerCase());','item.mindur = legendary.maxDur;','item.mindur=legendary.maxDur;if(item.mindur>2){ui.$inventoryEquip.find(\'.item[data-itemid="\'+bypassId+\'"]\').removeClass(\'damaged\');}'));


//ここからはDL版で匿名Modを導入しても修理で枠の色が戻らない場合
//「player.actions.repair=new Function~」の一行を下記のものと入れ替えてください。
//player.actions.repair=new Function('invId','invClass','containerId','bypassId',player.actions.repair.funcreplace('item.mindur = item.maxdur;','item.mindur=item.maxdur;if(item.mindur>2){ui.$inventoryEquip.find(\'.item[data-itemid="\'+bypassId+\'"]\').removeClass(\'damaged\');}'));




Enjoy Life

独自のゲーム性を目指して途中まで制作していたModです
このプログラムはコピー・改造して構いませんので、Mod制作にご活用ください
特徴:アイテム・モンスターの一部に独自の画像を使用、レシピを変更、固定のマップ、
   モンスターの動きを変更、細かい時間管理、マイルストーン変更、雨が降るなど
操作:Actionsメニューから寝具なしで眠れます。Rキーで休憩できます
ダウンロード
対応バージョン:Beta 1.9.2


β2.9.6-steam

+ とりあえず編集時判明部分のみ
とりあえず編集時判明部分のみ
ゲーム中にF10を押して最上部の[Console]を選択、最下部>のボックスに入力すると適用されます
体力・スタミナ・満腹度・喉の渇き
<最大値まで回復します>
localPlayer.stat.stats.Health.value=localPlayer.stat.stats.Health.max;
localPlayer.stat.stats.Stamina.value=localPlayer.stat.stats.Stamina.max;
localPlayer.stat.stats.Hunger.value=localPlayer.stat.stats.Hunger.max;
localPlayer.stat.stats.Thirst.value=localPlayer.stat.stats.Thirst.max;

最大スタミナ・満腹度・喉の渇き
<最大値を指定した値に再設定します、体力は別管理のようです>
localPlayer.stat.stats.Stamina.max=32000;
localPlayer.stat.stats.Hunger.max=500;
localPlayer.stat.stats.Thirst.max=500;

善行ポイント・悪行ポイント倍率
<行動による評判値の変動倍率を変更します、累積評判値が下がると強い敵が発生しやすくなります>
localPlayer.gameOptionsCached.reputation.malignityMultiplier=-1;
localPlayer.gameOptionsCached.reputation.benignityMultiplier=10;

最大所持重量
<重量制限を指定した値に再設定します、力が上がって再計算されると元に戻るのでその都度入力が必要です>
localPlayer.stat.stats.Weight.max=90000;

所持品の一括修理
<所持品の耐久度をMAXまで回復します>
for(i=0;i<=localPlayer.inventory.containedItems.length-1;i++){localPlayer.inventory.containedItems[i].minDur=localPlayer.inventory.containedItems[i].maxDur}

所持品の重量ゼロ
<カバンの内容物や設置された収納箱の中身には影響しません、weightMultiplierの値をマイナスにすると更にたくさん持つこともできます、この変更値はセーブされません>
var weightMultiplier=0;
for(i=0;i<=localPlayer.inventory.containedItems.length-1;i++){ localPlayer.inventory.containedItems[i].weight=weightMultiplier}

所持品の腐敗までの時間延長
<カバンの内容物や設置された収納箱の中身には影響しません>
for(i=0;i<=localPlayer.inventory.containedItems.length-1;i++){if(localPlayer.inventory.containedItems[i].decay)localPlayer.inventory.containedItems[i].decay=999999}}
※所持品以外には適用されませんが木の棒を装備して着火するとDecayの値が設定されます
その状態でこのコマンドを実行して装備品の着火した木の棒を右クリックしてBuildを選び
地面に立てると半永久の火源になり常に調理ができます、セーブ&ロードしても保持されます
また、このたいまつの斜めに金床を設置することで同じく常に利用できるようになります

上記修理・重量・腐敗時間統合
for(i=0;i<=localPlayer.inventory.containedItems.length-1;i++){localPlayer.inventory.containedItems[i].minDur=localPlayer.inventory.containedItems[i].maxDur;if(localPlayer.inventory.containedItems[i].decay){localPlayer.inventory.containedItems[i].decay=999999}localPlayer.inventory.containedItems[i].weight=0}

宝の地図を自分の足元に設定する、使用済みの場合は未使用に戻す
for(i=0;i<=localPlayer.inventory.containedItems.length-1;i++){if(localPlayer.inventory.containedItems[i].type==121){localPlayer.inventory.containedItems[i].tatteredMap.x=localPlayer.x;localPlayer.inventory.containedItems[i].tatteredMap.y=localPlayer.y;if(typeof localPlayer.inventory.containedItems[i].used==="undefined"){}else{delete localPlayer.inventory.containedItems[i].used}}}

新しく生成されるアイテムの重量を0.1に固定する
<地下の岩を掘ったら適用されていなかったり、詳細検証中>
for(i=0;i<=511;i++){itemManager.cachedWeights[i] ={static:0,max:0,min:0}}

所持している箱の容量拡張
<インベントリ内にある収納アイテム8種に容量増加(+99999)を付与します、既に設置されている収納箱には影響しません>
<カバン・リュック・矢筒の比較を=から==に修正>
for(i=0;i<=localPlayer.inventory.containedItems.length-1;i++){if(localPlayer.inventory.containedItems[i].type==132||localPlayer.inventory.containedItems[i].type==280||localPlayer.inventory.containedItems[i].type==281||localPlayer.inventory.containedItems[i].type==288||localPlayer.inventory.containedItems[i].type==381||localPlayer.inventory.containedItems[i].type==88||localPlayer.inventory.containedItems[i].type==126||localPlayer.inventory.containedItems[i].type==224){localPlayer.inventory.containedItems[i].quality=4;localPlayer.inventory.containedItems[i].legendary = {type:3, value:99999}}}

プレイヤーの位置
<pos()で現在の位置を取得、tp(x,y,z)で指定座標へ移動、z=1で地上、z=0で地下、zは省略可能>
<mons()で敵の右隣に移動、左に移動すると先制攻撃、カッコ内に数値を入れると指定した数の敵をスキップ>
<拠点の近くにヤギなどを繋いで敵を倒していくとmons()を呼び出すと拠点に戻れるようになる、次の敵はmons(1)で探せる>
function pos(){if(localPlayer.z==1){console.log("地上:"+localPlayer.x+","+localPlayer.y+")")}else{console.log("地下:"+localPlayer.x+","+localPlayer.y+")")}};function tp(x,y,z=-1){localPlayer.x=x;localPlayer.y=y;if(z==0||z==1){localPlayer.z=z}}function mons(skip=0){for(i=0;i<=island.creatures.length-1;i++){if(island.creatures[i]!==undefined){if(skip<=0){localPlayer.x=island.creatures[i].x+1;localPlayer.y=island.creatures[i].y;localPlayer.z=island.creatures[i].z;console.log("ID="+i+":"+island.creatures[i].type);skip=-99;break}else{skip--}}}if(skip!=-99){console.log("全てのモンスターを撃破済です")}}

+ steam2.9.6用スイッチ
steam2.9.6用スイッチ(仮)

//本体部分(v0.1)
typeof userDiv!="undefined"&&document.body.removeChild(userDiv);userDiv=document.createElement("mod_switch");userDiv.innerHTML="<div class='sw_move' style='position:absolute;padding:2px;font-size:10px;font-color:white;border:1px solid;top:50px;left:100px;width:300px;background-color:gray;z-index:999' id='txt'>steam2.9.6用スイッチ(仮)<br /><input type=button style='background-color:red;color:white;padding:1px' id='btn1' value='HP' onClick='sw.healHP()'>&nbsp;<input type=button style='background-color:lime;color:white;padding:1px' id='btn2' value='ST' onClick='sw.healST()'>&nbsp;<input type=button style='background-color:purple;color:white;padding:1px' id='btn3' value='空腹' onClick='sw.healHunger()'>&nbsp;<input type=button style='background-color:cyan;color:black;padding:1px' id='btn4' value='水分' onClick='sw.healThirst()'>&nbsp;<input type=button style='background-color:yellow;color:black;padding:1px' id='btn5' value='BAD' onClick='sw.healBAD()'>&nbsp;<input type=button style='background-color:black;color:white;padding:1px' id='btn6' value='全て' onClick='sw.healALL()'>|<input type=button style='background-color:black;color:white;padding:1px' id='btn7' value='自動回復(継続)' onClick='sw.toggleHeal()'><br /><input type=button style='background-color:black;color:white;padding:1px;margin-top:1px' id='btn20' value='箱容量+' onClick='sw.box()'>&nbsp;<input type=button style='background-color:black;color:white;padding:1px;margin-top:1px' id='btn20' value='所持重量0' onClick='sw.weight0()'>&nbsp;<input type=button style='background-color:black;color:white;padding:1px;margin-top:1px' id='btn21' value='重量0(継続)' onClick='sw.toggleWeight0()'>&nbsp;<span id='span21'>&nbsp;&nbsp;<\/span><hr /><input type=button style='background-color:black;color:white;padding:1px;margin-top:1px' id='btn10' value='次の設置物' onClick='sw.doods()'>&nbsp;<select id='selDoodQuality' style='background-color:black;color:white' onClick='sw.doodCount()'><option value=1>品質指定無<\/option><option value=0>Normal<\/option><option value=2>Remarkable<\/option><option value=3>Exceptional<\/option><option value=4>Legendary<\/option><\/select>&nbsp;スキップ数&nbsp;<input type=button style='background-color:black;color:white;padding:1px;width:10px' id='btn11' value='-' onClick='sw.doodminus()'>&nbsp;<span id='doodskip'>0<\/span>&nbsp;<input type=button style='background-color:black;color:white;padding:1px;width:10px' id='btn12' value='+' onClick='sw.doodplus()'>&nbsp;<input type=button style='background-color:black;color:white;padding:1px;width:10px' id='btn13' value='0'  onClick='sw.doodreset()'>&nbsp;<span id='doodCount'>計0個<\/span><br /><input type=button style='background-color:black;color:white;padding:1px;margin-top:1px' id='btn30' value='NPCへ移動' onClick='sw.moveNPC()'>&nbsp;<select id='selNPC' style='color:white;background-color:black'><\/select>&nbsp;<input type=button style='background-color:black;color:white;padding:1px;margin-top:1px' id='btn31' value='再取得' onClick='sw.getNPC()'><hr /><span id='uLog'><\/span>";document.body.appendChild(userDiv);sw={};sw.log=function(n){$("#uLog").text(n)};sw.healHP=function(n=false){localPlayer.stat.stats.Health.value=localPlayer.stat.stats.Health.max;n==!1&&sw.log("HPを回復しました")};sw.healST=function(n=false){localPlayer.stat.stats.Stamina.value=localPlayer.stat.stats.Stamina.max;n==!1&&sw.log("スタミナを回復しました")};sw.healHunger=function(n=false){localPlayer.stat.stats.Hunger.value=localPlayer.stat.stats.Hunger.max;n==!1&&sw.log("満腹になりました")};sw.healThirst=function(n=false){localPlayer.stat.stats.Thirst.value=localPlayer.stat.stats.Thirst.max;n==!1&&sw.log("水分を補給しました")};sw.healBAD=function(n=false){localPlayer.status.Bleeding=!1;localPlayer.status.Poisoned=!1;localPlayer.status.Burned=!1;n==!1&&sw.log("出血・毒・火傷を治療しました")};sw.healALL=function(n=false){sw.healHP(!0);sw.healST(!0);sw.healHunger(!0);sw.healThirst(!0);sw.healBAD(!0);n==!1&&sw.log("完全回復しました")};sw.toggleHeal=function(){$("#btn7").css("color")!="rgb(255, 0, 0)"?($("#btn7").css("color","red"),clearInterval(sw.cure),sw.cure=setInterval(function(){sw.healALL(!0)},2e3),sw.log("自動回復(2秒毎)が有効になりました")):($("#btn7").css("color","white"),clearInterval(sw.cure),sw.log("自動回復が無効になりました"))};sw.w0=0;sw.toggleWeight0=function(){$("#btn21").css("color")!="rgb(255, 0, 0)"?($("#btn21").css("color","red"),clearInterval(sw.w0),sw.w0=setInterval(function(){sw.weight0(!0)},2e3),sw.log("自動重量0/耐久回復が有効になりました")):($("#btn21").css("color","white"),clearInterval(sw.w0),$("#span21").css("background-color","gray"),sw.log("自動重量0/耐久回復が無効になりました"))};sw.box=function(){for(cnt=0,i=0;i<=localPlayer.inventory.containedItems.length-1;i++)(localPlayer.inventory.containedItems[i].type==132||localPlayer.inventory.containedItems[i].type==280||localPlayer.inventory.containedItems[i].type==281||localPlayer.inventory.containedItems[i].type==288||localPlayer.inventory.containedItems[i].type==381||localPlayer.inventory.containedItems[i].type==88||localPlayer.inventory.containedItems[i].type==126||localPlayer.inventory.containedItems[i].type==224)&&(localPlayer.inventory.containedItems[i].quality=4,localPlayer.inventory.containedItems[i].legendary={type:3,value:99999},cnt++);cnt>0?sw.log("所持している収納アイテム"+cnt+"個に容量増加を付与しました"):sw.log("収納アイテムを所持していません")};sw.map=function(n=false){if(n==!0)for(i=0;i<=localPlayer.inventory.containedItems.length-1;i++)localPlayer.inventory.containedItems[i].type==121&&typeof localPlayer.inventory.containedItems[i].used!="undefined"&&delete localPlayer.inventory.containedItems[i].used;for(i=0;i<=localPlayer.inventory.containedItems.length-1;i++)if(localPlayer.inventory.containedItems[i].type==121&&typeof localPlayer.inventory.containedItems[i].used=="undefined"){localPlayer.inventory.containedItems[i].tatteredMap.x=localPlayer.x;localPlayer.inventory.containedItems[i].tatteredMap.y=localPlayer.y;localPlayer.inventory.containedItems[i].tatteredMap.z=localPlayer.z;console.log("Map:"+i+" location="+localPlayer.inventory.containedItems[i].tatteredMap.x+","+localPlayer.inventory.containedItems[i].tatteredMap.y);break}sw.log("地図ID:"+i+"を足元に設定しました")};sw.pos=function(){localPlayer.z==1?console.log("[1]地上:("+localPlayer.x+","+localPlayer.y+")"):console.log("[0]地下:("+localPlayer.x+","+localPlayer.y+")")};sw.tp=function(n,t,i=-1,r=0){r!=0?(localPlayer.x+=n,localPlayer.y+=t):(localPlayer.x=n,localPlayer.y=t);(i==0||i==1)&&(localPlayer.z=i)};sw.defaultWeight=function(){for(i=0;i<=511;i++)itemManager.cachedWeights[i]={static:0,max:0,min:0}};sw.defaultWeight();sw.mons=function(n=0){for(i=0;i<=island.creatures.length-1;i++)if(island.creatures[i]!==undefined)if(n<=0){localPlayer.x=island.creatures[i].x+1;localPlayer.y=island.creatures[i].y;localPlayer.z=island.creatures[i].z;sw.log("ID="+i+":"+island.creatures[i].type+"["+sw.monsStr(island.creatures[i].type)+"の右横へ移動しました]");n=-99;break}else n--;n!=-99&&sw.log("全てのモンスターを撃破済です")};sw.monsStr=function(n){return sw.monsList[n]==undefined?"==unknown==":sw.monsList[n]};sw.tileev=function(n=0){for(tileev_found=!1,i=0;i<=island.tileEvents.length-1;i++)if(typeof island.tileEvents[i]!="undefined")if(n<=0){sw.tp(island.tileEvents[i].x+1,island.tileEvents[i].y,island.tileEvents[i].z);sw.log("ID="+i+":へジャンプしました");tileev_found=!0;break}else n--;tileev_found||sw.log("見つかりませんでした")};sw.weight0=function(n=false){for(i=0;i<=localPlayer.inventory.containedItems.length-1;i++)localPlayer.inventory.containedItems[i].maxDur<=999&&(localPlayer.inventory.containedItems[i].maxDur=localPlayer.inventory.containedItems[i].type==15||localPlayer.inventory.containedItems[i].type==315||localPlayer.inventory.containedItems[i].type==490||localPlayer.inventory.containedItems[i].type==152||localPlayer.inventory.containedItems[i].type==446||localPlayer.inventory.containedItems[i].type==447?10:999),localPlayer.inventory.containedItems[i].minDur=localPlayer.inventory.containedItems[i].maxDur,localPlayer.inventory.containedItems[i].decay&&(localPlayer.inventory.containedItems[i].decay=9999999),localPlayer.inventory.containedItems[i].weight=0;sw.blinkColor("span21");n==!1&&sw.log("鞄外の所持品重量を0に設定し、耐久を全快しました")};sw.getNPC=function(){for($("#selNPC>option").remove(),i=0;i<=island.npcs.length-1;i++)typeof island.npcs[i]!==undefined&&$("#selNPC").append($("<option>").html(island.npcs[i].renamed).val(i))};sw.getNPC();sw.moveNPC=function(){sw.tp(island.npcs[$("#selNPC").val()].x+1,island.npcs[$("#selNPC").val()].y,island.npcs[$("#selNPC").val()].z);sw.log($("#selNPC > option:selected").html()+"の右横へ移動しました")};sw.doodplus=function(){$("#doodskip").text(parseInt($("#doodskip").text())+1)};sw.doodminus=function(){$("#doodskip").text()>0&&$("#doodskip").text(parseInt($("#doodskip").text())-1)};sw.doodreset=function(){$("#doodskip").text("0")};sw.doodCount=function(n=1){for(cnt=0,n=$("#selDoodQuality").val(),i=0;i<=island.doodads.length-1;i++)island.doodads[i]!==undefined&&(n!=1?island.doodads[i].quality==n&&cnt++:cnt++);$("#doodCount").text("計"+cnt+"個")};sw.doodCount();sw.doods=function(n=-1,t=0){for(n=$("#selDoodQuality").val(),t=parseInt($("#doodskip").text()),tiledood_found=!1,i=0;i<=island.doodads.length-1;i++)if(typeof island.doodads[i]!="undefined"&&island.doodads[i].ownerIdentifier===undefined)if(n!=1){if(island.doodads[i].quality==n)if(t<=0){sw.tp(island.doodads[i].x+1,island.doodads[i].y,island.doodads[i].z);sw.log("ID="+i+":"+island.doodads[i].type+"["+sw.doodStr(island.doodads[i].type)+"]へジャンプしました");tiledood_found=!0;break}else t--}else if(t<=0){sw.tp(island.doodads[i].x+1,island.doodads[i].y,island.doodads[i].z);sw.log("ID="+i+":"+island.doodads[i].type+"["+sw.doodStr(island.doodads[i].type)+"]へジャンプしました");tiledood_found=!0;break}else t--;sw.doodCount();tiledood_found||sw.log("見つかりませんでした")};sw.doodStr=function(n){return sw.doodList[n]==undefined?"==unknown==":sw.doodList[n]};sw.doodList={0:"木の扉",1:"木の柵",2:"木の壁",3:"陶器の壁",4:"砂岩の壁",5:"石の壁",6:"爆発罠",7:"落とし罠",8:"くくり罠",9:"魔物のくくり罠",10:"太陽光蒸留器",11:"木の収納箱",12:"木の収納箱(施錠)",13:"魔物の像",14:"草",15:"クレマチス",16:"アザミ",17:"マッシュルーム",18:"ベニテングダケ",19:"スイッチグラス",20:"昆布",21:"ネギ",22:"パイナップル",23:"埋まった石",24:"木苺",25:"センダン草",26:"綿花",27:"ウチワサボテン",28:"タンブルウィード",29:"石の蒸留器",30:"石の蒸留器(着火)",31:"石の焚き火セット",32:"石の焚き火セット(着火)",33:"砂岩の窯",34:"砂岩の窯(着火)",35:"石の炉",36:"石の炉(着火)",37:"木の棒(設置)",38:"木の棒(設置・着火)",39:"石の鍛冶台",40:"洞窟の入口",41:"木の扉(開)",42:"木の門",43:"木の門(開)",44:"ツタウルシ",45:"錬鉄の収納箱",46:"鉄の収納箱",47:"豪華な木の収納箱",48:"スケルトン",49:"陶器の窯",50:"陶器の窯(着火)",51:"陶器の焚き火セット",52:"陶器の焚き火セット(着火)",53:"陶器の炉",54:"陶器の炉(着火)",55:"陶器の蒸留器",56:"陶器の蒸留器(着火)",57:"砂岩の焚き火セット",58:"砂岩の焚き火セット(着火)",59:"砂岩の炉",60:"砂岩の炉(着火)",61:"砂岩の蒸留器",62:"砂岩の蒸留器(着火)",63:"石の窯",64:"石の窯(着火)",65:"錬鉄の鍛冶台",66:"鉄の鍛冶台",67:"楓の木",68:"リンゴの木",69:"トウヒの木",70:"ヒノキの木",71:"ヤシの木",72:"レタス",73:"ジャガイモ",74:"ニンジン",75:"トウモロコシ",76:"キュウリ",77:"トマト",78:"カボチャ",79:"サトウキビ",80:"小麦",81:"銅の収納箱",82:"銅の鍛冶台",83:"樹皮の松明(設置)",84:"樹皮の松明(設置・着火)",85:"獣脂の松明(設置)",86:"獣脂の松明(設置・着火)",87:"ヨシュアの木",88:"弁慶サボテン",89:"アロエ",90:"獣脂のロウソク(設置)",91:"獣脂のロウソク(設置・着火)",92:"木綿の寝具(設置)",93:"羽毛の寝具(設置)",94:"ハンモック(設置)",95:"草の寝具(設置)",96:"つなぎ柱",97:"陶器の井戸",98:"砂岩の井戸",99:"石の井戸",100:"セメントの壁",101:"トウヒの木(雪)",102:"コケモモ",103:"ウメモドキ",104:"ヒナゲシ",105:"銅の収納箱(施錠)",106:"錬鉄の収納箱(施錠)",107:"鉄の収納箱(施錠)",108:"豪華な木の収納箱(施錠)"};sw.monsList={0:"スライム",1:"スライムキューブ",2:"巨大クモ",3:"熊",4:"ウサギ",5:"ヘビ",6:"巨大ネズミ",7:"ネズミ",8:"吸血コウモリ",9:"灰色オオカミ",10:"インプ",11:"ボグリング",12:"うごく岩",13:"サメ",14:"ゾンビ",15:"スケルトン",16:"幽霊海賊",17:"高速クモ",18:"ニワトリ",19:"転移クモ",20:"炎の精霊",21:"タラ",22:"ホブゴブリン",23:"うごくキノコ",24:"巨大イカ",25:"洞窟魚",26:"ハーピー",27:"デーモン",28:"骸骨魔導士",29:"クロウワーム",30:"火竜",31:"スナネコ",32:"溶岩虫",33:"ヤギ",34:"吸血ヒル",35:"トビハゼ",36:"サソリ",37:"ガラガラヘビ",38:"カモシカウサギ",39:"キセンフエダイ",40:"ウォールアイ",41:"ウィスプ",42:"北極オオカミ",43:"北極ウサギ",44:"白熊",45:"ペンギン",46:"氷の精霊",47:"氷の魔女"};sw.colorLime="rgb(0, 255, 0)";sw.colorCyan="rgb(0, 255, 255)";sw.colorRed="rgb(255, 0, 0)";sw.blinkColor=function(n){$("#"+n).css("background-color")==sw.colorLime?$("#"+n).css("background-color",sw.colorRed):$("#"+n).css("background-color",sw.colorLime)}

//以下は上のものを読み込んだ後に追加で読み込んでください、作者の環境では一度に読み込むとエラーを吐き出します
//ウィンドウをマウスで動かせるようにする
(function(){var elements = document.getElementsByClassName("sw_move");var x,y;for(i=0;i<elements.length;i++){elements[i].addEventListener("mousedown", mdown, false);elements[i].addEventListener("touchstart", mdown, false);}function mdown(e){this.classList.add("drag");if(e.type === "mousedown"){var event=e}else{var event = e.changedTouches[0]}x=event.pageX-this.offsetLeft;y=event.pageY-this.offsetTop;document.body.addEventListener("mousemove",mmove,false);document.body.addEventListener("touchmove",mmove,false)}function mmove(e){var drag=document.getElementsByClassName("drag")[0];if(e.type === "mousemove"){var event=e}else{var event=e.changedTouches[0]}e.preventDefault();drag.style.top=event.pageY-y+"px";drag.style.left=event.pageX-x+"px";drag.addEventListener("mouseup", mup, false);document.body.addEventListener("mouseleave", mup, false);drag.addEventListener("touchend", mup, false);document.body.addEventListener("touchleave", mup, false)}function mup(e){var drag = document.getElementsByClassName("drag")[0];document.body.removeEventListener("mousemove", mmove, false);drag.removeEventListener("mouseup", mup, false);document.body.removeEventListener("touchmove", mmove, false);drag.removeEventListener("touchend", mup, false);drag.classList.remove("drag")}})()


  • 【動作確認/v0.11f】■[DurMax]:追伸/「骨の針」の素材となった「骨の棒」に現在耐久値が下がっていたアイテムが混入した可能性ですが、一連の動作確認においてインベントリのアイテムが山になったのを切っ掛けに、現在、在庫アイテムの一斉棚卸しの真っ最中でして、前々から溜め込んでいた様々なアイテムが入った宝箱を全部ひっくり返している状態です。当然、その中には現在耐久値が下がっているモノが含まれていて、それらが動作確認中に混入した事も考えられます。今後の動作確認においてはそういった古いアイテムが混ざらないよう注意します。 -- (名無しさん) 2015-05-19 17:52:59
  • 【動作確認/v0.11f】■[popAberrant]:先の報告からこちら、新たに発生したと思われるモンスターで通常種は見かけません(多分)。 /■[DurMax]:[popAberrant]の動作確認がてら変異種から入手したアイテムを素材にアイテム製作を行い耐久値の状況をみておりますが、今の所は現在耐久値=最大耐久値で製作されています。 -- (名無しさん) 2015-05-20 01:37:12
  • 【要望】■[MultiCreate]:[dropAllExtend]と同様に装備中のアイテムやQSのアイテムは[MultiCreate]による連続製作の対象から除外した方が良いと思いますが如何でしょう。武器や道具として使用中のアイテムが[MultiCreate]ボタンをクリックしたら待った無しの連続製作で素材として消費されてしまうと、いざ戦闘という時に素手になっている事に気付いたり、死骸からの剥ぎ取りに必要な「尖った物」が全て消費されて「切り出し」ができなかったりと(←まあ「掘る」でも良いのですが)、少々ですが不便な点も見受けられましたので。 -- (名無しさん) 2015-05-20 01:37:39
  • 装備品・QS除外について、dropAllと製作時では処理の方法が違うので、装備・QSを除外できるか調べてみます というか軽く製作の処理を見てみた感じ鞄の中身をスキャンしてる様子がないんだけど見落としてるんだろうか・・・ -- (スイッチの人) 2015-05-20 11:49:21
  • 手動で1つずつアイテム製作してみるとインベントリ→装備(E)→QSの順で素材となるアイテムを消費している様ですが…実装が難しそうなら仕様上の制限という事でもかまいません。 -- (名無しさん) 2015-05-20 12:50:58
  • v0.11gに更新しました multiCreateの対象から装備品・QS内のものを除外しました もともと鞄に入っているものは製作対象アイテムじゃなかったというオチね -- (スイッチの人) 2015-05-20 13:39:20
  • 【動作確認/v0.11g】■[MultiCreate]:連続製作で装備アイテムとQSアイテムが素材として使用されない事を確認しました。早速の対応有り難うございます。 -- (名無しさん) 2015-05-20 14:13:37
  • 今modを作ってますが、技術情報の内部処理の書き換えの所が参考になって助かってます。ありがとうございます! -- (はごろもフーズ) 2015-06-23 08:34:42
  • 行き詰まってるコトや実装の仕方についてここで質問してくれれば分かる範囲ですがこっちでも調べてみますよ -- (スイッチの人) 2015-06-24 23:13:07
  • 匿名Modの作者です。Wayward 2.0の一般公開を確認&一通りプレイ完了してからMODを再開発したいと考えています。MODは2.0用に作り直す予定で1.9.2との互換性は考慮しません。初めに日本語対応してから匿名Mod2.0の開発に取り組むと思います。 -- (匿名) 2015-07-25 05:24:37
名前:
コメント:

すべてのコメントを見る

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2021年04月01日 21:17