OK論壇

 找回密碼
 註冊
查看: 2598|回復: 13

[疑問] Ally開啟予關閉

[複製鏈接]
  • TA的每日心情
    郁悶
    2017-8-5 05:29 PM
  • 簽到天數: 291 天

    連續簽到: 1 天

    [LV.8]以壇為家I

    發表於 2011-10-29 16:00:58 | 顯示全部樓層 |閱讀模式
    我 這 樣 設 定
    atcommand.c
    1. /*==========================================
    2. * ally
    3. *------------------------------------------*/
    4. ACMD_FUNC(ally)
    5. {
    6.         if (sd->state.allytalk) {
    7.                 sd->state.allytalk = 0;
    8.                 clif_displaymessage(fd, "關閉同盟頻道");
    9.                 return 0;
    10.         }

    11.         sd->state.allytalk = 1;
    12.         clif_displaymessage(fd, "開啟同盟頻道");
    13.         return 0;
    14. }
    複製代碼

    1. { "ally",               0,10,     atcommand_ally },
    複製代碼


    clif.c 則 用 論 壇 發 的 原 碼 ...

    可 是 我 怎 麼 測 試 都 不 行

    希 望 高 人 指 點 迷 津

    回復

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2011-10-29 16:20:06 | 顯示全部樓層
    回復 1# fgyackl


       論壇誰發的...在哪裡...請給連結好嗎?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    郁悶
    2017-8-5 05:29 PM
  • 簽到天數: 291 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2011-10-29 19:54:39 | 顯示全部樓層
    本帖最後由 fgyackl 於 2011-10-29 08:06 PM 編輯

    回復 2# Alopex


        遠 在 天 邊 近 在 眼 前 阿 ...

        就 是 您 發 的 XD

        連 結 : http://www.okayro.com/redirect.php?goto=findpost&;pid=2288580&ptid=217581

        後 來 發 現 ...

        我 是 從 尚 未 那 邊 COPY 的


        不 過 都 是 您 發 的 就 是 了 ...
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2012-10-20 12:31 AM
  • 簽到天數: 305 天

    連續簽到: 94 天

    [LV.8]以壇為家I

    發表於 2011-10-29 20:01:28 | 顯示全部樓層
    回復 3# fgyackl
    1. sd->state.allytalk
    複製代碼
    哪來的?

    我怎不記得有那個
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    郁悶
    2017-8-5 05:29 PM
  • 簽到天數: 291 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2011-10-29 20:04:47 | 顯示全部樓層
    本帖最後由 fgyackl 於 2011-10-29 08:07 PM 編輯

    回復 4# rgrg1234


        我 是 用 showexp 依 樣 畫 葫 蘆 的
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2012-10-20 12:31 AM
  • 簽到天數: 305 天

    連續簽到: 94 天

    [LV.8]以壇為家I

    發表於 2011-10-29 20:12:27 | 顯示全部樓層
    本帖最後由 rgrg1234 於 2011-10-29 08:14 PM 編輯

    回復 5# fgyackl


        那你要在pc.h
    1.         struct {
    2.                 .
    3.                 .
    4.                 .
    5. +                unsigned int allytalk :1;
    6.                 .
    7.                 .
    8.                 .
    9.         } state;
    複製代碼
    然後再去修改clif.c
    1.         if(!sd->status.guild_id) {
    2.                 sprintf(output,"必須加入工會!");
    3.                 clif_disp_onlyself(sd,output,strlen(output));
    4.                 return;
    5.         }
    6.         else if (!sd->state.allytalk){
    7.                 sprintf(output,"同盟頻道未開啟!");
    8.                 clif_disp_onlyself(sd,output,strlen(output));
    9.                 return;
    10.         }
    複製代碼
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    郁悶
    2017-8-5 05:29 PM
  • 簽到天數: 291 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2011-10-29 20:13:58 | 顯示全部樓層
    本帖最後由 fgyackl 於 2011-10-29 08:23 PM 編輯

    回復 6# rgrg1234


        已 經 可 以 開 啟 了 ...

        只 是 同 盟 的 工 會 看 不 到 對 話 阿 >"<

        整 個 都 毀 了 XD
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2012-10-20 12:31 AM
  • 簽到天數: 305 天

    連續簽到: 94 天

    [LV.8]以壇為家I

    發表於 2011-10-29 20:27:09 | 顯示全部樓層
    本帖最後由 rgrg1234 於 2011-10-29 08:36 PM 編輯

    回復 7# fgyackl


        為什麼看不到對話?
    如果你是用尚未的
    那就要把
                    if(!pc_readglobalreg(sd,"allytalk")){
                            sprintf(output,"必須開啟該功能!,使用@ally");
                            clif_disp_onlyself(sd,output,strlen(output));
                            return;        
                    }
    刪掉
                            if(pc_readglobalreg(sd,"allytalk") && sd != pl_sd && pl_sd->status.guild_id && (guild_check_alliance(sd->status.guild_id,pl_sd->status.guild_id,0) || sd->status.guild_id == pl_sd->status.guild_id))
    替換成
                            if(pl_sd->state.allytalk && sd != pl_sd && pl_sd->status.guild_id && (guild_check_alliance(sd->status.guild_id,pl_sd->status.guild_id,0) || sd->status.guild_id == pl_sd->status.guild_id))
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    郁悶
    2017-8-5 05:29 PM
  • 簽到天數: 291 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2011-10-29 20:32:53 | 顯示全部樓層
    回復 8# rgrg1234


        我 也 不 懂 ...

        頂 多 看 到 自 己 的

        我 等 等 補 圖 讓 你 看 看 -.-
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2011-10-30 15:11:03 | 顯示全部樓層
    回復 6# rgrg1234


       你這樣弄,就算其他玩家關閉了還是會收到消息
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2011-10-30 15:14:18 | 顯示全部樓層
    回復 7# fgyackl


       你複製我po在尚未命名的當然沒效果...
    我裡面是用角色變數判斷開啟與關閉的...
    應該改成
    1. //-------------------------------------------------------//
    2.         //   AleAR - Ally   -      To Talk Guild System          //
    3.         //-------------------------------------------------------//
    4.         if(strcmpi(target, "ally") == 0){
    5.                 struct s_mapiterator* i_pc = mapit_getallusers();
    6.                 struct guild *g;//Guild
    7.                 TBL_PC* pl_sd;
    8.                 char output[256];
    9.                 messagelen = strlen(message)+1;
    10.                 if(!sd->status.guild_id) {
    11.                         sprintf(output,"必須加入工會!");
    12.                         clif_disp_onlyself(sd,output,strlen(output));
    13.                         return;
    14.                 }
    15.                 if(!sd->state.allytalk){                        sprintf(output,"必須開啟該功能!,使用@ally");
    16.                         clif_disp_onlyself(sd,output,strlen(output));
    17.                         return;        
    18.                 }
    19.                 g = guild_search(sd->status.guild_id);
    20.                 for( pl_sd = (TBL_PC*)mapit_first(i_pc); mapit_exists(i_pc); pl_sd = (TBL_PC*)mapit_next(i_pc) )
    21.                         if(sd->state.allytalk && sd != pl_sd && pl_sd->status.guild_id && (guild_check_alliance(sd->status.guild_id,pl_sd->status.guild_id,0) || sd->status.guild_id == pl_sd->status.guild_id)) {
    22.                                 sprintf(output, "【%s】 %s : %s", g->name, sd->status.name, message);
    23.                                 clif_disp_onlyself(pl_sd,output,strlen(output));
    24.                 }
    25.                 mapit_free(i_pc);
    26.                 sprintf(output, "【%s】 %s : %s", g->name, sd->status.name, message);
    27.                 clif_disp_onlyself(sd,output,strlen(output));
    28.                 return;
    29.         }
    複製代碼
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2012-10-20 12:31 AM
  • 簽到天數: 305 天

    連續簽到: 94 天

    [LV.8]以壇為家I

    發表於 2011-10-30 15:17:33 | 顯示全部樓層
    回復 10# Alopex


        答案就在八樓!!
    的空白處
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2011-10-30 16:18:04 | 顯示全部樓層
    回復 12# rgrg1234


       :91:我無言了...真的
    無視我吧=_=
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2012-10-20 12:31 AM
  • 簽到天數: 305 天

    連續簽到: 94 天

    [LV.8]以壇為家I

    發表於 2011-10-30 17:01:30 | 顯示全部樓層
    本帖最後由 rgrg1234 於 2011-10-30 05:02 PM 編輯

    回復 13# Alopex
    if(sd->state.allytalk && sd != pl_sd && pl_sd->status.guild_id && (guild_check_alliance(sd->status.guild_id,pl_sd->status.guild_id,0) || sd->status.guild_id == pl_sd->status.guild_id))
    這樣真的符合你在10樓回覆我的=.=+
    回復 支持 反對

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 註冊

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2024-5-2 08:04 AM , Processed in 0.053995 second(s), 19 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表