Code Monkey home page Code Monkey logo

auriga's Issues

クエストリストパケット

clif_questlist関数のelse側の処理ですけれど、typoでデータをセットする箇所が間違っているかと思われます

WFIFOL(fd,len*15+n*44) = (qd->nameid * 1000) + j;

WFIFOL(fd,len+15+n*44) = (qd->nameid * 1000) + j;

ニューマ範囲外に出た際の処理

不具合かどうか判断がつかなかったのですけれど、一応報告させて頂きます。

モブが移動してニューマ範囲外に出た際の処理が実行されていないように思えます。
具体的には、モブがニューマを自分がいるセルに使用した後にニューマの範囲外に移動しても、状態異常のタイマクリア処理が実行されておらず、遠距離無効になったままの気がします。
SSはマーガレッタ=ソリン(転生二次職)をsummonで召喚して弓で攻撃したものですけれど、プレイヤー頭上でニューマを使用後SSの位置まで移動していても攻撃がミスになり続けます。
ニューマ

私の環境で確認した限りでは、skill_unit_move_sub関数において、ニューマの'group->interval'が100になっているため即returnしてしまい、skill_unit_onout関数が実行されないのが原因な気します
Patch1325 04b9391 で設定が-1から100に変わっており、仕様なのか判断が付きませんでした。

お時間があるときで結構ですので、ご確認お願いします。

MYSQL 8.0対応

MYSQL 8.0以降、以下のエラーが発生しビルドできません。
sqldbs.c(471): error C2065: 'my_bool': 定義されていない識別子です。

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html#mysqld-8-0-1-compiling

Incompatible Change: The my_bool type is no longer used in MySQL source code. Any third-party code that used this type to represent C boolean variables should use the bool or int C type instead.

Note
The change from my_bool to bool means that the mysql.h header file now requires a C++ or C99 compiler to compile.

mob_avail使用時の配列外参照

mob.cのmob_readdb_mobavail関数において、PCキャラ変換の設定を行うと配列外参照が発生して起動時にクラッシュします。
引数の数が16個で最終処理でstr[15]でアクセスすることから、下記の定数15は16の間違いだと思います。

