Files
2HUCardTDGame/content/panorama/layout/custom_game/frames/payment/payment.js
2021-11-10 08:48:00 -05:00

280 lines
7.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use strict";
var PayAmount = 0;
var Price = 0.0;
var PetPayAmount = 0;
var PetPrice = 0;
var IsInQuery = false;
var SelectedPage = 1;
var BackTimeOutCount = 60;
var EndTimeOutCount = 300;
function ShowMessage(text, time, iserror, marginTop) {
var label = $.CreatePanel("Label", $.GetContextPanel(), "");
label.style["background-color"] = iserror ? "#A22C00" : "#000E";
label.style["color"] = iserror ? "#fff" : "#F37702";
label.style["padding"] = "20px";
label.style["font-size"] = "30px";
if (marginTop) label.style["margin-top"] = marginTop;
label.style["horizontal-align"] = "center";
label.style["vertical-align"] = "center";
label.html = true;
label.text = text;
label.DeleteAsync(time > 0 ? time : 3);
}
function PageModeSelect(type) {
if (type === "fairy") {
SelectedPage = 1;
$("#InputPage").visible = true;
$("#PetInputPage").visible = false;
$("#HtmlPage").visible = false;
$("#AvalonCoin").text = "";
return;
}
if (type === "pet") {
SelectedPage = 2;
$("#InputPage").visible = false;
$("#PetInputPage").visible = true;
$("#HtmlPage").visible = false;
$("#PetLevelText").text = "";
return;
}
}
function ShowModeSelectTip(index) {
$.DispatchEvent("DOTAShowTextTooltip", $("#PageModeToggle").GetChild(index), $.Localize("#pay_tip_mode" + index));
}
function HideModeSelectTip() {
$.DispatchEvent("DOTAHideTextTooltip")
}
function GoBack() {
$("#InputPage").visible = SelectedPage === 1;
$("#PetInputPage").visible = SelectedPage === 2;
$("#HtmlPage").visible = false;
$("#AvalonCoin").text = "";
$("#PetLevelText").text = "";
EndTimeOutCount = 0;
BackTimeOutCount = 0;
GameEvents.SendCustomGameEventToServer("custom_game_pay_auto_query", {});
}
function Pay( method, type ) {
if ((!Price || Price < 0) && (!PetPrice || PetPrice < 0)) return;
$("#PayQrImg").SetImage("");
$("#InputPage").visible = false;
$("#PetInputPage").visible = false;
$("#HtmlPage").visible = true;
$("#CompleteButton").visible = false;
$("#GoBackButton").enabled = false;
BackTimeOutCount = 30;
GoBackTimeCount();
EndTimeOutCount = 300;
EndBackTimeCount()
var payType = 2;
if (method === "alipay") {
payType = 1;
} else if (method === "wechatpay") {
payType = 2;
}
if (type === "fairy") {
GameEvents.SendCustomGameEventToServer("custom_game_pay_select", {"method":payType, "amount":PayAmount, "price":Price * 100, "type": type});
} else if (type === "pet") {
GameEvents.SendCustomGameEventToServer("custom_game_pay_select", {"method":payType, "amount":PetPayAmount, "price":PetPrice * 100, "type": type});
}
}
function GoBackTimeCount() {
if (BackTimeOutCount <= 0) {
$("#GoBackButton").enabled = true;
$("#GoBackButton").SetDialogVariableInt("timeout", 0)
$("#CompleteButton").visible = true;
return;
}
BackTimeOutCount--;
$("#GoBackButton").SetDialogVariableInt("timeout", BackTimeOutCount)
$.Schedule(1, GoBackTimeCount);
}
function EndBackTimeCount() {
if (EndTimeOutCount <= 0) {
return;
}
EndTimeOutCount--;
var m = Math.floor(EndTimeOutCount/60);
var s = EndTimeOutCount%60;
var note = m > 0 ? (m + "分") : "";
note += s > 0 ? (s + "秒") : "";
if (note === "") note = "0秒已过期请返回";
$("#HtmlPage").SetDialogVariable("LeftTime", note);
$.Schedule(1, EndBackTimeCount);
}
function PayComplete() {
if (IsInQuery) return;
IsInQuery = true;
GameEvents.SendCustomGameEventToServer("custom_game_pay_query", {});
}
// 文本改变
var AvalonCoinLock = false;
function OnAvalonCoinChange() {
if (AvalonCoinLock) return;
AvalonCoinLock=true;
var AvalonCoin = $("#AvalonCoin");
var text = AvalonCoin.text;
var m = text.replace(/\D+/g,"");
var amount = parseInt(m);
if (amount >= 10) {
AvalonCoin.text = parseInt(m);
}
else {
amount = 0;
AvalonCoin.text = "";
}
if (amount > 0) {
// $("#PrePayButton").SetDialogVariable("Amount",((100 * amount / 2 - RandomInt(0, 100))/100).toFixed(2).toString());
if (PayAmount != amount) {
PayAmount = amount;
Price = (100 * amount * 0.5 - RandomInt(0, 100))/100;
$("#PrePayButton").SetDialogVariable("Amount",Price.toString());
$("#HtmlPage").SetDialogVariable("Amount",Price.toString());
}
} else {
PayAmount = 0;
Price = 0.0;
$("#PrePayButton").SetDialogVariable("Amount", "0");
$("#HtmlPage").SetDialogVariable("Amount", "0");
}
AvalonCoinLock = false;
}
// 文本改变
var PetlevelLock = false;
function OnPetLevelChange() {
if (PetlevelLock) return;
PetlevelLock=true;
var PetLevelText = $("#PetLevelText");
var text = PetLevelText.text;
var m = text.replace(/\D+/g,"");
var amount = parseInt(m);
if (amount > 0) {
PetLevelText.text = parseInt(m);
}
else {
amount = 0;
PetLevelText.text = "";
}
if (amount > 0) {
if (PetPayAmount != amount) {
PetPayAmount = amount;
PetPrice = (100 * amount * 30 - RandomInt(0, 100))/100;
$("#PetPrePayButton").SetDialogVariable("Amount",PetPrice.toString());
$("#HtmlPage").SetDialogVariable("Amount",PetPrice.toString());
}
} else {
PetPayAmount = 0;
PetPrice = 0.0;
$("#PetPrePayButton").SetDialogVariable("Amount", "0");
$("#HtmlPage").SetDialogVariable("Amount", "0");
}
PetlevelLock = false;
}
function RandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function AddAvalonCoin(num) {
var AvalonCoin = $("#AvalonCoin");
var text = AvalonCoin.text;
var amount = parseInt(text);
if (!amount || amount < 0) amount = 0;
if (num > 0)
AvalonCoin.text = (amount + num);
else
AvalonCoin.text = "";
}
function AddPetLevel(num) {
var PetLevelText = $("#PetLevelText");
var text = PetLevelText.text;
var amount = parseInt(text);
if (!amount || amount < 0) amount = 0;
if (num > 0)
PetLevelText.text = (amount + num);
else
PetLevelText.text = "";
}
var closeHandle = null;
function Close() {
if (closeHandle) {
closeHandle();
}
}
function AvalonCoinInputFocus(){
// $("#PetTextPanel").SetFocus();
}
function PetInputFocus() {
$("#PetLevelText").SetFocus();
}
;(function(){
$("#PrePayButton").SetDialogVariable("Amount", "0");
$("#HtmlPage").SetDialogVariable("Amount", "0");
$("#HtmlPage").visible = false;
$("#AvalonCoin").enabled = false;
$("#InputPage").visible = SelectedPage === 1;
$("#PetInputPage").visible = SelectedPage === 2;
$.GetContextPanel().OnClose = function (f) { closeHandle = f };
GameEvents.Subscribe("thtd_pay_post", function (data){
if (data.code === 1) {
// $("#Html").SetURL(data.url);占用性能
// $("#PayQrImg").SetImage(data.url);
$("#PayQrImg").SetImage(data.method === 1 ? "s2r://panorama/images/custom_game/qr_alipay_png.vtex" : "s2r://panorama/images/custom_game/qr_wechat_png.vtex");
} else {
// $("#Html").SetURL("https://qrcode/error.jpg");
$("#PayQrImg").SetImage("");
ShowMessage("获取支付码失败," + data.msg, 10, true);
}
});
GameEvents.Subscribe("thtd_pay_result", function (data){
IsInQuery = false;
if (data.code === "0000") {
ShowMessage(data.msg, 5);
Game.EmitSound("Quest.Completed");
BackTimeOutCount = 0;
} else {
ShowMessage(data.msg, 5, true);
}
});
})();