OK論壇

 找回密碼
 註冊
查看: 1332|回復: 6

OnTouch相關問題

 關閉 [複製鏈接]
  • TA的每日心情
    擦汗
    2021-1-3 02:46 PM
  • 簽到天數: 360 天

    連續簽到: 1 天

    [LV.8]以壇為家I

    發表於 2014-6-15 22:47:44 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: SeAr1.10.132
    問題內容: 腳本問題
    本帖最後由 z0202520 於 2014-6-16 09:01 PM 編輯

    小弟最近在學習撰寫腳本,撰寫到一個段落後,發現一個問題。
    那就是.. 我有個部分想讓NPC走動,並且當NPC撞到玩家時,玩家就死亡。
    基本上我是設定這樣
    1. payon.gat,156,219,5        script        屠殺者#T10        1002,1,1,{

    2. OnTouch:
    3.         percentheal -100,-100;
    4.         end;

    5. OnTimer1000:
    6.         npcspeed $@TouchNpcTop[10];
    7.         getmapxy(.mapname$,.mapx,.mapy,1);
    8.         npcwalkto .mapx,.mapy-(.mapy-$@Touch_RightDownY);
    9.         end;

    10. OnTimer1200:
    11.         While(.mapy2!=.mapy-(.mapy-$@Touch_RightDownY)) {
    12.                 sleep 100;
    13.                 getmapxy(.mapname$,.mapx2,.mapy2,1);
    14.         }
    15.         movenpc strnpcinfo(0),.mapx,.mapy;
    16.         stopnpctimer;
    17.         end;
    18. }
    複製代碼
    大致上功能是有的,只是呢..
    當NPC經過的路上有玩家時,並不是將玩家撞死,而是改繞玩家旁邊,而且玩家沒有死亡!
    只有當玩家自行走到NPC周圍1格時才會死掉..
    有沒有辦法能改成,不要NPC周圍一格,就NPC本格的判斷。
    而且當玩家在NPC前面時,NPC撞到玩家後,玩家立刻死亡
    求各位幫忙解答,謝謝您的不吝嗇回答!
    回復

    使用道具 舉報

  • TA的每日心情
    擦汗
    2018-9-15 03:18 PM
  • 簽到天數: 842 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-6-15 23:13:39 | 顯示全部樓層
    OnTouch本身就是 玩家碰觸NPC範圍而不是NPC碰觸玩家

    而會繞過玩家 那是Sear免費版碰撞系統問題

    有兩種方式 但基本上是一樣
    迴圈隨時判斷周圍是否有玩家
    另一種則是
    走一步判斷一次
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2021-1-3 02:46 PM
  • 簽到天數: 360 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2014-6-15 23:24:42 | 顯示全部樓層
    o03126 發表於 2014-6-15 11:13 PM
    OnTouch本身就是 玩家碰觸NPC範圍而不是NPC碰觸玩家

    而會繞過玩家 那是Sear免費版碰撞系統問題

    瞭解!
    可是即時判斷周圍範圍的時候依然會有問題吧?
    玩家站著不動的話,NPC繞過玩家後,判斷的到在範圍內嗎 ?
    而且是周圍1格的話就跟我想要的效果有些出入了....

    我再想呢.. 能不能用下面這方法來即時判斷下一格是否有人?
    getareausers 下一格是否有人,若有人的話,取得該玩家GID並進行 unitkill。
    只是這邊的話我不知道怎麼取得GID.. 因為沒有玩家關聯
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2018-9-15 03:18 PM
  • 簽到天數: 842 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-6-16 01:18:29 | 顯示全部樓層
    z0202520 發表於 2014-6-15 11:24 PM
    瞭解!
    可是即時判斷周圍範圍的時候依然會有問題吧?
    玩家站著不動的話,NPC繞過玩家後,判斷的到在範圍 ...

    看你要怎麼樣的判斷阿
    如果你能排除碰撞系統 那判斷同做標就可以

    要不然就判斷周圍
    取得GID的話 可以用script4each

    要不然就是你這項腳本起始就先記錄aid
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2021-1-3 02:46 PM
  • 簽到天數: 360 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2014-6-16 08:44:26 | 顯示全部樓層
    o03126 發表於 2014-6-16 01:18 AM
    看你要怎麼樣的判斷阿
    如果你能排除碰撞系統 那判斷同做標就可以

    哦...
    不好意思,script4each 我不太會使用,剛剛做了一些測試都一樣有錯誤。
    1. *script4each "<腳本>",<類型>{,...}

    2.         類型0:全服:script4each "<腳本>",0;
    3.         類型1:全地圖:script4each "<腳本>",1,"地圖名";
    4.         類型2:全區域:script4each "<腳本>",2,"地圖名",坐標x,坐標y,範圍;
    5.         類型3:全組隊:script4each "<腳本>",3,玩家cid;
    6.         類型4:全公會:script4each "<腳本>",4,玩家cid;
    7.         類型5:全陣營:script4each "<腳本>",5,玩家cid;
    8.         類型6:全區域:script4each "<腳本>",6,"地圖名",坐標x0,坐標y0,坐標x1,坐標y1;
    9.         類型7:全組隊:script4each "<腳本>",7,隊伍id;
    10.         類型8:全公會:script4each "<腳本>",8,公會id;
    11.         類型9:全陣營:script4each "<腳本>",9,陣營id;
    複製代碼


    都產生這樣的錯誤,那個"<腳本>"的地方是真的輸入txt腳本的名字?還是需要完整路徑或是?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2018-9-15 03:18 PM
  • 簽到天數: 842 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-6-16 09:05:00 | 顯示全部樓層
    z0202520 發表於 2014-6-16 08:44 AM
    哦...
    不好意思,script4each 我不太會使用,剛剛做了一些測試都一樣有錯誤。
    1. script4each "{ warp "SavePoint",0,0; }",0;
    複製代碼
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2021-1-3 02:46 PM
  • 簽到天數: 360 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2014-6-16 21:00:50 | 顯示全部樓層
    o03126 發表於 2014-6-16 09:05 AM

    瞭解了∼我利用您教的方法已經完成我想要的意思。
    謝謝你的指導!
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-5-15 09:11 AM , Processed in 0.080905 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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