Merge branch 'master_develop' of http://60.1.1.230/gaoxin/JL_Client into master_develop

dev_chengFeng
wangzhenxing 2020-07-23 11:34:22 +09:00
commit 228d2da247
42 changed files with 412 additions and 179 deletions

Binary file not shown.

View File

@ -1,29 +1,113 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<Objective-C-extensions>
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="cpp" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
<codeStyleSettings language="XML">
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

View File

@ -3,6 +3,9 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<compositeConfiguration>
<compositeBuild compositeDefinitionSource="SCRIPT" />
</compositeConfiguration>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
@ -12,6 +15,7 @@
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="testRunner" value="PLATFORM" />
</GradleProjectSettings>
</option>
</component>

View File

@ -5,7 +5,7 @@
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="myNullables">
<value>
<list size="7">
<list size="12">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
@ -13,23 +13,33 @@
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
<item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
<item index="7" class="java.lang.String" itemvalue="android.annotation.Nullable" />
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
<item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
<item index="11" class="java.lang.String" itemvalue="com.android.annotations.Nullable" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="6">
<list size="11">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
<item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
<item index="6" class="java.lang.String" itemvalue="android.annotation.NonNull" />
<item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
<item index="10" class="java.lang.String" itemvalue="com.android.annotations.NonNull" />
</list>
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

View File

@ -182,7 +182,11 @@ public class MhtActivity extends IUnityPlayerActivity {
// 调起登录
public void Login() {
PSDKUser.getInstance().login(MhtActivity.this);
MhtActivity.this.runOnUiThread(new Runnable() {
public void run() {
PSDKUser.getInstance().login(MhtActivity.this);
}
});
}
public void SwitchLogin() {
if (PSDKUser.getInstance().isSupport("switchLogin")) {
@ -248,25 +252,30 @@ public class MhtActivity extends IUnityPlayerActivity {
final String extension){
Map<String, String> map2 = new HashMap<>();
//必传
// map2.put("consumerId", roleID);//用户ID
// map2.put("consumerName", roleName);//玩家昵称
map2.put("mhtCurrency", String.valueOf(coinNum));//充值50元宝(数量)
map2.put("vipLevel", vip);// vip等级
map2.put("playerName",guildlD);// 工会,帮派
map2.put("roleName", roleName);// 角色名称
map2.put("roleId", roleID);// 角色ID
map2.put("roleLevel", String.valueOf(roleLevel));//用户等级
///////////////////以下是订单参数////////////////////////
map2.put("orderDec", productDesc);//订单描述(必)
map2.put("amount", String.valueOf(price));// 购买金额(必)//以分为单位
map2.put("balance", "100");// 用户余额
map2.put("goodDec", productName);//商品描述
map2.put("count", String.valueOf(buyNum));//商品数量
map2.put("goodsId", productId);//商品编号(三星必传)
map2.put("ext", extension);//透传 传递给sdk sdk传递给后端
PSDKPay.getInstance().pay(MhtActivity.this, map2);
MhtActivity.this.runOnUiThread(new Runnable() {
public void run() {
Map<String, String> map2 = new HashMap<>();
//必传
// map2.put("consumerId", roleID);//用户ID
// map2.put("consumerName", roleName);//玩家昵称
map2.put("mhtCurrency", String.valueOf(coinNum));//充值50元宝(数量)
map2.put("vipLevel", vip);// vip等级
map2.put("playerName",guildlD);// 工会,帮派
map2.put("roleName", roleName);// 角色名称
map2.put("roleId", roleID);// 角色ID
map2.put("roleLevel", String.valueOf(roleLevel));//用户等级
///////////////////以下是订单参数////////////////////////
map2.put("orderDec", productDesc);//订单描述(必)
map2.put("amount", String.valueOf(price));// 购买金额(必)//以分为单位
map2.put("balance", "100");// 用户余额
map2.put("goodDec", productName);//商品描述
map2.put("count", String.valueOf(buyNum));//商品数量
map2.put("goodsId", productId);//商品编号(三星必传)
map2.put("ext", extension);//透传 传递给sdk sdk传递给后端
PSDKPay.getInstance().pay(MhtActivity.this, map2);
}
});
}

View File

@ -311,7 +311,7 @@ MonoBehaviour:
tokens:
- appid: debug-appid
serverUrl: http://thinkingdata.18183g.com
mode: 2
mode: 1
timeZone: 0
timeZoneId:
--- !u!1 &3471622135844523394

View File

@ -6864,7 +6864,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &2911701139505363764
RectTransform:
m_ObjectHideFlags: 0
@ -6882,7 +6882,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: -274.2, y: -871.99994}
m_AnchoredPosition: {x: -272.7, y: -871.99994}
m_SizeDelta: {x: 295.63, y: 84.151}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2597305330074143555
@ -13129,7 +13129,7 @@ ParticleSystem:
--- !u!199 &1083645269967354099
ParticleSystemRenderer:
serializedVersion: 6
m_ObjectHideFlags: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
@ -19940,7 +19940,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: -872}
m_AnchoredPosition: {x: 268.78, y: -872}
m_SizeDelta: {x: 295.63, y: 84.151}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3648998059851915409
@ -26251,7 +26251,7 @@ ParticleSystem:
--- !u!199 &8451515492985319499
ParticleSystemRenderer:
serializedVersion: 6
m_ObjectHideFlags: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
@ -32511,7 +32511,7 @@ ParticleSystem:
--- !u!199 &6598447891554960103
ParticleSystemRenderer:
serializedVersion: 6
m_ObjectHideFlags: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
@ -43665,7 +43665,7 @@ ParticleSystem:
--- !u!199 &5882379970318000206
ParticleSystemRenderer:
serializedVersion: 6
m_ObjectHideFlags: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}

