战神引擎声望捐献得主体和英雄属性Npc脚本

用于战神引擎的声望捐献自定义Npc脚本,脚本从1.80战神合击版本里面提取来的,默认使用3.0插件,玩家通过声望捐献以后,主体和英雄都可以获得对应的攻魔道属性+暴击+HP血量增加,脚本带了Gm后台清理功能,但Npc上清理了,还要在删除一下对应的文件,脚本和素材都提取出来了。

元宝捐献.txt文件放到D:\mud2.0\Mir200\Share\config这个文件夹。开区之前里面的内容全部清空。

战神引擎声望捐献得主体和英雄属性Npc脚本

部分脚本

procedure _GMredata;
begin
	This_Npc.NpcDialog(This_Player,
	'<元宝及沙捐> 都将被清空'+
	'|请先删除config目录下的元宝捐献.txt 文件内容!!'+
	'|{cmd}<我已删除,开始清空/@ActionData>'
	)
end;
procedure _ActionData;
var i:integer;
begin
	SetG(99,29,0);
	SetG(78,6,0);
	SetG(78,7,0);
	This_Player.SetV(99,15,0);
	for i:=1 to 10 do
	begin
		if rankName[i] <> '' then
		rankName[i]:='';
		if rankInt[i] <> 0 then
		rankInt[i]:=0;
	end;
	This_Npc.NpcDialog(This_Player,' 数据清空完毕!!')
end;
procedure _YBJX;
begin
	//This_Npc.InputDialog(This_Player,'输入捐献元宝数量',0,100);
	This_Npc.InputDialog(This_Player,'输入捐献声望数量',0,100);
end;
procedure P100;
var i, temp_yb, index, sl: integer;
begin
	index:=0;
	temp_yb:=StrToIntDef(This_Npc.InputStr,-1);
	sl:=StrToIntDef(This_Npc.InputStr,-1);
	if temp_yb > 0 then
	begin
	if This_Player.MyShengwan <= temp_yb then
	begin
		This_Npc.NpcDialog(This_Player,'你的声望不够捐献了~');exit;
	end
	if ReadIniSectionStr('元宝捐献.txt','元宝捐献',This_Player.Name) <> '' then
	begin
		temp_yb:=temp_yb + strtoint(ReadIniSectionStr('元宝捐献.txt','元宝捐献',This_Player.Name));
	end
	if WriteIniSectionStr('元宝捐献.txt','元宝捐献',This_Player.Name,inttostr(temp_yb)) then
	begin
		for i:=1 to 100 do
		begin
			if ReadIniSectionStr('元宝捐献.txt','捐献列表',inttostr(i)) = This_Player.Name then	
			begin
			index:=i;	
			break;
			end
		end
		if index > 0 then
		begin
		WriteIniSectionStr('元宝捐献.txt','捐献列表',inttostr(index),This_Player.Name);
		end
		else
		begin
		SetG(99,29,GetG(99,29)+1);
		WriteIniSectionStr('元宝捐献.txt','捐献列表',inttostr(GetG(99,29)),This_Player.Name);
		end
		SetG(78,7,GetG(78,7) +sl /100*30);
		SetG(78,6,GetG(78,6)+sl);
		This_Player.SetV(99,15,This_Player.GetV(99,15) + sl);
		This_Player.MyShengwan := This_Player.MyShengwan - strtoint(This_Npc.InputStr);
		//This_Player.ScriptRequestSubYBNum(strtoint(This_Npc.InputStr));
		//ServerSay('玩家:['+This_Player.Name+']为沙城捐献了:'+ inttostr(sl)+'  元宝!', 3);
		//ServerSay('恭喜玩家:['+This_Player.Name+']成功捐献了:'+ inttostr(sl)+'  声望获得永久属性加成!', 3);
		ServerSayPlus('恭喜玩家'+This_Player.Name+'成功捐献了:'+ inttostr(sl)+' 点声望获得永久属性加成!');
         This_NPC.NpcDialog(This_Player,'恭喜你成功捐献:'+ inttostr(sl)+' 声望!' 
            +'|                                                           <返回首页/@main>') ;			
        domain;	
	end
	else
		This_Npc.NpcDialog(This_Player,'未知错误,请联系管理员~');
	end
	else
	This_Npc.NpcDialog(This_Player,'非法输入,请输入数字~');
end;
begin	
	if GetG(78,6) < 0 then SetG(78,6,0);
	if GetG(78,7) < 0 then SetG(78,7,0);
	if GetG(99,29) < 0 then SetG(99,29,0);
    if This_Player.GetV(99,15) < 0 then This_Player.SetV(99,15,0);
	domain;
end.
分享到:
赞(0)