チケット #37324

v3.0.0のアイテム追加/調整

登録: 2017-07-05 20:31 最終更新: 2020-10-26 20:50

報告者:
担当者:
チケットの種類:
状況:
オープン [担当者決定済み]
コンポーネント:
(未割り当て)
マイルストーン:
優先度:
5 - 中
重要度:
5 - 中
解決法:
なし
ファイル:
なし

詳細

v3.0.0のアイテムの追加、調整を本チケット上で匿名でも募集しつつ行っていきます。

***

主にアーティファクトを募集します!

実装方法について:

出典・名前・元ネタの他に特徴もお願いします

(例:自然界の動物を召喚する、素早く動ける、ファイア・ボールを放つ。既存の仕組みで実現が難しい特徴だった場合、開発チームで別途協議します)

また、英語名及びフレーバーテキストがあると大変助かります

これらを元に取捨選択の上採用します

なおゲームフォルダ内の lib/edit/a_info.txt のフォーマットに従って記載頂いてもOKです

この場合、ゲーム内の雰囲気から著しく逸脱したり、同フロア帯のアーティファクトに比べて著しく強すぎたりしない限りは原則としてそのまま採用します

(パラメータはデバッグ時・テストプレイ時に断りなく調整する可能性があります。予めご了承下さい)

ベースアイテムはゲーム全体のバランスに大きな影響を与える場合があるため、すぐには実装せず開発チームで別途協議します、予めご了承下さい

チケットの履歴 (29 件中 3 件表示)

2017-07-05 20:31 更新者: deskull
  • 新しいチケット "2.2.Xの間のアイテム追加/調整" が作成されました
2017-07-05 20:32 更新者: deskull
コメント

https://osdn.net/projects/hengband/forums/30152/32991/66202/

の探索のオーブ、ダイアナの長弓を検討中。

2017-07-05 23:15 更新者: deskull
コメント

https://osdn.net/projects/hengband/forums/30152/32991/66356/ フォーラムから。クロスボウの★追加は踏まえて行っているので不要かもしれないがとりあえずリンク。

2017-07-05 23:17 更新者: deskull
コメント

https://osdn.net/projects/hengband/forums/30152/32991/66380/ 古い城の報酬案だが、普通に★として追加してもいいはず。

2017-07-05 23:31 更新者: deskull
コメント
2017-07-06 08:15 更新者: None
コメント

★追加などよりは慎重なバランスの検討が必要かと思われますが、☆近接武器に各種*スレイ*も出るようになど小幅なテコ入れはできないでしょうか?
元々有用な物が出る確率が低い近接武器のランダムアーティファクトですが、 ここ数年のエゴ強化と武器修復実装に取り残されてさらに役立つことが少なく、また個性の薄い物になっている印象を受けます。
常用する武器に/邪はほぼ必須と言えますが現状☆に付く可能性は8%程度しかなく、 特化兵器にするにしても*スレイ*が竜以外は付かないので、それらが手軽に得られるようになった今の○○スレイヤーエゴにすら見劣りしています。

雑な素案ですがartifact.c のrandom_slay() にて、/人竜オト巨デ死動が付く場合に

case 9:
case 10:
 add_flag(o_ptr->art_flags, TR_SLAY_ORC);
  if (one_in_(4)) add_flag(o_ptr->art_flags, TR_KILL_ORC);
のように低確率で*スレイ*付加 (後にバイアスによる追加時にパワーの無駄うちにならないように、else は使わず下位のスレイと同時付与)
X龍に振り分けられていたcase17 は/邪に与えて付与率を現状の1.5倍に
例えばこんな感じなら行き過ぎない若干の強化と、各種*スレイ*持ちの特化兵器も出るようにバリエーション増加が図れるのではないかと。

2017-07-12 21:53 更新者: deskull
コメント

None への返信