View File

@ -1334,6 +1334,7 @@ HELP_TYPE = {
TimeLimitedCall=57,-- 限时召唤
TreasureOfHeaven=58,--天宫秘宝
QianKunBox=59,--乾坤宝囊
TreasureResolve=60, --宝物分解
}
NumToComplexFont = {

View File

@ -83,6 +83,7 @@ FIGHTTEAMINFO_FIGHTUNITLIST_FIELD = protobuf.FieldDescriptor();
FIGHTTEAMINFO_TEAMSKILLLIST_FIELD = protobuf.FieldDescriptor();
FIGHTTEAMINFO_TEAMPASSIVELIST_FIELD = protobuf.FieldDescriptor();
FIGHTTEAMINFO_SPECIALPASSIVE_FIELD = protobuf.FieldDescriptor();
FIGHTTEAMINFO_FIRSTCAMP_FIELD = protobuf.FieldDescriptor();
EVENTBEHAVIORVALUES = protobuf.Descriptor();
EVENTBEHAVIORVALUES_BEHAVIORVALUES_FIELD = protobuf.FieldDescriptor();
EVENTBEHAVIORCOMMON = protobuf.Descriptor();
@ -1328,11 +1329,21 @@ FIGHTTEAMINFO_SPECIALPASSIVE_FIELD.default_value = ""
FIGHTTEAMINFO_SPECIALPASSIVE_FIELD.type = 9
FIGHTTEAMINFO_SPECIALPASSIVE_FIELD.cpp_type = 9
FIGHTTEAMINFO_FIRSTCAMP_FIELD.name = "firstCamp"
FIGHTTEAMINFO_FIRSTCAMP_FIELD.full_name = ".com.ljsd.jieling.protocols.FightTeamInfo.firstCamp"
FIGHTTEAMINFO_FIRSTCAMP_FIELD.number = 5
FIGHTTEAMINFO_FIRSTCAMP_FIELD.index = 4
FIGHTTEAMINFO_FIRSTCAMP_FIELD.label = 1
FIGHTTEAMINFO_FIRSTCAMP_FIELD.has_default_value = false
FIGHTTEAMINFO_FIRSTCAMP_FIELD.default_value = 0
FIGHTTEAMINFO_FIRSTCAMP_FIELD.type = 5
FIGHTTEAMINFO_FIRSTCAMP_FIELD.cpp_type = 1
FIGHTTEAMINFO.name = "FightTeamInfo"
FIGHTTEAMINFO.full_name = ".com.ljsd.jieling.protocols.FightTeamInfo"
FIGHTTEAMINFO.nested_types = {}
FIGHTTEAMINFO.enum_types = {}
FIGHTTEAMINFO.fields = {FIGHTTEAMINFO_FIGHTUNITLIST_FIELD, FIGHTTEAMINFO_TEAMSKILLLIST_FIELD, FIGHTTEAMINFO_TEAMPASSIVELIST_FIELD, FIGHTTEAMINFO_SPECIALPASSIVE_FIELD}
FIGHTTEAMINFO.fields = {FIGHTTEAMINFO_FIGHTUNITLIST_FIELD, FIGHTTEAMINFO_TEAMSKILLLIST_FIELD, FIGHTTEAMINFO_TEAMPASSIVELIST_FIELD, FIGHTTEAMINFO_SPECIALPASSIVE_FIELD, FIGHTTEAMINFO_FIRSTCAMP_FIELD}
FIGHTTEAMINFO.is_extendable = false
FIGHTTEAMINFO.extensions = {}
EVENTBEHAVIORVALUES_BEHAVIORVALUES_FIELD.name = "behaviorValues"

View File

@ -214,10 +214,14 @@ end
---参数2 isFightPlayer 0和怪物对战 1和玩家对战
function this.GetBattleServerData(msg, isFightPlayer)
local fightData = {
playerData = { teamSkill = {}, teamPassive = {} },
enemyData = {},
playerData = { teamSkill = {}, teamPassive = {}, firstCamp = 0, },
enemyData = { },
}
isFightPlayer = isFightPlayer == 1
-- 判断是否先手
fightData.playerData.firstCamp = msg.fightData.heroFightInfos.firstCamp or 0
--
local data = msg.fightData.heroFightInfos
for i = 1, #data.fightUnitList do
local rid = tonumber(data.fightUnitList[i].unitId)
@ -277,10 +281,19 @@ function this.GetBattleServerData(msg, isFightPlayer)
fightData.playerData.outData = data.specialPassive
LogRed(Language[10221]..data.specialPassive)
-- 敌方
--
for i = 1, #msg.fightData.monsterList do
local data2 = msg.fightData.monsterList[i]
fightData.enemyData[i] = { teamSkill = {}, teamPassive = {} }
fightData.enemyData[i] = { teamSkill = {}, teamPassive = {} , firstCamp = 0, }
-- 判断是否先手
fightData.enemyData[i].firstCamp = data2.firstCamp or 0
--
for j = 1, #data2.fightUnitList do
local skills, propertys, role
if not isFightPlayer then

View File

@ -100,8 +100,25 @@ function this.WriteFile()
os.date("%H"),
os.date("%M"),
os.date("%S"))
local file = io.open("BattleRecord/log-"..time..".txt", "a")
local file
local platform
-- linux
if not file then
file = io.open("../luafight/BattleRecord/log-"..time..".txt", "a")
platform = "Linux"
end
-- local window server
if not file then
file = io.open("luafight/BattleRecord/log-"..time..".txt", "a")
platform = "Local Windows Server"
end
-- local
if not file then
file = io.open("BattleRecord/log-"..time..".txt", "a")
platform = "Local"
end
file:write(platform..":\n\n\n")
for i = 1, #this.logList do
file:write(this.logList[i].."\n")
end

