2010 081234567891011121314151617181920212223242526272829302010 10

TOP > Auriga/eAthena > title − 【Auriga】エンペバグ修正
 【Auriga】エンペバグ修正


エンペリウムがギルド入ってない or 正規承認取ってなくても

殴れるという事態が発生.

シーズモードでない時には殴れませんでした.

うちだけなのかなー(´・ω・`)

Aurigaフォーラムでも報告されてないし、

ソース色々いじってるからなのかなぁ?と思いつつ

エンペ周辺はいじった記憶ないので新しいAurigaでやりなおすかー

と思って新しいAuriga+新クラDLしたわけですが・・・

結局素Aurigaでエンペの検証するの忘れてそのままソース修正してしまって

コンパイルしたらやっぱり殴れてた!不思議!

他の鯖のGMさんに聞いたら、

検証用MAPだと殴れるよーっていうお話だったのですが

ソース見た限り、gvgのフラグがたってないときはエンペ殴れないようになってる('A`)

検証用MAPにgvgのフラグ立ってたかどうかは聞き忘れたけど!(;^ω^)

とりあえずうちの見方が間違っていなければ

敵か味方の判定部に、正規G承認の処理は書いてなかった.

ダメージ計算の方に色々書いてあったんだけどなぁ・・・(-ω-`*)

とりあえずよくわからない!

Ys鯖は装備ないけど楽しんでます!ヾ(*´∀`*)ノ

battle.c
L5000あたり
        // 砦のガーディアンかどうか
        if(md->guild_id) {
            if(gc) {
                for(i = 0; i < sizeof(gc->guardian) / sizeof(gc->guardian[0]); i++) {
                    if(gc->guardian[i].id == md->bl.id) {
                        guardian = 1;
                        break;
                    }
                }
            }
        }

        // GvG時間外
/*        if(!map[ss->m].flag.gvg) {
            // ガーディアンと念のためエンペは味方
            if(md->class_ == 1288 || guardian)
                return 1;
            // それ以外は敵
            return 0;
        }
*/
        /* ここから flag.gvg がある処理 */

//------------------追加-------------by mame-------
        // GvG時間外
        if(!map[ss->m].flag.gvg) {
            // ガーディアンと念のためエンペは味方
            if(md->class_ == 1288 || guardian)
                return 1;
            // それ以外は敵
            return 0;
        }else{
            // ガーディアンと念のためエンペは味方
            if(md->class_ == 1288 || guardian )
                if(g == NULL)
                    return 1;
                else if (guild_checkskill(g,GD_APPROVAL) <= 0)
                    return 1;
        }
//---------------------ここまで--------------------

        // ギルド無しPCは全部敵
/*        if(g == NULL)
            return 0;
*/
        // 自分のギルドか同盟ギルド砦
        if(gc) {
            if(g->guild_id == gc->guild_id || guild_check_alliance(md->guild_id, sd->status.guild_id, 0)) {
                // エンペとガーディアンは味方
                if(md->class_ == 1288 || guardian)
                    return 1;
                // それ以外のバイオプラント、スフィアマインなどは敵(攻撃可能)
                return 0;
            }
        }

        // 他人の砦、砦以外のGvGモードなら全部敵
        return 0;
    }
    if(ss->type == BL_MOB && target->type == BL_PC) {
        return 0;    // MOB→PCなら敵
    }

    if(ss->type == BL_PET && target->type == BL_MOB) {
        struct pet_data *pd = (struct pet_data*)ss;
        struct mob_data *md = (struct mob_data*)target;
        int mode = mob_db[pd->class_].mode;
        int race = mob_db[pd->class_].race;
        if(mob_db[pd->class_].mexp <= 0 && !(mode&0x20) && (md->sc.option & 0x06 && race != RCT_INSECT && race != RCT_DEMON) ) {
            return 1; // 失敗
        } else {
            return 0; // 成功
        }
    }



        // ギルド無しPCは全部敵
/*        if(g == NULL)
            return 0;
*/
ここもしかしたらこめあう外した方がいいかもしれない(-ω-`*)

要検証

カテゴリ【Auriga/eAthenaトラックバック(0) | コメント(0) | top↑

+ Comment List +

<<【Auriga】mvpmob_item_drop_rate【Athenaからの移植】 | ホーム | 【Ragexe】Lua_filesの中身【ニュマ鯖より転載】>>















管理者にだけ表示を許可する

トラックバックURL
http://xachux.blog109.fc2.com/tb.php/54-4ba410bd 
この記事にトラックバックする(FC2ブログユーザー)

| ホーム |