OK論壇

 找回密碼
 註冊
查看: 1838|回復: 8

關於副本的變數寫法

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

    連續簽到: 1 天

    [LV.8]以壇為家I

    發表於 2014-6-4 21:37:34 | 顯示全部樓層 |閱讀模式
    本帖最後由 z0202520 於 2014-6-4 10:32 PM 編輯

    小弟服務端版本:SeAr1.10.132
    最近自行撰寫副本完後,在自己一個人測試的過程中沒有錯誤。
    但是當副本同時有兩組創建時,變數的設置就出現了問題.. 如下

    功能是.. 副本開始後,某個地點會一直召喚怪物,召喚1隻,延遲1秒,所以整個迴圈下來會拖很久。
    而另外一位NPC可以選擇暫停出怪幾分鐘,在這裡,出現了問題...
    1. $name  - 永久伺服器數字變數
    2. $name$ - 永久伺服器文字變數  說明  - 記錄在伺服器,不會消失。
    3. $@name  - 暫時伺服器數字變數
    4. $@name$ - 暫時伺服器文字變數  說明  - 記錄在伺服器,重讀或重開伺服器就會消失。
    5. .name  - 暫時NPC數字變數
    6. .name$ - 暫時NPC文字變數說明  - 記錄在NPC身上,重讀或重開伺服器就會消失。
    7. .@name  - 暫時NPC數字變數
    8. .@name$ - 暫時NPC文字變數  說明  - 記錄在NPC身上,結束對話後就會消失。
    複製代碼
    如果變數寫伺服器變數,不可行,全伺服器的人都會錯亂。
    如果變數寫暫時NPC數字變數(.name)時,假設第一組開啟時間暫停後,第二組的副本地圖npc也會更改此變數,造成錯亂..
    經過測試,發現只有.@name暫時數字變數可用,但是當該段敘述結束後,變數就沒了..
    這樣召喚怪物的敘述區段,也沒辦法讀到開啟暫停時間的變數關係.
    有什麼方法能在副本裡面使用變數來記錄任何一個值後,再供給另一個NPC使用的呢?
    或者...
    有什麼指令能判斷在該地圖有哪個編號的魔物嗎?
    然後當initnpctimer後,時間到達就把該怪物殺掉,這樣當作判斷方法...
    1. set .@map$, instance_mapname("副本地圖");
    2.         for(set .@i,0;.@i<30;set .@i,.@i+1) {
    3.                 if(.@delay_time>0) {
    4.                         sleep .@delay_time*60000;
    5.                         set .@delay_time,0;
    6.                 }
    7.                 campmob        .@map$,24,23,24,23,"--ja--",$@mob_GD1[1],1;
    8.                 campmob        .@map$,36,80,36,80,"--ja--",$@mob_GD1[2],1;
    9.                 campmob        .@map$,94,98,94,98,"--ja--",$@mob_GD1[3],1;
    10.                 sleep 1500;
    11.         }
    複製代碼
    set .@map$ 這邊我先打副本地圖替代意思一下...
    大概就是這腳本構思.. 如果用 .@delay_time,在另一個NPC設定這個值時,這邊會讀不到。
    有沒有什麼辦法能解決這個變數區域性的問題呢?我目前腳本沒完成,只是先測試這個功能發現有問題而已。
    所以沒腳本可以提供給你們做參考... 但是就針對這個問題想請教一下各位....
    如果有知道解決辦法,希望您不吝嗇於回答,謝謝你了....
    回復

    使用道具 舉報

  • TA的每日心情
    開心
    2023-9-25 11:37 PM
  • 簽到天數: 1686 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2014-6-4 21:45:43 | 顯示全部樓層
    1. *getvariableofnpc(<variable>,"<npc name>")

    2. Returns a reference to a NPC variable (. prefix) from the target NPC.
    3. This can only be used to get . variables.

    4. Examples:

    5. //This will return the value of .var, note that this can't be used, since the value isn't caught.
    6.     getvariableofnpc(.var,"TargetNPC");
    7.    
    8. //This will set the .v variable to the value of the TargetNPC's .var variable.
    9.     set .v, getvariableofnpc(.var,"TargetNPC");
    10.    
    11. //This will set the .var variable of TargetNPC to 1.
    12.     set getvariableofnpc(.var,"TargetNPC"), 1;

    13. Note: even though function objects can have .variables,
    14. getvariableofnpc will not work on them.

    複製代碼
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2016-12-15 11:58 PM
  • 簽到天數: 379 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2014-6-4 21:54:40 | 顯示全部樓層
    'abc
    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2014-6-4 22:12:19 | 顯示全部樓層
    本帖最後由 z0202520 於 2014-6-4 10:13 PM 編輯

    a91323 發表於 2014-6-4 09:45 PM
    1.   set .@delay_time1,getvariableofnpc(.@delay_time,"時空神殿管制者#gd");
    2.                 if(.@delay_time1>0) {
    3.                         for(set .@k,0;.@k<.@delay_time1*60;set .@k,.@k+1) {
    4.                         if(getmapusers(.@map$)==0) end;
    5.                         sleep 1000;        }
    6.                 }
    複製代碼
    1.   set .@delay_time1,getvariableofnpc(.delay_time,"時空神殿管制者#gd");
    2.                 if(.@delay_time1>0) {
    3.                         for(set .@k,0;.@k<.@delay_time1*60;set .@k,.@k+1) {
    4.                         if(getmapusers(.@map$)==0) end;
    5.                         sleep 1000;        }
    6.                 }
    複製代碼
    1.   set .delay_time1,getvariableofnpc(.delay_time,"時空神殿管制者#gd");
    2.                 if(.delay_time1>0) {
    3.                         for(set .@k,0;.@k<.delay_time1*60;set .@k,.@k+1) {
    4.                         if(getmapusers(.@map$)==0) end;
    5.                         sleep 1000;        }
    6.                 }
    複製代碼
    我寫上面三種變數寫法都一樣發生下圖的錯誤耶.. 是這樣寫嗎=_=...
    getvariableofnpc(.@delay_time,"時空神殿管制者#gd")方面
    另一位 時空神殿管制者#gd 的NPC給的變數型態我都照著(.var,"TargetNPC")的.var型態去寫.
    您那腳本語法怎麼使用呢...?




    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2014-6-4 22:15:45 | 顯示全部樓層
    球魁 發表於 2014-6-4 09:54 PM
    'abc

    不懂大大的意思
    能請您說詳細點嗎=.=..
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-9-25 11:37 PM
  • 簽到天數: 1686 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2014-6-4 22:18:27 | 顯示全部樓層
    z0202520 發表於 2014-6-4 10:15 PM
    不懂大大的意思
    能請您說詳細點嗎=.=..

    印象中
    'abc
    是副本專用的變數
    1. " ' "      - An instance variable
    2.            These are used with the instancing system, and are unique to each
    3.            party's instance.
    複製代碼
    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-6-4 22:21:19 | 顯示全部樓層
    z0202520 發表於 2014-6-4 10:15 PM
    不懂大大的意思
    能請您說詳細點嗎=.=..

    說實在 不太懂你想要做到甚麼樣的效果 敘述好長

    ' 變數= 副本變數 只存在該隊伍的副本使用 (創建進去在副本才存在)

    如果只是要殺掉特定魔物 sear本身就支援給予gid 那用gid 去kill就行了
    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2014-6-4 22:31:21 | 顯示全部樓層
    a91323 發表於 2014-6-4 10:18 PM
    印象中
    'abc
    是副本專用的變數

    了解,經過測試後已經沒問題了!
    謝謝您的指導與幫忙~~
    解決方式:把變數改成 '副本變數即可設為單獨的副本作用變數!
    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2014-6-4 22:32:16 | 顯示全部樓層
    o03126 發表於 2014-6-4 10:21 PM
    說實在 不太懂你想要做到甚麼樣的效果 敘述好長

    ' 變數= 副本變數 只存在該隊伍的副本使用 (創建進去在 ...

    抱歉... 不知道怎麼很簡單的表述我的問題,打得有點攏長了...
    謝謝您的幫忙唷~~ 副本變數 ('name)已經解決我的疑惑。


    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-3-29 04:46 PM , Processed in 0.048040 second(s), 19 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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