地震発生インクルード(ただし微妙

あんまり些細なことでもトラックバックを送るべきかどうか悩んだ結果、やっぱり些細なことなんで送らないことに。
どの程度から「言及」と言えるのだろうか、今一わからなかったり。
というわけで、元ネタはtonkatiさんのBlogから、簡単に地震発生インクルードを作ってみた。
作った僕自身が言うのだから間違いない。このインクルードは微妙である。
こういうのは、インクルード化せずにシナリオ内で随時調節したほうがいい、というのが僕の持論となりました。そのほうがいくらでも融通が利くしね。
一応以下にソース晒し。この微妙さかげんは実際に実行してみるとよくわかる。

# 書式1:地震インクルード X Y 表示時間 揺れのWaitTime 地震の揺れ幅
# 書式2:地震インクルード UnitID 表示時間 揺れのWaitTime 地震の揺れ幅
地震インクルード:
Local CenterX CenterY ExeTime SwingLevel SwingWidth StartTime

# 引数がX,Y座標指定なら
If IsNumeric(Args(1)) Then
	CenterX = Args(1)
	CenterY = Args(2)

	# 表示時間が指定されていたら
	If ArgNum > 2 Then
		ExeTime = Args(3)
	Else
		ExeTime = 20
	Endif

	# 揺れのWaitTimeが指定されていたら
	If ArgNum > 3 Then
		SwingLevel = 1 / Args(4)
	Else
		SwingLevel = 1
	Endif

	# 地震の揺れ幅が指定されていたら
	If ArgNum > 4 Then
		SwingWidth = Args(5)
	Else
		SwingWidth = 1
	Endif

# 引数がユニットID指定なら
Else
	CenterX = X(Args(1))
	CenterY = Y(Args(1))

	# 表示時間が指定されていたら
	If ArgNum > 1 Then
		ExeTime = Args(2)
	Else
		ExeTime = 20
	Endif

	# 揺れのWaitTimeが指定されていたら
	If ArgNum > 2 Then
		SwingLevel = 1 / Args(3)
	Else
		SwingLevel = 1
	Endif

	# 地震の揺れ幅が指定されていたら
	If ArgNum > 3 Then
		SwingWidth = Args(4)
	Else
		SwingWidth = 1
	Endif
Endif

StartTime = Now
Do While ( DiffTime(StartTime, Now) < (ExeTime / 10) )
	Center (CenterX + SwingWidth) CenterY
	Wait SwingLevel
	Center (CenterX - SwingWidth) CenterY
	Wait SwingLevel
	Center CenterX CenterY
	Wait (4 + SwingLevel)
Loop

Return