OK論壇

 找回密碼
 註冊
查看: 1973|回復: 11

[RA] 副本 隊伍傳送問題

[複製鏈接]
  • TA的每日心情

    2018-8-8 04:07 PM
  • 簽到天數: 267 天

    連續簽到: 1 天

    [LV.8]以壇為家I

    發表於 2016-11-22 09:06:51 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: 23043
    問題內容: 腳本問題
    本帖最後由 Ceres8154 於 2016-11-24 12:49 AM 編輯

    ==========================================
    解決辦法:
    請往下看XD
    大大們所提出的都是不錯的想法,後面有問題的人可以都借鑒看看
    ==========================================
    各位好,
    小弟使用環境為

    server端:Rathena SVN 23043

    最近在撰寫副本時
    遇到一個小問題,想請教各位大大

    想法:
    僅隊長付費
    建立副本> 付費完成 >整個隊伍傳送
    也就是說建立完副本之後,整個隊伍會直接傳送進副本內
    隊伍其餘玩家不用透過NPC一個個點進去

    執行結果:
    付費,建立副本都沒問題,問題出在隊伍傳送部分,
    目前僅有隊長會進入副本,其餘玩家會在外面乾等=口=
    小弟寫法如下
    懇請大大們指導如何修改

    .@create = instance_create(.@instance$);//建立副本
            if (.@create < 0) {
                                    next;
                                    mes "[副本訊息: ]";
                                    switch (.@create) {
                                            case -1: mes "ERROR: Invalid type."; close;break;
                                            case -2: mes "ERROR: 請先建立隊伍"; close;break;
                                            case -3: mes "ERROR: 記憶迷宮副本已經存在"; close; break;
                                            case -4: mes "ERROR: No free instances."; break;
    }

    set Zeny,Zeny-.@inszeny;
    addrid(2,0,.@inspartyid);
    instance_enter(.@instance$);

    小弟想法為:

    利用getcharid 先拿到隊伍ID 傳入到 addrid
    再使用addrid的方式將下面區塊作用於隊伍人物中
    不知道我對addrid的理解對不對(?)

    麻煩大大們指教,謝謝




    回復

    使用道具 舉報

  • TA的每日心情

    2018-12-16 03:25 PM
  • 簽到天數: 336 天

    連續簽到: 1 天

    [LV.8]以壇為家I

    發表於 2016-11-22 10:41:29 | 顯示全部樓層
    為什麼不用

    warpparty "XXX.gat",49,47,getcharid(1);

    就好
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-8-23 03:44 PM
  • 簽到天數: 1026 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2016-11-22 11:44:40 | 顯示全部樓層
    其他隊員有在同個地圖嗎?
    還是說其他隊員處在不可傳送的地圖呢?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2018-8-8 04:07 PM
  • 簽到天數: 267 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2016-11-22 11:57:22 | 顯示全部樓層
    直接使用warpparty "XXX.gat",49,47,getcharid(1);
    就可以整個隊伍傳送了嗎?

    隊員基本上都在同一地圖
    還是可以無視地圖傳送呢?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-8-23 03:44 PM
  • 簽到天數: 1026 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2016-11-22 12:17:59 | 顯示全部樓層
    Ceres8154 發表於 2016-11-22 11:57 AM
    直接使用warpparty "XXX.gat",49,47,getcharid(1);
    就可以整個隊伍傳送了嗎?

    我之前遇過的狀況是
    隊員處在不可傳送的地圖
    所以就只有隊長傳送進去

    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2018-8-8 04:07 PM
  • 簽到天數: 267 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2016-11-22 12:20:02 | 顯示全部樓層
    louis8604031 發表於 2016-11-22 12:17 PM
    我之前遇過的狀況是
    隊員處在不可傳送的地圖
    所以就只有隊長傳送進去

    無法傳送的flag不是只有不能傳送過去該張地圖?
    也會影響被召喚走的指令是嗎
    例如partywarp?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-8-23 03:44 PM
  • 簽到天數: 1026 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2016-11-22 12:32:04 | 顯示全部樓層
    Ceres8154 發表於 2016-11-22 12:20 PM
    無法傳送的flag不是只有不能傳送過去該張地圖?
    也會影響被召喚走的指令是嗎
    例如partywarp?

    有個地圖屬性 叫做不可傳送
    隊員處在那個地圖 就不會被傳送
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2018-8-8 04:07 PM
  • 簽到天數: 267 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2016-11-22 19:03:55 | 顯示全部樓層
    本帖最後由 Ceres8154 於 2016-11-22 09:23 PM 編輯
    已試過warpparty 無法使用

    應該說,會傳過去地圖沒錯,但不是"副本生成"的那張地圖
    不會觸發到Oninstanceinit
    請問還有其他好的辦法嗎?


    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2014-8-13 07:23 AM
  • 簽到天數: 109 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2016-11-22 21:32:22 | 顯示全部樓層
    你的方法是對的
    錯在變量的使用
    instance_enter(.@instance$);

    addrid後,除了隊長其他人都沒有.@instance$

    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2018-8-8 04:07 PM
  • 簽到天數: 267 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2016-11-22 22:14:52 | 顯示全部樓層
    sense 發表於 2016-11-22 09:32 PM
    你的方法是對的
    錯在變量的使用
    instance_enter(.@instance$);

    想請問有辦法將原本隊長的變數
    作用於addrid後的變數上面嗎?
    如果不能,似乎還是不能解決這問題~"~
    我也嘗試過在腳本最一開始直接上addrid(2,0,getcharid(1));
    但還是僅有隊長進去而已
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2014-8-13 07:23 AM
  • 簽到天數: 109 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2016-11-22 23:10:13 | 顯示全部樓層
    Ceres8154 發表於 2016-11-22 10:14 PM
    想請問有辦法將原本隊長的變數
    作用於addrid後的變數上面嗎?
    如果不能,似乎還是不能解決這問題~"~

    其實,如果沒有要做其他判斷
    1. *warpparty "<to_mapname>",<x>,<y>,<party_id>,{"<from_mapname>"};
    複製代碼
    這一定是最快的方式
    1. warpparty instance_mapname("地圖名稱"),x,y,getcharid(1);
    複製代碼
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2018-8-8 04:07 PM
  • 簽到天數: 267 天

    連續簽到: 1 天

    [LV.8]以壇為家I

     樓主| 發表於 2016-11-22 23:20:02 | 顯示全部樓層
    本帖最後由 Ceres8154 於 2016-11-22 11:27 PM 編輯
    sense 發表於 2016-11-22 11:10 PM
    其實,如果沒有要做其他判斷這一定是最快的方式

    感謝您花這麼多時間協助我
    依照您的方法的確可行,但是在地圖傳送時就要做許多個跳入點
    不知有沒有更好的寫法~"~

    由於小弟是,

    讓使用者輸入數字>確認進入副本> 傳送

    再輸入數字時就已經去紀錄要執行的副本名稱
    在最後面傳送統一用一個instance_enter進入

    例如:

    //最開頭設定腳本"名稱"的陣列
    setarray .@insname$[1],
    "ORC_HERO","Maya","ORC_LORD","Golden_Bug","Eddga";
    input(.@inpnum, 0, 44);//使用者輸入數字
    switch(.@inpnum){
    case 1:
    if(select("進入:取消") == 2){close; end;}
    set .@instance$,.@insname$[.@inpnum];
    set .@inszeny,.@insz[.@inpnum];
    goto intoins;}

    intoins:
    instance_create(.@instance$)
    instance_enter(.@instance$);        
    因此在最前面的變數,沒辦法拿到後面給隊伍共用
    目前解法似乎只能在後面再做一次switch case 填入地圖名稱
    然後再做party warp了?
    不知道有沒有更好的寫法呢..


    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-3-29 02:04 AM , Processed in 0.051071 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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