★追加などよりは慎重なバランスの検討が必要かと思われますが、☆近接武器に各種*スレイ*も出るようになど小幅なテコ入れはできないでしょうか?
元々有用な物が出る確率が低い近接武器のランダムアーティファクトですが、 ここ数年のエゴ強化と武器修復実装に取り残されてさらに役立つことが少なく、また個性の薄い物になっている印象を受けます。
常用する武器に/邪はほぼ必須と言えますが現状☆に付く可能性は8%程度しかなく、 特化兵器にするにしても*スレイ*が竜以外は付かないので、それらが手軽に得られるようになった今の○○スレイヤーエゴにすら見劣りしています。
雑な素案ですがartifact.c のrandom_slay() にて、/人竜オト巨デ死動が付く場合に
{{{ case 9: case 10:  add_flag(o_ptr->art_flags, TR_SLAY_ORC); if (one_in_(4)) add_flag(o_ptr->art_flags, TR_KILL_ORC); }}} のように低確率で*スレイ*付加 (後にバイアスによる追加時にパワーの無駄うちにならないように、else は使わず下位のスレイと同時付与)
X龍に振り分けられていたcase17 は/邪に与えて付与率を現状の1.5倍に
例えばこんな感じなら行き過ぎない若干の強化と、各種*スレイ*持ちの特化兵器も出るようにバリエーション増加が図れるのではないかと。

ありがとうございます。確かに懸念すべき点ではあったので、検討してみます。

2017-07-12 21:59 更新者: deskull
コメント

deskull への返信

https://osdn.net/projects/hengband/forums/30152/32991/66380/ 古い城の報酬案だが、普通に★として追加してもいいはず。

色々考えて以下のように追加。

★グレート・ソード『サンブレード』 (4d6) (+12,+12)
    +2の修正: 腕力, 器用さ, 耐久力
    対: 邪悪, アンデッド, 悪魔
    武器属性: 理力
    麻痺知らず, 永久光源(半径 1)
    発動: なし
    レベル 30, 希少度 80, 9.0 kg, $65000
ロングソードはすでに★が多すぎるという話と、FF11ではグレートソードに分類されているらしいことからこうしたが、 理力+主要スレイで3d5でなく4d6を与えたために強すぎるのではという懸念もあり。まずいと思ったらダイスをいっそ下げるがスレイを減らす。

コメント

deskull への返信

https://osdn.net/projects/hengband/forums/30152/32991/66380/ 古い城の報酬案だが、普通に★として追加してもいいはず。

色々考えて以下のように追加。

★グレート・ソード『サンブレード』 (4d6) (+12,+12)
    +2の修正: 腕力, 器用さ, 耐久力
    対: 邪悪, アンデッド, 悪魔
    武器属性: 理力
    麻痺知らず, 永久光源(半径 1)
    発動: なし
    レベル 30, 希少度 80, 9.0 kg, $65000
ロングソードはすでに★が多すぎるという話と、FF11ではグレートソードに分類されているらしいことからこうしたが、 理力+主要スレイで3d5でなく4d6を与えたために強すぎるのではという懸念もあり。まずいと思ったらダイスをいっそ下げるがスレイを減らす。

2017-07-12 21:59 更新者: deskull
コメント

ダブった。

2017-07-13 20:00 更新者: deskull
コメント

ベースアイテムの生成率が気になったので、自前スポイラーも確認しつつobj-desc.spoの出力内容に追加した。

2017-07-13 20:26 更新者: deskull
コメント

やはりサンブレードが強すぎるとの意見を方々とぐりっどばぐで聞き、相談しながら以下のように修正。

★グレート・ソード『サンブレード』 (3d6) (+12,+12) [+10]
    +3の修正: 知能
    対: 邪悪, アンデッド
    武器属性: 理力
    麻痺知らず, 永久光源(半径 1)
    発動: なし
    レベル 30, 希少度 150, 9.0 kg, $65000

  • ダイスブーストはなしに
  • レアリティアップで後の赤魔向け報酬以外での入手可能性をさらに減らす。
  • 原典に悪魔スレイはほぼないようなので削除して、最深層で強力に刺さる敵は減らす。
  • 肉体パラメータ全強化は削除し、代わりに(FFTA位でしかないようだが)防御修正としてAC+10を付加。また知力デュアル職向けとして+3知力を追加。

これで理邪持ち★として最高峰としつつ、強すぎない程度にはなった、はず。ゴルンノヴァ先輩の悶絶はいずれ上方修正の予定で晴らす。