View File

@ -84,6 +84,20 @@ function BattleLogic.Init(data, optionData, maxRound)
BattleLogManager.Init(fightData)
end
-- 检测先手阵营
function BattleLogic.CheckFirstCamp()
-- 默认我方先手
BattleLogic.FirstCamp = 0
-- 数据不存在时,兼容老战斗数据
if not fightData.playerData.firstCamp and not fightData.enemyData[BattleLogic.CurOrder].firstCamp then
return
end
-- 敌方先手
if fightData.playerData.firstCamp == 0 and fightData.enemyData[BattleLogic.CurOrder].firstCamp == 1 then
BattleLogic.FirstCamp = 1
end
end
function BattleLogic.StartOrder()
--
BattleLogic.CurOrder = BattleLogic.CurOrder + 1
@ -104,7 +118,8 @@ function BattleLogic.StartOrder()
RoleManager.AddRole(orderList[i], orderList[i].position)
end
end
-- 检测先后手
BattleLogic.CheckFirstCamp()
-- 开始战斗,延时一帧执行,避免战斗还没开始就释放了技能
BattleLogic.TurnRoundNextFrame()
end
@ -158,7 +173,7 @@ function BattleLogic.TurnRound(debugTurn)
-- 第一次进入 或者 本轮结束 初始化流程状态
if CurRound == 0 or (CurSkillPos[0] == 6 and CurSkillPos[1] == 6) then
CurRound = CurRound + 1
CurCamp = 0
CurCamp = BattleLogic.FirstCamp -- 判断先手阵营
CurSkillPos[0] = 0
CurSkillPos[1] = 0
LogGreen(Language[10228]..CurRound)

View File

