战神引擎装备首爆记录Npc脚本(带后台控制)

用于战神引擎装备首爆NPC脚本,相比其他的首爆脚本,这个脚本带了后台控制功能,可以设置自动还是手动,另外最重要的就是脚本可以记录首次装备爆出的详细信息,比如玩家名字,脚本是否完整帮主尚未测试,也是其他兄弟贡献的,带了测试视频,喜欢的兄弟自己安装进去,测试看看。

脚本牵扯到多个变量和引入文件,添加的时候,记得备份一下原先的问题,在添加,脚本是烈阳做的。

战神引擎装备首爆记录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.
分享到:
赞(0)