2017-07-14 01:53 更新者: deskull
コメント

サンブレード再三修正。

★グレート・ソード『サンブレード』 (3d6) (+16,+20) [+10]
    +3の修正: 知能
    対: 邪悪, アンデッド
    武器属性: 理力
    麻痺知らず, 永久光源(半径 1)
    発動: なし
    レベル 30, 希少度 150, 9.0 kg, $65000
理邪で 3d6(期待値10.5)×(2×1.5+2) = 52.5 にもうちょっと固定値に色乗せて+20で72.5に。

2017-07-14 01:58 更新者: deskull
コメント

併せて理*邪*化と、序盤~中盤向けとしてゴルン・ノヴァを調整。

★ブロード・ソード『ゴルン・ノヴァ』 (2d5) (+10,+10)
    +2の修正: 腕力, 器用さ
    対: *邪悪*
    武器属性: 理力
    発動: なし
    レベル 20, 希少度 25, 7.5 kg, $40000
階層とレアリティをオルクリスト辺りと比較しながら調整。スレイ 3.5×1.5+2 = 7.5 を鑑みてダイスは据え置き、*悪魔*は(原作では上級魔族には聞かないとのことなので)削除、命中/ダメージ修正は原則の下限とした。

2017-07-14 10:47 更新者: None
コメント

上で言われていたベースアイテムの出現確率に関してですが、
デバッグモードでの階層別アイテム出現率の表示に2つほど改善できる点があると思いましたので、 拙いコードですが修正案を作ってみました。

既存のwizard2.c 中の prt_alloc()関数をこれで置き換える形になります。
2000文字超えるかも知れないので、詳細は次のコメントにて

#define K_MAX_DEPTH 110 /*!< アイテムの階層毎生成率を表示する最大階 */

/*!
 * @brief アイテムの階層毎生成率を表示する / Output a rarity graph for a type of object.
 * @param tval ベースアイテムの大項目ID
 * @param sval ベースアイテムの小項目ID
 * @param row 表示列
 * @param col 表示行
 * @return なし
 */