char *str[15],*p,*np;
for(j=0,p=line;j<15;j++){

vc_make.batの対応コンパイラ整理

現在Visual C++ 6.0から対応になってますが、そもそもVisual C++ 6.0の対応OSがWindows XPとWindows Server 2003(それ以前のは論外)なので見直しが必要ではないでしょうか。

開発ツール対応 OS 一覧
https://www.microsoft.com/ja-jp/dev/support/tools.aspx

このページにあるOS一覧ではWindows XP、Windows Server 2003、Windows Vistaが延長サポートまで切れています。
それに合わせてVisual C++6.0、Visual Studio .NET 2002、Visual Studio .NET 2003はAurigaでもサポート切っていいと思っています。

問題はVisual Studio 2005、2008をサポートするかどうかです。
と言うのもこの2つのバージョンは開発陣の手元にないです、多分。
AppVeyorではVM上にWindows 10を立てているので対応していないため当然ありません。
私としては最新OSに対応するコンパイラのみでいいのではないかと考えています。

参考までに各OSのサポート期限です。

  • Windows Server 2008
    メインストリーム サポート終了日: 2015年1月13日
    延長サポート終了日: 2020年1月14日

  • Windows Server 2008 R2
    メインストリーム サポート終了日: 2015年1月13日
    延長サポート終了日: 2020年1月14日

  • Windows 7
    メインストリーム サポート終了日:2015年1月13日
    延長サポート終了日:2020年1月14日

  • Windows Server 2012
    メインストリーム サポート終了日: 2018年1月9日
    延長サポート終了日: 2023年1月10日

  • Windows Server 2012 R2
    メインストリーム サポート終了日:2018年1月9日
    延長サポート終了日:2023年1月10日

  • Windows 8
    サービスパック サポート終了日:2016年1月12日

  • Windows 8.1
    メインストリーム サポート終了日:2018年1月9日
    延長サポート終了日:2023年1月10日

GitHub Actions CIの導入

ふと久々にこちらのリポジトリの存在を思い出し、Ubuntu 22.04 + VSCodeでビルド・デバッグ実行しようとしたところ、コンパイルエラーになってしまいました。
近頃はGitHub Actions CIが便利なので、GitHub Actions CI対応プルリクを提出しようかなと思っているのですが、 メンテナの皆様、いかがでしょうか?

タスクリスト

  • Windowsビルド(MSVC 2022)対応
  • Windowsビルド(MSVC 2019)対応
  • Linuxビルド(GCC)対応
  • MacOSビルド(GCC)対応
    • MacOSは標準でGCCインストールされていないので本イシューのゴールから除外
  • Windowsビルド(MinGW)対応
    • 別途メタビルドシステム導入が必要なので本イシューのゴールから除外
  • Linuxビルド(Clang)対応
    • Makefile修正 or 別途メタビルドシステム導入が必要なので本イシューのゴールから除外
  • MacOSビルド(Clang)対応

2018-04-18パケット定義抜け

2018-04-18クライアント対応ありがとうございました
早速使ってみたところ、消費アイテム使用のパケット定義が抜けているようです
db\packet_db.luaの3135行目に以下の定義を追加したら、アイテムを使用できたので報告まで

p(0x0439,8,"useitem",{2,6})

ログイン時のプラエファティオ処理

status_change_start関数のプラエファティオの処理において、通常プレイ中は以下の計算式で残りの耐久力を処理していると思います

val2 = (int)((atn_bignumber)status_get_max_hp(bl) * (val1 * 2 + 16 + val2 * 2) / 100);	// 耐久度

プラエファティオ使用時にval2にはPTメンバーのプラエファティオ対象人数が入っており耐久度の補正がかかるようになっていると思います
ここまでは問題ないのですけれど、ログイン時もこの処理が実行されており、その場合はval2に残りの耐久度が入った状態で計算がされて、補正値が異常に大きくなってしまいます
その結果、ログアウト→ログインを繰り返すたびに残り耐久度が増え続け、どこかでログイン時にマップ鯖が落ちてしまうようです

タロウの傷使用時のヌルポインタアクセス

status_change_start 関数でタロウの傷の状態異常のマップ制限を行っていますけれど、sdのヌルポチェックが無いため、メモリアクセス違反が発生してしまうようです。
sdが何かは正確に把握していませんが、下記のように変更してマップサーバーが落ちないことは確認済みです。

変更前

if(type == SC_BITESCAR && !map[sd->bl.m].flag.pvp && !map[sd->bl.m].flag.gvg && !map[sd->bl.m].flag.turbo)

変更後

if(type == SC_BITESCAR && sd && !map[sd->bl.m].flag.pvp && !map[sd->bl.m].flag.gvg && !map[sd->bl.m].flag.turbo)

BorlandCompiler使用時にレベルが上がらない

現在、BorlandCompiler使用時はatn_bignumber関連の定義はsrc\common\utils.hにおいて以下のようになっています

typedef double atn_bignumber;
#	define BIGNUMCODE ".0f"

一方、src\map\pc.cのpc_readdb関数でexp.txtから必要経験値を読み込む際の処理が以下のようになっています

if(sscanf(line,"%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE ",%" BIGNUMCODE "",&bn,&b1,&b2,&b3,&b4,&b5,&b6,&b7,&b8,&b9,&jn,&j1,&j2,&j3,&j4,&j5,&j6,&j7,&j8,&j9,&j10,&j11) != 22)
	continue;

double型のスキャンは%lfで読み込みなので、この処理ではスキャン数が0になって経験値テーブルが0のままになってしまいます
とりあえず下記のような感じでLVがあがることは確認しました
utils.h追加

#if defined(BIGNUMBER_DOUBLE) || defined(__BORLANDC__)
#	define BIGNUMSCANCODE "lf"
#elif defined(WINDOWS) && defined(_MSC_VER)
#	define BIGNUMSCANCODE "I64d"
#else
#	define BIGNUMSCANCODE "lld"
#endif

pc.c変更


if(sscanf(line,"%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE ",%" BIGNUMSCANCODE "",&bn,&b1,&b2,&b3,&b4,&b5,&b6,&b7,&b8,&b9,&jn,&j1,&j2,&j3,&j4,&j5,&j6,&j7,&j8,&j9,&j10,&j11) != 22)
	continue;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.