トップページ > PCゲーム > 2012年03月04日 > /QqQfpB/

書き込み順位&時間帯一覧

108 位/2485 ID中時間01234567891011121314151617181920212223Total
書き込み数1100000000100000110100006



使用した名前一覧書き込んだスレッド一覧
名無しさんの野望
477
Civilization4(civ4) MODスレ Vol.30

書き込みレス一覧

Civilization4(civ4) MODスレ Vol.30
459 :名無しさんの野望[sage]:2012/03/04(日) 00:05:37.87 ID:/QqQfpB/
>>458
無理。
なぜならそういう風に子要素を入れられるようにタグが作られていないから。

XMLだけで解決するなら全く同じ能力のユニットを2つ作って、
片方にはRELIGION_JUDAISMをもう片方にはRELIGION_CHRISTIANITYを付ける、
って形にするのが一番近い形にできると思う。

Pythonを使えるならPythonCallbackDefines.xmlの
USE_CANNOT_TRAIN_CALLBACKを1にした上で、
CvGameUtils.pyのcannotTrain(self,argsList):の中に、
「特定の宗教のいずれも布教されていなければtrueを返す」といった文を入れればいい。

もちろんSDKやCIV4UnitSchema.xmlをいじって、
<StateReligion>に子要素を入れられるようにした上で、
ちゃんと認識するように改造することも可能。
Civilization4(civ4) MODスレ Vol.30
462 :名無しさんの野望[sage]:2012/03/04(日) 01:01:26.08 ID:/QqQfpB/
>>460
> CIV4UnitSchema.xmlの改造でやってみようと思います。
えっと、それはSDKとセットだからね?

CIV4UnitSchema.xmlで<StateReligion>の中に子要素を指定できるようにして、
CvInfo.cppの中のCvUnitInfoでその子要素を読み込んで保持するように書き換えて、
CvUnitInfo::getStateReligion()を子要素の配列を返すように書き換えて、
CvUnitInfo::getStateReligion()を呼び出してるところを全部書き換えないといけない。
Civilization4(civ4) MODスレ Vol.30
467 :名無しさんの野望[sage]:2012/03/04(日) 10:26:31.18 ID:/QqQfpB/
>>464
> 志向によって最初に建設した首都に固有の建物が建つようにしたいのだけどどうすればいい?
文明依存でいいなら宮殿UBを設定するのが一番簡単なんだけどねえ。
Civilization4(civ4) MODスレ Vol.30
474 :名無しさんの野望[sage]:2012/03/04(日) 16:20:26.24 ID:/QqQfpB/
>>473
そこのツールチップだけは例外。setHelpTextAreaっていう特殊なウィンドウ使ってる。
で、exeの中の処理が狂ってるからpython側でサイズ指定してもガン無視される。

やるならこの特殊なウィンドウを使わずに、自力で1からウィンドウ表示書き直さないといけない。
表示内容自体はDLLの中だからDLLもかなりの部分書き換えないといけない。
Civilization4(civ4) MODスレ Vol.30
477 :名無しさんの野望[sage]:2012/03/04(日) 17:21:17.88 ID:/QqQfpB/
>>476
それやるにはDLL書き換えないといけないんで試したことないや。
CvGameTextMgr.cppの中の
void CvGameTextMgr::getPlotHelp(CvPlot* pMouseOverPlot, CvCity* pCity, CvPlot* pFlagPlot, bool bAlt, CvWStringBuffer& strHelp)
の最後で、先頭に空行入れれば対症療法になるかもしれない。

strHelp.assign(L"\n\n\n\n" + strHelp.getCString());
とでも最後に書き加えれば空行入れてみるのはいけそうかな?
Civilization4(civ4) MODスレ Vol.30
478 :477[sage]:2012/03/04(日) 19:07:06.13 ID:/QqQfpB/
>>476
うーん、空行試してみたけどダメだな。遠慮なく画面外まで広がっちゃう。

void CvGameTextMgr::setPlotListHelp(CvWStringBuffer &szString, CvPlot* pPlot, bool bOneLine, bool bShort)内の
static const uint iMaxNumUnits = 15;
がまとめ表示せずに表示するユニット数の設定みたいだから、
この数字をテキストの量に応じて動的に変化させるようなコードを書けばいけそうな気がする。

ただツールチップの幅の取得とかが無理っぽいから、最適なユニット数を求める冴えたやり方が見当も付かないが。
フォントサイズやCiv4自体の画面サイズやらで変わってくるだろうし。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。