Ceres8154 發表於 2016-11-12 14:44:37

[ra] sc_start 與 specialeffect2 作用於所有玩家問題

本帖最後由 Ceres8154 於 2016-11-12 03:24 PM 編輯

各位好
小弟使用環境為
RA: 23043
RAGEXE: 2015-11-04
想請問版上大大們
==========================================================================

以解決:addrid(0);
sc_start SC_ITEMBOOST,1800000,200;這樣即可作用於所有玩家



==========================================================================
問題一:
SC_START 如何作用於所有玩家呢?

例如,A玩家點擊NPC,於線上所有玩家可以得到調寶率加倍狀態
目前小弟寫法是set .@j, query_sql("SELECT `account_id` FROM `char` WHERE `online` = 1",.@aid);//取得在線人物ID
for(set .@i,0; .@i<.@j; set .@i,.@i+1){
sc_start SC_ITEMBOOST,1800000,200,.@aid[.@i];將account_id更改為char_id 一樣無效果,改為player name亦是
同時我也測試過使用sc_start2
sc_start4似乎也無法增加所有玩家的狀態
僅啟動NPC的玩家會得到加倍,並且次數為2
基本上可以判斷for回圈內,都是該啟動NPC的玩家會吃到效果(在線人數2 ,狀態次數2)

問題二:
specialeffect2 如何作用於所有玩家?

寫法同上,並參考doc內文件
*specialeffect2 <effect number>{,<send_target>{,"<Player Name>"}};
我在sql下語法查詢玩家name
並於specialeffect2後加上玩家名字(player name)set .@j, query_sql("SELECT `name` FROM `char` WHERE `online` = 1",.@aname);
for(set .@i,0; .@i<.@j; set .@i,.@i+1){
specialeffect2 29,AREA,.@aname[.@i];測試結果,僅啟動NPC之玩家會有效果顯示
另外,想請問<send_target> 該標籤填寫內容為何?
範例僅有寫AREA,想知道其他標籤是甚麼


想請問是否有其他辦法可以作用於所有玩家呢?
我有想過直接下sql指令並對所有玩家的sc_data做更改,但似乎不行
原因為線上玩家並非於該資料表單直接做timetick的動作,而是會丟到暫存器去執行


煩請版上大大們指教,謝謝您

a91323 發表於 2016-11-12 15:01:22

多看 script_commands文件addrid(<type>{,<flag>{,<parameters>}});

Ceres8154 發表於 2016-11-12 15:12:36

a91323 發表於 2016-11-12 03:01 PM static/image/common/back.gif
多看 script_commands文件

謝謝您提供一個方向,
可否麻煩您大概解釋一下如何使用呢?
*addrid(<type>{,<flag>{,<parameters>}});

This command will attach other RIDs to the current script without detaching the
invoking RID. It returns 1 if successful and 0 upon failure.

<type> determines what RIDs are attached:
0: All players in the server.
1: All players in the map of the invoking player, or the invoking NPC if no player is attached.
2: Party members of a specified party ID.
    [ Parameters: <party id> ]
3: Guild members of a specified guild ID.
    [ Parameters: <guild id> ]
4: All players in a specified area of the map of the invoking player (or NPC).
    [ Parameters: <x0>,<y0>,<x1>,<y1> ]
5: All players in the map.
    [ Parameters: "<map name>" ]
Account ID: If type is Account ID, attach the specified account ID.

<flag> can prevent certain players from being attached:
0: Players are always attached. (default)
1: Players currently running another script will not be attached.所以 addrid(0,0)
會作用於
All players in the server.
Players are always attached. (default)

請問我要將addrid填寫在哪裡呢..
是填寫在sc_start SC_ITEMBOOST,1800000,200,addrid(0,0);這樣嗎?
測試過一樣無效果





a91323 發表於 2016-11-12 15:20:24

Ceres8154 發表於 2016-11-12 03:12 PM static/image/common/back.gif
謝謝您提供一個方向,
可否麻煩您大概解釋一下如何使用呢?
所以 addrid(0,0)


沒試過addrid(0);
sc_start SC_ITEMBOOST,1800000,200;

Ceres8154 發表於 2016-11-12 15:23:55

a91323 發表於 2016-11-12 03:20 PM static/image/common/back.gif
沒試過

以解決,謝謝您的答覆
剛測試attachrid是可以使用的
但會產生mes視窗當住問題

使用addrid則無該問題
頁: [1]
查看完整版本: [ra] sc_start 與 specialeffect2 作用於所有玩家問題