@ -16,7 +16,6 @@ local curNeedEquip = {}
local curSelectEquip = {}
local curSelectGO
local materidaIsCan = false
local bagPosEquips = {}
local tabs={}
function this:InitComponent(gameObject)
this.tabBox = Util.GetGameObject(gameObject, "CompoundPanel_Treasure/TabBox")
@ -90,8 +89,6 @@ function this.TreasureBtnClick(_btn,_curIndex)
end
--显示当前阵营的宝物
function this.ShowCurrPosTreasures()
bagPosEquips = EquipManager.GetEquipCompoundDataByEquipPosition1(curIndex)
--LogError("curIndex "..curIndex)
local equipDatas = EquipTreasureManager.GetAllTabletTreasuresByRace(curIndex)
if equipDatas and #equipDatas > 0 then
curSelectEquip = equipDatas[1]
@ -225,108 +222,116 @@ function this.Compound()
end)
end
--一种装备一种装备的循环检测 金币能合成的数量 与 背包装备能合成的数量 取最小值 然后扣除临时消耗道具
--最后所有装备存在curPosEquips 与 之前背包 bagPosEquips 作比较 看合成了什么装备 删除了什么装备 和计算消耗材料
function this.AutoCompound(_position)
--表数据
local curPosEquips = EquipTreasureManager.GetAllTabletTreasuresByRaceAndType(_position)--,curSelectEquip.equipType)
local shengGoldNum = 0
--实际数据
local curPosEquipsData = EquipTreasureManager.GeEquipTreasureDatas(_position)
local totalGoldNum = 0
--jwelConfig.RankupResourcess对应所有背包数据
local bagNums = {}
--消耗材料对应所有背包数据
--循环宝物的表消耗道具,得出对应的背包数据
for i = 1, #curPosEquips do
local equipData=curPosEquips[i]
local equipData = curPosEquips[i]
for j = 1, #equipData.costCoin do
bagNums[equipData.costCoin[j][1]] = BagManager.GetItemCountById(equipData.costCoin[j][1])
if not bagNums[equipData.costCoin[j][1]] then
bagNums[equipData.costCoin[j][1]] = BagManager.GetItemCountById(equipData.costCoin[j][1])
end
end
end
--一种装备一种装备的循环检测 金币能合成的数量 与 背包装备能合成的数量 取最小值 然后扣除临时消耗道具
--最后所有装备存在curPosEquips 与 之前背包 bagPosEquips 作比较 看合成了什么装备 删除了什么装备 和计算消耗材料
local curRewards = {}
--上一个便利的宝物的id和可合成数量
local lastEquipId=0
local lastEquipNum=0
--便利符合条件的静态宝物数据
-- --LogGreen(LengthOfTable(bagNums))
-- for n,m in pairs(bagNums) do
-- --LogGreen("bagNums id:"..n.." num:"..m)
-- end
--循环宝物的表数据,得到可以合成的宝物数量
for i = 1, #curPosEquips do
local equipData = curPosEquips[i]
--从表消耗道具得出可以合成的数量
local materialEndNum = -1
local materialNums = {}
local equipData=curPosEquips[i]
--循环宝物的表消耗数据,得出对应的消耗数据
for j = 1, #equipData.costCoin do
local itemId = equipData.costCoin[j][1]
materialNums[itemId] = equipData.costCoin[j][2]
local curItmeCompoundNums = math.floor(bagNums[itemId] / equipData.costCoin[j][2])
--可以合成的宝物数量
local config = ConfigManager.TryGetConfigDataByThreeKey(ConfigName.JewelConfig,"Location",equipData.equipType,"Level",equipData.quantity-1,"Race",_position)
local curItmeCompoundNums = math.floor(bagNums[config.RankupResources[j][1]] / config.RankupResources[j][2])
if materialEndNum == -1 then
materialEndNum = curItmeCompoundNums
elseif materialEndNum > curItmeCompoundNums then
materialEndNum = curItmeCompoundNums
end
end
if i <= #curPosEquips and materialEndNum>0 then
--可合成当前装备的数量
local materialHaveNum= LengthOfTable(EquipTreasureManager.GetBagCompoundEquipDatasByequipSData(equipData))
--获取可以合成几个装备
local curQuEquipCompoundNum = math.floor(materialHaveNum/equipData.quaUpCount)
--加上上一个品质合成的装备
local nextCompoundNum=math.floor((materialHaveNum+lastEquipNum)/equipData.quaUpCount)
--如果加上一个品质合成的宝物又能多合成x个,算出多合成宝物需要消耗几个之前合成的,减去
if nextCompoundNum>curQuEquipCompoundNum then
local costNum=math.abs(materialHaveNum-(nextCompoundNum*equipData.quaUpCount))
if curRewards[lastEquipId] then
local haveNum=curRewards[lastEquipId]
if haveNum<=costNum then
curRewards[lastEquipId]=nil
else
--现在拥有的数量-提升消耗的-本来就有的=最终增加的
local num=haveNum-costNum-materialHaveNum
if num>0 then
curRewards[lastEquipId]=num
else
curRewards[lastEquipId]=nil
end
end
end
curQuEquipCompoundNum=nextCompoundNum
end
--LogGreen("materialEndNum:"..materialEndNum)
if materialEndNum > 0 then
--可消耗宝物的数量 (没有强化,没有精炼,没有装备,同样的位置,品级-1
local materialHaveNum= curPosEquipsData[equipData.equipType][equipData.quantity-1]
--LogGreen("equipData.quantity-1:".. equipData.quantity - 1 .."num:".. materialHaveNum)
--可以合成的
local nextCompoundNum = math.floor(materialHaveNum / equipData.quaUpCount)
--LogGreen("可以合成:".. nextCompoundNum .."个品质为"..equipData.quantity.."的宝器")
--消耗物品可以合成的和材料合成的作比较,取最小值
local endCompoundNum = materialEndNum > curQuEquipCompoundNum and curQuEquipCompoundNum or materialEndNum
--LogError("endCompoundNum "..endCompoundNum)
for itemId, num in pairs(materialNums) do
bagNums[itemId] = bagNums[itemId] - endCompoundNum * num
shengGoldNum = shengGoldNum + endCompoundNum * num
end
local endCompoundNum = materialEndNum > nextCompoundNum and nextCompoundNum or materialEndNum
--LogGreen("结合材料可以合成:".. endCompoundNum .."个品质为"..equipData.quantity.."的宝器")
--如果当前品质宝物可以合成就把当前品质的id及合成的数量储存判断下一个品质加上当前合成的是否能多合成
if endCompoundNum>0 then
lastEquipId=equipData.Id
lastEquipNum=endCompoundNum
--table.insert(curRewards,{equipData.Id,endCompoundNum})
curRewards[equipData.Id]=endCompoundNum
else
lastEquipId=0
lastEquipNum=0
if endCompoundNum > 0 then
local config = ConfigManager.TryGetConfigDataByThreeKey(ConfigName.JewelConfig,"Location",equipData.equipType,"Level",equipData.quantity-1,"Race",_position)
if not config then
LogRed("Location:".. equipData.equipType .." Level".. equipData.quantity-1 .." Race".. _position)
else
for j = 1, #config.RankupResources do
bagNums[config.RankupResources[j][1]] =
bagNums[config.RankupResources[j][1]] - endCompoundNum * config.RankupResources[j][2]
totalGoldNum = totalGoldNum + endCompoundNum * config.RankupResources[j][2]
--LogGreen("合成:".. endCompoundNum .."个品质为"..equipData.quantity.."的宝器需要消耗"..config.RankupResources[j][1].." "..endCompoundNum * config.RankupResources[j][2])
--LogGreen("bagNums[config.RankupResources[j][1]]:"..bagNums[config.RankupResources[j][1]])
end
--消耗之后剩余的数量
--LogGreen("消耗curPosEquipsData[equipData.equipType][equipData.quantity - 1]之前:"..curPosEquipsData[equipData.equipType][equipData.quantity - 1])
curPosEquipsData[equipData.equipType][equipData.quantity - 1] = materialHaveNum - (endCompoundNum * equipData.quaUpCount)
--LogGreen("合成:".. endCompoundNum .."个品质为"..equipData.quantity.."的宝器需要消耗".. equipData.quantity - 1 .." "..endCompoundNum * equipData.quaUpCount)
--LogGreen("消耗curPosEquipsData[equipData.equipType][equipData.quantity - 1]之后:"..curPosEquipsData[equipData.equipType][equipData.quantity - 1])
--LogGreen("合成curPosEquipsData[equipData.equipType][equipData.quantity]之前:"..curPosEquipsData[equipData.equipType][equipData.quantity])
curPosEquipsData[equipData.equipType][equipData.quantity] = curPosEquipsData[equipData.equipType][equipData.quantity] + endCompoundNum
--LogGreen("合成curPosEquipsData[equipData.equipType][equipData.quantity]之后:"..curPosEquipsData[equipData.equipType][equipData.quantity])
end
end
end
end
local origiData = EquipTreasureManager.GeEquipTreasureDatas(_position)
local endReward={}
for i, v in pairs(curRewards) do
table.insert(endReward,{i,v})
for i, v in pairs(curPosEquipsData) do
for n, m in pairs(v) do
--LogGreen("m:"..m.." origiData[i][n]:"..origiData[i][n])
if m > origiData[i][n] then
local config = ConfigManager.TryGetConfigDataByThreeKey(ConfigName.JewelConfig,"Location",i,"Level",n,"Race",_position)
--LogGreen("config.id:"..config.Id.." num:"..m - origiData[i][n])
table.insert(endReward,{config.Id,m - origiData[i][n]})
end
end
end
if shengGoldNum <= 0 then
--if curSelectEquip.equipType==1 then
-- PopupTipPanel.ShowTip("无可合成魂宝或金币不足!")
--else
-- PopupTipPanel.ShowTip("无可合成灵宝或金币不足!")
--end
PopupTipPanel.ShowTip(Language[10435])
if LengthOfTable(endReward) < 1 then
PopupTipPanel.ShowTip("消耗材料不足")
return
end
--BagManager.GetItemCountById(14) -
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.TreasureCompound,
shengGoldNum,endReward,function ()
NetManager.ComplexTreasureRequest(curSelectEquip.equipType,curIndex,0,0, function(msg)
for i = 1, #msg.equipIds do
EquipTreasureManager.RemoveTreasureByIdDyn(msg.equipIds[i])
end
UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function()
this.ShowCurrPosTreasures()
end)
end)
--LogGreen("totalGoldNum:"..totalGoldNum)
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.TreasureCompound,totalGoldNum,endReward,function ()
NetManager.ComplexTreasureRequest(curSelectEquip.equipType,curIndex,0,0, function(msg)
for i = 1, #msg.equipIds do
EquipTreasureManager.RemoveTreasureByIdDyn(msg.equipIds[i])
end
UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function()
this.ShowCurrPosTreasures()
end)
end)
end)
end
-- tab节点显示自定义

