zillionプロジェクト開発ブログ soliloquy 忍者ブログ

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

寝ている間に目覚ましの電池が切れてた・・・

いつも、6時に起きているのに、ん?あれ?7になってるぞ?
え、ヤヴァイ!!!!


ところが、ダッシュダッシュして、なんとかテスト開始1分前に着きました・・・(セーフw



拍手[1回]

PR

OEのプラグイン開発したいぜ!!
って人のために、ちゃんとDLL用のインターフェースを作りました。
これで、だれでもプラグインが作れるはずです。
(もちろん、C#の知識は必至ですが)

とりあえず、以下がインターフェースです。
これを利用してDLLが読み込まれます。
また、デフォルトでMMORPG用のプラグインを制作しているので、できれば別方面でお願いします。
プラグイン開発者は、メールにて話をいただければ中身の処理に関して、答えます。
こんなのもあったほうがいいのでは?とか致命的なミスがあった場合は、コメントで指摘してくださると非常に助かります。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace OE.src
{
        /// <summary>
        /// プラグインが実装しなければならないインターフェイス
        /// </summary>
    interface PluginDLLInterface
    {
        /// <summary>
        /// プラグインの固有の名前です
        /// </summary>
        String PluginName { get; }
        /// <summary>
        /// プラグインのインストールされたローカルの場所を絶対パスで示します。
        /// 改行文字(\n)はサポートしません。
        /// </summary>
        String PluginLocalAddress { get; }
        /// <summary>
        /// プラグインの簡易説明です。プラグインを選ぶ画面で使用されます。
        /// 改行文字(\n)をサポートします。
        /// </summary>
        String PluginShortDescription { get; }
        /// <summary>
        /// プラグインのバージョンです。プラグインを選ぶ画面で表示されますが、
        /// これで自動更新されたりはしません。自動更新させたい場合、プラグインの中に
        /// 機能を埋め込む必要性があります。
        /// 改行文字(\n)をサポートしません。
        /// </summary>
        String PluginVersion { get; }
        /// <summary>
        /// プラグインのコピーライトです。プラグインのライセンス画面で表示されます。
        /// 著作権に関する情報もこのプロパティに記してください。
        /// 改行文字(\n)をサポートします。
        /// </summary>
        String PluginCopyLight { get; }
        /// <summary>
        /// プラグインの作者名です。
        /// チーム名を書くのも、開発者チーム全員の名前を書くのも自由です。
        /// </summary>
        String PluginFrom { get; }
        /// <summary>
        /// プラグインが読み込まれたときに実行されます。
        /// プラグインホスト(エディター側)のインターフェースの参照を送ります。
        /// *注意!!
        /// --プラグインが選ばれたときに実行されるわけではありません。
        /// --DLLが読み込まれた後に実行されます。
        /// --したがって、プラグインのメインの処理をここに書かないでください。
        /// </summary>
        /// <param name="Host">エディタ側のインターフェースの参照を返します。</param>
        void Initlize(PluginDLLHostInterface Host);
        /// <summary>
        /// プラグインをユーザーが選択したときに実行される
        /// プラグインのメインメソッドです。
        /// ここが押されたときに、プラグインは、メインの処理を実行します。
        /// </summary>
        void Init_Main();
        /// <summary>
        /// プラグインをユーザーが閉じたときに呼び出されます。
        /// 保存などの処理を行い、プラグイン側が、自らフォームをフォームのアイテムをすべて
        /// 不可視の状態にすべきです。
        /// </summary>
        void Close();
        /// <summary>
        /// プラグインがアンロードされた際に呼び出されます。
        /// 基本的には、エディタ自体が閉じられる際に呼び出されます。
        /// </summary>
        void UnLoad();

    }
    /// <summary>
    /// プラグインホストが実装するインターフェース
    /// </summary>
    interface PluginDLLHostInterface
    {
        /// <summary>
        /// エディター自体のバージョンを返します。
        /// 必要とされたバージョンを見込めない場合、プラグインは、その他の処理をせず
        /// メッセージを表示し、ユーザーに警告を出すべきです。
        /// </summary>
        String EditerVersion { get; }
        /// <summary>
        /// このインターフェース自体のバージョンを返します。
        /// インターフェースのバージョンが古いと、エラーが起きる確率が非常に高いです。
        /// プラグインはこのバージョンをチェックし、ダメならば、警告を即刻出して、
        /// プラグインはそれ以上の処理を実行することを避けるべきです。
        /// *このインターフェースのバージョン(0.80)
        /// </summary>
        double InterfaceVersion { get; }
        /// <summary>
        /// OEサーバーへ完成したファイルをアップロードします。
        /// ただしこの処理は、失敗した場合、falseを返し、メッセージボックスでエラーの原因を
        /// 出力します。
        /// </summary>
        /// <param name="url">OEサーバーにアップロードするフォルダのリストです。</param>
        /// <param name="num">フォルダの数です。</param>
        /// <returns>失敗時にはfalseを返します。成功時にはtrueを返します。</returns>
        bool UploadOEfile(String[] url,int num);
        /// <summary>
        /// エディターのエディションを返します。
        /// Basic,Standardなどの文字列が入っています。
        /// </summary>
        String EditerEdition { get; }

    }
}



拍手[0回]

例えば、インストールされたプラグインのリストやエディタの各種設定内容。
どんなふうに保存したらいいのか・・

せっかくのC#だしVisual Studioだ。
SQL Serverも使える。だが、いろんな種類があってどれを使ったらいいのかわからない。


まず、ADO.NETとは何なのか?
.NET用の.NET Framewrokの一連のクラス群。
これを使って、データベースにアクセスできる。
つまりデータベースにアクセスするにはこれを使う必要性がある。

でも、visual studio でみると
いろんな項目に分かれていてわからない。
どれを使用すればいいのか?

データベース処理に関してはもうちょっと勉強する必要があるな。

拍手[0回]

この前のスクリーンショット見ればわかると思いますが、背景画がシルエットが多いんです。
自分が書いたわけではなく、Liriopeさんが書いたのですが、なかなか、僕もお気に入りです。
Liriopeさんのテーマは、「孤高」のようなのですが、少し、暗い感じの絵でもある気がします。
あと、どうでもいいところにこだわったのですが、微妙に背景画がストーリー性を帯びているんです。
でも、ここで男の子と女の子が手をつないでいる絵とかあったりするとテーマが「すばらしきこの世界」みたいな、感じになるんです。(ゲームに昔あったけど・・・違うぞ?)オンラインゲーム=繋がる。だから一人じゃないよ?
それだからこそ、こんな僕的なテーマなのですが・・・

さて、エディタは僕、プラグインはBakuが作業しています。
まだ、DLLの読み込みのプログラムを書いていないので、プラグインテストを実行できませんが、そろそろ書いてしまいます。
普段、C#ではあまり使うことがないインターフェースを使わないといけないのです。
JavaやActionScriiptでは結構使っていましたが。
とりあえず、今後の発展性を考えたインターフェースを組まなきゃいかんのです。

さて、どうせvisual studio 使うような知識のある人ならば解説する必要がないでしょうが、なんとなく、C#でのwindowsフォームアプリケーションに追加が可能な項目について、少し解説でもしようかなと思います。
僕なんかの解説だったら、Microsoftのリファレンス見たほうがいいかもしれませんがね。

・クラス
いや、そのまま・・・クラス作ります。
コードの編集用ですね。
結構多用します。
フォームのクラス作るならば、Windowsフォームを追加したほうが早いです。

・インターフェース
これもそのままです。インターフェースつくります。
初級プログラミングにはあまり使用されませんね。
コード編集用です。

・windowsフォーム
多用しますね。ツールボックスからドラッグで、いろんなものを追加できます。
プロパティいじくってるとたまにすごいものができたりします。
GUI、コード編集共に活用します。

・ユーザーコントロール
コントロールを作ります。
特にDLLで一つの部品を作って読み込むという処理に使ってました。
使い方はwindowsフォームと同じです。

・コンポーネント
カスタムコンポーネントを作成します。
でも、満足にGUIエディタで編集できません。プロパティからですと、実際わかりずらいので、僕的にはユーザーコントロールで代用することがお勧めです。

・WPFユーザーコントロール
僕的にはあまりお勧めではないですが、ステートとか使えば簡単にプログラムとか組めるそうです。
現場では骨組みで会議するときに早めに作る際に使用するらしいです。
普通に作ったほうがたぶん楽だと思うんだけど・・・


拍手[0回]

とりあえずウェルカムウィンドウのレイアウトっす。
picasaweb.google.com/112707182961116286529/HmIZeB#5474344880746892258

まだまだ作りますぜ

拍手[4回]

◎ カウンター
◎ カレンダー
08 2025/09 10
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
◎ 最新CM
[10/24 名無しの権兵衛]
[08/30 名無しの権兵衛]
[08/14 no name no future]
[08/05 ゲームサークルEaSt]
[07/28 リオウ]
◎ プロフィール
HN:
solilpquy
年齢:
30
性別:
男性
誕生日:
1994/09/22
職業:
人間
趣味:
趣味ねぇ~~う~ん・・・
◎ ブログ内検索
◎ バーコード
◎ アクセス解析
◎ フリーエリア
◎ フリーエリア
Script: Ninja Blog 
Design by: タイムカプセル
忍者ブログ 
[PR]