gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

S.T.A.L.K.E.R.最高年齢プレーヤーHalのゲーム日記 その2199 男の道戻ります プレイ日記

2016-04-12 08:43:00 | ゲーム S.T.A.L.K.E.R.

OGSE 0693 FINALでのメインメニューから戻れない件は、解決した。

まず英語のフォルダに、日本語フォルダから5つずつ入れていってテスト。 ついにそのファイルを突き止めた。 やはり日本語ファイルのひとつがおかしかったのだ。

string_table_ui.xml  これである。 しかし特におかしいところはないのだが、これを英語にするとOKなのだ。

この一見異常のないファイルが、なんらかの障害を引き起こすというのは、これまで何回か経験している。 

つまり「見えないダメ文字」という奴である。 一見普通の日本語なのだが、どこかに妙なコードが紛れ込んでいるというものである。

それを一文字ずつ検証して探し出すのは、時間がかかりすぎるので、英語ファイルに差し替え、無事解決したのである。

「急がば回れ」とはよく言ったもので、億劫がらずに最初からこれをやれば良かったのだが、つい面唐ナ先送りしていたのだ。

それにしても不思議なのは、なぜ最初に起動した時、又はロードした時には落ちないで、メインメニューに入った後、抜ける時に落ちるか、という点である。 

ファイルに異常があれば、起動時に落ちるのが普通なのに、メインメニューさえ出さなければ、ほぼ正常にプレイが続行できる。 

これはなんとも不思議な現象で、「ゾーンではなんでも起きる」という、S.T.A.L.K.E.R.での有名な合い言葉?を思いだしてしまう。

ともあれ、これでOGSE 0693 FINALもプレイできる。 やれやれホッ・・・


S.T.A.L.K.E.R. SOCのMOD 男の道戻ります その10

--------------------------------
ジンジャーブレッドマンのタスクを済ませ、Mihalichに会いにいく所からである。

■Predzone
? マーカーはSidorovichのバンカーに出ている。 バンカーというよりSidorovichそのものである。




さてはCordonから夜逃げをして、借金取りから身を隠すために、世を忍ぶ仮の名を名乗っているのだな。

タヌキシドならありそうなことだ。 Cordon時代には、さんざん人を騙して金をむしり取っていたから、当然の報いだろう。

なにせこ奴は、「おい、Marked One。 オレの代わりにあのストーカーに、立て替えてやってくれ。 なに、ここへ戻ったらすぐ金は返すから」などと言う。

で、大枚7万ルーブルをそのストーカーに渡して、Sidorovichの所に戻ると、「おめえはあのストーカーに騙されたんだ。 奴はもうトンズラしてるぜ」なとどヌカして、結局金は返してもらえない、という阿漕なことを平気でする奴なのだ。

(Nardonaya Soljankaにて)

案の定Sidorovich(Mihalich)は、「村の近くにある洞窟になにか住みついている。 探して見ろ」と言うのだ。 この洞窟は前に行った、あの崖の下にある洞窟のことだろう。

やはり灰色マーカーはそこに出ている。




ではひとっ走り洞窟探検に出かけようか。

それにしても、今回の「男の道戻ります」は、あの悪名高い「デジャ」の新版とは思えない程良くできている。

ダメ文字以外のCTDはほとんどないし、スクリプトエラーもこれまではない。 しかもタスクは明解で、なにをすればよいのか迷うこともない。

恐らくはデジャで散々言われたので、発奮して作り直したのだろう。 しかし、これは作り直しというより、全く新しいMODと言える。

その発奮の甲斐あって、ロシアのサイトの人気投票でも、常に最上位に近いところにあるのだ。

おめでとう、MODDER賛!

洞窟に入り、一渡り探してみたが、特になにもいない。 しかし、最深部の2階に上がり、他のMODではアイテム類がある奥の部屋に入ると、いたいた!




ャ泣^ーガイストである。 下半身がないという、不気味なミュータントである。 これを唐キと、シドの所に戻れとなる。




念のために、ャ泣^ーガイストの目を取っておいた。 あのタヌキのことだから、証拠を見せろなどと言うかもしれない。 そのための備えである。