View File

@ -5,7 +5,7 @@ local this = SaveFormation
this.IsNeedChangeFormation = true
--- 逻辑初始化
function this.Init(root)
function this.Init(root,...)
this.root = root
this.root.bg:SetActive(true)
this.root.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main })
@ -13,10 +13,12 @@ function this.Init(root)
this.root.btn_2:SetActive(true)
this.root.btn_1_lab.text=Language[10743]
this.root.btn_2_lab.text=Language[10726]
local temp = {...}
this.teamId = temp[1]
end
--- 获取需要显示的编队id
function this.GetFormationIndex()
return FormationManager.curFormationIndex
return this.teamId and this.teamId or FormationManager.curFormationIndex
end
--- 关闭界面事件
@ -30,12 +32,14 @@ function this.On_Btn1_Click()
end
function this.On_Btn2_Click()
if this.root.order>=1 then
--保存编队
FormationManager.RefreshFormation(this.root.curFormationIndex, this.root.choosedList,
FormationManager.formationList[this.root.curFormationIndex].teamPokemonInfos)
Game.GlobalEvent:DispatchEvent(GameEvent.Formation.OnFormationChange) --主线保存编队显示战力变化
PopupTipPanel.ShowTip(Language[10713])
this.root:ClosePanel()
FormationManager.RefreshFormation(this.root.curFormationIndex, this.root.choosedList,
FormationManager.formationList[this.root.curFormationIndex].teamPokemonInfos)
PopupTipPanel.ShowTip(Language[10713])
this.root:ClosePanel()
if this.teamId and this.teamId == FormationTypeDef.EXPEDITION then
else
Game.GlobalEvent:DispatchEvent(GameEvent.Formation.OnFormationChange) --主线保存编队显示战力变化
end
else
PopupTipPanel.ShowTip(string.format(Language[10701], 1))
end

