|
SUNM2改进版GOMSM2晋升2020改进版完整传奇引擎源码
SUNM2改进版GOMSM2晋升2020改进版完整传奇引擎源码
SUNM2改进版GOMSM2晋升2020改进版完整传奇引擎源码
- UserMagic.dwInterval := GetTickCount();
- tick_diff(UserMagic.dwInterval, GetTickCount()) > UserMagic.MagicInfo.nInterval
- [+],更换PXL(D3D绘图)引擎。
- [+],增加云端以及OSS类型微端(节省资源开支)。
- [+],优化拆分多用途对话框方便自定义。
- [+],修正飘血素材不对应。
- [+],优化游戏攻速接近于GOM引擎。
- [+],重构GUI标签(针对于自定义UI)。
- [+],增加支持自定义UI设计。
- [+],更换 LoginGate SelGate RunGate 三大网关(IOCP)提高性能。
- [+],重构属性排版(可自定义=接口)。
- [+],去除并且检查引擎部分漏洞于后门(现已绿色版)。
- [+],增加 GameCenter 引擎启动最小化。
- [+],增加 GameCenter 快速批量修改端口。
- [+],增加 GameCenter 引擎定时启动。
- [+],修改商铺支持自定义。
- [+],增加 游戏脚本死循环控制。
- 调整人物的元素属性,该命令调整的元素,小退消失,只是临时的元素,不是永久的
- ChangeHumNewValue 元素位置(0-10) 增加百分比(0-255) 有效时间(秒) 暴击或者反伤时的威力倍数(实际倍数等于设置值除以100)
- -----------------------------------------------------------------------------
- 属性(0-10)
- (0)暴击几率增加 1~100%
- (1)增加攻击伤害 1~100%
- (2)物理伤害减少 1~100%
- (3)魔法伤害减少 1~100%
- (4)忽视目标防御 1~100%
- (5)所有伤害反弹 1~100%
- (6)增加目标暴率 1~100%
- (7)人物体力增加 1~100%
- (8)人物魔力增加 1~100%
- (9)怒气恢复增加 1~100%
- (10)合击攻击增加 1~100%
- var
- nRate, nWhere, nValType, nPoint, nAddPoint: Integer;
- UserItem: pTUserItem;
- StdItem: TItem;
- nUpgradeItemStatus: Integer;
- nRatePoint: Integer;
- begin
- try
- nWhere := Str_ToInt(QuestActionInfo.sParam1, -1);
- nValType := Str_ToInt(QuestActionInfo.sParam2, -1);
- nRate := Str_ToInt(QuestActionInfo.sParam3, -1);
- nPoint := Str_ToInt(QuestActionInfo.sParam4, -1);
- nUpgradeItemStatus := Str_ToInt(QuestActionInfo.sParam5, -1);
- if (nValType < 0) or (nValType > 14) or (nWhere < 0) or (nWhere > High(THumanUseItems)) or (nRate < 0) or (nPoint < 0) or (nPoint > 255) then
- begin
- ScriptActionError(PlayObject, '', QuestActionInfo, sSC_UPGRADEITEMSEX);
- exit;
- end;
- UserItem := @PlayObject.m_UseItems[nWhere];
- StdItem := UserEngine.GetStdItem(UserItem.wIndex);
- if (UserItem.wIndex <= 0) or (StdItem = nil) then
- begin
- PlayObject.SysMsg('你身上没有戴指定物品!!!', c_Red, t_Hint);
- exit;
- end;
- nRatePoint := Random(nRate * 10);
- nPoint := _MAX(1, Random(nPoint));
- if not (nRatePoint in [0..10]) then
- begin
- case nUpgradeItemStatus of //
- 0:
- begin
- PlayObject.SysMsg('装备升级未成功!!!', c_Red, t_Hint);
- end;
- 1:
- begin
- PlayObject.SendDelItems(UserItem);
- UserItem.wIndex := 0;
- PlayObject.SysMsg('装备破碎!!!', c_Red, t_Hint);
- end;
- 2:
- begin
- PlayObject.SysMsg('装备升级失败,装备属性恢复默认!!!', c_Red, t_Hint);
- if nValType <> 14 then
- UserItem.btValue[nValType] := 0;
- end;
- end;
- exit;
- end;
- if nValType = 14 then
- begin
- nAddPoint := (nPoint * 1000);
- if UserItem.DuraMax + nAddPoint > High(Word) then
- begin
- nAddPoint := High(Word) - UserItem.DuraMax;
- end;
- UserItem.DuraMax := UserItem.DuraMax + nAddPoint;
- end
- else
- begin
- nAddPoint := nPoint;
- if UserItem.btValue[nValType] + nAddPoint > High(Byte) then
- begin
- nAddPoint := High(Byte) - UserItem.btValue[nValType];
- end;
- UserItem.btValue[nValType] := UserItem.btValue[nValType] + nAddPoint;
- end;
- PlayObject.SendUpdateItem(UserItem);
- PlayObject.SysMsg('装备升级成功', c_Green, t_Hint);
- PlayObject.SysMsg(StdItem.Name + ': ' +
- IntToStr(UserItem.Dura) + '/' +
- IntToStr(UserItem.DuraMax) + '-' +
- IntToStr(UserItem.btValue[0]) + '/' +
- IntToStr(UserItem.btValue[1]) + '/' +
- IntToStr(UserItem.btValue[2]) + '/' +
- IntToStr(UserItem.btValue[3]) + '/' +
- IntToStr(UserItem.btValue[4]) + '/' +
- IntToStr(UserItem.btValue[5]) + '/' +
- IntToStr(UserItem.btValue[6]) + '/' +
- IntToStr(UserItem.btValue[7]) + '/' +
- IntToStr(UserItem.btValue[8]) + '/' +
- IntToStr(UserItem.btValue[9]) + '/' +
- IntToStr(UserItem.btValue[10]) + '/' +
- IntToStr(UserItem.btValue[11]) + '/' +
- IntToStr(UserItem.btValue[12]) + '/' +
- IntToStr(UserItem.btValue[13])
- , c_Blue, t_Hint);
- except
- MainOutMessage('[Exception] TNormNpc.ActionOfUpgradeItemsEx');
- end;
- end;
复制代码

链接:https://pan.quark.cn/s/b3679a0de6b8
提取码下载:
|
|