帰ってSidorovichと話すと、Limanskの話が出た所でCTD。 これもダメ文字だろう。


■ご注意!
以下CTDの原因探しが延々と続く。 興味の無い方は最後迄読み飛ばしてくだされ。

調べてみると、ここでも前回と同じような原因らしい。

gameplay\dialogs_vozvraschenie.xml

action>chelovek.raciya_stepanichu_dali /action>

dialogs.relocate_item_section(second_speaker, "racya_book", "in")

これだろう。 racya_bookにダメ文字があると考えられる。

misc\chel_vozv.ltx 

しかしここにはキリル文字はない。 はて?

$spawn = "devices\chel_vozv\yashik_book"

これもおかしな所はなさそうだ。

ならばご褒美なしにしたらどうか。

ここでのactionは2つある。

<action>chelovek.raciya_stepanichu_dali</action>
<action>y_level.start_perexod_zaton</action>

<action>y_level.start_perexod_zaton</action>はZaton行きなので、これはコメントにはできない。

<action>chelovek.raciya_stepanichu_dali</action>は、ご褒美を諦めればコメントにしても大丈夫だろう。

しかしやはり落ちる。 となるとご褒美actionではなく、Zaton行きactionらしい。 これは困った。 

一応Zaton行きactionをコメントに、ご褒美は生きている設定にしてみた。

<!-- here
<action>y_level.start_perexod_zaton</action>
-->

これは落ちない。 Limanskタスクも出る。 しかし、Zatonタスクは無いと困る。

このstart_perexod_zatonは、grepすると

gameplay\dialogs_vozvraschenie.xmlと
gamedata\scripts\y_level.script 329 function start_perexod_zaton()

の2カ所しかヒットしない。 gameplay\dialogs_vozvraschenie.xmlは単に指定しているだけなので、その本体はy_level.scriptの関数y_level.scriptだろう。

scripts\y_level.script 329 function start_perexod_zaton()

function start_perexod_zaton()
-- ????????? ??????? ?? ?????
if (not has_alife_info( "zaton_perehod" )) then
level_new.create_level_changer(5482, vector():set(195.61181640625,-28.7510662078857,508.563598632813),1216107,4029,
1828823,
3698,
vector():set(550.341918945313,13.3884258270264,610.624755859375),
vector():set( 0.0, 0.0, -1.0 ),
"zaton",
0)

db.actor:give_info_portion("zaton_perehod")

end
end

これをコメントにしてみた。

-- if (not has_alife_info( "zaton_perehod" )) then

-- end


OKである。

dialogs_vozvraschenie.xmlではこれをコメントにしているので、それで出るエラーだろう。 このコメントをはずしてみた。

<action>y_level.start_perexod_zaton</action>

if (not has_alife_info( "zaton_perehod" )) then もコメントをはずした。

しかしこれでは落ちる。 ではscripts\y_level.scriptでもう一度コメントにすれば?

-- if (not has_alife_info( "zaton_perehod" )) then

-- end

落ちる。 この関数はZatonマップ作製の関数だろう。 これがだめとなると、Zatonは存在しなくなる。 これは非常にまずい。 まずいというより詰みである。

-- vector():set( 0.0, 0.0, -1.0 ),
-- "zaton",

念のためZatonマップ作製の項をコメントにしてみた。 これなら落ちない。 では、Zaton作製の


ということはlevel_new.scriptファイルのcreate_level_changerの方に問題があるのか。

ここにはZaton作製の関数はない。 y_level.scriptの方で宣言しているからだろう。 ではy_level.scriptの関数をそっくりlevel_new.scriptに移したらどうか?

これも不可である。 ではdialogs_vozvraschenie.xmlで、y_level.scriptを呼ばずにlevel_new.scriptをよんでみたらどうか。

<action>level_new.start_zaton()_</action>

これでだめなら、spawnの数値が間違っているか、他の原因が有るかということになる。


S.T.A.L.K.E.R. SOCのMOD 男の道戻ります その11に続く。