用于战神引擎装备首爆NPC脚本,相比其他的首爆脚本,这个脚本带了后台控制功能,可以设置自动还是手动,另外最重要的就是脚本可以记录首次装备爆出的详细信息,比如玩家名字,脚本是否完整帮主尚未测试,也是其他兄弟贡献的,带了测试视频,喜欢的兄弟自己安装进去,测试看看。
脚本牵扯到多个变量和引入文件,添加的时候,记得备份一下原先的问题,在添加,脚本是烈阳做的。
部分脚本
//----------------------------------------------------- // 此脚本由【烈阳】开发,定制特色脚本请联系QQ:1523775884 // // 请尊重每一个创作者,此条勿删,谢谢支持! //----------------------------------------------------- program mir2; {$I 装备首爆\装备首爆.pas} //全局变量 GetG(176, 50) 用于控制给予奖励模式(值为0时NPC领取模式,值为1时爆出自动领取模式) procedure _exit; begin This_Npc.CloseDialog(This_Player); end; procedure P100; begin end; procedure _domain(v: integer); var k: integer; item, state, button, show: string; begin for k := v to v + 7 do begin item := getRewards(IntToStr(k), true); if item <> nil then begin state := ReadIniSectionStr('装备首爆\装备首爆.ini', '装备首爆', item); if state = nil then begin if GetG(176, 50) > 0 then begin button := '<自动发放/fcolor=168>'; state := '<未爆出/fcolor=249>'; end else button := '<[领取奖励]/@draw~' + item + '>'; state := '<未领取/fcolor=249>'; end else begin button := '<[查看详情]/@view~' + item + '>'; if GetG(176, 50) > 0 then state := '<已爆出/fcolor=248>' else state := '<已领取/fcolor=248>'; end; show := show + '<'+item+'/fcolor=253>' + '^^<' + getRewards(IntToStr(k), false) + '/fcolor=250>^' + state + '^ ' + button + '^|'; end else show := show + '|'; end; if k < 19 then button := '{cmd}<下一页/@domain~'+inttostr(k)+'>^<关闭界面/@exit>' else button := '{cmd}<返回首页/@domain~1>^<关闭界面/@exit>'; if This_Player.GMLevel > 0 then button := button + '<后台管理/@gmPage>'; This_Npc.NpcDialog(This_Player, '装备名字 奖励(元宝) 状态|' + show + button); end; procedure _draw(item: String); var data: TArray; text, save: string; begin if This_Player.GetBagItemCount(item) >= 1 then begin text := ReadIniSectionStr('装备首爆\装备首爆.ini', '装备首爆', item); if text <> nil then begin data := split2arr(text, ','); if data[1] <> This_Player.Name then This_Npc.InputDialog(This_Player,'当前奖励已被['+data[1]+']领取!', 1, 100) else This_Npc.InputDialog(This_Player,'你已经领取过该奖励啦!', 1, 100); exit; end; save := This_Player.Name + ',' + MirDateTimeToStr('yyyy-MM-dd hh:mm:ss', GetNow) WriteIniSectionStr('装备首爆\装备首爆.ini', '装备首爆', item, save); giveRewards(item); _domain(1); end else This_Npc.InputDialog(This_Player, '你背包没有[' + item + ']无法领取该奖励!', 1, 100); end; procedure _view(item: String); var data: TArray; text, show: string; begin text := ReadIniSectionStr('装备首爆\装备首爆.ini', '装备首爆', item); if text <> nil then begin data := split2arr(text, ','); if data[1] <> nil then show := '['+data[1]+']'; if data[2] <> nil then show := show + '于(' + data[2] + ')'; if data[3] <> nil then begin show := show + '在' + data[3]; if data[4] <> nil then show := show + '击杀[' + data[4] + ']'; show := show + '获得[' + item + ']以及该奖励'; end else show := show + '获得该奖励'; end; This_NPC.InputDialog(This_Player, show, 1, 100); end; procedure _gmPage(); begin This_Npc.NpcDialog(This_Player, '| |<GetG(176, 50)/fcolor=251> <=> <' + IntToStr(GetG(176, 50)) + '/fcolor=250>^<[修改模式]/@curMode>|'+ '模式0为爆出后手动领取|'+ '模式1为爆出后自动发放|'+ '{cmd}<返回首页/@domain~1>'); end; procedure _curMode; begin if GetG(176, 50) < 1 then SetG(176, 50, 1) else SetG(176, 50, 0); _gmPage(); end; begin _domain(1); end.