2025-06-04 05:02:57 +08:00

740 lines
22 KiB
Plaintext

FunctionDialogEvent = class("FunctionDialogEvent");
autoImport("ItemTipComCell");
autoImport("DialogEventConfig");
FunctionDialogEvent.ReplaceAction = "functional_action";
FunctionDialogEvent.EventResult_Type =
{
Result_Succes = "Result1",
Result_Fail_1 = "Result2",
Result_Fail_2 = "Result3",
Result_Wait = "Wait",
Result_Close = "Close",
}
local tempV3 = LuaVector3();
function FunctionDialogEvent.Me()
if nil == FunctionDialogEvent.me then
FunctionDialogEvent.me = FunctionDialogEvent.new()
end
return FunctionDialogEvent.me
end
local DEFAULT_MATERIAL_SEARCH_BAGTYPES;
local UPGRADE_MATERIAL_SEARCH_BAGTYPES;
local REPLACE_MATERIAL_SEARCH_BAGTYPES;
local _BagProxy;
local _BlackSmithProxy;
local Func_Type_Map
function FunctionDialogEvent:ctor()
Func_Type_Map =
{
["EquipUpgrade"] = FunctionDialogEvent.SetEquipUpgrade,
["EquipReplace"] = FunctionDialogEvent.SetEquipReplace,
["UpJobLevel"] = FunctionDialogEvent.UpJobLevel,
["DialogGoddessOfferDead"] = FunctionDialogEvent.SetDialogGoddessOfferDead
}
local pacakgeCheck = GameConfig.PackageMaterialCheck;
DEFAULT_MATERIAL_SEARCH_BAGTYPES = pacakgeCheck and pacakgeCheck.default or {1,9};
UPGRADE_MATERIAL_SEARCH_BAGTYPES = pacakgeCheck and pacakgeCheck.upgrade or DEFAULT_MATERIAL_SEARCH_BAGTYPES;
REPLACE_MATERIAL_SEARCH_BAGTYPES = pacakgeCheck and pacakgeCheck.upgrade or DEFAULT_MATERIAL_SEARCH_BAGTYPES;
_BagProxy = BagProxy.Instance;
_BlackSmithProxy = BlackSmithProxy.Instance;
self:MapEventConfig();
end
function FunctionDialogEvent:MapEventConfig()
self.paramaMap = {};
self.paramaMap["%[EquipSite%]"] = FunctionDialogEvent.GetEquipSite;
self.paramaMap["%[EquipName%]"] = FunctionDialogEvent.GetEquipName;
self.paramaMap["%[ReplaceProduceName%]"] = FunctionDialogEvent.GetReplaceProduceName;
self.paramaMap["%[ReplaceMaterials%]"] = FunctionDialogEvent.GetReplaceMaterials;
self.paramaMap["%[UpgradeMaterials%]"] = FunctionDialogEvent.GetUpgradeMaterials;
self.paramaMap["%[UpgradeProduceName%]"] = FunctionDialogEvent.GetUpgradeProduceName;
self.paramaMap["%[UpJobLvMaterialsData%]"] = FunctionDialogEvent.UpJobLvMaterialsData;
self.paramaMap["%[UpJobLvNumber%]"] = FunctionDialogEvent.UpJobLvNumber;
self.paramaMap["%[CurrentDeadCoin%]"] = FunctionDialogEvent.CurrentDeadCoin;
self.paramaMap["%[LackOfDeadCoin%]"] = FunctionDialogEvent.LackOfDeadCoin;
self.paramaMap["%[DeadCoin%]"] = FunctionDialogEvent.DeadCoin;
self.paramaMap["%[DeadLv%]"] = FunctionDialogEvent.DeadLv;
self.eventMap = {};
self.eventMap.Replace_MaterialEnough = FunctionDialogEvent.Replace_MaterialEnough;
self.eventMap.Upgrade_MaterialEnough = FunctionDialogEvent.Upgrade_MaterialEnough;
self.eventMap.CanUpJobLv = FunctionDialogEvent.CanUpJobLv;
self.eventMap.DoReplace = FunctionDialogEvent.DoReplace;
self.eventMap.DoUpgrade = FunctionDialogEvent.DoUpgrade;
self.eventMap.DoUpJobLv = FunctionDialogEvent.DoUpJobLv;
self.eventMap.ConsumeDeadCoin = FunctionDialogEvent.ConsumeDeadCoin;
self.showEventMap = {};
self.showEventMap.ShowUpgradeItem = FunctionDialogEvent.ShowUpgradeItemEvent;
self.dialogEventType = {};
self.dialogEventType.EquipUpgrade = {};
end
function FunctionDialogEvent.GetEquipSite(parama, npc)
local site = parama.site;
if(site)then
site = site[1];
for _,cfg in pairs(GameConfig.EquipType)do
for _,sitecfg in pairs(cfg.site)do
if(sitecfg == site)then
return cfg.name;
end
end
end
end
return "NULL";
end
function FunctionDialogEvent.GetEquipName(parama, npc)
local itemData = parama.itemData;
if(itemData)then
return itemData:GetName(true, true);
end
return "NULL";
end
function FunctionDialogEvent.GetReplaceProduceName(parama, npc)
local itemData = parama.itemData;
local composeId = itemData.equipInfo.equipData.SubstituteID;
local composeData = composeId and Table_Compose[composeId];
local product = composeData.Product;
if(product.id and Table_Item[product.id])then
return Table_Item[product.id].NameZh
end
return "NULL";
end
function FunctionDialogEvent.GetUpgradeProduceName(parama, npc)
local itemData = parama.itemData;
local equipInfo = itemData.equipInfo;
local upgradeData = equipInfo.upgradeData;
local equiplv = equipInfo.equiplv;
if(equiplv < equipInfo.upgrade_MaxLv)then
return itemData.staticData.NameZh .. StringUtil.IntToRoman(equiplv + 1);
else
local productid = upgradeData.Product;
if(productid)then
return Table_Item[productid].NameZh
end
end
end
function FunctionDialogEvent.UpJobLvMaterialsData(parama, npc)
local itemConfig = GameConfig.Peak.itemaddlevel;
local itemid, num = itemConfig[1].item, itemConfig[1].num;
return string.format("%s x %s", Table_Item[itemid].NameZh, num);
end
function FunctionDialogEvent.UpJobLvNumber(parama, npc)
local itemConfig = GameConfig.Peak.itemaddlevel;
return itemConfig[1].level;
end
function FunctionDialogEvent.CurrentDeadCoin(parama, npc)
return Game.Myself.data.userdata:Get(UDEnum.DEADCOIN)
end
function FunctionDialogEvent.LackOfDeadCoin(parama, npc)
local curOfferedNum = Game.Myself.data.userdata:Get(UDEnum.DEADEXP) or 0
local deadLvData = Table_DeadLevel[Game.Myself.data.userdata:Get(UDEnum.DEADLV) + 1];
return math.max((deadLvData and deadLvData.exp or 0) - curOfferedNum, 0);
end
function FunctionDialogEvent.DeadCoin(parama, npc)
return Table_Item[GameConfig.Dead.deadcoinID].NameZh
end
function FunctionDialogEvent.DeadLv(parama, npc)
return Game.Myself.data.userdata:Get(UDEnum.DEADLV)
end
local Func_GetMaterial_SearchNum = function (itemid, search_bagTypes, filterDamage)
if(itemid == 100)then
return Game.Myself.data.userdata:Get(UDEnum.SILVER);
else
search_bagTypes = search_bagTypes or DEFAULT_MATERIAL_SEARCH_BAGTYPES;
local items = nil;
if(ItemData.CheckIsEquip(itemid))then
items = _BlackSmithProxy:GetMaterialEquips_ByEquipId(itemid, nil, filterDamage, nil, search_bagTypes);
else
items = BagProxy.Instance:GetMaterialItems_ByItemId(itemid, search_bagTypes);
end
local searchNum = 0;
if(items)then
for i=1,#items do
searchNum = searchNum + items[i].num;
end
end
return searchNum, items;
end
end
function FunctionDialogEvent.GetReplaceMaterials(parama, npc)
local itemData = parama.itemData;
local composeId = itemData.equipInfo.equipData.SubstituteID;
local composeData = composeId and Table_Compose[composeId];
local cost = composeData.BeCostItem;
local resultStr, materialStr = "";
for i=1,#cost do
local id = cost[i].id;
materialStr = string.format(ZhString.FunctionDialogEvent_MaterialFormat,
Table_Item[id].NameZh,
Func_GetMaterial_SearchNum(id, UPGRADE_MATERIAL_SEARCH_BAGTYPES),
cost[i].num);
if(i<#cost)then
materialStr = materialStr..ZhString.FunctionDialogEvent_And;
end
resultStr = resultStr..materialStr;
end
if(composeData.ROB>0)then
resultStr = resultStr..string.format(ZhString.FunctionDialogEvent_ZenyCost, composeData.ROB);
end
return resultStr;
end
function FunctionDialogEvent.GetUpgradeMaterials(parama, npc)
local itemData = parama.itemData;
local upgradeData = itemData.equipInfo.upgradeData;
local resultStr = "";
local equiplv = itemData.equipInfo.equiplv;
local materialsKey = "Material_" .. (equiplv+1);
local cost = upgradeData[materialsKey];
if(cost)then
local materialStr = "";
for i=1,#cost do
local id = cost[i].id;
materialStr = string.format(ZhString.FunctionDialogEvent_MaterialFormat,
Table_Item[id].NameZh,
Func_GetMaterial_SearchNum(id,nil,true),
cost[i].num);
if(i<#cost)then
materialStr = materialStr..ZhString.FunctionDialogEvent_And;
end
resultStr = resultStr..materialStr;
end
end
return resultStr;
end
--------------------------------------------------------------------------------
function FunctionDialogEvent.Replace_MaterialEnough(parama, npc)
local itemData = parama.itemData;
local composeId = itemData.equipInfo.equipData.SubstituteID
local composeData = composeId and Table_Compose[composeId];
if( MyselfProxy.Instance:GetROB()< composeData.ROB )then
return FunctionDialogEvent.EventResult_Type.Result_Fail_1;
end
local composeCost = composeData.BeCostItem;
local equipItems;
local lackMats;
for i=1,#composeCost do
local itemCfg = composeCost[i];
local itemid, neednum = itemCfg.id, itemCfg.num or 1;
local searchNum = 0;
if(ItemData.CheckIsEquip(itemid))then
equipItems = _BlackSmithProxy:GetMaterialEquips_ByEquipId(
itemid, neednum, false, nil,
REPLACE_MATERIAL_SEARCH_BAGTYPES);
for j=1,#equipItems do
searchNum = searchNum + equipItems[j].num;
end
else
searchNum = Func_GetMaterial_SearchNum(itemid);
end
if(itemid~=100 and searchNum < neednum)then
if(lackMats == nil)then
lackMats = {};
end
table.insert(lackMats, {id = itemid, count = neednum - searchNum});
end
end
if(lackMats)then
if(QuickBuyProxy.Instance:TryOpenView(lackMats))then
return FunctionDialogEvent.EventResult_Type.Result_Close;
end
end
local hasRecover, tipEquips = FunctionItemFunc.RecoverEquips(equipItems);
if (hasRecover)then
return FunctionDialogEvent.EventResult_Type.Result_Wait;
end
if(#tipEquips > 0)then
local confirmMsgParam = {};
confirmMsgParam.id = 247;
confirmMsgParam.param = {tipEquips[1].equipInfo.refinelv};
return FunctionDialogEvent.EventResult_Type.Result_Wait, confirmMsgParam;
end
return FunctionDialogEvent.EventResult_Type.Result_Succes;
end
function FunctionDialogEvent.Upgrade_MaterialEnough(parama, npc)
local itemData = parama.itemData;
local upgradeData = itemData.equipInfo.upgradeData;
local resultStr = "";
local equiplv = itemData.equipInfo.equiplv;
local materialsKey = "Material_" .. (equiplv+1);
local cost = upgradeData[materialsKey];
local itemid = itemData.staticData.id;
local costEquips;
local lackMats;
local matEnough = true;
for i=1,#cost do
local sc = cost[i];
local searchNum = 0;
if(ItemData.CheckIsEquip(sc.id))then
costEquips = _BlackSmithProxy:GetMaterialEquips_ByEquipId(
sc.id, sc.num, true, nil,
UPGRADE_MATERIAL_SEARCH_BAGTYPES);
for j=1,#costEquips do
searchNum = searchNum + costEquips[j].num;
end
else
searchNum = Func_GetMaterial_SearchNum(sc.id);
end
if(searchNum < sc.num)then
matEnough = false;
end
if(sc.id~=100 and searchNum < sc.num)then
if(lackMats == nil)then
lackMats = {};
end
table.insert(lackMats, {id = sc.id, count = sc.num - searchNum});
end
end
if(lackMats)then
if(QuickBuyProxy.Instance:TryOpenView(lackMats))then
return FunctionDialogEvent.EventResult_Type.Result_Close;
end
end
if(not matEnough)then
return FunctionDialogEvent.EventResult_Type.Result_Fail_1;
end
local hasRecover, tipEquips = FunctionItemFunc.RecoverEquips(costEquips);
if (hasRecover)then
return FunctionDialogEvent.EventResult_Type.Result_Wait;
end
if(#tipEquips > 0)then
local confirmMsgParam = {};
confirmMsgParam.id = 247;
confirmMsgParam.param = {tipEquips[1].equipInfo.refinelv};
return FunctionDialogEvent.EventResult_Type.Result_Wait, confirmMsgParam;
end
local nowEquiplv = itemData.equipInfo.equiplv;
if(equiplv >= itemData.equipInfo.upgrade_MaxLv)then
local productid = upgradeData.Product;
local confirmMsgParam = {};
confirmMsgParam.id = 25402;
confirmMsgParam.param = { Table_Item[productid].NameZh };
return FunctionDialogEvent.EventResult_Type.Result_Wait, confirmMsgParam;
end
local myClass = Game.Myself.data.userdata:Get(UDEnum.PROFESSION);
local classDepth = ProfessionProxy.Instance:GetDepthByClassId(myClass);
if(not itemData.equipInfo:CanUpgrade_ByClassDepth(classDepth, nowEquiplv+1))then
return FunctionDialogEvent.EventResult_Type.Result_Fail_2;
end
return FunctionDialogEvent.EventResult_Type.Result_Succes;
end
function FunctionDialogEvent.CanUpJobLv(param, npc)
if(MyselfProxy.Instance:HasMaxJobBreak())then
return FunctionDialogEvent.EventResult_Type.Result_Fail_2;
end
local itemConfig = GameConfig.Peak.itemaddlevel;
local itemid, num = itemConfig[1].item, itemConfig[1].num;
local searchNum = BagProxy.Instance:GetItemNumByStaticID(itemid);
if(searchNum < num)then
return FunctionDialogEvent.EventResult_Type.Result_Fail_1;
end
return FunctionDialogEvent.EventResult_Type.Result_Succes;
end
function FunctionDialogEvent.DoReplace(parama, npc)
local itemData = parama.itemData;
if(npc)then
npc:Client_PlayAction(FunctionDialogEvent.ReplaceAction, nil, false);
end
ServiceItemProxy.Instance:CallEquipExchangeItemCmd(itemData.id, SceneItem_pb.EEXCHANGETYPE_EXCHANGE);
end
function FunctionDialogEvent.DoUpgrade(parama, npc)
local itemData = parama.itemData;
-- ServiceItemProxy.Instance:CallEquipUpgradeItemCmd(itemData.index);
ServiceItemProxy.Instance:CallEquipExchangeItemCmd(itemData.id, SceneItem_pb.EEXCHANGETYPE_LEVELUP);
end
function FunctionDialogEvent.DoUpJobLv( param, npc )
local itemConfig = GameConfig.Peak.itemaddlevel;
local itemid, num = itemConfig[1].item, itemConfig[1].num;
helplog("Call-->AddJobLevelItemCmd", itemid, num);
ServiceItemProxy.Instance:CallAddJobLevelItemCmd(itemid, num);
end
function FunctionDialogEvent.ConsumeDeadCoin( param, npc )
if (Game.Myself.data.userdata:Get(UDEnum.DEADCOIN) < 1) then
return FunctionDialogEvent.EventResult_Type.Result_Fail_1
end
ServiceUserEventProxy.Instance:CallLevelupDeadUserEvent()
local animParams = Asset_Role.GetPlayActionParams("use_skill2")
animParams[7] = function() npc.assetRole:PlayAction_Simple(Asset_Role.ActionName.Idle) end
npc.assetRole:PlayAction(animParams)
return FunctionDialogEvent.EventResult_Type.Result_Succes
end
function FunctionDialogEvent:GetFuncByConfig(key, npc)
return self.eventMap[key];
end
--------------------------------------------------------------------------------
function FunctionDialogEvent.ShowUpgradeItemEvent(viewPreferb, param)
local itemData = param.itemData;
if(not itemData)then
return;
end
local equipInfo = itemData.equipInfo;
local upgradeData = equipInfo and equipInfo.upgradeData;
if(not upgradeData)then
return;
end
local upgradeItem;
if(equipInfo.equiplv < equipInfo.upgrade_MaxLv)then
upgradeItem = ItemData.new("Upgrade", itemData.staticData.id);
upgradeItem.equipInfo.equiplv = equipInfo.equiplv + 1;
else
local productid = upgradeData.Product;
if(not productid)then
return;
end
upgradeItem = ItemData.new("Upgrade", productid);
end
local mid = GameObjectUtil.Instance:DeepFind(viewPreferb, "Anchor_Middle");
local tipRid = ResourcePathHelper.UICell("ItemTipComCell")
local tipObj = Game.AssetManager_UI:CreateAsset(tipRid, mid);
tempV3:Set(-300,30,0);
tipObj.transform.localPosition = tempV3;
local nowTipCell = ItemTipComCell.new(tipObj);
nowTipCell:UpdateTipButtons({});
nowTipCell:SetData(itemData);
nowTipCell:HideGetPath();
nowTipCell:HidePreviewButton();
local upRid = ResourcePathHelper.UICell("ItemTipUpgradeCell")
local upObj = Game.AssetManager_UI:CreateAsset(upRid, mid);
tempV3:Set(170,30,0);
upObj.transform.localPosition = tempV3;
local upTipCell = ItemTipComCell.new(upObj);
upTipCell:UpdateTipButtons({});
upTipCell:SetData(upgradeItem);
upTipCell:HideGetPath();
upTipCell:HidePreviewButton();
local hideFunc = function ()
GameObject.Destroy(tipObj);
GameObject.Destroy(upObj);
upTipCell:Exit();
nowTipCell:Exit();
end
return hideFunc;
end
--------------------------------------------------------------------------------
function FunctionDialogEvent._SetEventDialogEvent(npcInfo, eventParam, ignoreConfirm)
local optCfg,param = eventParam[1], eventParam[2];
local result;
if(optCfg.FuncType)then
local func = FunctionDialogEvent.Me():GetFuncByConfig(optCfg.FuncType);
if(func)then
local eventResult, confirmMsgParam = func(param, npcInfo);
if(not ignoreConfirm)then
if(confirmMsgParam)then
local confirm_confirmFunc = function ()
FunctionDialogEvent._SetEventDialogEvent(npcInfo, eventParam, true)
end
MsgManager.ConfirmMsgByID(confirmMsgParam.id, confirm_confirmFunc, nil, nil, unpack(confirmMsgParam.param))
return true;
end
if(eventResult == FunctionDialogEvent.EventResult_Type.Result_Wait)then
return true;
elseif(eventResult == FunctionDialogEvent.EventResult_Type.Result_Close)then
return false;
end
end
result = optCfg[eventResult] or optCfg.Result1;
end
else
result = optCfg.Result1;
end
if(result)then
if(result.NextDialog)then
FunctionDialogEvent.Me():SetEventDialog(result.NextDialog, param, npcInfo);
elseif(result.DialogEventType)then
FunctionDialogEvent.SetDialogEventEnter( result.DialogEventType, npcInfo )
return true
end
end
end
function FunctionDialogEvent:SetEventDialog(dialogId, param, npcInfo)
local viewdata = { viewname = "DialogView" };
local dcfg = EventDialog[dialogId];
if(not dcfg)then
return;
end
local text = dcfg.DialogText;
for key,func in pairs(self.paramaMap)do
if(string.find(text, key))then
local replaceStr = func(param, npcInfo);
text = string.gsub(text, key, replaceStr);
end
end
viewdata.dialoglist = {text};
local optionIds = dcfg.Option;
if(optionIds)then
local addfunc = {};
for i=1,#optionIds do
local optId = optionIds[i];
local optCfg = EventDialogOption[optId];
if(optCfg)then
local func = {};
func.NameZh = optCfg.Name;
func.event = FunctionDialogEvent._SetEventDialogEvent;
func.eventParam = {optCfg, param};
table.insert(addfunc, func);
end
end
viewdata.addfunc = addfunc;
end
viewdata.npcinfo = npcInfo;
if(dcfg.ShowEvent)then
viewdata.midShowFunc = self.showEventMap[dcfg.ShowEvent];
viewdata.midShowFuncParam = param;
end
GameFacade.Instance:sendNotification(UIEvent.ShowUI, viewdata);
end
-----------------------------------------有時間優化--------------------------------------------------------
function FunctionDialogEvent.SetDialogEventEnter( type, npcInfo )
FunctionDialogEvent.Me().npcguid = npcInfo.data.id;
if(type and Func_Type_Map[type])then
Func_Type_Map[type](npcInfo);
end
end
-- equip Replace begin
function FunctionDialogEvent._DoReplaceOptEvent(npcInfo, eventParam)
local siteEquip = _BagProxy.roleEquip:GetEquipBySite(eventParam[1]);
if(eventParam[2])then
if(not siteEquip or not siteEquip.equipInfo.equipData.SubstituteID )then
siteEquip = _BagProxy.roleEquip:GetEquipBySite(eventParam[2]);
end
end
local param = { itemData = siteEquip };
if(siteEquip)then
if(siteEquip.equipInfo.equipData.SubstituteID)then
FunctionDialogEvent.Me():SetEventDialog(51, param, npcInfo)
else
FunctionDialogEvent.Me():SetEventDialog(52, param, npcInfo)
end
else
FunctionDialogEvent.Me():SetEventDialog(2, param, npcInfo)
end
end
function FunctionDialogEvent.SetEquipReplace( npcInfo )
local replaceSites = {};
local npcfunction = npcInfo.data.staticData.NpcFunction;
local replaceFunc = npcfunction and npcfunction[1];
if(not replaceFunc)then
return;
end
local parts, partsStr = replaceFunc.param, "";
if(not parts)then
return;
end
local addfunc = {};
for i=1,#parts do
local part = parts[i];
local partConfig = GameConfig.EquipParts[part];
local event = {};
event.NameZh = partConfig.name..ZhString.FunctionDialogEvent_Replace;
event.event = FunctionDialogEvent._DoReplaceOptEvent;
event.eventParam = partConfig.site;
table.insert(addfunc, event);
partsStr = partsStr..partConfig.name;
if(i<#parts)then
partsStr = partsStr.."、";
end
end
local viewdata = {
viewname = "DialogView",
npcinfo = npcInfo,
};
local dialogText = "";
if(#addfunc > 0)then
dialogText = EventDialog[1].DialogText;
else
dialogText = EventDialog[2].DialogText;
end
dialogText = string.format(dialogText, partsStr);
viewdata.dialoglist = { dialogText };
viewdata.addfunc = addfunc;
GameFacade.Instance:sendNotification(UIEvent.ShowUI, viewdata);
end
-- equip Replace end
-- equip Upgrade begin
function FunctionDialogEvent.HelpCheckCanUpGradeEquip(npcInfo, item)
if(not item or not npcInfo)then
return false;
end
local equipInfo = item.equipInfo;
if(not equipInfo.upgradeData)then
return false;
end
if(equipInfo.equiplv > equipInfo.upgrade_MaxLv)then
return false;
end
if(equipInfo.equiplv == equipInfo.upgrade_MaxLv)then
if(equipInfo.upgradeData.Product == nil)then
return false;
end
end
return equipInfo.upgradeData.NpcId == npcInfo.data.staticData.id;
end
function FunctionDialogEvent._DoEquipUpgradeOpt(npcInfo, eventParam)
local npcData = npcInfo.data.staticData;
local haveUpgradeEquip = false;
local siteEquip = _BagProxy.roleEquip:GetEquipBySite(eventParam[1]);
if(not FunctionDialogEvent.HelpCheckCanUpGradeEquip(npcInfo, siteEquip))then
if(eventParam[2])then
siteEquip = _BagProxy.roleEquip:GetEquipBySite(eventParam[2]);
end
end
if(siteEquip)then
local param = { itemData = siteEquip };
if(FunctionDialogEvent.HelpCheckCanUpGradeEquip(npcInfo, siteEquip))then
FunctionDialogEvent.Me():SetEventDialog(61, param, npcInfo)
else
FunctionDialogEvent.Me():SetEventDialog(62, param, npcInfo)
end
else
FunctionDialogEvent.Me():SetEventDialog(60, nil, npcInfo)
end
end
function FunctionDialogEvent.SetEquipUpgrade( npcInfo )
local npcfunction = npcInfo.data.staticData.NpcFunction;
local upgradeFunc = npcfunction and npcfunction[1];
local parts = upgradeFunc.param;
if(not parts)then
return;
end
local addfunc = {};
for i=1,#parts do
local part = parts[i];
local partConfig = GameConfig.EquipParts[part];
local event = {};
event.NameZh = partConfig.name..ZhString.FunctionDialogEvent_Upgrade;
event.event = FunctionDialogEvent._DoEquipUpgradeOpt;
event.eventParam = partConfig.site;
table.insert(addfunc, event);
end
local viewdata = {
viewname = "DialogView",
dialoglist = { EventDialog[3].DialogText },
npcinfo = npcInfo,
addfunc = addfunc,
};
GameFacade.Instance:sendNotification(UIEvent.ShowUI, viewdata);
end
-- equip Upgrade end
function FunctionDialogEvent.UpJobLevel( npcInfo )
local dialogId;
helplog("UpJobLevel", MyselfProxy.Instance:HasJobBreak());
if(MyselfProxy.Instance:HasJobBreak())then
dialogId = 81;
else
dialogId = 80;
end
FunctionDialogEvent.Me():SetEventDialog(dialogId, nil, npcInfo)
end
function FunctionDialogEvent.SetDialogGoddessOfferDead( npcInfo )
local curDeadLv = Game.Myself.data.userdata:Get(UDEnum.DEADLV) or 0
local dialogId = curDeadLv < GameConfig.Dead.max_deadlv and 90 or 95
FunctionDialogEvent.Me():SetEventDialog(dialogId, nil, npcInfo)
end