|
本帖最后由 淫威 于 2022-6-11 14:09 编辑
M2部分是现成的,只需要对客户端的代码进行修复即可(为了防止有些刷物品的情况,可以对M2内的相关操作部分设置临界区)
M2部分(ObjBase)
- <blockquote>//乾坤玉璧修炼技能 20220608 Changed by vkdfkc
复制代码 MShare定义新增
- //技能修炼相关
- g_MyTrainItem: TClientItem;
- g_MyTrainMagIndex: Integer;
- g_MyTrainItemWait: TMovingItem; //TClientItem;
- g_HeroTrainItem: TClientitem;
- g_heroTrainMagIndex: Integer;
- g_HeroTrainItemWait: TMovingItem; //TClientItem;
复制代码 ClMain处理返回消息
- //20220608
- SM_TRAINSKILL: begin
- // DScreen.AddChatBoardString(Format('错误代码: %d' ,[msg.recog]),clwhite,clred);
- case msg.Recog of
- -1: DScreen.AddChatBoardString('该物品正在出售或已被使用!',clwhite,clred);
- -2: DScreen.AddChatBoardString('数据库内不存在此物品!!',clwhite,clred);
- -3: DScreen.AddChatBoardString('只能使用玉璧修炼技能!',clwhite,clred);
- -4: DScreen.AddChatBoardString('请放入蓄满的乾坤玉璧!',clwhite,clred);
- -5: DScreen.AddChatBoardString('请放入已解封的乾坤玉璧!',clwhite,clred);
- //-6:: DScreen.AddChatBoardString('该技能不能修炼!',clwhite,clred);
- -7: DScreen.AddChatBoardString('你尚未学习此技能!',clwhite,clred);
- -8: DScreen.AddChatBoardString('技能未达到3级或已达到最大修炼等级!',clwhite,clred);
- -9: DScreen.AddChatBoardString('未达到技能所需的修炼等级!',clwhite,clred);
- end; <blockquote> if msg.Recog < -2 then begin
复制代码 修炼按钮代码(FState)
- procedure TFrmDlg.DStrengthSkillMouseUp(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- var
- idx:Integer;
- pm: PTClientMagic;
- begin
- //20220608 by vkdfkc
- with TDButton(Sender) do begin
- if not Enabled then exit;
- idx := g_MyTrainMagIndex;
- //DScreen.AddChatBoardString(IntToStr(odx),clwhite,clred);
- if idx < g_MagicList.Count then begin
- pm := PTClientMagic(g_MagicList[idx]);
- //DScreen.AddChatBoardString(IntToStr(pm.Def.wMagicId),clwhite,clred);
- if g_MyTrainItem.s.Name <> '' then
- frmMain.SendTrainMySkill(g_MyTrainItem.MakeIndex, pm.def.wMagicId);
- //对当前物品进行备份
- g_MyTrainItemWait.item := g_MyTrainItem;
- //移除该物品
- g_MyTrainItem.s.Name := '';
- end;
- end;
- end;
复制代码 效果图

代码出处:论坛用户:vkdfkc大佬
|
|