OK論壇

 找回密碼
 註冊
查看: 3921|回復: 7

[教學] [原創]MyeAthena源碼教學貼: announce腳本指令強化

[複製鏈接]
  • TA的每日心情
    慵懶
    2012-10-4 02:22 AM
  • 簽到天數: 177 天

    連續簽到: 5 天

    [LV.7]常住居民III

    發表於 2009-10-24 21:36:19 | 顯示全部樓層 |閱讀模式
    嚴禁轉貼!



    說明:
    控制announce所顯示的文字大小
    1. BUILDIN_FUNC(announce)
    2. {
    3.     const char *str, *color=NULL;
    4.     int flag, size=12;
    5.     str=script_getstr(st,2);
    6.     flag=script_getnum(st,3);
    7.     if (script_hasdata(st,4))
    8.         color=script_getstr(st,4);

    9. +    if (script_hasdata(st,5))
    10. +        size=script_getnum(st,5);

    11. +    // While flag is 0x0f, the size setting won't do. [Killporing]
    12.     if(flag&0x0f){
    13.         struct block_list *bl=(flag&0x08)? map_id2bl(st->oid) :
    14.             (struct block_list *)script_rid2sd(st);
    15.         if( bl == NULL )
    16.             return 0;
    17.         if (color)
    18. -            clif_announce(bl,str,(int)strlen(str)+1, strtol(color, (char **)NULL, 0),flag);
    19. +        {
    20. +            if (size != 12)
    21. +                clif_announce_ex(bl,str,(int)strlen(str)+1, strtol(color, (char **)NULL, 0),flag,size);
    22. +            else
    23. +                clif_announce(bl,str,(int)strlen(str)+1, strtol(color, (char **)NULL, 0),flag);
    24. +        }
    25.         else
    26.             clif_GMmessage(bl,str,(int)strlen(str)+1,flag);
    27.     }else {
    28.         if (color)
    29.             intif_announce(str,(int)strlen(str)+1, strtol(color, (char **)NULL, 0), flag);
    30.         else
    31.             intif_GMmessage(str,(int)strlen(str)+1,flag);
    32.     }
    33.     return 0;
    34. }
    複製代碼

    評分

    參與人數 1積分 +40 現金 +40 積極性 +40 收起 理由
    goddameit + 40 + 40 + 40 精品文章

    查看全部評分

    回復

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2009-10-28 20:33:18 | 顯示全部樓層
    -..........-

    本身EA的clif_announce函數跟上不符合@@"

    clif.h
    宣告
    1. int clif_announce(struct block_list *bl, const char* mes, int len, unsigned long color, int flag, int size);
    複製代碼
    clif.c

    1. int clif_announce(struct block_list* bl, const char* mes, int len, unsigned long color, int flag ,int size)
    2. {
    3.         return clif_announce_ex(bl, mes, len, color, flag, size);
    4. }
    複製代碼
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2012-10-4 02:22 AM
  • 簽到天數: 177 天

    連續簽到: 5 天

    [LV.7]常住居民III

     樓主| 發表於 2009-10-28 22:38:36 | 顯示全部樓層
    他分開來寫應該是有他的道理在吧:55:
    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2009-10-29 18:08:14 | 顯示全部樓層
    3# 為私服而開





    .....
    結果是我看錯了=/////=
    clif_announce_ex有傳入size

    clif_announce則沒有.
    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2009-10-29 18:08:52 | 顯示全部樓層
    沒有設定大小就直接預設為12
    @@"
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2012-10-4 02:22 AM
  • 簽到天數: 177 天

    連續簽到: 5 天

    [LV.7]常住居民III

     樓主| 發表於 2009-10-29 19:52:35 | 顯示全部樓層
    #5
    有什麼問題嗎?
    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2009-11-1 15:12:24 | 顯示全部樓層
    沒有,就純粹我看錯....


    他分開寫成clif_announce_ex和clif_announce的用處應該就是.........

    沒有傳入大小值,就愈設為12
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2024-5-2 03:39 PM
  • 簽到天數: 1323 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2011-5-10 13:14:42 | 顯示全部樓層
    有什麼問題嗎?
    為私服而開 發表於 2009-10-29 07:52 PM



        有,看不懂

       有變字型的修改嗎 我要用別的字體 比較好看
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-5-22 01:02 PM , Processed in 0.088854 second(s), 28 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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