unit Q1;
interface
uses Classes, SysUtils,FastIniFile;
procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
implementation
const
S=
[[
\\
{S=『;C=249;Y=33}{s=$playername$;C=250;Y=33;fn=楷体;fs=10}{S=』;C=249;Y=33}{S=欢迎光临;C=94;fn=楷体;fs=10;Y=33}{S=$fuwuqiName$;C=249;fn=楷体;fs=10;Y=33}{s=!;c=249;y=33}\
{s=$zuozhe$;x=300;C=24;y=32;fs=8}{S=请选择你要回收的类型.;C=94;fn=楷体;fs=10;x=53;Y=46} {S=(注意存放重要物品!);C=249;fn=楷体;fs=10;;Y=46}\\
{s=设置等级:;y=90}<&{s=最低等级;y=90}/@@InputInteger901(最低等级为:$1$,最低等级)>{s=---;y=90}<&{s=最高等级;y=90}/@@InputInteger901(最高等级为:$2$,最高等级)>\\\
<&{s=蓝色装备;c=146}/@InputString901(高级品质,蓝色装备)> <&{s=绿色装备;c=250}/@InputString901(高级品质,绿色装备)> <&{s=紫色装备;c=241}/@InputString901(高级品质,紫色装备)> <&{s=暗金装备;c=93}/@InputString901(高级品质,暗金装备)> <&{s=红色装备;c=249}/@InputString901(高级品质,红色装备)> <&{s=橙色装备;c=69}/@InputString901(高级品质,橙色装备)> <&{s=粉色装备;c=253}/@InputString901(高级品质,粉色装备)>\\\
<&全部装备/@InputString901(高级类型,全部)> <&武器装备/@InputString901(高级类型,武器)> <&衣服装备/@InputString901(高级类型,衣服)> <&首饰装备/@InputString901(高级类型,首饰)> <&马牌装备/@InputString901(高级类型,马牌)> <&符类装备/@InputString901(高级类型,符类)> <&斗笠装备/@InputString901(高级类型,斗笠)>
{S=回收等级:;X=17;Y=67} {s=$1$;c=249;y=67}{s=---;y=67;c=250}{s=$2$;y=67;c=249}\
{S=回收品质:;x=17;y=110}{s=$p$装备;y=110;c=249}{s=(请点击下面对应颜色来设置要回收最高装备品质!);y=110}\
{S=回收类型:;x=17;y=156}{s=$l$装备;y=156;c=249}{s=(请点击下面对应类型来设置要回收的装备类型!);y=156}\
{s=回收站;x=180;C=24;y=250;fs=16;fn=楷体}\
<&{S=点击开始回收$1$级到$2$级$p$品质以下的$l$!;fs=12;Y=208}/@ks>
]];
var
BL: Integer;
procedure LoadBL;
var
BIni: TFastIniFile;
begin
//一定要注意此处的用法,INI创建后是要释放的
BIni := TFastIniFile.Create(Gamelib.EnvirPath + '示范版本脚本配置文件.ini');
try
BL := BIni.ReadInteger('回收','倍数', 0);
finally
BIni.Free;
end;
end;
procedure ShowB(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
var
BMessage: String;
begin
BMessage := ReplaceStr(S, '$fuwuqiName$',GameLib.ServerName);
BMessage := ReplaceStr(BMessage, '$playername$', Player.Name);
BMessage := ReplaceStr(BMessage, '$1$', Player.N[48]);
BMessage := ReplaceStr(BMessage, '$2$', Player.N[49]);
BMessage := ReplaceStr(BMessage, '$p$', Player.VarString('高级的品质').asString);
BMessage := ReplaceStr(BMessage, '$l$', Player.VarString('高级的类型').asString);
BMessage := ReplaceStr(BMessage, '$zuozhe$', player.S[29]);
Player.SayEx('回收', BMessage);
end;
procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
begin
//初次进入NPC清空数据
Player.VarString('回收品质').AsString := '';
Player.VarString('回收类型').AsString := '';
player.S[29]:='回收';
ShowB(Npc, Player, Args);
end;
procedure InputInteger901(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
begin
case Args.Str[0] of
'最低等级': Player.N[48] := Args.Int[1];
'最高等级': Player.N[49] := Args.Int[1];
end;
ShowB(Npc, Player, Args);
end;
procedure InputString901(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
begin
case Args.Str[0] of
'高级品质': Player.VarString('高级的品质').AsString :=Copy(Args.Str[1], 1, 2);
'高级类型': Player.VarString('高级的类型').AsString :=Args.Str[1];
end;
ShowB(Npc, Player, Args);
end;
procedure ks(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
var
BGoldName: String;
I, BBBL, BItemCount, BGoldCount, BExpCount: Integer;
BBllGoldCount, BBllGameGoldCount, BBllExpCount: Integer;
BHandle, BHandle1: Boolean;
begin
BGoldName := '';
BBllGoldCount := 0;
BBllGameGoldCount := 0;
BBllExpCount := 0;
BItemCount := 0;
for I := Player.ItemSize - 1 downto 0 do
begin
if Player.BagItem[I] <> nil then
begin
BHandle := False;
BHandle1 := False;
case Player.VarString('高级的类型').AsString of
'全部': BHandle := Player.BagItem[I].StdMode in [1,2..30,35];
'武器': BHandle := Player.BagItem[I].StdMode in [5,6,8];
'衣服': BHandle := Player.BagItem[I].StdMode in [10,11,17,18];
'首饰': BHandle := Player.BagItem[I].StdMode in [15,19,20..24,26,27,28,30,35];
'马牌': BHandle := Player.BagItem[I].StdMode = 35;
'符类': BHandle := Player.BagItem[I].StdMode = 25;
'斗笠': BHandle := Player.BagItem[I].StdMode = 16;
end;
case Player.VarString('高级的品质').AsString of
'白色': BHandle1 := Player.BagItem[I].Color = 0;
'蓝色': BHandle1 := Player.BagItem[I].Color in [0, 146];
'绿色': BHandle1 := Player.BagItem[I].Color in [0, 146, 250];
'紫色': BHandle1 := Player.BagItem[I].Color in [0, 146, 250, 241];
'暗金': BHandle1 := Player.BagItem[I].Color in [0, 146, 250, 241, 93];
'红色': BHandle1 := Player.BagItem[I].Color in [0, 146, 250, 241, 93, 249];
'橙色': BHandle1 := Player.BagItem[I].Color in [0, 146, 250, 241, 93, 249, 69];
'粉色': BHandle1 := Player.BagItem[I].Color in [0, 146, 250, 241, 93, 249, 69, 253];
end;
if BHandle and BHandle1 then
begin
BBBL := 1;
case Player.BagItem[I].Color of
146: BBBL := 2;
250: BBBL := 4;
241: BBBL := 6;
93: BBBL := 8;
249: BBBL := 10;
69: BBBL := 12;
253: BBBL := 14;
end;
if (Player.BagItem[I].NeedLevel >= Player.N[48]) and (Player.BagItem[I].NeedLevel <= Player.N[49])and(Copy(player.S[29],pos('--',player.S[29])+4,pos('v',player.S[29])-4)='s') then
begin
DEBUG(Player.BagItem[I].Color.ToString);
BGoldCount := Player.BagItem[I].NeedLevel * (BBBL + BL);
BExpCount := Player.BagItem[I].NeedLevel * (BBBL + BL) * 10000;
Player.AddExp(BExpCount);
BBllExpCount := BBllExpCount + BExpCount;
Npc.Take(player,Player.BagItem[I].Name, 1);
Inc(BItemCount);
if Player.BagItem[I].Color = 0 then
begin
BGoldName := '金币';
Player.Gold := Player.Gold + BGoldCount;
BBllGoldCount := BBllGoldCount + BGoldCount;
end
else
begin
BGoldName := '元宝';
Player.GameGold := Player.GameGold + BGoldCount;
BBllGameGoldCount := BBllGameGoldCount + BGoldCount;
end;
Player.GoldChanged;
Player.SendCenterMessage(Format('本次回收获得%d%s,%d经验!',[BGoldCount, BGoldName, BExpCount]), 0);
Player.SendMessage(Format('本次回收获得%d%s,%d经验!',[BGoldCount, BGoldName, BExpCount]), 2);
end;
end;
end;
end;
Player.SendCenterMessage(format('本次回收%d件装备总共获得%d金币%d元宝,%d经验,请继续努力!',[BItemCount, BBllGoldCount, BBllGameGoldCount, BBllExpCount]),0);
Player.SendMessage(Format('本次回收%d件装备总共获得%d金币%d元宝,%d经验,请继续努力!',[BItemCount, BBllGoldCount, BBllGameGoldCount, BBllExpCount]),2);
end;
initialization
LoadBL; //引擎加载的时候就读取回收倍率,只读取一次,减少了访问
end.
本站所有文章均为《龙引擎》原创,转载请注明出处来自https://www.longm2.cn/3317.html


暂无评论