Compare commits
43 Commits
aaa089715d
...
english_me
| Author | SHA1 | Date | |
|---|---|---|---|
| 2af94f26ca | |||
| 7a3bbc10c8 | |||
| e48fdbe323 | |||
| 2e172f2da5 | |||
| 87c222fc2c | |||
| 2d71e95b7d | |||
| 39f69ceb83 | |||
| 4e5e6cfa47 | |||
| fedb39a381 | |||
| 0a5aa15f40 | |||
| ff163b1ca0 | |||
| 6431b219ed | |||
| 6d2319a41d | |||
| 3ee5ce130f | |||
| 07a9d06bdf | |||
| 8c4dca6e50 | |||
| e34388cbca | |||
| 488b78b54b | |||
| a07f22ee1f | |||
| f3107bd17c | |||
| 064cc567cb | |||
| 08414bdf59 | |||
| 1a112cc79e | |||
| f8b004aef7 | |||
| dbdd26c92e | |||
| eb41fd61e9 | |||
| 7c723a17bb | |||
| 428142d08c | |||
| 627e71c34d | |||
| 34d7ae2e98 | |||
| 313b2c19a5 | |||
| 85e7cde16e | |||
| ec4bacca90 | |||
| 9157c06f32 | |||
| 5948f0bab2 | |||
| d4effdd095 | |||
| fe1a4bce00 | |||
| 66ca96c406 | |||
| ade6133d19 | |||
| fbdfa5a67f | |||
| a7d3423bfd | |||
| a768b7a8f8 | |||
| 4de1fa5489 |
15
.vscode/launch.json
vendored
Normal file
15
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Python: Current File",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"console": "integratedTerminal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
|
<!-- xml reconstructed by ValveResourceFormat: https://vrf.steamdb.info/ -->
|
||||||
<root>
|
<root>
|
||||||
<scripts>
|
<scripts>
|
||||||
<include src="s2r://panorama/scripts/custom_game/util.vjs_c" />
|
<include src="s2r://panorama/scripts/custom_game/util.vjs_c" />
|
||||||
</scripts>
|
</scripts>
|
||||||
|
<script><![CDATA[
|
||||||
<script>
|
|
||||||
//GameUI.CustomUIConfig().Config =
|
//GameUI.CustomUIConfig().Config =
|
||||||
//{
|
//{
|
||||||
// game_name: "touhou"
|
// game_name: "touhou"
|
||||||
@@ -33,14 +33,13 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
FindDotaHudElement( "PreGame" ).FindChild( "Header" ).style.visibility = "collapse";
|
FindDotaHudElement( "PreGame" ).FindChild( "Header" ).style.visibility = "collapse";
|
||||||
</script>
|
]]></script>
|
||||||
|
|
||||||
<Panel>
|
<Panel>
|
||||||
<CustomUIElement type="Hud" layoutfile="file://{resources}/layout/custom_game/frames/message/message.xml" />
|
<CustomUIElement type="Hud" layoutfile="s2r://panorama/layout/custom_game/frames/message/message.vxml_c" />
|
||||||
<CustomUIElement type="Hud" layoutfile="file://{resources}/layout/custom_game/dps_panel.xml" />
|
<CustomUIElement type="Hud" layoutfile="s2r://panorama/layout/custom_game/dps_panel.vxml_c" />
|
||||||
<CustomUIElement type="Hud" layoutfile="file://{resources}/layout/custom_game/info.xml" />
|
<CustomUIElement type="Hud" layoutfile="s2r://panorama/layout/custom_game/info.vxml_c" />
|
||||||
<CustomUIElement type="Hud" layoutfile="file://{resources}/layout/custom_game/shop.xml" />
|
<CustomUIElement type="Hud" layoutfile="s2r://panorama/layout/custom_game/shop.vxml_c" />
|
||||||
<CustomUIElement type="EndScreen" layoutfile="file://{resources}/layout/custom_game/end_screen.xml" />
|
<CustomUIElement type="EndScreen" layoutfile="s2r://panorama/layout/custom_game/end_screen.vxml_c" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<!-- xml reconstructed by ValveResourceFormat: https://vrf.steamdb.info/ -->
|
||||||
<root>
|
<root>
|
||||||
<styles>
|
<styles>
|
||||||
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
||||||
@@ -8,9 +9,9 @@
|
|||||||
</scripts>
|
</scripts>
|
||||||
<snippets>
|
<snippets>
|
||||||
<snippet name="Tower">
|
<snippet name="Tower">
|
||||||
<Panel class="Tower" >
|
<Panel class="Tower">
|
||||||
<DOTAItemImage id="Item" itemname="" hittest="false" />
|
<DOTAItemImage id="Item" itemname="" hittest="false" />
|
||||||
<Panel id="DPS_info" >
|
<Panel id="DPS_info">
|
||||||
<Panel id="DPS_bar" />
|
<Panel id="DPS_bar" />
|
||||||
<Label id="DPS" text="" />
|
<Label id="DPS" text="" />
|
||||||
<Label id="DPS_pct" text="%" />
|
<Label id="DPS_pct" text="%" />
|
||||||
@@ -19,14 +20,13 @@
|
|||||||
</snippet>
|
</snippet>
|
||||||
</snippets>
|
</snippets>
|
||||||
<Panel hittest="false" class="DPSPanelRoot ShowTime">
|
<Panel hittest="false" class="DPSPanelRoot ShowTime">
|
||||||
<Panel id="TowerListHeader" onactivate="$.GetContextPanel().ToggleClass('ShowTime')" >
|
<Panel id="TowerListHeader" onactivate="$.GetContextPanel().ToggleClass('ShowTime')">
|
||||||
<Label text="#td_tower_dps_title" />
|
<Label text="#td_tower_dps_title" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="FoodCountPanel" onmouseover="DOTAShowTextTooltip(#td_food_count_text)" onmouseout="DOTAHideTextTooltip()">
|
||||||
<Panel id="FoodCountPanel" onmouseover="DOTAShowTextTooltip(td_food_count_text)" onmouseout="DOTAHideTextTooltip()" >
|
|
||||||
<Label id="FoodCount" text="#td_food_count" />
|
<Label id="FoodCount" text="#td_food_count" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="TowerList" >
|
<Panel id="TowerList">
|
||||||
<Panel />
|
<Panel />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Label id="KillCount" text="#td_creature_kill_count" />
|
<Label id="KillCount" text="#td_creature_kill_count" />
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<!-- xml reconstructed by ValveResourceFormat: https://vrf.steamdb.info/ -->
|
||||||
<root>
|
<root>
|
||||||
<styles>
|
<styles>
|
||||||
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
||||||
@@ -9,34 +10,32 @@
|
|||||||
<snippets>
|
<snippets>
|
||||||
<snippet name="player">
|
<snippet name="player">
|
||||||
<Panel class="Player">
|
<Panel class="Player">
|
||||||
<Panel id="PlayerColor"/>
|
<Panel id="PlayerColor" />
|
||||||
<DOTAAvatarImage id="AvatarImage" class="ScoreboardAvatar"/>
|
<DOTAAvatarImage id="AvatarImage" class="ScoreboardAvatar" />
|
||||||
<Panel id="PlayerAndHeroNameContainer" class="TopBottomFlow">
|
<Panel id="PlayerAndHeroNameContainer" class="TopBottomFlow">
|
||||||
<Label id="PlayerNameLabel" class="PlayerNameLabel" text=""/>
|
<Label id="PlayerNameLabel" class="PlayerNameLabel" text="" />
|
||||||
<Label id="HeroNameLabel" class="HeroNameLabel" text=""/>
|
<Label id="HeroNameLabel" class="HeroNameLabel" text="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Label id="KillCount" text="0" />
|
<Label id="KillCount" text="0" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
|
|
||||||
<!-- PlayerStatus -->
|
|
||||||
<snippet name="PlayerStatus">
|
<snippet name="PlayerStatus">
|
||||||
<Panel class="PlayerStatus">
|
<Panel class="PlayerStatus">
|
||||||
<Panel id="StatusICON" />
|
<Panel id="StatusICON" />
|
||||||
<DOTAAvatarImage id="AvatarImage" class="ScoreboardAvatar"/>
|
<DOTAAvatarImage id="AvatarImage" class="ScoreboardAvatar" />
|
||||||
<Label id="StatusText" html="true" text="" />
|
<Label id="StatusText" html="true" text="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
</snippets>
|
</snippets>
|
||||||
<Panel hittest="true" class="EndScreenRoot" >
|
<Panel hittest="true" class="EndScreenRoot">
|
||||||
<Label id="WinText" text="" />
|
<Label id="WinText" text="" />
|
||||||
<Panel id="PlayersPanel" >
|
<Panel id="PlayersPanel">
|
||||||
<Panel id="PlayersPanelHeader" >
|
<Panel id="PlayersPanelHeader">
|
||||||
<Label id="KillCountTitle" text="#td_creature_kill_count_text" />
|
<Label id="KillCountTitle" text="#td_creature_kill_count_text" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
<Button id="ContinueButton" class="Hide" onactivate="Game.FinishGame();">
|
<Button id="ContinueButton" class="Hide" onactivate="Game.FinishGame();">
|
||||||
<Label text="#DOTA_Continue" />
|
<Label text="#DOTA_Continue" />
|
||||||
</Button>
|
</Button>
|
||||||
</Panel>
|
</Panel>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<!-- xml reconstructed by ValveResourceFormat: https://vrf.steamdb.info/ -->
|
||||||
<root>
|
<root>
|
||||||
<styles>
|
<styles>
|
||||||
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
||||||
@@ -6,7 +7,7 @@
|
|||||||
<scripts>
|
<scripts>
|
||||||
<include src="s2r://panorama/layout/custom_game/frames/message/message.vjs_c" />
|
<include src="s2r://panorama/layout/custom_game/frames/message/message.vjs_c" />
|
||||||
</scripts>
|
</scripts>
|
||||||
<Panel hittest="false" hittestchildren="false" class="MessageRoot" >
|
<Panel hittest="false" hittestchildren="false" class="MessageRoot">
|
||||||
<Panel id="Content" />
|
<Panel id="Content" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -1,28 +1,25 @@
|
|||||||
<root>
|
<!-- xml reconstructed by ValveResourceFormat: https://vrf.steamdb.info/ -->
|
||||||
|
<root>
|
||||||
<styles>
|
<styles>
|
||||||
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
||||||
<include src="s2r://panorama/styles/custom_game/info.vcss_c" />
|
<include src="s2r://panorama/styles/custom_game/info.vcss_c" />
|
||||||
</styles>
|
</styles>
|
||||||
<scripts>
|
<scripts>
|
||||||
<include src="s2r://panorama/scripts/custom_game/power.vjs_c" />
|
<include src="s2r://panorama/scripts/custom_game/power.vjs_c" />
|
||||||
<include src="s2r://panorama/scripts/custom_game/info.vjs_c" />
|
<include src="s2r://panorama/scripts/custom_game/info.vjs_c" />
|
||||||
<include src="s2r://panorama/scripts/custom_game/display_error.vjs_c" />
|
<include src="s2r://panorama/scripts/custom_game/display_error.vjs_c" />
|
||||||
<!-- <include src="s2r://panorama/layout/custom_game/frames/cosmetic_abilities/creator.vjs_c" /> -->
|
|
||||||
</scripts>
|
</scripts>
|
||||||
<snippets>
|
<snippets>
|
||||||
<!-- 卡片 -->
|
|
||||||
<snippet name="CardPoolCard">
|
<snippet name="CardPoolCard">
|
||||||
<Panel class="Card" >
|
<Panel class="Card">
|
||||||
<Image id="CardImage" src="" />
|
<Image id="CardImage" src="" />
|
||||||
<Panel class="CardBar"/>
|
<Panel class="CardBar" />
|
||||||
<Panel class="CardType"/>
|
<Panel class="CardType" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
|
|
||||||
<!-- 卡组详情 -->
|
|
||||||
<snippet name="RankDetailCard">
|
<snippet name="RankDetailCard">
|
||||||
<Panel class="RankDetailItem" >
|
<Panel class="RankDetailItem">
|
||||||
<Panel id="CardRankContent"/>
|
<Panel id="CardRankContent" />
|
||||||
<Panel id="StarContent">
|
<Panel id="StarContent">
|
||||||
<Image src="s2r://panorama/images/custom_game/star_png.vtex" />
|
<Image src="s2r://panorama/images/custom_game/star_png.vtex" />
|
||||||
<Image src="s2r://panorama/images/custom_game/star_png.vtex" />
|
<Image src="s2r://panorama/images/custom_game/star_png.vtex" />
|
||||||
@@ -36,102 +33,80 @@
|
|||||||
<DOTAItemImage itemname="" />
|
<DOTAItemImage itemname="" />
|
||||||
<DOTAItemImage itemname="" />
|
<DOTAItemImage itemname="" />
|
||||||
<DOTAItemImage itemname="" />
|
<DOTAItemImage itemname="" />
|
||||||
<DOTAItemImage itemname="" />
|
<DOTAItemImage itemname="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="TextContent">
|
<Panel id="TextContent">
|
||||||
<Label html="true" text="" />
|
<Label html="true" text="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
|
|
||||||
<!-- 攻略列表项目 -->
|
|
||||||
<snippet name="StrategyListItem">
|
<snippet name="StrategyListItem">
|
||||||
<Panel class="URLItem">
|
<Panel class="URLItem">
|
||||||
<Label class="LeftTitle" text="" />
|
<Label class="LeftTitle" text="" />
|
||||||
<Panel class="TopBottomFlow MiddleAlign">
|
<Panel class="TopBottomFlow MiddleAlign">
|
||||||
<Label class="URLItemTitle" text="" />
|
<Label class="URLItemTitle" text="" />
|
||||||
<Label class="URLItemSubTitle" text="" />
|
<Label class="URLItemSubTitle" text="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
|
|
||||||
<!-- 排行榜列表项目 -->
|
|
||||||
<snippet name="RankListItem">
|
<snippet name="RankListItem">
|
||||||
<Panel class="RankItem" onactivate="RankDetail()">
|
<Panel class="RankItem" onactivate="RankDetail()">
|
||||||
<Label class="RankLeftTitle" html="true" text="" />
|
<Label class="RankLeftTitle" html="true" text="" />
|
||||||
<Panel id="PlayerList">
|
<Panel id="PlayerList" />
|
||||||
</Panel>
|
|
||||||
<Panel class="TopBottomFlow MiddleAlign">
|
<Panel class="TopBottomFlow MiddleAlign">
|
||||||
<Label class="URLItemTitle" html="true" text="" />
|
<Label class="URLItemTitle" html="true" text="" />
|
||||||
<Label class="URLItemSubTitle" html="true" text="" />
|
<Label class="URLItemSubTitle" html="true" text="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
|
|
||||||
<!-- 卡池卡片 -->
|
|
||||||
<snippet name="Tower">
|
<snippet name="Tower">
|
||||||
<Panel class="Tower" >
|
<Panel class="Tower">
|
||||||
<DOTAItemImage id="Item" itemname="" hittest="false" />
|
<DOTAItemImage id="Item" itemname="" hittest="false" />
|
||||||
<Label id="xxx" text="x" />
|
<Label id="xxx" text="x" />
|
||||||
<Label id="Count" text="" />
|
<Label id="Count" text="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
</snippets>
|
</snippets>
|
||||||
<Panel hittest="false" class="InfoRoot" >
|
<Panel hittest="false" class="InfoRoot">
|
||||||
<!--顶部菜单-->
|
<Panel id="iconlist" class="">
|
||||||
<Panel id="iconlist" class="">
|
<Panel id="UpdatePoint" onmouseover="DOTAShowTextTooltip(#td_refresh_desc)" onmouseout="DOTAHideTextTooltip()" onactivate="UpdateGamePoint()">
|
||||||
<Panel id="UpdatePoint" onmouseover="DOTAShowTextTooltip(td_refresh_desc)" onmouseout="DOTAHideTextTooltip()" onactivate="UpdateGamePoint()" >
|
<Image src="s2r://panorama/images/custom_game/refresh2_png.vtex" />
|
||||||
<Image src="s2r://panorama/images/custom_game/refresh2_png.vtex" />
|
|
||||||
</Panel>
|
</Panel>
|
||||||
<Button onmouseover="DOTAShowTextTooltip(td_patron_desc)" onmouseout="DOTAHideTextTooltip()" onactivate="$('#PatronStore').RemoveClass('Hide')" >
|
<Button onmouseover="DOTAShowTextTooltip(#td_patron_desc)" onmouseout="DOTAHideTextTooltip()" onactivate="$('#PatronStore').RemoveClass('Hide')">
|
||||||
<Label text="赞助" />
|
<Label text="赞助" />
|
||||||
</Button>
|
</Button>
|
||||||
<Label id="AccountID" text="" />
|
<Label id="AccountID" text="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="PatronStore" class="Hide" />
|
||||||
<!-- 商城 -->
|
<Panel id="AttackingPanel">
|
||||||
<Panel id="PatronStore" class="Hide" />
|
<Panel id="CreepCountProcessBar">
|
||||||
|
<Panel id="CreepCountProcessBarPCT" />
|
||||||
<!-- 进攻进度 -->
|
|
||||||
<Panel id="AttackingPanel" >
|
|
||||||
<Panel id="CreepCountProcessBar" >
|
|
||||||
<Panel id="CreepCountProcessBarPCT" >
|
|
||||||
</Panel>
|
|
||||||
<Label id="CreepCount" text="#td_pawn_count" />
|
<Label id="CreepCount" text="#td_pawn_count" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="DifficultyWavePanel" >
|
<Panel id="DifficultyWavePanel">
|
||||||
<Label id="Difficulty" text="" />
|
<Label id="Difficulty" text="" />
|
||||||
<Label id="WaveText" html="true" text="#td_attacking_wave" />
|
<Label id="WaveText" html="true" text="#td_attacking_wave" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="AttackingProcessTimePanel" >
|
<Panel id="AttackingProcessTimePanel">
|
||||||
<Label id="AttackingProcessTime" text="5" />
|
<Label id="AttackingProcessTime" text="5" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
<!-- 卡池 -->
|
|
||||||
<Panel id="CardPoolPanel" hittest="false">
|
<Panel id="CardPoolPanel" hittest="false">
|
||||||
<Panel id="CardPoolHeader" onactivate="$('#CardPoolPanel').ToggleClass('ShowTime')" >
|
<Panel id="CardPoolHeader" onactivate="$('#CardPoolPanel').ToggleClass('ShowTime')">
|
||||||
<Label text="#td_card_pool" />
|
<Label text="#td_card_pool" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="CardPoolContent" />
|
<Panel id="CardPoolContent" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
<!-- 商店 todo-->
|
|
||||||
<Panel id="Shop" />
|
<Panel id="Shop" />
|
||||||
|
|
||||||
<!-- 选择卡片 -->
|
|
||||||
<Panel id="SelectCardPanel" hittest="false" class="Hide">
|
<Panel id="SelectCardPanel" hittest="false" class="Hide">
|
||||||
<Panel id="SelectCardHeader" >
|
<Panel id="SelectCardHeader">
|
||||||
<Label id="SelectCardHeaderText" text="#td_select_card" />
|
<Label id="SelectCardHeaderText" text="#td_select_card" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Button id="SelectCardCloseButton" onactivate="SelectCardClose()" >
|
<Button id="SelectCardCloseButton" onactivate="SelectCardClose()" />
|
||||||
</Button>
|
<Panel id="SelectCardPoolContent" />
|
||||||
<Panel id="SelectCardPoolContent" />
|
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="SelectStartCard">
|
||||||
<!-- 选择初始卡 -->
|
<Panel class="Card" onactivate="SelectStartCard('item_0001')">
|
||||||
<Panel id="SelectStartCard" >
|
|
||||||
<Panel class="Card" onactivate="SelectStartCard('item_0001')">
|
|
||||||
<Panel class="ItemImage">
|
<Panel class="ItemImage">
|
||||||
<DOTAItemImage hittest="false" itemname="item_0001" />
|
<DOTAItemImage hittest="false" itemname="item_0001" />
|
||||||
</Panel>
|
</Panel>
|
||||||
@@ -140,7 +115,7 @@
|
|||||||
<Panel id="Item1Description" class="Description" />
|
<Panel id="Item1Description" class="Description" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel class="Card" onactivate="SelectStartCard('item_0002')">
|
<Panel class="Card" onactivate="SelectStartCard('item_0002')">
|
||||||
<Panel class="ItemImage">
|
<Panel class="ItemImage">
|
||||||
<DOTAItemImage hittest="false" itemname="item_0002" />
|
<DOTAItemImage hittest="false" itemname="item_0002" />
|
||||||
</Panel>
|
</Panel>
|
||||||
@@ -149,7 +124,7 @@
|
|||||||
<Panel id="Item2Description" class="Description" />
|
<Panel id="Item2Description" class="Description" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel class="Card" onactivate="SelectStartCard('item_0003')">
|
<Panel class="Card" onactivate="SelectStartCard('item_0003')">
|
||||||
<Panel class="ItemImage">
|
<Panel class="ItemImage">
|
||||||
<DOTAItemImage hittest="false" itemname="item_0003" />
|
<DOTAItemImage hittest="false" itemname="item_0003" />
|
||||||
</Panel>
|
</Panel>
|
||||||
@@ -159,87 +134,65 @@
|
|||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Button id="VideosButton" onactivate="VideosPanelOpen()">
|
||||||
<!-- 打开攻略 -->
|
|
||||||
<Button id="VideosButton" onactivate="VideosPanelOpen()" >
|
|
||||||
<Label text="#td_tutorial_video" />
|
<Label text="#td_tutorial_video" />
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button id="KickButton" onactivate="KickVoteOpen()">
|
||||||
<!-- 踢人按钮 -->
|
|
||||||
<Button id="KickButton" onactivate="KickVoteOpen()" >
|
|
||||||
<Label text="#td_kick_vote" />
|
<Label text="#td_kick_vote" />
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button id="PauseButton" onactivate="PauseGame()">
|
||||||
<!-- 永久暂停按钮 -->
|
|
||||||
<Button id="PauseButton" onactivate="PauseGame()" >
|
|
||||||
<Label text="#pause_game_btn" />
|
<Label text="#pause_game_btn" />
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button id="RankButton" onactivate="RankPanelOpen()">
|
||||||
<!-- 排行榜按钮 -->
|
<Label text="#td_rank_list_100" onmouseover="ShowRankButtonTip(1)" onmouseout="HideRankButtonTip()" />
|
||||||
<Button id="RankButton" onactivate="RankPanelOpen()" >
|
|
||||||
<Label text="#td_rank_list_100" onmouseover="ShowRankButtonTip(1)" onmouseout="HideRankButtonTip()"/>
|
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button id="TeamRankButton" onactivate="TeamRankPanelOpen()">
|
||||||
<!-- 组队排行榜按钮 -->
|
<Label text="#td_team_rank_list_100" onmouseover="ShowRankButtonTip(2)" onmouseout="HideRankButtonTip()" />
|
||||||
<Button id="TeamRankButton" onactivate="TeamRankPanelOpen()" >
|
|
||||||
<Label text="#td_team_rank_list_100" onmouseover="ShowRankButtonTip(2)" onmouseout="HideRankButtonTip()"/>
|
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<!-- 攻略 -->
|
|
||||||
<Panel id="VideosPanel" hittest="false" class="Hide">
|
<Panel id="VideosPanel" hittest="false" class="Hide">
|
||||||
<Panel id="VideoListWindow" class="Hide" >
|
<Panel id="VideoListWindow" class="Hide">
|
||||||
<Button class="CloseButton" onactivate="VideosPanelClose()" />
|
<Button class="CloseButton" onactivate="VideosPanelClose()" />
|
||||||
<Panel id="VideoDescription" >
|
<Panel id="VideoDescription">
|
||||||
<Label html="true" text="#td_video_tip" />
|
<Label html="true" text="#td_video_tip" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="URLList" />
|
<Panel id="URLList" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="StrategyWindow" class="Hide">
|
||||||
<Panel id="StrategyWindow" class="Hide" >
|
|
||||||
<Button class="CloseButton" onactivate="CloseStrategyWindow()" />
|
<Button class="CloseButton" onactivate="CloseStrategyWindow()" />
|
||||||
|
|
||||||
<Label class="StrategyTitle" html="true" text="{s:StrategyTitle1}" />
|
<Label class="StrategyTitle" html="true" text="{s:StrategyTitle1}" />
|
||||||
<Label class="StrategyText" html="true" text="{s:StrategyText1}" />
|
<Label class="StrategyText" html="true" text="{s:StrategyText1}" />
|
||||||
|
|
||||||
<Label class="StrategyTitle" html="true" text="{s:StrategyTitle2}" />
|
<Label class="StrategyTitle" html="true" text="{s:StrategyTitle2}" />
|
||||||
<Label class="StrategyText" html="true" text="{s:StrategyText2}" />
|
<Label class="StrategyText" html="true" text="{s:StrategyText2}" />
|
||||||
|
|
||||||
<Label class="StrategyTitle" html="true" text="{s:StrategyTitle3}" />
|
<Label class="StrategyTitle" html="true" text="{s:StrategyTitle3}" />
|
||||||
<Label class="StrategyText" html="true" text="{s:StrategyText3}" />
|
<Label class="StrategyText" html="true" text="{s:StrategyText3}" />
|
||||||
|
|
||||||
<Label class="StrategyTitle" html="true" text="{s:StrategyTitle4}" />
|
<Label class="StrategyTitle" html="true" text="{s:StrategyTitle4}" />
|
||||||
<Label class="StrategyText" html="true" text="{s:StrategyText4}" />
|
<Label class="StrategyText" html="true" text="{s:StrategyText4}" />
|
||||||
|
<Image id="StrategyImage" src="" scaling="stretch-to-fit-preserve-aspect" />
|
||||||
<Image id="StrategyImage" src="" scaling="stretch-to-fit-preserve-aspect"/>
|
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
|
|
||||||
<!-- 投票踢人 -->
|
|
||||||
<Panel id="KickVotePanel" hittest="false" class="Hide">
|
<Panel id="KickVotePanel" hittest="false" class="Hide">
|
||||||
<Panel id="KickVoteMain" hittest="false">
|
<Panel id="KickVoteMain" hittest="false">
|
||||||
<Button class="KickVoteButton" onactivate="KickVote(1)" >
|
<Button class="KickVoteButton" onactivate="KickVote(1)">
|
||||||
<Label html="true" class="Title" text="#kick_player_1" />
|
<Label html="true" class="Title" text="#kick_player_1" />
|
||||||
<Label html="true" class="Title" text="{s:PlayerName1}" />
|
<Label html="true" class="Title" text="{s:PlayerName1}" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button class="KickVoteButton" onactivate="KickVote(2)" >
|
<Button class="KickVoteButton" onactivate="KickVote(2)">
|
||||||
<Label html="true" class="Title" text="#kick_player_2" />
|
<Label html="true" class="Title" text="#kick_player_2" />
|
||||||
<Label html="true" class="Title" text="{s:PlayerName2}" />
|
<Label html="true" class="Title" text="{s:PlayerName2}" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button class="KickVoteButton" onactivate="KickVote(3)" >
|
<Button class="KickVoteButton" onactivate="KickVote(3)">
|
||||||
<Label html="true" class="Title" text="#kick_player_3" />
|
<Label html="true" class="Title" text="#kick_player_3" />
|
||||||
<Label html="true" class="Title" text="{s:PlayerName3}" />
|
<Label html="true" class="Title" text="{s:PlayerName3}" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button class="KickVoteButton" onactivate="KickVote(4)" >
|
<Button class="KickVoteButton" onactivate="KickVote(4)">
|
||||||
<Label html="true" class="Title" text="#kick_player_4" />
|
<Label html="true" class="Title" text="#kick_player_4" />
|
||||||
<Label html="true" class="Title" text="{s:PlayerName4}" />
|
<Label html="true" class="Title" text="{s:PlayerName4}" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button id="KickVoteCancelButton" onactivate="KickVoteClose()" >
|
<Button id="KickVoteCancelButton" onactivate="KickVoteClose()">
|
||||||
<Label html="true" text="#DOTA_UI_Cancel" />
|
<Label html="true" text="#DOTA_UI_Cancel" />
|
||||||
</Button>
|
</Button>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
<!-- 投票踢人确认 -->
|
|
||||||
<Panel id="KickAcceptPanel" class="Hide">
|
<Panel id="KickAcceptPanel" class="Hide">
|
||||||
<Panel id="KickAcceptText">
|
<Panel id="KickAcceptText">
|
||||||
<Label html="true" text="{s:msg}" />
|
<Label html="true" text="{s:msg}" />
|
||||||
@@ -251,64 +204,53 @@
|
|||||||
</Button>
|
</Button>
|
||||||
<Button id="KickNoButton" class="Cancel">
|
<Button id="KickNoButton" class="Cancel">
|
||||||
<Label text="#no" />
|
<Label text="#no" />
|
||||||
</Button>
|
</Button>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
|
|
||||||
<!-- 排行榜 -->
|
|
||||||
<Panel id="RankPanel" hittest="false" class="Hide">
|
<Panel id="RankPanel" hittest="false" class="Hide">
|
||||||
<Panel id="RankListWindow" class="Hide" >
|
<Panel id="RankListWindow" class="Hide">
|
||||||
<Button class="CloseButton" onactivate="RankPanelClose()" />
|
<Button class="CloseButton" onactivate="RankPanelClose()" />
|
||||||
<Panel id="RankDescription" >
|
<Panel id="RankDescription">
|
||||||
<Label html="true" text="#td_rank_list_100_desc" />
|
<Label html="true" text="#td_rank_list_100_desc" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="RankList" />
|
<Panel id="RankList" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="RankDetailWindow" class="Hide">
|
||||||
<Panel id="RankDetailWindow" class="Hide" >
|
|
||||||
<Panel class="RightTopButtons">
|
<Panel class="RightTopButtons">
|
||||||
<Button id="ResetRankAll" class="Hide" onactivate="RankResetAll()">
|
<Button id="ResetRankAll" class="Hide" onactivate="RankResetAll()">
|
||||||
<Label text="全部重置" />
|
<Label text="全部重置" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button id="ResetRank" onactivate="">
|
<Button id="ResetRank" onactivate="">
|
||||||
<Label text="重置" />
|
<Label text="重置" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button class="CloseButton" onactivate="RankDetailClose()" />
|
<Button class="CloseButton" onactivate="RankDetailClose()" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="RankDetail" />
|
<Panel id="RankDetail" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
<!-- 组队排行榜 -->
|
|
||||||
<Panel id="TeamRankPanel" hittest="false" class="Hide">
|
<Panel id="TeamRankPanel" hittest="false" class="Hide">
|
||||||
<Panel id="TeamRankListWindow" class="Hide" >
|
<Panel id="TeamRankListWindow" class="Hide">
|
||||||
<Button class="CloseButton" onactivate="TeamRankPanelClose()" />
|
<Button class="CloseButton" onactivate="TeamRankPanelClose()" />
|
||||||
<Panel id="TeamRankDescription" >
|
<Panel id="TeamRankDescription">
|
||||||
<Label html="true" text="#td_team_rank_list_100_desc" />
|
<Label html="true" text="#td_team_rank_list_100_desc" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="TeamRankList" />
|
<Panel id="TeamRankList" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="TeamRankDetailWindow" class="Hide">
|
||||||
<Panel id="TeamRankDetailWindow" class="Hide" >
|
|
||||||
<Panel class="RightTopButtons">
|
<Panel class="RightTopButtons">
|
||||||
<Button id="TeamResetRankAll" class="Hide" onactivate="TeamRankResetAll()">
|
<Button id="TeamResetRankAll" class="Hide" onactivate="TeamRankResetAll()">
|
||||||
<Label text="全部重置" />
|
<Label text="全部重置" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button id="TeamResetRank" onactivate="">
|
<Button id="TeamResetRank" onactivate="">
|
||||||
<Label text="重置" />
|
<Label text="重置" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button class="CloseButton" onactivate="TeamRankDetailClose()" />
|
<Button class="CloseButton" onactivate="TeamRankDetailClose()" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="TeamRankDetail" />
|
<Panel id="TeamRankDetail" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
<!-- 玩家头像 -->
|
|
||||||
<Panel id="PlayerAvatarElements" class="Hide">
|
<Panel id="PlayerAvatarElements" class="Hide">
|
||||||
<!-- <DOTAAvatarImage hittest="false" hittestchildren="false" /> -->
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
@@ -328,7 +270,6 @@
|
|||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
@@ -348,7 +289,6 @@
|
|||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
@@ -368,7 +308,6 @@
|
|||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
@@ -388,7 +327,11 @@
|
|||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
|
<DOTAAvatarImage />
|
||||||
|
<DOTAAvatarImage />
|
||||||
|
<DOTAAvatarImage />
|
||||||
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
@@ -407,13 +350,9 @@
|
|||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
<!-- 玩家头像 -->
|
|
||||||
<Panel id="TeamPlayerAvatarElements" class="Hide">
|
<Panel id="TeamPlayerAvatarElements" class="Hide">
|
||||||
<!-- <DOTAAvatarImage hittest="false" hittestchildren="false" /> -->
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
@@ -433,7 +372,6 @@
|
|||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
@@ -453,7 +391,6 @@
|
|||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
@@ -473,7 +410,6 @@
|
|||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
@@ -493,7 +429,6 @@
|
|||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
@@ -511,6 +446,11 @@
|
|||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
<DOTAAvatarImage />
|
<DOTAAvatarImage />
|
||||||
</Panel>
|
<DOTAAvatarImage />
|
||||||
|
<DOTAAvatarImage />
|
||||||
|
<DOTAAvatarImage />
|
||||||
|
<DOTAAvatarImage />
|
||||||
|
<DOTAAvatarImage />
|
||||||
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<!-- xml reconstructed by ValveResourceFormat: https://vrf.steamdb.info/ -->
|
||||||
<root>
|
<root>
|
||||||
<styles>
|
<styles>
|
||||||
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
||||||
@@ -6,13 +7,12 @@
|
|||||||
<scripts>
|
<scripts>
|
||||||
<include src="s2r://panorama/scripts/custom_game/shop.vjs_c" />
|
<include src="s2r://panorama/scripts/custom_game/shop.vjs_c" />
|
||||||
</scripts>
|
</scripts>
|
||||||
<Panel hittest="false" class="ShopRoot" >
|
<Panel hittest="false" class="ShopRoot">
|
||||||
<Panel id="ShopContent" class="Hidden" onactivate="" >
|
<Panel id="ShopContent" class="Hidden" onactivate="">
|
||||||
<Panel id="AbilityList" />
|
<Panel id="AbilityList" />
|
||||||
<Button id="CloseShopButton" onactivate="ToggleStyle(ShopContent, Hidden)" >
|
<Button id="CloseShopButton" onactivate="ToggleStyle(ShopContent, Hidden)" />
|
||||||
</Button>
|
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="BottomBar" >
|
<Panel id="BottomBar">
|
||||||
<Panel id="BottomBarBG" />
|
<Panel id="BottomBarBG" />
|
||||||
<Button id="ShopButton" onactivate="ToggleStyle(ShopContent, Hidden)">
|
<Button id="ShopButton" onactivate="ToggleStyle(ShopContent, Hidden)">
|
||||||
<Label id="GoldText" text="" />
|
<Label id="GoldText" text="" />
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
|
<!-- xml reconstructed by ValveResourceFormat: https://vrf.steamdb.info/ -->
|
||||||
<root>
|
<root>
|
||||||
<styles>
|
<styles>
|
||||||
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
<include src="s2r://panorama/styles/dotastyles.vcss_c" />
|
||||||
<include src="s2r://panorama/styles/custom_game/team_select.vcss_c" />
|
<include src="s2r://panorama/styles/custom_game/team_select.vcss_c" />
|
||||||
</styles>
|
</styles>
|
||||||
<scripts>
|
<scripts>
|
||||||
<include src="s2r://panorama/scripts/custom_game/team_select.vjs_c" />
|
<include src="s2r://panorama/scripts/custom_game/team_select.vjs_c" />
|
||||||
<include src="s2r://panorama/scripts/custom_game/team_select_card.vjs_c" />
|
<include src="s2r://panorama/scripts/custom_game/team_select_card.vjs_c" />
|
||||||
</scripts>
|
</scripts>
|
||||||
<snippets>
|
<snippets>
|
||||||
<!-- 已选卡片 -->
|
|
||||||
<snippet name="SelectedCard">
|
<snippet name="SelectedCard">
|
||||||
<Panel class="Card">
|
<Panel class="Card">
|
||||||
<Panel id="Content" >
|
<Panel id="Content">
|
||||||
<Panel id="ItemInfo" >
|
<Panel id="ItemInfo">
|
||||||
<DOTAItemImage id="ItemImage" hittest="false" itemname="" />
|
<DOTAItemImage id="ItemImage" hittest="false" itemname="" />
|
||||||
<Label id="ItemName" text="{s:itemname}" />
|
<Label id="ItemName" text="{s:itemname}" />
|
||||||
</Panel>
|
</Panel>
|
||||||
@@ -24,14 +24,12 @@
|
|||||||
<DOTAScenePanel id="Effect" hittest="false" map="td/selected_card" camera="default" />
|
<DOTAScenePanel id="Effect" hittest="false" map="td/selected_card" camera="default" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
|
|
||||||
<!-- 卡片 -->
|
|
||||||
<snippet name="CardPoolCard">
|
<snippet name="CardPoolCard">
|
||||||
<Panel class="Card" >
|
<Panel class="Card">
|
||||||
<Image id="CardBackGround" src="s2r://panorama/images/custom_game/cards/item_n_png.vtex"/>
|
<Image id="CardBackGround" src="s2r://panorama/images/custom_game/cards/item_n_png.vtex" />
|
||||||
<Image id="CardImage" src="s2r://panorama/images/custom_game/cards/remilia_png.vtex" />
|
<Image id="CardImage" src="s2r://panorama/images/custom_game/cards/remilia_png.vtex" />
|
||||||
<Panel class="CardBar"/>
|
<Panel class="CardBar" />
|
||||||
<Panel class="CardType"/>
|
<Panel class="CardType" />
|
||||||
<Panel class="CardRemainingCount">
|
<Panel class="CardRemainingCount">
|
||||||
<Label text="x{s:remaining_count}" />
|
<Label text="x{s:remaining_count}" />
|
||||||
</Panel>
|
</Panel>
|
||||||
@@ -40,21 +38,17 @@
|
|||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
|
|
||||||
<!-- 卡片技能 -->
|
|
||||||
<snippet name="CardAbility">
|
<snippet name="CardAbility">
|
||||||
<Panel class="Ability">
|
<Panel class="Ability">
|
||||||
<Panel class="AbilityHeader">
|
<Panel class="AbilityHeader">
|
||||||
<DOTAAbilityImage id="AbilityImage" abilityname="" />
|
<DOTAAbilityImage id="AbilityImage" abilityname="" />
|
||||||
<Label id="AbilityName" html="true" text="" />
|
<Label id="AbilityName" html="true" text="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel class="AbilityBody" >
|
<Panel class="AbilityBody">
|
||||||
<Label id="AbilityDescription" html="true" text="" />
|
<Label id="AbilityDescription" html="true" text="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
|
|
||||||
<!-- 难度槽 -->
|
|
||||||
<snippet name="DifficultyContainer">
|
<snippet name="DifficultyContainer">
|
||||||
<Panel class="DifficultyContainer">
|
<Panel class="DifficultyContainer">
|
||||||
<Panel class="OptionButtonBackground">
|
<Panel class="OptionButtonBackground">
|
||||||
@@ -67,13 +61,10 @@
|
|||||||
<Label class="T1" text="{d:difficulty}" />
|
<Label class="T1" text="{d:difficulty}" />
|
||||||
<Label class="T2" text="{s:difficultyText}" />
|
<Label class="T2" text="{s:difficultyText}" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="PlayerList" >
|
<Panel id="PlayerList" />
|
||||||
</Panel>
|
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</snippet>
|
</snippet>
|
||||||
|
|
||||||
<!-- 卡组 -->
|
|
||||||
<snippet name="CardGroupItem">
|
<snippet name="CardGroupItem">
|
||||||
<Panel class="CardGroupItem">
|
<Panel class="CardGroupItem">
|
||||||
<Button>
|
<Button>
|
||||||
@@ -83,66 +74,50 @@
|
|||||||
</snippet>
|
</snippet>
|
||||||
</snippets>
|
</snippets>
|
||||||
<Panel hittest="false" class="TeamSelectRoot">
|
<Panel hittest="false" class="TeamSelectRoot">
|
||||||
<!-- 界面标题 -->
|
<Panel id="SetupTitlePanel">
|
||||||
<Panel id="SetupTitlePanel" >
|
|
||||||
<Panel id="SetupTitleBG">
|
<Panel id="SetupTitleBG">
|
||||||
<Panel class="Left" />
|
<Panel class="Left" />
|
||||||
<Panel class="Right" />
|
<Panel class="Right" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Label id="SetupTitle" text="#addon_game_name" />
|
<Label id="SetupTitle" text="#addon_game_name" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
<!-- 副标题 -->
|
|
||||||
<Panel id="SetupTitleHR" />
|
<Panel id="SetupTitleHR" />
|
||||||
<Label id="SetupDescription" html="true" text="#addon_game_name" />
|
<Label id="SetupDescription" html="true" text="#addon_game_name" />
|
||||||
|
<Panel id="ReadyTimePanel">
|
||||||
<!-- 显示时间 -->
|
|
||||||
<Panel id="ReadyTimePanel" >
|
|
||||||
<Label id="ReadyTime" text="" />
|
<Label id="ReadyTime" text="" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="CardsPanelTips">
|
||||||
<!-- 操作提示 -->
|
<Panel class="CardPoolNote">
|
||||||
<Panel id="CardsPanelTips" >
|
<Panel class="Tip" onmouseover="DOTAShowTextTooltip(#td_card_pool_note_desc)" onmouseout="DOTAHideTextTooltip()">
|
||||||
<Panel class="CardPoolNote" >
|
|
||||||
<Panel class="Tip" onmouseover="DOTAShowTextTooltip(td_card_pool_note_desc)" onmouseout="DOTAHideTextTooltip()" >
|
|
||||||
<Image src="s2r://panorama/images/custom_game/note_png.vtex" />
|
<Image src="s2r://panorama/images/custom_game/note_png.vtex" />
|
||||||
<Label text="#td_card_pool_note" />
|
<Label text="#td_card_pool_note" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="CardsPanel" hittest="false">
|
||||||
<!-- 卡片 -->
|
<Panel id="SelectedCard">
|
||||||
<Panel id="CardsPanel" hittest="false" >
|
|
||||||
<!-- 左边 - 已选卡组 -->
|
|
||||||
<Panel id="SelectedCard" >
|
|
||||||
<Label id="CardGroupText" html="true" class="Hide" text="" />
|
<Label id="CardGroupText" html="true" class="Hide" text="" />
|
||||||
|
|
||||||
<!-- 显示每种卡片类型数量 -->
|
|
||||||
<Panel id="CardTypeCount">
|
<Panel id="CardTypeCount">
|
||||||
<Panel class="Center LeftRightFlow">
|
<Panel class="Center LeftRightFlow">
|
||||||
<!-- 显示SSR数量 -->
|
<Panel class="CardType SSR">
|
||||||
<Panel class="CardType SSR" >
|
|
||||||
<Panel class="Block">
|
<Panel class="Block">
|
||||||
<Label class="Count" text="{d:ssr_count}" />
|
<Label class="Count" text="{d:ssr_count}" />
|
||||||
<Label class="MaxCount" text="/{d:ssr_maxcount}" />
|
<Label class="MaxCount" text="/{d:ssr_maxcount}" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
<!-- 显示SR数量 -->
|
<Panel class="CardType SR">
|
||||||
<Panel class="CardType SR" >
|
|
||||||
<Panel class="Block">
|
<Panel class="Block">
|
||||||
<Label class="Count" text="{d:sr_count}" />
|
<Label class="Count" text="{d:sr_count}" />
|
||||||
<Label class="MaxCount" text="/{d:sr_maxcount}" />
|
<Label class="MaxCount" text="/{d:sr_maxcount}" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
<!-- 显示R数量 -->
|
<Panel class="CardType R">
|
||||||
<Panel class="CardType R" >
|
|
||||||
<Panel class="Block">
|
<Panel class="Block">
|
||||||
<Label class="Count" text="{d:r_count}" />
|
<Label class="Count" text="{d:r_count}" />
|
||||||
<Label class="MaxCount" text="/{d:r_maxcount}" />
|
<Label class="MaxCount" text="/{d:r_maxcount}" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
<!-- 显示N数量 -->
|
<Panel class="CardType N">
|
||||||
<Panel class="CardType N" >
|
|
||||||
<Panel class="Block">
|
<Panel class="Block">
|
||||||
<Label class="Count" text="{d:n_count}" />
|
<Label class="Count" text="{d:n_count}" />
|
||||||
<Label class="MaxCount" text="/{d:n_maxcount}+" />
|
<Label class="MaxCount" text="/{d:n_maxcount}+" />
|
||||||
@@ -150,38 +125,29 @@
|
|||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="SelectedCardList" />
|
||||||
<!-- 显示已选卡片 -->
|
<Panel id="CardGroupOptions" class="Hide" />
|
||||||
<Panel id="SelectedCardList" >
|
|
||||||
</Panel>
|
|
||||||
|
|
||||||
<!-- 卡组清单 -->
|
|
||||||
<Panel id="CardGroupOptions" class="Hide" />
|
|
||||||
|
|
||||||
<!-- 按钮 -->
|
|
||||||
<Panel id="CardGroupOptionsButton" class="LeftRightFlow Hide">
|
<Panel id="CardGroupOptionsButton" class="LeftRightFlow Hide">
|
||||||
<Button id="BackToGroupOptions" onactivate="ShowCardGroupList(true)" >
|
<Button id="BackToGroupOptions" onactivate="ShowCardGroupList(true)">
|
||||||
<Label text="#page_back" />
|
<Label text="#page_back" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button id="SaveGroupOptions" onactivate="SaveCardGroup()" >
|
<Button id="SaveGroupOptions" onactivate="SaveCardGroup()">
|
||||||
<Label text="#DOTA_Filter_SaveRule" />
|
<Label text="#DOTA_Filter_SaveRule" />
|
||||||
</Button>
|
</Button>
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="CardGroupOptionsButton2" class="LeftRightFlow Hide">
|
<Panel id="CardGroupOptionsButton2" class="LeftRightFlow Hide">
|
||||||
<Button id="RenameGroupOptions" onactivate="RenameCardGroupDialog()" >
|
<Button id="RenameGroupOptions" onactivate="RenameCardGroupDialog()">
|
||||||
<Label text="#td_rename_group" />
|
<Label text="#td_rename_group" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button id="ClearGroupOptions" onactivate="ClearCardGroupDialog()" >
|
<Button id="ClearGroupOptions" onactivate="ClearCardGroupDialog()">
|
||||||
<Label text="#td_clear_all" />
|
<Label text="#td_clear_all" />
|
||||||
</Button>
|
</Button>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="CardPool">
|
||||||
<!-- 中间 - 卡池 -->
|
|
||||||
<Panel id="CardPool" >
|
|
||||||
<Panel id="CardPoolBackground" />
|
<Panel id="CardPoolBackground" />
|
||||||
<Panel class="TopBottomFlow FullWidth FullHeight">
|
<Panel class="TopBottomFlow FullWidth FullHeight">
|
||||||
<Panel id="CardPoolHeader" >
|
<Panel id="CardPoolHeader">
|
||||||
<Panel id="CardPoolFilter">
|
<Panel id="CardPoolFilter">
|
||||||
<Label style="color:#fff;vertical-align: middle;" text="#td_type" />
|
<Label style="color:#fff;vertical-align: middle;" text="#td_type" />
|
||||||
<ToggleButton id="SSR" selected="true" text="SSR" onactivate="ShowCardFromFilter()" />
|
<ToggleButton id="SSR" selected="true" text="SSR" onactivate="ShowCardFromFilter()" />
|
||||||
@@ -189,64 +155,53 @@
|
|||||||
<ToggleButton id="R" selected="true" text="R" onactivate="ShowCardFromFilter()" />
|
<ToggleButton id="R" selected="true" text="R" onactivate="ShowCardFromFilter()" />
|
||||||
<ToggleButton id="N" selected="true" text="N" onactivate="ShowCardFromFilter()" />
|
<ToggleButton id="N" selected="true" text="N" onactivate="ShowCardFromFilter()" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel class="RightAlign LeftRightFlow">
|
<Panel class="RightAlign LeftRightFlow">
|
||||||
<Panel id="UpdatePoint" onmouseover="DOTAShowTextTooltip(td_refresh_desc)" onmouseout="DOTAHideTextTooltip()" onactivate="UpdateGamePoint()" >
|
<Panel id="UpdatePoint" onmouseover="DOTAShowTextTooltip(#td_refresh_desc)" onmouseout="DOTAHideTextTooltip()" onactivate="UpdateGamePoint()">
|
||||||
<Image src="s2r://panorama/images/custom_game/refresh_png.vtex" />
|
<Image src="s2r://panorama/images/custom_game/refresh_png.vtex" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="GamePoint" onmouseover="DOTAShowTextTooltip(td_gamepoint_desc)" onmouseout="DOTAHideTextTooltip()" >
|
<Panel id="GamePoint" onmouseover="DOTAShowTextTooltip(#td_gamepoint_desc)" onmouseout="DOTAHideTextTooltip()">
|
||||||
<Image src="s2r://panorama/images/custom_game/fairy_png.vtex" />
|
<Image src="s2r://panorama/images/custom_game/fairy_png.vtex" />
|
||||||
<Label text="{d:game_point}" />
|
<Label text="{d:game_point}" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel id="CardPoolContent" >
|
<Panel id="CardPoolContent" />
|
||||||
</Panel>
|
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="CardInfo">
|
||||||
<!-- 右边 - 卡片信息 -->
|
<Panel id="CardInfoContent">
|
||||||
<Panel id="CardInfo" >
|
<Panel class="Card">
|
||||||
<Panel id="CardInfoContent" >
|
|
||||||
<Panel class="Card" >
|
|
||||||
<DOTAScenePanel id="CardEffect" map="td/card" camera="default" />
|
<DOTAScenePanel id="CardEffect" map="td/card" camera="default" />
|
||||||
<Image id="CardBackGround" src="s2r://panorama/images/custom_game/cards/item_n_png.vtex"/>
|
<Image id="CardBackGround" src="s2r://panorama/images/custom_game/cards/item_n_png.vtex" />
|
||||||
<Image id="CardImage" src="s2r://panorama/images/custom_game/cards/remilia_png.vtex" />
|
<Image id="CardImage" src="s2r://panorama/images/custom_game/cards/remilia_png.vtex" />
|
||||||
<Image id="CardName" src="s2r://panorama/images/custom_game/cards/remilia_name_png.vtex"/>
|
<Image id="CardName" src="s2r://panorama/images/custom_game/cards/remilia_name_png.vtex" />
|
||||||
<Panel class="CardBar"/>
|
<Panel class="CardBar" />
|
||||||
<Panel class="CardType"/>
|
<Panel class="CardType" />
|
||||||
</Panel>
|
</Panel>
|
||||||
<Button id="DecomposeCardButton" onmouseover="DOTAShowTextTooltip(td_train_card_question)" onmouseout="DOTAHideTextTooltip()" onactivate="TrainCard(1)" oncontextmenu="TrainCard(50)">
|
<Button id="DecomposeCardButton" onmouseover="DOTAShowTextTooltip(#td_train_card_question)" onmouseout="DOTAHideTextTooltip()" onactivate="TrainCard(1)" oncontextmenu="TrainCard(50)">
|
||||||
<Panel class="Center LeftRightFlow MiddleAlign">
|
<Panel class="Center LeftRightFlow MiddleAlign">
|
||||||
<Label html="true" text="#td_train_card_title" />
|
<Label html="true" text="#td_train_card_title" />
|
||||||
<Image src="s2r://panorama/images/custom_game/fairy_png.vtex" />
|
<Image src="s2r://panorama/images/custom_game/fairy_png.vtex" />
|
||||||
<Label html="true" text="#td_train_card_cost" />
|
<Label html="true" text="#td_train_card_cost" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Button>
|
</Button>
|
||||||
<Label id="CardInfoName" html="true" text="" />
|
<Label id="CardInfoName" html="true" text="" />
|
||||||
<Panel id="CardAbilities" >
|
<Panel id="CardAbilities" />
|
||||||
</Panel>
|
|
||||||
<DOTAItemImage id="CardInfoItem" itemname="item_0001" />
|
<DOTAItemImage id="CardInfoItem" itemname="item_0001" />
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="DifficultyPanel" />
|
||||||
<!-- 难度选择 -->
|
<Panel id="BottomContent">
|
||||||
<Panel id="DifficultyPanel" >
|
|
||||||
</Panel>
|
|
||||||
|
|
||||||
<!-- 底部 -->
|
|
||||||
<Panel id="BottomContent" >
|
|
||||||
<Panel class="LeftRightFlow">
|
<Panel class="LeftRightFlow">
|
||||||
<Button id="BackButton" onactivate="OnBack()">
|
<Button id="BackButton" onactivate="OnBack()">
|
||||||
<Label text="#page_back" />
|
<Label text="#page_back" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button id="ContinueButton" onactivate="OnContinue()">
|
<Button id="ContinueButton" onactivate="OnContinue()">
|
||||||
<Label text="{s:continue_text}" />
|
<Label text="{s:continue_text}" />
|
||||||
</Button>
|
</Button>
|
||||||
</Panel>
|
</Panel>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
<!-- 玩家头像,必须事先在Xml中创建,snippets和js创建无效 -->
|
|
||||||
<Panel id="PlayerAvatarElements" class="Hide">
|
<Panel id="PlayerAvatarElements" class="Hide">
|
||||||
<DOTAAvatarImage hittest="false" hittestchildren="false" />
|
<DOTAAvatarImage hittest="false" hittestchildren="false" />
|
||||||
<DOTAAvatarImage hittest="false" hittestchildren="false" />
|
<DOTAAvatarImage hittest="false" hittestchildren="false" />
|
||||||
@@ -265,32 +220,21 @@
|
|||||||
<DOTAAvatarImage hittest="false" hittestchildren="false" />
|
<DOTAAvatarImage hittest="false" hittestchildren="false" />
|
||||||
<DOTAAvatarImage hittest="false" hittestchildren="false" />
|
<DOTAAvatarImage hittest="false" hittestchildren="false" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="WaitOtherPlayersPanel">
|
||||||
<!-- 准备就绪 -->
|
<Panel id="PlayerList" />
|
||||||
<Panel id="WaitOtherPlayersPanel" >
|
|
||||||
<Panel id="PlayerList" >
|
|
||||||
</Panel>
|
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="RightTopButtons">
|
||||||
<!-- 右上角按钮 -->
|
<Button onactivate="$('#DonatePanel').RemoveClass('Hide')">
|
||||||
<Panel id="RightTopButtons">
|
|
||||||
<Button onactivate="$('#DonatePanel').RemoveClass('Hide')" >
|
|
||||||
<Label text="#donate" />
|
<Label text="#donate" />
|
||||||
</Button>
|
</Button>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
<Panel id="DonatePanel" class="Hide" />
|
||||||
<!-- 赞助 -->
|
|
||||||
<Panel id="DonatePanel" class="Hide" />
|
|
||||||
|
|
||||||
<DOTAScenePanel id="ClickedEffect" hittest="false" map="td/clicked_test" camera="default" />
|
<DOTAScenePanel id="ClickedEffect" hittest="false" map="td/clicked_test" camera="default" />
|
||||||
|
|
||||||
<Panel id="LockFrame">
|
<Panel id="LockFrame">
|
||||||
<Panel class="loading_ico"/>
|
<Panel class="loading_ico" />
|
||||||
<Label class="loading" text="Loading..." />
|
<Label class="loading" text="Loading..." />
|
||||||
<Label id="loading_tips" html="true" text="#td_load_tips" />
|
<Label id="loading_tips" html="true" text="#td_load_tips" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
<!-- 对话框-->
|
|
||||||
<Panel id="MessageDialog">
|
<Panel id="MessageDialog">
|
||||||
<Label html="true" text="{s:msg}" />
|
<Label html="true" text="{s:msg}" />
|
||||||
<TextEntry id="MessageInput" maxchars="20" placeholder="" oninputsubmit="" />
|
<TextEntry id="MessageInput" maxchars="20" placeholder="" oninputsubmit="" />
|
||||||
|
|||||||
@@ -291,6 +291,7 @@ GameUI.StringCode = StringCode;
|
|||||||
|
|
||||||
GameUI.Cheated = false;
|
GameUI.Cheated = false;
|
||||||
|
|
||||||
|
|
||||||
// 创建网页
|
// 创建网页
|
||||||
function script() {
|
function script() {
|
||||||
var fn = arguments[0];
|
var fn = arguments[0];
|
||||||
@@ -331,7 +332,7 @@ var moviePage = script(function(){/*
|
|||||||
</root>
|
</root>
|
||||||
*/});
|
*/});
|
||||||
|
|
||||||
// 刀塔2021.09.18更新后官方移除BLoadLayoutFromString,改造后需要配合xml
|
// 刀塔2021.09.18更新后官方移除BLoadLayoutFromString,改造后需要配合调用方xml
|
||||||
GameUI.PlayMovie = function (panel, movie, duration, isShowClose) {
|
GameUI.PlayMovie = function (panel, movie, duration, isShowClose) {
|
||||||
if (!panel) return;
|
if (!panel) return;
|
||||||
if (!movie) return;
|
if (!movie) return;
|
||||||
|
|||||||
@@ -27,11 +27,11 @@ function FindItemName( unitname ) {
|
|||||||
|
|
||||||
function SetTowerTooltip( panel ) {
|
function SetTowerTooltip( panel ) {
|
||||||
panel.SetPanelEvent("onmouseover", function () {
|
panel.SetPanelEvent("onmouseover", function () {
|
||||||
var text = $.Localize(panel.GetAttributeString("UnitName", ""));
|
var text = $.Localize("#" + panel.GetAttributeString("UnitName", ""));
|
||||||
$.DispatchEvent("DOTAShowTextTooltip", panel, text)
|
$.DispatchEvent("DOTAShowTextTooltip", panel, text);
|
||||||
});
|
});
|
||||||
panel.SetPanelEvent("onmouseout", function () {
|
panel.SetPanelEvent("onmouseout", function () {
|
||||||
$.DispatchEvent("DOTAHideTextTooltip")
|
$.DispatchEvent("DOTAHideTextTooltip");
|
||||||
});
|
});
|
||||||
panel.SetPanelEvent("onactivate", function () {
|
panel.SetPanelEvent("onactivate", function () {
|
||||||
var ent = panel.GetAttributeInt("Ent", 0);
|
var ent = panel.GetAttributeInt("Ent", 0);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
panel.FindChild("AvatarImage").steamid = info.player_steamid;
|
panel.FindChild("AvatarImage").steamid = info.player_steamid;
|
||||||
panel.FindChild("PlayerAndHeroNameContainer").FindChild("PlayerNameLabel").text = info.player_name;
|
panel.FindChild("PlayerAndHeroNameContainer").FindChild("PlayerNameLabel").text = info.player_name;
|
||||||
panel.FindChild("PlayerAndHeroNameContainer").FindChild("HeroNameLabel").text = $.Localize(info.player_selected_hero);
|
panel.FindChild("PlayerAndHeroNameContainer").FindChild("HeroNameLabel").text = $.Localize("#" + info.player_selected_hero);
|
||||||
|
|
||||||
var table = CustomNetTables.GetTableValue("CustomGameInfo", "game_info" + info.player_steamid);
|
var table = CustomNetTables.GetTableValue("CustomGameInfo", "game_info" + info.player_steamid);
|
||||||
var KillCount = panel.FindChild("KillCount");
|
var KillCount = panel.FindChild("KillCount");
|
||||||
|
|||||||
@@ -384,7 +384,7 @@ function SetCardEvent(card, can_activate, isStartBonus, isSpecialBonus) {
|
|||||||
|
|
||||||
function CardPoolSetTowerTooltip( panel ) {
|
function CardPoolSetTowerTooltip( panel ) {
|
||||||
panel.SetPanelEvent("onmouseover", function () {
|
panel.SetPanelEvent("onmouseover", function () {
|
||||||
var text = $.Localize("DOTA_Tooltip_ability_" + panel.GetAttributeString("itemName", ""));
|
var text = $.Localize("#DOTA_Tooltip_ability_" + panel.GetAttributeString("itemName", ""));
|
||||||
$.DispatchEvent("DOTAShowTextTooltip", panel, text)
|
$.DispatchEvent("DOTAShowTextTooltip", panel, text)
|
||||||
});
|
});
|
||||||
panel.SetPanelEvent("onmouseout", function () {
|
panel.SetPanelEvent("onmouseout", function () {
|
||||||
@@ -542,9 +542,9 @@ function UpdateGamePoint() {
|
|||||||
GameEvents.Subscribe("select_bonus_card_no_finish", SelectStartBonusCard);
|
GameEvents.Subscribe("select_bonus_card_no_finish", SelectStartBonusCard);
|
||||||
|
|
||||||
var SelectStartCard = $("#SelectStartCard");
|
var SelectStartCard = $("#SelectStartCard");
|
||||||
SelectStartCard.SetDialogVariable("item1", $.Localize("#td_select_start_card") + $.Localize("DOTA_Tooltip_ability_item_0001"));
|
SelectStartCard.SetDialogVariable("item1", $.Localize("#td_select_start_card") + $.Localize("#DOTA_Tooltip_ability_item_0001"));
|
||||||
SelectStartCard.SetDialogVariable("item2", $.Localize("#td_select_start_card") + $.Localize("DOTA_Tooltip_ability_item_0002"));
|
SelectStartCard.SetDialogVariable("item2", $.Localize("#td_select_start_card") + $.Localize("#DOTA_Tooltip_ability_item_0002"));
|
||||||
SelectStartCard.SetDialogVariable("item3", $.Localize("#td_select_start_card") + $.Localize("DOTA_Tooltip_ability_item_0003"));
|
SelectStartCard.SetDialogVariable("item3", $.Localize("#td_select_start_card") + $.Localize("#DOTA_Tooltip_ability_item_0003"));
|
||||||
SelectStartCard.SetHasClass("Spawn", true);
|
SelectStartCard.SetHasClass("Spawn", true);
|
||||||
|
|
||||||
function renderText( panel, text ) {
|
function renderText( panel, text ) {
|
||||||
@@ -556,9 +556,9 @@ function UpdateGamePoint() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
renderText($("#Item1Description"), $.Localize("DOTA_Tooltip_ability_item_0001_Description"));
|
renderText($("#Item1Description"), $.Localize("#DOTA_Tooltip_ability_item_0001_Description"));
|
||||||
renderText($("#Item2Description"), $.Localize("DOTA_Tooltip_ability_item_0002_Description"));
|
renderText($("#Item2Description"), $.Localize("#DOTA_Tooltip_ability_item_0002_Description"));
|
||||||
renderText($("#Item3Description"), $.Localize("DOTA_Tooltip_ability_item_0003_Description"));
|
renderText($("#Item3Description"), $.Localize("#DOTA_Tooltip_ability_item_0003_Description"));
|
||||||
});
|
});
|
||||||
|
|
||||||
// 断线重连
|
// 断线重连
|
||||||
@@ -679,8 +679,8 @@ function setStrategy(index) {
|
|||||||
StrategyWindow.SetDialogVariable("StrategyText3", $.Localize("#td_strategy_" + index + "_text3"));
|
StrategyWindow.SetDialogVariable("StrategyText3", $.Localize("#td_strategy_" + index + "_text3"));
|
||||||
StrategyWindow.SetDialogVariable("StrategyTitle4", $.Localize("#td_strategy_" + index + "_title4"));
|
StrategyWindow.SetDialogVariable("StrategyTitle4", $.Localize("#td_strategy_" + index + "_title4"));
|
||||||
StrategyWindow.SetDialogVariable("StrategyText4", $.Localize("#td_strategy_" + index + "_text4"));
|
StrategyWindow.SetDialogVariable("StrategyText4", $.Localize("#td_strategy_" + index + "_text4"));
|
||||||
var img = $.Localize("#td_strategy_" + index + "_image");
|
var img = $.Localize("#td_strategy_" + index + "_image");
|
||||||
if (img === "" || img === "td_strategy_" + index + "_image")
|
if (img === "" || img === "#td_strategy_" + index + "_image")
|
||||||
$("#StrategyImage").SetImage("");
|
$("#StrategyImage").SetImage("");
|
||||||
else
|
else
|
||||||
$("#StrategyImage").SetImage("s2r://panorama/images/custom_game/" + img + ".vtex");
|
$("#StrategyImage").SetImage("s2r://panorama/images/custom_game/" + img + ".vtex");
|
||||||
@@ -816,7 +816,7 @@ function OnAiSkillEnable(data) {
|
|||||||
if (Entities.IsStunned(Players.GetPlayerHeroEntityIndex(Players.GetLocalPlayer()))) return;
|
if (Entities.IsStunned(Players.GetPlayerHeroEntityIndex(Players.GetLocalPlayer()))) return;
|
||||||
|
|
||||||
var KickAcceptPanel = $("#KickAcceptPanel");
|
var KickAcceptPanel = $("#KickAcceptPanel");
|
||||||
KickAcceptPanel.SetDialogVariable("msg", $.Localize("#th_ai_choose") + $.Localize(data.name) + " " + data.skill + " " + $.Localize("#skill") + ": " + $.Localize("DOTA_Tooltip_ability_thtd_" + data.name + "_0" + data.skill));
|
KickAcceptPanel.SetDialogVariable("msg", $.Localize("#th_ai_choose") + $.Localize("#" + data.name) + " " + data.skill + " " + $.Localize("#skill") + ": " + $.Localize("#DOTA_Tooltip_ability_thtd_" + data.name + "_0" + data.skill));
|
||||||
KickAcceptPanel.SetHasClass("Hide", false);
|
KickAcceptPanel.SetHasClass("Hide", false);
|
||||||
$("#KickVotePanel").SetHasClass("Hide", true);
|
$("#KickVotePanel").SetHasClass("Hide", true);
|
||||||
$("#KickYesButton").SetPanelEvent("onactivate", "AiChooseAccept()");
|
$("#KickYesButton").SetPanelEvent("onactivate", "AiChooseAccept()");
|
||||||
@@ -974,7 +974,7 @@ function RankShowCards(rankdata) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i === 0)
|
if (i === 0)
|
||||||
panel.FindChild("TextContent").GetChild(0).text = "爆弹数量:"+ card.power + "<br/>核心数量:"+ card.attack + "<br/>最后BOSS:" + (typeof card.damage == 'number' ? "" : $.Localize(card.damage));
|
panel.FindChild("TextContent").GetChild(0).text = "爆弹数量:"+ card.power + "<br/>核心数量:"+ card.attack + "<br/>最后BOSS:" + (typeof card.damage == 'number' ? "" : $.Localize("#" + card.damage));
|
||||||
else
|
else
|
||||||
panel.FindChild("TextContent").GetChild(0).text = "能量:"+ card.power + "<br/>攻击力:"+ card.attack + "<br/>伤害量:"+ damagetext;
|
panel.FindChild("TextContent").GetChild(0).text = "能量:"+ card.power + "<br/>攻击力:"+ card.attack + "<br/>伤害量:"+ damagetext;
|
||||||
|
|
||||||
@@ -1129,7 +1129,7 @@ function GameOverShowCards(rankdata) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i === 0)
|
if (i === 0)
|
||||||
panel.FindChild("TextContent").GetChild(0).text = "爆弹数量:"+ card.power + "<br/>核心数量:"+ card.attack + "<br/>最后BOSS:" + (typeof card.damage == 'number' ? "" : $.Localize(card.damage));
|
panel.FindChild("TextContent").GetChild(0).text = "爆弹数量:"+ card.power + "<br/>核心数量:"+ card.attack + "<br/>最后BOSS:" + (typeof card.damage == 'number' ? "" : $.Localize("#" + card.damage));
|
||||||
else
|
else
|
||||||
panel.FindChild("TextContent").GetChild(0).text = "能量:"+ card.power + "<br/>攻击力:"+ card.attack + "<br/>伤害量:"+ damagetext;
|
panel.FindChild("TextContent").GetChild(0).text = "能量:"+ card.power + "<br/>攻击力:"+ card.attack + "<br/>伤害量:"+ damagetext;
|
||||||
|
|
||||||
@@ -1317,7 +1317,7 @@ function TeamRankShowCards(rankdata) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i === 0)
|
if (i === 0)
|
||||||
panel.FindChild("TextContent").GetChild(0).text = "爆弹数量:"+ card.power + "<br/>核心数量:"+ card.attack + "<br/>最后BOSS:" + (typeof card.damage == 'number' ? "" : $.Localize(card.damage));
|
panel.FindChild("TextContent").GetChild(0).text = "爆弹数量:"+ card.power + "<br/>核心数量:"+ card.attack + "<br/>最后BOSS:" + (typeof card.damage == 'number' ? "" : $.Localize("#" + card.damage));
|
||||||
else
|
else
|
||||||
panel.FindChild("TextContent").GetChild(0).text = "能量:"+ card.power + "<br/>攻击力:"+ card.attack + "<br/>伤害量:"+ damagetext;
|
panel.FindChild("TextContent").GetChild(0).text = "能量:"+ card.power + "<br/>攻击力:"+ card.attack + "<br/>伤害量:"+ damagetext;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
//Fix Localize
|
||||||
|
/*
|
||||||
|
const __localize = $.Localize;
|
||||||
|
$.Localize = function (text, panel) {
|
||||||
|
if (text[0] !== '#'){
|
||||||
|
text = '#' + text;
|
||||||
|
}
|
||||||
|
if (panel) {
|
||||||
|
return __localize.call($, text, panel);
|
||||||
|
}
|
||||||
|
return __localize.call($, text);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
var CardCount_SSR = 10;
|
var CardCount_SSR = 10;
|
||||||
var CardCount_SR = 22;
|
var CardCount_SR = 22;
|
||||||
var CardCount_R = 40;
|
var CardCount_R = 40;
|
||||||
@@ -487,7 +501,7 @@ function UpdateSelectedCards( effectItemName ) {
|
|||||||
|
|
||||||
panel.SetPanelEvent("onactivate", "RemoveCard(" + i + ")");
|
panel.SetPanelEvent("onactivate", "RemoveCard(" + i + ")");
|
||||||
panel.SetDialogVariableInt("count", card.GetSelectedCount());
|
panel.SetDialogVariableInt("count", card.GetSelectedCount());
|
||||||
panel.SetDialogVariable("itemname", $.Localize("DOTA_Tooltip_ability_" + itemname));
|
panel.SetDialogVariable("itemname", $.Localize("#DOTA_Tooltip_ability_" + itemname));
|
||||||
panel.FindChild("Content").FindChildTraverse("ItemImage").itemname = itemname;
|
panel.FindChild("Content").FindChildTraverse("ItemImage").itemname = itemname;
|
||||||
panel.visible = true;
|
panel.visible = true;
|
||||||
|
|
||||||
@@ -599,8 +613,8 @@ function ShowPage( index ) {
|
|||||||
ContinueButton.SetDialogVariable("continue_text", $.Localize("#DOTA_UI_Confirmation_Continue"));
|
ContinueButton.SetDialogVariable("continue_text", $.Localize("#DOTA_UI_Confirmation_Continue"));
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#SetupTitle").text = $.Localize("td_ready_title" + index);
|
$("#SetupTitle").text = $.Localize("#td_ready_title" + index);
|
||||||
$("#SetupDescription").text = $.Localize("td_ready_title" + index + "_desc");
|
$("#SetupDescription").text = $.Localize("#td_ready_title" + index + "_desc");
|
||||||
}
|
}
|
||||||
|
|
||||||
function OnContinue() {
|
function OnContinue() {
|
||||||
@@ -723,7 +737,7 @@ function SaveCardGroup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function RenameCardGroupDialog() {
|
function RenameCardGroupDialog() {
|
||||||
ShowMessageDialog('RenameCardGroupInput', $.Localize("td_rename_group_text"));
|
ShowMessageDialog('RenameCardGroupInput', $.Localize("#td_rename_group_text"));
|
||||||
$("#MessageInput").text = $("#CardGroupText").text;
|
$("#MessageInput").text = $("#CardGroupText").text;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -760,7 +774,7 @@ function TrainCard(levelUp) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function ClearCardGroupDialog() {
|
function ClearCardGroupDialog() {
|
||||||
ShowMessageDialog('ClearCardGroup', $.Localize("td_clear_all_question"));
|
ShowMessageDialog('ClearCardGroup', $.Localize("#td_clear_all_question"));
|
||||||
}
|
}
|
||||||
|
|
||||||
function ClearCardGroup() {
|
function ClearCardGroup() {
|
||||||
@@ -816,7 +830,7 @@ function UpdateGamePoint() {
|
|||||||
var panel = $.CreatePanel("Panel", DifficultyPanel, "");
|
var panel = $.CreatePanel("Panel", DifficultyPanel, "");
|
||||||
panel.BLoadLayoutSnippet("DifficultyContainer");
|
panel.BLoadLayoutSnippet("DifficultyContainer");
|
||||||
panel.SetDialogVariableInt("difficulty", i+1);
|
panel.SetDialogVariableInt("difficulty", i+1);
|
||||||
panel.SetDialogVariable("difficultyText", $.Localize("difficulty_text_" + (i+1)));
|
panel.SetDialogVariable("difficultyText", $.Localize("#difficulty_text_" + (i+1)));
|
||||||
DifficultyPanel.MoveChildAfter(panel, DifficultyPanel.GetChild(i));
|
DifficultyPanel.MoveChildAfter(panel, DifficultyPanel.GetChild(i));
|
||||||
DifficultyContainerList.push(panel);
|
DifficultyContainerList.push(panel);
|
||||||
panel.SetPanelEvent("onactivate", "SelectDifficulty("+i+");");
|
panel.SetPanelEvent("onactivate", "SelectDifficulty("+i+");");
|
||||||
|
|||||||
@@ -164,9 +164,9 @@ TouhouCard.prototype.ShowInfo = function() {
|
|||||||
var isItem = this.bIsItem;
|
var isItem = this.bIsItem;
|
||||||
var quality = data.quality;
|
var quality = data.quality;
|
||||||
if ( isItem ) {
|
if ( isItem ) {
|
||||||
$("#CardInfoName").text = $.Localize("DOTA_Tooltip_ability_" + data.cardname);
|
$("#CardInfoName").text = $.Localize("#DOTA_Tooltip_ability_" + data.cardname);
|
||||||
} else {
|
} else {
|
||||||
$("#CardInfoName").text = $.Localize(data.cardname);
|
$("#CardInfoName").text = $.Localize("#" + data.cardname);
|
||||||
}
|
}
|
||||||
|
|
||||||
var CardInfoContent = $("#CardInfoContent");
|
var CardInfoContent = $("#CardInfoContent");
|
||||||
@@ -223,12 +223,12 @@ TouhouCard.prototype.ShowInfo = function() {
|
|||||||
for (var i = 0; i < 8; i++) {
|
for (var i = 0; i < 8; i++) {
|
||||||
var abilityname = "thtd_" + data.cardname + "_0" + i;
|
var abilityname = "thtd_" + data.cardname + "_0" + i;
|
||||||
var key = "DOTA_Tooltip_ability_" + abilityname;
|
var key = "DOTA_Tooltip_ability_" + abilityname;
|
||||||
var nameText = $.Localize(key);
|
var nameText = $.Localize("#" + key);
|
||||||
if (nameText !== key) {
|
if (nameText !== "#" + key) {
|
||||||
if (nameText.substr(0, 5) === "link_") {
|
if (nameText.substr(0, 5) === "link_") {
|
||||||
key = nameText.substr(5, nameText.length - 5);
|
key = nameText.substr(5, nameText.length - 5);
|
||||||
abilityname = key.substr("DOTA_Tooltip_ability_".length, key.length - "DOTA_Tooltip_ability_".length);
|
abilityname = key.substr("DOTA_Tooltip_ability_".length, key.length - "DOTA_Tooltip_ability_".length);
|
||||||
nameText = $.Localize(key);
|
nameText = $.Localize("#" + key);
|
||||||
}
|
}
|
||||||
var panel = CardAbilities.GetChild(index++);
|
var panel = CardAbilities.GetChild(index++);
|
||||||
if (!panel) {
|
if (!panel) {
|
||||||
|
|||||||
@@ -1,340 +1,322 @@
|
|||||||
"addon"
|
"addon"
|
||||||
{
|
{
|
||||||
//"DOTA_InventoryMenu_Sell" "Sell In Shop"
|
"DOTA_InventoryMenu_LockCombine" "Lock"
|
||||||
"DOTA_InventoryMenu_LockCombine" "Lock"
|
"DOTA_InventoryMenu_UnlockCombine" "Unlock"
|
||||||
"DOTA_InventoryMenu_UnlockCombine" "Unlock"
|
"DOTA_InventoryMenu_MoveToStash" "RePlace Items"
|
||||||
//"DOTA_InventoryMenu_LockCombine" "Sell"
|
"pause_game_btn" "Pause Game Forever"
|
||||||
//"DOTA_InventoryMenu_UnlockCombine" "Sell"
|
"continue" "Continue"
|
||||||
"DOTA_InventoryMenu_MoveToStash" "RePlace Items"
|
"place_item" "Organize Items"
|
||||||
"pause_game_btn" "Pause Game Forever"
|
"td_pawn_count" "PAWN AMOUNT:{d:count} / {d:max_count}"
|
||||||
"td_pawn_count" "PAWN AMOUNT:{d:count} / {d:max_count}"
|
"td_food_count" "{d:count} / 12"
|
||||||
"td_food_count" "{d:count} / 12"
|
"td_food_count_text" "FOOD AMOUNT"
|
||||||
"td_food_count_text" "FOOD AMOUNT"
|
"td_creature_kill_count" "POINT:{d:point} PAWN-KILLING AMOUNT:{d:count}"
|
||||||
"td_creature_kill_count" "POINT:{d:point} PAWN-KILLING AMOUNT:{d:count}"
|
"td_creature_kill_count_text" "KILLING AMOUNT"
|
||||||
"td_creature_kill_count_text" "KILLING AMOUNT"
|
"td_tower_dps_title" "DAMAGE STATS"
|
||||||
"td_tower_dps_title" "DAMAGE STATS"
|
"td_attacking_wave" "WAVE {d:wave}"
|
||||||
"td_attacking_wave" "WAVE {d:wave}"
|
"td_type" "TYPE:"
|
||||||
"td_type" "TYPE:"
|
"td_random_group" "Random Deck"
|
||||||
"td_auto_save_group" "AUTO SAVE GROUP"
|
"td_gamepoint_desc" "GAME POINT<br/>CAN BE GAINED BY COMPLETING GAMES. "
|
||||||
"td_gamepoint_desc" "GAME POINT<br/>CAN BE GAINED BY COMPLETING GAMES. "
|
"td_card_pool" "CARD DECK"
|
||||||
"td_card_pool" "CARD DECK"
|
"td_card_group" "Group"
|
||||||
"td_card_group" "Group"
|
"td_load_tips" "This game can be played locally.<br><br>Don't take the leaderboard too seriously."
|
||||||
"td_remove_card" "Remove Card"
|
"td_train_card_title" "Boost Potential"
|
||||||
"td_show_card_info" "Show Card Info"
|
"td_train_card_cost" "×{d:amount}"
|
||||||
"td_select_card" "Select Card"
|
"td_train_card_question" "Permanently increase card potential, each level requires {d:amount}x Game Points<br><br>Left click for 1 level, right click for 50<br><br>Activate potential by using Awakening for increased stats and improved abilities<br><br>Game Points can be earned from daily chests or leaderboard ranking"
|
||||||
"td_select_bonus_card" "Select Bonus Card (20 Points)"
|
"td_refresh_desc" "Refresh server data"
|
||||||
"td_select_bonus_card_vip" "Select Bonus Card"
|
"td_patron_desc" "If you want to donate, go play the official game"
|
||||||
"td_select_battle_bonus_card" "Select Battle Bonus Card"
|
"td_select_card" "Select Card"
|
||||||
"td_card_pool_note" "NOTE"
|
"td_select_start_card" "Choose initial card : "
|
||||||
"td_card_pool_note_desc" "Note: Each SSR/SR/R card can only put 5 cards to the card group, and each N card can only put 10 cards to the card group."
|
"td_select_bonus_card_vip" "Select Bonus Card"
|
||||||
"td_clear_all" "CLEAR CARD GROUP"
|
"td_select_battle_bonus_card" "Select Battle Bonus Card"
|
||||||
"td_clear_all_question" "DO YOU SURE CLEAR CARD GROUP?"
|
"td_card_pool_note" "NOTE"
|
||||||
"td_rename_group" "RENAME GROUP"
|
"td_card_pool_note_desc" "Note: Each SSR/SR/R card can only put 5 cards to the card group, and each N card can only put 10 cards to the card group."
|
||||||
"td_rename_group_text" "Please input new card group name:"
|
"td_clear_all" "CLEAR CARD GROUP"
|
||||||
"td_ready_title1" "SETUP CARD GROUP"
|
"td_clear_all_question" "DO YOU SURE CLEAR CARD GROUP\?"
|
||||||
"td_ready_title1_desc" "The preparation time is <font color='#FFB207'>5 minutes</font> in a multiplayer time and <font color='#FFB207'>30 minutes</font> in a single person. Please remember the save card group"
|
"td_rename_group" "RENAME GROUP"
|
||||||
"td_ready_title2" "SELECT DIFFICULTY"
|
"td_rename_group_text" "Please input new card group name:"
|
||||||
"td_ready_title2_desc" ""
|
"td_ready_title1" "SETUP CARD GROUP"
|
||||||
"td_ready_title3" "WAITING"
|
"td_ready_title1_desc" "The preparation time is <font color=\'#FFB207\'>5 minutes</font> in a multiplayer time and <font color=\'#FFB207\'>30 minutes</font> in a single person. Please remember the save card group"
|
||||||
"td_ready_title3_desc" "Waiting other players complete setup"
|
"td_ready_title2" "SELECT DIFFICULTY"
|
||||||
"donate" "DONATE"
|
"td_ready_title2_desc" "In a tie, lowest difficulty will be picked"
|
||||||
"difficulty_text_1" "NORMAL"
|
"td_ready_title3" "WAITING"
|
||||||
"difficulty_text_2" "EXTRA"
|
"td_ready_title3_desc" "Waiting other players complete setup"
|
||||||
"difficulty_text_3" "UNLIMITED"
|
"donate" "DONATE"
|
||||||
"difficulty_text_4" "RANDOM"
|
"sponsor_note" "Note: Amount entered must be <font color=\'#FFB207\'>{s:Amount}</font>,or processing will fail,<font color=\'#fa5c00\'>Remaining Time:{s:LeftTime}</font>"
|
||||||
"difficulty_text_5" "CHALLENGE"
|
"pay_complete" "Completed payment"
|
||||||
"difficulty_text_6" "FUNNY"
|
"pay_back_button" "返回({d:timeout})"
|
||||||
"difficulty_text_7" "FUNNY RANK"
|
"pay_tip_mode1" "Can be used to train cards and buy keys"
|
||||||
"td_select_start_card" "Choose initial card : "
|
"pay_tip_mode2" "Permanently upgrade your pet's level to increase the number of treasure chest keys, automatically explode bombs for missed monster overruns, increase your pet's appearance and special effects, gain additional loot options, and more.<br><br>And get special rewards for the duration, including access to 20 deck slots and entertainment mode at any time, view leaderboard lineup breakdown, card skins, new card inclusions, and more."
|
||||||
"td_rank_list_100" "Top Rank"
|
"td_cosmetic" "Toy"
|
||||||
"td_rank_list_100_desc" "TOP 100 RANK LIST"
|
"difficulty_text_1" "NORMAL"
|
||||||
"td_team_rank_list_100" "Top Rank In Team"
|
"difficulty_text_2" "EXTRA"
|
||||||
"td_team_rank_list_100_desc" "TOP 100 RANK LIST IN TEAM MODE"
|
"difficulty_text_3" "UNLIMITED"
|
||||||
"td_rank_list_100_tip" "The maximum wave number required on the list: at the end of the wave, the number of PAWN AMOUNT was not more than 10, and no boom were used. Difficulty 6 to 9 can be either on-single or on-multiplayer. The maximum number of injuries and card information will be recorded on the list. Click to open the rank."
|
"difficulty_text_4" "RANDOM"
|
||||||
"td_kick_vote" "KickPlayer"
|
"difficulty_text_5" "CHALLENGE"
|
||||||
"kick_player_1" "Kick out <font color='#FFB207'>left-top</font> player"
|
"difficulty_text_6" "FUNNY"
|
||||||
"kick_player_2" "Kick out <font color='#FFB207'>right-top</font> player"
|
"difficulty_text_7" "FUNNY RANK"
|
||||||
"kick_player_3" "Kick out <font color='#FFB207'>right-bottom</font> player"
|
"td_rank_list_100" "Top Rank"
|
||||||
"kick_player_4" "Kick out <font color='#FFB207'>left-bottom</font> player"
|
"td_rank_list_100_desc" "TOP 100 RANK LIST"
|
||||||
"kick_player_unauth" "only the player in progress game can vote"
|
"td_team_rank_list_100" "Peak Top Rank"
|
||||||
"kick_player_ask" "Are you agree?"
|
"td_team_rank_list_100_desc" "TOP 100 RANK LIST IN PEAK MODE"
|
||||||
"yes" "Yes"
|
"td_rank_list_100_tip" "The maximum wave number required on the list: at the end of the wave, the number of PAWN AMOUNT was not more than 10, and no boom were used. Difficulty 6 to 9 can be either on-single or on-multiplayer. The maximum number of injuries and card information will be recorded on the list. Click to open the rank."
|
||||||
"no" "No"
|
"td_kick_vote" "KickPlayer"
|
||||||
"th_ai_choose" "Do you want AI to automatically release the following skills : "
|
"kick_player_1" "Kick out <font color=\'#FFB207\'>left-top</font> player"
|
||||||
"skill" "Skill"
|
"kick_player_2" "Kick out <font color=\'#FFB207\'>right-top</font> player"
|
||||||
"td_tutorial_video" "Tutorial"
|
"kick_player_3" "Kick out <font color=\'#FFB207\'>right-bottom</font> player"
|
||||||
"td_video_tip" "If you want to watch tutorial videos, you can press F9 to pause the game. It is best to pause the game when you are alone. Do not influence your teammates."
|
"kick_player_4" "Kick out <font color=\'#FFB207\'>left-bottom</font> player"
|
||||||
"td_strategy_0_left_title" "【Video】"
|
"kick_player_unauth" "only the player in progress game can vote"
|
||||||
"td_strategy_0_main_title" "Comprehensive introduction of short films"
|
"kick_player_ask" "Are you agree\?"
|
||||||
"td_strategy_0_sub_title" "6 minutes video how to play games"
|
"yes" "Yes"
|
||||||
"td_strategy_0_url" "http://static.yueyutech.com/bilibili/index.html?u=Ly9wbGF5ZXIuYmlsaWJpbGkuY29tL3BsYXllci5odG1sP2FpZD00ODQ5ODk0NyZjaWQ9Mzc5NzU3NzgmcGFnZT0x"
|
"no" "No"
|
||||||
"td_strategy_0_image" ""
|
"th_ai_choose" "Do you want AI to automatically release the following skills : "
|
||||||
"td_strategy_0_title1" "Card List"
|
"skill" "Skill"
|
||||||
"td_strategy_0_text1" "Update..."
|
"td_tutorial_video" "Tutorial"
|
||||||
"td_strategy_0_title2" "Operation method"
|
"td_video_tip" "If you want to watch tutorial videos, you can press F9 to pause the game. It is best to pause the game when you are alone. Do not influence your teammates."
|
||||||
"td_strategy_0_text2" ""
|
"td_strategy_0_left_title" "【Video】"
|
||||||
"td_strategy_0_title3" "Card Group"
|
"td_strategy_0_main_title" "Comprehensive introduction of short films"
|
||||||
"td_strategy_0_text3" ""
|
"td_strategy_0_sub_title" "6 minutes video how to play games"
|
||||||
"td_strategy_0_title4" "Station position"
|
"td_strategy_0_url" "http://static.yueyutech.com/bilibili/index.html\?u=Ly9wbGF5ZXIuYmlsaWJpbGkuY29tL3BsYXllci5odG1sP2FpZD00ODQ5ODk0NyZjaWQ9Mzc5NzU3NzgmcGFnZT0x"
|
||||||
"td_strategy_0_text4" ""
|
"td_strategy_0_image" ""
|
||||||
"td_strategy_1_left_title" "【Artifice】"
|
"td_strategy_0_title1" "Card List"
|
||||||
"td_strategy_1_main_title" "No network single player game method"
|
"td_strategy_0_text1" "Update..."
|
||||||
"td_strategy_1_sub_title" "Introduction to how to conduct single game and permanent suspension without network or Dota2 maintenance."
|
"td_strategy_0_title2" "Operation method"
|
||||||
"td_strategy_1_url" ""
|
"td_strategy_0_text2" "The leaderboard will show group details, but avoid mindless copying."
|
||||||
"td_strategy_1_image" ""
|
"td_strategy_0_title3" "Card Group"
|
||||||
"td_strategy_1_title1" "Turn on the Dota2 console"
|
"td_strategy_0_text3" "You can use Game Points (from daily chests and ranking entries) to strengthen cards potential and boost them with Awakening.<br><br>On infinite potential event day, you'll start with a full potential consumable and 3x 500 wave jump scrolls.<br><br>Normal play goes into the top ranks, using awakening on potential will lead to the Peak Scoreboard.<br><br>You cannot donate on this version. Everyone gets VIP."
|
||||||
"td_strategy_1_text1" "At the starter interface, click Settings , set the startup options in the lower right corner, and enter the -console .Or after entering the game, click on the options, click below to go to the advanced options, and check the Enabled Console below the first row on the left."
|
"td_strategy_0_title4" "Station position"
|
||||||
"td_strategy_1_title2" "Single player game method"
|
"td_strategy_0_text4" "一群:76163954,二群:789182175,三群:893289514。有关更新讨论、内部代码、宠物小灵\n\t战利品等相关信息可在群里详细了解,以及交流开黑等。<br><br>创建房间输入密码开黑,可以永久暂停。本地图掉线或直接关闭游戏将自动永久暂停。小地图上方有永久暂停按钮。<br><br>截图路径:C:\\Game\\Dota2\\steamapps\\common\\dota 2 beta\\game\\dota\\screenshots<br>截图快捷键在设置里改,默认F6。<br><br>steam启动国服,在库Dota2右键属性,点设置启动选项,输入 -perfectworld "
|
||||||
"td_strategy_1_text2" "This mode can be permanently suspended. After entering the game, press the \ key to open the console, copy and paste the following commands, basically zero traffic.<br/>dota_launch_custom_game 1523213505 touhoutd"
|
"td_strategy_1_left_title" "【Artifice】"
|
||||||
"td_strategy_1_title3" "Disable Dota2 initiator update method"
|
"td_strategy_1_main_title" "No network single player game method"
|
||||||
"td_strategy_1_text3" "After opening the starter, click Download - Pause to stop updating, then press Win + R to open and run. After running the following command, enter the game prompt version and turn it off low (C: Game Dota2 is the installation path, there is a space in front of console).<br/>C:\Game\Dota2\steamapps\common\dota 2 beta\game\bin\win64\dota2.exe –console"
|
"td_strategy_1_sub_title" "Introduction to how to conduct single game and permanent suspension without network or Dota2 maintenance."
|
||||||
"td_strategy_1_title4" "Common path"
|
"td_strategy_1_url" ""
|
||||||
"td_strategy_1_text4" "Screenshot : C:\Game\Dota2\steamapps\common\dota 2 beta\game\dota\screenshots<br/><br/>Custom map path : C:\Game\Dota2\steamapps\workshop\content\570\"
|
"td_strategy_1_image" ""
|
||||||
"td_strategy_2_left_title" "【Operation】"
|
"td_strategy_1_title1" "Turn on the Dota2 console"
|
||||||
"td_strategy_2_main_title" "Novice leisure operation method"
|
"td_strategy_1_text1" "At the starter interface, click Settings , set the startup options in the lower right corner, and enter the -console .Or after entering the game, click on the options, click below to go to the advanced options, and check the Enabled Console below the first row on the left."
|
||||||
"td_strategy_2_sub_title" "Introduces several sets of operation methods with low operational requirements."
|
"td_strategy_1_title2" "Single player game method"
|
||||||
"td_strategy_2_url" ""
|
"td_strategy_1_text2" "This mode can be permanently suspended. After entering the game, press the \\ key to open the console, copy and paste the following commands, basically zero traffic.<br/>dota_launch_custom_game 1523213505 touhoutd"
|
||||||
"td_strategy_2_image" ""
|
"td_strategy_1_title3" "Disable Dota2 initiator update method"
|
||||||
"td_strategy_2_title1" ""
|
"td_strategy_1_text3" "After opening the starter, click Download - Pause to stop updating, then press Win + R to open and run. After running the following command, enter the game prompt version and turn it off low (C: Game Dota2 is the installation path, there is a space in front of console).<br/>C:\\Game\\Dota2\\steamapps\\common\\dota 2 beta\\game\bin\\win64\\dota2.exe –console"
|
||||||
"td_strategy_2_text1" ""
|
"td_strategy_1_title4" "Common path"
|
||||||
"td_strategy_2_title2" ""
|
"td_strategy_1_text4" "Screenshot : C:\\Game\\Dota2\\steamapps\\common\\dota 2 beta\\game\\dota\\screenshots<br/><br/>Custom map path : C:\\Game\\Dota2\\steamapps\\workshop\\content\\570\"\n\t"
|
||||||
"td_strategy_2_text2" ""
|
"td_strategy_2_left_title" "【Video】"
|
||||||
"td_strategy_2_title3" ""
|
"td_strategy_2_main_title" "Novice leisure operation method"
|
||||||
"td_strategy_2_text3" ""
|
"td_strategy_2_sub_title" "Introduces several sets of operation methods with low operational requirements."
|
||||||
"td_strategy_2_title4" ""
|
"td_strategy_2_url" "http://static.yueyutech.com/bilibili/index.html\?u=Ly9wbGF5ZXIuYmlsaWJpbGkuY29tL3BsYXllci5odG1sP2FpZD00ODQ5ODk0NyZjaWQ9Mzc5NzU3NzgmcGFnZT0x"
|
||||||
"td_strategy_2_text4" ""
|
"td_strategy_2_image" ""
|
||||||
"td_strategy_3_left_title" ""
|
"td_strategy_2_title1" "Lineup Composition"
|
||||||
"td_strategy_3_main_title" ""
|
"td_strategy_2_text1" "Update in progress..."
|
||||||
"td_strategy_3_sub_title" ""
|
"td_strategy_2_title2" "Operation Method"
|
||||||
"td_strategy_3_url" ""
|
"td_strategy_2_text2" ""
|
||||||
"td_strategy_3_image" ""
|
"td_strategy_2_title3" "Deck List"
|
||||||
"td_strategy_3_title1" ""
|
"td_strategy_2_text3" ""
|
||||||
"td_strategy_3_text1" ""
|
"td_strategy_2_title4" "Standings"
|
||||||
"td_strategy_3_title2" ""
|
"td_strategy_2_text4" ""
|
||||||
"td_strategy_3_text2" ""
|
"td_strategy_3_left_title" "【Video】"
|
||||||
"td_strategy_3_title3" ""
|
"td_strategy_3_main_title" "Newbie help, complete collection of finishing"
|
||||||
"td_strategy_3_text3" ""
|
"td_strategy_3_sub_title" "P2:秋静叶开局运营(相对双白要轻松许多,没有什么严格要求,懒人必备)"
|
||||||
"td_strategy_3_title4" ""
|
"td_strategy_3_url" "http://static.yueyutech.com/bilibili/index.html\?u=Ly9wbGF5ZXIuYmlsaWJpbGkuY29tL3BsYXllci5odG1sP2FpZD00ODQ5ODk0NyZjaWQ9Mzc5NzU3NzgmcGFnZT0y"
|
||||||
"td_strategy_3_text4" ""
|
"td_strategy_3_image" ""
|
||||||
"td_strategy_4_left_title" ""
|
"td_strategy_3_title1" "Lineup Composition"
|
||||||
"td_strategy_4_main_title" ""
|
"td_strategy_3_text1" "Update in progress..."
|
||||||
"td_strategy_4_sub_title" ""
|
"td_strategy_3_title2" "Operation Method"
|
||||||
"td_strategy_4_url" ""
|
"td_strategy_3_text2" ""
|
||||||
"td_strategy_4_image" ""
|
"td_strategy_3_title3" "Deck List"
|
||||||
"td_strategy_4_title1" ""
|
"td_strategy_3_text3" ""
|
||||||
"td_strategy_4_text1" ""
|
"td_strategy_3_title4" "Standings"
|
||||||
"td_strategy_4_title2" ""
|
"td_strategy_3_text4" ""
|
||||||
"td_strategy_4_text2" ""
|
"td_strategy_4_left_title" "【视频】"
|
||||||
"td_strategy_4_title3" ""
|
"td_strategy_4_main_title" "新手必看,最全整理合集"
|
||||||
"td_strategy_4_text3" ""
|
"td_strategy_4_sub_title" "P3:卡组搭配(简单来说就是多看,多想,每个卡都有什么作用)"
|
||||||
"td_strategy_4_title4" ""
|
"td_strategy_4_url" "http://static.yueyutech.com/bilibili/index.html\?u=Ly9wbGF5ZXIuYmlsaWJpbGkuY29tL3BsYXllci5odG1sP2FpZD00ODQ5ODk0NyZjaWQ9Mzc5NzU3NzgmcGFnZT0z"
|
||||||
"td_strategy_4_text4" ""
|
"td_strategy_4_image" ""
|
||||||
"td_strategy_5_left_title" ""
|
"td_strategy_4_title1" "Lineup Composition"
|
||||||
"td_strategy_5_main_title" ""
|
"td_strategy_4_text1" "Update in progress..."
|
||||||
"td_strategy_5_sub_title" ""
|
"td_strategy_4_title2" "Operation Method"
|
||||||
"td_strategy_5_url" ""
|
"td_strategy_4_text2" ""
|
||||||
"td_strategy_5_image" ""
|
"td_strategy_4_title3" "Deck List"
|
||||||
"td_strategy_5_title1" ""
|
"td_strategy_4_text3" ""
|
||||||
"td_strategy_5_text1" ""
|
"td_strategy_4_title4" "Standings"
|
||||||
"td_strategy_5_title2" ""
|
"td_strategy_4_text4" ""
|
||||||
"td_strategy_5_text2" ""
|
"td_strategy_5_left_title" "【视频】"
|
||||||
"td_strategy_5_title3" ""
|
"td_strategy_5_main_title" "新手必看,最全整理合集"
|
||||||
"td_strategy_5_text3" ""
|
"td_strategy_5_sub_title" "P4:娱乐模式运营-摆位(希望每个人都有自己的思路,不要一味模仿)"
|
||||||
"td_strategy_5_title4" ""
|
"td_strategy_5_url" "http://static.yueyutech.com/bilibili/index.html\?u=Ly9wbGF5ZXIuYmlsaWJpbGkuY29tL3BsYXllci5odG1sP2FpZD00ODQ5ODk0NyZjaWQ9Mzc5NzU3NzgmcGFnZT00"
|
||||||
"td_strategy_5_text4" ""
|
"td_strategy_5_image" ""
|
||||||
"td_strategy_6_left_title" ""
|
"td_strategy_5_title1" "Lineup Composition"
|
||||||
"td_strategy_6_main_title" ""
|
"td_strategy_5_text1" "Update in progress..."
|
||||||
"td_strategy_6_sub_title" ""
|
"td_strategy_5_title2" "Operation Method"
|
||||||
"td_strategy_6_url" ""
|
"td_strategy_5_text2" ""
|
||||||
"td_strategy_6_image" ""
|
"td_strategy_5_title3" "Deck List"
|
||||||
"td_strategy_6_title1" ""
|
"td_strategy_5_text3" ""
|
||||||
"td_strategy_6_text1" ""
|
"td_strategy_5_title4" "Standings"
|
||||||
"td_strategy_6_title2" ""
|
"td_strategy_5_text4" ""
|
||||||
"td_strategy_6_text2" ""
|
"td_strategy_6_left_title" "【Operations】"
|
||||||
"td_strategy_6_title3" ""
|
"td_strategy_6_main_title" "Newbie Leisure Operation Method"
|
||||||
"td_strategy_6_text3" ""
|
"td_strategy_6_sub_title" "Low Requirement Operation Method"
|
||||||
"td_strategy_6_title4" ""
|
"td_strategy_6_url" ""
|
||||||
"td_strategy_6_text4" ""
|
"td_strategy_6_image" ""
|
||||||
"td_strategy_7_left_title" ""
|
"td_strategy_6_title1" "Autumn, rats and daiyousei"
|
||||||
"td_strategy_7_main_title" ""
|
"td_strategy_6_text1" "Deck Suggests 1xDaiyousei, 5xMinoriko, 4xCoin Box, 3xLunasa, 2xKogasa, 2xSatori(or other slow)。<br><br>守家20 30 40波后分别是3星露娜3星小伞,4星满培露娜3星小伞,5星露娜4星满培小伞(或双4星露娜带装备,或4星露娜5星帕秋莉)。<br><br>开局秋瓤子,开抽两秋静叶并满培,11波前只留露娜和老鼠,其他全卖。场上妖精最小化保证守家要求即可,抽卖卖抽。11波后拔下三星瓤子换鼠(如有),减速如觉上场。 双秋满培后,R卡不买,开始抽干卡池,一二星狗粮升级只买药。25到30波第一秋一收给老鼠,28到33波第二秋一收给另一个老鼠再升个三星和二星变二星狗粮,秋二鼠成型。<br><br>2500开抽继续抽干卡池,秋二收后换大妖精上场,秒升级到4星,此时场上只有3收益卡 露娜小伞 减速,6个妖精位,根据阵容需要算好妖精数量如21个,17个(零头妖精要和无尽后不需要的4星卡刚好成4个),剩余妖精养到3星,此后不再上妖精,上阵容卡升级。<br><br>保底五星算法:露娜大妖精双鼠4个五星,21个狗粮5个,多出1个妖精加小伞,秋换后的两个阵容4星卡,刚好10个五星。"
|
||||||
"td_strategy_7_sub_title" ""
|
"td_strategy_6_title2" "Autumn, two rats and laziness"
|
||||||
"td_strategy_7_url" ""
|
"td_strategy_6_text2" "After first minoriko just feed, two rats and autumn to the end, guaranteed 7x 5 stars"
|
||||||
"td_strategy_7_image" ""
|
"td_strategy_6_title3" "Shou, Seiga & Shinki Operation"
|
||||||
"td_strategy_7_title1" ""
|
"td_strategy_6_text3" "Start white or minoriko,speed 5 star Seiga,speed 5 star Shinki,5 star shou,can go about 12 5 stars。Pay attention to collecting,set seiga so enemies die in her aura."
|
||||||
"td_strategy_7_text1" ""
|
"td_strategy_6_title4" "Second upgrade tips"
|
||||||
"td_strategy_7_title2" ""
|
"td_strategy_6_text4" "Use fairies in place of buying nostrums directly, 4x 4 star fairies are cheaper to make than 4x 4 star nostrums."
|
||||||
"td_strategy_7_text2" ""
|
"td_strategy_7_left_title" "【Lineup】"
|
||||||
"td_strategy_7_title3" ""
|
"td_strategy_7_main_title" "March Precision Team"
|
||||||
"td_strategy_7_text3" ""
|
"td_strategy_7_sub_title" "最低5个五星的挂机流过Extra的阵容"
|
||||||
"td_strategy_7_title4" ""
|
"td_strategy_7_url" ""
|
||||||
"td_strategy_7_text4" ""
|
"td_strategy_7_image" ""
|
||||||
"td_strategy_8_left_title" ""
|
"td_strategy_7_title1" "Lineup Composition"
|
||||||
"td_strategy_8_main_title" ""
|
"td_strategy_7_text1" "5星:满培露娜,满培觉,满培斯塔,红美铃,桑尼。<br><br>可选5星:觉醒露米娅,满培火焰猫,满培八云紫。<br><br>其他:4星十六夜,3星梅蒂欣2个,1星满培慧音。<br><br>如果5星不足,可觉醒露米娅后用秋瓤子把她五星再换到别人。<br><br>装备:露娜4神枪2船勾或玉,斯塔4相机2玉,觉4桨2勾,一梅蒂欣4核棒,露米娅4狗牙。"
|
||||||
"td_strategy_8_sub_title" ""
|
"td_strategy_7_title2" "Operation Method"
|
||||||
"td_strategy_8_url" ""
|
"td_strategy_7_text2" "随意。"
|
||||||
"td_strategy_8_image" ""
|
"td_strategy_7_title3" "Deck List"
|
||||||
"td_strategy_8_title1" ""
|
"td_strategy_7_text3" "SSR卡:2八云紫,4神枪,4相机。<br><br>SR卡:2上白泽慧音,2火焰猫,十六夜,4船勾,4核棒,4狗牙,4炸弹,博丽护身符,4其它如晕刀。<br><br>R卡:5秋静叶,3纳兹林,3露娜,2斯塔,桑尼,2古明地觉,2梅蒂欣,红美铃,露米娅,4玉,4月耀,4人形,4御币,4船浆。"
|
||||||
"td_strategy_8_text1" ""
|
"td_strategy_7_title4" ""
|
||||||
"td_strategy_8_title2" ""
|
"td_strategy_7_text4" ""
|
||||||
"td_strategy_8_text2" ""
|
"td_strategy_8_left_title" "【Lineup】"
|
||||||
"td_strategy_8_title3" ""
|
"td_strategy_8_main_title" "Marisa Team"
|
||||||
"td_strategy_8_text3" ""
|
"td_strategy_8_sub_title" "最低6个五星的挂机流过Extra的阵容"
|
||||||
"td_strategy_8_title4" ""
|
"td_strategy_8_url" ""
|
||||||
"td_strategy_8_text4" ""
|
"td_strategy_8_image" ""
|
||||||
"td_strategy_9_left_title" ""
|
"td_strategy_8_title1" "Lineup Composition"
|
||||||
"td_strategy_9_main_title" ""
|
"td_strategy_8_text1" "五星:满培魔理沙,随缘培大妖精,两个满培帕秋莉,满培小恶魔,满培蕾蒂。<br><br>可选五星:满培琪露诺,随缘培八云紫。<br><br>其他:三星灵梦,2个三星梅蒂欣,一星玲仙。<br><br>湖葬帕秋莉放琪露诺旁(必须把湖葬帕秋莉放最前面),带4核棒。魔理沙4相机2玉。"
|
||||||
"td_strategy_9_sub_title" ""
|
"td_strategy_8_title2" "Operation Method"
|
||||||
"td_strategy_9_url" ""
|
"td_strategy_8_text2" "随意。"
|
||||||
"td_strategy_9_image" ""
|
"td_strategy_8_title3" "Deck List"
|
||||||
"td_strategy_9_title1" ""
|
"td_strategy_8_text3" "SSR卡:2个大妖精,2个八云紫,神琦,灵梦,4个相机。<br><br>SR卡: 3个帕秋莉,2个魔理沙,玲仙,4船勾,4核棒,4炸弹,博丽护身符。<br><br>R卡:5秋静叶,4御币,3老鼠,4露娜,2琪露诺,2小恶魔,2雷帝,2梅蒂欣,4玉,4月耀,4人形,4船桨。"
|
||||||
"td_strategy_9_text1" ""
|
"td_strategy_8_title4" ""
|
||||||
"td_strategy_9_title2" ""
|
"td_strategy_8_text4" ""
|
||||||
"td_strategy_9_text2" ""
|
"td_strategy_9_left_title" "【Lineup】"
|
||||||
"td_strategy_9_title3" ""
|
"td_strategy_9_main_title" "Yuyuko Team"
|
||||||
"td_strategy_9_text3" ""
|
"td_strategy_9_sub_title" "最低5个五星的挂机流过Extra的阵容"
|
||||||
"td_strategy_9_title4" ""
|
"td_strategy_9_url" ""
|
||||||
"td_strategy_9_text4" ""
|
"td_strategy_9_image" ""
|
||||||
"td_strategy_10_left_title" ""
|
"td_strategy_9_title1" "Lineup Composition"
|
||||||
"td_strategy_10_main_title" ""
|
"td_strategy_9_text1" "五星:4个满培幽幽子,红美铃。<br><br>可选五星:八云蓝,满培八云紫。<br><br>其他:一星挂件妖梦和橙,三星梅蒂欣,一星玲仙或4星十六夜,一星满培慧音切白泽关ai。<br><br>装备:4相机、4玉、4月弩、4晕刀全部拆成两件套给幽幽子,4核棒给八云蓝。"
|
||||||
"td_strategy_10_sub_title" ""
|
"td_strategy_9_title2" "Operation Method"
|
||||||
"td_strategy_10_url" ""
|
"td_strategy_9_text2" "随意。前期减速琪露诺带4人形,后换4星八云蓝带核棒。"
|
||||||
"td_strategy_10_image" ""
|
"td_strategy_9_title3" "Deck List"
|
||||||
"td_strategy_10_title1" ""
|
"td_strategy_9_text3" "SSR卡:2八云紫,大妖精,御币,4相机。<br><br>SR卡:2慧音,5幽幽子,八云蓝,魂魄妖梦,玲仙或十六夜,博丽护身符,4核棒,4晕刀,3炸弹。<br><br>R卡:5秋静叶,4纳兹林,红美铃,橙,梅蒂欣,5露娜,2小伞,琪露诺, 4御币,4玉,4月弩,4月耀,4人形。"
|
||||||
"td_strategy_10_text1" ""
|
"td_strategy_9_title4" ""
|
||||||
"td_strategy_10_title2" ""
|
"td_strategy_9_text4" ""
|
||||||
"td_strategy_10_text2" ""
|
"td_strategy_10_left_title" "【Lineup】"
|
||||||
"td_strategy_10_title3" ""
|
"td_strategy_10_main_title" "Traditional Shrine Team"
|
||||||
"td_strategy_10_text3" ""
|
"td_strategy_10_sub_title" "最低5个五星的轻松过Extra的阵容"
|
||||||
"td_strategy_10_title4" ""
|
"td_strategy_10_url" ""
|
||||||
"td_strategy_10_text4" ""
|
"td_strategy_10_image" ""
|
||||||
"td_strategy_11_left_title" ""
|
"td_strategy_10_title1" "Lineup Composition"
|
||||||
"td_strategy_11_main_title" ""
|
"td_strategy_10_text1" "五星:满培神子,满培青娥,满培减抗三人组帕秋莉小恶魔雷帝。<br><br>可选五星:2个满培苏我,2个满培僵尸。<br><br>其他:四星满培琪露诺,另一个四星苏我,一星布都。<br><br>装备:神子4相机2玉,青娥4船桨2船勾,帕秋莉4核棒,一个僵尸4狗牙,一个僵尸青娥技能。"
|
||||||
"td_strategy_11_sub_title" ""
|
"td_strategy_10_title2" "Operation Method"
|
||||||
"td_strategy_11_url" ""
|
"td_strategy_10_text2" "秋二鼠大妖精。"
|
||||||
"td_strategy_11_image" ""
|
"td_strategy_10_title3" "Deck List"
|
||||||
"td_strategy_11_title1" ""
|
"td_strategy_10_text3" "SSR卡:2神子,大妖精,御币,4机机,2八卦。<br><br>SR卡:2霍青娥,2帕秋莉,3苏我,物理布都,4狗牙,4核棒,3炸弹,2船勾,博丽护身符。<br><br>R卡:3 纳兹林,2雷蒂,2琪露诺,3露娜,2小恶魔,5秋静叶,3宫古芳香,4玉,4船浆,4月耀,4人形,4御币。"
|
||||||
"td_strategy_11_text1" ""
|
"td_strategy_10_title4" "Standings"
|
||||||
"td_strategy_11_title2" ""
|
"td_strategy_10_text4" "只有高波文文会漏,要备炸弹。"
|
||||||
"td_strategy_11_text2" ""
|
"td_strategy_11_left_title" "【Lineup】"
|
||||||
"td_strategy_11_title3" ""
|
"td_strategy_11_main_title" "纯粹神灵庙队"
|
||||||
"td_strategy_11_text3" ""
|
"td_strategy_11_sub_title" "7个五星的挂机流过Extra的阵容"
|
||||||
"td_strategy_11_title4" ""
|
"td_strategy_11_url" ""
|
||||||
"td_strategy_11_text4" ""
|
"td_strategy_11_image" ""
|
||||||
"td_strategy_12_left_title" ""
|
"td_strategy_11_title1" "Lineup Composition"
|
||||||
"td_strategy_12_main_title" ""
|
"td_strategy_11_text1" "五星:满培神子,满培青娥,桑尼,辉夜(不卡科技),满培觉,满培紫,红美铃。<br><br>其它:2个四星宫古芳香,2个三星梅蒂欣,一星满培上白泽慧音。<br><br>装备:神子4相机2玉,青娥4船桨2船勾,桑尼4核棒,一个僵尸4狗牙,一个僵尸青娥技能。"
|
||||||
"td_strategy_12_sub_title" ""
|
"td_strategy_11_title2" "Operation Method"
|
||||||
"td_strategy_12_url" ""
|
"td_strategy_11_text2" "随意。"
|
||||||
"td_strategy_12_image" ""
|
"td_strategy_11_title3" "Deck List"
|
||||||
"td_strategy_12_title1" ""
|
"td_strategy_11_text3" "SSR卡:2神子,2八云紫,神绮,御币或大妖精,4相机。<br><br>SR卡:2霍青娥,2上白泽慧音,辉夜,4狗牙,4核棒,4炸弹,4船勾,博丽护身符。<br><br>R卡:3 纳兹林,桑尼,2古明地觉,2梅蒂欣,红美铃,3露娜,3宫古芳香,5秋静叶,4玉,4船浆,4月耀,4人形,4御币。"
|
||||||
"td_strategy_12_text1" ""
|
"td_strategy_11_title4" ""
|
||||||
"td_strategy_12_title2" ""
|
"td_strategy_11_text4" ""
|
||||||
"td_strategy_12_text2" ""
|
"td_strategy_12_left_title" "【Lineup】"
|
||||||
"td_strategy_12_title3" ""
|
"td_strategy_12_main_title" "物理妹红或布都队"
|
||||||
"td_strategy_12_text3" ""
|
"td_strategy_12_sub_title" "最低8个五星的挂机流过Extra的阵容"
|
||||||
"td_strategy_12_title4" ""
|
"td_strategy_12_url" ""
|
||||||
"td_strategy_12_text4" ""
|
"td_strategy_12_image" ""
|
||||||
"td_strategy_13_left_title" ""
|
"td_strategy_12_title1" "Lineup Composition"
|
||||||
"td_strategy_13_main_title" ""
|
"td_strategy_12_text1" "妹红只要攻击力和攻速,能量不需要,因为培养加攻速,可以不用再加,需要恋恋的加1000能量技能还加攻击,妹红不吃十六夜的刷新。<br><br>布都比妹红伤害要高且稳定,两阵容一样。<br><br>五星:满培腾原妹红,满培小伞关ai,满培帕秋莉,米斯蒂亚,犬走桦,上白泽慧音,满培古明地觉,古明地恋,辉夜。<br><br>可选五星:满培八云紫(最好五星,帕秋莉也可以四星)。<br><br>其他:2个三量梅蒂欣。<br><br>用布都时,将妹红、慧音换成布都、青娥(给攻速buff即可),布都伤害高,攻击力不需要拉满,要攻速。<br><br>装备:妹红4太阳伞2月兔晕刀,觉4船浆2莱瓦丁,八云紫4月耀,一个梅蒂欣4核棒,其它随意。"
|
||||||
"td_strategy_13_sub_title" ""
|
"td_strategy_12_title2" "Operation Method"
|
||||||
"td_strategy_13_url" ""
|
"td_strategy_12_text2" "秋二鼠大妖精。"
|
||||||
"td_strategy_13_image" ""
|
"td_strategy_12_title3" "Deck List"
|
||||||
"td_strategy_13_title1" ""
|
"td_strategy_12_text3" "SSR卡:2古明地恋,大妖精,3八云紫,2御币,2莱瓦丁。(抽干即满培紫)<br><br>SR卡:辉夜,上白泽慧音,2帕秋莉,玲仙,2妹红,4核棒,4炸弹,2月兔,博丽护身符。<br><br>R卡:3 纳兹林,2梅蒂欣,犬走桦,4露娜,米斯蒂娅,2多多良小伞,5秋静叶,2古明地觉,4船浆,4月耀,4人形,4御币,4太阳伞。"
|
||||||
"td_strategy_13_text1" ""
|
"td_strategy_12_title4" ""
|
||||||
"td_strategy_13_title2" ""
|
"td_strategy_12_text4" ""
|
||||||
"td_strategy_13_text2" ""
|
"td_strategy_13_left_title" "【Lineup】"
|
||||||
"td_strategy_13_title3" ""
|
"td_strategy_13_main_title" "纯狐妹红或布都队"
|
||||||
"td_strategy_13_text3" ""
|
"td_strategy_13_sub_title" "最低6个五星的挂机流过Extra的阵容"
|
||||||
"td_strategy_13_title4" ""
|
"td_strategy_13_url" ""
|
||||||
"td_strategy_13_text4" ""
|
"td_strategy_13_image" ""
|
||||||
"td_strategy_14_left_title" ""
|
"td_strategy_13_title1" "Lineup Composition"
|
||||||
"td_strategy_14_main_title" ""
|
"td_strategy_13_text1" "纯狐一技能buff之后,直接按技能伤害造成纯粹伤害。<br><br>五星:满培腾原妹红或物部布都,米斯蒂亚,上白泽慧音,古明地恋,霍青娥,满培八云紫,满培古明地觉(可选)。<br><br>其他:2个三量梅蒂欣,一星2培八云紫,一星满培上白泽慧音,纯狐。<br><br>装备:妹红/布都4太阳伞2月兔,五星八云紫4月耀,一星慧音4狗牙切白泽关AI,一个梅蒂欣4核棒,觉4人形。<br><br>所有buff给妹红/布都,恋恋的能量,纯狐一技能,五星慧音人形态1技能(开AI),霍青娥的攻速。辉夜给刷个攻击力和攻速buff。"
|
||||||
"td_strategy_14_sub_title" ""
|
"td_strategy_13_title2" "Operation Method"
|
||||||
"td_strategy_14_url" ""
|
"td_strategy_13_text2" "秋二鼠转霍青娥。"
|
||||||
"td_strategy_14_image" ""
|
"td_strategy_13_title3" "Deck List"
|
||||||
"td_strategy_14_title1" ""
|
"td_strategy_13_text3" "SSR卡:纯狐,古明地恋,4八云紫,4御币。(抽干即满培和二培就够了)<br><br>SR卡:2妹红或物部布都,霍青娥,2辉夜,2上白泽慧音,4核棒,4狗牙,4炸弹,2月兔,博丽护身符。<br><br>R卡:5 纳兹林,2梅蒂欣,5露娜,米斯蒂娅,多多良小伞,5秋静叶,5古明地觉,4月耀,4人形,4御币,4太阳伞。"
|
||||||
"td_strategy_14_text1" ""
|
"td_strategy_13_title4" ""
|
||||||
"td_strategy_14_title2" ""
|
"td_strategy_13_text4" ""
|
||||||
"td_strategy_14_text2" ""
|
"td_strategy_14_left_title" "【Lineup】"
|
||||||
"td_strategy_14_title3" ""
|
"td_strategy_14_main_title" "风见花香队"
|
||||||
"td_strategy_14_text3" ""
|
"td_strategy_14_sub_title" "最低6个五星的挂机流过Extra的阵容"
|
||||||
"td_strategy_14_title4" ""
|
"td_strategy_14_url" ""
|
||||||
"td_strategy_14_text4" ""
|
"td_strategy_14_image" ""
|
||||||
"td_strategy_15_left_title" ""
|
"td_strategy_14_title1" "Lineup Composition"
|
||||||
"td_strategy_15_main_title" ""
|
"td_strategy_14_text1" "五星:满培风见花香,满培火焰猫磷,桑尼,红美铃,满培古明地觉,古明地恋。<br><br>可选五星:满培八云紫,觉醒露米娅(五星觉醒后和四星换)。<br><br>其他:四星十六夜,四星路空,三量梅蒂欣,一星满培上白泽慧音。<br><br>十六夜刷新路空,慧音切白泽关AI,风见花香幻像放对面觉旁边。<br><br>古明地恋换成三星梅蒂欣可加强对文文控制,但60波后辉夜会挤爆GG。<br><br>装备:风见花香4相机2玉,觉4人形2船勾,八云紫4月耀,一个梅蒂欣4核棒,火焰猫磷4船浆2船勾,露米娅2狗牙。"
|
||||||
"td_strategy_15_sub_title" ""
|
"td_strategy_14_title2" "Operation Method"
|
||||||
"td_strategy_15_url" ""
|
"td_strategy_14_text2" "随意。"
|
||||||
"td_strategy_15_image" ""
|
"td_strategy_14_title3" "Deck List"
|
||||||
"td_strategy_15_title1" ""
|
"td_strategy_14_text3" "SSR卡:2风见花香,2八云紫,神琦,古明地恋,4相机。<br><br>SR卡:辉夜,2上白泽慧音,2火焰猫磷,路空,十六夜,4核棒,2狗牙,4船勾,4炸弹,博丽护身符。<br><br>R卡:3 纳兹林,2梅蒂欣,4露娜,多多良小伞,5秋静叶,2古明地觉,桑尼,红美铃,露米娅,4玉,4船浆,4月耀,4人形,4御币。"
|
||||||
"td_strategy_15_text1" ""
|
"td_strategy_14_title4" ""
|
||||||
"td_strategy_15_title2" ""
|
"td_strategy_14_text4" ""
|
||||||
"td_strategy_15_text2" ""
|
"td_strategy_15_left_title" "【Lineup】"
|
||||||
"td_strategy_15_title3" ""
|
"td_strategy_15_main_title" "二小组队"
|
||||||
"td_strategy_15_text3" ""
|
"td_strategy_15_sub_title" "最低8个五星的轻松过Extra的阵容"
|
||||||
"td_strategy_15_title4" ""
|
"td_strategy_15_url" ""
|
||||||
"td_strategy_15_text4" ""
|
"td_strategy_15_image" ""
|
||||||
"td_strategy_16_left_title" ""
|
"td_strategy_15_title1" "Lineup Composition"
|
||||||
"td_strategy_16_main_title" ""
|
"td_strategy_15_text1" "五星:满培二小组(芙兰朵露),满培妹红,满培古明地觉,古明地恋,满培小伞,犬走桦,米斯蒂娅,满培帕秋莉,满培八云紫(可选)。<br><br>其他:四星十六夜,2个三量梅蒂欣。<br><br>十六夜刷新二小姐,恋恋给buff妹红。<br><br>装备:二小组4镰刀2莱瓦汀,妹红4太阳伞2月兔,觉4船浆,恋4人形,紫4月耀,一梅蒂欣4核棒。辉夜刷个加伤buff。"
|
||||||
"td_strategy_16_sub_title" ""
|
"td_strategy_15_title2" "Operation Method"
|
||||||
"td_strategy_16_url" ""
|
"td_strategy_15_text2" "秋二鼠大妖精。"
|
||||||
"td_strategy_16_image" ""
|
"td_strategy_15_title3" "Deck List"
|
||||||
"td_strategy_16_title1" ""
|
"td_strategy_15_text3" "SSR卡:2芙兰朵露,2八云紫,大妖精,古明地恋,2莱瓦汀,2博丽御币。<br><br>SR卡:辉夜,2帕秋莉,2腾原妹红,十六夜,风祝御币,4核棒,4镰刀,2月兔,4炸弹,博丽护身符。<br><br>R卡:3 纳兹林,2梅蒂欣,4露娜,犬走桦,米斯蒂娅,2多多良小伞,5秋静叶,2古明地觉,4太阳伞,4船浆,4月耀,4人形,4御币。"
|
||||||
"td_strategy_16_text1" ""
|
"td_strategy_15_title4" "Standings"
|
||||||
"td_strategy_16_title2" ""
|
"td_strategy_15_text4" "不能完全挂机,怕60波后辉夜(必炸、上白泽慧音(起手电一个)、文文(炸或电)。"
|
||||||
"td_strategy_16_text2" ""
|
"td_strategy_16_left_title" "【Lineup】"
|
||||||
"td_strategy_16_title3" ""
|
"td_strategy_16_main_title" "大小姐队"
|
||||||
"td_strategy_16_text3" ""
|
"td_strategy_16_sub_title" "最低7个五星的挂机流过Extra的阵容"
|
||||||
"td_strategy_16_title4" ""
|
"td_strategy_16_url" ""
|
||||||
"td_strategy_16_text4" ""
|
"td_strategy_16_image" ""
|
||||||
"td_strategy_17_left_title" ""
|
"td_strategy_16_title1" "Lineup Composition"
|
||||||
"td_strategy_17_main_title" ""
|
"td_strategy_16_text1" "五星:满培大小姐(蕾米莉亚),大妖精(连大小姐),满培帕秋莉切水银,满培帕秋莉切湖葬,满培小恶魔,满培雷蒂,满培八云紫。<br><br>其他:四星十六夜刷新大小姐,四星觉醒露米娅(五星觉醒用秋换成四星),2个三量梅蒂欣,四星满培琪露诺。<br><br>装备:大小组4相机2玉,湖葬帕秋莉4核棒2玉,露米娅4狗牙,紫4月耀,琪露诺4人形。"
|
||||||
"td_strategy_17_sub_title" ""
|
"td_strategy_16_title2" "Operation Method"
|
||||||
"td_strategy_17_url" ""
|
"td_strategy_16_text2" "秋二鼠大妖精。"
|
||||||
"td_strategy_17_image" ""
|
"td_strategy_16_title3" "Deck List"
|
||||||
"td_strategy_17_title1" ""
|
"td_strategy_16_text3" "SSR卡:2蕾米莉亚,2八云紫,大妖精,神琦,4相机。<br><br>SR卡:辉夜,3帕秋莉,十六夜,4核棒,4狗牙,4炸弹,博丽护身符。<br><br>R卡:3 纳兹林,2梅蒂欣,3露娜,2蕾蒂,2小恶魔,2琪露诺,5秋静叶,露米娅,4玉,4船浆,4月耀,4人形,4御币。"
|
||||||
"td_strategy_17_text1" ""
|
"td_strategy_16_title4" "Standings"
|
||||||
"td_strategy_17_title2" ""
|
"td_strategy_16_text4" "60波后文文没事,辉夜打了几把没事,保险的话炸一下。"
|
||||||
"td_strategy_17_text2" ""
|
"td_strategy_17_left_title" "【Lineup】"
|
||||||
"td_strategy_17_title3" ""
|
"td_strategy_17_main_title" "Team Patchouli"
|
||||||
"td_strategy_17_text3" ""
|
"td_strategy_17_sub_title" "7个五星的挂机流过Extra的阵容"
|
||||||
"td_strategy_17_title4" ""
|
"td_strategy_17_url" ""
|
||||||
"td_strategy_17_text4" ""
|
"td_strategy_17_image" ""
|
||||||
"td_strategy_18_left_title" ""
|
"td_strategy_17_title1" "Lineup Composition"
|
||||||
"td_strategy_18_main_title" ""
|
"td_strategy_17_text1" "五星:3个满培帕秋莉,大妖精,满培小恶魔,满培雷蒂,满培八云紫。<br><br>其他:2个三量梅蒂欣,四星满培琪露诺,一星满培上白泽慧音,四星觉醒露米娅(五星觉醒用秋换成四星)。<br><br>装备:能量最高的湖葬帕秋莉4相机2玉且大妖精连,次之湖葬帕秋莉4核棒2玉,水银帕秋莉2八卦,小恶魔4船浆2船沟,紫4月耀,琪露诺4人形。<br><br>辉夜给输出刷个加伤buff,给露米娅和上白泽慧音攻速buff。"
|
||||||
"td_strategy_18_sub_title" ""
|
"td_strategy_17_title2" "Operation Method"
|
||||||
"td_strategy_18_url" ""
|
"td_strategy_17_text2" "秋二鼠大妖精。"
|
||||||
"td_strategy_18_image" ""
|
"td_strategy_17_title3" "Deck List"
|
||||||
"td_strategy_18_title1" ""
|
"td_strategy_17_text3" "SSR卡:2八云紫,大妖精,神琦,4相机,2八卦。<br><br>SR卡:辉夜,4帕秋莉,2上白泽慧音,4核棒,2船勾,4炸弹,博丽护身符。<br><br>R卡:3 纳兹林,2梅蒂欣,3露娜,2蕾蒂,2小恶魔,2琪露诺,5秋静叶,露米娅,4玉,4船浆,4月耀,4人形,4御币。"
|
||||||
"td_strategy_18_text1" ""
|
"td_strategy_17_title4" "Standings"
|
||||||
"td_strategy_18_title2" ""
|
"td_strategy_17_text4" "70波文文不漏,高波辉夜交炸防脸黑。"
|
||||||
"td_strategy_18_text2" ""
|
"td_strategy_18_left_title" "【Lineup】"
|
||||||
"td_strategy_18_title3" ""
|
"td_strategy_18_main_title" "Kaguya Team"
|
||||||
"td_strategy_18_text3" ""
|
"td_strategy_18_sub_title" "7个五星的挂机流过Extra的阵容"
|
||||||
"td_strategy_18_title4" ""
|
"td_strategy_18_url" ""
|
||||||
"td_strategy_18_text4" ""
|
"td_strategy_18_image" ""
|
||||||
"td_strategy_19_left_title" ""
|
"td_strategy_18_title1" "Lineup Composition"
|
||||||
"td_strategy_19_main_title" ""
|
"td_strategy_18_text1" "五星:2个满培辉夜,桑尼,古明地恋,满培古明地觉,满培八云紫,满培火焰猫磷。<br><br>其他:2个三星梅蒂欣,一星满培上白泽慧音,一星八云紫,一星满培帕秋莉。<br><br>装备:主辉夜4相机2玉,火焰猫磷2船勾2神枪,觉4船浆2船勾,月耀和人形给两个紫,最前面的梅蒂欣4核棒。<br><br>将辉夜摆好位置后,再刷辉夜科技,给辉夜和古明地觉、火焰猫磷刷个加伤buff。恋恋给辉夜加能量buff。帕秋莉切湖葬。另外两个紫只需一个5星,多个会火车会重合放。"
|
||||||
"td_strategy_19_sub_title" ""
|
"td_strategy_18_title2" "Operation Method"
|
||||||
"td_strategy_19_url" ""
|
"td_strategy_18_text2" "随意。"
|
||||||
"td_strategy_19_image" ""
|
"td_strategy_18_title3" "Deck List"
|
||||||
"td_strategy_19_title1" ""
|
"td_strategy_18_text3" "SSR卡:2八云紫,神琦,古明地恋,4相机,2神枪。<br><br>SR卡:3辉夜,2上白泽慧音,2火焰猫磷,2帕秋莉,4核棒,4船勾,4炸弹,博丽护身符。<br><br>R卡:5 纳兹林,2梅蒂欣,桑尼,5露娜,2古明地觉,5秋静叶,4玉,4船浆,4月耀,4人形,4御币。"
|
||||||
"td_strategy_19_text1" ""
|
"td_strategy_18_title4" "Standings"
|
||||||
"td_strategy_19_title2" ""
|
"td_strategy_18_text4" "全程挂机。"
|
||||||
"td_strategy_19_text2" ""
|
|
||||||
"td_strategy_19_title3" ""
|
|
||||||
"td_strategy_19_text3" ""
|
|
||||||
"td_strategy_19_title4" ""
|
|
||||||
"td_strategy_19_text4" ""
|
|
||||||
"td_strategy_20_left_title" ""
|
|
||||||
"td_strategy_20_main_title" ""
|
|
||||||
"td_strategy_20_sub_title" ""
|
|
||||||
"td_strategy_20_url" ""
|
|
||||||
"td_strategy_20_image" ""
|
|
||||||
"td_strategy_20_title1" ""
|
|
||||||
"td_strategy_20_text1" ""
|
|
||||||
"td_strategy_20_title2" ""
|
|
||||||
"td_strategy_20_text2" ""
|
|
||||||
"td_strategy_20_title3" ""
|
|
||||||
"td_strategy_20_text3" ""
|
|
||||||
"td_strategy_20_title4" ""
|
|
||||||
"td_strategy_20_text4" ""
|
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8394,7 +8394,7 @@
|
|||||||
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"
|
"AbilityUnitTargetType" "DOTA_UNIT_TARGET_HERO | DOTA_UNIT_TARGET_BASIC"
|
||||||
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
|
"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_ENEMY"
|
||||||
"AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL"
|
"AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL"
|
||||||
"MaxLevel" "1"
|
"MaxLevel" "5"
|
||||||
"AbilityCooldown" "5"
|
"AbilityCooldown" "5"
|
||||||
"AbilityManaCost" "0"
|
"AbilityManaCost" "0"
|
||||||
// Stats
|
// Stats
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ function PutTowerToPoint(keys)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if SpawnSystem.IsUnLimited == false and IsBonusTower(itemName) and GetBonusTowerCount(caster) >= THTD_MAX_BONUS_TOWER then
|
if SpawnSystem.IsUnLimited == false and IsBonusTower(itemName) and GetBonusTowerCount(caster) >= THTD_MAX_BONUS_TOWER then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner() , "show_message", {msg="bonus_tower_limit", duration=5, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner() , "show_message", {msg="#bonus_tower_limit", duration=5, params={count=1}, color="#0ff"} )
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -539,7 +539,7 @@ function OnTouhoutdExUp(keys)
|
|||||||
local unitName = target:GetUnitName()
|
local unitName = target:GetUnitName()
|
||||||
if unitName ~= "minoriko" and unitName ~= "sizuha" and unitName ~= "lily" and unitName ~= "nazrin" then
|
if unitName ~= "minoriko" and unitName ~= "sizuha" and unitName ~= "lily" and unitName ~= "nazrin" then
|
||||||
caster.is_team_mode = true
|
caster.is_team_mode = true
|
||||||
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner(), "display_chat_msg", {msg="team_rank_tip", params={player_name=PlayerResource:GetPlayerName(caster:GetPlayerOwnerID()),reason="潜能已激活"}})
|
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner(), "display_chat_msg", {msg="#team_rank_tip", params={player_name=PlayerResource:GetPlayerName(caster:GetPlayerOwnerID()),reason="潜能已激活"}})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
target.thtd_power_level = 10
|
target.thtd_power_level = 10
|
||||||
@@ -578,7 +578,7 @@ function OnTouhoutdExUp(keys)
|
|||||||
local unitName = target:GetUnitName()
|
local unitName = target:GetUnitName()
|
||||||
if unitName ~= "minoriko" and unitName ~= "sizuha" and unitName ~= "lily" and unitName ~= "nazrin" then
|
if unitName ~= "minoriko" and unitName ~= "sizuha" and unitName ~= "lily" and unitName ~= "nazrin" then
|
||||||
caster.is_team_mode = true
|
caster.is_team_mode = true
|
||||||
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner(), "display_chat_msg", {msg="team_rank_tip", params={player_name=PlayerResource:GetPlayerName(caster:GetPlayerOwnerID()),reason="潜能已激活"}})
|
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner(), "display_chat_msg", {msg="#team_rank_tip", params={player_name=PlayerResource:GetPlayerName(caster:GetPlayerOwnerID()),reason="潜能已激活"}})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
target.thtd_power_level = target:FindModifierByName("modifier_fairy_count"):GetStackCount()
|
target.thtd_power_level = target:FindModifierByName("modifier_fairy_count"):GetStackCount()
|
||||||
@@ -1211,7 +1211,7 @@ function SkipWave(keys)
|
|||||||
SpawnSystem:RemoveBoss()
|
SpawnSystem:RemoveBoss()
|
||||||
end
|
end
|
||||||
|
|
||||||
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner(), "display_chat_msg", {msg="skip_wave_tip", params={player_name=PlayerResource:GetPlayerName(caster:GetPlayerOwnerID()),item_name=keys.ItemName,wave=SpawnSystem.ReachToWave}})
|
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner(), "display_chat_msg", {msg="#skip_wave_tip", params={player_name=PlayerResource:GetPlayerName(caster:GetPlayerOwnerID()),item_name=keys.ItemName,wave=SpawnSystem.ReachToWave}})
|
||||||
EmitAnnouncerSound("Quest.Completed")
|
EmitAnnouncerSound("Quest.Completed")
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1311,10 +1311,10 @@ function OnCloseAI(keys)
|
|||||||
|
|
||||||
if caster.thtd_close_ai ~= true then
|
if caster.thtd_close_ai ~= true then
|
||||||
caster.thtd_close_ai = true
|
caster.thtd_close_ai = true
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_close_ai", duration=5, params={}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_close_ai", duration=5, params={}, color="#0ff"} )
|
||||||
else
|
else
|
||||||
caster.thtd_close_ai = false
|
caster.thtd_close_ai = false
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_open_ai", duration=5, params={}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_open_ai", duration=5, params={}, color="#0ff"} )
|
||||||
-- 神子和幽幽子,是否开启大招
|
-- 神子和幽幽子,是否开启大招
|
||||||
local unitName = caster:GetUnitName()
|
local unitName = caster:GetUnitName()
|
||||||
if unitName=="miko" then
|
if unitName=="miko" then
|
||||||
@@ -1340,12 +1340,12 @@ function OnCastPointAI(keys)
|
|||||||
local range = GetDistanceBetweenTwoVec2D(caster:GetOrigin(), targetPoint)
|
local range = GetDistanceBetweenTwoVec2D(caster:GetOrigin(), targetPoint)
|
||||||
if range <= 100 then
|
if range <= 100 then
|
||||||
caster.thtd_last_cast_point = nil
|
caster.thtd_last_cast_point = nil
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_close_cast_on_fixed_point", duration=5, params={}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_close_cast_on_fixed_point", duration=5, params={}, color="#0ff"} )
|
||||||
elseif range > keys.ability:GetCastRange() then
|
elseif range > keys.ability:GetCastRange() then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner(), "display_custom_error", {msg="cast_range_out"})
|
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner(), "display_custom_error", {msg="cast_range_out"})
|
||||||
else
|
else
|
||||||
caster.thtd_last_cast_point = targetPoint
|
caster.thtd_last_cast_point = targetPoint
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_open_cast_on_fixed_point", duration=5, params={}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_open_cast_on_fixed_point", duration=5, params={}, color="#0ff"} )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -79,14 +79,14 @@ function OnKeine02SpellStart(keys)
|
|||||||
caster:SetModel("models/thd_hero/keine/keine2/keine2.vmdl")
|
caster:SetModel("models/thd_hero/keine/keine2/keine2.vmdl")
|
||||||
caster:SetOriginalModel("models/thd_hero/keine/keine2/keine2.vmdl")
|
caster:SetOriginalModel("models/thd_hero/keine/keine2/keine2.vmdl")
|
||||||
if caster.thtd_close_ai == true then
|
if caster.thtd_close_ai == true then
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_keine_shirasawa", duration=5, params={}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_keine_shirasawa", duration=5, params={}, color="#0ff"} )
|
||||||
end
|
end
|
||||||
elseif caster.thtd_keine_change == THTD_KEINE_02_SHIRASAWA then
|
elseif caster.thtd_keine_change == THTD_KEINE_02_SHIRASAWA then
|
||||||
caster.thtd_keine_change = THTD_KEINE_02_HUMEN
|
caster.thtd_keine_change = THTD_KEINE_02_HUMEN
|
||||||
caster:SetModel("models/thd_hero/keine/keine.vmdl")
|
caster:SetModel("models/thd_hero/keine/keine.vmdl")
|
||||||
caster:SetOriginalModel("models/thd_hero/keine/keine.vmdl")
|
caster:SetOriginalModel("models/thd_hero/keine/keine.vmdl")
|
||||||
if caster.thtd_close_ai == true then
|
if caster.thtd_close_ai == true then
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_keine_humen", duration=5, params={}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_keine_humen", duration=5, params={}, color="#0ff"} )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -274,13 +274,13 @@ function OnKeine04SpellStart(keys)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if caster.thtd_keine_04_change == THTD_KEINE_04_SWORD then
|
if caster.thtd_keine_04_change == THTD_KEINE_04_SWORD then
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_keine_04_jade", duration=5, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_keine_04_jade", duration=5, params={count=1}, color="#0ff"} )
|
||||||
caster.thtd_keine_04_change = THTD_KEINE_04_JADE
|
caster.thtd_keine_04_change = THTD_KEINE_04_JADE
|
||||||
elseif caster.thtd_keine_04_change == THTD_KEINE_04_JADE then
|
elseif caster.thtd_keine_04_change == THTD_KEINE_04_JADE then
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_keine_04_mirror", duration=5, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_keine_04_mirror", duration=5, params={count=1}, color="#0ff"} )
|
||||||
caster.thtd_keine_04_change = THTD_KEINE_04_MIRROR
|
caster.thtd_keine_04_change = THTD_KEINE_04_MIRROR
|
||||||
elseif caster.thtd_keine_04_change == THTD_KEINE_04_MIRROR then
|
elseif caster.thtd_keine_04_change == THTD_KEINE_04_MIRROR then
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_keine_04_sword", duration=5, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_keine_04_sword", duration=5, params={count=1}, color="#0ff"} )
|
||||||
caster.thtd_keine_04_change = THTD_KEINE_04_SWORD
|
caster.thtd_keine_04_change = THTD_KEINE_04_SWORD
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -24,7 +24,7 @@ function OnMinoriko02StarChange(keys)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if hero.thtd_minoriko_02_change >= keys.max_count then
|
if hero.thtd_minoriko_02_change >= keys.max_count then
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="minoriko_max_change", duration=5, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#minoriko_max_change", duration=5, params={count=1}, color="#0ff"} )
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
hero.thtd_minoriko_02_change = hero.thtd_minoriko_02_change + 1
|
hero.thtd_minoriko_02_change = hero.thtd_minoriko_02_change + 1
|
||||||
|
|||||||
@@ -254,13 +254,13 @@ function OnPatchouli02SpellStart(keys)
|
|||||||
|
|
||||||
if caster.thtd_patchouli_02_type == PATCHOULI_01_AGNI_SHINE then
|
if caster.thtd_patchouli_02_type == PATCHOULI_01_AGNI_SHINE then
|
||||||
caster.thtd_patchouli_02_type = PATCHOULI_01_BURY_IN_LAKE
|
caster.thtd_patchouli_02_type = PATCHOULI_01_BURY_IN_LAKE
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_patchouli_bury_in_lake", duration=1, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_patchouli_bury_in_lake", duration=1, params={count=1}, color="#0ff"} )
|
||||||
elseif caster.thtd_patchouli_02_type == PATCHOULI_01_BURY_IN_LAKE then
|
elseif caster.thtd_patchouli_02_type == PATCHOULI_01_BURY_IN_LAKE then
|
||||||
caster.thtd_patchouli_02_type = PATCHOULI_01_MERCURY_POISON
|
caster.thtd_patchouli_02_type = PATCHOULI_01_MERCURY_POISON
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_patchouli_mercury_poison", duration=1, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_patchouli_mercury_poison", duration=1, params={count=1}, color="#0ff"} )
|
||||||
elseif caster.thtd_patchouli_02_type == PATCHOULI_01_MERCURY_POISON then
|
elseif caster.thtd_patchouli_02_type == PATCHOULI_01_MERCURY_POISON then
|
||||||
caster.thtd_patchouli_02_type = PATCHOULI_01_AGNI_SHINE
|
caster.thtd_patchouli_02_type = PATCHOULI_01_AGNI_SHINE
|
||||||
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="change_to_patchouli_agni_shine", duration=1, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer( caster:GetPlayerOwner() , "show_message", {msg="#change_to_patchouli_agni_shine", duration=1, params={count=1}, color="#0ff"} )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -704,7 +704,7 @@ function OnSpellStartReimuPet01(keys)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if tostring(PlayerResource:GetSteamID(caster:GetPlayerOwnerID())) == GameRules.GameData.admin then
|
if tostring(PlayerResource:GetSteamID(caster:GetPlayerOwnerID())) == GameRules.GameData.admin then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner() , "show_message", {msg="change_to_pet_model", duration=5, params={key = caster.pet_model}, color="#ff0"} )
|
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner() , "show_message", {msg="#change_to_pet_model", duration=5, params={key = caster.pet_model}, color="#ff0"} )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -746,7 +746,7 @@ function OnSpellStartReimuPet02(keys)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if tostring(PlayerResource:GetSteamID(caster:GetPlayerOwnerID())) == GameRules.GameData.admin then
|
if tostring(PlayerResource:GetSteamID(caster:GetPlayerOwnerID())) == GameRules.GameData.admin then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner() , "show_message", {msg="change_to_pet_effect", duration=5, params={key = caster.effect_name}, color="#ff0"} )
|
CustomGameEventManager:Send_ServerToPlayer(caster:GetPlayerOwner() , "show_message", {msg="#change_to_pet_effect", duration=5, params={key = caster.effect_name}, color="#ff0"} )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -824,7 +824,7 @@ function OnSpellStartReimuPet04(keys)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
caster:EmitSound(reimu_pet_sound[RandomInt(1, #reimu_pet_sound)])
|
caster:EmitSound(reimu_pet_sound[RandomInt(1, #reimu_pet_sound)])
|
||||||
CustomGameEventManager:Send_ServerToPlayer(hero:GetPlayerOwner(), "show_message", {msg="key_made_tip", duration=3, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToPlayer(hero:GetPlayerOwner(), "show_message", {msg="#key_made_tip", duration=3, params={}, color="#ff0"})
|
||||||
|
|
||||||
ParticleManager:DestroyParticleSystem(hero.thtd_emoji_effect,true)
|
ParticleManager:DestroyParticleSystem(hero.thtd_emoji_effect,true)
|
||||||
hero.thtd_emoji_effect = ParticleManager:CreateParticle("particles/thtd/emoji/thtd_msg_hongliange.vpcf", PATTACH_OVERHEAD_FOLLOW, hero)
|
hero.thtd_emoji_effect = ParticleManager:CreateParticle("particles/thtd/emoji/thtd_msg_hongliange.vpcf", PATTACH_OVERHEAD_FOLLOW, hero)
|
||||||
|
|||||||
@@ -951,7 +951,7 @@ function CTHTDGameMode:OnGameRulesStateChange(keys)
|
|||||||
for i=0, PlayerResource:GetPlayerCount()-1 do
|
for i=0, PlayerResource:GetPlayerCount()-1 do
|
||||||
if PlayerResource:GetTeam(i) == DOTA_TEAM_GOODGUYS then
|
if PlayerResource:GetTeam(i) == DOTA_TEAM_GOODGUYS then
|
||||||
if GameRules.PlayerData[i].ban == 1 then
|
if GameRules.PlayerData[i].ban == 1 then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(i), "display_chat_msg", {msg="game_ban_tip", params={player_name=PlayerResource:GetPlayerName(i),reason=GameRules.PlayerData[i].reason}})
|
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(i), "display_chat_msg", {msg="#game_ban_tip", params={player_name=PlayerResource:GetPlayerName(i),reason=GameRules.PlayerData[i].reason}})
|
||||||
for _,hero in pairs(GameRules.HeroList) do
|
for _,hero in pairs(GameRules.HeroList) do
|
||||||
if hero.thtd_player_id == i then
|
if hero.thtd_player_id == i then
|
||||||
SpawnSystem:GameOver(hero)
|
SpawnSystem:GameOver(hero)
|
||||||
@@ -959,7 +959,7 @@ function CTHTDGameMode:OnGameRulesStateChange(keys)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
elseif GameRules.PlayerData[i].vip == 1 then
|
elseif GameRules.PlayerData[i].vip == 1 then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(i), "show_message", {msg="game_start_vip_tip", duration=60, params={name=PlayerResource:GetPlayerName(i),endtime=GameRules.PlayerData[i].end_time}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(i), "show_message", {msg="#game_start_vip_tip", duration=60, params={name=PlayerResource:GetPlayerName(i),endtime=GameRules.PlayerData[i].end_time}, color="#ff0"})
|
||||||
end
|
end
|
||||||
GameRules.HeroList[i]:RemoveModifierByName("modifier_rainbow_tail")
|
GameRules.HeroList[i]:RemoveModifierByName("modifier_rainbow_tail")
|
||||||
end
|
end
|
||||||
@@ -1419,7 +1419,7 @@ function CTHTDGameMode:OnPlayerSay(keys)
|
|||||||
|
|
||||||
if string.sub(text,1,6) == "-color" then
|
if string.sub(text,1,6) == "-color" then
|
||||||
local colorValue = string.sub(text, 8, 11)
|
local colorValue = string.sub(text, 8, 11)
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="item_locked_tip", duration=10, params={}, color=colorValue})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#item_locked_tip", duration=10, params={}, color=colorValue})
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1429,7 +1429,7 @@ function CTHTDGameMode:OnPlayerSay(keys)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if string.sub(text,1,5) == "-date" then
|
if string.sub(text,1,5) == "-date" then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(keys.playerid), "display_chat_msg", {msg="open_day_tip", params={server_time=GetRealDateTime(),start_time=GameRules.GameData.server_time,open_day_list=GameRules.GameData.open_day_list}})
|
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(keys.playerid), "display_chat_msg", {msg="#open_day_tip", params={server_time=GetRealDateTime(),start_time=GameRules.GameData.server_time,open_day_list=GameRules.GameData.open_day_list}})
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1780,7 +1780,7 @@ function CTHTDGameMode:ItemAddedToInventory( keys )
|
|||||||
if itemName == "item_3150" or itemName == "item_3151" or itemName == "item_3152" then
|
if itemName == "item_3150" or itemName == "item_3151" or itemName == "item_3152" then
|
||||||
if hero.is_team_mode ~= true then
|
if hero.is_team_mode ~= true then
|
||||||
hero.is_team_mode = true
|
hero.is_team_mode = true
|
||||||
CustomGameEventManager:Send_ServerToPlayer(hero:GetPlayerOwner(), "display_chat_msg", {msg="team_rank_tip", params={player_name=PlayerResource:GetPlayerName(hero:GetPlayerOwnerID()),reason="使用了传说武器"}})
|
CustomGameEventManager:Send_ServerToPlayer(hero:GetPlayerOwner(), "display_chat_msg", {msg="#team_rank_tip", params={player_name=PlayerResource:GetPlayerName(hero:GetPlayerOwnerID()),reason="使用了传说武器"}})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ CustomEvent.on('custom_game_kick_vote', function(data)
|
|||||||
if hero.is_game_over == true then return end
|
if hero.is_game_over == true then return end
|
||||||
|
|
||||||
if playerVote.kicked_player ~= - 1 and (math.floor(GameRules:GetGameTime()) - playerVote.vote_time) < 60 then
|
if playerVote.kicked_player ~= - 1 and (math.floor(GameRules:GetGameTime()) - playerVote.vote_time) < 60 then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(player, "show_message", {msg="player_in_vote", duration=10, params={count=playerVote.kicked_player+1}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToPlayer(player, "show_message", {msg="#player_in_vote", duration=10, params={count=playerVote.kicked_player+1}, color="#ff0"})
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ CustomEvent.on('custom_game_kick_accept', function(data)
|
|||||||
playerVote.kicked_player = -1
|
playerVote.kicked_player = -1
|
||||||
playerVote.kicked_line = - 1
|
playerVote.kicked_line = - 1
|
||||||
playerVote.agree_players = {}
|
playerVote.agree_players = {}
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="player_vote_no_pass", duration=10, params={count=data.PlayerID+1}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#player_vote_no_pass", duration=10, params={count=data.PlayerID+1}, color="#ff0"})
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ function KickPlayer()
|
|||||||
for index,hero in pairs(GameRules.HeroList) do
|
for index,hero in pairs(GameRules.HeroList) do
|
||||||
if hero ~= nil and hero.is_game_over ~= true and hero.thtd_player_id == playerVote.kicked_player then
|
if hero ~= nil and hero.is_game_over ~= true and hero.thtd_player_id == playerVote.kicked_player then
|
||||||
SpawnSystem:GameOver(hero)
|
SpawnSystem:GameOver(hero)
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="player_vote_pass", duration=10, params={count=playerVote.kicked_player+1}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#player_vote_pass", duration=10, params={count=playerVote.kicked_player+1}, color="#ff0"})
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -384,7 +384,7 @@ end)
|
|||||||
CustomEvent.on('custom_game_command', function(data)
|
CustomEvent.on('custom_game_command', function(data)
|
||||||
if data["cmd"] == "wave" then
|
if data["cmd"] == "wave" then
|
||||||
SpawnSystem.ReachToWave = data["param"]
|
SpawnSystem.ReachToWave = data["param"]
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="reach_to_wave", duration=20, params={count=data["param"]}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#reach_to_wave", duration=20, params={count=data["param"]}, color="#ff0"})
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -344,7 +344,7 @@ DataService.AbilityTable = {
|
|||||||
[2] = {["thtd_satori_01"] = 2,["thtd_satori_02"] = 0},
|
[2] = {["thtd_satori_01"] = 2,["thtd_satori_02"] = 0},
|
||||||
[3] = {["thtd_satori_01"] = 3,["thtd_satori_02"] = 0},
|
[3] = {["thtd_satori_01"] = 3,["thtd_satori_02"] = 0},
|
||||||
[4] = {["thtd_satori_01"] = 4,["thtd_satori_02"] = 1},
|
[4] = {["thtd_satori_01"] = 4,["thtd_satori_02"] = 1},
|
||||||
[5] = {["thtd_satori_01"] = 5,["thtd_satori_02"] = 1},
|
[5] = {["thtd_satori_01"] = 5,["thtd_satori_02"] = 2},
|
||||||
},
|
},
|
||||||
["iku"] = {
|
["iku"] = {
|
||||||
[1] = {["thtd_iku_01"] = 1,["thtd_iku_02"] = 0},
|
[1] = {["thtd_iku_01"] = 1,["thtd_iku_02"] = 0},
|
||||||
@@ -573,10 +573,10 @@ DataService.AbilityTable = {
|
|||||||
["sanae"] =
|
["sanae"] =
|
||||||
{
|
{
|
||||||
[1] = {["thtd_sanae_01"] = 1,["thtd_sanae_02"] = 1,["thtd_sanae_03"] = 0,["thtd_sanae_04"] = 0},
|
[1] = {["thtd_sanae_01"] = 1,["thtd_sanae_02"] = 1,["thtd_sanae_03"] = 0,["thtd_sanae_04"] = 0},
|
||||||
[2] = {["thtd_sanae_01"] = 2,["thtd_sanae_02"] = 1,["thtd_sanae_03"] = 0,["thtd_sanae_04"] = 0},
|
[2] = {["thtd_sanae_01"] = 2,["thtd_sanae_02"] = 2,["thtd_sanae_03"] = 0,["thtd_sanae_04"] = 0},
|
||||||
[3] = {["thtd_sanae_01"] = 3,["thtd_sanae_02"] = 1,["thtd_sanae_03"] = 0,["thtd_sanae_04"] = 0},
|
[3] = {["thtd_sanae_01"] = 3,["thtd_sanae_02"] = 3,["thtd_sanae_03"] = 0,["thtd_sanae_04"] = 0},
|
||||||
[4] = {["thtd_sanae_01"] = 4,["thtd_sanae_02"] = 1,["thtd_sanae_03"] = 1,["thtd_sanae_04"] = 0},
|
[4] = {["thtd_sanae_01"] = 4,["thtd_sanae_02"] = 4,["thtd_sanae_03"] = 1,["thtd_sanae_04"] = 0},
|
||||||
[5] = {["thtd_sanae_01"] = 5,["thtd_sanae_02"] = 1,["thtd_sanae_03"] = 1,["thtd_sanae_04"] = 1},
|
[5] = {["thtd_sanae_01"] = 5,["thtd_sanae_02"] = 5,["thtd_sanae_03"] = 1,["thtd_sanae_04"] = 1},
|
||||||
},
|
},
|
||||||
|
|
||||||
["kanako"] =
|
["kanako"] =
|
||||||
@@ -910,11 +910,13 @@ DataService.ComboGroupings = {
|
|||||||
["chen_yukari_ran"] = {"chen", "yukari", "ran"},
|
["chen_yukari_ran"] = {"chen", "yukari", "ran"},
|
||||||
["yoshika_seiga"] = {"yoshika", "seiga"},
|
["yoshika_seiga"] = {"yoshika", "seiga"},
|
||||||
["rumia_reimu"] = {"rumia", "reimu"},
|
["rumia_reimu"] = {"rumia", "reimu"},
|
||||||
|
["wriggle_rumia"] = {"wriggle", "rumia"},
|
||||||
["meirin_sakuya"] = {"meirin", "sakuya"},
|
["meirin_sakuya"] = {"meirin", "sakuya"},
|
||||||
["tenshi_iku"] = {"tenshi", "iku"},
|
["tenshi_iku"] = {"tenshi", "iku"},
|
||||||
["junko_hecatia"] = {"junko", "hecatia"},
|
["junko_hecatia"] = {"junko", "hecatia"},
|
||||||
["junko_hecatia"] = {"junko", "hecatia"},
|
["junko_hecatia"] = {"junko", "hecatia"},
|
||||||
["daiyousei_cirno"] = {"daiyousei", "cirno"}
|
["daiyousei_cirno"] = {"daiyousei", "cirno"},
|
||||||
|
["luna_star_sunny"] = {"sunny", "star", "luna"}
|
||||||
}
|
}
|
||||||
|
|
||||||
function DataService:GetConfig()
|
function DataService:GetConfig()
|
||||||
|
|||||||
@@ -712,7 +712,7 @@ end
|
|||||||
local data = json.decode(sBody)
|
local data = json.decode(sBody)
|
||||||
if data then
|
if data then
|
||||||
if data.code == "0000" then
|
if data.code == "0000" then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(playerId), "show_message", {msg="pet_cumstom_saved", duration=15, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(playerId), "show_message", {msg="#pet_cumstom_saved", duration=15, params={}, color="#ff0"})
|
||||||
else
|
else
|
||||||
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(playerId), "thtd_server_msg", {code = data.code, msg = data.msg})
|
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(playerId), "thtd_server_msg", {code = data.code, msg = data.msg})
|
||||||
end
|
end
|
||||||
@@ -762,7 +762,7 @@ end
|
|||||||
hero:AddItem(item)
|
hero:AddItem(item)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(playerId), "show_message", {msg="key_made_tip", duration=3, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToPlayer(PlayerResource:GetPlayer(playerId), "show_message", {msg="#key_made_tip", duration=3, params={}, color="#ff0"})
|
||||||
ParticleManager:DestroyParticleSystem(hero.thtd_emoji_effect,true)
|
ParticleManager:DestroyParticleSystem(hero.thtd_emoji_effect,true)
|
||||||
hero.thtd_emoji_effect = ParticleManager:CreateParticle("particles/thtd/emoji/thtd_msg_hongliange.vpcf", PATTACH_OVERHEAD_FOLLOW, hero)
|
hero.thtd_emoji_effect = ParticleManager:CreateParticle("particles/thtd/emoji/thtd_msg_hongliange.vpcf", PATTACH_OVERHEAD_FOLLOW, hero)
|
||||||
ParticleManager:SetParticleControlEnt(hero.thtd_emoji_effect , 0, hero, PATTACH_OVERHEAD_FOLLOW, "attach_hitloc", Vector(0,0,0), true) --灵梦用 attach_emoji
|
ParticleManager:SetParticleControlEnt(hero.thtd_emoji_effect , 0, hero, PATTACH_OVERHEAD_FOLLOW, "attach_hitloc", Vector(0,0,0), true) --灵梦用 attach_emoji
|
||||||
|
|||||||
@@ -263,7 +263,7 @@ function SpawnSystem:PreSpawn()
|
|||||||
if GameRules:IsGamePaused() then return 0.1 end
|
if GameRules:IsGamePaused() then return 0.1 end
|
||||||
if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then return nil end
|
if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then return nil end
|
||||||
if uiWaveInfo["RemainingTime"] == 0 then
|
if uiWaveInfo["RemainingTime"] == 0 then
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="item_locked_tip", duration=60, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#item_locked_tip", duration=60, params={}, color="#ff0"})
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
uiWaveInfo["RemainingTime"] = math.max(math.floor(maxTime - GameRules:GetGameTime()),0)
|
uiWaveInfo["RemainingTime"] = math.max(math.floor(maxTime - GameRules:GetGameTime()),0)
|
||||||
@@ -284,9 +284,9 @@ function SpawnSystem:PreSpawn()
|
|||||||
-- 通知提示
|
-- 通知提示
|
||||||
local difficulty = GameRules:GetCustomGameDifficulty()
|
local difficulty = GameRules:GetCustomGameDifficulty()
|
||||||
if difficulty == CHALLENGE_MODE then
|
if difficulty == CHALLENGE_MODE then
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="challenge_game_on", duration=25, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#challenge_game_on", duration=25, params={}, color="#ff0"})
|
||||||
elseif difficulty >= FUNNY_MODE then
|
elseif difficulty >= FUNNY_MODE then
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="funny_game_on", duration=25, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#funny_game_on", duration=25, params={}, color="#ff0"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -407,7 +407,7 @@ function SpawnSystem:InitSpawn()
|
|||||||
|
|
||||||
-- 无尽前提示
|
-- 无尽前提示
|
||||||
if wave == 50 then
|
if wave == 50 then
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="spawn_unlimited", duration=133, params={count=50}, color="#0ff"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#spawn_unlimited", duration=133, params={count=50}, color="#0ff"})
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 进入无尽
|
-- 进入无尽
|
||||||
@@ -443,11 +443,11 @@ function SpawnSystem:InitSpawn()
|
|||||||
SpawnSystem:StartUnlimited()
|
SpawnSystem:StartUnlimited()
|
||||||
max_time = 180.5
|
max_time = 180.5
|
||||||
left_time = max_time
|
left_time = max_time
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="start_unlimited", duration=180, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#start_unlimited", duration=180, params={}, color="#ff0"})
|
||||||
if difficulty == CHALLENGE_MODE then
|
if difficulty == CHALLENGE_MODE then
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="challenge_game_on", duration=180, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#challenge_game_on", duration=180, params={}, color="#ff0"})
|
||||||
elseif difficulty >= FUNNY_MODE then
|
elseif difficulty >= FUNNY_MODE then
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="funny_game_on", duration=180, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#funny_game_on", duration=180, params={}, color="#ff0"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -690,10 +690,10 @@ function SpawnSystem:GameOver(hero)
|
|||||||
-- 过挑战第一波BOSS算上榜
|
-- 过挑战第一波BOSS算上榜
|
||||||
if wave > 100 then
|
if wave > 100 then
|
||||||
CheckRank(hero)
|
CheckRank(hero)
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="power_game_end_info", duration=60, params={wave=hero.thtd_game_info["max_wave"],name=PlayerResource:GetPlayerName(hero:GetPlayerID())}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#power_game_end_info", duration=60, params={wave=hero.thtd_game_info["max_wave"],name=PlayerResource:GetPlayerName(hero:GetPlayerID())}, color="#ff0"})
|
||||||
ShowDetail(hero)
|
ShowDetail(hero)
|
||||||
elseif wave > 50 then
|
elseif wave > 50 then
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="normal_game_end_info", duration=30, params={wave=wave-51,name=PlayerResource:GetPlayerName(hero:GetPlayerID())}, color="#f00"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#normal_game_end_info", duration=30, params={wave=wave-51,name=PlayerResource:GetPlayerName(hero:GetPlayerID())}, color="#f00"})
|
||||||
end
|
end
|
||||||
SpawnSystem:RefreshCreepMaxCount()
|
SpawnSystem:RefreshCreepMaxCount()
|
||||||
end
|
end
|
||||||
@@ -719,7 +719,7 @@ function SpawnSystem:GameEnd()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if wave > 100 then
|
if wave > 100 then
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="game_will_end", duration=60, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#game_will_end", duration=60, params={}, color="#ff0"})
|
||||||
GameRules:GetGameModeEntity():SetContextThink(DoUniqueString("thtd_end_game"),
|
GameRules:GetGameModeEntity():SetContextThink(DoUniqueString("thtd_end_game"),
|
||||||
function()
|
function()
|
||||||
GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
|
GameRules:SetGameWinner(DOTA_TEAM_GOODGUYS)
|
||||||
@@ -900,9 +900,9 @@ function CheckPlayerConnect()
|
|||||||
if (hero:GetPlayerOwner() == nil or hero:GetPlayerOwner():IsNull()) then
|
if (hero:GetPlayerOwner() == nil or hero:GetPlayerOwner():IsNull()) then
|
||||||
if hero.thtd_game_info["is_player_connected"] then
|
if hero.thtd_game_info["is_player_connected"] then
|
||||||
hero.thtd_game_info["is_player_connected"] = false
|
hero.thtd_game_info["is_player_connected"] = false
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="player_disconnect", duration=15, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#player_disconnect", duration=15, params={count=1}, color="#0ff"} )
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="{d:count}", duration=15, params={count=hero.thtd_player_id+1}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="{d:count}", duration=15, params={count=hero.thtd_player_id+1}, color="#ff0"})
|
||||||
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="pause_game", duration=15, params={}, color="#ff0"})
|
CustomGameEventManager:Send_ServerToAllClients("show_message", {msg="#pause_game", duration=15, params={}, color="#ff0"})
|
||||||
if GameRules:IsGamePaused() then PauseGame(false) end
|
if GameRules:IsGamePaused() then PauseGame(false) end
|
||||||
PauseGame(true)
|
PauseGame(true)
|
||||||
end
|
end
|
||||||
@@ -930,7 +930,7 @@ function SpawnSystem:WaveEndForEach()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
if totalDamage < hero.thtd_wave_total_health * 0.9 then
|
if totalDamage < hero.thtd_wave_total_health * 0.9 then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(hero:GetPlayerOwner(), "display_chat_msg", {msg="damage_less_rank_tip", params={player_name=PlayerResource:GetPlayerName(hero:GetPlayerOwnerID())}})
|
CustomGameEventManager:Send_ServerToPlayer(hero:GetPlayerOwner(), "display_chat_msg", {msg="#damage_less_rank_tip", params={player_name=PlayerResource:GetPlayerName(hero:GetPlayerOwnerID())}})
|
||||||
else
|
else
|
||||||
isMaxWave = true
|
isMaxWave = true
|
||||||
end
|
end
|
||||||
@@ -1384,10 +1384,10 @@ function SpawnSystem:StartSpawn()
|
|||||||
spawnerLine.nextBossName = thtd_bosses_list[RandomInt(1, #thtd_bosses_list)]
|
spawnerLine.nextBossName = thtd_bosses_list[RandomInt(1, #thtd_bosses_list)]
|
||||||
hero.next_boss_name = spawnerLine.nextBossName
|
hero.next_boss_name = spawnerLine.nextBossName
|
||||||
if player ~= nil then
|
if player ~= nil then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="extra_bonus_nazrin", duration=60, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="#extra_bonus_nazrin", duration=60, params={count=1}, color="#0ff"} )
|
||||||
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="extra_bonus_minoriko_limit", duration=60, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="#extra_bonus_minoriko_limit", duration=60, params={count=1}, color="#0ff"} )
|
||||||
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="extra_bonus_lily", duration=60, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="#extra_bonus_lily", duration=60, params={count=1}, color="#0ff"} )
|
||||||
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="extra_bosses_"..spawnerLine.nextBossName, duration=60, params={count=1}, color="#0ff"} )
|
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="#extra_bosses_"..spawnerLine.nextBossName, duration=60, params={count=1}, color="#0ff"} )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1451,8 +1451,8 @@ function SpawnSystem:StartSpawn()
|
|||||||
local modifierName = RandomBossBuff[RandomInt(1, #RandomBossBuff)]
|
local modifierName = RandomBossBuff[RandomInt(1, #RandomBossBuff)]
|
||||||
unit:AddNewModifier(unit, nil, modifierName, {})
|
unit:AddNewModifier(unit, nil, modifierName, {})
|
||||||
if player ~= nil then
|
if player ~= nil then
|
||||||
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="random_boss_has_buff", duration=20, params={}, color="#0ff"})
|
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="#random_boss_has_buff", duration=20, params={}, color="#0ff"})
|
||||||
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="DOTA_Tooltip_"..modifierName.."_Description", duration=20, params={}, color="#0ff"})
|
CustomGameEventManager:Send_ServerToPlayer(player,"show_message", {msg="#DOTA_Tooltip_"..modifierName.."_Description", duration=20, params={}, color="#0ff"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ function CDOTA_BaseNPC:THTD_InitExp()
|
|||||||
time_count = 0
|
time_count = 0
|
||||||
if self.thtd_star == 5 then
|
if self.thtd_star == 5 then
|
||||||
EmitSoundOn(THTD_GetVoiceEvent(self:GetUnitName(),"spawn"),self)
|
EmitSoundOn(THTD_GetVoiceEvent(self:GetUnitName(),"spawn"),self)
|
||||||
CustomGameEventManager:Send_ServerToPlayer(self:GetPlayerOwner() , "show_message", {msg=self:GetUnitName().."_up_to_5_star", duration=30, params={}, color="#ff0"} )
|
CustomGameEventManager:Send_ServerToPlayer(self:GetPlayerOwner() , "show_message", {msg= "#"..self:GetUnitName()"_up_to_5_star", duration=30, params={}, color="#ff0"} )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,20 +1,25 @@
|
|||||||
import vdf
|
import vdf
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
def main(english_keyfile: str, chinese_keyfile: str, output_file: str):
|
def copy_kvs(english_keys: vdf.VDFDict, chinese_keys: vdf.VDFDict, output: vdf.VDFDict):
|
||||||
chinese = vdf.load(open(chinese_keyfile, encoding='utf-16-le'), mapper=vdf.VDFDict)['lang']['Tokens']
|
for key in chinese_keys:
|
||||||
english = vdf.load(open(english_keyfile), mapper=vdf.VDFDict)['lang']['Tokens']
|
if not isinstance(chinese_keys[key], str):
|
||||||
output = vdf.VDFDict()
|
output[key] = vdf.VDFDict()
|
||||||
output['lang'] = vdf.VDFDict()
|
copy_kvs(english_keys[key], chinese_keys[key], output[key])
|
||||||
output['lang']['Language'] = "english"
|
elif key in english_keys and len(english_keys[key]) > 0:
|
||||||
output['lang']['Tokens'] = vdf.VDFDict()
|
output[key] = english_keys[key]
|
||||||
output_tokens = output['lang']['Tokens']
|
|
||||||
for key in chinese:
|
|
||||||
#print(key)
|
|
||||||
if key in english.keys():
|
|
||||||
output_tokens[key] = english[key]
|
|
||||||
else:
|
else:
|
||||||
output_tokens[key] = chinese[key]
|
output[key] = chinese_keys[key]
|
||||||
|
|
||||||
|
def main(english_keyfile: str, chinese_keyfile: str, output_file: str, chinese_encoding: str, english_encoding: str):
|
||||||
|
if chinese_encoding is None:
|
||||||
|
chinese_encoding = 'utf8'
|
||||||
|
if english_encoding is None:
|
||||||
|
english_encoding = 'utf8'
|
||||||
|
chinese = vdf.load(open(chinese_keyfile, encoding=chinese_encoding), mapper=vdf.VDFDict)
|
||||||
|
english = vdf.load(open(english_keyfile, encoding=english_encoding), mapper=vdf.VDFDict)
|
||||||
|
output = vdf.VDFDict()
|
||||||
|
copy_kvs(english, chinese, output)
|
||||||
vdf.dump(output, open(output_file, 'w'),pretty=True)
|
vdf.dump(output, open(output_file, 'w'),pretty=True)
|
||||||
args = sys.argv[1:]
|
args = sys.argv[1:]
|
||||||
main(args[0], args[1], args[2])
|
main(args[0], args[1], args[2], args[3], args[4])
|
||||||
0
tools/test.out
Normal file
0
tools/test.out
Normal file
Reference in New Issue
Block a user