static void prt_alloc(byte tval, byte sval, int row, int col)
{
	int i, j, k;
	int home = 0;
	u32b rarity[MAX_DEPTH];
	u32b total[MAX_DEPTH];
	s32b display[22];
	cptr r = "+---Rate---+";
	object_kind *k_ptr;


	/* Get the entry */
	alloc_entry *table = alloc_kind_table;

	/* Wipe the tables */
	(void)C_WIPE(rarity, MAX_DEPTH, u32b);
	(void)C_WIPE(total, MAX_DEPTH, u32b);
	(void)C_WIPE(display, 22, s32b);

	/* Calc. total chance for each depth */
	for (i = 0; i < alloc_kind_size; i++)
	{
		for(j = table[i].level; j < MAX_DEPTH; j++) total[j] += table[i].prob1;
	}
	/* Scan all entries */
	for (i = 0; i < K_MAX_DEPTH; i++)
	{
		for (j = 0; j < alloc_kind_size; j++)
		{
			int prob = 0;
			int prob2 = 0;
			/* Acquire this kind */
			k_ptr = &k_info[table[j].index];
			/* Accumulate probabilities */
			if ((k_ptr->tval == tval) && (k_ptr->sval == sval))
			{
				home = k_ptr->level;
				/* w/o level boost */
				prob = table[j].prob1;
				if(table[j].level <= i)
				{
					/* max. 3 rolls */
					/* 40% : 1roll */
					prob2 = prob * 40;
					/* 50% : 2rolls, 1st lower level, 2nd this kind */
					if(table[j].level > 0) prob2 += prob * 50 * total[table[j].level - 1]/total[i];
					/* 50% : 2rolls, 1st this kind, 2nd lower/or/same level */
					prob2 += prob * 50 * total[table[j].level]/total[i];
					/* 10% : 3rolls, 1st,2nd lower level,3rd this kind */
					if(table[j].level > 0) prob2 += prob * 10
						* total[table[j].level - 1] / total[i]
						 * total[table[j].level - 1] / total[i];
					/* 10% : 3rolls, 1st lower level,2nd this kind, 3rd lower/or/same level */
					if(table[j].level > 0) prob2 += prob * 10
						 * total[table[j].level - 1] / total[i]
						 * total[table[j].level] / total[i];
					/* 10% : 3rolls, 1st this kind, 2nd,3rd lower/or/same level */
					prob2 += prob * 10 
					  * total[table[j].level] / total[i]
					  * total[table[j].level] / total[i];

					prob2 *= MAX_DEPTH * (GREAT_OBJ - 1) / GREAT_OBJ;
					rarity[i] += prob2 * 1000 / total[i] * 100;
				}

				/* w/ level boost */
				prob = table[j].prob1;
				int b_level = 0;
				/* calc. for randint1(128) */
				for(k = 0; k < MAX_DEPTH; k++)
				{
					if(i > 0) b_level = 1 + (i * MAX_DEPTH / (k + 1));
					if(b_level > MAX_DEPTH -1) b_level = MAX_DEPTH - 1;
					if(table[j].level <= b_level)
					{
						/* max. 3 rolls */
						/* 40% : 1roll */
						prob2 = prob * 40;
						/* 50% : 2rolls, 1st lower level, 2nd this kind */
						if(table[j].level > 0) prob2 += prob * 50 * total[table[j].level - 1]/total[b_level];
						/* 50% : 2rolls, 1st this kind, 2nd lower/or/same level */
						prob2 += prob * 50 * total[table[j].level]/total[b_level];
						/* 10% : 3rolls, 1st,2nd lower level,3rd this kind */
						if(table[j].level > 0) prob2 += prob * 10
							* total[table[j].level - 1] / total[b_level]
							* total[table[j].level - 1] / total[b_level];
						/* 10% : 3rolls, 1st lower level,2nd this kind, 3rd lower/or/same level */
						if(table[j].level > 0) prob2 += prob * 10
							* total[table[j].level - 1] / total[b_level]
							* total[table[j].level] / total[b_level];
						/* 10% : 3rolls, 1st this kind, 2nd,3rd lower/or/same level */
						prob2 += prob * 10 
							* total[table[j].level] / total[b_level]
							* total[table[j].level] / total[b_level];

						rarity[i] += prob2 * 100000 / GREAT_OBJ / total[b_level];
					}
				}
			}
		}
	rarity[i] /= MAX_DEPTH;
	}

	/* Calculate probabilities for each range */
	for (i = 0; i < 22; i++)
	{
		/* Shift the values into view */
		int possibility = 0;
		for (j = i * K_MAX_DEPTH / 22; j < (i + 1) * K_MAX_DEPTH / 22; j++)
			possibility += rarity[j];
		display[i] = possibility / 50;
	}

	/* Graph the rarities */
	for (i = 0; i < 22; i++)
	{
		Term_putch(col, row + i + 1, TERM_WHITE,  '|');

		prt(format("%2dF", (i * 5)), row + i + 1, col);


		/* Note the level */
		if ((i * K_MAX_DEPTH / 22 <= home) && (home < (i + 1) * K_MAX_DEPTH / 22))
		{
			c_prt(TERM_RED, format("%2d.%04d%%", display[i] / 10000, display[i] % 10000), row + i + 1, col + 3);
		}
		else
		{
			c_prt(TERM_WHITE, format("%2d.%04d%%", display[i] / 10000, display[i] % 10000), row + i + 1, col + 3);
		}
	}

	/* Make it look nice */
	prt(r, row, col);
}

2017-07-14 10:55 更新者: None
コメント

改善点の1つは単純に小数点の位置がずれていたのを修正。

もう1つは、get_obj_num() 関数にて50%の確率で2回、10%の確率で3回 アイテム選択を繰り返して最も高い生成レベルのものを選ぶ処理を計算に入れたことです。
この効果は意外に大きく、 レベル0や1のアイテムは複数回選択があった場合にほぼ排除されるので元の選択率の0.4倍近くまで下がり、
逆に今の生成レベルちょうどのものは、どこかで選ばれるとほぼ採用となるので 元の選択率の 0.4 + 0.5*2 + 0.1*3 = 1.7倍近くまで上がります。

