战神引擎沙城捐献脚本加百分比攻击
program mir2;var
s1,s2,s3,s4,s5 : integer;
l1,l2,l3,l4,l5 : integer; //次数限制-变量
n1,n2,n3,n4,n5,n6 : string;
m1,m2,m3,m4,m5,m6 : string;
num,num1,num2,num3,num4,today:integer;
sxz1,sxz2,sxz3,sxz4,sxz5,sxz6,sxz7,sxz8,sxz9: integer;
ybjx1,ybjx2,ybjx3,ybjx4,ybjx5,ybjx6,ybjx7,ybjx8,ybjx9: integer;
zswj1,zswj2,zswj3,zswj4,zswj5,zswj6,zswj7: integer;
ltsx6,ltsx7,txdy4,txdy5,sccjl: integer;
procedure _DoExit;
begin
This_Npc.CloseDialog(This_Player);
end;
procedure _Exit;
begin
This_Npc.CloseDialog(This_Player);
end;
procedure domain;
begin
today := GetDateNum(GetNow); //定义today为当前日期值
if This_Player.GetV(78,10) <> today then //查询个人变量78,10 不等于当前日期则清理其他数据
begin
This_Player.SetV(78,10,today);
This_Player.SetV(78,1,0);
This_Player.SetV(78,2,0);
end;
if getg(78,10) <> today then //查询个人变量78,10 不等于当前日期则清理其他数据
begin
num3 := GetG(78,6);
num4 := GetG(78,7);
SetG(78,7,num4+num3);
SetG(78,10,today);
SetG(78,1,0);
SetG(78,2,0);
SetG(78,3,0);
SetG(78,4,0);
SetG(78,5,0);
SetG(78,6,0);
end;
if This_Player.getV(78,1) < 0 thenThis_Player.SetV(78,1,0); //初始化个人变量
if This_Player.getV(78,2) < 0 thenThis_Player.SetV(78,2,0); //初始化个人变量
num :=StrToIntDef(This_NPC.InputStr,-1);
if getg(78,1) < 0 then//初始化全局变量
SetG(78,1,0);
if getg(78,2) < 0 then
SetG(78,2,0);
if getg(78,3) < 0 then
SetG(78,3,0);
if getg(78,4) < 0 then
SetG(78,4,0);
if getg(78,5) < 0 then
SetG(78,5,0);
s1 := getg(78,1);//定义变量
s2 := getg(78,2);
s3 := getg(78,3);
s4 := getg(78,4);
s5 := getg(78,5);
if This_Player.GetV(78,1) = s1 then
begin
m2 := '第一名';
end
else
if This_Player.GetV(78,1) = s2 then
begin
m2 := '第二名';
end
else
if This_Player.GetV(78,1) = s3 then
begin
m2 := '第三名';
end
else
if This_Player.GetV(78,1) = s4 then
begin
m2 := '第四名';
end
else
if This_Player.GetV(78,1) = s5 then
begin
m2 := '第五名';
end
else
if (This_Player.GetV(78,1) > 1) and (This_Player.GetV(78,1) < s5) then
begin
m2 := '第六名后';
end
else m2 := '无';
This_NPC.NpcDialog(This_Player,
'每日捐献的<总值>存入<沙奖池>中.<攻城后>领取\'
+'|今日总捐献:<'+inttostr(GetG(78,6))+'/c=103> 沙奖池累计:<'+inttostr(GetG(78,7)/40)+'/c=243>|\'
+'|<第一名/c=103>:捐献元宝 <'+inttostr(getg(78,1))+'/c=254> <'+n1+'/c=250>\'
+'|<第二名/c=103>:捐献元宝 <'+inttostr(getg(78,2))+'/c=254> <'+n2+'/c=250> \'
+'|<第三名/c=103>:捐献元宝 <'+inttostr(getg(78,3))+'/c=254> <'+n3+'/c=250> \'
+'|<第四名/c=103>:捐献元宝 <'+inttostr(getg(78,4))+'/c=254> <'+n4+'/c=250>\'
+'|<第五名/c=103>:捐献元宝 <'+inttostr(getg(78,5))+'/c=254> <'+n5+'/c=250> \'
+'|<第六名/c=103>:后不显示数据 <每日0点更新捐献/c=red>\'
+'|您当前捐献元宝:<'+inttostr(This_Player.GetV(78,1))+'/c=254> 排名 [<'+m2+'/c=250>] \'
+'|{cmd}<我要捐献/@jxyb>^<查看属性/@shuxing>^<领取奖池/@linqujl> ^<关闭/@Exit> '
);
end;
procedure _linqujl;
begin
if ( This_Player.IsCastle ) and( This_Player.IsGuildLord ) then
begin
This_Npc.NpcDialog(This_Player,
'尊敬的<沙巴克城主>您好!|\ \' +
'当前<沙城池>捐献<元宝>数量为: <'+inttostr(GetG(78,7))+'/c=243>元宝|\ \' +
'您可以领取<城池元宝>数量为: <'+inttostr(GetG(78,7)/40)+'/c=243>元宝|\ \' +
'<是否领取>:|\ \' +
'|{cmd}<领取城池元宝/@lqsjc>^ <返回/@main>|\'
);
end else
begin
This_Npc.NpcDialog(This_Player,
'只有沙巴克会长才能进行操作!'
+'| <返回/@main>') ;
end;
end;
procedure _lqsjc;
begin
if ( This_Player.IsCastle ) and( This_Player.IsGuildLord ) then
begin
sccjl := GetG(78,7);
This_Player.ScriptRequestAddYBNum((GetG(78,7)/10));
ServerSay('沙巴克城主:[<' + This_Player.Name + '>]领取了沙城池奖励['+inttostr(GetG(78,7)/40)+']元宝!', 70);
SetG(78,7,0);
This_Npc.NpcDialog(This_Player,
'恭喜你领取了沙城池奖励!'
+'| <返回/@linqujl>') ;
end else
begin
This_Npc.NpcDialog(This_Player,
'只有沙巴克会长才能进行操作!'
+'| <返回/@main>') ;
end;
end;
procedure _shuxing;
begin
This_NPC.NpcDialog(This_Player,
'|您当前捐献元宝:<'+inttostr(This_Player.GetV(78,1))+'/c=254> 排名 [<'+m2+'/c=250>] \'
+'|<第一名/c=103>: 提升 <60%> 主属性\'
+'|<第二名/c=103>: 提升 <50%> 主属性\'
+'|<第三名/c=103>: 提升 <40%> 主属性\'
+'|<第四名/c=103>: 提升 <30%> 主属性\'
+'|<第五名/c=103>: 提升 <20%> 主属性\'
+'|<六名后/c=103>: 提升 <10%> 主属性\'
+'|{cmd}<领取属性/@lqsx11> ^<返回/@main>');
end;
procedure _lqsx;
begin
This_Player.CallOut(This_NPC,1,'lqsx1');
end;
procedure _lqsx11;
begin
if This_Player.GetV(78,1) > 0 then
begin
if (ybjx1 = 0) and (ybjx2 = 0) and (ybjx3 = 0) then
begin
sxz1 := 0;
sxz2 := 0;
sxz3 := 0;
sxz4 := 0;
sxz5 := 0;
sxz8 := 0;
sxz9 := 0;
ybjx1 := 0;
ybjx2 := 0;
ybjx3 := 0;
ybjx4 := 0;
ybjx5 := 0;
ybjx6 := 0;
ybjx7 := 0;
begin
if (This_Player.GetV(78,1) = GetG(78,1)) and (This_Player.GetV(78,1) > 0) then
begin
ybjx1 := This_Player.MaxDC * 60 / 100
ybjx2 := This_Player.MaxMC * 60 / 100
ybjx3 := This_Player.MaxSC * 60 / 100
This_Player.PlayerNotice('沙城捐献:[第一名]属性已触发',2);
end;
if (This_Player.GetV(78,1) = GetG(78,2)) and (This_Player.GetV(78,1) > 0) then
begin
ybjx1 := This_Player.MaxDC * 50 / 100
ybjx2 := This_Player.MaxMC * 50 / 100
ybjx3 := This_Player.MaxSC * 50 / 100
This_Player.PlayerNotice('沙城捐献:[第二名]属性已触发',2);
end;
if (This_Player.GetV(78,1) = GetG(78,3)) and (This_Player.GetV(78,1) > 0) then
begin
ybjx1 := This_Player.MaxDC * 40 / 100
ybjx2 := This_Player.MaxMC * 40 / 100
ybjx3 := This_Player.MaxSC * 40 / 100
This_Player.PlayerNotice('沙城捐献:[第三名]属性已触发!',2);
end;
if (This_Player.GetV(78,1) = GetG(78,4)) and (This_Player.GetV(78,1) > 0) then
begin
ybjx1 := This_Player.MaxDC * 30 / 100
ybjx2 := This_Player.MaxMC * 30 / 100
ybjx3 := This_Player.MaxSC * 30 / 100
This_Player.PlayerNotice('沙城捐献:[第四名]属性已触发!',2);
end;
if (This_Player.GetV(78,1) = GetG(78,5)) and (This_Player.GetV(78,1) > 0) then
begin
ybjx1 := This_Player.MaxDC * 20 / 100
ybjx2 := This_Player.MaxMC * 20 / 100
ybjx3 := This_Player.MaxSC * 20 / 100
This_Player.PlayerNotice('沙城捐献:[第五名]属性已触发!',2);
end;
if (This_Player.GetV(78,1) > 0) and (This_Player.GetV(78,1) < GetG(78,5)) then
begin
ybjx1 := This_Player.MaxDC * 10 / 100
ybjx2 := This_Player.MaxMC * 10 / 100
ybjx3 := This_Player.MaxSC * 10 / 100
This_Player.PlayerNotice('沙城捐献:[没排上名次的]属性已触发!',2);
end;
if ((This_Player.GetV(78,1) = GetG(78,1)) and (This_Player.GetV(78,1) > 0))
or ((This_Player.GetV(78,1) = GetG(78,2)) and (This_Player.GetV(78,1) > 0))
or ((This_Player.GetV(78,1) = GetG(78,3)) and (This_Player.GetV(78,1) > 0))
or ((This_Player.GetV(78,1) = GetG(78,4)) and (This_Player.GetV(78,1) > 0))
or ((This_Player.GetV(78,1) = GetG(78,5)) and (This_Player.GetV(78,1) > 0))
or ((This_Player.GetV(78,1) < GetG(78,5)) and (This_Player.GetV(78,1) > 0)) then
begin
sxz1 := zswj1 + ybjx1;
sxz2 := zswj2 + ybjx2;
sxz3 := zswj3 + ybjx3;
sxz4 := zswj4 + txdy4;
sxz5 := zswj5 + txdy5;
sxz6 := zswj6 + ltsx6;
sxz7 := zswj7 + ltsx7;
This_Player.AddPlayerAbil(0, sxz1, 3600);
This_Player.AddPlayerAbil(1, sxz2, 3600);
This_Player.AddPlayerAbil(2, sxz3, 3600);
This_Player.AddPlayerAbil(4, sxz4, 3600);
This_Player.AddPlayerAbil(5, sxz5, 3600);
This_Player.AddPlayerAbil(8, sxz6, 3600);
This_Player.AddPlayerAbil(9, sxz7, 3600);
This_Player.CallOut(This_Npc, 60, 'xiaochu');
This_Player.PlayerNotice('属性增加:攻击 + '+inttostr(sxz1)+'点.魔法 + '+inttostr(sxz2)+'点.道术 .时限1小时',8);
end;
end;
end else
begin
This_Player.PlayerNotice('你已经领取过了,稍后领取',2);
end;
end else
begin
This_Player.PlayerNotice('你还没有捐献记录,无法领取',2);
end;
end;
procedure xiaochu;
begin
ybjx1 := 0;
ybjx2 := 0;
ybjx3 := 0;
end;
procedure _jxyb;
begin
This_NPC.InputDialog(This_Player,'请输入捐献元宝数',0,111) ;
end;
procedure p111;
begin
num :=StrToIntDef(This_NPC.InputStr,-1);//输入非阿拉伯数字的字符都返回-1
if This_NPC.InputOKthen
begin
if (num < 100) or(num > 50000)then
begin
This_NPC.NpcDialog(This_Player,'捐献一次至少<100>元宝.总额不能大于<50000>.只能使用阿拉伯<数字>!'
+'| <返回/@main>') ;
end
else if (num >= 100) and (num < 50000) then
begin
ifThis_Player.YBNum >= num then
begin
num3 := GetG(78,6);
num3 := num3 + num;
SetG(78,6,num3);
This_Player.PsYBConsum(This_NPC,'xin',801,num,1);
This_Player.CallOut(This_NPC,1,'jxyb');
This_Player.ScriptRequestSubYBNum(num);
ServerSay('玩家:['+This_Player.Name+']为沙城捐献了:'+ inttostr(num)+'元宝!', 3);
This_NPC.NpcDialog(This_Player,'恭喜你成功捐献:'+ inttostr(num)+' 元宝!'
+'| <返回/@main>') ;
end else
This_NPC.NpcDialog(This_Player,'你没有足够的元宝捐献!'
+'| <返回/@main>') ;
end;
end;
end;
procedure jxyb;
begin
num :=StrToIntDef(This_NPC.InputStr,-1);//现在捐献元宝数,输入非阿拉伯数字的字符都返回-1
num1 := This_Player.getV(78,1);//已捐献元宝数
num2 :=num + num1; //总捐献元宝
s1 := getg(78,1); //全局第1
s2 := getg(78,2); //全局第2
s3 := getg(78,3); //全局第3
s4 := getg(78,4); //全局第4
s5 := getg(78,5); //全局第5
if num2 > s1 then //如果总捐献大于第一名
begin
SetG(78,5,s4);
SetG(78,4,s3);
SetG(78,3,s2);
SetG(78,2,s1);
SetG(78,1,num2); //第一名 写入你的捐献元宝数
This_Player.SetV(78,1,num2); //个人变量标记
This_Player.SetV(78,2,1); //个人变量标记
n1 := This_Player.Name; //第一名写入你的名字
end
else
if (num2 > s2) and (num2 < s1) then
begin
SetG(78,5,s4);
SetG(78,4,s3);
SetG(78,3,s2);
SetG(78,1,s1);
SetG(78,2,num2);
This_Player.SetV(78,1,num2);
This_Player.SetV(78,2,1); //个人变量标记
n2 := This_Player.Name;
end
else
if (num2 > s3) and (num2 < s2) then
begin
SetG(78,5,s4);
SetG(78,4,s3);
SetG(78,2,s2);
SetG(78,1,s1);
SetG(78,3,num2);
This_Player.SetV(78,1,num2);
This_Player.SetV(78,2,1); //个人变量标记
n3 := This_Player.Name;
end
else
if (num2 > s4) and (num2 < s3) then
begin
SetG(78,5,s4);
SetG(78,3,s3);
SetG(78,2,s2);
SetG(78,1,s1);
SetG(78,4,num2);
This_Player.SetV(78,1,num2);
This_Player.SetV(78,2,1); //个人变量标记
n4 := This_Player.Name;
end
else
if (num2 > s5) and (num2 < s4) then
begin
SetG(78,4,s4);
SetG(78,3,s3);
SetG(78,2,s2);
SetG(78,1,s1);
SetG(78,5,num2);
This_Player.SetV(78,1,num2);
This_Player.SetV(78,2,1); //个人变量标记
n5 := This_Player.Name;
end
else
if num2 < s5 then
begin
This_Player.SetV(78,1,num2);
This_Player.SetV(78,2,1); //个人变量标记
end;
end;
function xin(price, num: Integer):boolean;
begin
result := true;
end;
begin
domain;
end.
积分任务
页:
[1]