View File

@ -271,7 +271,7 @@ function this.GetAllHeroDataMsinusUpWar(_sortTypeId,type) --0全部 1-6属性 7
local isFormations = {}
for n, w in pairs(FormationManager.formationList) do
for m = 1, #w.teamHeroInfos do
if v.dynamicId == w.teamHeroInfos[m].heroId then
if w.teamHeroInfos[m] and v.dynamicId == w.teamHeroInfos[m].heroId then
--队伍名称 队伍id
local isFormationStr = ""
local curFormationId = 0
@ -367,7 +367,7 @@ function this.GetHeroFormationStr2(teamId)
return ""
end
--删除本地英雄信息
function this.DeleteHeroDatas(heroDIds)
function this.DeleteHeroDatas(heroDIds,index)
for i = 1, #heroDIds do
if heroDatas[heroDIds[i]] then
--清除英雄装备上挂载的英雄id
@ -2784,4 +2784,11 @@ function this.GetIsShowTalismanRedPoint(curHeroData)
end
return true
end
function this.ResetHero(dynamicloadId)
if heroDatas[dynamicloadId] then
heroDatas[dynamicloadId].lv = 1
heroDatas[dynamicloadId].breakId = 0
end
end
return this

View File

@ -23,7 +23,7 @@ function this.Initialize()
SDKMgr.onLoginCallback = function(loginResp)
Game.GlobalEvent:DispatchEvent(GameEvent.LoginSuccess.OnLoginSuccess,loginResp)
ThinkingAnalyticsManager.Track("app_login")
-- ThinkingAnalyticsManager.Track("app_login")
end
SDKMgr.onSwitchAccountCallback = function(resp)

View File

@ -116,7 +116,7 @@ function this:AddListener()
Game.GlobalEvent:AddEvent(Protocal.Connect, this.OnConnect)
Game.GlobalEvent:AddEvent(Protocal.Disconnect, this.OnDisconnect)
Game.GlobalEvent:AddEvent(GameEvent.LoginSuccess.OnLoginSuccess, this.RefreshLoginStatus)
Game.GlobalEvent:AddEvent(GameEvent.LoginSuccess.OnLogout, this.RefreshLoginStatus)
Game.GlobalEvent:AddEvent(GameEvent.LoginSuccess.OnLogout, this.OnLogout)
end
--移除事件监听(用于子类重写)
@ -125,11 +125,12 @@ function this:RemoveListener()
Game.GlobalEvent:RemoveEvent(Protocal.Connect, this.OnConnect)
Game.GlobalEvent:RemoveEvent(Protocal.Disconnect, this.OnDisconnect)
Game.GlobalEvent:RemoveEvent(GameEvent.LoginSuccess.OnLoginSuccess, this.RefreshLoginStatus)
Game.GlobalEvent:RemoveEvent(GameEvent.LoginSuccess.OnLogout, this.RefreshLoginStatus)
Game.GlobalEvent:RemoveEvent(GameEvent.LoginSuccess.OnLogout, this.OnLogout)
end
function this:OnLogout()
if IsSDKLogin then
this.SetLoginPart(false)
this.sdkLoginBtn:SetActive(false)
this.inputField.gameObject:SetActive(false)
this.UserBtn:SetActive(false)
@ -172,6 +173,7 @@ function this:OnOpen(...)
end
if IsSDKLogin then
this.SetLoginPart(false)
this.sdkLoginBtn:SetActive(false)
this.inputField.gameObject:SetActive(false)
this.UserBtn:SetActive(false)

