Board logo

标题: [魔力私服分享] LUA腳本 簡易生蛋 道具參數LUA_usePetEgg [打印本页]

作者: jeff10363    时间: 2016-4-27 11:18     标题: LUA腳本 簡易生蛋 道具參數LUA_usePetEgg

今天分享一個寫出來 很簡單的腳本
1 _: T& N6 I3 J* O4 w7 d' E2 y妖城在线论坛
- j" n0 V$ @! {+ M7 S& t妖城在线论坛這個腳本 可以拿來做為 道具參數的呼應 參考文章吧?
8 B0 b. F* O0 {bbs.mocwww.com懂得應用的話 可以弄成各種東西=""=
+ [- x3 K. Y( v2 I5 H魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
: J- ?2 ?3 I) _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
4 c- T8 v2 {5 ~5 a: |2 y3 ^* Ubbs.mocwww.com妖城在线论坛* o6 z- H. z2 v! G' ]
我們通常要寫寵物蛋  
( `0 F$ h- j; }3 A% x妖城在线论坛都會反覆的在 npc 底下 新增對應的txt 檢查道具 刪除道具 產生寵物 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" B, Z: ?% J& H4 _. r5 O3 v+ a$ `
可是對我來說 繁瑣的去新增txt 煩煩的=""=妖城在线论坛0 b) J7 N7 ]1 }) w2 h+ `
bbs.mocwww.com' h3 P; T' P  {+ E; K7 N5 f
所以就寫了 一個簡易生蛋的功能,下面附上GBK的檔案~((轉檔沒測試過 有問題在跟我講—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- V7 p0 [$ o( y5 E' m% M; a

5 V* l2 m$ {; }  q4 f" M—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート【示演】—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 @6 @3 a, p- V. U; \4 T1 Q
在道具itemset.txt新增LUA_usePetEgg類型的道具
( \. d7 p" G  M參數 則設定enemy裡頭的怪物ID 下方參數 設定 1  代表虎人編號
4 O$ l2 p; \* z0 _9 P/ }! U* F魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表套用LUA後 以後只要新增itemset.txt 就可以了~~~
9 r. E6 V7 Y1 c' n8 M) G' Dbbs.mocwww.com—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 Y" [0 L8 o9 K3 Y* l  t* Z* Y
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 x% X) |, C# w& N# c- w. x- h
蛋?        虎人的蛋        1                        LUA_usePetEgg                                                90001078        99451        0        43                0        1        0        93        1        1        1        1                                                0        0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                0        0        1                        0                        100        0        0                        0魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* _; \0 J+ M9 h4 B
* W5 R1 I* Y, [6 L

4 J, ^; H+ k+ D/ ]# d& s( F, o妖城在线论坛【腳本內容】
复制内容到剪贴板
代码:
--2016/04/27 阿晉
--简易生蛋功能
--
--
--免新增npc底下 生蛋脚本 直接透过item参数诞生宝宝
--
--注册一个道具使用参数
NL.RegItemString(nil, "PetEgg", "LUA_usePetEgg");


function PetEgg(player,toplayer,itemSlot)
--取到道具的自定參數
local ItemIndex=Char.GetItemIndex(player,itemSlot);
--复制内值
local itemval=Item.GetData(ItemIndex,%道具_自用参数%);



if(Char.PetNum(player)==5)then
NLG.SystemMessage(player,"宠物栏已满,无法使用。");
return;
end


Item.Kill(player,ItemIndex,itemSlot);
Char.GivePet(player,itemval,0);
--Char.GivePet(player,itemval,1);--满档


end
【後記】魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# j$ G3 K& P% f, y6 H

# l4 _: m0 z, c5 t6 f魔力私服,最新魔力宝贝私服技术交流1.這個蛋只會檢查是否 有寵物欄空間
7 U2 i; N( d) i2 A1 K$ E/ Z9 O魔力私服,最新魔力宝贝私服技术交流2.請勿讓他堆疊 刪除道具 是刪除那一整格 而非數量  否則可能整格蛋 刪光光魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 ~! a$ t& p% S2 `
3.符合寵物空間 刪除道具 產生寵物
$ n% r7 S! \- o- w3 D  A6 L4.Char.GivePet(player,itemval,1); 更改這個可以產生 滿檔寶寶妖城在线论坛$ ~. k* d2 L! z0 {1 u$ h; V
5.另外  這個lua產生的效果很陽春-..-沒有窗口魔力私服,最新魔力宝贝私服技术交流4 f8 S: X  o4 i: o6 o# ~
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 f$ r( H2 s0 J9 O6 C# [

4 ?4 n1 E0 y2 V) \4 b# {1 o  n+ dbbs.mocwww.com【安裝方法】
3 ~0 a5 @* I8 Z4 v1.版本確認 GA版本
9 y% T5 x9 I; T# I2 W* b" O! J2.把PetEgg.lua 丟到 lua\Module 下面魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" O1 f/ C2 y: w+ {5 _0 `5 I3 ^0 Y5 }
3.Config內新增
/ n! C6 H% A5 S& v& a- L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートuseModule("PetEgg");魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 N* O' [& y! @9 u3 r- R8 Y

% p/ j4 m. h" B/ @魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表[ 本帖最后由 jeff10363 于 2016-4-27 13:53 编辑 ]

附件: PetEgg.rar (2016-4-27 11:18, 500 Bytes) / 该附件被下载次数 276
http://bbs.mocwww.com/attachment.php?aid=17192
作者: 易凡    时间: 2016-4-27 13:49

感谢分享,我抛装引玉一下。。。。因为这个道具功能,我当初也做过。不过因为引擎不一样,所以我下面发的代码仅供参考~~
作者: 易凡    时间: 2016-4-27 13:57

道具使用事件代码:
复制内容到剪贴板
代码:
--_player:使用道具的角色
--_item:使用道具的索引实例
--_slot:被使用道具所在栏位
--返回值:1表示正常使用道具,0表示禁止使用道具

function RItemUseEvent(_player,_item,_slot)
        --容错
        if _slot < 0 or _slot > 27 then
                return 0;
        end
        if _item == -1 then
                return 0;
        end
       
        --判断是否已鉴定
        if Item.GetData(_item,%ITEM_LEAKLEVEL%) == 0 then
                NLG.SystemMessage(_player,"未鉴定道具不可使用");
                return 0;
        end
       
        local _itemid = Item.GetData(_item,%ITEM_ID%);
        local _itemname = Item.GetData(_item,%ITEM_TRUENAME%);
        local _itemusefunc = Item.GetData(_item,%ITEM_USEFUNC%);

        --给予宠物,参数有一个或者两个:宠物编号,是否满档
        if _itemusefunc == "LUA_useGivePet" then
                Char.SetData(_player,LuaSetup.TMP_ItemSelect,_slot);
                NLG.CallNpcTalked(tbl_npc.GivePetNpc_id16,_player);
                return 1;
        end;
       
        return 1;       
end
功能NPC的实现代码
复制内容到剪贴板
代码:
--GivePet——GivePetNpc_id16——Lua脚本
function GivePetNpc_id16_Talked(_npc,_player)
        --判断玩家身上是否有足够的宠物栏空位
        if Char.PetSpace(_player) == 0 then
                MyFun.EndWindow(_player,"\\n\\n\\n\\n@c您的宠物栏满了,请先整理!");
                return;
        end
        --验证缓存的道具
        local _item = MyFun.CheckItemBuffer(_player,"LUA_useGivePet");
        if _item == nil then
                return;
        end;
        local _itemname = Item.GetData(_item,%ITEM_TRUENAME%);
        local _arg = Item.GetData(_item,%ITEM_ARGUMENT%);
        local _argstl = MyFun.Split(_arg,",");
        local _enemyid = tonumber(_argstl[1]);
        if _enemyid == nil then
                MyFun.EndWindow(_player,"\\n\\n\\n\\n@c道具参数有误,请截图联系GM\\nError:LUA_useGivePet");
                return;
        end
        local _full = 0;
        if (#_argstl == 2) and (_argstl[2] == "1") then
                _full = 1;
        end
        local _enemyindex = Data.GetIndex(%FILE_ENEMY%,_enemyid);
        if _enemyindex == nil then
                return;
        end
        local _enemybaseid = Data.GetInt(%FILE_ENEMY%,_enemyindex,%ENEMYDATA_TEMPNO%);
        local _enemybaseindex = Data.GetIndex(%FILE_ENEMYBASE%,_enemybaseid);
        local _enemylv = Data.GetInt(%FILE_ENEMY%,_enemyindex,%ENEMYDATA_LV_MAX%);
        if _enemybaseindex == nil then
                return;
        end
        local _enemybasename = Data.GetChar(%FILE_ENEMYBASE%,_enemybaseindex,%E_T_NAME%);
        local _str = "\\n\\n    您确定要使用“".._itemname.."”吗?\\n"
                .."\\n        召唤魔族:".._enemybasename
                .."\\n        魔族等级:".._enemylv.."级";
        if _full == 1 then
                _str = _str.."\\n        魔族档次:满档";
        else
                _str = _str.."\\n        魔族档次:随机档";
        end
        NLG.ShowWindowTalked(_player,_npc,%WINDOW_MESSAGETYPE_MESSAGE%,%BUTTON_OK_CANCEL%,LuaSetup.MySeqno+1,_str);
        return;
end

function GivePetNpc_id16_WTalked(_npc,_player,_seqno,_select,_data)

        local _seqno = _seqno - LuaSetup.MySeqno;

        --验证缓存的道具
        local _item = MyFun.CheckItemBuffer(_player,"LUA_useGivePet");
        if _item == nil then
                return;
        end;
        local _itemid = Item.GetData(_item,%ITEM_ID%);
        local _arg = Item.GetData(_item,%ITEM_ARGUMENT%);
        local _argstl = MyFun.Split(_arg,",");
        local _enemyid = tonumber(_argstl[1]);
        local _full = 0;
        if (#_argstl == 2) and (_argstl[2] == "1") then
                _full = 1;
        end
       
        if (tonumber(_seqno)==1) then
                if (tonumber(_select) == %BUTTON_OK%) then
                        Char.DelItem(_player,_itemid,1);
                        local _pet = Char.GivePet(_player,_enemyid,_full);
                        if _pet ~= nil then
                                NLG.SystemMessage(_player,"获得了宠物『"..Char.GetData(_pet,%CHAR_Name%).."』");
                                NLG.UpChar(_pet);
                        end
                        return;
                else
                        return;
                end
                return;
        end
        return;
end


function GivePetNpc_id16_LoopEvent(_npc)
        return;
end
创建这个功能NPC的createnpc代码
复制内容到剪贴板
代码:
--GivePet——GivePetNpc_id16

function GivePetNpc_id16_Create()
        if (GivePetNpc_id16 == nil) then
                GivePetNpc_id16 = NL.CreateNpc("GivePet",100453,0,779,0,11,4);
                tbl_npc.GivePetNpc_id16=GivePetNpc_id16;
                Char.SetTalkedEvent("lua/Npc/GivePet_id16.lua","GivePetNpc_id16_Talked", GivePetNpc_id16);
                Char.SetWindowTalkedEvent(nil,"GivePetNpc_id16_WTalked", GivePetNpc_id16);
                --Char.SetLoopEvent(nil,"GivePetNpc_id16_LoopEvent", GivePetNpc_id16,1000);
        end
end
itemset数据范例魔力私服,最新魔力宝贝私服技术交流5 ~, R3 N& b5 l1 j2 |8 }2 d) S8 V% X
召唤卡?        『满档黄蜂』召唤卡        314,1                        LUA_useGivePet                                                60501        27489                26                0        1        0        0        1        1        1        1        0                                        0        0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                0        1        0                        0        605011        605011        100        0        0                        0bbs.mocwww.com* [' {) Z: G" `3 w
比如参数直接写314就是随机档次了,314,1就是满档; o, q0 h: E0 X: D. t9 v, x) b
魔力私服,最新魔力宝贝私服技术交流) z5 O5 U0 U( w( y, I6 |" P% B
确实比较方便—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 x$ ~* R8 V+ p# Y1 k


图片附件: 11.jpg (2016-4-27 13:57, 102.9 KB) / 该附件被下载次数 153
http://bbs.mocwww.com/attachment.php?aid=17193


作者: jeff10363    时间: 2016-4-27 14:07

感謝站長提供 語法參照—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* Q& Q- S0 J6 J" U) K7 k5 m
哈 原來拖GA接口的福 才可以寫的這麼簡短bbs.mocwww.com9 A# x/ a7 T( J+ J# C" z

! K% ?) C0 X& T$ y* b1 C& H( a1 Abbs.mocwww.com8 Z7 ?" G! u2 b8 @, ^1 q4 n9 y
現在還在試寫-...-魔力私服,最新魔力宝贝私服技术交流% }  @2 \" H+ P3 o1 ?: ~

+ s  a$ o' M  S" s; M: d—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1.寵物技能捲軸(點寵 開窗 選寵學)   —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 G, H6 H3 C2 s6 H9 s/ G
    學習特殊技能使用..
& q2 T7 }, R2 a  t8 T9 gbbs.mocwww.com=>不用開 寵技npc
3 q1 Z9 I1 B9 C—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート還怕別人一次學五隻
* V8 _, e  S' k! f+ x7 ?: `( V( ubbs.mocwww.com或是另外做一個獨立 隔開的地圖 來限制
. o% n% }( o% k: P( Z8 ibbs.mocwww.com
; W: W4 M  e5 a7 s% V魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2.封印盒子( \, \8 W8 r) P) ?  W! {
  把不可交異的東西  水鏡、哥、弟戒、放大鏡bbs.mocwww.com4 n+ |: W1 A& _8 G! r, n( {$ ]
裝進去 只有本人(檢查CDK 跟 角色ID)
4 n; A9 U+ Y" E/ |* u—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート才可以打開    方便收到分身那 節省道具攔空間' Z% P) \# p( f5 P
, @0 J% h( ~0 ]7 I* n4 |: g
[ 本帖最后由 jeff10363 于 2016-4-27 14:09 编辑 ]
作者: 易凡    时间: 2016-4-27 15:55

复制内容到剪贴板
代码:
--宠物技能学习——Pet_AddSkillNpc_id13——Lua脚本
--道具参数格式:techid,cost
--cost可选,不填写,则表示免费,如果填写-1则表示使用tech.txt中定义的价格
function Pet_AddSkillNpc_id13_Talked(_npc,_player)
        local _str = MyFun.ShowSelectPetstr(_player,"学习技能");
        NLG.ShowWindowTalked(_player,_npc,%WINDOW_MESSAGETYPE_SELECT%,%BUTTON_CANCEL%,LuaSetup.MySeqno+1,_str);
        return;
end

function Pet_AddSkillNpc_id13_WTalked(_npc,_player,_seqno,_select,_data)
        local _seqno = _seqno - LuaSetup.MySeqno;
       
        --验证缓存的道具
        local _item = MyFun.CheckItemBuffer(_player,"LUA_usePetAddSkill");
        if _item == nil then
                return;
        end;
        local _arg = Item.GetData(_item,%ITEM_ARGUMENT%);
        local _argstl = MyFun.Split(_arg,",");
        local _techid = tonumber(_argstl[1]);
        local _needgold = 0;
        local _techindex = Data.GetIndex(%FILE_TECH%,_techid);
        if _techindex == nil then
                MyFun.EndWindow(_player,"\\n\\n\\n\\n@c技能ID错误,请截图联系GM");
                return;
        end
        local _techname = Data.GetChar(%FILE_TECH%,_techindex,%TECH_NAME%);
        if #_argstl == 2 then
                if tonumber(_argstl[2]) ~= -1 then
                        _needgold = tonumber(_argstl[2]);
                else
                        local _techcost = Data.GetInt(%FILE_TECH%,_techindex,%TECH_COST%);
                        if _techcost ~= "" then
                                _needgold = tonumber(_techcost);
                        end
                end
        end

        --选择宠物后确认
        if (tonumber(_seqno)==1 and _data~=nil) then
                if tonumber(_select) == %BUTTON_CANCEL% then
                        return;
                end
               
                --容错
                if MyFun.CheckSelectWindowData(_player,_data,5) == false then
                        return;
                end
                local _petpos = tonumber(_data) - 1;
                local _pet = Char.GetPet(_player,_petpos);
                if _pet == nil then
                        MyFun.EndWindow(_player,"\\n\\n\\n\\n@c您选择的位置没有宠物,请重新选择!");
                        return;
                end
                --这里加一个验证,禁止部分宠物学习指定技能
                if (Char.GetData(_pet,%PET_PetId%) >= 20921) and (Char.GetData(_pet,%PET_PetId%) <= 20924) and (_techid == 8900) then
                        MyFun.EndWindow(_player,"\\n\\n\\n\\n@c很抱歉,出生系列牛头怪禁止学习宠物邮件");
                        return;
                end
                               
                local _itemname = Item.GetData(_item,%ITEM_TRUENAME%);
                local _petname = Char.GetData(_pet,%CHAR_Name%);
                local _petlv = Char.GetData(_pet,%CHAR_Lv%);
                Char.SetData(_player,LuaSetup.TMP_PetSelect,_petpos);
                local _str = "\\n\\n   已选宠物:".._petname.."\\n   当前等级:".._petlv.." 级\\n\\n   您确定要让这只宠物学习新技能——\\n       “".._techname.."”吗?";
                if _needgold > 0 then
                        _str = _str.."\\n   这将需要花费".._needgold.."G";
                end
                NLG.ShowWindowTalked(_player,
                                _npc,
                                %WINDOW_MESSAGETYPE_MESSAGE%,
                                %BUTTON_YES_NO%,
                                LuaSetup.MySeqno+2,
                                _str);
                return;
        end
       
        --进行学习技能操作
        if (tonumber(_seqno)==2) then
                if tonumber(_select) == %BUTTON_NO% then
                        --将缓存释放
                        Char.SetData(_player,LuaSetup.TMP_ItemSelect,0);
                        Char.SetData(_player,LuaSetup.TMP_PetSelect,0);
                        return;
                end
               
                local _pet = MyFun.CheckPetBuffer(_player);
                if _pet == nil then
                        return;
                end
               
                local _petname = Char.GetData(_pet,%CHAR_Name%);
                local _petlv = Char.GetData(_pet,%CHAR_Lv%);

                local _itemid = Item.GetData(_item,%ITEM_ID%);
                if Char.ItemNum(_player,_itemid) > 0 then
                        --先判断金币是否充足
                        if Char.GetData(_player,%PLAYER_Gold%) < _needgold then
                                MyFun.EndWindow(_player,"\\n\\n\\n\\n@c您的魔币不足以支付该技能学习费用!");
                                return;
                        end
                        --尝试学习技能
                        local _ret = Pet.AddSkill(_pet,_techid);
                        if _ret == nil then
                                MyFun.EndWindow(_player,"\\n\\n\\n\\n@c学习失败,可能宠物的技能已满了!");
                                return;
                        end       
                        Char.DelItem(_player,_itemid,1);--删除道具
                        if _needgold > 0 then
                                Char.AddGold(_player,-_needgold);
                        end
                        NLG.UpChar(_pet);
                        NLG.SystemMessage(_player,"[系统提示] 您的宠物“".._petname.."”已成功习得新技能“".._techname.."”");       
                        --将缓存释放
                        Char.SetData(_player,LuaSetup.TMP_ItemSelect,0);
                        Char.SetData(_player,LuaSetup.TMP_PetSelect,0);
                        return;
                end
        end   
        return;
end


function Pet_AddSkillNpc_id13_LoopEvent(_npc)
        return;
end
复制内容到剪贴板
代码:
--组合宠物选择框
function MyFun.ShowSelectPetstr(_player,_keystr)
        local _keystrnew = "操作";
        if _keystr ~= nil then
                _keystrnew = _keystr;
        end
        local _str = "3|\\n\\n     请选择您要".._keystrnew.."的宠物!\\n\\n";
        local _str2 = "";
        local _str3 = "";
        for i=0,4 do
                local _pet = Char.GetPet(_player,i);
                if (_pet == nil) then
                        _str = _str .. "     *空*\\n";
                else
                        _str2 = Char.GetData(_pet,%CHAR_Name%);
                        _str2 = "     "..string.format("%-20s",_str2);
                        _str3 = "LV"..Char.GetData(_pet,%CHAR_Lv%);
                        _str2 = string.format("%20s",_str2);
                        _str = _str.._str2.._str3.."\\n";
                end
        end
        return _str;
end
复制内容到剪贴板
代码:
--验证缓存的所选择宠物
function MyFun.CheckPetBuffer(_player)
        local _slot = Char.GetData(_player,LuaSetup.TMP_PetSelect);
        if _slot < 0 or _slot > 4 then
                MyFun.EndWindow(_player,"\\n\\n\\n\\n@c宠物栏异常,请截图联系GM");
                return;
        end
        local _pet = Char.GetPet(_player,_slot)
        if _pet == nil then
                MyFun.EndWindow(_player,"\\n\\n\\n\\n@c您所选择的宠物异常,请截图联系GM");
                return;
        else
                return _pet;
        end

end
复制内容到剪贴板
代码:
--分割字符串
function MyFun.Split(szFullString, szSeparator)
        local nFindStartIndex = 1;
        local nSplitIndex = 1;
        local nSplitArray = {};
        while true do
                local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex);
                if not nFindLastIndex then
                        nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString));
                        break;
                end
                nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1);
                nFindStartIndex = nFindLastIndex + string.len(szSeparator);
                nSplitIndex = nSplitIndex + 1;
        end
        return nSplitArray;

end

--结束窗口
function MyFun.EndWindow(_player,_str)
        local _fd = Char.GetData(_player,%PLAYERWORK_Fd%);
        local _objindex = Char.GetData(_player,%CHARWORK_ObjIndex%);
        Protocol.WN_Send(_fd,%WINDOW_MESSAGETYPE_MESSAGE%,%BUTTON_OK%,LuaSetup.EndWindowSeqno,_objindex,_str);
        return;
end

--判断选择窗口异常
function MyFun.CheckSelectWindowData(_player,_data,_max)
        if  (_data == "") or (_data == nil) or (tonumber(_data) == nil) then
                MyFun.EndWindow(_player,"@c\\n\\n\\n\\n异常选项处理失败,请截图联系客服!");
                return false;
        end
        if (tonumber(_data) > _max or tonumber(_data) < 1) then
                MyFun.EndWindow(_player,"@c\\n\\n\\n\\n异常选项处理失败,请截图联系客服!");
                return false;
        end
        return true;
end





欢迎光临 妖城在线论坛 (http://bbs.mocwww.com/) Powered by Discuz! 6.0.0