將組隊內的個人變數平均分配
本帖最後由 i780112 於 2016-4-17 01:18 PM 編輯大家好我又來發問了
最近寫了一個腳本遇到了瓶頸
標籤為OnPCLoadMapEvent://pvpwarpoint是個人的分數
if (!getcharid(1)) //沒有隊伍,直接算分數
{
set .@scwarme,pvpwarpoint;
}
//==========================================
if (getcharid(1))//有隊伍, 分數將所有隊員的分數加總後除隊伍人數
{
getpartymember getcharid(1);
getpartymember getcharid(1),1;
set .@partymembercount,$@partymembercount;
copyarray .@partymembercid,$@partymembercid,.@partymembercount; //取得隊伍CID
//獲得隊伍人數
for(set .@j,0; .@j < .@partymembercount;set .@j,.@j+1){//逐一取得隊員的分數
query_sql("SELECT `value` FROM `global_reg_value` WHERE `char_id` = "+.@partymembercid[.@j]+" AND `str` = "+pvpwarpoint+"", .@scpget);
set .@scgetter,.@scgetter+.@scpget[.@j]; //自己的變數加上每個隊員的分數
}
set .@scwarme,(.@scgetter-(.@scgetter%.@partymembercount))/.@partymembercount; //均分後個人實際分數(去除餘數)
}這是大致上的寫法
目的是過地圖後
將個人的變數平均分配給每位隊員
測試時沒有組隊, 分數都是正常運作的
但是只要有組隊就會失敗
.@scwarme變數沒有運算成功
我的問題是
是否因為global_reg_value資料表沒有馬上更新表格, 所以才會取得不道變數
但是即使我加了一行
query_sql("update `global_reg_value` set `value` = '"+pvpwarpoint+"' where `char_id` = "+getcharid(0)+" AND `str` = "+pvpwarpoint+"");
讓他過圖時馬上更新資料表,也沒有取得任何分數
希望各位能幫我指點迷津, 感謝萬分
如果是要讀取pvpwarpointquery_sql("SELECT `value` FROM `global_reg_value` WHERE `char_id` = "+.@partymembercid[.@j]+" AND `str` = "+pvpwarpoint+"", .@scpget);應該要query_sql("SELECT `value` FROM `global_reg_value` WHERE `char_id` = "+.@partymembercid[.@j]+" AND `str` = 'pvpwarpoint'", .@scpget);這樣才對?
頁:
[1]