View File

@ -424,6 +424,11 @@ function this.GuildRefreshDeathPosStatus(buffer)
msg:ParseFromString(data)
Log(Language[11410]..msg.status)
DeathPosManager.status=msg.status
if msg.status == 1 then
DeathPosManager.battleTime=DeathPosManager.maxBattleTime
else
DeathPosManager.battleTime = 0
end
Game.GlobalEvent:DispatchEvent(GameEvent.Guild.RefreshDeathPosStatus)
end

View File

@ -41,7 +41,7 @@ function this.LoginRequest(openId, pt_pid, pt_gid, func)
data.operator_s = AppConst.isSDK and AndroidDeviceInfo.Instance:GetOperatorName() or ""
data.network_s = AppConst.isSDK and AndroidDeviceInfo.Instance:GetNetworkType() or ""
data.ip_s = AppConst.isSDK and AndroidDeviceInfo.Instance:GetLocalIpAddress() or ""
data.distinct_id = AppConst.isSDK and App.TAMgr:GetDistinctId() or ""
data.distinct_id = AppConst.isSDK and openId or ""
data.openId = openId
data.channel_s = pt_pid.."#"..pt_gid
data.platform_s = AppConst.isSDK and "ADR" or "PC"
@ -65,10 +65,12 @@ function this.LoginRequest(openId, pt_pid, pt_gid, func)
AppConst.Token = msg.newToken
-- 打点
ThinkingAnalyticsManager.Login(openId)
ThinkingAnalyticsManager.SetDistinctId(AppConst.OpenId)
ThinkingAnalyticsManager.SetSuperProperties({
server_id = LoginManager.ServerId,
account = AppConst.OpenId
account = AppConst.OpenId,
["Bundle-id"] = "123",
xx_id = AppConst.isSDK and "ADR" or "PC"
})
TapDBManager.SetUser(openId)
TapDBManager.SetServer(LoginManager.ServerId)
@ -118,6 +120,7 @@ function this.PlayerInfoRequest(func)
end
-- 数据打点
ThinkingAnalyticsManager.Login(PlayerManager.uid)
ThinkingAnalyticsManager.SetSuperProperties({
role_id = PlayerManager.uid,
role_name = PlayerManager.nickName,

View File

@ -121,7 +121,7 @@ function RewardEquipSingleShowPopup:OnShow()
--装备基础信息
LogBlue(equipData.id)
LogBlue(tonumber(equipData.id))
-- LogBlue(tonumber(equipData.id))
local equipConfigData=ConfigManager.GetConfigData(ConfigName.EquipConfig, tonumber(equipData.id))
local itemConfigData=ConfigManager.GetConfigData(ConfigName.ItemConfig, tonumber(equipData.id))
this.btnSure:SetActive(isShowfenjie)

View File

@ -35,11 +35,11 @@ function this:BindEvent()
break
end
NetManager.HeroRetureEvent(data, function(msg)
HeroManager.DeleteHeroDatas({data})
HeroManager.ResetHero(data)
PopupTipPanel.ShowTip("神将归元成功,等级重置为1级")
parent:ClosePanel()
UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop,1,function ()
ResolvePanel.SwitchView(1)
PopupTipPanel.ShowTip(Language[12210])
end,0,nil,nil,1)
end)
end)

View File

