加入We Love SA
登錄
統計
幫助
We Love SA 石器時代研討中心
»
疑難雜症問題區
» 下載一堆可是都不會用!!
‹‹ 上一主題
|
下一主題 ››
發新話題
發佈投票
發佈商品
發佈懸賞
發佈活動
發佈辯論
發佈視頻
打印
下載一堆可是都不會用!!
花痴CoCo
烏力烏力
帖子
57
精華
0
積分
22
聲望
16
石幣
142
貢獻值
6
閱讀權限
10
性別
男
註冊時間
2010-10-27
最後登錄
2019-5-4
發短消息
加為好友
當前離線
1
#
大
中
小
發表於 2013-10-17 02:55
顯示全部帖子
下載一堆可是都不會用!!
這是jzlua腳本都是從神奇社區下載的,有高手可以指教怎麼用嗎?
還是可以把它修改簡單一點??
這是裝備強化,另外我這邊還有一些lua腳本會修改的可以跟我聯絡下嘛~~
function EquipPlus_Reload()
if (EquipPlus_index == nil) then
EquipPlus_index = NL.CreateNpc("./data/npc/lua/EquipPlus/EquipPlus.lua", "EquipPlus_Init");
NLG.UpChar(EquipPlus_index);
return "裝備升級NPC創建成功";
else
NL.DelNpc(EquipPlus_index);
NLG.UpChar(EquipPlus_index);
EquipPlus_index = nil;
return "裝備升級NPC刪除成功";
end
end
EquipPlus_Reload();
UID
3502
帖子
57
精華
0
積分
22
聲望
16
石幣
142
貢獻值
6
閱讀權限
10
性別
男
註冊時間
2010-10-27
最後登錄
2019-5-4
查看詳細資料
TOP
花痴CoCo
烏力烏力
帖子
57
精華
0
積分
22
聲望
16
石幣
142
貢獻值
6
閱讀權限
10
性別
男
註冊時間
2010-10-27
最後登錄
2019-5-4
發短消息
加為好友
當前離線
2
#
大
中
小
發表於 2013-10-17 02:58
顯示全部帖子
function EquipPlus_Init( _MeIndex )
Char.SetData(_MeIndex, %對像_形象%, 100700);
Char.SetData(_MeIndex, %對像_原形%, 100700);
Char.SetData(_MeIndex, %對像_地圖%, 2000);
Char.SetData(_MeIndex, %對像_X%, 57);
Char.SetData(_MeIndex, %對像_Y%, 67);
Char.SetData(_MeIndex, %對像_方向%, %右下%);
Char.SetData(_MeIndex, %對像_原名%, "裝備強化大師");
if (Char.SetTalkedEvent(nil, "EquipPlus_Talked", _MeIndex) < 0) then
print("EquipPlus_Talked 註冊事件失敗。");
return false;
end
if (Char.SetWindowTalkedEvent(nil, "EquipPlus_WindowTalked", _MeIndex) < 0) then
print("pztestnpc_WindowTalked 註冊事件失敗。");
return false;
end
return true;
end
--Talked事件
--目前最高SEQNO=13
function EquipPlus_Talked( _MeIndex, _PlayerIndex, _Msg, _Color, _Channel)
--這裡檢查玩家是否站在NPC面前
if(NLG.CheckInFront(_PlayerIndex, _MeIndex, 1) == false) then
return ;
end
--面向玩家
local i;
i = Char.GetData(_PlayerIndex, %對像_方向%);
if i >= 4 then
i = i - 4;
else
i = i + 4;
end
Char.SetData(_MeIndex, %對像_方向%,i);
NLG.UpChar( _MeIndex);
NLG.ShowWindowTalked(_PlayerIndex, 2, 0, 0,
"7\n ☆裝備強化系統☆"..
"\n裝備強化說明:"..
"\n"..
"\n"..
"\n"..
"\n"..
"\n"..
"\n 【強化裝備】"..
"\n 【離 開】",
_MeIndex);
return ;
end
-- WindowTalked 事件
function EquipPlus_WindowTalked( _MeIndex, _TalkIndex, _Seqno, _Select, _Data)
--這裡檢查玩家是否站在NPC面前
if(NLG.CheckInFront(_TalkIndex, _MeIndex, 1) == false) then
return ;
end
if _Seqno == 0 and _Data == "1" then
NLG.ShowWindowTalked(_TalkIndex, 2, 0, 1,
"7\n ☆裝備強化系統☆"..
"\n請選擇(請勿更改道具名稱):" ..
"\n"..
"\n"..
"\n"..
"\n"..
"\n"..
"\n 【裝備列表】" ..
"\n 【道具列表】" ..
"\n 【離 開】",
_MeIndex);
return;
end
if _Seqno == 1 then
if _Data == "1" then
local pos = 0;
--改說明時勿添行
local TM_Buff = "1\n請選擇:";
local itemindex;
local equip = {"頭部","身體","右手","右飾","左飾","腰間","左手","腳部","手掌"};
while(pos <= 8)do
itemindex = Char.GetItemIndex( _TalkIndex, pos);
if( itemindex > 0)then
TM_Buff = TM_Buff.."\n".. equip[pos + 1] .. ":" .. Item.GetData( itemindex, %道具_名%);
else
TM_Buff = TM_Buff .. "\n" .. equip[pos + 1] .. ":無裝備";
end
pos = pos + 1;
end
NLG.ShowWindowTalked( _TalkIndex, 2, 0, 2, TM_Buff, _MeIndex);
return;
end
if _Data == "2" then
--改說明時勿添行
local pos = 9;
local TM_Buff = "1\n請選擇道具:";
local itemindex;
local itempos = {"道具欄1","道具欄2","道具欄3","道具欄4","道具欄5","道具欄6","道具欄7","道具欄8"};
while(pos <= 17)do
itemindex = Char.GetItemIndex( _TalkIndex, pos);
if (pos == 17) then
TM_Buff = TM_Buff .. "\n" .. " 下一頁";
else
if( itemindex > 0)then
TM_Buff = TM_Buff.."\n".. itempos[pos - 8] .. ":" .. Item.GetData( itemindex, %道具_名%);
else
TM_Buff = TM_Buff .. "\n" .. itempos[pos - 8] .. ":無物品";
end
end
pos = pos + 1;
end
NLG.ShowWindowTalked( _TalkIndex, 2, 0, 3, TM_Buff, _MeIndex);
return;
end
end
if(_Seqno == 3 or _Seqno == 2 or _Seqno == 4) then
if (_Seqno == 3 and _Data == "9") then
--改說明時勿添行
local pos = 17;
local TM_Buff = "0\n";
local itemindex;
local itempos = {"道具欄9","道具欄10","道具欄11","道具欄12","道具欄13","道具欄14","道具欄15"};
while(pos <= 24)do
itemindex = Char.GetItemIndex( _TalkIndex, pos);
if (pos == 24) then
TM_Buff = TM_Buff .. "\n" .. " 離 開";
else
if( itemindex > 0)then
TM_Buff = TM_Buff.."\n".. itempos[pos - 16] .. ":" .. Item.GetData( itemindex, %道具_名%);
else
TM_Buff = TM_Buff .. "\n" .. itempos[pos - 16] .. ":無物品";
end
end
pos = pos + 1;
end
NLG.ShowWindowTalked( _TalkIndex, 2, 0, 4, TM_Buff, _MeIndex);
else
local sel = tonumber(_Data);
if _Seqno == 4 then
sel = sel - 1;
end
EquipPlus_Plus(_TalkIndex,_Seqno-1,sel);
end
end
end
function EquipPlus_Plus( _PlayerIndex,_Page,_Sel)
local itemtbl = { {0,1,2,3,4,5,6,7,8} , {9,10,11,12,13,14,15,16,17} , {18,19,20,21,22,23,-1,-1,-1} };
local haveitemindex = itemtbl[_Page][_Sel];
if haveitemindex >= 0 then
local itemindex = Char.GetItemIndex(_PlayerIndex,haveitemindex);
if itemindex >= 0 then
local itemid = Item.GetData(itemindex,%道具_ID%);
if(EquipPlus_Check(itemid) > 0)then
EquipPlus_PPlus(_PlayerIndex,itemindex,itemid);
return;
else
NLG.TalkToCli(_PlayerIndex,"該物品無法強化!",%紅色%);
return;
end
end
end
end
function EquipPlus_Check(_ItemID)
local MAX = 10; --下面列表的項目數
local PlusItemIDTbl = {14871,16671,17451,18091,18092,18093,2070,2071,2072,2056}; --可以加強的道具ID
local i = 1;
while(i<=MAX)do
if _ItemID == PlusItemIDTbl
then
return 1;
end
i = i + 1;
end
return 0;
end
UID
3502
帖子
57
精華
0
積分
22
聲望
16
石幣
142
貢獻值
6
閱讀權限
10
性別
男
註冊時間
2010-10-27
最後登錄
2019-5-4
查看詳細資料
TOP
花痴CoCo
烏力烏力
帖子
57
精華
0
積分
22
聲望
16
石幣
142
貢獻值
6
閱讀權限
10
性別
男
註冊時間
2010-10-27
最後登錄
2019-5-4
發短消息
加為好友
當前離線
3
#
大
中
小
發表於 2013-10-17 02:59
顯示全部帖子
function EquipPlus_PPlus(charaindex,itemindex,itemid)
local buf = Item.GetData(itemindex,%道具_原名%);
local buf2 = Item.GetData(itemindex,%道具_名%);
--1~9級需要的加強材料,最後一項不要改
local itemtbl = {20841,20841,20841,20842,20842,20842,20843,20843,20843,-1};
--1~9級需要的材料數量,最後一項不要改
local itemnumtbl = {1,1,1,1,1,1,1,1,1,1};
local level = 0;
if( (buf.."+1") == buf2)then
level = 1;
elseif( (buf.."+2") == buf2)then
level = 2;
elseif( (buf.."+3") == buf2)then
level = 3;
elseif( (buf.."+4") == buf2)then
level = 4;
elseif( (buf.."+5") == buf2)then
level = 5;
elseif( (buf.."+6") == buf2)then
level = 6;
elseif( (buf.."+7") == buf2)then
level = 7;
elseif( (buf.."+8") == buf2)then
level = 8;
elseif( (buf.."+9") == buf2)then
level = 9;
end
if(level == 9)then
NLG.TalkToCli(charaindex,"已經達到強化最大值!",%青色%);
return;
end
if (Char.FindItemId(charaindex,itemtbl[level+1]) < itemnumtbl[level+1]) then
NLG.TalkToCli(charaindex,"缺少強化所需要的材料!",%紅色%);
return;
end
--這裡是概率,現在是1/10,改10為2則1/2的概率
local randnum = math.floor(math.random(1, 1));
if(randnum == 1)then
if(level == 8 or level == 7)then
--這是9級加強
Item.SetData(itemindex,%道具_附攻%, Item.GetData(itemindex,%道具_附攻%) + 15);
--加HP
Item.SetData(itemindex,%道具_附體%, Item.GetData(itemindex,%道具_附體%) + 15);
--加MP
Item.SetData(itemindex,%道具_附氣%, Item.GetData(itemindex,%道具_附氣%) + 15);
Item.SetData(itemindex,%道具_附防%, Item.GetData(itemindex,%道具_附防%) + 15);
Item.SetData(itemindex,%道具_附敏%, Item.GetData(itemindex,%道具_附敏%) + 15);
else
Item.SetData(itemindex,%道具_附攻%, Item.GetData(itemindex,%道具_附攻%) + 5);
--加HP
Item.SetData(itemindex,%道具_附體%, Item.GetData(itemindex,%道具_附體%) + 5);
--加MP
Item.SetData(itemindex,%道具_附氣%, Item.GetData(itemindex,%道具_附氣%) + 5);
Item.SetData(itemindex,%道具_附防%, Item.GetData(itemindex,%道具_附防%) + 5);
Item.SetData(itemindex,%道具_附敏%, Item.GetData(itemindex,%道具_附敏%) + 5);
end
local buff = Item.GetData(itemindex,%道具_原名%).."+"..level+1;
Item.SetData(itemindex,%道具_名%,buff);
local buff = Item.GetData(itemindex,%道具_說明%);
if level == 0 then
local i,j;
i,j = string.find(buff,"次加強");
if(i ~=2 or j ~= 7)then
buff = "1次加強"..buff;
else
buff = string.gsub(buff,level,level+1);
end
else
buff = string.gsub(buff,level,level+1);
end
Item.SetData(itemindex,%道具_說明%,buff);
NLG.DelItem(charaindex,itemtbl[level+1],itemnumtbl[level+1]);
NLG.TalkToCli(charaindex,"恭喜你,強化成功!(請重新登陸查看裝備屬性)",%黃色%);
NLG.TalkToCli(-1,"恭喜"..Char.GetData(charaindex,%對像_原名%).."成功強化"..Item.GetData(itemindex,%道具_原名%)..",現在是+"..level+1,%紫色%);
return;
else
NLG.DelItem(charaindex,itemtbl[level+1],itemnumtbl[level+1]);
--降級概率,現在是1/2,改2為3則變為1/3
randnum = math.floor(math.random(1,1));
if randnum == 1 then
if(level == 0)then
NLG.TalkToCli(charaindex,"強化裝備失敗",%紅色%);
return;
end
if(level == 8 or level == 7 or level == 6)then
Item.SetData(itemindex,%道具_附攻%, Item.GetData(itemindex,%道具_附攻%) - 15*(level-7) - 5 * 7);
Item.SetData(itemindex,%道具_附防%, Item.GetData(itemindex,%道具_附防%) - 15*(level-7) - 5 * 7);
Item.SetData(itemindex,%道具_附敏%, Item.GetData(itemindex,%道具_附敏%) - 15*(level-7) - 5 * 7);
Item.SetData(itemindex,%道具_附體%, Item.GetData(itemindex,%道具_附體%) - 15*(level-7) - 5 * 7);
Item.SetData(itemindex,%道具_附氣%, Item.GetData(itemindex,%道具_附氣%) - 15*(level-7) - 5 * 7);
local buff = Item.GetData(itemindex,%道具_原名%);
Item.SetData(itemindex,%道具_名%,buff);
local buff = Item.GetData(itemindex,%道具_說明%);
buff = string.gsub(buff,level,"0");
Item.SetData(itemindex,%道具_說明%,buff);
NLG.TalkToCli(charaindex,"強化失敗!該裝備初始化",%紅色%);
else
Item.SetData(itemindex,%道具_附攻%, Item.GetData(itemindex,%道具_附攻%) - 5);
Item.SetData(itemindex,%道具_附防%, Item.GetData(itemindex,%道具_附防%) - 5);
Item.SetData(itemindex,%道具_附敏%, Item.GetData(itemindex,%道具_附敏%) - 5);
Item.SetData(itemindex,%道具_附體%, Item.GetData(itemindex,%道具_附體%) - 5);
Item.SetData(itemindex,%道具_附氣%, Item.GetData(itemindex,%道具_附氣%) - 5);
local buff = Item.GetData(itemindex,%道具_原名%).."+"..level-1;
Item.SetData(itemindex,%道具_名%,buff);
local buff = Item.GetData(itemindex,%道具_說明%);
buff = string.gsub(buff,level,level-1);
Item.SetData(itemindex,%道具_說明%,buff);
NLG.TalkToCli(charaindex,"強化失敗!等級下降",%紅色%);
end
return;
else
NLG.TalkToCli(charaindex,"對不起,強化失敗!",%紅色%);
end
end
end
UID
3502
帖子
57
精華
0
積分
22
聲望
16
石幣
142
貢獻值
6
閱讀權限
10
性別
男
註冊時間
2010-10-27
最後登錄
2019-5-4
查看詳細資料
TOP
花痴CoCo
烏力烏力
帖子
57
精華
0
積分
22
聲望
16
石幣
142
貢獻值
6
閱讀權限
10
性別
男
註冊時間
2010-10-27
最後登錄
2019-5-4
發短消息
加為好友
當前離線
4
#
大
中
小
發表於 2013-10-26 13:51
顯示全部帖子
引用:
原帖由
yang
於 2013-10-18 10:21 發表
他少了初始化npc的
可以參考其他lua腳本
對呀,就是卡在初始化,管理員有空可以幫忙指點一下嗎??
UID
3502
帖子
57
精華
0
積分
22
聲望
16
石幣
142
貢獻值
6
閱讀權限
10
性別
男
註冊時間
2010-10-27
最後登錄
2019-5-4
查看詳細資料
TOP
‹‹ 上一主題
|
下一主題 ››
控制面板首頁
編輯個人資料
積分交易
積分記錄
公眾用戶組