moneymuch 發表於 2012-6-14 21:24:08

關於GVG類特定地圖限制攻速問題

在status.c中的void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
找到這段
        if(flag&SCB_ASPD) {
然後把其中的這段
status->amotion = cap_value(amotion,battle_config.max_aspd,2000);
替換成
        if( map_flag_gvg(bl->m) )
                status->amotion = cap_value(amotion,battle_config.gvg_max_aspd,2000);
        else if(map.flag.pvp)
                status->amotion = cap_value(amotion,battle_config.pvp_max_aspd,2000);
        else if( map.flag.battleground )
                status->amotion = cap_value(amotion,battle_config.bg_max_aspd,2000);
        else
                status->amotion = cap_value(amotion,battle_config.max_aspd,2000);
改成這樣的話,去PVP地圖,必須把武器脫了,在穿上就有限制攻速的效果了,同樣從PVP出來,回到正常地圖也需要這樣才能變回到正確的攻速


我想改成去了PVP就可以自動修改攻速的設定

已經在battle.c里學battle_config.max_aspd里把其他max_aspd設定好了
        battle_config.gvg_max_aspd = 2000 - battle_config.gvg_max_aspd*10;
        battle_config.pvp_max_aspd = 2000 - battle_config.pvp_max_aspd*10;
        battle_config.bg_max_aspd = 2000 - battle_config.bg_max_aspd*10;


不知道哪裡還需要設置的,我是根據battle_config.max_aspd和battle_config.gvg_flee_penalty來寫的
求指點下,修改哪裡可以實現換地圖也可以變化攻速..

sinya 發表於 2012-6-14 23:42:40

本帖最後由 sinya 於 2012-6-14 11:44 PM 編輯


BUILDIN_FUNC(CalcCharStat)
{
      TBL_PC *sd;

      if( script_hasdata(st,2) )
                sd=map_id2sd(script_getnum(st,2)); // <Account ID>
      else
                sd=script_rid2sd(st); // Attached player

      if(sd==NULL){
                script_pushint(st,-1);
                return 0;
      }

      status_calc_pc(sd,0);
      
      return 0;
}

BUILDIN_DEF(CalcCharStat,"?"),


試試這個 在OnPCLoadMapEvent更新狀態


OnPCLoadMapEvent:
if(getmapflg(mf_gvg)) CalcCharStat;
end;

moneymuch 發表於 2012-6-16 19:56:57

status_calc_pc

在你這個裏面看到這個,突然想到

之前改的時候也在這個裏面看到了判斷攻速限制的

但因為少了struct block_list *bl;這部份定義

map_flag_gvg(bl->m)不符合要求

但自定義一下bl,又警告說沒設置初值

隨便設置了個初值0,人物進遊戲,map_sql就當機重啟

he01204046 發表於 2012-8-16 19:51:13

不多說了,爬文吧

http://okayro.com/thread-217882-1-4.html
頁: [1]
查看完整版本: 關於GVG類特定地圖限制攻速問題