したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

RUINATERRA開発スレッド

1kazuki@Abars:2004/08/02(月) 13:28 ID:CiXGq7UI
という事でRUINATERRAをオープンソース化しました。
このスレッドは、オープンソースプロジェクトという形で、
RUINATERRAを開発するためのスレッドです。

RUINATERRAのソースコードのフルセットは以下からDLできます。
http://www.coins.tsukuba.ac.jp/~i021168/RUINATERRA_SOURCE_CODE.LZH

仕様書は無いので、仕様についての質問はこのスレッドでどうぞ。
なお、フルセットに含まれるツールを使えば、ステージやアイテムを編集する事も可能です。
ただ、自分のデータだけ書き換えてしまうと、ネットワークプレイをした場合に、
他のプレイヤーとデータが違うわけですから不具合が起こってしまいます。
不正利用・チート目的の利用は禁止いたします。
十分な知識の無い方はダウンロードしない方が無難です。
普通に遊ぶ分には、ここにあるフルセットをダウンロードする必要は全くありません。

チート目的にも利用できるという面で、厳選した人にだけソースコードを配布するべきだという意見もあると思います。
ですが個人的にはオープンソースにするからには、
できるだけ自由に、気軽に、多くの方に開発に参加して頂きたいな、という考えがあり、
従って誰でもソースコードをダウンロードできるという形にしました。
ツールなどの悪用も可能ですが、どのみちチートが蔓延している現在、
公開によるデメリットよりもメリットの方が多いと考えます。