以下に計算結果の例を挙げておきます。
★の入手数が増える後半階層でのグレート・ソードの出現率の高さなどが把握できます。
現状でもStatistics から100万回生成などすれば正しく見積もれましたが、それよりはたいぶ便利になるかと。

新計算 (旧計算 <旧表示>)

スピードの指輪 80F/Rare1
80F 0.3629% (0.215% <0.0215%>)

松明 1F/Rare1
80F 0.1033% (0.215% <0.0215%>)

ブロード・ソード 10F/Rare1 + 15F/Rare1
15F 1.1866% (0.830% <0.0830%>)
50F 0.4035% (0.458% <0.0458%>)
80F 0.3664% (0.431% <0.0431%>)

グレート・ソード 30F/Rare1 + 40F/Rare1
40F 0.7949% (0.516% <0.0516%>)
50F 0.6314% (0.458% <0.0458%>)
80F 0.5651% (0.431% <0.0431%>

PDSM 110F/Rare64
35F 0.0001% (0.000% <0.0000%>)
100F 0.0003% (0.000% <0.0000%>)

2017-07-14 12:44 更新者: deskull
コメント

以前手を加えていた要素にバグや見落しがあったことも含めて驚きました。 以下の件、追って確認した上で、反映させていただきます。本当にありがとうございます。

None への返信

改善点の1つは単純に小数点の位置がずれていたのを修正。 もう1つは、get_obj_num() 関数にて50%の確率で2回、10%の確率で3回 アイテム選択を繰り返して最も高い生成レベルのものを選ぶ処理を計算に入れたことです。
この効果は意外に大きく、 レベル0や1のアイテムは複数回選択があった場合にほぼ排除されるので元の選択率の0.4倍近くまで下がり、
逆に今の生成レベルちょうどのものは、どこかで選ばれるとほぼ採用となるので 元の選択率の 0.4 + 0.5*2 + 0.1*3 = 1.7倍近くまで上がります。 以下に計算結果の例を挙げておきます。
★の入手数が増える後半階層でのグレート・ソードの出現率の高さなどが把握できます。
現状でもStatistics から100万回生成などすれば正しく見積もれましたが、それよりはたいぶ便利になるかと。
新計算 (旧計算 <旧表示>) スピードの指輪 80F/Rare1
80F 0.3629% (0.215% <0.0215%>) 松明 1F/Rare1
80F 0.1033% (0.215% <0.0215%>)
ブロード・ソード 10F/Rare1 + 15F/Rare1
15F 1.1866% (0.830% <0.0830%>)
50F 0.4035% (0.458% <0.0458%>)
80F 0.3664% (0.431% <0.0431%>)
グレート・ソード 30F/Rare1 + 40F/Rare1
40F 0.7949% (0.516% <0.0516%>)
50F 0.6314% (0.458% <0.0458%>)
80F 0.5651% (0.431% <0.0431%>
PDSM 110F/Rare64
35F 0.0001% (0.000% <0.0000%>)
100F 0.0003% (0.000% <0.0000%>)

2017-07-15 21:01 更新者: deskull
コメント

前々から言われていたコーウィン籠手を、魔術系職業も扱えるよう、麻痺知らず追加。

★アヴァロンの主コーウィンのガントレット [2,+15]
    +4の修正: 耐久力
    耐性: 冷気
    維持: 耐久力
    麻痺知らず, 急速回復
    発動: なし
    レベル 10, 希少度 40, 1.2 kg, $43000

2020-02-09 22:19 更新者: deskull
  • 詳細が更新されました
コメント

hdns氏から指摘、運命のオーブが a_info.txt 内で INSTA_ART を持っていなかったので修正。INSTA_ARTは原則 k_info, a_info 双方にフラグがないといけない。

2020-10-08 21:10 更新者: hourier
2020-10-08 21:39 更新者: hourier
コメント

主にアーティファクトを募集します!

アイディアの提供方法はモンスターの場合 (#37285)と同様です

アーティファクトのリストはlib/edit/a_info.txt にあります、併せてご参照下さい

ベースアイテムはゲーム全体のバランスに大きな影響を与える場合があるため、すぐには実装せず開発チームで別途協議します、予めご了承下さい

2020-10-11 00:12 更新者: None
コメント

ヘヴィ・ランスって元ネタが無いのでこんな感じ…原作読んだこと無いです 一応、騎士の古い城報酬に相応しいようなヘヴィ・ランスが欲しいなあって動機です 古い城に弱すぎる/強すぎるなら変更してください

N:XXX:ドン・キホーテの E:of Don Quixote I:22:29:-3 W:40:30:300:70000 P:0:3d8:-12:12:0 F:INT | WIS | CHR | F:IM_ELEC | RES_DARK | RES_CONF | RES_FEAR | F:FREE_ACT | SUST_INT | SUST_WIS | SUST_CHR | F:SLAY_EVIL | KILL_GIANT D:$Don Quixote born in La Mancha is the brave knight trying to defeat the colossal giant "Windmill". D:ラ・マンチャに生まれたドン・キホーテは強大なる巨人『風車』を打ち倒そうとした勇敢な騎士だ。

2020-10-11 19:53 更新者: None
コメント

話的にはRES_CONFは無い方がいいんでは

PVALがマイナスならSTEALTHがあってもよさそう

2020-10-13 20:23 更新者: None
コメント

アイテム調整案

①隠者の紫にDETECT_UNIQUEを追加

②DETECT_UNIQUEでディオを感知したら「きさま!見ているなッ!」を表示

問題はパランティア以外でこれを見る可能性がほぼ無いこと

2020-10-13 21:19 更新者: None
コメント

Reply To (Anonymous)

N:209:『隠者の紫』 E:'hermit's purple' I:21:2:2 W:40:40:30:40000 P:0:1d6:10:5:0 F:INT | WIS | FORCE_WEAPON | SLAY_UNDEAD | RIDING | F:SEE_INVIS | TELEPATHY | REGEN | HOLD_EXP U:DETECT_UNIQUE D:半幽体化した不思議な茨の鞭だ。所有者の精神力を攻撃力に変換し、 D:波紋の力で身を守ることができる。 D:身につけると遠い場所の出来事がわかる。

とりあえず波紋っぽいのを追加してみたが、まだ弱いし今のシステムだと対邪悪結界(服の下に仕込んだのを再現)と排他なんだよな・・・

2020-10-17 00:31 更新者: hourier
  • 詳細が更新されました
コメント

頂いた2案は現在調整中です

なお特定モンスターを感知した際にメッセージを表示する機能は一応実装できそうです

乞うご期待下さい

2020-10-17 21:54 更新者: None
コメント

メガテンSJのかっこいい金バケツを投げてみる

N:XXX:『デモニカスーツ』
E:'Demonica Suit'
I:36:9:2
W:30:10:80:100000
P:6:0d0:0:0:24
F:STR | CON | SEARCH | INFRA |
F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_POIS | XTRA_H_RES |
F:WARNING | SEE_INVIS | ESP_DEMON |
D:シュバルツバース調査隊員が着用するクレバーで進化する戦闘服だ。
D:(真・女神転生 STRANGE JOURNEY)

2020-10-19 21:53 更新者: hourier
コメント

一次実装で調整は未完了ですが、ここまで追加しました

2020-10-21 23:34 更新者: None
コメント
N:*:自己変容:青く光る
E:Polymorph:Brilliant blue
G:!:B
I:75:*:0
W:50:0:4:5000
A:50/4
P:0:1d1:0:0:0
D:二倍のカロリー、二倍の炭水化物、二倍のカフェイン、そして二倍おいしい!
D:それは飲むと自己変容を起こす。

https://fallout.fandom.com/wiki/Nuka-Cola_Quantum_(Fallout_76)

突然変異の薬にメッセージを追加してもいいが、とりあえず別効果の新アイテムで

色は固定で。名前はなんとかしないといけないが

ところでk_info.txtでポーションのBronzeが赤銅色になっているけど青銅色ですよね

2020-10-26 20:50 更新者: None
コメント

英語のBronzeは金属の色で日本語の青銅色は一般的には緑青の色のようです

「ブロンズ色」の表記がいいかもしれません

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする