GAMMD rev.3

気ままにメモ

令和1年?令和元年?

c#のdate formatで変換すると1年表記される時と、元年表記される時があるみたいです。
レジストリは同じため.net frameworkのバージョンの違いか、OSによるものか、調査中。

結論

ここに書いてた。

https://support.microsoft.com/ja-jp/help/4477957/new-japanese-era-updates-for-net-framework

対象のKBを適用すると、
ggyy年 -> 令和01年
ggyy'年' -> 令和元年
だったものが
ggyy年 -> 令和元年
ggyy'年' -> 令和元年

となる。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AppContext
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber=1

を設定して上げると、元年表記が01年表記になる

メビウス攻略メモ

メビウス攻略メモ

 

基本的にはwiki参考にソロ攻略したときのメモです。

 

31階

 アルマ モアなど猛獣使い スピカ

 とりあえずラットン投げて、誘発。

 その後スピカで高低差利用しつつキモロボを処理する

2人だとそれぞれの開始位置で投げれるので適当にあしらう。

キモロボはアルマ無双で楽々

 

32階

 ヴィヴィ 黒レヴァ

 出鼻ホルスであとレヴァでスロウ位置にツッコミ待機

 反撃で殲滅

 

ヴィヴィは射程+2くらいしておくとスロウにならない

 

33階

 ルーシア ラーフ ジェラルド

 ルーシアをひたすら強化する

 魔人はクロックダウンしてブラックホールとかでCT調整 

ラーフさんがやられてもジェラルドのドンアクが効くので足止め可

 

34階

 ラメセス ラーフ 

 オバクロルドラ通常で中央の暗殺者とダークナイト処理してからヒーラー処理

 ルドラキュアで壁超えて魔術師

 増援のダークナイト二体はラーフさんで端に引き寄せておく

 ラメセスで端っこの弓使い倒してから中央戻ってから最後にディアブロ

 ジュエル取らない

35階 

 ラメセス ラーフ バルト

 ラメセスでダークナイト処理後狼処理

 ライズ効果でほぼワンパン 

36階

 ラメセス ラーフ バルト

 槍側の花よりでスタート

 拳闘士の爆裂拳の位置で待機、二手目くらいでルドラが花に届く

 ラメセスサポートしながら花の周りで倒す

 虫と龍と魔人、ディアブロの順だけど特に気にすることはない

 増援後はラーフで花を叩くと楽

37階

  アルベル ラーフ

  アルベルでギリギリ検知外から攻撃可能

  闘牛は爆裂弾三発で倒せる処理

  手前の賢者と魔人でジュエル貯めつつ検知外が倒す。

  奥のスナイパーはメルトボムしながらクロックアップで適宜倒すとテレサいらなかった。

38階

  ラメセス ラーフ バルト

 右下スタート。キモロボ倒した後左に少しずつ移動して一匹ずつ釣り

 クロックダウンが入るので適宜入れる(魔人用に1つ残しておくこと。

 魔人弱体化ゾーンでチェンジングクロックダウンして処理あとはゴールデンラットンだけになるので残った力で叩く

39階

 ラメセス ラーフ なんでも

 水 光 風 雷 火 闇

 砂漠念装で強化した方がいい。

 スピカ姉妹からスタート。

 マッドさんブレスとかで処理後

 ヴェテルは吸収で倒す

 ペリドットが来るので倒す(マッドさんとまとめてもよい

 ライル アンク 子安緑川をルドラとオバクロで倒す

 タイミングが合えば感知前に逃げれる。

 だいたいみんな動いて来るので、なんとか右側に寄りつつ倒す。(ヴィヴィのドンアクには注意。

 カザハヤとその姉が出て来るのでカザハヤ釣って回復しつつ吸収で倒す。ヴィヴィ倒して姉だけ先に倒してもいい。

 レイメイ出て来るので吸収しつつ倒す。

 その姉を倒してクダンはワンパン

 カザハヤと姉を倒してからクダンレイメイをルドラしてもよい。

 属性のタイミングには注意。

 

40階

 ソロだと厳しいと思うので2人での攻略推奨

 ラメセスバルトラーフミラー

 ラメセスヘイストでバルト

 バルト開始位置をセンターよりに

 バルト二回目でチハヤ始末

 ドラゴンの物理シールドされないようにジュエルを10以下キープする

 シールドされても砂漠念装スキルで

 女王出てきたら優先して倒す。

 センターの増援来たら優先して倒す。

(と途中まで書いてるがここから続きがないようだ

c#で抽象クラスのシリアライズについて

抽象クラスを継承したクラスをシリアライズする場合、どうも情報が落ちる場合があります。

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Info>
<ErrorMessage>era</ErrorMessage>
<hoge>えらーです</hoge>
</Info>
</ArrayOfInfo>

このシリアライズしたオブジェクトはもともとErrorMessageをスーパークラスのプロパティとして設定していた。

きっちりと子クラスでオブジェクトを作ると情報が落ちない。

var resultObject = new Info[] { new Info() };

抽象化すると落ちる。

AbstractInfo f = new Info();
var resultObject = new AbstractInfo[] { f };

おそらく、継承クラスを複数種類作ってシリアライズしようとした時と同じイメージで、シリアライズでエラーにはならないけど情報が落ちているのだと思います。

AbstractInfo f = new Info();// AbstractInfoを継承したクラス
AbstractInfo f = new Info2();//Infoを継承したクラス
var resultObject = new AbstractInfo[] { f,f2 };

なんてすると、此奴何がしたいのか分からないようになるからだと思う。。
シリアライズするときはインスタンスも厳密なクラスにしたほうが無難。

ASP.NETでJavascriptでPostするときの注意点

JavascriptでPostするときは基本的には、form.submit()をするだけでOK。

ただし、ASP.NETの場合、
asp:Button runat="server" ID="buttonexec" Text="実行" onClick="buttonexec_Click" onClientClick="execute()"

等でonClickをonClientClick中のjavascriptで呼び出してサーバー側の処理を行いたい場合は、単純には処理できない。

原因はPOSTの本文中に

Content-Disposition: form-data; name="buttonexec"

の押したボタンの情報が送信されず、サーバー側にそのままスルーされてしまうため。

原因が分かれば後は足してあげればよいだけなので、

var ele = document.createElement('input');
ele.setAttribute('type', 'hidden');
ele.setAttribute('name', button);
ele.setAttribute('value', button);
form.appendChild(ele);

とhidden項目を動的に追加して上げればよい。めでたし。

      • -

(追記)

単純にエレメントを付け足していくと
POSTする毎に付け足されてとんでもないことになった(汗)ので


if (document.getElementById(button)) {
document.getElementById(button).attributes.getNamedItem('value').value = button;
} else {
var ele = document.createElement('input');
ele.setAttribute('type', 'hidden');
ele.setAttribute('name', button);
ele.setAttribute('id', button);
ele.setAttribute('value', button);
form.appendChild(ele);
}
などとしてあげるほうが親切でした。

      • -

(更に追記)

if (document.getElementById(button)) {
document.getElementById(button).attributes.getNamedItem('value').value = button;
}
などせずに、submit()後に
ele.removeNode(true);
して上げれば良かった。

今度まとめよう。

Daoのアノテーションメモ

http://s2dao.seasar.org/ja/tiger-annotation.html


@Query("")
SQLに不足している情報を足したい場合。
where文の中身の他にgroupby,orderby等も指定できる。


@Arguments(Class[])
後述する構文でSQL中に使いたい引数。String等を指定できるが、
構造体を指定することも可能。
entry.name等。

@sql(string)
SQLを1から作成する場合。(同じファイル中

@SqlFile
外部ファイルにSQLを指定する場合。
Daoクラス名_メソッド名.sqlという形?
長くなるとこちらのほうが見やすいことも。

構文について

where number == /* number */のように囲むことで値を埋め込むことができる。

/*IF class.name != null*/
kana like /* kana */
/*END*/

のようにSQLを条件に合わせて変更することも可能。

Teeda開発メモ 各種リンク

大元

http://teeda.seasar.org/ja/extension/reverse/index.html

Teeda Extension コンポーネントリファレンス

http://teeda.seasar.org/ja/extension_component_reference.html

DefaultLayout

http://teeda.seasar.org/ja/extension/reverse/layout.html

s2containerの利用

S2Container container = S2ContainerFactory.create(#{ClassPath});
container.init();
SampleDao dao = container.getComponentByClass(SampleDao.class);

上記はDaoを使用する場合だけど、何らかのクラスを実行したい場合は、

S2Container container = SingletonS2ContainerFactory.getContainer();
container.getComponent(${Class});

のようなやり方も可能なようだ。
奥が深い・・。

.NET製のソフトウェアやVisual Studio C# 2010 Express の起動が出来なくなる

この辺りにあるファイル
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config
machine.config
を開く。

<system.data>
 <DbProviderFactories><add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>
</system.data>

これが何故か

<system.data>
 <DbProviderFactories>
</system.data>

となっていて、構文エラーで起動できなくなっていた。
とりあえず、SQLServerは使ってないので
<DbProviderFactories>自体をコメントアウトで解決。

自力で編集するようなファイルでも無いし、
突如発生したのでWindowsUpdateが問題なのかもしれません。