|
本帖最后由 vkdfkc 于 2022-6-11 09:07 编辑
在我发帖之前的5个BluePXL代码贴加一个3K控件转BluePXL控件帖全是我弄的,转我的东西甚至连我的名字都懒得标一下是吧?算了,大不了我停更就是了。哦对,隔壁还有我发的最后一个代码贴,你要不要也转过来啊?(前面的帖子均已录屏取证,你删掉也没用)
不是别人告诉我的话,我都不知道我写这点玩意被人给转了 M2部分(ObjBase)
- //乾坤玉璧修炼技能 20220608 Changed by vkdfkc
- procedure TPlayObject.ClientTrainSkill(idx, mid: Integer);
- var
- i, ii: Integer;
- b: Boolean;
- UserItem: pTUserItem;
- pStdItem: pTStdItem;
- begin
- { if not (mid in [6, 7, 10..12, 14, 15, 17, 23, 25]) then begin
- SendDefMessage(SM_TRAINSKILL, -6, 0, 0, 0, '');
- Exit;
- end; }
- //刷物品?临界区呆着去吧!信我的,防止刷东西进临界区准没错 20220608 changed by vkdfkc
- EnterCriticalSection(ProcessMsgCriticalSection);
- //MainOutMessageAPI(Format('%d,%d',[idx,mid]));
- if m_MagicArr[0][mid] <> nil then
- begin
- if not(m_MagicArr[0][mid].btLevel in [3 .. 14]) then
- begin
- //技能未达到3级或者已达到最大修炼等级 vkdfkc分析
- SendDefMessage(SM_TRAINSKILL, -8, 0, 0, 0, '');
- Exit;
- end;
- end
- else
- begin
- //尚未学习该技能 vkdfkc分析
- SendDefMessage(SM_TRAINSKILL, -7, 0, 0, 0, '');
- Exit;
- end;
- ii := -1;
- for i := m_ItemList.Count - 1 downto 0 do
- begin
- UserItem := m_ItemList.Items[i];
- if UserItem.MakeIndex = idx then
- begin
- if m_btRaceServer = RC_PLAYOBJECT then
- begin
- if TPlayObject(Self).IsOnSaleItem(UserItem.MakeIndex) then
- begin
- //该物品不存在或者正在出售 vkdfkc分析
- SendDefMessage(SM_TRAINSKILL, -1, 0, 0, 0, '');
- Exit;
- end;
- end;
- ii := i;
- Break;
- end;
- end;
- if ii >= 0 then
- begin
- UserItem := m_ItemList.Items[ii];
- pStdItem := UserEngine.GetStdItem(UserItem.wIndex);
- if pStdItem <> nil then
- begin
- if (pStdItem.StdMode = 2) and (pStdItem.Shape = 12) then
- begin
- if UserItem.Dura = UserItem.DuraMax then
- begin
- if UserItem.btValue[0] > 0 then
- begin
- if m_MagicArr[0][mid].MagicInfo.TrainLevel
- [m_MagicArr[0][mid].btLevel] <= m_Abil.Level then
- begin
- //加的修炼点为 Dura * 100 vkdfkc 修改
- Inc(m_MagicArr[0][mid].nTranPoint, UserItem.Dura * 100);
- DelBagItem(ii, True, '修炼技能');
- // 记录物品
- SendDefMessage(SM_TRAINSKILL, 0, 0, 0, 0, '');
- if not CheckMagicLevelup(m_MagicArr[0][mid], True) then
- begin
- SendDelayMsg(Self, RM_MAGIC_LVEXP,
- m_MagicArr[0][mid].MagicInfo.btClass,
- m_MagicArr[0][mid].MagicInfo.wMagicId,
- m_MagicArr[0][mid].btLevel,
- m_MagicArr[0][mid].nTranPoint, '', 10);
- end;
- end
- else
- //未达到修炼等级 vkdfkc分析
- SendDefMessage(SM_TRAINSKILL, -9, 0, 0, 0, '');
- end
- else
- //请使用已解封的玉璧 vkdfkc分析
- SendDefMessage(SM_TRAINSKILL, -5, 0, 0, 0, '');
- end
- else
- //请使用蓄满的乾坤玉璧 vkdfkc分析
- SendDefMessage(SM_TRAINSKILL, -4, 0, 0, 0, '');
- end
- else
- //请放入乾坤玉璧 vkdfkc分析
- SendDefMessage(SM_TRAINSKILL, -3, 0, 0, 0, '');
- end
- else
- //该物品数据不存在(StdItem内) vkdfkc分析
- SendDefMessage(SM_TRAINSKILL, -2, 0, 0, 0, '');
- end
- else
- ////该物品不存在或者正在出售 vkdfkc分析
- SendDefMessage(SM_TRAINSKILL, -1, 0, 0, 0, '');
- //记得退出临界区 by vkdfkc
- LeaveCriticalSection(ProcessMsgCriticalSection);
- end;
复制代码
|
评分
-
查看全部评分
|