19:2004/08/05(木) 08:04 ID:YCsdVRJA
DirectXの入れなおしと↑のファイルでも警告出たので
C++自身の設定を全初期化し、何とかビルドできました。
(どうやらうちのC++設定がおかしかったみたいです。迷惑かけました)
レンディバーさん、わざわざ有難うございましたm(_ _)m
しかし、Microsoft Platform SDK February 2003入れてないかもしれません。
後で入れときます(ーー;

VC.netのファイル全移行と修正中。
変な汚いソースなのでなるべく綺麗に纏めています(汗
銃器、バランス悪すぎなんでもう暫くゴニョゴニョ。

>>17
チームバトルは難しいですね。うちにはそんな実装無理っす orz

バトルシステムで問題だったLVの違いがあるので
バトルマップに移る時、一時的にキャラを初期値にもどすとかありましたね。
って、この仕様だとバトル中に落ちると下手にデータが初期値のままセーブされるとかありそうで(汗
Nosaveチェック作って、そのチェックが付いてる時は一切セーブされないとか作れば(あぅあぅ、無理

出来る事から一歩ずつ orz

20kazuki@Abars:2004/08/05(木) 08:59 ID:G60pRHG.
お疲れ様ですー。
何とかコンパイル通ったようでよかったです。

確かにこれは既にヘッダファイルと呼べるものじゃないですね(汗
僕はELからウィンドウズプログラミングに入った人間なので、
ライブラリ側とメイン側の二つのファイルでプログラム書いちゃうんです。
最近はその再利用性の無さに気づいてきて、微妙に分割方向には向かってるのですが。
VCのエディタは、クラスウィザードで好きなクラスに簡単に飛べるので、
分割しなくてもさほど問題ないんですよねー。自分で保守管理する分には。

バトル。
セーブは、Chardata::Saveでだけしか行ってないはずです。
なので、フラグ判定をこの関数の先頭に追加しちゃえば、
Nosaveフラグは作れますねー。

21レンディバー:2004/08/06(金) 00:47 ID:DiJ5Q7vU
>>19 色さん
おぉ、ビルドできたようで何よりです。
Platform SDK February 2003のCore SDKは、GDI+が欲しくてダウンロードしたので
(結局まだ使ってませんが)、Ruinaterraをビルドする分には影響はないと思います。
今見たらCOMという文字も見えましたけど、多分。
もしかすると、Windows 2000、2003.03のSDKなしの環境でExitThreadを使うと、挙動が変
(スレッドが中止されない)のは2003.03SDK入れていないせいなのかも知れません(未確認)。

ソース整理、系統ごとにファイルを分割するのと、オブジェクト指向にするのが
いいんでしょうか。複数人でプログラムを書いたことは無いんですが、
どこかのページにオブジェクト指向は複数人で開発するのに向いている、
と書かれていたような気がします。
問題は作業量でしょうか。ちょくちょく書き直して行けたら…。
あと、割とどうでもいいんですがWING_MAXなどの定数を使って配列を静的に
確保している部分、newと線形リストで数の制限を無くしたいなぁ…と。
ユーザーに殆ど還元されなさそうなので結構どうでもいいかも…。
むしろ、オープンソースプロジェクト全体の方向性とかを出し合って
まとめた方がいいんでしょうか。

>>20 Kazukiさん
なるほど、クラスウィザードと言うものがあることを今思い出しました(汗)。
VC使い始めた頃はCで書いていて、クラスとは無縁だったのですっかり…
大きなソースの時は専らウィザードバーの関数の定義位置で頑張っていました。
VC++のドキュメントは殆ど読まないので、プロファイルが使えることも最近(^ ^;)知りました。

そういえば、ソースコードフルセットのアーカイブですが、片っ端からDebug、
Releaseディレクトリを消してlh5で圧縮したら、10MBまで縮みました :)
時間的に余裕があればお試し下さい。

22天使 ホワイトソルジァー:2004/08/06(金) 07:48 ID:xnLvZ3D.
ソースってたれの?

23:2004/08/06(金) 09:18 ID:YCsdVRJA
まだあの糞長い(苦笑)ソースのままやってます。
分割するには量ありすぎですね。どうしましょう?

確か、ゲーム作る場合は20〜30くらいで分割すると効率よく
cpp全体を把握しやすい&一々カーソル移動なども楽など。
時間があれば20〜30に分けますか?

24レンディバー:2004/08/07(土) 02:39 ID:DiJ5Q7vU
1万6000行のcppファイルは途中で挫けそうなので(^ ^;)、とりあえず6000行のヘッダファイルから…。
明日(今日)結構時間割けそうなので、DirectX Graphics、DirectSoundなど機能別に
分けてみようと思います。

個人的な分割計画は、
○CGraphics、CSoundEffectなどのクラスを作り、クラスと型の宣言をヘッダで行う。
○メンバ変数は全てprivateかprotected、関数のみpublicにする。
○メンバ関数の実体はcppファイルを作ってそこに書く。
○グローバル変数を宣言するヘッダを作り、CSoundEffectやCMusicなどの一つしか存在せず、
 なおかつグローバルスコープであって欲しいオブジェクトを宣言する。

それと、その他の計画一部(まだソース全部読んでないので元々こうなっているかも知れませんが)
○メッセージループで毎フレーム呼び出すシーン処理関数の振り分けに、ポインタを使う。
○魔法弾や敵などは、全てクラスを定義して必要になった時newで確保、Createメソッドで
 初期化。MoveForなどのメソッドを作り移動指示、Drawで描画、Processで移動処理や思考、
 Destroyで終了処理とメモリ解放(要するにブラックボックス化したいだけです)。

何かまずい点があればご指摘お願いします。
あと、関数、変数名なんかも変えると思うので、命名規則も統一しておいた方がいいですよね?

個人的なものなんですが関数は
 (処理内容)(自分自身でなければ処理対象)(あれば補足)
例えば GetTexture とか StopAllSoundEffects とか IsReady とか

初期化関数など、Initialize単体の場合はそのままでいいと思いますが、InitializeSceneなどの
複数の単語で構成される場合はInitSceneの方が普通でしょうか?

変数は
(前)

g Global

p Pointer
r Reference

b Byte
w Word
dw DWord
qw QWord
f bool(Flag)
c Char
n int(Number)
l Long
fl FLoat
d Double
s String(Non Zero-terminated)
sz String Zero-terminated
fn FuNction

(後)
みたいな感じです。

bはboolに使った方が一般的でしょうか。windowsx.hでfがブーリアンに使われていたので
それの真似なのですが(^ ^; floatやdoubleは見たことがないので適当です。
それとWIN32_FIND_DATAなどのtypedefな型はWin32FindDataみたいにしています。
ちなみにBOOLはブーリアンのくせに4バイトあるので使っていません。

一般的な命名法則を学んだことがないので(汗)、変な点があったらご指摘お願いします。



長いなぁ…
と言うか時計がなかなか素敵な時刻を指していますね。就寝前の作業の段取りを大分間違えたようです。
それと >>21 の2003.03はどう考えても2003.02です。20"03"の流れで ".03"になったようです。(- -;

25さい:2004/08/07(土) 10:57 ID:Ql3E8Gfo
fはブーリアンの意ではなくて、flagのfでしょう。。

26:2004/08/08(日) 16:49 ID:GCkJmZmo
銃が必ず命中するので攻撃判断でヌオォしてます。
要望スレの全体化の修正とか今の技術じゃ到底無理。

来週忙しいのに…あぁ、課題が…かだ(ゴフッ

まだまだ銃時間かかるです。申し訳ございません。
ソース長すぎてスクロールとか大変です。誰か分割してくだはい(;;
人任せ良くないですね。あぁ、でもこの量はちときついっす。

27レンディバー:2004/08/08(日) 18:36 ID:DiJ5Q7vU
ここ二日間、まずはライブラリをオブジェクト指向っぽく書き直そうと頑張っていましたが、
ウィンドウクラスとDirectX Graphicsクラスのベースを書き終えたところで全体の2、3%程度しか
実装できていないことに気づいて茫然自失…(普通の人は書き直そうとする前に気づくはず)。
このままだと、途中で挫けなかったとしても終わるのが数週間どころか数ヶ月は裕にかかりそうなので、
コピー&ペーストでそのまま分割する方法に方針転換します。
その方がkzk.cppの内容をいちいち書き換えなくて済むし、修正は全部分割し終えてからちょこちょこ
すればいいし。
Kazukiさんが1年間くらいかけて書いたソースを全部書き直そうって言うのは大変考えが甘かったですね。はい。
とりあえず8月末の締め切りが恐いので明日辺り分割したプロジェクトをアップロードして一段落したいと思います。

fがflagの略と言うことについては、windowsx.hの438行目のWM_KEYDOWNのハンドラ定義の例では
/* void Cls_OnKey(HWND hwnd, UINT vk, BOOL fDown, int cRepeat, UINT flags) */
みたいな感じなのでそうだと思います。
boolはtrueかfalseの二値しか取らないのでフラグとほぼ等価だと思うんですが…。

28:2004/08/08(日) 22:43 ID:GCkJmZmo
ポチポチ実装処理やってました。
やっと飛び処理を攻撃力判断などでミスなど切り替え終わりました。
敵に当たる&壁に当たるとそこで消えるように辺りチェックの強化など。
壁越しアタックは強すぎです。

銃難しいですね(汗

暇あってもこの作業量は厳しいかと>レイディバーさん

29天使 ホワイトソルジァー:2004/08/09(月) 07:51 ID:xnLvZ3D.
あの RUINATERRA_SOURCE_CODE.LZH って杖や銃あるんだけど 何もないけど
どうするの?

30レンディバー:2004/08/09(月) 23:22 ID:DiJ5Q7vU
総作業時間は7時間ほど…疲れました。
とりあえずクラス単位で分けて、ゲームシーンの158KB、メニューシーンの
28KBの他は大体10KB以内に収まりました(ゲームシーンはとりあえず後で…)。
とりあえずビルドは出来たんですが、実行ファイルのサイズが472KBで、
どこか足りないのかなぁ…と思いつつも実行してみたら、町、メニュー、
ホストメニュー、ステージセレクトの各シーンできちんと画面が更新されないという
バグが出ました(汗)。
トレースしてみると、DrawLoopは毎回呼ばれているんですが、町シーンに移った後、
Draw::Flipが一回しか呼ばれていないのです。
このところはもう少しデバッグを頑張らないと原因がつかめそうにないです。
今日中は無理ですね……
そういえば、分割する前Debugビルドした時出ていたエラー、分割した後では
出なくなりました :)
存在しないserver.txtをserver_dataのヌルクリアなしにFirst::Mainで
String::LoadFromFile(server_data,"server.txt");していたせいかもしれませんが
よく分かりません。

ところで、DrawLoopが何処で呼ばれているかを調べていた時、WinMainのメッセージループでも
呼ばれていたのは分かったんですが、WM_PAINTの対応でも呼んでいるのを発見して(↓)、

*** コールスタック ***
MainWndProc(HWND__ * 0x001303dc, unsigned int 15, unsigned int 0, long 0) line 40
USER32! 77cf3a50()
USER32! 77cf3b1f()

WM_TIMERで定期的にWM_PAINTを送っている訳でもなし、InvalidateRectも使ってないし、
ずっとウィンドウは最前面にあるのに、何故送られてくるのか不思議でしょうがないんですが、
どうしてシステムからWM_PAINTが送られてくるんでしょう?

とりあえずDraw::Flipが呼ばれなくなった原因を探しに戻ります。

31にょーにょー:2004/08/10(火) 01:22 ID:/Pl3KnDo
>>30
ソースの分割ご苦労様です。
WM_PAINTに関してふと思ったので書き込みさせていただきました。

WM_PAINTが呼ばれるのは、更新領域が発生した時です。
ウィンドウに隠れたりメニューが表示されたりetc...とか
ルイナのプログラムの中でWM_PAINTの中でInvalidateRect関数を呼ぶんでいますから
一度でも更新領域が発生した場合、WM_PAINTが無限ループしちゃうんですね。
だから、呼ばれてるんじゃないでしょうか?
(間違えていたら、スルーしてください(汗)
普通のWindowsプログラムでは書いちゃいけないソースなんですが、
ゲームプログラムの場合は、PeekMassageなんかでも
メッセージを受け取ってますから特に問題ないと思いますが・・・
個人的にWM_PATINでゲームの描画ループは作らない方がいいのでは?

32レンディバー:2004/08/10(火) 02:59 ID:DiJ5Q7vU
はぁ…と、とりあえず分割終わりました…
http://www.abars.net/~rendivar/osproject/subdivided.lzh (246KB)
疲れたので簡単な説明だけ…

一つのプロジェクトにまとめると、ファイル名が衝突して面倒なので二つに分けました。
ライブラリ側のLibrary.dspとRuinaterra本体のRuinaterra.dspです。
dswファイルはそれぞれのワークスペースで、Ruinaterra.dswではRuinaterra.dspが
Library.dspに依存しています。
それと、Ruinaterra.dspはブラウズ情報を生成するようになっています。

ソースやリソースは、ライブラリがLibraryディレクトリ、RuinaterraがProjectディレクトリに
入っています。関数・クラス・構造体・大域変数などの宣言はヘッダファイルに、
関数の実体をソースファイルに書いてあります。
基本的な分割単位はクラスで、あるクラスを宣言したヘッダファイルと拡張子以外が同名の
ソースファイルに、そのクラスの関数が書いてあります。
ただ、構造体の宣言だけのヘッダ(ex:Project\Database.h)には対応するソースはないですし、
逆に対応するヘッダのないソース(ex:Project\Application.cpp)もいくつかあります。
大体のファイルは名前で内容が分かると思うので……、見つからない関数などがあれば
秀丸でgrepとかして見つけて下さい(汗
ちなみにヘッダやソースには、分割コンパイルするために必要なこと以外は
殆ど手を加えていません(多分)。

Ruinaterraプロジェクトのゲームシーンだけは、158KBもの巨大ソースになったので、
さらに目的別に分割しました。Project\Game Sceneディレクトリの中に、GS*.cppで
入っています(ちなみにヘッダはGameScene.hのみです)。
これも大体ファイル名から内容が分かると思うんですが、いくつかの関数は二つ属性を持っています
(ex:Game::DrawCharはCharacterとDraw)。
こういった関数はCharacter、Enemy、Magicなどオブジェクト属性(?)を優先させてあります。
その他の余り物関数は、GSDraw.cppとかGSAction.cppに入っています。
更に余り物になった関数は、GSMiscellany.cppでごった返しています。

ライブラリのソースが読むべきヘッダはLibrary\Library.hで、Ruinaterraプロジェクトでは
Project\Common.hです。

それとWinMainですが、Ruinaterraプロジェクトで#define WINMAINしたソースに
展開されるようになっています(実際のソースはLibrary\WinMain.h)。
今のところ、MainScreen関数があるProject\SceneControl.cppに展開しています。

それで、これらのファイルをソースコードフルセットを解凍したディレクトリに解凍すれば
普通に使えるようになるはずですが、Ruinaterra.exeは消さないで下さい。
FirstScene.cppのFirst::Mainで、Ruinaterra.exeを例外処理せずに読んでいるので、
81行目のfeofでエラーが出ます。

…これ以外のことはソースを読めば多分分かります。
もし、subdivided.lzhにあってRUINATERRA_SOURCE_CODE.LZHにない
疑問があったら書き込んで下さい。

簡単な説明と言いつつ中途半端な説明になった…
文章中の言い忘れや間違いは適宜補完・修正して下さい…



>>31 にょーにょーさん
初めまして。
InvalidateRectはkzk.hにもkzk.cppにもどこにも出てこないし、ウィンドウプロシージャでは

case WM_PAINT:
  DrawLoop();
  ValidateRect(hWnd,NULL);
  break;

なので何故出るのか不思議でしょうがなかったのですが、よく考えたら…

1. WM_PAINTでブレークするようVCで設定。
2. Debugビルドでデバッグ起動。
3. WM_PAINT→VCにフォーカスが移る(VCでRuinaterraが隠される)。
4. VCで実行を再開→WM_PAINTが来る。
5. 3に戻る。

思いっきりずっと最前面じゃなかったですね(^ ^;
これでWM_PAINTがずっと送られてくる理由は分かったのですが、
DrawLoopはWinMainのメッセージループでも呼ばれているので、WM_PAINTの
ところにある理由は謎のままです。



あぁ、時計が……

33:2004/08/12(木) 08:58 ID:N.NTHSRI
分割されたのが上手くビルド出来ないです。
銃追加処理の溜め攻撃…出すぎなのを修正してます。
溜め攻撃時弾丸が重なってバッと出るとかなるのをどうにかしてます。

忙しくてほとんど出来ません。
杖…?誰か追加してやってください。溜め攻撃で杖らしく魔法が出るとか(汗

34レンディバー:2004/08/12(木) 14:27 ID:dXqP/AxM
ごめんなさい、上手くコンパイルできないファイルってGS*.cppですか?
これらのファイル、#include "../Common.h"が#include "Common.h"に
なってたので、修正しておきました。
http://www.abars.net/~rendivar/osproject/subdivided.lzh (246KB)
もし他のエラーでしたらエラーメッセージをお願いします。

35:2004/08/13(金) 10:18 ID:N.NTHSRI
直りました。全部のファイルが入って無いのかと思ってました(汗
分割後のデータに銃処理移して、データ再度直して、

正直、銃強すぎなんですよ。
ホストの人にEXE渡して4人でやってみました。
溜め攻撃が一斉発射してしまってたり攻撃でフラマ風が一々出るので重かったり
更に一人、ブルーエラー画面出てしまってます。orz meらしいですが(汗
原因が良く解らないので暫く銃処理調べてみます。待ってくださってる方申し訳ございません。

>レンディバーさん、お手数おかけしてます。
>MILLI氏、見てるなら銃処理のデバッグお願いできません?エラー何処で出るか解りません。

36レンディバー:2004/08/15(日) 00:37 ID:.Rfh.ZmI
ビルドエラー、直ったようでよかったです。
Debugビルドでも変な挙動をしなくなったようなので、VC付属のデバッガを
使えば発見の助けになると思います。
分割した時のミスが起こしたバグだったらすいません(汗

37kazuki@Abars:2004/08/18(水) 10:45 ID:09T7.TSQ
分割お疲れ様です。
明日ようやく筑波に戻るので、戻ったらDLさせて頂きますね。

38レナス:2004/08/28(土) 09:52 ID:jRjJ6472
すいません
久しぶりやったんで
パッチがどれか分かりません
表示してくれませんか?

39零 </b><font color=#FF0000>(ujQY36b2)</font><b>:2004/08/30(月) 13:52 ID:u48dUUdY
>>38
スレ違い気味。
質問スレで検索してみてください。

40kazuki@Abars:2004/09/01(水) 20:45 ID:yDArppPA
ごめんなさいー、授業&新連載&学園祭&ATULADOとやってたら、
思った以上に忙しくて僕はしばらく手を出せないっぽいです。
10月中旬に入れば学園祭が終わって何とか色々やりたいのですが。
ハーツさんの素晴らしい絵の実装とか、有志の方による実装orもう少しお待ち下さい。
とりあえずpngはローカルに保存しておきましたです。

後、サーバの移動だけは早めにやってしまう予定です。
今ドメインのトランスファーをやっているので、
もう少ししたら新サーバでの運用となる予定です。
というか今のサーバ重すぎorz

レンディバーさん、ソースの分割素晴らしい出来でした。
あれならやる気出ますねー。
ありがとうございます!

そんな感じで。

41<削除>:<削除>
<削除>

42<削除>:<削除>
<削除>

43<削除>:<削除>
<削除>

44<削除>:<削除>
<削除>

45<削除>:<削除>
<削除>

46<削除>:<削除>
<削除>

47<削除>:<削除>
<削除>

48色 </b><font color=#FF0000>(.t4dJfuU)</font><b>:2004/09/20(月) 21:03 ID:s9sfOBSA
■やってる事
銃攻撃(60%)・試用期限の追加(開発テスター様用処理です)
↓と攻撃でキャラ必殺技の実装(65%) 新マップと山ボスの実装(一応完成)
キャラ専用装備(実装) アセンブラ単位でのチート防止(ほぼ終わらず)
実装による通信仕様の変更(全然終わってない=ネットモードでは激しく落ちる現在)
実装するとそこからチート技が増えまくってます。ネット安定してません(特に銃攻撃と必殺技)
送受信の仕様変更と短縮化・同期の簡略化と修正(これも全然)

■ 企画段階のこと
チャットログを見やすくする(名前は色つけるとか)
個人用内部チャット(/名前 本文 などでその人のみに話せるとか)
回復モーション(回復数字だけじゃなく回りにエフェクトとか)
あー、このままの状態だと絶対無理 orz

上の開発版Ruinaterraを配布を検討してましたが当分延期します。
安定してない使用期限付きβ版を一部にテストしてもらってましたが
30日で試用期限が切れます。その後は消して下さい。

49名無しさん:2005/01/23(日) 16:07 ID:ciDOEg96
最新verのソースコードUPお願いします。

50とっくん:2005/02/11(金) 15:27:53 ID:zTc8IIgk
ツールソースコードのやり方おしえてください

51名無しさん:2005/02/19(土) 18:17:08 ID:fKjYulmw
>>50
言ってる意味がわかりません
っていうか厨房消えて

52security:2005/03/12(土) 22:41:11 ID:JRLfUezY
最新版と言うより、整理したソースの復活希望かな。

53サヴェルジェ:2005/03/17(木) 08:17:37 ID:KS4PuRKM
サヴェルジェです。よろしくです。
初めて書き込むんですが、Verのソースって
フルセットの中のどこにあるんでしょう?
ネットワークでテスト中に他人に入られてエラー続出orz
なんか分かりにくい文章ですみません
よろしくお願いします。

54security:2005/03/17(木) 22:21:11 ID:674RvO06
#define SOFT_VER 33
//ソフト(クライアント)のVER。これが違うと、ログインできない。
//GUIDも変える!

この33が1.33の小数点以下部分。34などに変えてください。
後、GUIDは調べてるが弄らなくてもオフに影響は無かった。オンはLANでは影響なし。

2.00などにロビー対応は無理なので。
オフ用に2にしたいなら
//ソフトのVERを表示
char message[8];
sprintf(message,"ver1.%2d",SOFT_VER);
の所を弄ればタイトルだけ変わる。

55サヴェルジェ:2005/03/18(金) 00:15:20 ID:KS4PuRKM
VER変えられました。
securityさん返答ありがとうございます。

56サヴェルジェ:2005/03/18(金) 13:47:46 ID:KS4PuRKM
かなり初心者の質問になるんですけど
cppファイルやhファイルを書き換えた後
ルイナにその変更を反映させる方法が
分かりません・・・
普通に実行ファイル化しようとすると、テキストの容量が大きすぎて
出来ませんorz
思いっきり初心者の質問ですが
よろしくお願いします。

57security:2005/03/18(金) 15:22:07 ID:674RvO06
VC++でビルドすると500KB程度になるのですがなりませんか?
テキストが大きすぎるので一斉ビルドしようとパワーを食います。
ビルドには、cppごとにコンパイルの中間データを作ります。
つまり、cppが大きければ大きいほど負荷とパワーを食います。

Abersのcppとhは1つで、実際に計測すると
私が仕事で作ったデータより数倍のビルド時間など要りました。
1つのcppでやるのがどれだけ効率悪いのかこの製作者は知らないみたいなので
テキストを分割してみてください。

またはVC++のオプションでサイズ指定などがあるなら解除などしてみてください
(あったかわかりませんが、某言語ではありますので)

前に整理されたRuinaterraデータがあれば私の改造付で渡せますが
削除してしまったので自分でやってもらえれば良いです。
確実に言えるのは
ファイルが1つに纏まりすぎている所と
変数などがきちんと分けられていない為、ビルドの時間がさらに延びているところ。

ゲームプログラミング勉強される方はこれの改造は素直にお勧めしません。
とても悪い見本と覚えてください。

58security:2005/03/18(金) 15:27:41 ID:674RvO06
Abersへの追記

Abersに嫌われる言い方だったので少し追記します。
実際に「プログラムは何が何でも動けば良い考え」ならプログラマ失格です。
また、ソースが多人数で開発していても解るか考えた上で見て下さい。
卒業制作から始まったRuinaterraらしいので汚いのは当たり前です。
ですが、ATULADOに関してもこれのソースみたいなのであれば

「上級プログラミングを作る」という本の 〜ソース整理術〜
を読まれることをお勧めします。

59サヴェルジェ:2005/03/19(土) 10:30:39 ID:KS4PuRKM
あの・・・VC++以外でのビルドは出来ないんですか??
VC++は持ってないもので・・・orz

60security:2005/03/19(土) 14:54:25 ID:674RvO06
いや、解らないですね。
BCCでやってみましたが、一部コンパイルエラーっすね。
やり方が知らないのか(汗
仕事でも日課でもCはVCオンリーなんでよーわからんとです。

61サヴェルジェ:2005/03/19(土) 20:19:51 ID:KS4PuRKM
BC++でコンパイルしてみたら
エラーは出ないんですけど・・・
どうも上手くいってないみたいで
エラーが出てないから、何処が駄目なのか分からないし・・・
コンパイルが出来ないと先に進まないorz
此処で手詰まりかな・・・
まぁ、色々試して見ます。
色々答えていただいてありがとうございました。

62レン:2005/03/20(日) 21:50:18 ID:KS4PuRKM
作成ツールを使ってアイテムデータ作ってみました
よければ、DLしてみて下さい
下のURLから行けますデスw
http://www.geocities.jp/sihomaria/ruinaterra/dl.html

63n:2005/03/27(日) 07:53:24 ID:XMX2ZXrE
最近思い始めたことを少し。

・がんばってくださいといっている人→プログラミングできない
・ソースが駄目だといっている人→プログラミングやりたくない
・Abers→ソース公開したのでもう満足

ということでルイナに未来はない気がするのは自分だけでしょうか。
現にオープンソース化して半年以上経っているのにルイナ更新されていません。

じゃぁ貴方はどうなんですかって話ですが、プログラミングやりたくない派です。

こんな馬鹿な奴がいるんだ程度に読み流してください。

64★アルさん☆:2005/03/28(月) 05:20:06 ID:fKHaGnxw
レンさんアイテムデータ制作
がんばってくださいw

65レン:2005/04/05(火) 13:35:18 ID:KS4PuRKM
現在製作途中のスクリーンショットを掲載〜
http://www.geocities.jp/sihomaria/ruinaterra/repo-to1.html

66レン:2005/04/06(水) 18:21:41 ID:KS4PuRKM
お久しぶりです
大分アイテムの更新データが広まってきました
ありがたいことですw
さてもう大分前に更新した〜って言う人は
次の更新がきになる時期でしょう
ついに次の更新日を発表します
その更新日とは今から約二週間後の4月21日の夜です
その時点での更新箇所はまだ未定ですが
アイテムは確実に増えます トレジャーハンターの人などは
覚悟しておいてくださいネw

67レン:2005/04/07(木) 14:55:46 ID:KS4PuRKM
何度もスマソレンです
ここいらで更新データの製作者を紹介しまw
http://www.geocities.jp/sihomaria/ruinaterra/repo-to2.html

68サヴェルジェ:2005/04/07(木) 19:13:28 ID:KS4PuRKM
VBでコンパイルしようとしたらエラーエラーエラーorz
やっぱりVC++以外はムリなんでしょうかorz
VC++以外コンパイルできたという人いませんか?

69n:2005/04/11(月) 07:51:47 ID:2OmqXcbk
C++をコンパイルできるBASICコンパイラなんてあるわけないかと。
こんな発言他でしたら大変なことになりますよ。

70security:2005/04/17(日) 10:04:14 ID:PmctnLAA
>レン氏
どのような追加方法をしてるか知りませんが
アイテムテーブルの数とか大丈夫だろうか?

>サヴェルジェ氏
VBでは絶対無理です。
BCCでどうにかすれば出来るかもしれませんがソースをかなり変えないと無理でしょう。
VC++で作られてるのでVC++以外は厳しいところです。

>n氏
一応C言語をコンパイルできるBASICで作られたコンパイラもどきなら
あるが…C++は無いよな。
後、ソースが駄目と言ってるが実際やろうと思えば案外出来たので言っとく。
それに関しては次レスで。

忙しくてネットが今日一日しか出来ないのでレスは連休にでも見ます。

71security:2005/04/17(日) 10:07:51 ID:PmctnLAA
とりあえず、情報交換やらソース交換でも連休にしたいので
レスは適当にしてください。連休にレスを見ますから。

現在、こちらが改造できているソースの種類(簡単なものが多いのは言わないで)

DQで言う種(ステータスアップアイテムの実装)
修業屋(魔石を払ってステータスアップ可能。魔石が後半余ったりするので作った施設。施設に関してなのでそれ以外はプレイヤーのステータス程度)
敵死亡カウントアタックモードステージ(100敵切りとかするとコンプリートして町に戻る。敵死亡カウント変数など独自に変数使ってます。死亡処理も若干弄ってます)
敵の体力表示(画面端に数値を出すだけですが、さらに改造すればバーなど出せます。描画や敵の体力参照など。)
全体回復アイテム(ショートカットキーで使用可能になってます。魔法の全体回復を関数に分けたりしてアイテムテーブルも弄ってます。)
ステージリストの追加方法(山から下に選択したり…。簡単な改造です。ステージ選択リストしか弄ってないような…)
アイテム合成屋(特定のアイテムを使ってレアと交換するような施設です。 施設でアイテムの数値を一個ずつ持ってるか調べて全部持っていれば交換するだけ。)

バトルロワイアルモード(復活なし。最後の一人になるまでのバトルモード。
アラみたくステージ単位で復活制限をつけたりしてます。復活不可エリアも作ろうと思えば作れます。)

経験値倍装備(装備してると経験値が倍になったりする装備システム。経験値自体の計算は自分なので…)
これらはかなりアイテムテーブルやシステムを変更しています。

以下、個人的に欲しい改造情報とか改造したい内容やら。

キャラの追加をしようと思ったら色関係で色化け&ネットでエラーするので正しいキャラ追加方法
チャットの改行防止&文字化け防止関連。
銃攻撃関連。
マップエディタなどのツールの改造関連。(ツール関連は現在改造してないので)
高い所から落ちると地面を貫通やらの地形当たりの判定修正関連。
倉庫のアイテムリスト画面を武器順やらに整頓して見れるような辞典画面にしたいとか。

後、改造系アイディア募集一応。アイディア採用するか解らんが。

ソースははっきり言って汚い。改造元が汚いのだから仕方が無いって事で。
ま、誰か改造してる方、情報交換ヨロシク。

72レン:2005/04/17(日) 21:45:48 ID:KS4PuRKM
えっと一応アイテムテーブルの方は大丈夫だと思います
ちなみに追加方法はソースコードフルセットの中にあるアイテムツールです
ムリなほどに追加はしていないので・・・
後、案は一杯あるんですが、一応securityさんのアイディアに対してレスすると
ゲームバランスを考えて
☆ステータスアップアイテムの実装
>アップアイテムの使用回数制限をつけるといいかと思います
使用回数制限か自ステータスの最大値の設定
☆修行屋
>魔石の必要数を多めに設定
無尽蔵に能力を上昇させる事ができるようになるとつまらなくなりますので
☆敵の体力表示
>これは体力数値表示では無くバーのみの表示がいいかと思われます
☆ステージリストの追加方法
>これは是非!wステージデータの作成だけしか出来ないので
VC++のコンパイラが無いんで弄れないorz
俺のほうの案の方は一杯あるんで・・・もしよければ、メールかなんかで
一応のソースコードと一緒にどうでしょ?
チト対策とかがあるんで、掲示板に書き込むのはちょっと・・・

73レン:2005/04/20(水) 22:15:08 ID:KS4PuRKM
テスターの人に緊急連絡します
更新前の最終調整会議の召集を行いますので
4月21日20:00〜20:50(時間変更になりました)となります
基本的にテスター全員参加になりますのでよろしくお願いします
尚会議場所はテスター専用ページのチャットルームになっています
↓より行けます専用ページの入り口は探してください
http://www.geocities.jp/a310ajp/
パスワードをまだしらないテスターの人は開始時刻までの間に
レン・アルト・ツォン・サナトスの誰かに聞いてください。
急ですがよろしくお願いします。
尚データ更新時間は21:00を予定しています
会議の進み方によってはずれる場合もあります

74レン:2005/04/21(木) 21:10:49 ID:KS4PuRKM
皆さんおまたせしました
ちょっと遅れましたが・・・
↓よりDL可能です
http://www.geocities.jp/sihomaria/ruinaterra/dl.html
後でクエストの情報も投稿いたしますのでそっちもよろです

75& </b><font color=#FF0000>(b.D0pQ.c)</font><b>:2005/04/21(木) 21:41:09 ID:5iTDZgC2
上をダウンロードして、もしトラブル当ありましたら
下記のホームページのクレームBBSの方まで連絡ください。


ルイナティラー開発部(仮名)URL:http://www.geocities.jp/a310ajp

76レン:2005/04/21(木) 21:56:28 ID:KS4PuRKM
どうも〜更新された方いかがでしょうか?(マダワカランダロ
さて皆さんが気になっているコレクションカード
その説明をしますw
コレクションカードは1〜10までの10種類が存在します
その10種類を全て集めた方は
私のルームまでお越し下さい。
カード10種類と専用装備品を交換します。
尚カード10種類は返還はしませんのでご注意下さい。
頑張って集めてくださいね♪w
ではw

77レン:2005/04/22(金) 19:20:44 ID:KS4PuRKM
さてはてもうすでに何人かは
コレクションカードと交換された方もいると思います
専用装備品を獲得した人に注意事項があります。
1.専用装備品は他人・別キャラに移転させるのを禁止します。
2.私以外の人は各自最大一本のみの所持となっています
(あまってるからあげるはありえません
3.尚、不正で手に入れた方チート者扱いになる
可能性がありますので注意してください
こちらで交換者はメモってますの
>テスターの皆さんへ
テスターの定期召集は25日まで休止とします
数日間のヤスミの間色々なアイテム集めなどを堪能してくださいね♪
byルナ

78おやじ:2005/04/23(土) 10:25:12 ID:hAMJulGU
フォーツナのスピードダウンは意図的ですか?

79& </b><font color=#FF0000>(bGP9kXgo)</font><b>:2005/04/23(土) 10:32:18 ID:hAMJulGU
あと、消費MPの大幅増加もです。

80おやじ:2005/04/23(土) 11:25:41 ID:hAMJulGU
↑は俺です。

81security:2005/04/23(土) 12:38:16 ID:x3XxkItU
仕事が何とかで帰ってきました。
体力バーに関する情報不足と携帯に知人から言われたので。
ちなみに出すのはキャラと敵の位置が一番近いものです。
敵が死んだor離れても非表示にならない不具合を修正。
無理やりな部分が多いのでまだ改良の部分があります。
改造版ソース持ってる人は知人のみですが、修正点はまたお伝えします。

>VC++のコンパイラが無いんで弄れないorz
って事なので、リストを外部ファイルでつけたし出来るようにしようか…とか。
アイテムみたく全ステージ数(リストの都合で20前後)と名前、呼び出すマップデータを
外部データにして、それを編集すればステージが増えるように…
出来るかどうか解りませんが調べておきます。
switchをforにして全ステージ分ループで改良すればどうにかなりそうですが。
C++があるなら本当に簡単に出来る改造ですが、外部リスト出来るように
これから考えて行きますね。お待ちください。

ソースコードに関しては満足がいく完成度になり次第、交換など公開しますので
お待ちください。
(バトロワモードで復活禁止を改造にして復活チートされると無理やりホストごと落ちる不具合
があるのと、独りになった瞬間即町に戻り、復活できなくなる不具合上、
一人になると優勝者名でも出して時間が立つと戻るようになどしないと…
後、チートでなぜ落ちるか良く分からないので直るまで公開廃止させてもらいますorz)

敵のアタックモードは、画面隅にカウント数を出すようにしました。
アタックモード時、敵からのアイテムを出さないように設定しました。

改造版を楽しみにされてる方は夏ごろまでお待ちください。
ステージと外伝ストーリー、追加魔法、追加要素をかなり付け加えて
配布できるように頑張っておりますので…

よりネットゲームに近くなるように…

アイテムの回数制限はセーブデータの書式自体を弄らないといけないので
読み込み部分の照合をとれなくなりそうです。
セーブやロード関係などの改造もありますし…
なので修業などの改造はまだバランス修正上先になるかもです。後回しで。

町の施設追加はかなり簡単に出来るので宿屋などの処理を見れば解る通りです。
分かる方は挑戦して見てください。改造難易度はかなり低めだと思ってます。
ステータス・レベルが多いに従って必要魔石の数を増やすように修正しました。

後、チート対策はしてないので(汗)するつもりは無いです。
してもデータ上破られるのは解ってるので
(改造元がそういうチート可能仕様な為、僕ではどうしようもないのです)
お察しください。

82レン:2005/04/23(土) 20:21:04 ID:KS4PuRKM
その通りです
かなり意図的です(爆
尚フォーツナの変更点は、速度の低下・消費MPの増加・威力の大幅アップです
そのほかの魔法も若干補正しています
気付かないレベルの魔法もありますが・・・w
尚、速度の低下は入力ミスです今度修正版を載せますのでしばらくオマチクダサイ

83メシア:2005/04/24(日) 01:16:50 ID:OMwVTEoo
あの・・ド素人ですいませんが・・・item.EXEなどを編集しただけで
ゲームにその作ったアイテムが出てくるわけですか?
もしそうならほかのexeも同じ方法で動くとして・・・
自分でオリジナルとかが普通にできるわけですよね?

84名無しさん:2005/04/24(日) 01:47:03 ID:39dH4OyI
>>83
そんな簡単なもんなんですかね?
どの画像がどれを表しているのか
どうやって新しいデータを加えるのか
どちらにしろプログラムに詳しくないとできないのでは?

85レン:2005/04/24(日) 09:33:01 ID:KS4PuRKM
item.exeを編集するのではなく
item.exeを使ってファイルを書き換えてるんです。
itemフォルダの中に入っている1~15.datって言うのがアイテムの情報ファイル
なんでそこのデータを書き換える為の実行ファイルがitem.exeなんですヨ〜
まぁ、公開しなければ自分専用のアイテムってのが手に入れることが出来ます
ネットワークプレイの時は自分以外にはemptyって言うアイテムになります
ですからitemを追加するだけならプログラムの知識は全く必要なしです
必要なのはやる気だけw

86メシア:2005/04/24(日) 12:32:39 ID:OMwVTEoo
↑のレスでもお答えありがとうございます!
早速やってみますwありがとうございました。

87メシア:2005/04/24(日) 12:54:59 ID:OMwVTEoo
実行するにはdatを右クリックしてopen with を選べばいいんですか?

88メシア:2005/04/24(日) 15:07:53 ID:OMwVTEoo
あ、できました、すいませんw
ちなみにこのexeシリーズでほかのヴァージョンも改造できるんですか?
質問ばっかりですいません

89ラオン博士:2005/04/24(日) 15:46:07 ID:zfp/twjg
クエストガムズカシイ

90レン:2005/04/24(日) 17:44:24 ID:KS4PuRKM
>メシア
他のバージョンと言うと?
>ラオン博士
その書き込みはスレッド違いですので注意してくださいね

91メシア:2005/04/24(日) 20:38:50 ID:OMwVTEoo
ほかのバージョンっていうのはソースコードが入っているのがver1.33
なんですが、俺のキャラがはいっているバージョン、つまりver1.30
に、オリジナルアイテムとかが作れるんですか?

92zark:2005/04/25(月) 01:17:12 ID:no.j4/66
使用条件「チーターで無い事」って気持ちはわかりますが意味があるとは思えません…。
あってもなくても変わらないなら付けない方がいいんじゃないでしょうか。

93レン:2005/04/25(月) 14:35:28 ID:KS4PuRKM
<メシアさん
えーっとツールコードを移動するとか関連フォルダをコピーすることで
オリジナルアイテムの作成はどのバージョンでも一応出来ると思います
<zarkさん
まぁ一応書いとくことに意味があるってことで(爆
チーターが守るとは思ってませんよ(可能性は0ではないかも知れませんがねw

94大天使水龍:2005/04/29(金) 15:12:16 ID:YL6ZPRBk
アイテムのデータを作ってみました下のURLからダウンロードできます(アプロダなんで消えるかもお早めに
http://uper.on.pc1.jp/upload/so/up1460.zip
アイテム引換券を作りました。1〜5までアリマス。集めたらルームに入ってきてください。アイテムと交換します。そのアイテムは他人と交換禁止で
新たにつけられるものを追加。
体力が上がり魔力が下がります。どんなものかはご自分でお確かめください。

95大天使水龍:2005/04/29(金) 17:34:50 ID:YL6ZPRBk
>>94のデータが間違って他のファイルだったので修正
http://uper.on.pc1.jp/upload/so/up1461zip.html
同じくUPロダなのでお早めに
間違ってダウソした方には本当に申し訳ないorz

96大天使水龍:2005/04/29(金) 17:39:44 ID:YL6ZPRBk
>>95もなぜか間違っていたっていたと言うか完全にドジったのでもう一回UP(何度も申し訳ない一回吊って来る
http://uper.on.pc1.jp/upload/so/up1460.zip
内容に関しては>>94参照で
オレドジしすぎだ・・・・
迷惑をかけましたm(__)m

97大天使水龍:2005/04/30(土) 00:29:12 ID:9uhUSQx6
アイテムの修正版をUP
http://damepo.orz.ne.jp/up/img/step026.zip
変更点 アイテムの−を消しました。コレでステータスが−になる事はないです
    一部アイテムのレア度修正
    一部アイテムの名前修正

98レン:2005/04/30(土) 19:38:16 ID:DrCbnFkk
アイテムを作ってみました。初めてなのでうまく言ったかわかりませんがUPします。どうぞよろしく・・・http://rivernet.cool.ne.jp/upmini/200504b/20050430193448_4088.jpg

99大怪盗ゴロツキーヌ:2005/04/30(土) 19:59:14 ID:no.j4/66
>>98
レンさんとは別のレンさん?

100レイ:2005/04/30(土) 20:07:48 ID:DrCbnFkk
すみませんレイです

101大天使水龍:2005/04/30(土) 22:43:39 ID:9uhUSQx6
>>100レイさーん拡張子がjpgにってるよー(まぁ拡張子をzipに変えれば済む話ですが・・・)
あと>>97でUPしてある修正版ジャナイッス
もう一回拡張子をzipに変えたファイルをUPしたほうがいいよー(出来れば修正版の方のデータを使ってくれると嬉しいです)

102大天使水龍:2005/04/30(土) 22:54:23 ID:9uhUSQx6
>>101の続き(書き忘れ)
レンさんからも言われましたがステータスが一回−になるとどんな装備もつけられないので
−になる防具&武器はやめたほうがいいらしいです。(修正版は−補正を削除してアリマス)
あとアイテム見させていただきました。イイデスネー(ぇ
武器と防具では一番悩むのは多分(?)名前だと思うのですがものすごくよかったです。説明なんかもいいですってか見習いたいぐらいですヨ。
あれだけのデータ書き直すのも大変だと思うのでそちらのデータに修正版のデータを直接打ち込んでやってください
量は自分で作っただけの分だけなのでそんなに量もないと思います。

103レイ:2005/04/30(土) 23:06:15 ID:DrCbnFkk
がんばってやってみます明日か明後日には出したいと思います。

104レイ:2005/05/01(日) 11:20:30 ID:DrCbnFkk
武器・防具を少し追加しました。
−になっていたものも修正いたしました。
UP起きますのでよろしくです。
http://rivernet.cool.ne.jp/upmini/200504b/20050501111620_1773.zip

105security:2005/05/01(日) 11:35:21 ID:x3XxkItU
実家に戻ったのでようやくシステム改造をソース公開しようと
現在、テキストに打ち直し中。
C言語コンパイル出来る方・もしくはC言語が理解出来る方のみ協力をお願いしています。
アイテムは作れる・企画は出来る方(レンさんなど)は企画などをカキコして下さるか
world_is_not_beautiful@hotmail.co.jpまで連絡を入れてください。
企画が通ればそれらの改造をこれからの目標として作業したりします。
結構な範囲での改造作業な為、容易に配布したくないというのが我々のケチ臭いところ(笑)
何しろバグが多いやら何やらで…容易に出すと後が困りますから。

現在のメンバー紹介 私・某氏・ファンネルさん・日曜PGさん
もし協力される方はMSNメッセアド↑に書いてるのでそいつで。
ソースだけ欲しい人はお断り。なお、協力されるPGさんはRuinaterraを
正常にコンパイル出来る方のみでお願いします。

>>102さんやらレン氏やらが-補正出来ないので悩んでいるようなので
0以下で0になる演算を入れれば何とかマイナスにならないはずだし
応急処置として装備のステータス書き換え処理にその補正かけておきます。

1.50として
連休最後の日にでもマイナス補正の0以下修正くらいのバイナリUPしてみます。
後、もうすぐ出来上がるステージの編集機能が出来たらそちらも…
連休だけでかなり変わるようにしたいですな。
ほかにも色々改造してたりしますがバグ修正が終わってないので
(仕事に急がしいんです。お察しください)

PS:敵の体力バー計算で位置が全く同じ敵がいると連続して切り替わったり
メモリのオーバしたり強制終了したりするバグ発見orz
敵の配列の若い方を優先するようにしてますが
結構この辺大変なのでまだ配布出来る段階じゃありません。お察しください。
ステータスの修業屋さんはまだ魔石をどれだけ使うかの計算式が決まっておりません。
それさえ決まればほぼ修業屋は完成に近いw
一応、最大ステータスは1つのステータスにつき200にするつもりですが宜しいでしょうか?

一時的にステータスを上昇させるアイテムか魔法の改造もありますが
そちらも今回は見送らせてもらいます。色々期待されていた方はごめんなさい。

106レイ:2005/05/01(日) 12:02:48 ID:DrCbnFkk
UP間違えました。すみません。こちらにおきますので・・・ご迷惑をおかけしています。
http://rivernet.cool.ne.jp/upmini/200504b/20050501120156_6411.zip

107名無しさん:2005/05/01(日) 21:02:14 ID:no.j4/66
上限値200はちょっと…。
打撃屋ならともかく、魔法屋は魔力と体力だけ上げればいいので素で200超えてる人もいると思いますし、
EPを振らずに修行だけで200まで上げてからEPを振るという人も出てきそうです。

ステータスや使用回数に上限があると結局いつかは「魔石はもう要らない」となってしまうので、
上限を設定しない代わりに魔石の個数をキツめにするのが、私は一番だと思います。
「むしろメイン以外の能力値の方がガンガン上げられる」と無個性なキャラになりがちなので、
必要個数は修行屋の総使用回数には依存させるべきだと思います。

1.35+で、主にベリハ雪原、ノーマル封印を利用してレベル上げしていましたが、
120レベルになるまでにギリギリ全ての魔法を覚えきる程度でしたので、あまり必要な魔石の数が多すぎるのもどうかと思いますし、
   20 + 現在の能力値/10 + 修行屋の使用回数
とかどうでしょう。

魔石もお金も入手頻度はどこでも同じなので、「レベル120になったら後はノーマル雪原で能力値上げ」となってしまいそうですが、
難しいマップで、高い難易度の方が早く能力値が上がる方が私は面白いと思うんですよね。
修行時に経験値を消費するようにするとか…?

108107=zark=ゴロツキーヌ:2005/05/01(日) 21:03:28 ID:no.j4/66
名前入れ忘れました。ごめんなさい。

109レン:2005/05/01(日) 21:59:02 ID:KS4PuRKM
一応報告しますが
security氏にめーるをおくらせていただきました〜
長文で申し訳ない・・・
まぁ、ルイナを思う心の現われってことで(ナニヲイットルカ
修行の方は、上限値では無く修行場の使用回数に
上限をつけるなどで対応をした方がいいかもしれませんネ
魔石の個数をきつくするのは
魔法を習得するのに使用したりするのをためらうことになるのでは?
魔石の利用法としては合成屋等を作って
魔石何個か使用することでそれでしか入手できないアイテムが手に入るとか
にすれば解決するかとw

110大怪盗ゴロツキーヌ:2005/05/01(日) 23:57:38 ID:no.j4/66
修行屋は「全ての魔法を習得し、転生後Lv120になってしまった人の魔石の利用法兼パワーアップ手段」
だと思っていたのですが、作られる方はそのつもりでは無いのでしょうか。

魔石も、レベルもそうですが、「あるところ(しかも比較的楽に到達できる)まで行ったらそれ以上は無意味」
よりも、「急激に成長は鈍化するが止まる事はない」方が私は好きです。
あくまでも、私の好みはこうというだけですが。

ただ、「ストップしてしまうとやる気がなくなる」という人は、おそらく私一人ではないと思います。

>魔石の個数をきつくするのは
>魔法を習得するのに使用したりするのをためらうことになるのでは?
魔法を覚えずに能力値を上げるのもやり方の一つだと思います。

>魔石の利用法としては合成屋等を作って
>魔石何個か使用することでそれでしか入手できないアイテムが手に入るとか
装備品は1つ作れば済みますから結局いつかは「魔石はもう要らない」となってしまいますし、
消耗品はこれといったアイテムが思いつかないのですが…。

習得済みの魔法を重ねて覚える事で魔法を強化できるというのもいいかもしれませんね。
(威力以外にも連射性能、発射個数、ホーミング性能等強化できる要素はありますし。)

撃つたびに魔石を消費する強力な魔法を実装するなり、既存の魔法をそういう仕様にするという手もありますが。
(1発で必ず1個以上消費する理由もないので、例えば20発で1個消費とかにすれば使う人もいるかと思います。)

111security </b><font color=#FF0000>(hnOM.Nxs)</font><b>:2005/05/02(月) 00:49:44 ID:ATs1T5gA
とりあえず偽物防止名前にしました。
えっと、少し実家の別場に居るため返事が遅れました。
明日には実家に戻るのできちんと対応できるかと。メール返事は明日返します。
実家の別場のPCのメンテナンスに追われてるんで(汗

>EPを振らずに修行だけで200まで上げてから
EP振り分けにも上限を付ける予定だったんですけどいろいろレスあるので。
どうしようか。

>魔石何個か使用することでそれでしか入手できないアイテムが手に入るとか
実はそれ・・・作れてます(笑)街関係の改造はかなりやりやすい為、今後リストに入る分だけ
施設増加をするつもりです。

>作られる方はそのつもりでは無いのでしょうか。
そのつもりではないわけではありませんが、他の人が協力して他の人に魔石をあげたりして
手伝える環境とかそういうコミュニティを計ろうかと。

えーっと、下記の改造はセーブデータを破壊しないと出来ませんので・・・
実装するかどうかはまだ決めておりません。
・修行屋の使用回数の実装(レスなどで言われたもの)
・修行にてLV制限の上昇(120以上に上限を解除する修行で121など上限を増やせる)
・敵の倒した数を保存
・死亡回数を保存

後、魔法LV強化の実装もセーブデータ保存処理の改造とかホーミング移動同期とか
必要なので時間が足りません。

魔法結晶アイテムの実装により魔石10個で魔法結晶1個になるように
倉庫計算処理などの改良を作りましたが交換屋がないのでまだ実装できません。
魔石の受け渡し関係に使えると思って作っただけで…

修行の方に関しては制限は付けないと数値オーバーしてしまうので
(体力など計算上HP999以上とか…)
ステータスにやはり制限が絶対に要ります。
HPとMPは9999で打ち止めか999で打ち止めにしないといけないと思います。
(バトルモードが成り立たなくなるとかもあるし)
また、変数の都合上、ある数値以上のステータスにすると計算式でマイナスを返してしまう場合とかあります。
または必ずMISSになるとか。なので999で打ち止めなどはしないとだめなのです。
200はきつすぎましたが、1000とかかなり大きな数値で打ち止めはどうでしょう?
制限無制限は計算式上エラー出してしまうので、すみませんが仕様という事で。
全てのステータスに制限200ではなく体力は500で〜とか各上限指定は可能なので
それらで希望値あればレスなど下さい。

交換屋は交換リスト処理を書いておき、それらの数値と比較して
全てあれば交換という形は作れてきました。
交換リストを外部編集出来るようにしたら実装を検討したいです。

とりあえず、装備のマイナス計算で0未満にならないように修正は付けれました。
ステージリストはまだ多少のバグを取ってるところ。連休内に直してみますのでお待ちを。

PS:昼間にメールしてくれた人、ありがとう。
「修行して転生後より強くなった場合はどうしますか?転生の意味がなくなるのでは」
…すんません考えておりませんでした。言われてみればそうだ。
修行を転生後しか使えなくするとか制限かけねば。
それか転生したらLV上限を若干伸ばすとか転生のメリットを付けないと。
あぁ、作業量がまた増えるorz 修行屋って結構大変な企画と後々後悔。

修行屋などのアイディアを真剣に募集中。レス下さい。

112大怪盗ゴロツキーヌ:2005/05/02(月) 02:21:12 ID:no.j4/66
修行屋は、例えば修行屋の材料専用アイテムを導入し、こいつの出現率を難易度・敵の強さ依存にするというのはどうでしょう?
>>110でも言いましたが、ノーマル雪山とベリハ封印の能力成長速度が同じというのは、あまり好ましくないと思います。

Lv上限や能力値上限は「有り」「有るけどある程度以上に上げるのは困難」「無し」では「やりこみ派」の人間にとっての意味はかなり違います。
120以降は急激に必要経験値が増えるとか、死亡ペナルティがつくとか、セーブデータの形式を変えなくとも可能な実装はありそうですが。
制限値は「上げれば上げるほど上げるのに必要な時間が増える」ようにしてさえおけばいくつでも問題ないと思います。プレイヤーの時間は有限ですから。

転生は…、能力値上限を上げるとか、スナップドラゴン(タクティクスオウガに出ていた自分の生命を武器化する魔法)でも実装するとか…。

セーブデータの問題に関しては、セーブファイルの数を増やすという手もあります。
追加するファイルいくらでも要素を付け加える事のできる柔軟な形式にすれば、それ以上増やす必要は無くなりますし…。

113レン:2005/05/02(月) 07:46:02 ID:KS4PuRKM
材料専用アイテムを作ってしまったら
結局魔石はいらなくなってしまうのでは?
材料アイテム+魔石何個かみたいなかんじで
まぁ、アイテムの出現率は補正した方がいい気もしますね
難易度ノーマルでレア度200以下のアイテムが出現しない
難易度ハード=50以下のアイテムが出現しない
難易度ベリハ=全てのアイテムが出現する
って感じで
材料専用アイテムをレア度25くらいにすれば
ベリハでしか出現しないことになりますし
初心者の人は魔石と上級者の材料専用アイテムを交換したりできるし・・・
能力上限の方は最低でもHP・MPで999がいいのでは?
と、思ったのですが
現時点で、HP特化のキャラは1000近い値まで
アイテムの補正などで上がってしまうんです・・・(俺等が作ったデータのみで
現在HP特化でHP898(体力271になります
とすると、やはりHP・MPの限界値を2000位にした方が
修行をする人が増えるかとデスペナの方は、
装備品を除いたアイテムをランダム(又は下から)に消滅してしまうとか・・・
処理が重くなりそうですけど・・・
必要経験値のほうは良さそうですね〜
120以上になったらネクストを10万増やすとか
制限値の方の上げれば上げるほど時間が掛かるって言うのは
どうかと思いますよ?
そうすると、暇な人ほど能力が上がることになって
暇な時間が少ない人との差が思いっきり開いてしまいそうですが

114security </b><font color=#FF0000>(hnOM.Nxs)</font><b>:2005/05/02(月) 10:00:07 ID:x3XxkItU
帰ってきたのでメールで言われたやってる事の説明。
自分で実装したい人は勝手にしてくれorz
ソース下さいはお断りと言ったのにメール五通それだしw
これで解らなければ自己実装は諦めてください。

とりあえず修業屋のやってる事を説明すると
まずは魔法屋の関数をコピー。関数名修正。
結構処理は単純で魔法屋の魔法を覚えさせる部分をステータスあげる
処理に直せば基本。(ステータス上げる処理はEP振り分け処理参考に)
魔法名部分をステータス名に変更。魔石使用量計算・台詞の改造。
これらを載せるだけで立派な施設完成ですorz やってる事は凄くありません。
街の施設を出す処理は魔法屋などでソース検索して下さい。その辺にあります。
シーン別に判断と関数コールがあるのでそこに修業屋を追加して修業屋シーンへコール処理を。
ビルドして実行して修業屋がリストにあり、尚且つステータスなどあげれるようになれば基本完成。

交換屋も同様で倉庫にあるアイテムの魔石で魔法交換してるのを基本に
交換するアイテムを変更。魔法を覚える代わりにアイテムを手にいれる処理を
武器屋などからパクって入れる。台詞変更。 くらいです(ぁ
修業屋が解ればこちらも簡単に出来るはず。

街の施設追加は1つやると何個でも同じようなものは出来ます。
ちなみに関数を作ったりしたらプロトタイプ宣言を忘れずに。

ステージリストに関してはステージ名で検索して見てください。
言語が分かる方にはステージの呼び出し処理はかなり簡単に分かるかと。
外部ファイルにする方法はforと外部ファイル読み出し処理で
それらをループ描画して配列とで。キャラのセーブ呼び出しでも参考にしてやって下さい。

PS: 自己実装してくれると案外こっちが助かります(ぁ

115security </b><font color=#FF0000>(hnOM.Nxs)</font><b>:2005/05/02(月) 11:22:50 ID:x3XxkItU
メールで多い質問は過去ログ読めとorz
コンパイル関係質問の答えを書いておきます。

質問:ビルドでエラー出ます。
答え:このスレッドの14番目のレスの定義やってますか?

質問:分割ソースでビルド出来ません。
答え:定義されてますエラーが一杯の場合、ビルド設定でLNK2005を跳ね除けさせる。
それか分割前のkzkソースを使う(汗)

質問:C言語って何ですか?
答え:君には改造は無理でしょう。

質問:VC以外で出来ませんか?
答え:BCCにDIrectX設定したPCでやったが無理でした。(やり方が違う?)
大人しくVC++6以上でやって下さい。

質問:ビルド出来たのですが何か動作が違う。
VC++のProである最適化オプションなどがアカデミパックとかは無い。
なので最適化されず遅くなるかも。Proでやれば早いかと思う。
それかRELEASEビルドじゃない。DEBUGビルドは遅いです。

質問:何か動作でエラーが出ます。
答え:改造した所に問題がある。改造してない場合はDEBUGビルドだから?
RELEASEビルドで実行すれば直る場合もある(笑)

とりあえず、メールで個別質問しないで下さい。
適当に答え書いておきます。

PS:開発ページ何処ですかと言われたので近々、開発ページも作るかorz
でも実家の時しかネット出来ませんよ…月に一度くらいしか

116<削除>:<削除>
<削除>

117kazuki@Abars:2005/05/03(火) 20:37:41 ID:8SoZSq6k
>>3037
最終版ソース、了解です。
ただ、今週はホテルなので、
アップロードは日曜ぐらいになりそうです。

WAIT関係の変数って、どのあたりにありますかね?
DirectPlayの関数には設定がないかな、っと思ったのですが。。。

後、現在、アイテムデータを含め、
ver1.35と改造ver1.35が共存してしまっていて、
このままでオンラインプレイをすれば通信がかみあわずバグってしまいます。
ですので、今後、
アイテムデータとともにexeも配布し、
exeのver番号として1.50以降を使う、
という事も検討するべきかな、っと思います。

>>サーバになる方法
後、TCP/IPを実装してて、
ルータ下のパソコンがサーバになれない理由が判りました。

そもそも、グローバルIPが一つで、複数のパソコンがネットをするというのは、
本来できない事です。

グローバルIPというのはパソコンを識別する一意の番号であり、
グローバルIPはルータが持っているので、
ほかのPCがそのグローバルIPにパケットを送ったとしても、
ルータまではデータが届くのですが、
そのデータが、ルータ下のどのPC宛てのものか判らず、パケットは破棄されてしまいます。

では、どうやってネットを共有しているのかというとIPマスカレードという技術を使っています。
ローカルをPC1,PC2とすると、PC1がポート80番でサーバに接続しようと考え、パケットを送ります。
ルータはパケットを受け取ると、パケットを書き換え、
ポート80という数字を使っていない適当なポート番号に変換します。
そしてネットワークに送り出します。
例えば100番に変換したとします。
そうすれば、サーバは100番に要求データを送り返してきます。
そして、ルータは100番という番号を80番に戻し、PC1に送ります。
ここで、PC2もポート80番で通信しようとすれば、
番号は101番に変換され、PC1へのデータは100番、PC2へのデータは101番と、
ポート番号で判断できます。

ところが、PC1がサーバになろうとした場合、
1000番で待ち受けるよ!と宣言するのですが、
外からは、実際はルータに変換されたx番という番号に接続しなければ、
PC1のパソコンにパケットが届かないのです。
しかし外のパソコンは1000番で届くはず!
っと思ってしまっているので、1000番に接続にいき、
そしてパケットはPC1に届かず、ルームに入れないというわけです。

解決策は二つありまして、まずNAT。
これは、例えば1000番はPC1が独占的に使うよ!
というもので、それによって、外から接続ができるようになります。
DirectPlayで使用する以下のポートを、
NATで自分のPCにつないでください。
静的マスカレードで検索すれば、やり方は出てくると思います。

47624 tcp 対戦サーバの待ち受けポート
2300-2400 tcp ゲームの動作状態に依存する
2300-2400 udp ゲームの動作状態に依存する
12346 ルイナが使うポート

もう一つは、skypeがやっている裏技的な方法で、
外に一つサーバを持っておき、使うポート番号でそこに接続させます。
そうすれば、1000番等というポート番号に対応した、
ルータが設定したx番というポート番号がわかりますので、
それをPC1に接続したいPC3に伝え、PC3にx番に接続にいかせるのです。
ただ、DirectPlayではDirectPlayが使うポートを変更できないため、
仮想LANカードをプログラミングするといった事をしないといけないので、
なかなか厳しいです。
一般のTCP/IPで書かれたプログラム用ですね。

以上の事から、MMOは遊べるのにルイナは遊べない、という事が説明できます。
MMOの場合、自分から接続しにいくので、サーバはルータによって変換された番号にデータを返してくれるが、
ルイナの場合、待ち受けているポートが判らないので接続できない、
という感じです。

という事でNATを使ってサーバになるよう、お願いします。
つながらない、という問題の原因は、何も設定してない事ではないかな、っと思います。

長文になりましたがこのへんで。

118レン:2005/05/03(火) 21:08:16 ID:KS4PuRKM
>117
kazukiさんお久しぶりですm(_ _)m
えーっとですねーアイテムデータやステージなどはツールで出来る範囲なんで
誰でも参加できるんですが、ver更新のほうは
コンパイラが必要なんで無い人は手が出せないんですヨ
この辺りもツールでなんとかできるといいかもしれません・・・
verデータを別のファイルから読み込む形にする等
そのファイルを書き換えることでverを更新できるような


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板