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
暂无评论