OK論壇

 找回密碼
 註冊
查看: 29602|回復: 80

[教學] 腳本的基礎知識及教學(教你自編腳本

[複製鏈接]
  • TA的每日心情
    奮斗
    2013-4-19 08:04 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    發表於 2007-8-16 08:01:55 | 顯示全部樓層 |閱讀模式
    QUOTE:
    前言:
    本人見168的腳本區.玩家都問一些好普通的問題!!
    例:如何新增NPC..改一些普遍的問題..
    還有分享腳本1次就放幾百個上來.
    好多都是改了小小.有些就重複!(好亂= =")
    都沒人討論 腳本 技術!!..~.~
    所以希望加上教學~.希望大家努力學習!
    發揮你的創造力.為自己的私服.寫上特別.
    有特色的腳本.請多交流腳本技術!!


    athena 腳本編寫可能有很多人都感到好難!
    因為不知道應該從那開始學,該如何學習!

    如要學好腳本要先:
    1.對編寫腳本感興趣.
    2.開始學習指令運用.
    3.試寫腳本.試用指令(重要).
    4.看其他人寫的腳本.
    5.學會別人的指令運用.
    6.試優化別人的腳本.
    7.加上創意.寫出自己的腳本.

    如果有問題. 可以發帖提問.

    QUOTE:
    新增npc:

    1.做一個腳本放到npc目錄裡面
    2.然後在map_athena裡面添加相對路徑和檔案名
    3.相對路徑是指以map-server.exe所在檔案夾內的檔案夾名稱。

    例︰道場.txt
    運行NPC腳本設定(不需要運行的腳本在npc前輸入 // 表示關閉)
    npc: npc\道場.txt



    一: 最最基本的簡介

    QUOTE:
    1個腳本最基本是有個npc 位置 樣子 內容

    prontera.gat,148,180,5   script   測試人員   868,{}

    地圖名(prontera.gat),X坐標(148),Y坐標(180),方向(5)   script   名稱   NPC編號,{ 內容 }

    a.地圖名稱:可在遊戲內打 /where 找出 記我要加上 .gat
    b.地圖坐標:可在遊戲內打 /where 找出

                   ↑Y 遞增
                  ( 0,200)--(200,200)
                     |          |
                     | 地圖   |
                     |          |
                  ( 0, 0)--(200, 0)→X遞增

    c.NPC方向: 5代表npc所朝向的方向
                     7   0  1
                     6  ●   2
                     5   4  3
    d.NPC名稱:自行輸入(測試人員)
    e.script      :代表這是一個腳本.還有其他!
    f. NPC編號: 內有NPC ID: 點我
                         如果npcid為-1則這個NPC不會出現下地圖上(但是對話內容依然有效).
    g.內容: {   } 開 {   關  } 因為沒打上內容所以點了NPC也是沒有反應!

    ps.中間的空格地方需要用TAB鍵
         {}裡面是腳本所需要執行的內容

    prontera.gat,148,180,5  <TAB鍵> script <TAB鍵>  測試人員 <TAB鍵> 868,{}

    以上只是1個簡單沒內容的NPC腳本 !
    開始介紹別的!!


    QUOTE:
    怪物:
             固定自動刷新的怪物.

    例: prt_fild10.gat,0,0,0,0         monster        波波利        1031,20,0,0,0

    地圖名,x,y,xs,ys<tab>monster<tab>顯示名<tab> 怪物代碼,數量,刷新延遲,死亡延遲,[事件]

               地圖名          所在的地圖名(必須有.gat)。
               x                    坐標.0為隨機.
               y                    坐標.0為隨機.
               xs                  坐標X的延伸範圍。
               ys                  坐標Y的延伸範圍。
               xs,ys的例子 :
                           0,0                2,1
                                         ﹡﹡﹡﹡﹡
                            ●             ﹡﹡● ﹡﹡
                                         ﹡﹡﹡﹡﹡

                ﹡●點為怪物出現的位置:
                2.1代表 怪會隨機出現在 X 正負2,Y 正負1的地方

               顯示名              怪物的名字. --ja-- 調用mob_db內的名字
               怪物代碼          出現怪物的ID,參考mob_db.txt的設定.
               怪物數量          map啟動時產生的數量,與下面設定的重複刷新無關。
               刷新延遲          刷新後等多少毫秒再次刷新。0為即時
               死亡延遲          死亡後等多少毫秒再次刷新。0為即時
               事件                  死亡後調用腳本(script 類型-1)需同地圖.可不寫


    QUOTE:
    傳送類型:           

    將範圍的玩家傳送到目標地圖及坐標.

    例:prontera.gat,107,215,0    warp  pronterawarp1033   2,2,prt_in.gat,240,139

    地圖名,x,y<tab>warp<tab>顯示名<tab>X延伸,Y延伸,到達地圖名,目的坐標X,目的坐標Y

               地圖名        原先的地圖.要加上.gat.
               x                  原先地圖的坐標X.
               y                  原先地圖的坐標Y.
               顯示名        移動點的名稱.不能重複.DEBUG用.
               x延伸          移動點的橫向X觸發範圍.
               y延伸          移動點的縱向Y觸發範圍.
               dx,dy的例子︰

                    0,0                   1,0                        2,2
                    ﹡﹡﹡       ﹡﹡﹡﹡﹡      ﹡﹡﹡﹡﹡﹡﹡
                    ﹡●  ﹡      ﹡﹡●  ﹡﹡     ﹡﹡﹡﹡﹡﹡﹡
                    ﹡﹡ ﹡      ﹡﹡﹡﹡ ﹡     ﹡﹡﹡﹡﹡﹡﹡
                                                         ﹡﹡﹡● ﹡﹡﹡
                                                         ﹡﹡﹡﹡﹡﹡﹡
                                                         ﹡﹡﹡﹡﹡﹡﹡
                                                         ﹡﹡﹡﹡﹡﹡﹡

               進入﹡的話就發生傳送。

               到達地圖名          目標地圖.不要忘記加.gat。
               目的坐標x            目標地圖的坐標X。
               目的坐標y            目標地圖的坐標Y。

               注意事 :
               如果移動點有重複,則使用最後加載的.
               如果目的坐標點不能進入,則會隨機傳送當前地圖可站立坐標.
               如果到達地圖名沒有開,那就原會發生傳送.


    QUOTE:
    商店:

    例:prt_in.gat,92,73,3  shop 斧商  79,1302:1000,1352:1000

    地圖名,x,y,方向<tab>shop<tab>顯示名<tab>NPC代碼,道具代碼:道具價格

               地圖名               出現的地圖.記得加.gat
                x                        坐標x
                y                        坐標y
               方向                   NPC介紹了
               顯示名               商店名字。
               NPC代碼            內有NPC ID: 點我
               道具代碼           出售的道具的ID.參考item_db。
               道具價格           道具的購買價格.如果為 -1,則按照item_db.txt的設定.

    PS.道具代碼 : 道具價格,可以用(,)來增加更多的道具.但最後一個後面必須留空


    QUOTE:
    觸法NPC事件:

    格式跟NPC錯不多 只是多了 觸發的X,Y範圍!
    因為 139 這個編號是透明NCP所以在遊戲內是看不到他!
    可自行找找NPC 還有幾個是透明.

    例:ayothaya.gat,150,160,0        script        hp        139,10,10,{ }

    地圖名,x,y,方向<tab>script<tab>顯示名<tab>NPC代碼,xs,ys,{執行內容}

               地圖名                  出現的地圖。
               x                  坐標x。
               y                  坐標y。
               方向            NPC面對的方向。設定參考上例商店
               顯示名        NPC的名字.
               NPC代碼     NPC的ID,如果npcid為-1則這個NPC不會出現下地圖上(但是對話內容依然有效
               x觸發         坐標X延伸的觸發範圍,位於範圍內將觸發NPC,
                                  如NPC 內容帶有OnTouch標籤,則觸發標籤後的內容
                                  有些不用OnTouch也可直接執行.
               y觸發         坐標Y延伸的觸發範圍,與X延伸共同作用.具體觸發坐標如下
               
               ●為NPC位置:
                           2,0                2,1
                           ﹡﹡● ﹡﹡     ﹡﹡﹡﹡﹡
                                             ﹡﹡● ﹡﹡
                                             ﹡﹡﹡﹡﹡
       
               走到 ﹡的地方就會觸發腳本!
               註釋可用//和/* */
               每行語句用;(分號)結束
  • TA的每日心情
    慵懶
    2013-4-4 02:22 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    發表於 2007-8-16 08:15:34 | 顯示全部樓層
    ....@@

    我有貼了說 囧
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    奮斗
    2013-4-19 08:04 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| 發表於 2007-8-16 08:19:04 | 顯示全部樓層

    回復 #2 弒殺武神 的帖子

    對不起。。。我沒看到

    請原諒我的無知
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-4-4 02:22 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    發表於 2007-8-16 08:54:41 | 顯示全部樓層
    原帖由 雪光 於 2007-8-16 08:19 AM 發表
    對不起。。。我沒看到

    請原諒我的無知


    什麼無知...ˊˋ

    講的好像=  =

    我欺負你ˊˋ
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    奮斗
    2013-4-19 08:04 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| 發表於 2007-8-16 10:03:52 | 顯示全部樓層

    回復 #4 弒殺武神 的帖子

    你欺負我

    嗚嗚︿M<
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-4-4 02:22 PM
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    發表於 2007-8-16 11:45:19 | 顯示全部樓層
    -     3 -.......
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2007-8-21 23:07:37 | 顯示全部樓層
    版主.....我看不懂!!!
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2007-8-22 04:24:20 | 顯示全部樓層
    看不懂...但是還是謝謝了=ˇ=
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    難過
    2021-11-10 08:48 AM
  • 簽到天數: 45 天

    連續簽到: 1 天

    [LV.5]常住居民I

    發表於 2007-8-22 09:58:57 | 顯示全部樓層
    f. NPC&#32534;號: 內有NPC ID: &#28857;我
    這ㄍ好像沒有用ㄟ!!
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2007-8-24 13:42:31 | 顯示全部樓層
    感謝大大的分享XD~~
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2010-5-27 01:52 AM
  • 簽到天數: 19 天

    連續簽到: 0 天

    [LV.4]偶爾看看III

    發表於 2007-9-7 22:34:55 | 顯示全部樓層
    謝謝大大的教學~~
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2010-9-11 04:06 PM
  • 簽到天數: 24 天

    連續簽到: 0 天

    [LV.4]偶爾看看III

    發表於 2007-9-9 19:39:56 | 顯示全部樓層
    謝謝大大的教學 ~~~~~~
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2022-3-9 06:21 PM
  • 簽到天數: 11 天

    連續簽到: 1 天

    [LV.3]偶爾看看II

    發表於 2007-9-13 21:58:15 | 顯示全部樓層
    好像不錯喔  來自己寫看看
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2007-9-23 22:57:57 | 顯示全部樓層
    努力的研究,雖然就看的不是很懂,但是看久了因該可以研究出來,
    謝謝囉
    回復 支持 反對

    使用道具 舉報

    該用戶從未簽到

    發表於 2007-11-24 18:37:10 | 顯示全部樓層

    回復 1# 的帖子

    @@ 這位大大您辛苦拉...
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-4-25 09:40 PM , Processed in 0.057808 second(s), 20 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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