■掲示板に戻る■ 全部 最新50 1-

汎用キャラクターデータベースCGIの改造について

1 名前:使わせてもらってます:10/3/28 03:35 ID:M0p1zUwbpE
こんにちは。
アリアンロッドの汎用キャラクターデータベースCGIを使わせてもらってます。

改造していくうちに、わからないことがあったので質問させてください。

1.装備品の表に「魔法防御」の項目を作り、それを戦闘の表の「魔法防御」と
 連動させようと思ったのですが、自動計算の方法がわからないです。
 魔法防御の「合計」までは自動計算できたのですが、戦闘表に反映させる方法が……。

2.メモを等幅で出力されるようにdefView.htmをいじったのですが、
 (書き込みではじかれるので、コードはかけません。DATA:memoの前後にPREをつけてます)
 datに記録される改行の付与がBRなので、一部ブラウザでは空行が反映されません。
 これを\nに変えれば直るかなと思ったのですが、どこをいじればいいでしょうか?

あと、jsの質問になってしまうので、ちょっとスレ違いかもですが……。

3.#DATA:item1_weight#、#DATA:item2_weight#、などの数値を合計したいのですが、
 すっきりした記述にするにはどのような式になるのでしょうか? 今は全部足してます。

2 名前:猫魂(管理人):10/3/31 21:14 ID:MFBEzQbIu2
> 魔法防御の「合計」までは自動計算できたのですが、
> 戦闘表に反映させる方法が……。

アリアンロッドはやったことがないのでよくわかりませんが、
装備品に魔法防御値が設定されていて、その合計を戦闘表に反映させたい
ってことでいーんでしょうかね?
で、装備品に魔法防御の項目を増やして、装備品による魔法防御の合計値の
計算と表示は出来ていて、それをさらに戦闘表の合計(ダイス目)の値を
自動計算する際に利用したいのだがどうしたらいいのか、と。

装備品による魔法防御の合計値が出せてるのなら同じよーにやれば
よさそうなもんですけども……
えーと、装備品による魔法防御の合計値を出す際には、恐らくsumEquipment()を
修正したんだと思いますけども、戦闘表の合計の場合にはsumBattle()をいじって
やればいいわけです。
for (i in ary) {
sum = 0;
for (j in keyAry) {
...(省略)
}
// 魔法防御力ならば装備品による魔法防御の合計値を加算する
if (ary[i] == "btlMgcDef") {
sum += numCheck(valueCheck("装備品による魔法防御の合計値のID"));
}
textWrite(ary[i], sum);
}

こんな感じにやればいーんじゃないでしょーか。

3 名前:猫魂(管理人):10/3/31 21:26 ID:MFBEzQbIu2
> BRを\nに変えれば直るかなと思ったのですが、どこをいじればいいでしょうか?

どこって、まあBRのところを全部修正すればいーんじゃないですかね。
でも、書き込みではじかれるのでコードが書けないってのは、CGI(Perl)を
いじれないってことなんですかね。
でしたらば、JavaScriptでBRを\nに置換するしかないでしょうねえ。

例えば、#DATA:memo#を<pre id="memo">#DATA:memo#</pre>として、
viewStartup()の最後辺りで
var node = document.getElementById("memo");
var len = node.getElementsByTagName("br").length;
for (var i = 0; i < len; i++) {
node.replaceChild(document.createTextNode("\n"), node.getElementsByTagName("br")[0]);
}
てな感じで置換してやればいけるんじゃないでしょーか。(<は半角)


> すっきりした記述にするにはどのような式になるのでしょうか?

for文でも書くしかないんじゃないですかね。(<は半角)

IDがitem1_weight〜item10_weightのように、数字以外が共通の場合。
result = 0;
for (var i = 1; i <= 10; i++) {
node = document.getElementById("item" + i + "_weight");
result += numCheck(valueCheck(node));
}

IDがバラバラだったらこんな感じに。
result = 0;
var ary = new Array('str','dex','agi','iq','sns','mnd','luk');
for (i in ary) {
node = document.getElementById(ary[i]);
result += numCheck(valueCheck(node));
}

3.61 KBytes   2chは使っていない、2ちゃんねる風掲示板ですが何か?
続きを読む

掲示板に戻る 前100 次100 全部 最新50
名前: E-mail(省略可):

(C) read.cgi (Perl) ver3.0 http://www.toshinari.net/ by 森元俊成