OK論壇

 找回密碼
 註冊
查看: 3360|回復: 5

[教學] [EA源碼]讓指令可以指定玩家

[複製鏈接]
  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2009-8-31 17:42:25 | 顯示全部樓層 |閱讀模式
    如標題,這是Ea源碼,讓指令可以用來指定玩家施展
    用個簡單的範例讓大家了解,
    以下是獲得手推車的指令源碼
    請打開script.c

    1. 收尋
    2. BUILDIN_FUNC(setcart)
    複製代碼


    然後它的內容是這樣的

    1. BUILDIN_FUNC(setcart)
    2. {
    3. int type = 1;
    4. TBL_PC* sd;
    5. sd = script_rid2sd(st);
    6. if( sd == NULL )
    7.   return 0;// no player attached, report source
    8. if( script_hasdata(st,2) )
    9.   type = script_getnum(st,2);
    10. pc_setcart(sd, type);
    11. return 0;
    12. }
    複製代碼

    好,開始解釋
    它原先使用方法是:setcart <type>;
    type=手推車參數(每個的樣子)
    sd:變數
    script_rid2sd(st);//取得使用指令的玩家ID
    script_hasdata(st,2):如果有第二個參數資料(type)便將type指定為它(沒有則默認為1,0代表消除推車)
    pc_setcart(sd, type):pc_setcart~把sd, type兩者資料傳送到pc_setcart執行(內容複雜,暫時不說)
    如果我們要把手推車可以指定玩家的話,可以改成

    1. BUILDIN_FUNC(setcart)
    2. {
    3. int type = 1;
    4. TBL_PC* sd;
    5. if( script_hasdata(st,3) )
    6.   sd=map_id2sd(script_getnum(st,3));
    7. else
    8. sd=script_rid2sd(st);
    9. if( sd == NULL )
    10.   return 0;// no player attached, report source
    11. if( script_hasdata(st,2) )
    12.   type = script_getnum(st,2);
    13. pc_setcart(sd, type);
    14. return 0;
    15. }
    複製代碼

    script_hasdata(st,3):如果有第三個參數,就將sd設為第三個參數
    script_getnum:取得第三個參數(數字)
    這樣就可以了~
    很多指令皆可這樣更改~

    如果有錯誤請回報,感恩

    評分

    參與人數 1積分 +30 現金 +30 積極性 +30 收起 理由
    02100120 + 30 + 30 + 30 我很贊同

    查看全部評分

    回復

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.6]常住居民II

     樓主| 發表於 2009-9-8 18:08:33 | 顯示全部樓層
    本帖最後由 Alopex 於 2010-7-23 12:28 PM 編輯

    補充:map_id2sd是傳會回該aid的地址
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2016-6-9 12:41 PM
  • 簽到天數: 31 天

    連續簽到: 1 天

    [LV.5]常住居民I

    發表於 2011-12-4 21:39:07 | 顯示全部樓層
    為什麼不用 #指令
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-12-30 04:16 AM
  • 簽到天數: 1322 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2011-12-4 21:42:44 | 顯示全部樓層
    回復 3# 納歐


        那個#指令 可以指定變數?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2016-6-9 12:41 PM
  • 簽到天數: 31 天

    連續簽到: 1 天

    [LV.5]常住居民I

    發表於 2011-12-5 21:40:02 | 顯示全部樓層
    因為標題是 "讓指令可以指定玩家" ,但是這個例子中使用setcart讓我有點不解 。

    在腳本中要為其他玩家裝上手推車的話,我想到的是用 attachrid 或是 atcommand 。
    不太會想要去修改源碼,或是我搞錯了版主的意思了。

    不過我倒是也有遇到一種狀況是類似此篇,需要修改源碼來拿讓腳本拿到其他玩家的資訊。
    strcharinfo(<type>)本來只能拿到自身狀態的資訊,後來我也是修改了源碼,
    在<type>增加新的定義好拿到指定玩家的所在地圖位置。
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-12-30 04:16 AM
  • 簽到天數: 1322 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2011-12-25 00:12:57 | 顯示全部樓層
    他教你的是 map_id2sd   其他只是例子

    他這樣改一個指令 能作到  平常要2~3個 指令能作到的事

    不用再去 attachrid  就效率上 快多了
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-5-2 02:05 PM , Processed in 0.053020 second(s), 28 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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