@ -33,7 +33,7 @@ end
function this:BindEvent()
Util.AddClick(this.helpBtn,function()
UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.Resolve_Dismantle,this.helpPos.x,this.helpPos.y)
UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.TreasureResolve,this.helpPos.x,this.helpPos.y)
end)
Util.AddClick(this.confirmBtn,function()
if tonumber(LengthOfTable(selectEquipTreasureData))==0 then

View File

@ -100,17 +100,10 @@ function this.GetHeroData(_sortType)
for n=1,#data do
tempHeros[#tempHeros+1]=data[n]
end
--筛选非狗粮Hero
local noDogHeros={}
for k, v in pairs(tempHeros) do
if heroConfig[v.id].RankupConsumeMaterial~=nil then
noDogHeros[#noDogHeros+1]=v
end
end
--根据元素筛选
local heros={}
if noDogHeros and LengthOfTable(noDogHeros)>0 then
for i, v in pairs(noDogHeros) do
if tempHeros and LengthOfTable(tempHeros)>0 then
for i, v in pairs(tempHeros) do
if _sortType ==0 then
table.insert(heros,v)
-- elseif _sortType>=7 then
@ -179,8 +172,14 @@ function this.SingleHeroDataShow(go,_heroData)
local curHeroData =HeroManager.GetSingleHeroData(v.dynamicId)
if not curHeroData then return end
local heroReturnConfig = ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.HeroReturn,"HeroId",curHeroData.id,"Star",curHeroData.breakId)
if not heroReturnConfig then
LogRed("HeroId"..curHeroData.id.."Star"..curHeroData.breakId)
heroUseCount= 50
heroUseItemId = 16
else
heroUseCount= heroReturnConfig.ReturnConsume[1][2]
heroUseItemId = heroReturnConfig.ReturnConsume[1][1]
end
break
end
--持有道具数量
@ -211,6 +210,8 @@ function this.SingleHeroDataShow(go,_heroData)
JumpManager.GoJump(8001)
elseif heroData.isFormations[1] == FormationTypeDef.FORMATION_ENDLESS_MAP then
JumpManager.GoJump(57001)
elseif heroData.isFormations[1] == FormationTypeDef.EXPEDITION then
UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.SAVE_FORMATION,FormationTypeDef.EXPEDITION)
end
end
end)

View File

@ -231,6 +231,33 @@ function this.GetAllTabletTreasuresByRaceAndType(_index, _Location)
end
end
--获取所有可以合成宝物的数据
function this.GeEquipTreasureDatas(_index)
local equips = {}
for i=1, 2 do
if not equips[i] then
equips[i] = {}
end
for j=2, 6 do
equips[i][j] = 0
end
end
for i, v in pairs(allTreasures) do
if v.upHeroDid == "" and v.lv == 0 and v.refineLv == 0 and v.race == _index then
if not equips[v.equipType] then
equips[v.equipType] = {}
end
if not equips[v.equipType][v.quantity] then
equips[v.equipType][v.quantity] = 1
else
equips[v.equipType][v.quantity] = equips[v.equipType][v.quantity] + 1
end
end
end
return equips
end
--获取所有可以合成宝物的数据
function this.GetBagCompoundEquipDatasByequipSData(equipSData)
local equips = {}
@ -247,6 +274,7 @@ function this.GetBagCompoundEquipDatasByequipSData(equipSData)
end
return equips
end
--获取可以合成宝物的数量根据宝物id
function this.GetCanCompoundTreasureNumByTreasureId(_id, _type)
local equips = {}

View File

@ -204,7 +204,8 @@ function ItemView:GetRewardShow(_itemData, effectLayer)
self.starGrid:SetActive(true)
EquipManager.SetEquipStarShow(self.starGrid, _itemData.configData.Id)
Util.AddOnceClick(self.frameBtn, function()
UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup, _itemData.backData,nil,self.isRewardItemPop)
_itemData.id = _itemData.configData.Id
UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup, _itemData,nil,self.isRewardItemPop)
end)
if effectLayer > 0 then
self.UI_Effect_Kuang_JinSe:SetActive(_itemData.configData.Quantity == 5 or _itemData.configData.Quantity == 4)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
keymhthwtest
passwordlingdong

View File

@ -13,7 +13,7 @@ PlayerSettings:
useOnDemandResources: 0
accelerometerFrequency: 60
companyName: Test
productName: "\u6D4B\u8BD5\u5305"
productName: "\u592A\u521D\u884C\u6D4B\u8BD5\u5305"
defaultCursor: {fileID: 0}
cursorHotspot: {x: 0, y: 0}
m_SplashScreenBackgroundColor: {r: 0, g: 0, b: 0, a: 1}
@ -155,7 +155,7 @@ PlayerSettings:
androidSupportedAspectRatio: 1
androidMaxAspectRatio: 2.1
applicationIdentifier:
Android: com.mht.tcxcsb.test
Android: com.mht.tcxcsb.project
Standalone: com.doudou.dwc
Tizen: com.junfine.luaframework
iOS: com.doudou.dwc
@ -251,8 +251,8 @@ PlayerSettings:
AndroidTargetArchitectures: 1
AndroidSplashScreenScale: 2
androidSplashScreen: {fileID: 0}
AndroidKeystoreName:
AndroidKeyaliasName:
AndroidKeystoreName: E:/Git/JL/KeyStore/mhthw_test.keystore
AndroidKeyaliasName: mhthwtest
AndroidBuildApkPerCpuArchitecture: 0
AndroidTVCompatibility: 0
AndroidIsGame: 1

Binary file not shown.