目录结构调整
This commit is contained in:
656
codes/games/client/Projects/zpy/js/00_Surface/00_minhttp.js
Normal file
656
codes/games/client/Projects/zpy/js/00_Surface/00_minhttp.js
Normal file
@@ -0,0 +1,656 @@
|
||||
(function(wnd, undef){
|
||||
|
||||
//复制json对象
|
||||
function min_copyjson(json)
|
||||
{
|
||||
return JSON.parse(JSON.stringify(json));
|
||||
}
|
||||
|
||||
//json对象转字符串
|
||||
function min_jsontostr(json) {
|
||||
return JSON.stringify(json);
|
||||
}
|
||||
|
||||
//字符串转json对象
|
||||
function min_strtojson(str) {
|
||||
return JSON.parse(str);
|
||||
}
|
||||
|
||||
//字符串转整型 def:转换失败时返回的默认值
|
||||
function min_strtoint(str, def) {
|
||||
var i = parseInt(str);
|
||||
if (i == 0) {
|
||||
return 0;
|
||||
};
|
||||
if (!i) { //=0也会进来
|
||||
if (!def) {
|
||||
def = 0;
|
||||
};
|
||||
i = def;
|
||||
}
|
||||
return i;
|
||||
};
|
||||
|
||||
//整型转字符串
|
||||
function min_inttostr(i) {
|
||||
return i.toString();
|
||||
};
|
||||
|
||||
//整除
|
||||
function min_div(i, b)
|
||||
{
|
||||
if (!b) {
|
||||
return parseInt(i);
|
||||
}
|
||||
return parseInt(i / b);
|
||||
};
|
||||
|
||||
//取余数
|
||||
function min_mod(a, b){
|
||||
return a % b;
|
||||
};
|
||||
|
||||
//取绝对值
|
||||
function min_abs(b) {
|
||||
return Math.abs(b);
|
||||
};
|
||||
|
||||
//取随机数
|
||||
function min_random(min, max) {
|
||||
var Range = max - min;
|
||||
var Rand = Math.random();
|
||||
return (min + Math.round(Rand * Range));
|
||||
};
|
||||
//取随机数1
|
||||
function min_random1(num) {
|
||||
return parseInt(Math.random()*num);
|
||||
};
|
||||
|
||||
//随机字符串
|
||||
function min_randomChar(length){
|
||||
var x = "0123456789";
|
||||
var y = "qwertyuioplkjhgfdsazxcvbnm";
|
||||
var z = "QWERTYUIOPLKJHGFDSAZXCVBNM";
|
||||
var tmp = "";
|
||||
for (var i = 0; i < length; i++) {
|
||||
switch(min_random(0, 2)) {
|
||||
case 0:
|
||||
tmp += x.charAt(Math.ceil(Math.random()*100000000)%x.length);
|
||||
break;
|
||||
case 1:
|
||||
tmp += y.charAt(Math.ceil(Math.random()*100000000)%y.length);
|
||||
break;
|
||||
case 2:
|
||||
tmp += z.charAt(Math.ceil(Math.random()*100000000)%z.length);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
// var timestamp = new Date().getTime();
|
||||
// return timestamp + tmp;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
//取长度
|
||||
function min_length(key) {
|
||||
if (typeof(key) != "string") {
|
||||
var key = key + "";
|
||||
}
|
||||
return key.length;
|
||||
}
|
||||
|
||||
//字符全替换
|
||||
function min_replaceAll(str, str_old, str_new, ignoreCase)
|
||||
{
|
||||
if (!RegExp.prototype.isPrototypeOf(str_old)) {
|
||||
return str.replace(new RegExp(str_old, (ignoreCase ? "gi": "g")), str_new);
|
||||
} else {
|
||||
return str.replace(str_old, str_new);
|
||||
}
|
||||
}
|
||||
|
||||
//取本地当前时间,格式yyyy-MM-dd HH:MM:SS
|
||||
function min_now()
|
||||
{
|
||||
var date = new Date();
|
||||
var seperator1 = "-";
|
||||
var seperator2 = ":";
|
||||
var month = date.getMonth() + 1;
|
||||
var strDate = date.getDate();
|
||||
if (month >= 1 && month <= 9) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (strDate >= 0 && strDate <= 9) {
|
||||
strDate = "0" + strDate;
|
||||
}
|
||||
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
|
||||
+ " " + date.getHours() + seperator2 + date.getMinutes()
|
||||
+ seperator2 + date.getSeconds();
|
||||
return currentdate;
|
||||
}
|
||||
|
||||
//本地存储数据
|
||||
function min_writefile_gameid(msg, gameid, fileid) {
|
||||
localStorage.setItem("file_" + gameid + "_" + fileid, msg);
|
||||
}
|
||||
|
||||
//读取本地数据
|
||||
function min_readfile_gameid(gameid, fileid) {
|
||||
return localStorage.getItem("file_" + gameid + "_" + fileid);
|
||||
}
|
||||
|
||||
//取当前页面url中的参数值 def:没取到时返回的默认值
|
||||
function min_getQueryString(name, def) {
|
||||
var self = window;
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||||
var r = self.location.search.substr(1).match(reg);
|
||||
if (r != null) {
|
||||
return unescape(r[2])
|
||||
} else {
|
||||
if (def) {
|
||||
return def;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//获取当前页面的路径
|
||||
function min_getUrlRootPath() {
|
||||
var curWwwPath = window.location.host;
|
||||
var pathName = window.location.pathname;
|
||||
return curWwwPath + pathName.substr(0,pathName.lastIndexOf('/'));
|
||||
}
|
||||
|
||||
//设置cookie
|
||||
function min_setCookie(name, value, exp_minute) {
|
||||
if (!exp_minute) {
|
||||
exp_minute = 20; //默认时效20分钟
|
||||
}
|
||||
var exp = new Date();
|
||||
exp.setTime(exp.getTime() + exp_minute*60*1000);
|
||||
document.cookie = name + "=" + value + ";expires=" + exp.toGMTString()+';path=/';
|
||||
}
|
||||
|
||||
//读取cookie
|
||||
function min_getCookie(name) {
|
||||
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
|
||||
if(arr != null)
|
||||
return arr[2];
|
||||
return null;
|
||||
}
|
||||
|
||||
//删除cookie
|
||||
function min_delCookie(name) {
|
||||
var value = min_getCookie(name);
|
||||
if (value) {
|
||||
min_setCookie(name, value, 0);
|
||||
}
|
||||
}
|
||||
|
||||
//获取一个dom
|
||||
function min_getdom(id)
|
||||
{
|
||||
return document.getElementById(id);
|
||||
};
|
||||
|
||||
//设置一个dom属性值 id:dom、或dom的id、或实列,key:属性,val:值
|
||||
function min_setdom(id, key, val) {
|
||||
var obj;
|
||||
if (typeof(id) == 'string') {
|
||||
obj = min_getdom(id);
|
||||
}
|
||||
else {
|
||||
obj = id;
|
||||
}
|
||||
obj.setAttribute(key, val);
|
||||
}
|
||||
|
||||
//添加一段innerHTML
|
||||
function min_uphtml(id, str, isadd) {
|
||||
/*
|
||||
setAttribute是设置网页元素的属性,就是在标签里内如<img />标签的src属性。
|
||||
innerHTML不是属性,只是JS里内代表一个双标记中间的文本,如:<span> </span>中间的字符。
|
||||
*/
|
||||
var obj = window.document.getElementById(id);
|
||||
if (isadd) {
|
||||
obj.innerHTML = obj.innerHTML + str;
|
||||
}
|
||||
else {
|
||||
obj.innerHTML = str;
|
||||
}
|
||||
}
|
||||
|
||||
//新建一个定时器每隔time毫秒执行一次func函数,函数返回定时器id
|
||||
function min_ontime(func, time)
|
||||
{
|
||||
return setInterval(func, time);
|
||||
}
|
||||
|
||||
//新建一个定时器time毫秒后执行一次func函数(只执行一次),函数返回定时器id
|
||||
function min_ontimeout(func, time)
|
||||
{
|
||||
return setTimeout(func, time);
|
||||
}
|
||||
|
||||
//关闭定时器id为timerid的定时器
|
||||
function min_closetime(timerid)
|
||||
{
|
||||
return clearTimeout(timerid);
|
||||
}
|
||||
|
||||
//encode转码
|
||||
function min_encode(s)
|
||||
{
|
||||
return encodeURIComponent(s);
|
||||
}
|
||||
|
||||
//decode解码
|
||||
function min_decode(s)
|
||||
{
|
||||
return decodeURIComponent(s);
|
||||
}
|
||||
|
||||
//新建一个tcp连接
|
||||
function min_tcp(config)
|
||||
{
|
||||
var ws = new WebSocket("ws://" + config.ipport); //"127.0.0.1:5414"
|
||||
|
||||
//连接上服务器后触发的事件
|
||||
if (config.onopen) {
|
||||
ws.onopen = config.onopen;
|
||||
};
|
||||
|
||||
//收到服务器发来的数据包后触发的事件,onmessage函数会有一个底层的msg参数,其中msg.data才是服务器发过来的业务数据
|
||||
if (config.onmessage) {
|
||||
ws.onmessage = config.onmessage;
|
||||
};
|
||||
|
||||
//断开与服务器的连接后触发的事件
|
||||
if (config.onclose) {
|
||||
ws.onclose = config.onclose; //断开连接的事件
|
||||
};
|
||||
|
||||
return ws;
|
||||
}
|
||||
|
||||
//http请求
|
||||
function min_http(config) {
|
||||
/*
|
||||
config =
|
||||
{
|
||||
url: "http://127.0.0.1:5414/index.html",
|
||||
type: "POST", //GET or POST 方法
|
||||
data: "", //请求的数据
|
||||
success: func_callback_succ, //请求成功后的回调函数function(data,status,callbackdata)
|
||||
error: func_callback_err, //请求失败后的回调函数function(data,status)
|
||||
callbackdata: "", //作为回调函数第三个参数带入回调函数的数据
|
||||
//enurl: 0, //是否encodeURIComponent转码, 默认0不转码
|
||||
//deurl: 0, //是否decodeURIComponent解码,默认0不解码
|
||||
debugLog: false, //是否输出debug日志,默认false
|
||||
method: "(OPTIONAL) True for async and False for Non-async | By default its Async"
|
||||
}
|
||||
*/
|
||||
if (!config.debugLog) {
|
||||
config.debugLog = false;
|
||||
}
|
||||
if (!config.enurl) {
|
||||
config.enurl = 0;
|
||||
}
|
||||
if (!config.deurl) {
|
||||
config.deurl = 0;
|
||||
}
|
||||
if (!config.method) {
|
||||
config.method = true;
|
||||
}
|
||||
|
||||
if (!config.url) {
|
||||
if (config.debugLog == true) {
|
||||
console.log("No Url!");
|
||||
}
|
||||
return;
|
||||
};
|
||||
|
||||
if (!config.type) {
|
||||
if (config.debugLog == true) {
|
||||
console.log("No Default type (GET/POST) given!");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var xmlhttp = initXMLhttp();
|
||||
|
||||
xmlhttp.onreadystatechange = function() {
|
||||
if (xmlhttp.readyState == 4 && xmlhttp.status == 200 && config.success)
|
||||
{
|
||||
var responseText = mydecodeURIComponent(xmlhttp.responseText, config.deurl);
|
||||
if (!config.callbackdata) {
|
||||
config.success(responseText, xmlhttp.readyState);
|
||||
}
|
||||
else {
|
||||
config.success(responseText, xmlhttp.readyState, config.callbackdata);
|
||||
}
|
||||
if (config.debugLog == true) {
|
||||
console.log("SuccessResponse");
|
||||
}
|
||||
if (config.debugLog == true) {
|
||||
console.log("Response Data:" + xmlhttp.responseText);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (xmlhttp.readyState == 4 && config.error)
|
||||
{
|
||||
if (!config.callbackdata) {
|
||||
config.error(xmlhttp.readyState, xmlhttp.status);
|
||||
}
|
||||
else {
|
||||
config.error(xmlhttp.readyState, xmlhttp.status, config.callbackdata);
|
||||
}
|
||||
}
|
||||
if (config.debugLog == true) {
|
||||
console.log("FailureResponse --> readyState:" + xmlhttp.readyState + ", Status:" + xmlhttp.status);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var sendString = [],
|
||||
sendData = config.data;
|
||||
if (typeof sendData === "string") {
|
||||
var tmpArr = String.prototype.split.call(sendData, '&');
|
||||
for (var i = 0, j = tmpArr.length; i < j; i++) {
|
||||
var datum = tmpArr[i].split('=');
|
||||
if (datum[1]) {
|
||||
sendString.push(myencodeURIComponent(datum[0], config.enurl) + "=" + myencodeURIComponent(datum[1], config.enurl));
|
||||
}
|
||||
else {
|
||||
sendString.push(myencodeURIComponent(datum[0], config.enurl));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (typeof sendData === 'object' && !(sendData instanceof String || (FormData && sendData instanceof FormData))) {
|
||||
for (var k in sendData) {
|
||||
var datum = sendData[k];
|
||||
if (Object.prototype.toString.call(datum) == "[object Array]") {
|
||||
for (var i = 0, j = datum.length; i < j; i++) {
|
||||
sendString.push(myencodeURIComponent(k, config.enurl) + "[]=" + myencodeURIComponent(datum[i], config.enurl));
|
||||
}
|
||||
}
|
||||
else {
|
||||
sendString.push(myencodeURIComponent(k, config.enurl) + "=" + myencodeURIComponent(datum, config.enurl));
|
||||
}
|
||||
}
|
||||
}
|
||||
sendString = sendString.join('&');
|
||||
|
||||
if (config.type == "GET") {
|
||||
var g;
|
||||
var i = config.url.lastIndexOf("?");
|
||||
if (i > 8) {
|
||||
g = "&";
|
||||
} else {
|
||||
g = "?";
|
||||
}
|
||||
var ddata = new Date().getMilliseconds();
|
||||
if (sendString == "") {
|
||||
sendString = '#dfw1977=' + (ddata + min_random(1, 99999) * 1000);
|
||||
} else {
|
||||
sendString = sendString + '#dfw1977=' + (ddata + min_random(1, 99999) * 1000);
|
||||
}
|
||||
xmlhttp.open("GET", config.url + g + sendString, config.method);
|
||||
xmlhttp.send();
|
||||
|
||||
if (config.debugLog == true) {
|
||||
console.log("GET fired at:" + config.url + "?" + sendString);
|
||||
}
|
||||
}
|
||||
if (config.type == "POST") {
|
||||
xmlhttp.open("POST", config.url, config.method);
|
||||
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
xmlhttp.send(sendString);
|
||||
|
||||
if (config.debugLog == true) {
|
||||
console.log("POST fired at:" + config.url + " || Data:" + sendString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function initXMLhttp() {
|
||||
var xmlhttp;
|
||||
if (window.XMLHttpRequest) {
|
||||
//code for IE7,firefox chrome and above
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
} else {
|
||||
//code for Internet Explorer
|
||||
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
return xmlhttp;
|
||||
}
|
||||
|
||||
//转码
|
||||
function myencodeURIComponent(s, ifif)
|
||||
{
|
||||
if (ifif == 1) {
|
||||
return min_encode(s);
|
||||
} else {
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
//解码
|
||||
function mydecodeURIComponent(s, ifif)
|
||||
{
|
||||
if (ifif == 1) {
|
||||
return min_decode(s);
|
||||
} else {
|
||||
return s;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//在数组中根据元素值查找下标
|
||||
function min_ary_indexof(array1, val, name)
|
||||
{
|
||||
for (var i = 0; i < array1.length; i++)
|
||||
{
|
||||
if (!name)
|
||||
{
|
||||
if (array1[i] == val)
|
||||
return i;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (array1[i][name] == val)
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
|
||||
//在数组中根据值删除元素
|
||||
function min_ary_delval(array1, val, name)
|
||||
{
|
||||
var index = min_ary_indexof(array1, val, name);
|
||||
if (index > -1)
|
||||
{
|
||||
array1.splice(index, 1);
|
||||
}
|
||||
};
|
||||
|
||||
//在数组中根据下标删除诺干个元素
|
||||
function min_ary_delfromto(array1, from, to)
|
||||
{
|
||||
var rest = array1.slice((to || from) + 1 || array1.length);
|
||||
array1.length = from < 0 ? array1.length + from : from;
|
||||
array1.push.apply(array1, rest);
|
||||
};
|
||||
|
||||
//在数组中删除某一对象元素
|
||||
function min_ary_delobj(array1, object)
|
||||
{
|
||||
for (var i = 0; i < array1.length; ++i)
|
||||
{
|
||||
if (array1[i] === object)
|
||||
{
|
||||
array1.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//数组包含
|
||||
function min_ary_include(aryparent, arychild){
|
||||
for (var i = 0; i < arychild.length; i++) {
|
||||
var found = false;
|
||||
for (var j = 0; j < aryparent.length; j++) {
|
||||
if (aryparent[j] == arychild[i]){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
//数组相减
|
||||
function min_ary_deduct(aryparent, arychild){
|
||||
var re = [];
|
||||
for (var i = 0; i < aryparent.length; i++){
|
||||
var found = false;
|
||||
for (var j = 0; j < arychild.length; j++){
|
||||
if (aryparent[i] == arychild[j]){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found){
|
||||
re.push(aryparent[i])
|
||||
}
|
||||
}
|
||||
return re;
|
||||
};
|
||||
|
||||
//是否存在指定函数
|
||||
function min_ExitsFunction(funcName)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (typeof(funcName) == "function")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
return false;
|
||||
}
|
||||
|
||||
//(按顺序)加载js文件
|
||||
function min_loadJsFile(str_jsfile, func_succ, NoRandomFlag)
|
||||
{
|
||||
var domScript = document.createElement('script');
|
||||
if (!NoRandomFlag)
|
||||
{
|
||||
// str_jsfile = str_jsfile + '?' + Math.random() * 10000;
|
||||
// str_jsfile = str_jsfile + '?' + min_random(1, 10000000);
|
||||
str_jsfile = str_jsfile + '?' + min_timestamp();
|
||||
}
|
||||
domScript.src = str_jsfile;
|
||||
func_succ = func_succ || function(){};
|
||||
domScript.onload = domScript.onreadystatechange = function() {
|
||||
if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {
|
||||
func_succ();
|
||||
this.onload = this.onreadystatechange = null;
|
||||
this.parentNode.removeChild(this);
|
||||
}
|
||||
}
|
||||
document.getElementsByTagName('head')[0].appendChild(domScript);
|
||||
}
|
||||
|
||||
//生成一个GUID
|
||||
function min_guid()
|
||||
{
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
||||
var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
|
||||
return v.toString(16);});
|
||||
}
|
||||
|
||||
//获取时间戳
|
||||
function min_timestamp()
|
||||
{
|
||||
return new Date().getTime();
|
||||
}
|
||||
|
||||
|
||||
wnd.min_copyjson = min_copyjson; //复制json对象
|
||||
wnd.min_jsontostr = min_jsontostr; //json转字符串
|
||||
wnd.min_strtojson = min_strtojson; //字符串转json
|
||||
wnd.min_inttostr = min_inttostr; //整型转字符型
|
||||
wnd.min_strtoint = min_strtoint; //字符型转整型
|
||||
|
||||
wnd.min_div = min_div; //整除
|
||||
wnd.min_mod = min_mod; //取余数
|
||||
wnd.min_abs = min_abs; //取绝对值
|
||||
wnd.min_random = min_random; //取随机数
|
||||
wnd.min_random1 = min_random1; //取随机数1
|
||||
wnd.min_randomChar = min_randomChar; //随机字符串
|
||||
wnd.min_length = min_length; //取长度
|
||||
wnd.min_replaceAll = min_replaceAll; //字符全替换
|
||||
|
||||
wnd.min_now = min_now; //取本地当前时间
|
||||
wnd.min_guid = min_guid; //生成一个GUID
|
||||
|
||||
wnd.min_getQueryString = min_getQueryString; //取当前页面url中的参数值
|
||||
wnd.min_getUrlRootPath = min_getUrlRootPath; //获取当前页面的路径
|
||||
|
||||
wnd.min_setCookie = min_setCookie; //设置cookie
|
||||
wnd.min_getCookie = min_getCookie; //读取cookie
|
||||
wnd.min_delCookie = min_delCookie; //删除cookie
|
||||
|
||||
wnd.min_getdom = min_getdom; //获取一个dom
|
||||
wnd.min_setdom = min_setdom; //设置一个dom属性值
|
||||
wnd.min_uphtml = min_uphtml; //添加一段innerHTML
|
||||
|
||||
wnd.min_ontime = min_ontime; //新建一个周期性的定时器
|
||||
wnd.min_ontimeout = min_ontimeout; //新建一个一次性的定时器
|
||||
wnd.min_closetime = min_closetime; //关闭定时器
|
||||
|
||||
wnd.min_writefile_gameid = min_writefile_gameid; //本地存储数据
|
||||
wnd.min_readfile_gameid = min_readfile_gameid; //读取本地数据
|
||||
|
||||
wnd.min_encode = min_encode; //encodeURIComponent转码
|
||||
wnd.min_decode = min_decode; //decodeURIComponent解码
|
||||
|
||||
wnd.min_tcp = min_tcp; //新建一个tcp连接
|
||||
wnd.min_http = min_http; //http请求
|
||||
|
||||
wnd.min_ary_indexof = min_ary_indexof; //在数组中根据元素值查找下标
|
||||
wnd.min_ary_delval = min_ary_delval; //在数组中根据值删除元素
|
||||
wnd.min_ary_delfromto = min_ary_delfromto; //在数组中根据下标删除诺干个元素
|
||||
wnd.min_ary_delobj = min_ary_delobj; //在数组中删除某一对象元素
|
||||
wnd.min_ary_include = min_ary_include; //数组包含
|
||||
wnd.min_ary_deduct = min_ary_deduct; //数组相减
|
||||
|
||||
wnd.min_ExitsFunction = min_ExitsFunction; //是否存在函数
|
||||
wnd.min_loadJsFile = min_loadJsFile; //加载js文件
|
||||
|
||||
wnd.min_guid = min_guid; //生成一个GUID
|
||||
wnd.min_timestamp = min_timestamp; //获取时间戳
|
||||
})(window);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
822
codes/games/client/Projects/zpy/js/00_Surface/02_Const.js
Normal file
822
codes/games/client/Projects/zpy/js/00_Surface/02_Const.js
Normal file
@@ -0,0 +1,822 @@
|
||||
var AppList = AppList||{};
|
||||
var RouteList = RouteList||{};
|
||||
var RpcList = RpcList||{};
|
||||
//--------------AppList---------------
|
||||
AppList.app = "youle";
|
||||
|
||||
//-----------RouteList-------------
|
||||
RouteList.platform = "platform";
|
||||
RouteList.agent="agent";
|
||||
RouteList.room="room";
|
||||
|
||||
|
||||
//----------------RpcList--------------
|
||||
RpcList.player_login = "player_login";
|
||||
RpcList.self_join_room = "self_join_room";
|
||||
RpcList.create_room = "create_room";
|
||||
RpcList.self_break_room = "self_break_room";
|
||||
RpcList.other_break_room = "other_break_room";
|
||||
RpcList.other_join_room = "other_join_room";
|
||||
RpcList.self_exit_room = "self_exit_room";
|
||||
RpcList.other_exit_room = "other_exit_room";
|
||||
RpcList.self_apply_free_room = "self_apply_free_room";
|
||||
RpcList.other_apply_free_room = "other_apply_free_room";
|
||||
RpcList.self_agree_free_room = "self_agree_free_room";
|
||||
RpcList.other_agree_free_room = "other_agree_free_room";
|
||||
RpcList.self_refuse_free_room = "self_refuse_free_room";
|
||||
RpcList.other_refuse_free_room = "other_refuse_free_room";
|
||||
RpcList.free_room = "free_room";
|
||||
RpcList.over_game = "over_game";
|
||||
RpcList.get_player_grade1 = "get_player_grade1";
|
||||
RpcList.get_player_grade2 = "get_player_grade2";
|
||||
RpcList.update_roomcard = "update_roomcard";
|
||||
RpcList.other_offline = "other_offline";
|
||||
RpcList.other_online = "other_online";
|
||||
RpcList.send_voice = "send_voice";
|
||||
RpcList.play_voice = "play_voice";
|
||||
RpcList.send_text = "send_text";
|
||||
RpcList.receive_chat = "receive_chat";
|
||||
RpcList.get_player_task = "get_player_task";
|
||||
RpcList.player_finish_task = "player_finish_task";
|
||||
RpcList.get_task_award = "get_task_award";
|
||||
RpcList.can_award = "can_award";
|
||||
RpcList.kick_offline = "kick_offline";
|
||||
RpcList.call_phone = "call_phone";
|
||||
RpcList.other_callphone = "other_callphone";
|
||||
RpcList.hangup_phone = "hangup_phone";
|
||||
RpcList.other_hangup = "other_hangup";
|
||||
RpcList.self_makewar = "self_makewar";
|
||||
RpcList.other_makewar = "other_makewar";
|
||||
RpcList.agentserver_game="agentserver_game";
|
||||
RpcList.send_gift="send_gift";
|
||||
RpcList.other_send_gift="other_send_gift";
|
||||
RpcList.send_voice="send_voice";
|
||||
RpcList.play_voice="play_voice";
|
||||
RpcList.connect_roomserver="connect_roomserver";
|
||||
RpcList.connect_agentserver="connect_agentserver";
|
||||
RpcList.broadcast="broadcast";
|
||||
RpcList.send_phiz="send_phiz";
|
||||
RpcList.submit_opinion = "submit_opinion";
|
||||
RpcList.kick_server = "kick_server";
|
||||
RpcList.get_paylist = "get_paylist";
|
||||
RpcList.pay_succ = "pay_succ";
|
||||
RpcList.submit_location = "submit_location";
|
||||
RpcList.binding_invitecode = "binding_invitecode";
|
||||
RpcList.update_bean = "update_bean";
|
||||
RpcList.get_player_invitecode = "get_player_invitecode";
|
||||
RpcList.beanroom_surrender = "beanroom_surrender";
|
||||
RpcList.player_prepare = "player_prepare";
|
||||
RpcList.share_room = "share_room";
|
||||
RpcList.get_share_room = "get_share_room";
|
||||
RpcList.quick_enter_share_room = "quick_enter_share_room";
|
||||
RpcList.advanced_roomlist = "advanced_roomlist";
|
||||
RpcList.advanced_createroom = "advanced_createroom";
|
||||
RpcList.change_room = "change_room";
|
||||
RpcList.change_seat = "change_seat";
|
||||
RpcList.set_bankpwd = "set_bankpwd";
|
||||
|
||||
RpcList.binding_phone = "binding_phone";
|
||||
|
||||
RpcList.send_phone_checkcode = "send_phone_checkcode";
|
||||
RpcList.send_phone_code_wechat = "send_phone_code_wechat";
|
||||
|
||||
RpcList.get_treasurelist = "get_treasurelist";
|
||||
RpcList.change_star = "change_star";
|
||||
|
||||
RpcList.submit_phoneinfo = "submit_phoneinfo";
|
||||
|
||||
RpcList.update_charm = "update_charm";
|
||||
|
||||
RpcList.setSign = "setSign";
|
||||
|
||||
RpcList.switchRoomList = "switchRoomList";
|
||||
|
||||
RpcList.getInfoByShortCode = "getInfoByShortCode";
|
||||
|
||||
RpcList.optBanList = "optBanList";
|
||||
RpcList.getShortCodeRankList = "getShortCodeRankList";
|
||||
|
||||
RpcList.setAllCharm = "setAllCharm";
|
||||
RpcList.getVipRankList = "getVipRankList";
|
||||
RpcList.playerBehavior = "playerBehavior";
|
||||
RpcList.setVipForbidSelect = "setVipForbidSelect";
|
||||
|
||||
RpcList.topup_card = "topup_card";
|
||||
RpcList.query_player2 = "query_player2";
|
||||
RpcList.giveCoin = "giveCoin";
|
||||
|
||||
RpcList.getPlayerWhiteList = "getPlayerWhiteList";
|
||||
RpcList.optWhiteList = "optWhiteList";
|
||||
|
||||
var h5RpcList={}
|
||||
h5RpcList.joinRoom = "joinRoom";
|
||||
//----------------------------end------------------------------
|
||||
|
||||
var ClickBtn = [3,5,7,13,14,15,10,11,12,25,17,9,47,51,53,55,58,59,76,60,61,74,75,80,115,183,150,151,153,181,201,202,183,184,185,205,206,207,208,209,210,211,212,166,167,168,169,170,124,127,130,
|
||||
133,233,245,246,247,253,248,249,253,256,257,258,259,260,261,262,263,550,177,283,375,391,392,393,394,395,396,397,
|
||||
398,399,400,401,402,403,366,367,386,464,234,345,483,484,493,509,512,513,514,515,519,520,521,568,569,570,571,572,579,
|
||||
602,626,604,656,661,662,663,664,665,666,667,668,669,670,671,3000,3004,3007,3008,3009,3010,3011,3014,3016,3017,3018,3019,
|
||||
3034,3035,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3057,3043,3038,3039,3067,3068,3087,3088,3089,3096,3075,3076,3097,3111,3120,92,93,97,
|
||||
99,104,105,106,107,3133,3139,3140,3144,3145,3149,3155,3159,679,3182,3184,3175,3194,3195,3199,3214,3215,3205,3206,3210,
|
||||
3203,3216,3217,3222,3231,3232,3233,3235,3240,3251,3253,3243,3244,3245,3255,3256,3258,3260,3264,3265,3266,3268,3269,3289,3281,3276,3274];
|
||||
var C_PageOne = {
|
||||
Tag:1,
|
||||
X:1100,
|
||||
Y:160,
|
||||
H:80
|
||||
};
|
||||
var C_PageTwo = {
|
||||
Tag:1,
|
||||
X:1100,
|
||||
Y:160,
|
||||
H:80
|
||||
};
|
||||
var UnClickBtn = [8,50,225,227,228,229,699,161,162,164,165,370,426,427,428,429,430,431,432,433,434,435,446,447,448,449,450,451,452,453,454,455,468,469,470,471,472,473,474,475,476,477,498,499,500,501,
|
||||
502,503,504,505,506,507,81,573,574,575,629,630,631,632,633,3056,3040,3058,3041,3061,3062,3071,3072,3069,3070,3090,3091,3092,3093,3094,3095,3098,3104,3108,3115,3116,3118,3119,
|
||||
102,336,337,338,155,154,156,110,111,3127,3128,3141,3142,3146,3147,3151,3157,3099,3197,3212,3237,3246,3247,3248,3249,3250,3291,3280,3288,3283,3279,3292
|
||||
];
|
||||
var exceptSrc = [115,5,253,338,339,340,21,361,362,363,364,365,366,367,368,369,370,371,372,396];
|
||||
var ConstVal=ConstVal||{};
|
||||
ConstVal.Max = {
|
||||
ShowChat:2000,
|
||||
textlength:20,
|
||||
headImgTimer:200,
|
||||
heartbeat:30000
|
||||
};
|
||||
|
||||
ConstVal.Tips={
|
||||
width:30,
|
||||
time:3000,
|
||||
|
||||
};
|
||||
ConstVal.Kick={
|
||||
text:"网络出现异常!",
|
||||
tip:"(请重启游戏)"
|
||||
};
|
||||
ConstVal.screenShotParam = 0.7;
|
||||
ConstVal.ShareTaskId="TJnueK1103Xgwj2o79xM2nvSe0WN6rzp";
|
||||
|
||||
ConstVal.iMessage={
|
||||
text_y1:-60,
|
||||
text_y2:25,
|
||||
icon_x:20,
|
||||
icon_y1:-65,
|
||||
icon_y2:20,
|
||||
close_x:1205,
|
||||
close_y1:-60,
|
||||
close_y2:25,
|
||||
bg_y1:-85,
|
||||
bg_y2:0,
|
||||
time:500,
|
||||
x1:85,
|
||||
x2:1205,
|
||||
y:0,
|
||||
h:85,
|
||||
speed:0.05,
|
||||
max_length:60
|
||||
};
|
||||
ConstVal.Emotion = {
|
||||
//动画帧间隔200
|
||||
mode:1,//表情播放时间模式1->按帧数确定时间2->按照show_time_list确定
|
||||
count:20,
|
||||
f_spid:467,
|
||||
tag:1,
|
||||
rate:100,
|
||||
col_num:4,//一行上的个数
|
||||
spid_list:[528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547],//表情精灵列表序号对应
|
||||
src_list:[147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166],//表情对应资源号
|
||||
frame_list:[5,25,31,30,14,7,8,17,3,8,30,14,35,24,23,15,6,24,31,9],//表情对应帧数
|
||||
show_time_list:[147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166],//表情播放时间
|
||||
x:20,
|
||||
y:20,
|
||||
dis_x:20,
|
||||
dis_y:20,
|
||||
w:100,
|
||||
h:100,
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_h:0,
|
||||
clip_w:0
|
||||
|
||||
}
|
||||
ConstVal.Com_History = {
|
||||
//动画帧间隔200
|
||||
f_spid:696,
|
||||
head_tag:1,
|
||||
page_count:5,
|
||||
text_width:12.5,
|
||||
bubble_tag:10000,
|
||||
content_tag:20000,
|
||||
time_tag:30000,
|
||||
time_length:[10,30,60,90,120,300],
|
||||
bubble_width:[100,140,180,220,260,300,340],//气泡长度
|
||||
head_res_id:116,
|
||||
head_x:20,
|
||||
head_y:30,
|
||||
head_h:60,
|
||||
head_dis_y:35,
|
||||
time_bubble_dis_x:10,
|
||||
head_bubble_dis_x:78,
|
||||
bubble_content_dis_x:25,
|
||||
head_bubble_dis_y:0,
|
||||
head_content_1_dis_y:13,
|
||||
head_content_2_dis_y:13,
|
||||
time_bubble_dis_y:13,
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_h:0,
|
||||
clip_w:0
|
||||
|
||||
}
|
||||
ConstVal.Task = {
|
||||
f_spid:176,//父精灵
|
||||
bg_spid:120,//背景精灵
|
||||
task_des_spid:135,//任务描述精灵
|
||||
reward_des_spid:307,//任务奖励描述
|
||||
proc_bg_spid:311,//任务进度背景
|
||||
proc_spid:315,//任务进度前景
|
||||
proc_des_spid:319,//任务进度文字描述
|
||||
get_reward_btn_spid:124,//领取任务按钮
|
||||
isreward_spid:328,//已领取
|
||||
tofinish_btn_spid:125,//去完成任务
|
||||
//tag值
|
||||
bg_tag:1,
|
||||
task_des_tag:1000,
|
||||
reward_des_tag:2000,
|
||||
proc_bg_tag:3000,
|
||||
proc_tag:4000,
|
||||
proc_des_tag:5000,
|
||||
get_reward_btn_tag:6000,
|
||||
isreward_tag:7000,
|
||||
tofinish_btn_tag:8000,
|
||||
//位置
|
||||
bg_x:0,
|
||||
bg_y:0,
|
||||
bg_w:0,//动态获取
|
||||
bg_dis_x:0,
|
||||
|
||||
task_des_x:30,
|
||||
task_des_y:30,
|
||||
|
||||
reward_des_y:265,
|
||||
proc_bg_y:380,
|
||||
proc_y:380,
|
||||
proc_des_y:380,
|
||||
get_reward_btn_y:368,
|
||||
isreward_y:365,
|
||||
tofinish_btn_y:330,
|
||||
|
||||
clip_x:110,
|
||||
clip_y:170,
|
||||
clip_w:0,
|
||||
clip_h:0
|
||||
}
|
||||
ConstVal.Launch_mode={
|
||||
name:"Launchtype",
|
||||
from_hall:1,
|
||||
from_self:0
|
||||
};
|
||||
ConstVal.OS = {//操作系统类型
|
||||
apple:1,//苹果
|
||||
android:2,//安卓
|
||||
winphone:3,//windowsphone
|
||||
other:4//其他
|
||||
};
|
||||
ConstVal.InterEffSoundsList = ["00001.mp3","00002.mp3","00003.mp3","00004.mp3"];
|
||||
ConstVal.soudsSpidList = [235,13,5,6,7,9,339,11,12,14,15,249,10,376,377,378,379,380,381,382,383,384,385,150,153,151,283,181,513,233,185];
|
||||
ConstVal.Broadcast = {
|
||||
textwidth:18,
|
||||
speed:0.1,
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_w:0,
|
||||
clip_h:0
|
||||
};
|
||||
ConstVal.Notice = {
|
||||
replaceOldWord:"#",
|
||||
replaceNewWord:"\n",
|
||||
lineHeight:60,
|
||||
textHeight:30,
|
||||
textWidth:14,
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_w:725,
|
||||
clip_h:450,
|
||||
img_clip_x:366,
|
||||
img_clip_y:156,
|
||||
img_clip_w:765,
|
||||
img_clip_h:483,
|
||||
};
|
||||
ConstVal.payConfig = {
|
||||
enablePay:false
|
||||
};
|
||||
|
||||
ConstVal.loginButton = {
|
||||
key:"loginimage",
|
||||
type1:[1,22],//0->类型值 1->图片资源ID
|
||||
type2:[2,203]
|
||||
}
|
||||
|
||||
ConstVal.userAgent = {
|
||||
paraName:"",
|
||||
uAgent_1:1,
|
||||
uAgent_2:2,
|
||||
uAgent_3:3
|
||||
};
|
||||
ConstVal.worldRoom = {
|
||||
f_sp_1:522,
|
||||
f_sp_2:523,
|
||||
bg_sp_1:524,
|
||||
bg_sp_2:525,
|
||||
top_sp_1:526,
|
||||
top_sp_2:563,
|
||||
des_sp_1:527,
|
||||
des_sp_2:564,
|
||||
starbg_sp_1:566,
|
||||
starbg_sp_2:567,
|
||||
star_sp_1:562,
|
||||
star_sp_2:565,
|
||||
mult_sp_1:3020,
|
||||
mult_sp_2:3021,
|
||||
join_sp_1:3022,
|
||||
join_sp_2:3023,
|
||||
pCount_sp_1:3024,
|
||||
leave_sp_2:3025,
|
||||
topImg_sp:96,
|
||||
title_sp:3165,
|
||||
|
||||
multIcon_sp:94,
|
||||
multImg_sp:95,
|
||||
imgList:[361,362,363,364,365,366,367,368,369,370,371,372],
|
||||
multIcon_y:100,
|
||||
multImg_y:119,
|
||||
topImg_y:25,
|
||||
multImgWidth:25,
|
||||
multIconImgSpace:20,
|
||||
|
||||
pCountIcon_sp_2:3026,
|
||||
pCount_sp_2:3027,
|
||||
roomCode_sp_2:3028,
|
||||
|
||||
|
||||
bg_sp_tag_1:1,
|
||||
top_sp_tag_1:2000,
|
||||
des_sp_tag_1:4000,
|
||||
starbg_sp_tag_1:6000,
|
||||
star_sp_tag_1:8000,
|
||||
mult_sp_tag_1:10000,
|
||||
pCount_sp_tag_1:12000,
|
||||
join_sp_tag_1:14000,
|
||||
multIcon_tag:16000,
|
||||
multImg_tag:18000,
|
||||
topImg_tag:20000,
|
||||
|
||||
|
||||
bg_sp_tag_2:1,
|
||||
top_sp_tag_2:2000,
|
||||
des_sp_tag_2:4000,
|
||||
starbg_sp_tag_2:6000,
|
||||
star_sp_tag_2:8000,
|
||||
mult_sp_tag_2:10000,
|
||||
leave_sp_tag_2:12000,
|
||||
roomCode_sp_tag_2:14000,
|
||||
pCountIcon_sp_tag_2:16000,
|
||||
join_sp_tag_2:18000,
|
||||
pCount_sp_tag_2:20000,
|
||||
title_tag:40000,
|
||||
|
||||
clip_x_1:0,
|
||||
clip_x_2:0,
|
||||
clip_y_1:0,
|
||||
clip_y_2:0,
|
||||
clip_w_1:1050,
|
||||
clip_w_2:1150,
|
||||
clip_h_1:512,
|
||||
clip_h_2:465,
|
||||
|
||||
bg_sp_x_1:0,
|
||||
bg_sp_x_2:0,
|
||||
bg_sp_y_1:0,
|
||||
bg_sp_y_2:0,
|
||||
//bg_sp_y_2:43,
|
||||
bg_sp_space_1:6,
|
||||
bg_sp_space_2:15,
|
||||
top_sp_x_1:25,
|
||||
top_sp_x_2:25,
|
||||
top_sp_y_1:35,
|
||||
top_sp_y_2:20,
|
||||
top_sp_width_1:20,
|
||||
top_sp_width_2:13,
|
||||
top_sp_space_1:6,
|
||||
top_sp_space_2:6,
|
||||
des_sp_x_1:25,
|
||||
des_sp_x_2:30,
|
||||
title_sp_x:20,
|
||||
title_sp_y:3,
|
||||
des_sp_y_1:80,
|
||||
des_sp_y_2:45,
|
||||
des_sp_width_1:11,
|
||||
des_sp_width_2:11,
|
||||
des_sp_space_1:6,
|
||||
des_sp_space_2:6,
|
||||
|
||||
//mult_sp_x_1:10000,
|
||||
pCount_sp_x_1:80,
|
||||
join_sp_x_1:302,//靠右显示
|
||||
mult_sp_y_1:74,
|
||||
pCount_sp_y_1:193,
|
||||
join_sp_y_1:193,
|
||||
|
||||
mult_sp_x_2:30,
|
||||
roomCode_sp_x_2:775,
|
||||
pCountIcon_sp_x_2:170,
|
||||
join_sp_x_2:700,//靠右显示
|
||||
leave_sp_x_2:700,//靠右显示
|
||||
|
||||
pCountIcon_pCount_space_2:10,
|
||||
pCount_space_2:8,
|
||||
|
||||
//mult_sp_y_2:72,
|
||||
//roomCode_sp_y_2:25,
|
||||
//pCountIcon_sp_y_2:76,
|
||||
//join_sp_y_2:72,
|
||||
//leave_sp_y_2:23,
|
||||
//pCount_sp_y_2:81,
|
||||
|
||||
mult_sp_y_2:92,
|
||||
roomCode_sp_y_2:45,
|
||||
pCountIcon_sp_y_2:96,
|
||||
join_sp_y_2:92,
|
||||
leave_sp_y_2:45,
|
||||
pCount_sp_y_2:101,
|
||||
|
||||
|
||||
starbg_sp_x_1:35,
|
||||
starbg_sp_x_2:35,
|
||||
starbg_sp_y_1:182,
|
||||
starbg_sp_y_2:182,
|
||||
starbg_sp_space_1:6,
|
||||
starbg_sp_space_2:6,
|
||||
|
||||
star_sp_x_1:35,
|
||||
star_sp_x_2:35,
|
||||
star_sp_y_1:189,
|
||||
star_sp_y_2:189,
|
||||
star_sp_space_1:6,
|
||||
star_sp_space_2:6,
|
||||
|
||||
mult_sp_w_1:13,
|
||||
join_sp_w_1:10,
|
||||
|
||||
join_sp_w_2:12,
|
||||
leave_sp_w_2:12,
|
||||
mult_sp_w_2:13,
|
||||
roomCode_sp_w_2:16,
|
||||
|
||||
bgSpaceX:438,
|
||||
bgSpaceY:250,
|
||||
};
|
||||
ConstVal.snrRoomList ={
|
||||
f_spid:611,
|
||||
bg_spid:622,
|
||||
rcode_bg_spid:623,
|
||||
rcode_spid:624,
|
||||
close_spid:625,
|
||||
update_spid:626,
|
||||
switch_spid:627,
|
||||
info_spid:600,
|
||||
profit_spid:601,
|
||||
video_spid:3138,
|
||||
|
||||
bg_tag:1,
|
||||
rcode_bg_tag:200,
|
||||
rcode_tag:400,
|
||||
close_tag:600,
|
||||
update_tag:800,
|
||||
switch_tag:1000,
|
||||
info_tag:1200,
|
||||
profit_tag:1400,
|
||||
video_tag:1600,
|
||||
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_w:900,
|
||||
clip_h:0,
|
||||
|
||||
bg_x:15,
|
||||
rcode_bg_x:33,
|
||||
rcode_x:35,
|
||||
close_x:70,
|
||||
update_x:20,
|
||||
switch_x:150,
|
||||
info_x:35,
|
||||
profit_x:150,
|
||||
video_x:420,
|
||||
|
||||
bg_y:10,
|
||||
rcode_bg_y:260,
|
||||
rcode_y:28,
|
||||
close_y:260,
|
||||
update_y:90,
|
||||
switch_y:90,
|
||||
info_y:80,
|
||||
profit_y:25,
|
||||
video_y:20,
|
||||
|
||||
profit_w:12,
|
||||
|
||||
bg_space:5,
|
||||
rcode_bg_space:35,
|
||||
rcode_space:50,
|
||||
close_space:300,
|
||||
update_space:400,
|
||||
switch_space:500,
|
||||
|
||||
bksp:3137,
|
||||
|
||||
|
||||
};
|
||||
ConstVal.rankList ={
|
||||
f_spid:609,
|
||||
bg_spid:610,
|
||||
badge_spid:629,
|
||||
headimg_spid:630,
|
||||
headfront_spid:631,
|
||||
name_spid:632,
|
||||
star_spid:633,
|
||||
|
||||
bg_tag:1,
|
||||
badge_tag:100,
|
||||
headimg_tag:200,
|
||||
headfront_tag:300,
|
||||
name_tag:400,
|
||||
star_tag:500,
|
||||
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_w:0,
|
||||
clip_h:511,
|
||||
|
||||
bg_x:0,
|
||||
badge_x:-20,
|
||||
headimg_x:93,
|
||||
headfront_x:85,
|
||||
name_x:190,
|
||||
star_x:190,
|
||||
|
||||
bg_y:0,
|
||||
badge_y:-5,
|
||||
headimg_y:12,
|
||||
headfront_y:5,
|
||||
name_y:8,
|
||||
star_y:42,
|
||||
|
||||
|
||||
space:13,
|
||||
|
||||
headsrc:262
|
||||
|
||||
};
|
||||
ConstVal.MenuScene = {
|
||||
createBtn_1:[780,182],//有星星场
|
||||
joinBtn_1:[780,320],
|
||||
starBtn:[780,458],
|
||||
createBtn_2:[780,230],
|
||||
joinBtn_2:[780,405]
|
||||
};
|
||||
//仓库
|
||||
ConstVal.wareHouse = {
|
||||
tableBgX:[41,33],
|
||||
tableTextX:[57,51],
|
||||
passWordLength:6,
|
||||
};
|
||||
ConstVal.sysNotice = {
|
||||
f_spid:3109,
|
||||
bubble_spid:163,
|
||||
msg_spid:3110,
|
||||
|
||||
msg_width:11,
|
||||
msg_tag:50000,
|
||||
msg_rOld:"#",
|
||||
msg_rNew:"\n",
|
||||
lineHeight:25,
|
||||
limit:10000,
|
||||
bubble_tag:1,
|
||||
x:20,
|
||||
y:20,
|
||||
spaceX:40,
|
||||
spaceY:40,
|
||||
|
||||
bm_space_x:20,
|
||||
bm_space_y:35,
|
||||
|
||||
|
||||
lineSpace:30,// 行距
|
||||
noteSpace:40,//每条的距离
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_h:0,
|
||||
clip_w:0
|
||||
}
|
||||
ConstVal.starConfig = {
|
||||
resList:[214,214],
|
||||
}
|
||||
ConstVal.Animation = {
|
||||
time1:1200,
|
||||
time2:2000,
|
||||
fundTime:5230,
|
||||
deltaTime:1000,
|
||||
};
|
||||
ConstVal.myRoomList ={
|
||||
maxLength:5,
|
||||
fSpid:98,
|
||||
|
||||
bgSp:100,
|
||||
roomCodeSp:102,
|
||||
|
||||
bgTag:1,
|
||||
roomCodeTag:100,
|
||||
placeX:0,
|
||||
placeY:95,
|
||||
bgX:8,
|
||||
bgY:55,
|
||||
space:5,
|
||||
|
||||
rCodeX:140,
|
||||
rCodeY:85,
|
||||
//clip_x:8,
|
||||
//clip_y:160,
|
||||
//clip_w:265,
|
||||
//clip_h:450,
|
||||
|
||||
roomCodeWidth:14,
|
||||
}
|
||||
ConstVal.netType = 0;
|
||||
ConstVal.isGameHall = false;
|
||||
|
||||
ConstVal.vipRoomList1 = {
|
||||
f_spid:3172,
|
||||
bg_spid:3176,
|
||||
title_spid:3177,
|
||||
code_spid:3178,
|
||||
owner_spid:3179,
|
||||
count_spid:3180,
|
||||
del_spid:3181,
|
||||
des_spid:3189,
|
||||
enter_spid:3192,
|
||||
|
||||
bg_tag:1,
|
||||
title_tag:1000,
|
||||
code_tag:2000,
|
||||
owner_tag:3000,
|
||||
count_tag:4000,
|
||||
des_tag:5000,
|
||||
del_tag:6000,
|
||||
enter_tag:7000,
|
||||
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_w:0,
|
||||
clip_h:460,
|
||||
|
||||
space:199,
|
||||
|
||||
title_x:20,
|
||||
code_x:70,
|
||||
des_x:25,
|
||||
owner_x:270,
|
||||
count_x:525,
|
||||
del_x:583,
|
||||
enter_x:514,
|
||||
|
||||
title_y:3,
|
||||
code_y:148,
|
||||
des_y:50,
|
||||
owner_y:146,
|
||||
count_y:146,
|
||||
del_y:0,
|
||||
enter_y:42,
|
||||
|
||||
}
|
||||
ConstVal.vipRoomList2 = {
|
||||
f_spid:3185,
|
||||
bg_spid:3186,
|
||||
code_spid:3187,
|
||||
count_spid:3188,
|
||||
|
||||
bg_tag:1,
|
||||
code_tag:1000,
|
||||
count_tag:2000,
|
||||
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_w:0,
|
||||
clip_h:460,
|
||||
|
||||
spaceX:285,
|
||||
spaceY:145,
|
||||
|
||||
code_x:56,
|
||||
count_x:50,
|
||||
|
||||
|
||||
code_y:25,
|
||||
count_y:65,
|
||||
|
||||
countW:12,
|
||||
|
||||
}
|
||||
ConstVal.blackList = {
|
||||
f_spid:3204,
|
||||
bg_spid:3207,
|
||||
id_spid:3209,
|
||||
del_spid:3208,
|
||||
|
||||
bg_tag:1,
|
||||
id_tag:10000,
|
||||
del_tag:20000,
|
||||
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_w:0,
|
||||
clip_h:0,
|
||||
|
||||
id_x:25,
|
||||
del_x:330,
|
||||
|
||||
id_y:12,
|
||||
del_y:4,
|
||||
|
||||
space:8,
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
ConstVal.vipRank = {
|
||||
f_spid:3227,
|
||||
bg_spid:3223,
|
||||
txt_spid:3229,
|
||||
rank_spid:3228,
|
||||
score_spid:3230,
|
||||
|
||||
bg_tag:1,
|
||||
txt_tag:10000,
|
||||
rank_tag:20000,
|
||||
score_tag:30000,
|
||||
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_w:0,
|
||||
clip_h:0,
|
||||
|
||||
txt_x:70,
|
||||
rank_x:0,
|
||||
score_x:230,
|
||||
|
||||
txt_y:10,
|
||||
rank_y:4,
|
||||
score_y:10,
|
||||
|
||||
rank_space:10,
|
||||
|
||||
space:8,
|
||||
rank_w:25,
|
||||
|
||||
|
||||
};
|
||||
ConstVal.whiteList = {
|
||||
f_spid:3272,
|
||||
bg_spid:3277,
|
||||
id_spid:3279,
|
||||
del_spid:3278,
|
||||
charm_spid:3292,
|
||||
|
||||
bg_tag:1,
|
||||
id_tag:10000,
|
||||
del_tag:20000,
|
||||
charm_tag:30000,
|
||||
|
||||
clip_x:0,
|
||||
clip_y:0,
|
||||
clip_w:0,
|
||||
clip_h:0,
|
||||
|
||||
id_x:25,
|
||||
del_x:450,
|
||||
charm_x:200,
|
||||
|
||||
id_y:12,
|
||||
del_y:4,
|
||||
charm_y:12,
|
||||
|
||||
|
||||
space:8,
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
582
codes/games/client/Projects/zpy/js/00_Surface/04_Data.js
Normal file
582
codes/games/client/Projects/zpy/js/00_Surface/04_Data.js
Normal file
@@ -0,0 +1,582 @@
|
||||
/*var returnCitySN = {"cip": "171.34.213.118", "cid": "360000", "cname": "江西省"}*/
|
||||
|
||||
var C_Player;
|
||||
var InfoSex=0;
|
||||
|
||||
|
||||
var arrBan=[];
|
||||
var RoomCode = "";
|
||||
var RoomNum = -1;
|
||||
|
||||
var CombatCount = 0;
|
||||
var CombatPage = 0;//战绩页码
|
||||
var CombatPageTwoIndex = 0;//大局标号
|
||||
var CombatPageThreeIndex = 0;//小局标号
|
||||
|
||||
var CombatInfo = [];//战绩详情
|
||||
var C_PageOneBtn = [];//战绩页一按钮id
|
||||
var C_PageTwoBtn = [];//战绩页二按钮id
|
||||
var CombatBackHeight = 0;//战绩背景高度
|
||||
|
||||
var TaskInfo = [];//任务详情
|
||||
var VoteTime=0;//投票倒计时秒
|
||||
|
||||
var GameData=GameData||{};
|
||||
GameData.HallServer="";
|
||||
GameData.Server="";
|
||||
GameData.AjaxUrl="";
|
||||
GameData.scrollmsg="";
|
||||
GameData.wechat_gzh="";
|
||||
GameData.wechat_kfh="";
|
||||
GameData.qq = "";
|
||||
GameData.tel = "";
|
||||
GameData.gzhcolor1 = "";
|
||||
GameData.gzhcolor2 = "";
|
||||
GameData.telcolor = "";
|
||||
|
||||
GameData.errorMsg = null;
|
||||
GameData.tcpConnect=true;
|
||||
GameData.tcpConnectState = false;
|
||||
GameData.TimerID=0;
|
||||
GameData.TimerID_2=0;
|
||||
GameData.timer=10000;
|
||||
GameData.time_2=15000;
|
||||
GameData.NetType=0;//是否为首次连接
|
||||
GameData.Protocol_H=1;
|
||||
GameData.ProtocolIndex=true;
|
||||
GameData.isLoad=true;
|
||||
GameData.LoadCount=0;
|
||||
GameData.Timesup=false;
|
||||
GameData.InteractPlayer = -1;
|
||||
GameData.isCallback=false;
|
||||
GameData.isBoard=true;
|
||||
GameData.ConnectType=false;//1->更换服务器不需要重连
|
||||
GameData.ConnectRpc="";//更换服务器成功后发包的RPC
|
||||
GameData.ConnectPack={};//更换服务器成功后发包数据
|
||||
GameData.Battery = 0;//电量
|
||||
GameData.NetWork = 0;//网络情况1 未连接网络 2 连接wifi 3 连接2G/3G/4G
|
||||
GameData.WifiLevel = 0;//WiFi强度
|
||||
GameData.wechat_ewm = "";//二维码
|
||||
GameData.appstate=true;//true程序前台运行false程序后台运行
|
||||
GameData.OS = ConstVal.OS.other;//1->IOS 2->Android 3->wp 4->other
|
||||
GameData.isLogin = false;//是否已登录
|
||||
GameData.leaveTime=0;//
|
||||
GameData.disType = false;
|
||||
GameData.reconnectTimer=0;
|
||||
GameData.isClose = false;
|
||||
GameData.isCloseTimer = null;
|
||||
GameData.firstConnect = true;//第一次连接
|
||||
GameData.firstConnect_Succ = false;//第一次连接成功
|
||||
GameData.firstConnect_Timer = null;//第一次连接定时器
|
||||
GameData.loginTimer = null;
|
||||
GameData.tryTimes = 0;//链接尝试次数
|
||||
GameData.isReconnect = false;
|
||||
GameData.isCreateEmotion = false;
|
||||
GameData.ChatPage = 1;
|
||||
GameData.slidEmotion = false;
|
||||
GameData.communionHistory=[];//聊天历史//二维数组[[方位,类型(1-文字2语音),内容,时长]]
|
||||
GameData.createHistoryLen = 0;//以创建的精灵的长度
|
||||
GameData.slideHistory = false;
|
||||
GameData.TcpTimer = null;//tcp连接失败判断定时器
|
||||
GameData.slideTask = false;//是否滑动任务
|
||||
GameData.copyTaskTagList = [];//任务复制精灵tag列表
|
||||
|
||||
|
||||
|
||||
GameData.versionState = 0;//苹果审核结果
|
||||
GameData.visitorserver = "";//游客服务器地址
|
||||
GameData.isVisitor = false;
|
||||
|
||||
GameData.shakeID = 0;//摇一摇事件ID
|
||||
GameData.isRecord = false;
|
||||
|
||||
GameData.LaunchMode = ConstVal.Launch_mode.from_self;
|
||||
|
||||
GameData.Multiple = "";
|
||||
GameData.OrgArr=[];
|
||||
GameData.MultiArr = [];
|
||||
|
||||
GameData.isFirstLogin = true;//是否是第一次登陆
|
||||
|
||||
GameData.payList = null;
|
||||
GameData.payData = [0,0];
|
||||
|
||||
GameData.visitorClick = 0;
|
||||
GameData.Scene = 0;
|
||||
|
||||
GameData.urlFail = false;
|
||||
GameData.BroadcastArray = [];
|
||||
GameData.isBoardcast = false;
|
||||
|
||||
GameData.tcpState = [0,0];
|
||||
GameData.Notice ={
|
||||
heigth:0,
|
||||
lineSum:0,
|
||||
width:0
|
||||
}
|
||||
GameData.marketID = 0;
|
||||
GameData.getJSONState = false;//JSON获取成功状态
|
||||
GameData.Config = null;//服务器配置json
|
||||
GameData.AgentLoginImg = "";//代理商图片
|
||||
GameData.TopUpUrl = "";//索要房卡地址
|
||||
|
||||
GameData.tryConnect = false;
|
||||
GameData.hallConfigName = ["enablePay",
|
||||
"logoffCallback",//不通知
|
||||
'worldRoomList',//星星争霸是否可用
|
||||
'max:',
|
||||
'min',
|
||||
'unit',
|
||||
'shareMsg',
|
||||
'autoWorldRoomList',//是否自动弹出星星争霸场
|
||||
'rankList',//是否显示排行榜按钮1模拟排行2真实排行
|
||||
'groupMsg',//试玩群信息
|
||||
'isReSetOwnerNote',//是否替换签名
|
||||
'activity',//是否显示活动如果显示则为[x,y,w,h/*,isOpen,btnUrl,url,actid*/]
|
||||
'actData:',//常驻活动按钮 [imgUrl,isOpen,jumpUrl,actUrl]
|
||||
'shareButton:',//是否显示分享到平台
|
||||
'enableQuickEnter',//是否隐藏快速加入
|
||||
'storeUrl',//商城url
|
||||
'bagUrl',//背包url
|
||||
'shareDesc',//平台分享描述信息
|
||||
'wareHouse',//是否开启仓库功能0->不开启1->开启保险箱不开启赠送2->开启赠送不开启保险箱3->开启星星赠送(开启保险箱)4->开启房卡赠送(开启保险箱)5->开启星星房卡赠送(开启保险箱)
|
||||
'betaText',//版本号后的beta显示内容
|
||||
'launchImgUrl',//启动页图片地址
|
||||
'shareType:',//分享朋友圈类型0->链接分享 1->图片分享
|
||||
'shareImgUrl',//分享朋友圈图片链接
|
||||
'launchWaitTime',//启动等待时间
|
||||
'shareBgUrl',//分享背景图片
|
||||
'qqLogin',//是否显示qq登录
|
||||
'androidPay',//是否开启安卓支付
|
||||
'channelKey',//支付key
|
||||
'payCSS',//支付css
|
||||
'payJS',//支付js
|
||||
'openVideo'
|
||||
];//是否开启视频];
|
||||
GameData.hallConfig = {
|
||||
enablePay:0,
|
||||
logoffCallback:0,//不通知
|
||||
worldRoomList:0,//星星争霸是否可用
|
||||
max:100,
|
||||
min:0,
|
||||
unit:1,
|
||||
shareMsg:"",
|
||||
autoWorldRoomList:0,//是否自动弹出星星争霸场
|
||||
rankList:0,//是否显示排行榜按钮1模拟排行2真实排行
|
||||
groupMsg:"",//试玩群信息
|
||||
isReSetOwnerNote:0,//是否替换签名
|
||||
activity:0,//是否显示活动如果显示则为[x,y,w,h/*,isOpen,btnUrl,url,actid*/]
|
||||
actData:0,//常驻活动按钮 [imgUrl,isOpen,jumpUrl,actUrl]
|
||||
shareButton:1,//是否显示分享到平台
|
||||
enableQuickEnter:1,//是否隐藏快速加入
|
||||
storeUrl:"",//商城url
|
||||
bagUrl:"",//背包url
|
||||
shareDesc:"",//平台分享描述信息
|
||||
wareHouse:0,//是否开启仓库功能0->不开启1->开启保险箱不开启赠送2->开启赠送不开启保险箱3->开启星星赠送(开启保险箱)4->开启房卡赠送(开启保险箱)5->开启星星房卡赠送(开启保险箱)
|
||||
betaText:"",//版本号后的beta显示内容
|
||||
launchImgUrl:"",//启动页图片地址
|
||||
shareType:0,//分享朋友圈类型0->链接分享 1->图片分享
|
||||
shareImgUrl:"",//分享朋友圈图片链接
|
||||
launchWaitTime:10,//启动等待时间
|
||||
shareBgUrl:"",//分享背景图片
|
||||
qqLogin:0,//是否显示qq登录
|
||||
androidPay:0,//是否开启安卓支付
|
||||
channelKey:"",//支付key
|
||||
payCSS:"",//支付css
|
||||
payJS:"",//支付js
|
||||
openVideo:0,//是否开启视频
|
||||
};
|
||||
GameData.starName = "星星";
|
||||
GameData.roomCardName = "房卡";
|
||||
GameData.gameConfig = {};
|
||||
|
||||
GameData.playerHeadImgState = false;//玩家主界面头像加载状态
|
||||
GameData.matchhtml = "";//比赛链接地址
|
||||
|
||||
GameData.Validator = null;
|
||||
GameData.loginBtnType = ConstVal.loginButton.type1[0];//登录按钮样式
|
||||
GameData.netWorkSate = false;
|
||||
|
||||
GameData.heartBeatTimer = null;//心跳事件定时器ID
|
||||
GameData.heartBeatStage = false;//提示框是否处于心跳提示事件
|
||||
|
||||
GameData.telSpid = 179;//拨打电话精灵号
|
||||
GameData.matchInfo = null;//比赛场信息
|
||||
|
||||
GameData.agentmode = 1;//邀请码模式
|
||||
|
||||
GameData.infMode = 0;//是否为无限局
|
||||
GameData.infClickCount = 0;//点击次数
|
||||
|
||||
GameData.checkType = 1;//确认面板事件类型 1->解散房间 2->退出房间 3->投降
|
||||
GameData.roomList = [];//房间列表
|
||||
|
||||
GameData.sendLoginTimer = null;//发送重连登录包定时器
|
||||
GameData.loginList = [];//
|
||||
GameData.isConnected = false;
|
||||
|
||||
GameData.isSendLoginState = false;//是否在等待登录包
|
||||
GameData.isSendLoginTimer = null;//登录包收包定时器
|
||||
GameData.isTcpConnect = false;//是否在连接状态
|
||||
|
||||
GameData.TcpID = 0;//tcpid
|
||||
GameData.websocketList=[];
|
||||
GameData.pack="";
|
||||
GameData.infoSeat = -1;
|
||||
|
||||
GameData.sendLoginTimes = 0;
|
||||
|
||||
GameData.backUrl = "";
|
||||
|
||||
GameData.playerid = "";
|
||||
|
||||
GameData.serverConfig = {};
|
||||
|
||||
GameData.userAgent = ConstVal.userAgent.uAgent_1;
|
||||
|
||||
GameData.getbattery = "";
|
||||
GameData.getbatteryPack = {};
|
||||
|
||||
GameData.getnetwork = "";
|
||||
GameData.getnetworkPack = {};
|
||||
|
||||
GameData.getVersionState = "";
|
||||
GameData.getVersionStatePack = {};
|
||||
|
||||
GameData.getchannelName = "";
|
||||
GameData.getchannelNamePack = {};
|
||||
|
||||
GameData.getmarketname = "";
|
||||
GameData.getmarketnamePack = {};
|
||||
|
||||
GameData.gamepastetext = "";
|
||||
GameData.gamepastetextPack = {};
|
||||
GameData.worldRoomSys=[];
|
||||
|
||||
//玩家房间数据
|
||||
GameData.worldRoomPly=[];
|
||||
|
||||
GameData.worldRoomSysSlide = false;
|
||||
GameData.worldRoomPlySlide = false;
|
||||
|
||||
GameData.menuNotice = null;
|
||||
|
||||
GameData.advertInfo_1 = {
|
||||
type:0,//是否使用默认的文字通知
|
||||
imgUrl:"",//图片地址
|
||||
imgAdUrl:"",//图片跳转链接地址
|
||||
height:1,//图片高度
|
||||
msg:"",
|
||||
url:"",
|
||||
};
|
||||
GameData.advertInfo_2 = {
|
||||
type:0,
|
||||
imgUrl:"",
|
||||
imgAdUrl:"",
|
||||
height:1,
|
||||
msg:"",
|
||||
url:"",
|
||||
};
|
||||
GameData.advertInfo_0 = {
|
||||
type:0,
|
||||
imgUrl:"",
|
||||
imgAdUrl:"",
|
||||
height:1,
|
||||
msg:"",
|
||||
url:"",
|
||||
};
|
||||
GameData.noticePage = 0;
|
||||
GameData.noticePara = [[0,0],[0,0],[0,0]];
|
||||
|
||||
GameData.snrOption = {
|
||||
profit:0,
|
||||
roomcode:"",
|
||||
};
|
||||
GameData.snrRoomList = {
|
||||
roomlist:[],
|
||||
roomtype:[],
|
||||
tea:1000,
|
||||
shortcode:888
|
||||
};
|
||||
GameData.snrRoomListSlide = false;
|
||||
GameData.snrOptionLength = 0;
|
||||
GameData.snrOptionRoomTag = 0;
|
||||
GameData.snrOptionMode = 0;
|
||||
GameData.snrOptionRoomtype = "";
|
||||
GameData.snrOptionDes = "";
|
||||
GameData.snrOptionProfit=0;
|
||||
|
||||
GameData.shortCode = "";
|
||||
|
||||
GameData.isShowWorldRoomList = true;
|
||||
GameData.shareMsg = "";
|
||||
|
||||
GameData.rankList = [];
|
||||
GameData.rankListTag = 0;
|
||||
GameData.ranListLength = 0;
|
||||
GameData.rankListSlide = false;
|
||||
|
||||
GameData.h5Version = 0;
|
||||
//
|
||||
var shareParam = {
|
||||
appid: "14936872341446",
|
||||
devkey: "14915485974028"
|
||||
}
|
||||
|
||||
GameData.shareTimeline = {//朋友圈
|
||||
title: "",
|
||||
desc: "",
|
||||
link: "",
|
||||
imgUrl: ""
|
||||
}
|
||||
GameData.shareAppMessage = {//好友
|
||||
title: "",
|
||||
desc: "",
|
||||
link: "",
|
||||
imgUrl: ""
|
||||
}
|
||||
GameData.gameData = "";
|
||||
GameData.fromH5GameData = {};
|
||||
GameData.isJoinRoomFromH5 = false;
|
||||
GameData.h5ShareImage = "";
|
||||
GameData.screenShotStage = 0;
|
||||
GameData.screenShotSpidList = [];
|
||||
|
||||
GameData.ownerNote = "";
|
||||
GameData.isDebugger = 0;
|
||||
|
||||
GameData.returnUrl = "";
|
||||
|
||||
GameData.configData = "";
|
||||
GameData.h5ShareUrl = "";
|
||||
|
||||
GameData.inputPanelData = "";
|
||||
GameData.inputCallBack = null;
|
||||
|
||||
GameData.isShowNeighbor = true;
|
||||
|
||||
GameData.nameImgFrame_1 = 1;//房卡图片帧数
|
||||
GameData.nameImgFrame_2 = 1;//星星图片帧数
|
||||
GameData.surrendCount = 0;
|
||||
|
||||
|
||||
GameData.htmlCode = "";
|
||||
GameData.htmlId = "";
|
||||
|
||||
GameData.serverIndex = 0;//连接地址下标
|
||||
GameData.tryReconnectTimes = 0;
|
||||
GameData.isChangeServer = false;
|
||||
|
||||
GameData.shareFrom = 0;//0->框架分享 1->游戏分享
|
||||
GameData.activityType = 0;//子游戏调用类型
|
||||
GameData.activityData = null;//子游戏调用类型
|
||||
GameData.shareTimes = 0;//分享次数
|
||||
|
||||
GameData.sharePostUrl = "http://localhost:4477/testurl";//截图分享链接
|
||||
//保险箱
|
||||
GameData.wareHouse = {
|
||||
page:1,//当前页
|
||||
safeInputType:1,//保险箱存入取出类型
|
||||
safeInputCount:-1,//保险箱存入取出数量
|
||||
safePassWord:-1,//保险箱存入取出密码
|
||||
inputNumber:0,//输入的数字
|
||||
selectType:1,//选择的当前输入框
|
||||
initPassWord1:-1,//初始化密码
|
||||
initPassWord2:-1,//确认初始化密码
|
||||
pId:0,//赠送id
|
||||
pImg:"",//赠送头像
|
||||
pNickName:"",//赠送昵称
|
||||
pInputType:1,//赠送类型
|
||||
pInputId:-1,//输入id
|
||||
pInputCount:-1,//赠送数量
|
||||
pInputPassWord:-1,//赠送密码
|
||||
|
||||
|
||||
};
|
||||
GameData.openVideo = 0;//是否开启视频功能
|
||||
GameData.imgAdIsSlide = false;
|
||||
GameData.launchImgLoaded = false;//启动页图片是否从网络加载完成
|
||||
GameData.configSuccess = false;//配置文件读取成功
|
||||
GameData.launchWaitTime = 0;
|
||||
GameData.adTimer = null;
|
||||
|
||||
GameData.sysNotice = [];//系统公告 {msg:"",read:false,line:1}
|
||||
GameData.sysCreateLength = 0;
|
||||
|
||||
GameData.selectSysNotice = false;//是否勾选发送系统公告
|
||||
GameData.sysNoticeCost = 0;
|
||||
GameData.sysNoticeLimit = 0;
|
||||
|
||||
|
||||
GameData.mainMenuAniTimer = null;
|
||||
GameData.worldRoomPage = 0;
|
||||
|
||||
GameData.createMyRoomListLength = 0;
|
||||
|
||||
GameData.starCount = 0;
|
||||
GameData.roomCardCount=0;
|
||||
|
||||
GameData.loginPlayerid = false;//登录是否带上playerid
|
||||
|
||||
GameData.matchId = null;
|
||||
|
||||
GameData.chatLine = null;
|
||||
GameData.chatInfo = null;
|
||||
GameData.isService = false;
|
||||
|
||||
GameData.submitLocation = false;
|
||||
GameData.submitPhoneInfo = false;
|
||||
GameData.submitAddressBook = false;
|
||||
GameData.getConfigTimer = null;
|
||||
|
||||
GameData.clickChat = 0;
|
||||
|
||||
GameData.phoneInfo = null;
|
||||
GameData.addressBook = null;
|
||||
//GameData.sysConfigName=[];
|
||||
GameData.sysConfigName=["hideEscape","charmName","hideTaskBtn","miniPro","videoConfig","ofcShortCode","ofcTips","ofcWx","ofcImg",
|
||||
"managerUrl","rebateConfig","gameNoticeShow","hallNoticeShow","ofcAutoEnter","vipFlushTime","vipWx","h5PayUrl","appShareH5",
|
||||
"vipRankLimit","behaviorList","deviceLogin","hideWxShare","hideRoomCard","hideSpid","cdKey","otherShare","avatarRange","avatarUrl","whiteListManager","nnLocal"];
|
||||
GameData.sysConfig={
|
||||
hideEscape:0,
|
||||
charmName:"魅力",
|
||||
hideTaskBtn:0,//是否隐藏任务按钮
|
||||
miniPro:0,//是否小程序/小游戏 (隐藏更多选项、分享朋友圈、聊天按钮、录音调整)
|
||||
videoConfig:null,//{type:1,profitMode:1,profit:3}
|
||||
ofcShortCode:null,//官方短号
|
||||
ofcImg:"",//官方按钮链接
|
||||
managerUrl:"",//管理后台地址
|
||||
rebateConfig:null,//抽成配置
|
||||
gameNoticeShow:0,//子游戏弹窗时间间隔 0每次都弹 -1不弹
|
||||
hallNoticeShow:0,//大厅弹窗时间间隔 0每次都弹 -1不弹
|
||||
ofcAutoEnter:0,//是否自动进入官方短号
|
||||
vipFlushTime:10000,//vip房间列表刷新间隔
|
||||
vipWx:"",//成为vip联系微信
|
||||
h5PayUrl:"",//h5支付地址
|
||||
appShareH5:"",//app分享的h5地址
|
||||
vipRankLimit:10,//vip排行显示个数
|
||||
behaviorList:null,//用户行为
|
||||
deviceLogin:0,//是否显示设备登录显示了设备登录就会显示手机号登录就会隐藏微信登录
|
||||
hideWxShare:0,//是否隐藏微信分享
|
||||
hideRoomCard:1,//隐藏主界面房卡 1 不隐藏 2隐藏
|
||||
hideSpid:null,//隐藏的精灵id
|
||||
cdKey:1,//是否显示CDKEY 1不显示 2显示
|
||||
otherShare:1,//开启新分享 1 关闭2开启
|
||||
avatarRange:[100,10000],//设备登录的头像列表
|
||||
avatarUrl:"https://projectimage.tscce.cn/image_132/",
|
||||
whiteListManager:2, //是否开启在游戏中管理白名单
|
||||
nnLocal:2,//
|
||||
|
||||
};
|
||||
GameData.inputCallBack2 = null;
|
||||
|
||||
GameData.topInfoTimer = null;
|
||||
|
||||
GameData.iscloseVideo = true;//是否开战关闭视频
|
||||
GameData.textCallback = null;
|
||||
|
||||
GameData.isLocation = false;
|
||||
GameData.otherLocation = false;//
|
||||
GameData.otherLocationTimes = 0;
|
||||
GameData.otherLocationAllTimes = 1;
|
||||
|
||||
|
||||
GameData.hallLogin = true;
|
||||
|
||||
GameData.senRoomState = 0;
|
||||
|
||||
GameData.rebateConfig = null;
|
||||
|
||||
GameData.vipRoomPage = 0;
|
||||
GameData.vipRoomCode = 0;
|
||||
GameData.vipRoomData = [];
|
||||
GameData.vipRoomTimer1 = false;
|
||||
GameData.vipRoomIsOpen = false;
|
||||
GameData.vipRoomShortList = [];
|
||||
GameData.vipRoomJump = false;
|
||||
GameData.vipRoomPageOne = {
|
||||
cLength:0,
|
||||
slide:false,
|
||||
}
|
||||
GameData.vipRoomPageTwo = {
|
||||
cLength:0,
|
||||
slide:false,
|
||||
data:null,
|
||||
}
|
||||
GameData.tipTimer1 = null;
|
||||
GameData.tipTimer2 = null;
|
||||
|
||||
GameData.initCard = 0;
|
||||
GameData.initBean = 0;
|
||||
|
||||
GameData.brNumber=0;
|
||||
|
||||
GameData.isKick = false;
|
||||
|
||||
GameData.blackList = {
|
||||
data:[],
|
||||
length:0,
|
||||
breakRoom:false,
|
||||
selectTag:0,
|
||||
slide:false,
|
||||
inputId:"",
|
||||
idWidth:12,
|
||||
}
|
||||
GameData.allCharm = 0;
|
||||
GameData.vipRank = {
|
||||
data:{
|
||||
rankList:[],
|
||||
myRank:1,
|
||||
myScore:100
|
||||
},
|
||||
length:0,
|
||||
//selectTag:0,
|
||||
slide:false,
|
||||
//inputId:"",
|
||||
//idWidth:12,
|
||||
}
|
||||
GameData.rankType = false;
|
||||
|
||||
GameData.coinMp3Time = 0;
|
||||
GameData.coinMp3Length = 3000;
|
||||
GameData.brRebateUnit = 10000;
|
||||
|
||||
GameData.phoneCodeTime = 0;
|
||||
GameData.phoneCode = "";
|
||||
GameData.phoneNumber = "";
|
||||
|
||||
GameData.phoneType = 0;
|
||||
|
||||
GameData.isGetPhoneInfo = false;
|
||||
GameData.isDeviceLogin = false;
|
||||
GameData.begin0 = false;
|
||||
|
||||
GameData.vipConfig = null;
|
||||
|
||||
GameData.feedMode = 0;
|
||||
|
||||
GameData.fromMiniProData = {};
|
||||
|
||||
|
||||
GameData.shareFriendInfo = {};
|
||||
|
||||
|
||||
GameData.deviceAvatarList = [];
|
||||
|
||||
GameData.whiteList = {
|
||||
data:[],
|
||||
length:0,
|
||||
breakRoom:false,
|
||||
selectTag:0,
|
||||
slide:false,
|
||||
inputId:"",
|
||||
inputCharm:"",
|
||||
searchId:"",
|
||||
idWidth:12,
|
||||
delPid:"",
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4190
codes/games/client/Projects/zpy/js/00_Surface/05_Func.js
Normal file
4190
codes/games/client/Projects/zpy/js/00_Surface/05_Func.js
Normal file
File diff suppressed because it is too large
Load Diff
553
codes/games/client/Projects/zpy/js/00_Surface/06_Player.js
Normal file
553
codes/games/client/Projects/zpy/js/00_Surface/06_Player.js
Normal file
@@ -0,0 +1,553 @@
|
||||
function Player(seat){
|
||||
this.openid = "";//id
|
||||
this.playerid = -1;//playerid
|
||||
this.nickname = "";//昵称
|
||||
this.avatar = "";//头像地址
|
||||
this.sex = 0;//性别
|
||||
this.ip = "";//ip地址
|
||||
this.province = "";//微信信息省份
|
||||
this.city = "";//微信信息城市
|
||||
this.roomcard = -1;//房卡数量
|
||||
this.taskstate = 0;//任务状态
|
||||
this.unionid = 0;//平台唯一表示
|
||||
this.seat = seat; //座位号
|
||||
this.score = 0;
|
||||
this.state = -1;//玩家状态0->默认值 -1->申请解散 1->同意解散 2->拒绝解散
|
||||
this.status = 0;//0->默认值 1->房主 2->非房主
|
||||
//this.offline = 0;//玩家是否离线0->否 1->离线
|
||||
this.canexit=1;//是否可以直接离开
|
||||
this.onstate=0;//0:在线1:离线2:通话中
|
||||
this.addr = null;
|
||||
this.invitecode = "";//邀请码
|
||||
this.isStart = false;//能否点击按钮开始游戏
|
||||
this.bean = 0;//玩家豆子数量
|
||||
this.initialBean = 0;//玩家豆子初始值
|
||||
this.isprepare = 0;//玩家是否准备
|
||||
this.advanced = 0;//玩家是否有高级选项
|
||||
this.paycode = "";//吱口令
|
||||
this.wareHouseStarCount = 0;//仓库库存星星
|
||||
this.bankpower = 0;//是否有仓库权限
|
||||
this.bankpwd = 0;//是否设置仓库密码
|
||||
this.charm = undefined;
|
||||
this.sign = "";//签名
|
||||
this.tel = "";//绑定手机号
|
||||
}
|
||||
//玩家信息初始化
|
||||
if(typeof(Player.prototype.Init) == "undefined"){
|
||||
Player.prototype.Init = function(bTemp){
|
||||
this.openid = "";//id
|
||||
this.playerid = -1;//playerid
|
||||
this.nickname = "";//昵称
|
||||
this.score = 0;
|
||||
this.avatar = "";//头像地址
|
||||
this.sex = 0;//性别
|
||||
this.ip = "";//ip地址
|
||||
this.province = "";//省份
|
||||
this.city = "";//城市
|
||||
this.roomcard = 0;//房卡数量
|
||||
this.taskstate = 0;//任务状态
|
||||
this.unionid = 0;//平台唯一表示
|
||||
if(bTemp)this.seat = -1; //座位号
|
||||
this.state = -1;//玩家状态0->默认值 1->申请解散 2->同意解散 3->拒绝解散
|
||||
this.status = 0;//0->默认值 1->房主 2->非房主
|
||||
this.offline = 0;//玩家是否离线0->否 1->离线
|
||||
this.canexit=1;//是否可以直接离开
|
||||
this.onstate=0;//0:在线1:离线2:通话中
|
||||
this.addr = null;
|
||||
this.invitecode = "";//邀请码
|
||||
this.isStart = false;//能否点击按钮开始游戏
|
||||
this.bean = 0;//玩家豆子数量
|
||||
this.initialBean = 0;//玩家豆子初始值
|
||||
this.isprepare = 0;//玩家是否准备
|
||||
this.advanced = 0;//玩家是否有高级选项
|
||||
this.paycode = "";//吱口令
|
||||
this.wareHouseStarCount = 0;//仓库库存星星
|
||||
this.bankpower = 0;//是否有仓库权限
|
||||
this.bankpwd = 0;//是否设置仓库密码
|
||||
this.charm = undefined;
|
||||
this.sign = "";//签名
|
||||
this.tel = "";//绑定手机号
|
||||
};
|
||||
}
|
||||
//玩家微信信息初始化
|
||||
if(typeof(Player.prototype.SetWxInfo) == "undefined"){
|
||||
Player.prototype.SetWxInfo = function(openid,headimgurl,nickname,sex,city,Province,unionid){
|
||||
this.openid = openid;//id
|
||||
this.nickname = nickname;//昵称
|
||||
this.avatar = headimgurl;//头像地址
|
||||
this.sex = sex;//性别
|
||||
this.city = city;//城市
|
||||
this.province = Province;//省
|
||||
this.unionid=unionid;//开放平台id
|
||||
//alert("设置玩家信息");
|
||||
};
|
||||
}
|
||||
//玩家游戏信息初始化
|
||||
if(typeof(Player.prototype.SetMyInfo) == "undefined"){
|
||||
//Player.prototype.SetMyInfo = function(_playerid,_roomcard,_taskstate,_ip,_score,_bean,_paycode){
|
||||
Player.prototype.SetMyInfo = function(object){
|
||||
this.playerid = object.playerid;
|
||||
this.roomcard = object.roomcard;
|
||||
this.taskstate = object.taskstate;
|
||||
this.ip=object.ip;
|
||||
this.score = object.score;
|
||||
this.bean = object.bean;
|
||||
this.initialBean = object.bean;
|
||||
this.bankpower = object.bankpower;
|
||||
if(object.bank){
|
||||
this.wareHouseStarCount = Number(object.bank);//仓库库存星星
|
||||
}else{
|
||||
this.wareHouseStarCount = 0;
|
||||
}
|
||||
if(object.bankpwd){
|
||||
this.bankpwd = Number(object.bankpwd);//仓库库存星星
|
||||
}else{
|
||||
this.bankpwd = 0;
|
||||
}
|
||||
this.charm = object.charm;
|
||||
this.sign = object.sign;
|
||||
this.tel = object.tel;
|
||||
//this.setTel();
|
||||
//this.bankpwd = object.bank;//是否设置仓库密码 this.bankpwd = 0;//是否设置仓库密码
|
||||
//this.paycode = _paycode;
|
||||
};
|
||||
}
|
||||
//设置玩家位置
|
||||
if(typeof(Player.prototype.SetLocationInfo) == "undefined"){
|
||||
Player.prototype.SetLocationInfo = function(_locationinfo){
|
||||
this.addr = _locationinfo;
|
||||
set_self(200,7,C_Player.addr.province+"-"+C_Player.addr.city,0,0);
|
||||
};
|
||||
}
|
||||
|
||||
//设置玩家座位
|
||||
if(typeof(Player.prototype.SetSeat) == "undefined"){
|
||||
Player.prototype.SetSeat = function(seat){
|
||||
this.seat = seat;
|
||||
};
|
||||
}
|
||||
//设置玩家邀请码
|
||||
if(typeof(Player.prototype.setInvitecod) == "undefined"){
|
||||
Player.prototype.setInvitecod = function(_invitecode){
|
||||
this.invitecode = _invitecode;
|
||||
};
|
||||
}
|
||||
//修改房卡
|
||||
if(typeof(Player.prototype.UpdateRoomcard) == "undefined"){
|
||||
Player.prototype.UpdateRoomcard = function(_msg){
|
||||
this.roomcard = _msg.data.roomcard;
|
||||
//set_self(157,7,C_Player.roomcard,0,0);
|
||||
//set_self(157,18,get_self(287,18,0,0,0)+get_self(287,20,0,0,0)/2-String(C_Player.roomcard).length*7,0,0);
|
||||
GameUI.setHallRoomCard();
|
||||
if(_msg.data.text){
|
||||
GameUI.Openupdataroomcard(_msg.data.text);
|
||||
}
|
||||
};
|
||||
}
|
||||
//修改豆豆
|
||||
if(typeof(Player.prototype.update_bean) == "undefined"){
|
||||
Player.prototype.update_bean = function(_msg){
|
||||
this.bean = _msg.data.bean;
|
||||
GameUI.setHallStar();
|
||||
//set_self(497,7,C_Player.bean,0,0);
|
||||
//set_self(497,18,get_self(496,18,0,0,0)+get_self(496,20,0,0,0)/2-String(C_Player.bean).length*7,0,0);
|
||||
set_self(510,7,GameData.starName+":"+C_Player.bean,0,0);
|
||||
GameUI.openUpdateBean(_msg.data.text);
|
||||
if(C_Player.seat>-1){//在房间内
|
||||
var pobj = Desk.GetPlayerBySeat(C_Player.seat);
|
||||
pobj.bean = C_Player.bean;
|
||||
pobj = null;
|
||||
if(C_Player.seat == GameData.infoSeat){
|
||||
set_self(511,7,GameData.starName+":"+C_Player.bean,0,0);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
//修改豆豆
|
||||
if(typeof(Player.prototype.update_bean2) == "undefined"){
|
||||
Player.prototype.update_bean2 = function(_bean){
|
||||
this.bean = _bean;
|
||||
GameUI.setHallStar();
|
||||
//set_self(497,7,C_Player.bean,0,0);
|
||||
//set_self(497,18,get_self(496,18,0,0,0)+get_self(496,20,0,0,0)/2-String(C_Player.bean).length*7,0,0);
|
||||
set_self(510,7,GameData.starName+":"+C_Player.bean,0,0);
|
||||
if(C_Player.seat>-1){//在房间内
|
||||
var pobj = Desk.GetPlayerBySeat(C_Player.seat);
|
||||
pobj.bean = C_Player.bean;
|
||||
pobj = null;
|
||||
if(C_Player.seat == GameData.infoSeat){
|
||||
set_self(511,7,GameData.starName+":"+C_Player.bean,0,0);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
//修改豆豆
|
||||
if(typeof(Player.prototype.changeBean) == "undefined"){
|
||||
Player.prototype.changeBean = function(_bean){
|
||||
this.bean = this.initialBean + _bean;
|
||||
GameUI.setHallStar();
|
||||
//set_self(497,7,C_Player.bean,0,0);
|
||||
//set_self(497,18,get_self(496,18,0,0,0)+get_self(496,20,0,0,0)/2-String(C_Player.bean).length*7,0,0);
|
||||
set_self(510,7,GameData.starName+":"+C_Player.bean,0,0);
|
||||
if(C_Player.seat>-1){//在房间内
|
||||
var pobj = Desk.GetPlayerBySeat(C_Player.seat);
|
||||
pobj.bean = C_Player.bean;
|
||||
pobj = null;
|
||||
if(C_Player.seat == GameData.infoSeat){
|
||||
set_self(511,7,GameData.starName+":"+C_Player.bean,0,0);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
//设置房卡
|
||||
if(typeof(Player.prototype.setRoomcard) == "undefined"){
|
||||
Player.prototype.setRoomcard = function(_roomcard){
|
||||
this.roomcard = _roomcard;
|
||||
GameUI.setHallRoomCard();
|
||||
};
|
||||
}
|
||||
//设置房卡
|
||||
if(typeof(Player.prototype.addRoomCard) == "undefined"){
|
||||
Player.prototype.addRoomCard = function(value,text){
|
||||
this.roomcard += value;
|
||||
GameUI.setHallRoomCard();
|
||||
if(text){
|
||||
GameUI.Openupdataroomcard(text);
|
||||
}
|
||||
};
|
||||
}
|
||||
if(typeof(Player.prototype.setBean) == "undefined"){
|
||||
Player.prototype.setBean = function(value){
|
||||
this.bean = value;
|
||||
GameUI.setHallStar();
|
||||
};
|
||||
}
|
||||
if(typeof(Player.prototype.addBean) == "undefined"){
|
||||
Player.prototype.addBean = function(value,text){
|
||||
this.bean += value;
|
||||
GameUI.setHallStar();
|
||||
if(text){
|
||||
GameUI.Openupdataroomcard(text);
|
||||
}
|
||||
};
|
||||
}
|
||||
//设置吱口令
|
||||
if(typeof(Player.prototype.setPayCode) == "undefined"){
|
||||
Player.prototype.setPayCode = function(_paycode){
|
||||
if(_paycode){
|
||||
this.paycode = _paycode;//吱口令
|
||||
}else{
|
||||
this.paycode = "";//吱口令
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
//绑定邀请码
|
||||
if(typeof(Player.prototype.binding_invitecode) == "undefined"){
|
||||
Player.prototype.binding_invitecode = function(_msg){
|
||||
|
||||
if(_msg.data.state == 0){
|
||||
this.invitecode = _msg.data.invitecode;
|
||||
}
|
||||
GameUI.OpenTips(_msg.data.error,ConstVal.Tips.time);
|
||||
|
||||
};
|
||||
}
|
||||
//设置牌桌内玩家数据
|
||||
if(typeof(Player.prototype.SetDeskInfo) == "undefined"){
|
||||
Player.prototype.SetDeskInfo = function(_data,bTemp){
|
||||
this.playerid=_data.playerid;
|
||||
this.nickname=_data.nickname;
|
||||
this.avatar=_data.avatar;
|
||||
this.sex=_data.sex;
|
||||
this.ip=_data.ip;
|
||||
this.onstate=_data.onstate;
|
||||
this.bean = _data.bean;
|
||||
if(!bTemp){
|
||||
this.initialBean = _data.bean;//玩家豆子初始值
|
||||
}else{
|
||||
this.initialBean = _data.initialBean;//玩家豆子初始值
|
||||
}
|
||||
this.isprepare = _data.isprepare;//玩家是否准备
|
||||
if(_data.paycode){
|
||||
this.paycode = _data.paycode;
|
||||
}else{
|
||||
this.paycode = "";
|
||||
}
|
||||
this.charm = _data.charm;
|
||||
this.sign = _data.sign;
|
||||
};
|
||||
}
|
||||
//获取牌桌内玩家数据
|
||||
if(typeof(Player.prototype.getDeskInfo) == "undefined"){
|
||||
Player.prototype.getDeskInfo = function(){
|
||||
var rValue = {};
|
||||
rValue.playerid=this.playerid;
|
||||
rValue.nickname=this.nickname;
|
||||
rValue.avatar=this.avatar;
|
||||
rValue.sex=this.sex;
|
||||
rValue.ip=this.ip;
|
||||
rValue.onstate=this.onstate;
|
||||
rValue.bean = this.bean;
|
||||
rValue.initialBean = this.initialBean;//玩家豆子初始值
|
||||
rValue.isprepare = this.isprepare;//玩家是否准备
|
||||
if(this.paycode){
|
||||
rValue.paycode = _data.paycode;
|
||||
}else{
|
||||
rValue.paycode = "";
|
||||
}
|
||||
rValue.charm = this.charm;
|
||||
return rValue;
|
||||
};
|
||||
}
|
||||
//房间解散
|
||||
if(typeof(Player.prototype.BreakRoom) == "undefined"){
|
||||
Player.prototype.BreakRoom = function(){
|
||||
this.seat = -1; //座位号
|
||||
this.state = -1;//玩家状态0->默认值 1->申请解散 2->同意解散 3->拒绝解散
|
||||
this.status = 0;//0->默认值 1->房主 2->非房主
|
||||
this.isStart = false;//能否点击按钮开始游戏
|
||||
//this.paycode = "";
|
||||
};
|
||||
}
|
||||
//申请解散房间
|
||||
if(typeof(Player.prototype.ApplyBreakRoom) == "undefined"){
|
||||
Player.prototype.ApplyBreakRoom = function(){
|
||||
this.state = 0;//玩家状态0->默认值 1->申请解散 2->同意解散 3->拒绝解散
|
||||
};
|
||||
}
|
||||
//同意解散房间
|
||||
if(typeof(Player.prototype.AgreeBreakRoom) == "undefined"){
|
||||
Player.prototype.AgreeBreakRoom = function(){
|
||||
this.state = 1;//玩家状态0->默认值 1->申请解散 2->同意解散 3->拒绝解散
|
||||
};
|
||||
}
|
||||
//拒绝解散房间
|
||||
if(typeof(Player.prototype.RefuseBreakRoom) == "undefined"){
|
||||
Player.prototype.RefuseBreakRoom = function(){
|
||||
this.state = 2;//玩家状态0->默认值 1->申请解散 2->同意解散 3->拒绝解散
|
||||
};
|
||||
}
|
||||
//更改玩家是否可以直接退出
|
||||
if(typeof(Player.prototype.ChangeExit) == "undefined"){
|
||||
Player.prototype.ChangeExit = function(v){
|
||||
this.canexit = v;
|
||||
switch(v){
|
||||
case 1:
|
||||
if(this.status == 1){
|
||||
set_self(181,43,4,0,0);
|
||||
}else{
|
||||
set_self(181,43,3,0,0);
|
||||
}
|
||||
|
||||
break;
|
||||
case 0:
|
||||
GameUI.hideExitBtn();
|
||||
set_self(181,43,1,0,0);
|
||||
break;
|
||||
}
|
||||
};
|
||||
}
|
||||
//更改玩家通话状态
|
||||
if(typeof(Player.prototype.phonestate) == "undefined"){
|
||||
Player.prototype.phonestate = function(state){
|
||||
state=Number(state);
|
||||
C_Player.onstate=state;
|
||||
var pobj=Desk.GetPlayerBySeat(C_Player.seat);
|
||||
if(!pobj){return;}
|
||||
pobj.onstate=state;
|
||||
GameUI.SetOnState(C_Player.seat.seat,state);
|
||||
switch(state){
|
||||
case 0://挂断
|
||||
var data={};
|
||||
data.agentid=GameData.AgentId;
|
||||
data.gameid=GameData.GameId;
|
||||
data.playerid=C_Player.playerid;
|
||||
data.roomcode=Desk.roomcode;
|
||||
Net.Send_hangup_phone(data);
|
||||
break;
|
||||
case 1://接起电话
|
||||
var data={};
|
||||
data.agentid=GameData.AgentId;
|
||||
data.gameid=GameData.GameId;
|
||||
data.playerid=C_Player.playerid;
|
||||
data.roomcode=Desk.roomcode;
|
||||
Net.Send_call_phone(data);
|
||||
break;
|
||||
case 2://电话进来
|
||||
var data={};
|
||||
data.agentid=GameData.AgentId;
|
||||
data.gameid=GameData.GameId;
|
||||
data.playerid=C_Player.playerid;
|
||||
data.roomcode=Desk.roomcode;
|
||||
Net.Send_call_phone(data);
|
||||
break;
|
||||
case 3://去电
|
||||
var data={};
|
||||
data.agentid=GameData.AgentId;
|
||||
data.gameid=GameData.GameId;
|
||||
data.playerid=C_Player.playerid;
|
||||
data.roomcode=Desk.roomcode;
|
||||
Net.Send_call_phone(data);
|
||||
break;
|
||||
}
|
||||
};
|
||||
}
|
||||
//更改玩家任务提醒状态
|
||||
if(typeof(Player.prototype.ChangeTaskstate) == "undefined"){
|
||||
Player.prototype.ChangeTaskstate = function(v){
|
||||
this.taskstate = v;
|
||||
};
|
||||
}
|
||||
//分享回调
|
||||
if(typeof(Player.prototype.sharesuccess) == "undefined"){
|
||||
Player.prototype.sharesuccess = function(success,type){
|
||||
|
||||
if(success==2 && type == 2){//分享成功
|
||||
var data={};
|
||||
data.agentid=GameData.AgentId;
|
||||
data.playerid=this.playerid;
|
||||
data.taskid=ConstVal.ShareTaskId;
|
||||
Net.Send_player_finish_task(data);
|
||||
|
||||
}else{
|
||||
//GameUI.OpenTips("分享失败!",ConstVal.Tips.time);
|
||||
}
|
||||
if(success == 2 && GameData.shareFrom == 1){//截图分享成功
|
||||
try{
|
||||
GameData.shareTimes++;
|
||||
if(isArray(GameData.hallConfig.actData)){
|
||||
if(GameData.hallConfig.actData[1] == 0){//活动关闭
|
||||
return;
|
||||
}
|
||||
switch(GameData.activityType){//
|
||||
case 1://大赢家
|
||||
if(GameData.shareTimes == 1){
|
||||
var sendUrl = GameData.hallConfig.actData[3];
|
||||
var event = 3;
|
||||
Logic.sendToWeb2(sendUrl,event);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
//if(!isArray(GameData.hallConfig.activity)){//
|
||||
|
||||
//return;
|
||||
//}else{
|
||||
//if(GameData.hallConfig.activity.length>=5){
|
||||
//if(GameData.hallConfig.activity[4] == 0){
|
||||
//return;
|
||||
//}
|
||||
//}
|
||||
//}
|
||||
|
||||
//logmessage("大赢家截图分享成功!"+GameData.shareTimes+"、"+GameData.activityType,1);
|
||||
//switch(GameData.activityType){//
|
||||
//case 1://大赢家
|
||||
//if(GameData.shareTimes == 1){
|
||||
//var sendUrl = "http://discount.0791ts.cn/api/add_game_times";
|
||||
//var actId = 1;
|
||||
|
||||
//if(GameData.hallConfig.activity.length > 5){
|
||||
//sendUrl = GameData.hallConfig.activity[6];
|
||||
//actId = GameData.hallConfig.activity[7];
|
||||
//}
|
||||
//Logic.sendToWeb(sendUrl,actId);
|
||||
//}
|
||||
//break;
|
||||
//}
|
||||
}catch(e){
|
||||
|
||||
}
|
||||
}
|
||||
GameData.activityType = 0;
|
||||
GameData.activityData = null;
|
||||
|
||||
};
|
||||
}
|
||||
//有
|
||||
if(typeof(Player.prototype.player_finish_task) == "undefined"){
|
||||
Player.prototype.player_finish_task = function(_msg){
|
||||
if(_msg.data.state==1 && C_Player.taskstate==0){
|
||||
C_Player.taskstate=1;
|
||||
}
|
||||
};
|
||||
}
|
||||
//领取任务奖励
|
||||
if(typeof(Player.prototype.get_task_award) == "undefined"){
|
||||
Player.prototype.get_task_award = function(_msg){
|
||||
for(var i=0;i<TaskInfo.length;i++){
|
||||
if(TaskInfo[i].taskid == _msg.data.taskid){
|
||||
TaskInfo[i].state = 2;
|
||||
}
|
||||
}
|
||||
this.taskstate=_msg.data.taskstate;
|
||||
GameUI.CloseTask();
|
||||
GameUI.OpenTask();
|
||||
|
||||
};
|
||||
}
|
||||
//设置是否已初始化密码
|
||||
if(typeof(Player.prototype.setBankPwd) == "undefined"){
|
||||
Player.prototype.setBankPwd = function(value){
|
||||
this.bankpwd = value;
|
||||
};
|
||||
}
|
||||
//设置库存星星数量
|
||||
if(typeof(Player.prototype.setWareHouseStarCOunt) == "undefined"){
|
||||
Player.prototype.setWareHouseStarCOunt = function(count){
|
||||
if(count){
|
||||
this.wareHouseStarCount = Number(count);
|
||||
}else{
|
||||
this.wareHouseStarCount = 0;
|
||||
}
|
||||
GameUI.setNumberImage(3033,C_Player.wareHouseStarCount,27);//仓库库存数量
|
||||
};
|
||||
}
|
||||
|
||||
//设置魅力值
|
||||
if(typeof(Player.prototype.setCharm) == "undefined"){
|
||||
Player.prototype.setCharm = function(count){
|
||||
this.charm = count;
|
||||
if(this.seat>-1){//在房间内
|
||||
if(this.seat == GameData.infoSeat){
|
||||
set_self(3125,7,GameData.sysConfig.charmName+":"+count,0,0);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
//设置魅力值
|
||||
if(typeof(Player.prototype.setSign) == "undefined"){
|
||||
Player.prototype.setSign = function(sign){
|
||||
this.sign = sign;
|
||||
GameUI.setSign(sign);
|
||||
GameUI.closeTextInput();
|
||||
};
|
||||
}
|
||||
if(typeof(Player.prototype.updateHallData) == "undefined"){
|
||||
Player.prototype.updateHallData = function(data){
|
||||
this.setSign(data.sign);
|
||||
this.setRoomcard(data.roomcard);
|
||||
this.update_bean2(data.bean);
|
||||
};
|
||||
}
|
||||
if(typeof(Player.prototype.returnHallData) == "undefined"){
|
||||
Player.prototype.returnHallData = function(data){
|
||||
var obj={};
|
||||
obj.sign = this.sign;
|
||||
obj.roomcard = this.roomcard;
|
||||
obj.bean = this.bean;
|
||||
return obj;
|
||||
};
|
||||
}
|
||||
|
||||
//设置手机号
|
||||
if(typeof(Player.prototype.setTel) == "undefined"){
|
||||
Player.prototype.setTel = function(val){
|
||||
this.tel = val;
|
||||
// set_self(3256,43,2,0,0);
|
||||
// play_ani(0,3256,35,255,100,0,1000,0,0,0,0,0,1);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
1425
codes/games/client/Projects/zpy/js/00_Surface/07_Desk.js
Normal file
1425
codes/games/client/Projects/zpy/js/00_Surface/07_Desk.js
Normal file
File diff suppressed because it is too large
Load Diff
1027
codes/games/client/Projects/zpy/js/00_Surface/08_Utl_Output.js
Normal file
1027
codes/games/client/Projects/zpy/js/00_Surface/08_Utl_Output.js
Normal file
File diff suppressed because it is too large
Load Diff
886
codes/games/client/Projects/zpy/js/00_Surface/09_Net.js
Normal file
886
codes/games/client/Projects/zpy/js/00_Surface/09_Net.js
Normal file
@@ -0,0 +1,886 @@
|
||||
var Net = Net||{};
|
||||
Net.tcp = {};
|
||||
Net.tcp.isConnected = false;//已有连接连上
|
||||
Net.tcp.tcpIDAva = 1;//用过的ID的最大值
|
||||
Net.tcp.tcpIDList = [];//TCP ID列表
|
||||
Net.tcp.connectCount = 3;//同时最多连接个数
|
||||
Net.tcp.connectList = [];//tcp连接对象池
|
||||
Net.tcp.connect = function(_id,ws){
|
||||
|
||||
}
|
||||
Net.ws_tcp;
|
||||
Net._SendData = function(_app,_route,_rpc,_data){
|
||||
|
||||
var _msg = {};
|
||||
_msg.app = _app,
|
||||
_msg.route = _route;
|
||||
_msg.rpc = _rpc;
|
||||
_msg.data = _data;
|
||||
if(ConstVal.netType == 0){
|
||||
Net.ws_tcp.send(JSON.stringify(_msg));
|
||||
}else{
|
||||
var putMsg='';
|
||||
if(_msg.rpc == RpcList.player_login){putMsg="playerLogin"}
|
||||
Func.AjaxHttp2(GameData.Server,_msg,
|
||||
function(_msg,state,input_msg){
|
||||
console.log(_msg,state,input_msg);
|
||||
if (typeof(_msg) == 'string')
|
||||
{
|
||||
_msg = JSON.parse(_msg);
|
||||
}
|
||||
if(_msg.route==RouteList.platform||_msg.route==RouteList.agent||_msg.route==RouteList.room){
|
||||
if(min_ExitsFunction(Net[_msg.rpc])){
|
||||
Net[_msg.rpc](_msg);
|
||||
}
|
||||
}else{
|
||||
Game_Modify._ReceiveData(_msg);
|
||||
}
|
||||
},function(_msg,state,input_msg){
|
||||
if(input_msg == "playerLogin"){
|
||||
GameUI.OpenTips("网络状况不好");
|
||||
|
||||
}
|
||||
|
||||
},putMsg);
|
||||
}
|
||||
|
||||
if(Game_Config.Debugger.isDebugger){
|
||||
console.log("发送数据:");
|
||||
console.log(_msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Net.submit_error = function(_packet,_msg){
|
||||
//提交错误
|
||||
if(GameData.errorMsg != _msg){
|
||||
GameData.errorMsg = _msg;
|
||||
}else {
|
||||
return;
|
||||
}
|
||||
var msg = {
|
||||
app:"youle",
|
||||
route:"agent",
|
||||
rpc:"submit_error",
|
||||
data:{
|
||||
packet:_packet,
|
||||
msg:_msg,
|
||||
playerid:C_Player.playerid,
|
||||
agentid:GameData.AgentId,
|
||||
gameid:GameData.GameId,
|
||||
}
|
||||
}
|
||||
try{
|
||||
Net.ws_tcp.send(JSON.stringify(msg));
|
||||
}catch(e){
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Net.submit_log = function(_packet,_msg){
|
||||
var msg = {
|
||||
app:"youle",
|
||||
route:"agent",
|
||||
rpc:"submit_error",
|
||||
data:{
|
||||
packet:_packet,
|
||||
msg:_msg,
|
||||
playerid:C_Player.playerid,
|
||||
agentid:GameData.AgentId,
|
||||
gameid:GameData.GameId
|
||||
}
|
||||
}
|
||||
console.log(_packet);
|
||||
console.log(_msg);
|
||||
try{
|
||||
Net.ws_tcp.send(JSON.stringify(msg));
|
||||
}catch(e){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//发送创建房间
|
||||
Net.Send_create_room = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.create_room,_data);
|
||||
}
|
||||
//接收创建房间
|
||||
Net.create_room = function(_msg){
|
||||
//Logic.CreateRoom(_msg.data);
|
||||
Desk.create_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
Game_Modify.createRoom(_msg.data.roomtype,_msg.data.infinite);
|
||||
if(Game_Modify.onCreateRoom){
|
||||
Game_Modify.onCreateRoom(_msg.data);
|
||||
}
|
||||
|
||||
}
|
||||
//发送登录请求
|
||||
Net.Send_login = function(_data){
|
||||
//console.log(returnCitySN);
|
||||
if(typeof returnCitySN != "undefined"){
|
||||
_data.ip = returnCitySN.cip;
|
||||
}
|
||||
if(ConstVal.isGameHall){
|
||||
if(!GameData.hallLogin){
|
||||
return ;
|
||||
}
|
||||
}
|
||||
_data.machineid = Logic.getMachineId();
|
||||
_data.machineroom = Utl.getRoomcode();
|
||||
//alert("进入Net.Send_login方法");
|
||||
GameUI.StartLoad();
|
||||
if(GameData.loginPlayerid){
|
||||
var _playerid = Logic.readPlayerId();
|
||||
if(_playerid){
|
||||
_data.playerid = _playerid;
|
||||
}
|
||||
}
|
||||
GameData.loginList.push(GameData.TcpID);
|
||||
//GameData.isChangeServer = false;
|
||||
//if(ConstVal.netType == 0){
|
||||
GameData.isSendLoginState = true;
|
||||
GameData.sendLoginTimes++;
|
||||
|
||||
if(!ConstVal.isGameHall){
|
||||
if(GameData.sendLoginTimer == null){
|
||||
GameData.isSendLoginTimer = setTimeout(function(){
|
||||
|
||||
|
||||
GameData.ConnectType = false;
|
||||
GameData.disType = true;
|
||||
GameData.NetType=1;
|
||||
GameUI.StartLoad();
|
||||
GameData.isClose = true;
|
||||
Net.ws_tcp.close();
|
||||
GameData.isCloseTimer = setInterval(function(){
|
||||
if(GameData.isClose){
|
||||
Net.ws_tcp.close();
|
||||
}
|
||||
},5000);
|
||||
},4000);
|
||||
}
|
||||
}else{
|
||||
/*
|
||||
if(GameData.sendLoginTimes >3){
|
||||
if(GameData.isSendLoginTimer){
|
||||
window.clearTimeout(GameData.isSendLoginTimer);
|
||||
GameData.isSendLoginTimer = null;
|
||||
}
|
||||
GameUI.EndLoad();
|
||||
GameUI.OpenKick("网络繁忙,请退出游戏,稍后登录!");
|
||||
return;
|
||||
}
|
||||
if(GameData.sendLoginTimer == null){
|
||||
GameData.isSendLoginTimer = setTimeout(function(){
|
||||
var data={};
|
||||
data.agentid = GameData.AgentId;
|
||||
data.openid = C_Player.openid;
|
||||
data.gameid = GameData.GameId;
|
||||
data.nickname = C_Player.nickname;
|
||||
data.avatar = C_Player.avatar;
|
||||
data.sex = C_Player.sex;
|
||||
data.province = C_Player.province;
|
||||
data.unionid=C_Player.unionid;
|
||||
data.city = C_Player.city;
|
||||
data.version = GameData.versionCode;
|
||||
data.channelid = GameData.ChannelId;
|
||||
data.marketid = GameData.marketID;
|
||||
},4000);
|
||||
}
|
||||
*/
|
||||
}
|
||||
//if(GameData.sendLoginTimes>=2){
|
||||
//if(GameData.isSendLoginTimer){
|
||||
//window.clearTimeout(GameData.isSendLoginTimer);
|
||||
//GameData.isSendLoginTimer = null;
|
||||
//}
|
||||
//if(GameData.isClose){
|
||||
//GameData.isClose = false;
|
||||
//window.clearTimeout(GameData.isCloseTimer);
|
||||
//}
|
||||
//if(GameData.sendLoginTimer){
|
||||
//window.clearTimeout(GameData.sendLoginTimer);
|
||||
//GameData.sendLoginTimer = null;
|
||||
//}
|
||||
//if(GameData.sendLoginTimer == null){
|
||||
//GameData.isSendLoginTimer = setTimeout(function(){
|
||||
|
||||
|
||||
//GameData.ConnectType = false;
|
||||
//GameData.disType = true;
|
||||
//GameData.NetType=1;
|
||||
//GameUI.StartLoad();
|
||||
//GameData.isClose = true;
|
||||
//Net.ws_tcp.close();
|
||||
//GameData.isCloseTimer = setInterval(function(){
|
||||
//if(GameData.isClose){
|
||||
//Net.ws_tcp.close();
|
||||
//}
|
||||
//},5000);
|
||||
//},4000);
|
||||
//}
|
||||
////GameUI.EndLoad();
|
||||
////GameUI.OpenKick("网络繁忙,请退出游戏,稍后登录!");
|
||||
//}
|
||||
Net._SendData(AppList.app,RouteList.agent,RpcList.player_login,_data);
|
||||
|
||||
}
|
||||
//接收登录
|
||||
Net.player_login = function(_msg){
|
||||
if(GameData.isSendLoginTimer){
|
||||
window.clearTimeout(GameData.isSendLoginTimer);
|
||||
GameData.isSendLoginTimer = null;
|
||||
}
|
||||
GameUI.EndLoad();
|
||||
Desk.login(_msg);
|
||||
|
||||
}
|
||||
|
||||
//发送玩家自己进入房间请求
|
||||
Net.Send_self_join_room = function(_data){
|
||||
GameUI.StartLoad();
|
||||
GameData.shortCode = _data.roomcode;
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.self_join_room,_data);
|
||||
}
|
||||
//接收玩家自己进入房间请求
|
||||
Net.self_join_room = function(_msg){
|
||||
|
||||
Desk.self_join_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
|
||||
//发送未开局之前房主自己解散房间
|
||||
Net.Send_self_break_room = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.self_break_room,_data);
|
||||
}
|
||||
//接收未开局之前房主自己解散房间
|
||||
Net.self_break_room = function(_msg){
|
||||
Desk.self_break_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
|
||||
//接收未开局之前他人房主解散房间
|
||||
Net.other_break_room = function(_msg){
|
||||
Desk.other_break_room(_msg);
|
||||
}
|
||||
//接收其他玩家加入房间
|
||||
Net.other_join_room = function(_msg){
|
||||
if(Logic.checkRoom()){
|
||||
return;
|
||||
}
|
||||
Desk.other_join_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
//发送未开局之前自己退出房间
|
||||
Net.Send_self_exit_room = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.self_exit_room,_data);
|
||||
}
|
||||
//接收未开局之前自己退出房间
|
||||
Net.self_exit_room = function(_msg){
|
||||
GameUI.closeCheck();
|
||||
Desk.self_exit_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
|
||||
//接收未开局之前其他玩家退出房间
|
||||
Net.other_exit_room = function(_msg){
|
||||
if(Logic.checkRoom()){
|
||||
return;
|
||||
}
|
||||
Desk.other_exit_room(_msg);
|
||||
}
|
||||
//发送开局之后自己申请解散房间
|
||||
Net.Send_self_apply_free_room = function(_data){
|
||||
//GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.self_apply_free_room,_data);
|
||||
}
|
||||
//接收开局之后自己申请解散房间
|
||||
Net.self_apply_free_room = function(_msg){
|
||||
Desk.self_apply_free_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
|
||||
}
|
||||
//接收开局之后其他玩家申请解散房间
|
||||
Net.other_apply_free_room = function(_msg){
|
||||
Desk.other_apply_free_room(_msg);
|
||||
}
|
||||
//发送自己同意解散房间
|
||||
Net.Send_self_agree_free_room = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.self_agree_free_room,_data);
|
||||
}
|
||||
//接收自己同意解散房间
|
||||
Net.self_agree_free_room = function(_msg){
|
||||
Desk.self_agree_free_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
//接收其他玩家同意解散房间
|
||||
Net.other_agree_free_room = function(_msg){
|
||||
Desk.other_agree_free_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
//发送自己拒绝解散房间
|
||||
Net.Send_self_refuse_free_room = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.self_refuse_free_room,_data);
|
||||
}
|
||||
//接收自己拒绝解散房间
|
||||
Net.self_refuse_free_room = function(_msg){
|
||||
Desk.self_refuse_free_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
//接收其他玩家拒绝解散房间
|
||||
Net.other_refuse_free_room = function(_msg){
|
||||
Desk.other_refuse_free_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
//接收解散房间
|
||||
Net.free_room = function(_msg){
|
||||
Desk.free_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
|
||||
//发送获取战绩
|
||||
Net.Send_get_player_grade1 = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.get_player_grade1,_data);
|
||||
}
|
||||
//接收获取战绩
|
||||
Net.get_player_grade1 = function(_msg){
|
||||
gameCombat.get_player_grade1(_msg);
|
||||
GameUI.EndLoad();
|
||||
//Logic.SetCombatInfo(_msg.data);
|
||||
//GameUI.OpenCombat();
|
||||
|
||||
}
|
||||
//发送获取战绩2
|
||||
Net.Send_get_player_grade2 = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.get_player_grade2,_data);
|
||||
}
|
||||
//接收获取战绩2
|
||||
Net.get_player_grade2 = function(_msg){
|
||||
gameCombat.get_player_grade2(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
|
||||
//接收修改房卡
|
||||
Net.update_roomcard = function(_msg){
|
||||
if(typeof _msg.data.change == "undefined"){
|
||||
C_Player.UpdateRoomcard(_msg);
|
||||
}
|
||||
}
|
||||
|
||||
//接收其他玩家离线
|
||||
Net.other_offline = function(_msg){
|
||||
Desk.other_offline(_msg);
|
||||
}
|
||||
|
||||
//接收其他玩家上线
|
||||
Net.other_online = function(_msg){
|
||||
Desk.other_online(_msg);
|
||||
}
|
||||
|
||||
//发送发送聊天消息
|
||||
Net.Send_send_text = function(_data){
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.send_text,_data);
|
||||
}
|
||||
//接收发送聊天消息
|
||||
Net.send_text = function(_msg){
|
||||
Desk.send_text(_msg);
|
||||
}
|
||||
|
||||
//发送获取任务列表
|
||||
Net.Send_get_player_task = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.get_player_task,_data);
|
||||
}
|
||||
//接收获取任务列表
|
||||
Net.get_player_task = function(_msg){
|
||||
Desk.get_player_task(_msg);
|
||||
//GameUI.SetTaskInfo(_msg);
|
||||
GameUI.EndLoad();
|
||||
|
||||
}
|
||||
//发送完成任务
|
||||
Net.Send_player_finish_task = function(_data){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.player_finish_task,_data);
|
||||
}
|
||||
//接收完成任务
|
||||
Net.player_finish_task = function(_msg){
|
||||
C_Player.player_finish_task(_msg);
|
||||
}
|
||||
//发送领取任务奖励
|
||||
Net.Send_get_task_award = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.get_task_award,_data);
|
||||
|
||||
}
|
||||
//接收领取任务奖励
|
||||
Net.get_task_award = function(_msg){
|
||||
C_Player.get_task_award(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
//发送有任务可领取
|
||||
Net.Send_can_award = function(_data){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.refresh_task_state,_data);
|
||||
}
|
||||
//接收有任务可领取
|
||||
Net.can_award = function(_msg){
|
||||
C_Player.can_award(_msg);
|
||||
}
|
||||
//接收踢下线
|
||||
Net.kick_offline = function(_msg){
|
||||
Desk.kick_offline(_msg);
|
||||
}
|
||||
//发送自己打电话
|
||||
Net.Send_call_phone = function(_data){
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.call_phone,_data);
|
||||
}
|
||||
//接收自己打电话
|
||||
Net.call_phone = function(_msg){
|
||||
Desk.call_phone(_msg);
|
||||
}
|
||||
|
||||
//发送自己挂断电话
|
||||
Net.Send_hangup_phone = function(_data){
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.hangup_phone,_data);
|
||||
}
|
||||
//接自己收挂断打电话
|
||||
Net.hangup_phone = function(_msg){
|
||||
Desk.hangup_phone(_msg);
|
||||
}
|
||||
|
||||
//发送房主开局
|
||||
Net.Send_self_makewar = function(_data){
|
||||
//GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.self_makewar,_data);
|
||||
}
|
||||
//接收房主开局
|
||||
Net.self_makewar = function(_msg){
|
||||
Desk.self_makewar(_msg);
|
||||
//GameUI.EndLoad();
|
||||
}
|
||||
//接收房主开局
|
||||
Net.other_makewar = function(_msg){
|
||||
Desk.makewar(_msg);
|
||||
}
|
||||
//自己发送互动
|
||||
Net.Send_send_gift=function(_data){
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.send_gift,_data);
|
||||
}
|
||||
Net.send_gift=function(_msg){
|
||||
Desk.send_gift(_msg);
|
||||
}
|
||||
|
||||
//自己发送语音
|
||||
Net.Send_send_voice=function(_data){
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.send_voice,_data);
|
||||
}
|
||||
Net.send_voice=function(_msg){
|
||||
Desk.send_voice(_msg);
|
||||
}
|
||||
|
||||
//发送切换至房间服务器
|
||||
Net.Send_connect_roomserver=function(_data){
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.connect_roomserver,_data);
|
||||
}
|
||||
Net.connect_roomserver=function(_msg){
|
||||
|
||||
GameData.ConnectType=true;
|
||||
GameData.disType =false;
|
||||
GameData.ConnectPack = _msg.data;
|
||||
GameData.ConnectRpc = RpcList.connect_roomserver;
|
||||
GameData.Server=_msg.data.roomserver;
|
||||
//Logic.Connect();
|
||||
Net.ws_tcp.close();
|
||||
}
|
||||
|
||||
//发送切换至大厅服务器
|
||||
Net.Send_connect_agentserver=function(_data){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.connect_agentserver,_data);
|
||||
}
|
||||
Net.connect_agentserver=function(_msg){
|
||||
if(_msg.data.opt == RpcList.other_break_room || _msg.data.opt == RpcList.free_room){
|
||||
GameUI.StartLoad();
|
||||
}
|
||||
GameData.ConnectType=true;
|
||||
GameData.disType =false;
|
||||
GameData.ConnectRpc = RpcList.connect_agentserver;
|
||||
GameData.ConnectPack = _msg.data;
|
||||
GameData.Server=_msg.data.agentserver;
|
||||
//Logic.Connect();
|
||||
Net.ws_tcp.close();
|
||||
}
|
||||
Net.Send_broadcast=function(_data){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.broadcast,_data);
|
||||
}
|
||||
//接收即时信息
|
||||
Net.broadcast=function(_msg){
|
||||
//
|
||||
Desk.broadcast(_msg);
|
||||
}
|
||||
//发送互动
|
||||
Net.Send_send_phiz=function(_data){
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.send_phiz,_data);
|
||||
}
|
||||
//接收互动
|
||||
Net.send_phiz=function(_msg){
|
||||
Desk.send_phiz(_msg);
|
||||
}
|
||||
//提交反馈
|
||||
Net.Send_submit_opinion=function(_data){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.submit_opinion,_data);
|
||||
}
|
||||
//接收反馈
|
||||
Net.submit_opinion=function(_msg){
|
||||
Desk.submit_opinion(_msg);
|
||||
}
|
||||
//踢出玩家
|
||||
Net.Send_kick_server=function(_data){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.kick_server,_data);
|
||||
}
|
||||
Net.kick_server=function(_msg){
|
||||
Desk.kick_server(_msg);
|
||||
}
|
||||
//获取支付列表
|
||||
Net.Send_get_paylist=function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.get_paylist,_data);
|
||||
}
|
||||
//接收支付列表
|
||||
Net.get_paylist=function(_msg){
|
||||
GameData.payList = _msg.data.paylist;
|
||||
GameUI.OpenPay();
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
//支付成功后通知服务器
|
||||
Net.Send_pay_succ=function(_data){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.pay_succ,_data);
|
||||
}
|
||||
//提交位置信息
|
||||
Net.Send_submit_location=function(_data){
|
||||
if(!ConstVal.isGameHall){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.submit_location,_data);
|
||||
}
|
||||
}
|
||||
//提交位置信息
|
||||
Net.submit_location=function(_msg){
|
||||
Game.submit_location(_msg);
|
||||
}
|
||||
//发送绑定
|
||||
Net.Send_binding_invitecode=function(_data){
|
||||
//GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.binding_invitecode,_data);
|
||||
}
|
||||
//接收绑定
|
||||
Net.binding_invitecode=function(_msg){
|
||||
//GameUI.EndLoad();
|
||||
C_Player.binding_invitecode(_msg);
|
||||
}
|
||||
|
||||
//接收修改豆豆
|
||||
Net.update_bean = function(_msg){
|
||||
//C_Player.update_bean(_msg);
|
||||
Desk.update_bean(_msg);
|
||||
}
|
||||
|
||||
Net.Send_get_player_invitecode = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.get_player_invitecode,_data);
|
||||
}
|
||||
Net.get_player_invitecode = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
C_Player.setInvitecod(_msg.data.invitecode);
|
||||
GameUI.OpenBind();
|
||||
}
|
||||
|
||||
Net.Send_beanroom_surrender = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.beanroom_surrender,_data);
|
||||
}
|
||||
Net.beanroom_surrender = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
GameUI.closeCheck();
|
||||
if(_msg.data.state==0){
|
||||
Game_Modify.onSurrender(_msg);
|
||||
}else{//失败
|
||||
if(_msg.data.showerror==1){
|
||||
GameUI.OpenTips(_msg.data.error);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Net.Send_player_prepare = function(_data){
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.player_prepare,_data);
|
||||
}
|
||||
Net.player_prepare = function(_msg){
|
||||
Desk.player_prepare(_msg);
|
||||
}
|
||||
Net.Send_share_room = function(_data){
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.share_room,_data);
|
||||
}
|
||||
Net.share_room = function(_msg){
|
||||
Desk.share_room(_msg);
|
||||
}
|
||||
Net.Send_get_share_room = function(_data){
|
||||
if(!ConstVal.isGameHall){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.get_share_room,_data);
|
||||
}
|
||||
|
||||
}
|
||||
Net.get_share_room = function(_msg){
|
||||
Desk.get_share_room(_msg);
|
||||
GameUI.EndLoad();
|
||||
}
|
||||
Net.Send_quick_enter_share_room = function(_data){
|
||||
console.log(_data);
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.quick_enter_share_room,_data);
|
||||
}
|
||||
Net.show_message = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.show_message(_msg);
|
||||
}
|
||||
Net.Send_advanced_roomlist = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.advanced_roomlist,_data);
|
||||
|
||||
}
|
||||
Net.advanced_roomlist = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.advanced_roomlist(_msg);
|
||||
}
|
||||
Net.Send_advanced_createroom = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.advanced_createroom,_data);
|
||||
|
||||
}
|
||||
Net.advanced_createroom = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.advanced_createroom(_msg);
|
||||
}
|
||||
Net.Send_change_room = function(_data){
|
||||
//GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.room,RpcList.change_room,_data);
|
||||
}
|
||||
Net.change_seat = function(_msg){
|
||||
Desk.change_seat(_msg);
|
||||
}
|
||||
//财富榜
|
||||
Net.Send_get_treasurelist = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.get_treasurelist,_data);
|
||||
}
|
||||
//财富榜
|
||||
Net.get_treasurelist = function(_msg){
|
||||
Desk.get_treasurelist(_msg);
|
||||
GameUI.EndLoad();
|
||||
|
||||
}
|
||||
//设置仓库密码
|
||||
Net.Send_set_bankpwd = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.set_bankpwd,_data);
|
||||
}
|
||||
Net.set_bankpwd = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.set_bankpwd(_msg);
|
||||
}
|
||||
|
||||
//更改仓库星星
|
||||
Net.Send_change_star = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.change_star,_data);
|
||||
}
|
||||
Net.change_star = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.change_star(_msg);
|
||||
}
|
||||
|
||||
//提交手机信息
|
||||
Net.Send_submit_phoneinfo = function(_data){
|
||||
if(!ConstVal.isGameHall){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.submit_phoneinfo,_data);
|
||||
}
|
||||
}
|
||||
Net.submit_phoneinfo = function(_msg){
|
||||
//GameData.submitPhoneInfo = true;
|
||||
|
||||
}
|
||||
//提交手机信息
|
||||
Net.Send_update_charm = function(_data){
|
||||
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.update_charm,_data);
|
||||
}
|
||||
Net.update_charm = function(_msg){
|
||||
//GameData.submitPhoneInfo = true;
|
||||
Desk.update_charm(_msg);
|
||||
|
||||
}
|
||||
Net.Send_setSign = function(_data){
|
||||
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.setSign,_data);
|
||||
}
|
||||
Net.setSign = function(_msg){
|
||||
C_Player.setSign(_msg.data.sign);
|
||||
//GameUI.setSign(_msg.data.sign);
|
||||
}
|
||||
Net.Send_switchRoomList = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.switchRoomList,_data);
|
||||
}
|
||||
Net.switchRoomList = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.switchRoomList(_msg);
|
||||
//GameUI.setSign(_msg.data.sign);
|
||||
}
|
||||
|
||||
Net.Send_getInfoByShortCode = function(_data){
|
||||
//GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.getInfoByShortCode,_data);
|
||||
}
|
||||
Net.getInfoByShortCode = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.getInfoByShortCode(_msg);
|
||||
}
|
||||
Net.Send_optBanList = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.optBanList,_data);
|
||||
}
|
||||
Net.optBanList = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.optBanList(_msg);
|
||||
}
|
||||
Net.Send_getShortCodeRankList = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.getShortCodeRankList,_data);
|
||||
}
|
||||
Net.getShortCodeRankList = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.getShortCodeRankList(_msg);
|
||||
}
|
||||
|
||||
Net.Send_setAllCharm = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.setAllCharm,_data);
|
||||
}
|
||||
Net.setAllCharm = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.setAllCharm(_msg);
|
||||
}
|
||||
|
||||
Net.Send_getVipRankList = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.getVipRankList,_data);
|
||||
}
|
||||
Net.getVipRankList = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.getVipRankList(_msg);
|
||||
}
|
||||
|
||||
Net.Send_playerBehavior = function(tag){
|
||||
//GameUI.StartLoad();
|
||||
/*
|
||||
var _data={};
|
||||
_data.agentid = GameData.AgentId;
|
||||
_data.gameid = GameData.GameId;
|
||||
_data.playerid = C_Player.playerid;
|
||||
_data.tag = tag;
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.playerBehavior,_data);
|
||||
*/
|
||||
var url = "http://test3.1888day.com/api/gamedo/gamedo";
|
||||
var cfg = {};
|
||||
cfg.url = url;
|
||||
cfg.type = "GET";
|
||||
cfg.data = "agentid="+GameData.AgentId+"&gameid="+GameData.GameId+"&playerid="+C_Player.playerid+"&tag="+tag;
|
||||
|
||||
cfg.success = playerBehavior_Succ;
|
||||
cfg.error = playerBehavior_Fail;
|
||||
min_http(cfg);
|
||||
|
||||
}
|
||||
var playerBehavior_Succ = function(_msg,state,input_msg){
|
||||
console.log("Succ");
|
||||
console.log(_msg,state,input_msg);
|
||||
}
|
||||
var playerBehavior_Fail = function(_msg,state,input_msg){
|
||||
console.log("Fail");
|
||||
console.log(_msg,state,input_msg);
|
||||
}
|
||||
Net.playerBehavior = function(_msg){
|
||||
//GameUI.EndLoad();
|
||||
Desk.playerBehavior(_msg);
|
||||
}
|
||||
Net.Send_binding_phone = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.binding_phone,_data);
|
||||
}
|
||||
Net.binding_phone = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.binding_phone(_msg);
|
||||
}
|
||||
Net.Send_send_phone_checkcode = function(_data){
|
||||
//GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.send_phone_checkcode,_data);
|
||||
}
|
||||
Net.send_phone_checkcode = function(_msg){
|
||||
//GameUI.EndLoad();
|
||||
Desk.send_phone_checkcode(_msg);
|
||||
}
|
||||
Net.Send_send_phone_code_wechat = function(_data){
|
||||
//GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.send_phone_code_wechat,_data);
|
||||
}
|
||||
Net.send_phone_code_wechat = function(_msg){
|
||||
//GameUI.EndLoad();
|
||||
Desk.send_phone_code_wechat(_msg);
|
||||
}
|
||||
|
||||
Net.Send_setVipForbidSelect = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.setVipForbidSelect,_data);
|
||||
}
|
||||
Net.setVipForbidSelect = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.setVipForbidSelect(_msg);
|
||||
}
|
||||
Net.Send_topup_card = function(_data){
|
||||
console.log(_data);
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.topup_card,_data);
|
||||
}
|
||||
Net.topup_card = function(_msg){
|
||||
Desk.topup_card(_msg);
|
||||
}
|
||||
Net.Send_query_player2 = function(_data){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.query_player2,_data);
|
||||
}
|
||||
Net.query_player2 = function(_msg){
|
||||
Desk.query_player2(_msg);
|
||||
}
|
||||
Net.Send_giveCoin = function(_data){
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.giveCoin,_data);
|
||||
}
|
||||
Net.giveCoin = function(_msg){
|
||||
Desk.giveCoin(_msg);
|
||||
}
|
||||
Net.Send_getPlayerWhiteList = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.getPlayerWhiteList,_data);
|
||||
}
|
||||
Net.getPlayerWhiteList = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.getPlayerWhiteList(_msg);
|
||||
}
|
||||
Net.Send_optWhiteList = function(_data){
|
||||
GameUI.StartLoad();
|
||||
this._SendData(AppList.app,RouteList.agent,RpcList.optWhiteList,_data);
|
||||
}
|
||||
Net.optWhiteList = function(_msg){
|
||||
GameUI.EndLoad();
|
||||
Desk.optWhiteList(_msg);
|
||||
}
|
||||
|
||||
610
codes/games/client/Projects/zpy/js/00_Surface/10_Game.js
Normal file
610
codes/games/client/Projects/zpy/js/00_Surface/10_Game.js
Normal file
@@ -0,0 +1,610 @@
|
||||
var Game=Game||{};
|
||||
|
||||
Game.submit_location = function(_msg){
|
||||
GameData.submitLocation = true;
|
||||
if(_msg.data.wechat_gzh){
|
||||
GameData.wechat_gzh = _msg.data.wechat_gzh;
|
||||
set_self(340,41,0,0,0);
|
||||
set_self(340,7,GameData.wechat_gzh,0,0);
|
||||
set_self(339,20,GameData.wechat_gzh.gblen()*13,0,0);
|
||||
set_self(340,18,get_self(16,18,0,0,0)+get_self(16,20,0,0,0)/2-GameData.wechat_gzh.gblen()*6.5,0,0);
|
||||
set_self(339,18,get_self(16,18,0,0,0)+get_self(16,20,0,0,0)/2-GameData.wechat_gzh.gblen()*6.5,0,0);
|
||||
}
|
||||
if(_msg.data.wechat_ewm){
|
||||
GameData.wechat_ewm=_msg.data.wechat_ewm;
|
||||
}
|
||||
if(_msg.data.wechat_kfh){
|
||||
GameData.wechat_kfh=_msg.data.wechat_kfh;
|
||||
set_self(179,7,GameData.wechat_kfh,0,0);
|
||||
}
|
||||
if(_msg.data.qq){
|
||||
GameData.qq=_msg.data.qq;
|
||||
set_self(682,7,GameData.qq,0,0);
|
||||
}
|
||||
if(_msg.data.tel){
|
||||
GameData.tel=_msg.data.tel;
|
||||
set_self(GameData.telSpid,20,String(GameData.tel).gblen()*14,0,0);
|
||||
set_self(GameData.telSpid,7,GameData.tel,0,0);
|
||||
}
|
||||
if(_msg.data.invitecode){
|
||||
C_Player.setInvitecod(_msg.data.invitecode);
|
||||
GameUI.CloseBind();
|
||||
}
|
||||
|
||||
}
|
||||
//游戏其他信息
|
||||
//Game.mainSceneInfo = {};
|
||||
var recorderManager;
|
||||
var innerAudioContext1;
|
||||
|
||||
/**
|
||||
* ?????????? mdata ??????
|
||||
* openId,avatarUrl,nickName, gender, city, province, unionId
|
||||
*/
|
||||
function getwxuserinfo(mdata) {
|
||||
sharelogin(mdata.openId,mdata.avatarUrl,mdata.nickName,mdata.gender,mdata.city,mdata.province,mdata.unionId)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ????????
|
||||
*/
|
||||
function wxgameshow(mdata) {
|
||||
appservice(1);
|
||||
}
|
||||
/**
|
||||
* ????????
|
||||
*/
|
||||
function wxgamehide(mdata) {
|
||||
appservice(2);
|
||||
}
|
||||
/**
|
||||
* ?????? state ???? 1 ?? 2 ??
|
||||
*/
|
||||
function sharegameinfo(state) {
|
||||
//if (state == 1) {
|
||||
|
||||
//}
|
||||
//if (state == 2) {
|
||||
|
||||
//}
|
||||
state = Number(state);
|
||||
//type = Number(type);
|
||||
C_Player.sharesuccess(state,1);
|
||||
|
||||
|
||||
}
|
||||
//Recorderload();
|
||||
|
||||
|
||||
/**
|
||||
* ???????
|
||||
*/
|
||||
function Recorderload(){
|
||||
if(!innerAudioContext1){
|
||||
innerAudioContext1 = wx.createInnerAudioContext();
|
||||
}
|
||||
var that = this;
|
||||
recorderManager=wx.getRecorderManager()
|
||||
recorderManager.onError(function(){
|
||||
|
||||
console.log("????!");
|
||||
});
|
||||
recorderManager.onStop(function(res){
|
||||
|
||||
console.log(res.tempFilePath );
|
||||
|
||||
console.log("????!");
|
||||
//playRecord(res.tempFilePath);
|
||||
getaudiourl(res.tempFilePath,5);
|
||||
});
|
||||
|
||||
|
||||
//innerAudioContext1.onError((res) => {
|
||||
//console.log("??????!");
|
||||
|
||||
//})
|
||||
//innerAudioContext1.onEnded((res) => {
|
||||
//console.log("??????!");
|
||||
//})
|
||||
innerAudioContext1.onError(function(res){
|
||||
console.log("??????!");
|
||||
|
||||
})
|
||||
innerAudioContext1.onEnded(function(res){
|
||||
console.log("??????!");
|
||||
})
|
||||
}
|
||||
/**
|
||||
* ??????????
|
||||
*/
|
||||
function isxiaowxgame(){
|
||||
var iswxgame;
|
||||
try{
|
||||
var recorderManager = wx.getRecorderManager();
|
||||
iswxgame=true;
|
||||
}catch(e){
|
||||
iswxgame=false;
|
||||
}
|
||||
return iswxgame;
|
||||
|
||||
}
|
||||
function wxauthorize(){
|
||||
|
||||
}
|
||||
/**
|
||||
* ????
|
||||
*/
|
||||
function startRecordAac (){
|
||||
console.log("开始录音");
|
||||
recorderManager.start({
|
||||
format: 'aac'
|
||||
});
|
||||
// wx.authorize({
|
||||
// scope: 'scope.record',
|
||||
// fail: function (res) {
|
||||
// // iOS ? Android ????????? errMsg ????,?????????
|
||||
// console.log("????");
|
||||
// console.log(res);
|
||||
// if (res.errMsg.indexOf('auth deny') > -1 || res.errMsg.indexOf('fail') > -1 || res.errMsg.indexOf('auth denied') > -1 ) {
|
||||
// // ???????????
|
||||
// console.log("????");
|
||||
// wx.showModal({
|
||||
// title: '??',
|
||||
// content: '??????????????????->??(?????)->?????->??',
|
||||
// showCancel:false,
|
||||
// success: function (res) {
|
||||
// if (res.confirm) {
|
||||
// console.log('??????')
|
||||
// } else if (res.cancel) {
|
||||
// console.log('??????')
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// },
|
||||
// success:function (res) {
|
||||
// console.log("????");
|
||||
// recorderManager.start({
|
||||
// format: 'aac'
|
||||
// });
|
||||
// }
|
||||
// })
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
* ????
|
||||
*/
|
||||
|
||||
function stopRecord (){
|
||||
console.log("结束录音");
|
||||
// wx.authorize({
|
||||
// scope: 'scope.record',
|
||||
// fail: function (res) {
|
||||
// console.log("fail????");
|
||||
// },
|
||||
// success:function (res) {
|
||||
// console.log("stop????");
|
||||
|
||||
// }
|
||||
// })
|
||||
recorderManager.stop()
|
||||
}
|
||||
/***
|
||||
* ????
|
||||
*/
|
||||
function playRecord (src) {
|
||||
if(!innerAudioContext1){
|
||||
innerAudioContext1 = wx.createInnerAudioContext();
|
||||
}
|
||||
//var that = this;
|
||||
// var src = this.data.src;
|
||||
if (src == '') {
|
||||
console.log("????!");
|
||||
return;
|
||||
}
|
||||
innerAudioContext1.src = src;
|
||||
innerAudioContext1.play()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var Wxloginbutton;
|
||||
/**
|
||||
* ?????
|
||||
*/
|
||||
function initwxgame() {
|
||||
gameshow();
|
||||
gamehide();
|
||||
}
|
||||
//initwxgame();
|
||||
/**
|
||||
* ???????
|
||||
*/
|
||||
//function gameshow() {
|
||||
//wx.onShow(data => {
|
||||
//console.log("******" + data)
|
||||
//console.log(data)
|
||||
//wxgameshow(data);
|
||||
|
||||
//});
|
||||
//}
|
||||
function gameshow() {
|
||||
wx.onShow(function(data){
|
||||
console.log("******" + data)
|
||||
console.log(data)
|
||||
wxgameshow(data);
|
||||
|
||||
});
|
||||
}
|
||||
/**
|
||||
* ???????
|
||||
*/
|
||||
//function gamehide() {
|
||||
//wx.onHide(data => {
|
||||
//wxgamehide(data)
|
||||
|
||||
//});
|
||||
//}
|
||||
function gamehide() {
|
||||
wx.onHide(function(data){
|
||||
wxgamehide(data)
|
||||
|
||||
});
|
||||
}
|
||||
/*
|
||||
* ?????????
|
||||
* wxgamew ?????? wxgameh ?????? imagex ???????? imagey ???????? imagew???? imageh ???? btnimageurl ????
|
||||
*/
|
||||
function WXgameloginbuttonshow(wxgamew, wxgameh, imagex, imagey, imagew, imageh, btnimageurl) {
|
||||
|
||||
var winh, winw;
|
||||
try {
|
||||
|
||||
|
||||
wx.getSystemInfo({
|
||||
success: function (res) {
|
||||
console.log(res.model)
|
||||
console.log(res.pixelRatio)
|
||||
console.log(res.windowWidth)
|
||||
console.log(res.windowHeight)
|
||||
winh = res.windowHeight;
|
||||
winw = res.windowWidth;
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
var sh = winh / wxgameh;
|
||||
var sw = winw / wxgamew;
|
||||
console.log("sw=" + sw + "sh=" + sh);
|
||||
|
||||
imagew = parseInt(imagew * sw);
|
||||
imageh = parseInt(imageh * sh);
|
||||
imagex = parseInt(imagex * sw);
|
||||
imagey = parseInt(imagey * sh);;
|
||||
|
||||
|
||||
if (wx.createUserInfoButton) {
|
||||
|
||||
|
||||
if (Wxloginbutton) {
|
||||
console.log("??button");
|
||||
Wxloginbutton.show();
|
||||
Wxloginbutton.offTap();//????????
|
||||
|
||||
} else {
|
||||
|
||||
console.log("????button");
|
||||
// console.log(document.title);
|
||||
|
||||
Wxloginbutton = wx.createUserInfoButton({
|
||||
type: 'image',
|
||||
image: btnimageurl,
|
||||
style: {
|
||||
left: imagex,
|
||||
top: imagey,
|
||||
width: imagew,
|
||||
height: imageh
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
//Wxloginbutton.onTap((res) => {
|
||||
|
||||
|
||||
//console.log(res)
|
||||
//if (res.errMsg.indexOf('auth deny') > -1 || res.errMsg.indexOf('auth denied') > -1 || res.errMsg.indexOf('fail') > -1 ) {
|
||||
//wx.showModal({
|
||||
//title: '??',
|
||||
//content: '??????????????????->??(?????)->?????->??',
|
||||
//showCancel: false,
|
||||
//success: function (res) {
|
||||
//if (res.confirm) {
|
||||
//console.log('??????')
|
||||
//} else if (res.cancel) {
|
||||
//console.log('??????')
|
||||
//}
|
||||
//}
|
||||
//})
|
||||
//} else {
|
||||
//WXgameLogin(res);
|
||||
//}
|
||||
//})
|
||||
Wxloginbutton.onTap(function(res){
|
||||
|
||||
|
||||
console.log(res)
|
||||
if (res.errMsg.indexOf('auth deny') > -1 || res.errMsg.indexOf('auth denied') > -1 || res.errMsg.indexOf('fail') > -1 ) {
|
||||
wx.showModal({
|
||||
title: '??',
|
||||
content: '??????????????????->??(?????)->?????->??',
|
||||
showCancel: false,
|
||||
success: function (res) {
|
||||
if (res.confirm) {
|
||||
console.log('??????')
|
||||
} else if (res.cancel) {
|
||||
console.log('??????')
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
WXgameLogin(res);
|
||||
}
|
||||
})
|
||||
|
||||
} else {
|
||||
// ???????????????????????,???????
|
||||
console.log("????????");
|
||||
wx.showModal({
|
||||
title: '??',
|
||||
content: '????????,???????,??????????????',
|
||||
showCancel:false,
|
||||
success: function (res) {
|
||||
if (res.confirm) {
|
||||
console.log('??????')
|
||||
} else if (res.cancel) {
|
||||
console.log('??????')
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
}
|
||||
/**
|
||||
* ????????
|
||||
*/
|
||||
function WXgameloginbuttonhide() {
|
||||
if (Wxloginbutton) {
|
||||
Wxloginbutton.hide();
|
||||
}
|
||||
}
|
||||
|
||||
function Decrypt(key, iv, word) {
|
||||
// var openDataContext = wx.getOpenDataContext()
|
||||
// openDataContext.postMessage({
|
||||
// text: 'hello',
|
||||
// year: (new Date()).getFullYear()
|
||||
// })
|
||||
|
||||
var murl = "https://games.tscce.cn/wechatsmallgame/encrypt.php";
|
||||
var date = {};
|
||||
date.key = encodeURIComponent(key);
|
||||
date.type = "decrypt";
|
||||
date.iv = encodeURIComponent(iv);
|
||||
date.data = encodeURIComponent(word);
|
||||
|
||||
|
||||
wx.request({
|
||||
url: murl,
|
||||
data: date,
|
||||
method: 'POST',
|
||||
header: {
|
||||
"Content-Type": "application/x-www-form-urlencoded"
|
||||
},
|
||||
success: function (res) {
|
||||
if (res.statusCode == 200) {
|
||||
|
||||
if (res.data) {
|
||||
var mdata = decodeURIComponent(res.data);
|
||||
console.log('??------' + mdata)
|
||||
mdata = JSON.parse(mdata);
|
||||
|
||||
try {
|
||||
console.log("??");
|
||||
Wxloginbutton.hide();
|
||||
console.log("Wxloginbutton??");
|
||||
getwxuserinfo(mdata);
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
|
||||
// sharelogin(mdata.openId, mdata.avatarUrl, mdata.nickName, mdata.gender, mdata.city, mdata.province, mdata.unionId);
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
console.log('??!res.statusCode' + res.statusCode)
|
||||
}
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log('??!')
|
||||
}
|
||||
});
|
||||
}
|
||||
function WXgameLogin(uesrdata) {
|
||||
|
||||
// ??
|
||||
wx.login({
|
||||
|
||||
//success: res => {
|
||||
|
||||
//if (res.code) {
|
||||
//var murl = "https://games.tscce.cn/wechatsmallgame/code2accessToken.php?appid=wxaeeca8ffffa94105" +"&secret=639a292164680d4cd87a024edae21f41"+"&js_code="+res.code;
|
||||
|
||||
//console.log("????res.code=" + res.code);
|
||||
//wx.request({
|
||||
//url: murl,
|
||||
//method: 'GET',
|
||||
//header: {
|
||||
//'content-type': 'application/json'
|
||||
//},
|
||||
//success: function (res) {
|
||||
//console.log('??' + JSON.stringify(res));
|
||||
//console.log('res.statusCode' + res.statusCode);
|
||||
//if (res.statusCode == 200) {
|
||||
//var openid = res.data.openid;
|
||||
//var unionid = res.data.unionid;
|
||||
//var session_key = res.data.session_key;
|
||||
//Decrypt(session_key, uesrdata.iv, uesrdata.encryptedData);
|
||||
|
||||
//} else {
|
||||
//console.log('??!res.statusCode' + res.statusCode)
|
||||
//}
|
||||
//},
|
||||
//fail: function (res) {
|
||||
//console.log('??!')
|
||||
//}
|
||||
//});
|
||||
//}
|
||||
|
||||
//}
|
||||
success: function(res){
|
||||
|
||||
if (res.code) {
|
||||
var murl = "https://games.tscce.cn/wechatsmallgame/code2accessToken.php?appid=wxaeeca8ffffa94105" +"&secret=639a292164680d4cd87a024edae21f41"+"&js_code="+res.code;
|
||||
|
||||
console.log("????res.code=" + res.code);
|
||||
wx.request({
|
||||
url: murl,
|
||||
method: 'GET',
|
||||
header: {
|
||||
'content-type': 'application/json'
|
||||
},
|
||||
success: function (res) {
|
||||
console.log('??' + JSON.stringify(res));
|
||||
console.log('res.statusCode' + res.statusCode);
|
||||
if (res.statusCode == 200) {
|
||||
var openid = res.data.openid;
|
||||
var unionid = res.data.unionid;
|
||||
var session_key = res.data.session_key;
|
||||
Decrypt(session_key, uesrdata.iv, uesrdata.encryptedData);
|
||||
|
||||
} else {
|
||||
console.log('??!res.statusCode' + res.statusCode)
|
||||
}
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log('??!')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
/**
|
||||
* ?????????
|
||||
*/
|
||||
function initgameshareinfo(sharetitle, shareimageurl) {
|
||||
wx.showShareMenu({ withShareTicket: true });
|
||||
//wx.onShareAppMessage(data => {
|
||||
//return {
|
||||
//title: sharetitle,
|
||||
//imageUrl: shareimageurl,
|
||||
//query: '',
|
||||
//success: function (res) {
|
||||
//console.log(res);
|
||||
//console.log('??????');
|
||||
//sharegameinfo(1);
|
||||
//},
|
||||
//fail: function (res) {
|
||||
//console.log('??????');
|
||||
//console.log(res);
|
||||
//sharegameinfo(2);
|
||||
//}
|
||||
//}
|
||||
//})
|
||||
wx.onShareAppMessage(function(data){
|
||||
return {
|
||||
title: sharetitle,
|
||||
imageUrl: shareimageurl,
|
||||
query: '',
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
console.log('??????');
|
||||
sharegameinfo(1);
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log('??????');
|
||||
console.log(res);
|
||||
sharegameinfo(2);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
/**
|
||||
* ?????????
|
||||
*/
|
||||
function hidegameshareinfo(sharetitle, shareimageurl) {
|
||||
wx.hideShareMenu();
|
||||
|
||||
}
|
||||
/**
|
||||
* ??????
|
||||
*/
|
||||
function Pullupgameshare(sharetitle, shareimageurl) {
|
||||
wx.shareAppMessage({
|
||||
title: sharetitle,
|
||||
imageUrl: shareimageurl,
|
||||
query: "",
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
console.log('??????');
|
||||
sharegameinfo(1);
|
||||
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log('??????');
|
||||
console.log(res);
|
||||
sharegameinfo(2);
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* ???????
|
||||
*/
|
||||
function createGameClubButtonimage(mleft, mtop, mwidth, mheight) {
|
||||
var button = wx.createGameClubButton({
|
||||
type: 'image',
|
||||
icon: 'green',
|
||||
style: {
|
||||
left: mleft,
|
||||
top: mtop,
|
||||
width: mwidth,
|
||||
height: mheight
|
||||
}
|
||||
})
|
||||
}
|
||||
// var button = wx.createGameClubButton({
|
||||
// type: 'text',
|
||||
// icon: 'green',
|
||||
// style: {
|
||||
// left: 10,
|
||||
// top: 76,
|
||||
// width: 40,
|
||||
// height: 40
|
||||
// }
|
||||
// })
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
9860
codes/games/client/Projects/zpy/js/00_Surface/11_GameUI.js
Normal file
9860
codes/games/client/Projects/zpy/js/00_Surface/11_GameUI.js
Normal file
File diff suppressed because it is too large
Load Diff
2437
codes/games/client/Projects/zpy/js/00_Surface/12_Logic.js
Normal file
2437
codes/games/client/Projects/zpy/js/00_Surface/12_Logic.js
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,144 @@
|
||||
var Game_Config = Game_Config||{};//相关配置
|
||||
Game_Config.Debugger = {//调试配置
|
||||
isDebugger : false,// debugger模式下会将所有收发的包输出到控制台(正式发布改为false)
|
||||
AutoLogin : true,//debugger模式下是否需要记住登录状态自动登录(正式发布改为true)
|
||||
isSubmitError : false,//是否需要服务器收集错误信息调试时可根据需要(正式发布改为true)
|
||||
visitorLogin : true,//隐藏式游客登录
|
||||
visiblePay:true,//审核通过后是否显示支付按钮
|
||||
serverType:0,//0->正式服务器 1->测试服务器 2->本地服务器
|
||||
//gameserver:"http://ylyxservice1.tscce.cn/config/update_jsonv2.txt"//
|
||||
gameserver:"https://tsgames.daoqi88.cn/config/update_jsonv2.txt"//
|
||||
};
|
||||
|
||||
Game_Config.Max = {
|
||||
SumOfRoomtype:2,//创建时房间类型roomtype数组长度
|
||||
ShowChat:2000,//聊天停留时间
|
||||
PlayerCnt:4,//房间最大人数
|
||||
group:500,//游戏最大群组号
|
||||
showtime:10,//加载等待最少时间
|
||||
reconnecttime:30000,//唤醒游戏间隔(超过间隔断线重连)
|
||||
Mainnickname:20,//主界面玩家昵称显示长度(字符长度)
|
||||
Infonickname:16//个人信息显示长度(字符长度)
|
||||
};
|
||||
Game_Config.Combat = {
|
||||
height:80,//战绩页单行高度高度
|
||||
up_y:190,//战绩页裁剪y坐标
|
||||
bannerheight:60,//战绩横幅高度
|
||||
bannery:80,//战绩横幅Y左边(相对48精灵)
|
||||
btnbg:50
|
||||
};
|
||||
Game_Config.Info = {
|
||||
Mainnickname:6,//游戏主界面玩家信息显示最大长度(字符)
|
||||
textwidth_1:12.5,//聊天显示文字的宽度(未改动聊天显示文字大小无需改动无需修改)
|
||||
textwidth_2:12.5,//聊天显示文字的宽度(未改动聊天显示文字大小无需改动无需修改)
|
||||
otherPositionDefault:true,//其他主界面玩家信息(昵称、积分)是否采用默认对齐方式对齐居中点为头像中点
|
||||
myPositionDefault:true,//其他主界面玩家信息(昵称、积分)是否采用默认对齐方式对齐居中点为头像中点
|
||||
myPosition:130,//自己信息对齐点(根据游戏界面自行修改)
|
||||
position:[],//其他主界面玩家信息(昵称、积分)居中对齐的x坐标 注意是其他玩家不包括自己从下家开始
|
||||
TextContent:["嫩真好喂打牌!","打的恶过下特!","晓得的嫩狼打牌个!","快级出牌、快级出牌哦,等的压里!","笔想恰愣里!","有奖放奖和!","不好意思,等两分钟马上来!"],//常用语内容
|
||||
TextContentMp3:["","","","","","",""],//常用语对应音效
|
||||
|
||||
};
|
||||
Game_Config.Share={//分享参数
|
||||
appdownload:"",//下载链接(无需配置,从服务器获取)
|
||||
title:"Test",//(分享标题)
|
||||
description:"进贤棋牌欢乐无限",//分享描述;
|
||||
gameTitle:"",//游戏中的分享标题模板工程会自动将游戏名字分享出去、不必写在这个变量里(子游戏需要设置)
|
||||
gameDescription:""//游戏中分享描述(子游戏需要设置)
|
||||
};
|
||||
|
||||
Game_Config.Chat={//游戏内聊天配置信息
|
||||
LimitLength:40,//聊天最大长度(字节长度)
|
||||
textwidth:12.5,//聊天显示文字的宽度(未改动聊天显示文字大小无需改动无需修改)
|
||||
ChatDis:[30,12],//聊天气泡与内容的间隔0位置左右间隔(最好不要低于30)1位置上下间隔
|
||||
isLeft:[1,0,1,1,1],//聊天气泡是否为以左边为基准线
|
||||
ChatLoc:[[30,468],[1250,180],[755,11],[30,180],[175,315]]//聊天气泡的基准点位置(注意是基准点位置!)
|
||||
|
||||
};
|
||||
Game_Config.Voice={//游戏内聊天配置信息
|
||||
VoiceTime:600,//播放语音动画的时间一般情况无需无需修改
|
||||
VoiceDis:[30,12],//语音气泡与内容的间隔0位置左右间隔(最好不要低于30)1位置上下间隔
|
||||
isLeft:[1,0,0,1,1],//气泡是否为以左边为基准线
|
||||
VoiceLoc:[[132,529],[1250,242],[735,74],[132,244],[175,315]]//气泡的基准点位置(注意是基准点位置!)
|
||||
};
|
||||
Game_Config.Setting={
|
||||
Ads1:"本游戏仅为娱乐休\n闲使用,房卡所有\n游戏通用\n\n游戏问题请联系微\n 信公众号:\n",
|
||||
//Ads2:"\n 或客服号:\n",
|
||||
board:"",//从后台获取设置无效
|
||||
info:[" 客服信息","QQ:","手机:","微信:"],//客服QQ提醒
|
||||
board_blength:24,//通知页面一行最大字节数(无需设置)
|
||||
charge:"关注微信公众号充值",//充值提示
|
||||
//BtnLoc : [751,833]//音效设置界面两个按钮的x坐标点
|
||||
};
|
||||
Game_Config.Protocol={
|
||||
x:270,//协议图片初始x坐标
|
||||
y:70,//协议图片初始y坐标
|
||||
h:560,//协议图片显示高度
|
||||
w:729//协议图片显示宽度
|
||||
};
|
||||
Game_Config.Help={//帮助
|
||||
x:280,//帮助图片初始x坐标
|
||||
y:165,//帮助图片初始y坐标
|
||||
w:729,//帮助图片显示高度
|
||||
h:450//帮助图片显示宽度
|
||||
};
|
||||
Game_Config.Notice={//滚动公告
|
||||
x1:0,//无需设置
|
||||
x2:0,//无需设置
|
||||
y:0,//无需设置
|
||||
h:0,//无需设置
|
||||
//以上参数用来截取滚动公告的显示,截取位置是与滚动公告底大小位置一致
|
||||
speed:0.1,//滚动公告的滚动速度
|
||||
width:15//滚动公告的内容字体的字节长度(汉字是两个字节)
|
||||
};
|
||||
Game_Config.Feedback = {//反馈配置
|
||||
maxLen:250 //反馈内容最大长度
|
||||
};
|
||||
Game_Config.shakeList ={//摇一摇事件的回调ID、需要添加时在此处添加回调事件写在Utl_Input.js中的Utl.shakeEvent()中
|
||||
nil:0,
|
||||
startwar:1
|
||||
};
|
||||
Game_Config.soundList ={//声音资源名
|
||||
MenuSceneMusic:"00187.mp3",//大厅界面背景音
|
||||
MainSceneMusic:"00188.mp3"//游戏主界面背景音
|
||||
//Button:""//按钮音效
|
||||
};
|
||||
Game_Config.ClickButton = {//需要设置点击音效的按钮(只有有弹窗的按钮设置此音效有效、按钮已经设置好、子游戏不允许修改)
|
||||
src_1:"00203.mp3",//点击时播放的声音资源文件( 不需要播放则不填,下同)
|
||||
src_2:""//弹窗时播放的音效
|
||||
}
|
||||
Game_Config.MenuScene = {//主菜单界面
|
||||
|
||||
};
|
||||
Game_Config.loginButton = {//登录按钮信息
|
||||
x1:415,//非审核版本微信登录按钮x
|
||||
x2:113,//审核版本微信登录按钮x
|
||||
x3:488,//审核版本游客登录按钮x
|
||||
};
|
||||
|
||||
Game_Config.sysConfig = {
|
||||
mainMenuButton:false,//是否进入主菜单界面隐藏四个按钮
|
||||
mainScenePlayerInfo:false,//是否隐藏主界面玩家信息
|
||||
mainSceneButton:false,//是否隐藏主界面按钮
|
||||
shareRoom:false,//接受到星星场是否屏蔽平台框架显示
|
||||
changeSeat:false,//是否屏蔽平台自动刷新换座后界面
|
||||
hideNotice:false,//隐藏公告栏
|
||||
vipInfinite:false,//vip房是否默认开启无限局
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2265
codes/games/client/Projects/zpy/js/01_SubGame/01_SubGame_modify.js
Normal file
2265
codes/games/client/Projects/zpy/js/01_SubGame/01_SubGame_modify.js
Normal file
File diff suppressed because it is too large
Load Diff
1258
codes/games/client/Projects/zpy/js/01_SubGame/02_SubGame_Input.js
Normal file
1258
codes/games/client/Projects/zpy/js/01_SubGame/02_SubGame_Input.js
Normal file
File diff suppressed because it is too large
Load Diff
6
codes/games/client/Projects/zpy/js/Game_Surface_Event.js
Normal file
6
codes/games/client/Projects/zpy/js/Game_Surface_Event.js
Normal file
@@ -0,0 +1,6 @@
|
||||
//精灵事件单元...
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1074
codes/games/client/Projects/zpy/js/Record_playback.js
Normal file
1074
codes/games/client/Projects/zpy/js/Record_playback.js
Normal file
File diff suppressed because it is too large
Load Diff
47
codes/games/client/Projects/zpy/js/Zhaopengyou_Event.js
Normal file
47
codes/games/client/Projects/zpy/js/Zhaopengyou_Event.js
Normal file
@@ -0,0 +1,47 @@
|
||||
var chongl = function () {//重连
|
||||
if (get_self(149,37,0,0,0)==1) {
|
||||
if (jszt==0) {
|
||||
var shouzhen = [];
|
||||
for (var i =0;i<27;i++) {
|
||||
//if (get_self(1001+i,19,0,0,0)==584||get_self(1001+i,19,0,0,0)==503||get_self(1001+i,19,0,0,0)==550||get_self(1001+i,19,0,0,0)==469||get_self(i+1001,19,0,0,0)==531||get_self(i+1001,19,0,0,0)==565) {
|
||||
if (get_self(1001+i,19,0,0,0)==myCardPositionY1[0]
|
||||
||get_self(1001+i,19,0,0,0)==myCardPositionY1[1]
|
||||
||get_self(1001+i,19,0,0,0)==myCardPositionY2[0]
|
||||
||get_self(1001+i,19,0,0,0)==myCardPositionY2[1]
|
||||
) {
|
||||
if (get_self(1001+i,37,0,0,0)==1) {
|
||||
shouzhen.push(get_self(1001+i,43,0,0,0));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mypaizhen.length==shouzhen.length) {
|
||||
for (var i =0;i<mypaizhen.length;i++) {
|
||||
if (mypaizhen[i]!=shouzhen[i]) {
|
||||
Net.ws_tcp.close();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
Net.ws_tcp.close();
|
||||
}
|
||||
if (zhaopengyou_bianliang.pub.zhaopai +1 != get_self(1143,43,0,0,0)) {
|
||||
Net.ws_tcp.close();
|
||||
}
|
||||
if (get_self(1143,43,0,0,0)==55&&get_self(1143,37,0,0,0)==1) {
|
||||
Net.ws_tcp.close();
|
||||
}
|
||||
for (var i =0;i<zhaopengyou_bianliang.pub.shengli.length;i++) {
|
||||
if (zhaopengyou_bianliang.pub.shengli[i] == Utl.getMySeat()){
|
||||
cl_shengli = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
set_self(1190,57,0,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
114
codes/games/client/Projects/zpy/js/bianliang.js
Normal file
114
codes/games/client/Projects/zpy/js/bianliang.js
Normal file
@@ -0,0 +1,114 @@
|
||||
var bianliang = function () {
|
||||
|
||||
xp =0;//滑动控制
|
||||
chupaishu = [0,0,0,0];//打了几张牌
|
||||
paiju = {
|
||||
|
||||
};
|
||||
mypaizhen = [];//自己牌的帧数
|
||||
ts= 0;//第几次炸弹
|
||||
seat = 0;//出这手牌的人
|
||||
jushu = [];//第几局
|
||||
ren = -1;//重连的人
|
||||
yon = 0; //能不能打
|
||||
bipai = [];//比牌
|
||||
shijian = 30;//时间
|
||||
d = 0;//独的状态
|
||||
baozha = []; //自己有几个什么炸
|
||||
wsk = [[],[],[]];//510K
|
||||
jszt = -1;//结算状态
|
||||
tscp = 0;//出第几个提示牌
|
||||
fapai = 0;//发到第几张牌
|
||||
zhaopengyou_bianliang.pub.tishipai = [];//可以提示的id
|
||||
benlunpai = [];//本局所有牌
|
||||
xinxi = [];//昵称 头像
|
||||
zhuangqk = [];//庄的变化情况
|
||||
kaijupai = [];//4个人的开局牌
|
||||
roomcode = 0;//房间号
|
||||
myseat = 0;//座位号
|
||||
record_ju = [];//回放第几局
|
||||
single = 0;//几个人操作了独
|
||||
putcars = 0;//几个人操作了打牌
|
||||
boom_tishi = [];
|
||||
wsk_tishi = [];
|
||||
clds = null;//重连定时
|
||||
record_defen = [0,0,0,0];//回放得分
|
||||
record_jiang = [0,0,0,0];//回放奖
|
||||
record_dawan = [0,0,0,0];//回放打完
|
||||
zhaopengyou_bianliang.pub.dq_dapai = [[],[],[],[]];//显示的牌
|
||||
zhaopengyou_bianliang.pub.grade = [0,0,0,0];//得分情况
|
||||
zhaopengyou_bianliang.pub.zhuang = 0; //庄是谁
|
||||
zhaopengyou_bianliang.pub.zhaopai = 55;//找的牌
|
||||
zhaopengyou_bianliang.pub.pengyou = [[],[]];//对家
|
||||
zhaopengyou_bianliang.pub.shengli = [];//打完的人
|
||||
zhaopengyou_bianliang.pub.fen = [];//大局全部分
|
||||
zhaopengyou_bianliang.pub.defen = [0,0,0,0];//捡分
|
||||
zhaopengyou_bianliang.pub.jiang = [0,0,0,0];//奖
|
||||
zhaopengyou_bianliang.pub.shuangguan = 0;//双关
|
||||
zhaopengyou_bianliang.pub.zuidapai = [];//最大的牌
|
||||
zhaopengyou_bianliang.pub.kongzhiquan = 0;//控制权
|
||||
zhaopengyou_bianliang.pub.zhunbei = [0,0,0,0];//准备
|
||||
zhaopengyou_bianliang.pub.du = [-1,-1,-1,-1];//独
|
||||
zhaopengyou_bianliang.pub.chongguan = [0,0,0,0,0,0,0,0];//冲关
|
||||
zhaopengyou_bianliang.pub.pysx = 0;//朋友牌展现
|
||||
zhaopengyou_bianliang.pub.duozha = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]];//每个人几个什么炸
|
||||
zhaopengyou_bianliang.pub.jijiang = [0,0,0,0];//算奖几奖
|
||||
zhaopengyou_bianliang.pub.xiaojufen = [0,0,0,0];//本局得分
|
||||
zhaopengyou_bianliang.pub.leixing = [];//房间类型
|
||||
zhaopengyou_bianliang.pub.paiid = [];//牌id 0-107
|
||||
zhaopengyou_bianliang.pub.lipai = [];
|
||||
zhaopengyou_bianliang.pub.shengpai = [27,27,27,27];
|
||||
zhaopengyou_bianliang.pub.paixing = [];
|
||||
zhaopengyou_bianliang.pub.benju = 0;
|
||||
zhaopengyou_bianliang.pub.zhadanpai = [[],[],[],[]];//炸弹牌
|
||||
}
|
||||
// 理牌的精灵 需要标记画出 [[图片ID,[精灵ID,精灵ID。。。]]]
|
||||
var drawCards = [];
|
||||
var drawJiesuanCards1 = [];
|
||||
var drawJiesuanCards2 = [];
|
||||
var drawJiesuanCards3 = [];
|
||||
var drawJiesuanCards4 = [];
|
||||
var resetDraw = function(){
|
||||
drawCards = [];
|
||||
drawJiesuanCards1 = [];
|
||||
drawJiesuanCards2 = [];
|
||||
drawJiesuanCards3 = [];
|
||||
drawJiesuanCards4 = [];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
62
codes/games/client/Projects/zpy/js/bomb.js
Normal file
62
codes/games/client/Projects/zpy/js/bomb.js
Normal file
@@ -0,0 +1,62 @@
|
||||
|
||||
|
||||
|
||||
var zhadan = zhadan || {
|
||||
zhadanxianshi:function(){
|
||||
if (banben ==0) {
|
||||
this.wushik_jinxian();
|
||||
this.boom_jinxian();
|
||||
} else {
|
||||
this.wushik_chongren();
|
||||
this.boom_jinxian();
|
||||
}
|
||||
},
|
||||
wushik_jinxian : function(){
|
||||
wsk_tishi = cls_zhaopengyou_tishi.jinxian_ksw_tishi();
|
||||
for (var i = 0; i < wsk_tishi.length; i++) {
|
||||
wsk_tishi[i] = cls_zhaopengyou_aset.CardsToCardIds(wsk_tishi[i]);
|
||||
}
|
||||
if(wsk_tishi.length>0){
|
||||
set_self(1390,35,255,0,0);
|
||||
set_self(1390,41,1,0,0);
|
||||
}else{
|
||||
set_self(1390,35,150,0,0);
|
||||
set_self(1390,41,0,0,0);
|
||||
}
|
||||
},
|
||||
wushik_chongren : function(){
|
||||
wsk_tishi = cls_zhaopengyou_tishi.chongren_ksw_tishi();
|
||||
for (var i = 0; i < wsk_tishi.length; i++) {
|
||||
wsk_tishi[i] = cls_zhaopengyou_aset.CardsToCardIds(wsk_tishi[i]);
|
||||
}
|
||||
if(wsk_tishi.length>0){
|
||||
set_self(1390,35,255,0,0);
|
||||
set_self(1390,41,1,0,0);
|
||||
}else{
|
||||
set_self(1390,35,150,0,0);
|
||||
set_self(1390,41,0,0,0);
|
||||
}
|
||||
},
|
||||
boom_jinxian :function(){
|
||||
boom_tishi = cls_zhaopengyou_tishi.jinxian_tishi();
|
||||
for (var i = 0; i < boom_tishi.length; i++) {
|
||||
boom_tishi[i] = cls_zhaopengyou_aset.CardsToCardIds(boom_tishi[i]);
|
||||
}
|
||||
if(boom_tishi.length>0){
|
||||
set_self(1391,35,255,0,0);
|
||||
set_self(1391,41,1,0,0);
|
||||
}else{
|
||||
set_self(1391,35,150,0,0);
|
||||
set_self(1391,41,0,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
822
codes/games/client/Projects/zpy/js/cards.js
Normal file
822
codes/games/client/Projects/zpy/js/cards.js
Normal file
@@ -0,0 +1,822 @@
|
||||
var compare = function (a, b) {//比较大小
|
||||
var x=0;
|
||||
var y=0;
|
||||
if (a>=54) {
|
||||
a=a-54;
|
||||
}
|
||||
if (b>=54) {
|
||||
b=b-54;
|
||||
}
|
||||
var pai = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
||||
|
||||
x = pai[a];
|
||||
y = pai[b];
|
||||
|
||||
if (x < y) {//1
|
||||
if(x==1){
|
||||
if (y==2) {
|
||||
return 1;
|
||||
}
|
||||
else if (y>13) {
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
else if (x==2) {
|
||||
if (y>13) {
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else if (x > y) {//-1
|
||||
if(y==1){
|
||||
if (x==2) {
|
||||
return -1;
|
||||
}
|
||||
else if (x>13) {
|
||||
return -1;
|
||||
}
|
||||
else{
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
else if (y==2) {
|
||||
if (x>13) {
|
||||
return -1;
|
||||
}
|
||||
else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
else {//如相等 黑色花色在前
|
||||
if (a>b) {
|
||||
if (a+26>=52&&a+13<52) {//如果 a是红心
|
||||
if (a-26==b) {//如果b 是方块
|
||||
return -1;
|
||||
}
|
||||
else{
|
||||
return 1;
|
||||
}
|
||||
}else{
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
else if(a<b){
|
||||
if (b+26>=52&&b+13<52) {
|
||||
if (b-26==a) {
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
return -1;
|
||||
}
|
||||
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
} //左 上 右 打出来的牌 打出去多少牌
|
||||
var putcard = function (a, b, c , pai , shengpai , sheng) {//摆牌
|
||||
//if(pai[Utl.getMySeat()].length == 0){
|
||||
//set_self(1109,37,0,0,0);
|
||||
//}
|
||||
for(var i =0;i<4;i++){
|
||||
//如果我上轮之前就打完了
|
||||
if(zhaopengyou_bianliang.pub.shengli[i] == Utl.getMySeat()){
|
||||
if (pai[Utl.getMySeat()].length ==0) {
|
||||
for (var i = 0;i<27;i++) {
|
||||
set_self(i+1001,37,0,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//左
|
||||
for (var i = 0;i<27;i++) {
|
||||
set_self(i+1082,37,0,0,0);
|
||||
}
|
||||
|
||||
set_self(1188,7,shengpai[a]);
|
||||
if(shengpai[a]<=5&&shengpai[a]>0){
|
||||
set_self(1188,37,1,0,0);
|
||||
set_self(1215,37,1,0,0);
|
||||
}else{
|
||||
set_self(1188,37,0,0,0);
|
||||
set_self(1215,37,0,0,0);
|
||||
}
|
||||
|
||||
//中
|
||||
for (var i = 0;i<27;i++) {
|
||||
set_self(i+1055,37,0,0,0);
|
||||
}
|
||||
set_self(1187,7,shengpai[b]);
|
||||
if(shengpai[b]<=5&&shengpai[b]>0){
|
||||
set_self(1187,37,1,0,0);
|
||||
set_self(1214,37,1,0,0);
|
||||
}else{
|
||||
set_self(1187,37,0,0,0);
|
||||
set_self(1214,37,0,0,0);
|
||||
}
|
||||
|
||||
//右
|
||||
for (var i = 0;i<27;i++) {
|
||||
set_self(i+1028,37,0,0,0);
|
||||
}
|
||||
set_self(1186,7,shengpai[c]);
|
||||
if(shengpai[c]<=5&&shengpai[c]>0){
|
||||
set_self(1186,37,1,0,0);
|
||||
set_self(1192,37,1,0,0);
|
||||
}else{
|
||||
set_self(1186,37,0,0,0);
|
||||
set_self(1192,37,0,0,0);
|
||||
}
|
||||
if (pai[a].length == 0) {//左边
|
||||
//轮到出牌
|
||||
for (var i =0 ; i<27; i++) {
|
||||
set_self(i+1082,37,0,0,0);
|
||||
}
|
||||
set_self(1122,37,0,0,0);
|
||||
}else if(pai[a][0] == -2){//不要
|
||||
set_self(1122,37,1,0,0);
|
||||
}
|
||||
if(shengpai[a] == 0){//已经打完
|
||||
set_self(1215,37,0,0,0);
|
||||
set_self(1188,37,0,0,0);
|
||||
if (sheng[0]==a) {
|
||||
set_self(1137,37,1,0,0);
|
||||
set_self(1137,18,25,0,0);
|
||||
set_self(1137,19,190,0,0);
|
||||
}if (sheng[1]==a) {
|
||||
set_self(1138,37,1,0,0);
|
||||
set_self(1138,18,25,0,0);
|
||||
set_self(1138,19,190,0,0);
|
||||
}
|
||||
if (shengpai[a]==0) {//不是刚打完
|
||||
for (var i = 0; i<27; i++) {
|
||||
set_self(i+1082,37,0,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(pai[a][0] >= 0){
|
||||
for (var i = 0; i<pai[a].length; i++) {
|
||||
set_self(1082,19,256,0,0);
|
||||
set_self(i+1082,19,256,0,0);
|
||||
set_self(1082,18,135,0,0);
|
||||
set_self(i+1082,18,get_self(1082,18,0,0,0)+22*i,0,0);
|
||||
set_self(i+1082,43,pai[a][i]%54+1,0,0);
|
||||
set_self(i+1082,37,1,0,0);
|
||||
if (i>=9&&i<18) {
|
||||
set_self(1082+i,19,302,0,0);
|
||||
set_self(1091,18,135,0,0);
|
||||
set_self(i+1082,18,get_self(1091,18,0,0,0)+22*(i-9),0,0);
|
||||
set_self(i+1082,43,pai[a][i]%54+1,0,0);
|
||||
}
|
||||
else if (i>=18) {
|
||||
set_self(1082+i,19,346,0,0);
|
||||
set_self(1100,18,135,0,0);
|
||||
set_self(i+1082,18,get_self(1100,18,0,0,0)+22*(i-18),0,0);
|
||||
set_self(i+1082,43,pai[a][i]%54+1,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (pai[b].length == 0) {//上面
|
||||
for (var i = 0; i<27; i++) {
|
||||
set_self(i+1055,37,0,0,0);
|
||||
}
|
||||
set_self(1121,37,0,0,0);
|
||||
} else if(pai[b][0] == -2){
|
||||
set_self(1121,37,1,0,0);
|
||||
}
|
||||
if(shengpai[b] == 0){
|
||||
set_self(1184,37,0,0,0);
|
||||
set_self(1187,37,0,0,0);
|
||||
set_self(1214,37,0,0,0);
|
||||
if (sheng[0]==b) {
|
||||
set_self(1137,37,1,0,0);
|
||||
set_self(1137,18,755,0,0);
|
||||
set_self(1137,19,20,0,0);
|
||||
}if (sheng[1]==b) {
|
||||
set_self(1138,37,1,0,0);
|
||||
set_self(1138,18,755,0,0);
|
||||
set_self(1138,19,20,0,0);
|
||||
}
|
||||
if (pai[b].length==1) {
|
||||
for (var i = 0; i<27; i++) {
|
||||
set_self(i+1055,37,0,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(pai[b][0] >= 0){
|
||||
for (var i = 0; i<pai[b].length; i++) {
|
||||
if (pai[b].length<=9) {
|
||||
set_self(1055,18,685-22*(pai[b].length-1),0,0);
|
||||
}else{
|
||||
set_self(1055,18,685-22*8,0,0);
|
||||
}
|
||||
set_self(1055,19,75+55,0,0);
|
||||
set_self(i+1055,19,75+55,0,0);
|
||||
set_self(i+1055,18,get_self(1055,18,0,0,0)+22*i,0,0);
|
||||
set_self(i+1055,43,pai[b][i]%54+1,0,0);
|
||||
set_self(i+1055,37,1,0,0);
|
||||
if (i>=9&&i<18) {
|
||||
if (pai[b].length<=18) {
|
||||
set_self(1064,18,685-22*(pai[b].length-9-1),0,0);
|
||||
}else{
|
||||
set_self(1064,18,685-22*8,0,0);
|
||||
}
|
||||
set_self(1055+i,19,119+55,0,0);
|
||||
set_self(i+1055,18,get_self(1064,18,0,0,0)+22*(i-9),0,0);
|
||||
set_self(i+1055,43,pai[b][i]%54+1,0,0);
|
||||
}
|
||||
else if (i>=18) {
|
||||
set_self(1073,18,685-22*(pai[b].length-18-1),0,0);
|
||||
set_self(1055+i,19,163+55,0,0);
|
||||
set_self(i+1055,18,get_self(1073,18,0,0,0)+22*(i-18),0,0);
|
||||
set_self(i+1055,43,pai[b][i]%54+1,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (pai[c].length == 0){//右边
|
||||
for (var i = 0; i<27; i++) {
|
||||
set_self(i+1028,37,0,0,0);
|
||||
}
|
||||
set_self(1120,37,0,0,0);
|
||||
}else if(pai[c][0] == -2){
|
||||
set_self(1120,37,1,0,0);
|
||||
}
|
||||
if(shengpai[c] == 0){
|
||||
set_self(1183,37,0,0,0);
|
||||
set_self(1186,37,0,0,0);
|
||||
set_self(1192,37,0,0,0);
|
||||
if (sheng[0]==c) {
|
||||
set_self(1137,37,1,0,0);
|
||||
set_self(1137,18,1170,0,0);
|
||||
set_self(1137,19,190,0,0);
|
||||
}if (sheng[1]==c) {
|
||||
set_self(1138,37,1,0,0);
|
||||
set_self(1138,18,1170,0,0);
|
||||
set_self(1138,19,190,0,0);
|
||||
}
|
||||
if (pai[c].length==1) {
|
||||
for (var i = 0; i<27; i++) {
|
||||
set_self(i+1028,37,0,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(pai[c][0] >= 0){
|
||||
for (var i = 0; i<pai[c].length; i++) {
|
||||
set_self(i+1028,37,1,0,0);
|
||||
set_self(i+1028,19,256,0,0);
|
||||
if (pai[c].length<=9) {
|
||||
set_self(1028,18,1099-22*(pai[c].length-1),0,0);
|
||||
}else{
|
||||
set_self(1028,18,1099-22*8,0,0);
|
||||
}
|
||||
|
||||
set_self(i+1028,18,get_self(1028,18,0,0,0)+22*i,0,0);
|
||||
set_self(i+1028,43,pai[c][i]%54+1,0,0);
|
||||
if (i>=9&&i<18) {
|
||||
if (pai[c].length<=18) {
|
||||
set_self(1037,18,1099-22*(pai[c].length-9-1),0,0);
|
||||
}else{
|
||||
set_self(1037,18,1099-22*8,0,0);
|
||||
}
|
||||
set_self(i+1028,19,302,0,0);
|
||||
set_self(i+1028,18,get_self(1037,18,0,0,0)+22*(i-9),0,0);
|
||||
set_self(i+1028,43,pai[c][i]%54+1,0,0);
|
||||
}
|
||||
if (i>=18) {
|
||||
set_self(1046,18,1099-22*(pai[c].length-18-1),0,0);
|
||||
set_self(i+1028,19,346,0,0);
|
||||
set_self(i+1028,18,get_self(1046,18,0,0,0)+22*(i-18),0,0);
|
||||
set_self(i+1028,43,pai[c][i]%54+1,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
var zijipai = function (d,pai,sheng,zijip,shengpai) {
|
||||
|
||||
//打出去的摆拍
|
||||
if (pai.length == 0){//自己
|
||||
for (var i = 0; i<27; i++) {
|
||||
if (get_self(i+1001,19,0,0,0)==370) {
|
||||
set_self(i+1001,37,0,0,0);
|
||||
}
|
||||
}
|
||||
set_self(1109,37,0,0,0);
|
||||
}else if(pai[0] == -2){
|
||||
for (var i = 0; i<27; i++) {
|
||||
if (get_self(i+1001,19,0,0,0)==370) {
|
||||
set_self(i+1001,37,0,0,0);
|
||||
}
|
||||
}
|
||||
set_self(1109,37,1,0,0);
|
||||
var bj =0;
|
||||
for (var i =0;i<4;i++) {
|
||||
if(zhaopengyou_bianliang.pub.dq_dapai[i]<0){
|
||||
bj = bj+1;
|
||||
}
|
||||
}
|
||||
if (bj==4) {
|
||||
set_self(1109,37,0,0,0);
|
||||
}
|
||||
}
|
||||
if(shengpai[d] == 0){
|
||||
if (sheng[0]==d) {
|
||||
set_self(1137,37,1,0,0);
|
||||
set_self(1137,18,25,0,0);
|
||||
set_self(1137,19,481,0,0);
|
||||
}if (sheng[1]==d) {
|
||||
set_self(1138,37,1,0,0);
|
||||
set_self(1138,18,25,0,0);
|
||||
set_self(1138,19,481,0,0);
|
||||
}
|
||||
if (pai.length==0) {
|
||||
for (var i = 0; i<27; i++) {
|
||||
set_self(i+1001,37,0,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var i = 0; i<27; i++) {
|
||||
set_self(i+1001,37,0,0,0);
|
||||
}
|
||||
if(pai.length>0 && pai[0]!=-2){
|
||||
for (var i = 0; i<pai.length; i++) {
|
||||
set_self(i+1028-(pai.length+zijip.length),37,1,0,0);
|
||||
set_self(i+1028-(pai.length+zijip.length),20,50,0,0);
|
||||
set_self(i+1028-(pai.length+zijip.length),21,70,0,0);
|
||||
set_self(i+1028-(pai.length+zijip.length),19,370,0,0);
|
||||
set_self(1028-(pai.length+zijip.length),18,630-22*pai.length/2,0,0);
|
||||
set_self(i+1028-(pai.length+zijip.length),18,get_self(1028-(pai.length+zijip.length),18,0,0,0)+22*i,0,0);
|
||||
set_self(i+1028-(pai.length+zijip.length),43,pai[i]%54+1,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//手上的摆拍
|
||||
for(var i = 0;i<27;i++){
|
||||
if (get_self(1001+i,19,0,0,0)>=myCardPositionY2[0]) {
|
||||
set_self(1001+i,37,0,0,0);
|
||||
}
|
||||
}
|
||||
if (banben ==0) {
|
||||
//if (zijip.length<=20) {
|
||||
//for (var i = 0; i < zijip.length; i++) {
|
||||
//set_self(1028-zijip.length+i,37,1,0,0);
|
||||
//set_self(1028-zijip.length+i,19,584,0,0);
|
||||
//set_self(1028-zijip.length,18,638-49*zijip.length/2,0,0);
|
||||
//set_self(1028-zijip.length+i,18,get_self(1028-zijip.length,18,0,0,0)+49*i,0,0);
|
||||
//}
|
||||
//}
|
||||
//if (zijip.length>20) {
|
||||
//for (var i = 0; i < zijip.length-20; i++) {
|
||||
//set_self(1028-zijip.length+i,37,1,0,0);
|
||||
//set_self(1028-zijip.length+i,19,503,0,0);
|
||||
//set_self(1028-zijip.length,18,1079-49*(zijip.length-20-1),0,0);
|
||||
//set_self(1028-zijip.length+i,18,get_self(1028-zijip.length,18,0,0,0)+49*i,0,0);
|
||||
//}
|
||||
//for (var i = zijip.length-20; i < zijip.length; i++) {
|
||||
//set_self(1028-zijip.length+i,37,1,0,0);
|
||||
//set_self(1028-zijip.length+i,19,584,0,0);
|
||||
//set_self(1008,18,148,0,0);
|
||||
//set_self(1028-zijip.length+i,18,get_self(1008,18,0,0,0)+49*(i-(zijip.length-20)),0,0);
|
||||
//}
|
||||
//}
|
||||
updateMyHandCards2(zijip);
|
||||
} else if (banben ==1) {
|
||||
for (var i = 0; i < zijip.length; i++) {
|
||||
set_self(1028-zijip.length+i,37,1,0,0);
|
||||
set_self(1028-zijip.length+i,19,565,0,0);
|
||||
set_self(1028-zijip.length,18,623-36*zijip.length/2,0,0);
|
||||
set_self(1028-zijip.length+i,18,get_self(1028-zijip.length,18,0,0,0)+36*i,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
for(var i=0;i<27-zijip.length;i++){
|
||||
set_self(1001+i,19,370,0,0);
|
||||
}
|
||||
againsort(sort_ow);
|
||||
}
|
||||
|
||||
var oper = function (a,pai) {//操作权
|
||||
set_group(202,37,1,0,0);//set_level(102,1);
|
||||
set_self(1145,37,0,0,0);
|
||||
set_self(1182,37,0,0,0);
|
||||
set_self(1191,37,0,0,0);
|
||||
for (var i = 0; i<27; i++) {
|
||||
if (get_self(i+1001,19,0,0,0)==370) {
|
||||
set_self(i+1001,37,0,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
set_self(1109,37,0,0,0);
|
||||
set_self(1152,18,819,0,0);
|
||||
set_self(1152,41,0,0,0);
|
||||
set_self(1152,35,100,0,0);
|
||||
switch (a){
|
||||
case 0:
|
||||
if (pai[1]<-1||pai[1].length==0) {
|
||||
if (pai[2]<-1||pai[2].length==0) {
|
||||
if (pai[3]<-1||pai[3].length==0) {
|
||||
set_self(1153,37,0,0,0);
|
||||
set_self(1392,37,0,0,0);
|
||||
set_self(1120,37,0,0,0);
|
||||
set_self(1121,37,0,0,0);
|
||||
set_self(1122,37,0,0,0);
|
||||
set_self(1152,18,570,0,0);
|
||||
zhaopengyou_bianliang.pub.zuidapai =[];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
set_self(1153,37,1,0,0);
|
||||
set_self(1392,37,1,0,0);
|
||||
|
||||
break;
|
||||
case 1:
|
||||
if (pai[0]<-1||pai[0].length==0) {
|
||||
if (pai[2]<-1||pai[2].length==0) {
|
||||
if (pai[3]<-1||pai[3].length==0) {
|
||||
set_self(1153,37,0,0,0);
|
||||
set_self(1392,37,0,0,0);
|
||||
set_self(1120,37,0,0,0);
|
||||
set_self(1121,37,0,0,0);
|
||||
set_self(1122,37,0,0,0);
|
||||
set_self(1152,18,570,0,0);
|
||||
zhaopengyou_bianliang.pub.zuidapai =[];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
set_self(1153,37,1,0,0);
|
||||
set_self(1392,37,1,0,0);
|
||||
break;
|
||||
case 2:
|
||||
if (pai[1]<-1||pai[1].length==0) {
|
||||
if (pai[0]<-1||pai[0].length==0) {
|
||||
if (pai[3]<-1||pai[3].length==0) {
|
||||
set_self(1153,37,0,0,0);
|
||||
set_self(1392,37,0,0,0);
|
||||
set_self(1120,37,0,0,0);
|
||||
set_self(1121,37,0,0,0);
|
||||
set_self(1122,37,0,0,0);
|
||||
set_self(1152,18,570,0,0);
|
||||
zhaopengyou_bianliang.pub.zuidapai =[];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}set_self(1153,37,1,0,0);
|
||||
set_self(1392,37,1,0,0);
|
||||
break;
|
||||
case 3:
|
||||
if (pai[1]<-1||pai[1].length==0) {
|
||||
if (pai[2]<-1||pai[2].length==0) {
|
||||
if (pai[0]<-1||pai[0].length==0) {
|
||||
set_self(1153,37,0,0,0);
|
||||
set_self(1392,37,0,0,0);
|
||||
set_self(1120,37,0,0,0);
|
||||
set_self(1121,37,0,0,0);
|
||||
set_self(1122,37,0,0,0);
|
||||
set_self(1152,18,570,0,0);
|
||||
zhaopengyou_bianliang.pub.zuidapai =[];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}set_self(1153,37,1,0,0);
|
||||
set_self(1392,37,1,0,0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
for (var i =0;i<27;i++) {
|
||||
// if (get_self(i+1001,19,0,0,0)==550||get_self(i+1001,19,0,0,0)==469||get_self(i+1001,19,0,0,0)==531) {
|
||||
if (get_self(i+1001,19,0,0,0)==myCardPositionY1[0]||get_self(i+1001,19,0,0,0)==myCardPositionY2[0]||get_self(i+1001,19,0,0,0)==531) {
|
||||
set_self(1152,41,1,0,0);
|
||||
set_self(1152,35,255,0,0);
|
||||
break;
|
||||
}else{
|
||||
set_self(1152,41,0,0,0);
|
||||
set_self(1152,35,100,0,0);
|
||||
}
|
||||
}
|
||||
if (banben==1) {
|
||||
set_self(1393,37,0,0,0);
|
||||
}else{
|
||||
if (zhaopengyou_bianliang.pub.tishipai.length==0&&get_self(1153,37,0,0,0)==1) {
|
||||
set_self(1393,37,1,0,0);
|
||||
}else{
|
||||
set_self(1393,37,0,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//本局总打出的牌,本局自己全部牌,自己 ,打完的人,要显示的牌, 自己的要显示牌
|
||||
var chonglian = function(cl_dapai,zijip,seat,shengl,xianshipai){//重连
|
||||
//排位子
|
||||
zijip.sort(compare);
|
||||
for (var i=0;i<27;i++) {
|
||||
if (zijip[i]>=54) {
|
||||
zijip[i]=zijip[i]-54;
|
||||
}
|
||||
}
|
||||
//自己 要显示的牌 打完的人 自己的要显示牌
|
||||
zijipai(seat,xianshipai[seat],zhaopengyou_bianliang.pub.shengli,zijip);
|
||||
}
|
||||
|
||||
|
||||
//var chonglianzhuang = function(zhuang,seat){//庄的位置
|
||||
//set_self(1146,20,40,0,0);
|
||||
//set_self(1146,21,40,0,0);
|
||||
//set_self(1146,37,1,0,0);
|
||||
//switch (zhuang){
|
||||
//case 0:
|
||||
//switch (seat){
|
||||
//case 0 :
|
||||
//set_self(1146,18,34,0,0);
|
||||
//set_self(1146,19,533-40,0,0);
|
||||
//break;
|
||||
//case 1 :
|
||||
//set_self(1146,18,140,0,0);
|
||||
//set_self(1146,19,200,0,0);
|
||||
//break;
|
||||
//case 2 :
|
||||
//set_self(1146,18,730-40,0,0);
|
||||
//set_self(1146,19,40,0,0);
|
||||
//break;
|
||||
//case 3 :
|
||||
//set_self(1146,18,1145-40,0,0);
|
||||
//set_self(1146,19,200,0,0);
|
||||
//break;
|
||||
//default:
|
||||
//break;
|
||||
//}
|
||||
//break;
|
||||
//case 1:
|
||||
//switch (seat){
|
||||
//case 1 :
|
||||
//set_self(1146,18,34,0,0);
|
||||
//set_self(1146,19,533-40,0,0);
|
||||
//break;
|
||||
//case 2 :
|
||||
//set_self(1146,18,140,0,0);
|
||||
//set_self(1146,19,200,0,0);
|
||||
//break;
|
||||
//case 3 :
|
||||
//set_self(1146,18,730-40,0,0);
|
||||
//set_self(1146,19,40,0,0);
|
||||
//break;
|
||||
//case 0 :
|
||||
//set_self(1146,18,1145-40,0,0);
|
||||
//set_self(1146,19,200,0,0);
|
||||
//break;
|
||||
//default:
|
||||
//break;
|
||||
//}
|
||||
//break;
|
||||
//case 2:
|
||||
//switch (seat){
|
||||
//case 2 :
|
||||
//set_self(1146,18,34,0,0);
|
||||
//set_self(1146,19,533-40,0,0);
|
||||
//break;
|
||||
//case 1 :
|
||||
//set_self(1146,18,140,0,0);
|
||||
//set_self(1146,19,200,0,0);
|
||||
//break;
|
||||
//case 0 :
|
||||
//set_self(1146,18,730-40,0,0);
|
||||
//set_self(1146,19,40,0,0);
|
||||
//break;
|
||||
//case 3 :
|
||||
//set_self(1146,18,1145-40,0,0);
|
||||
//set_self(1146,19,200,0,0);
|
||||
//break;
|
||||
//default:
|
||||
//break;
|
||||
//}
|
||||
//break;
|
||||
//case 3:
|
||||
//switch (seat){
|
||||
//case 3 :
|
||||
//set_self(1146,18,34,0,0);
|
||||
//set_self(1146,19,533-40,0,0);
|
||||
//break;
|
||||
//case 2 :
|
||||
//set_self(1146,18,140,0,0);
|
||||
//set_self(1146,19,200,0,0);
|
||||
//break;
|
||||
//case 1 :
|
||||
//set_self(1146,18,730-40,0,0);
|
||||
//set_self(1146,19,40,0,0);
|
||||
//break;
|
||||
//case 0 :
|
||||
//set_self(1146,18,1145-40,0,0);
|
||||
//set_self(1146,19,200,0,0);
|
||||
//break;
|
||||
//default:
|
||||
//break;
|
||||
//}
|
||||
//break;
|
||||
//default:
|
||||
//break;
|
||||
//}
|
||||
//}
|
||||
//自己 要显示的牌 打完的人 本局自己全部牌 本局总打出的牌 自己的要显示牌
|
||||
var chonglianziji = function(d,dq_pai,shengl,zijip,cl_dapai,xianshipai){//庄的位置
|
||||
//打出去的摆拍
|
||||
if (dq_pai[0]==-1){//自己
|
||||
for (var i = 0; i<27; i++) {
|
||||
if (get_self(i+1001,19,0,0,0)<350) {
|
||||
set_self(i+1001,37,0,0,0);
|
||||
|
||||
}
|
||||
}
|
||||
set_self(1109,37,0,0,0);
|
||||
oper(Utl.getMySeat(),xianshipai);
|
||||
for (var i = 0; i<27-zijip.length; i++) {
|
||||
set_self(1001+i,37,0,0,0);
|
||||
}
|
||||
}else if(dq_pai[0] == -2){
|
||||
set_self(1109,37,1,0,0);
|
||||
}else if(dq_pai[0] == -3){
|
||||
if (shengl[0]==d) {
|
||||
set_self(1137,37,1,0,0);
|
||||
set_self(1137,18,550,0,0);
|
||||
set_self(1137,19,500,0,0);
|
||||
}if (shengl[1]==d) {
|
||||
set_self(1138,37,1,0,0);
|
||||
set_self(1138,18,550,0,0);
|
||||
set_self(1138,19,500,0,0);
|
||||
}
|
||||
if (dq_pai.length==1) {
|
||||
for (var i = 0; i<27; i++) {
|
||||
set_self(i+1001,37,0,0,0);
|
||||
}
|
||||
}else{
|
||||
|
||||
updateMyPutCards(dq_pai);
|
||||
}
|
||||
}else{
|
||||
|
||||
updateMyPutCards(dq_pai);
|
||||
}
|
||||
//手上的摆拍
|
||||
if (d==Utl.getMySeat()) {
|
||||
var shengpaishu = [];
|
||||
var changdu = 27-cl_dapai[Utl.getMySeat()].length;
|
||||
//隐藏之前打过的牌
|
||||
for (var i = dq_pai.length; i < 27-changdu; i++) {
|
||||
set_self(1001+i,19,myPutCardY,0,0);
|
||||
set_self(1001+i,37,0,0,0);
|
||||
|
||||
}
|
||||
//剩下牌少于20张
|
||||
if (changdu<=20) {
|
||||
for (var i = 0; i < changdu; i++) {
|
||||
set_self(1028-changdu,18,638-49*changdu/2,0,0);
|
||||
set_self(1028-changdu+i,18,get_self(1028-changdu,18,0,0,0)+49*i,0,0);
|
||||
set_self(1028-changdu+i,19,584,0,0);
|
||||
}
|
||||
}
|
||||
//剩下牌大于20张
|
||||
if (changdu>20) {
|
||||
for (var i = 0; i < changdu-20; i++) {
|
||||
set_self(1028-changdu,18,1079-49*(changdu-20-1),0,0);
|
||||
set_self(1028-changdu+i,18,get_self(1028-changdu,18,0,0,0)+49*i,0,0);
|
||||
set_self(1028-changdu+i,19,503,0,0);
|
||||
|
||||
}
|
||||
for (var i = changdu-20; i < changdu; i++) {
|
||||
set_self(1028-(changdu-(changdu-20)),18,148,0,0);
|
||||
set_self(1028-changdu+i,18,get_self(1028-(changdu-(changdu-20)),18,0,0,0)+49*(i-(changdu-20)),0,0);
|
||||
set_self(1028-changdu+i,19,584,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function set_draw (num,id,weizhi,len) {
|
||||
set_self(id,18,weizhi - (ifast_inttostr(num).length - 1)*len/2,0,0);
|
||||
set_self(id,20,len*ifast_inttostr(num).length,0,0);
|
||||
set_self(id,7,num);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
345
codes/games/client/Projects/zpy/js/class/arithmetic.js
Normal file
345
codes/games/client/Projects/zpy/js/class/arithmetic.js
Normal file
@@ -0,0 +1,345 @@
|
||||
var cls_zhaopengyou_tishi = cls_zhaopengyou_tishi ||{
|
||||
jinxian_tishi : function(){
|
||||
var zuixiaopai = null;
|
||||
var zuidapai = null;
|
||||
var tishipai = [];
|
||||
tishipai = this.jinxian_tishizha(4);
|
||||
return tishipai;
|
||||
},
|
||||
jinxian_tishizha: function(a){
|
||||
var tishipai = [];
|
||||
var wangtishi = this.wang_tishi();
|
||||
var wsktishi = this.jinxian_ksw_tishi();
|
||||
// 先除去理牌
|
||||
|
||||
var lp = zhaopengyou_bianliang.pub.lipai.concat();
|
||||
|
||||
var paiidcpy = zhaopengyou_bianliang.pub.paiid.concat();
|
||||
var pxList = [];
|
||||
var paiList = [];
|
||||
// 手牌中去掉理牌后剩下的牌
|
||||
for(var i=0;i<lp.length;i++){
|
||||
//将牌id列表转换成牌对象列表
|
||||
var dq_dapai = cls_zhaopengyou_aset.CardIdsToCards(paiju, lp[i]);
|
||||
//排序
|
||||
dq_dapai = cls_zhaopengyou_card.SortCardList(dq_dapai)
|
||||
//获取牌型
|
||||
var px = cls_zhaopengyou_paixing.jinxian_zhaopengyou(dq_dapai);
|
||||
// 特殊牌
|
||||
if (dq_dapai.length == 3 || dq_dapai.length == 4 || dq_dapai.length >= 9) {
|
||||
if (banben == 0) {
|
||||
var teshupai = ksw_zhaopengyou.jinxian(dq_dapai);
|
||||
if (teshupai.length) {
|
||||
px = teshupai;
|
||||
put = true;
|
||||
}
|
||||
} else {
|
||||
var teshupai = ksw_zhaopengyou.chongren(dq_dapai);
|
||||
if (teshupai.length) {
|
||||
px = teshupai;
|
||||
put = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 是否为炸弹
|
||||
|
||||
if(px[0][0]>=4 && px[0][1] == 1){
|
||||
pxList.push(px);
|
||||
paiList.push(dq_dapai);
|
||||
}
|
||||
for(var k=0;k<lp[i].length;k++){
|
||||
for(var j=0;j<paiidcpy.length;j++){
|
||||
if(lp[i][k] == paiidcpy[j]){
|
||||
paiidcpy.splice(j,1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var pai = cls_zhaopengyou_aset.CardIdsToCards(paiju, paiidcpy);
|
||||
for (var i = a; i <= 8; i++) {
|
||||
var tishizha = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(pai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,不拆牌,取所有情况] 起始牌
|
||||
[i,1], [0,0,0,0], null,null);
|
||||
|
||||
for (var l = 0; l < tishizha.length; l++) {
|
||||
tishipai.push(tishizha[l]);
|
||||
}
|
||||
if (i == 5 && wangtishi.length == 3) {
|
||||
tishipai.push(wangtishi);
|
||||
}
|
||||
}
|
||||
if (wangtishi.length == 4) {
|
||||
tishipai.push(wangtishi);
|
||||
}
|
||||
// 将理牌加入提示牌中
|
||||
|
||||
for(var i=0;i<pxList.length;i++){
|
||||
var paixing = pxList[i];
|
||||
var found = false;
|
||||
// console.log('paixing');
|
||||
// console.log(paixing);
|
||||
for(var j=0;j<tishipai.length;j++){
|
||||
|
||||
var dq_dapai = tishipai[j];
|
||||
|
||||
var px = cls_zhaopengyou_paixing.jinxian_zhaopengyou(dq_dapai);
|
||||
|
||||
if (dq_dapai.length == 3 || dq_dapai.length == 4 || dq_dapai.length >= 9) {
|
||||
if (banben == 0) {
|
||||
var teshupai = ksw_zhaopengyou.jinxian(dq_dapai);
|
||||
if (teshupai.length) {
|
||||
px = teshupai;
|
||||
put = true;
|
||||
}
|
||||
} else {
|
||||
var teshupai = ksw_zhaopengyou.chongren(dq_dapai);
|
||||
if (teshupai.length) {
|
||||
px = teshupai;
|
||||
put = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var p = cls_zhaopengyou_paixing.bipai_zhaopengyou(px, paixing, px[1][0][4], paixing[1][0][4], dq_dapai.length, zhaopengyou_bianliang.pub.zuidapai.length, zhaopengyou_bianliang.pub.paiid.length - dq_dapai.length);
|
||||
|
||||
if(p){
|
||||
found = true;
|
||||
tishipai.splice(j,0,paiList[i]);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if(!found){
|
||||
tishipai.push(paiList[i]);
|
||||
}
|
||||
}
|
||||
return tishipai;
|
||||
},
|
||||
wang_tishi :function(){
|
||||
var wang = [];
|
||||
var pai = cls_zhaopengyou_aset.CardIdsToCards(paiju, zhaopengyou_bianliang.pub.paiid);
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
if (pai[i][4] == 53 || pai[i][4] == 54) {
|
||||
wang.push(pai[i]);
|
||||
}
|
||||
}
|
||||
return wang;
|
||||
},
|
||||
jinxian_ksw_tishi: function(){
|
||||
var wu = [];
|
||||
var shi = [];
|
||||
var kai = [];
|
||||
var tishipai = [];
|
||||
// TODO: 理牌中的510K没有加入到510K的提示中
|
||||
var lp = zhaopengyou_bianliang.pub.lipai.concat();
|
||||
|
||||
var paiidcpy = zhaopengyou_bianliang.pub.paiid.concat();
|
||||
var pxList = [];
|
||||
var paiList = [];
|
||||
// 手牌中去掉理牌后剩下的牌
|
||||
for(var i=0;i<lp.length;i++){
|
||||
//将牌id列表转换成牌对象列表
|
||||
var dq_dapai = cls_zhaopengyou_aset.CardIdsToCards(paiju, lp[i]);
|
||||
//排序
|
||||
dq_dapai = cls_zhaopengyou_card.SortCardList(dq_dapai)
|
||||
//获取牌型
|
||||
var px = cls_zhaopengyou_paixing.jinxian_zhaopengyou(dq_dapai);
|
||||
// 特殊牌
|
||||
if (dq_dapai.length == 3 || dq_dapai.length == 4 || dq_dapai.length >= 9) {
|
||||
if (banben == 0) {
|
||||
var teshupai = ksw_zhaopengyou.jinxian(dq_dapai);
|
||||
if (teshupai.length) {
|
||||
px = teshupai;
|
||||
put = true;
|
||||
}
|
||||
} else {
|
||||
var teshupai = ksw_zhaopengyou.chongren(dq_dapai);
|
||||
if (teshupai.length) {
|
||||
px = teshupai;
|
||||
put = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 是否为炸弹
|
||||
|
||||
if(px[0][0]>=4 && px[0][1] == 1){
|
||||
pxList.push(px);
|
||||
paiList.push(dq_dapai);
|
||||
}
|
||||
for(var k=0;k<lp[i].length;k++){
|
||||
for(var j=0;j<paiidcpy.length;j++){
|
||||
if(lp[i][k] == paiidcpy[j]){
|
||||
paiidcpy.splice(j,1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var pai = cls_zhaopengyou_aset.CardIdsToCards(paiju, paiidcpy);
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
switch (pai[i][4]){
|
||||
case 5:
|
||||
wu.push(pai[i]);
|
||||
tishipai.push(pai[i]);
|
||||
break;
|
||||
case 10:
|
||||
shi.push(pai[i]);
|
||||
tishipai.push(pai[i]);
|
||||
break;
|
||||
case 13:
|
||||
kai.push(pai[i]);
|
||||
tishipai.push(pai[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (wu.length <= shi.length && wu.length <= kai.length && wu.length >=3) {//有3副以上五十K
|
||||
return [tishipai];
|
||||
}else if (shi.length <= wu.length && shi.length <= kai.length && shi.length >=3) {//有3副以上五十K
|
||||
return [tishipai];
|
||||
}else if (kai.length <= wu.length && kai.length <= shi.length && kai.length >=3) {//有3副以上五十K
|
||||
return [tishipai];
|
||||
}else{//没有3副以上五十K
|
||||
tishipai = [];
|
||||
var zhengwsk = [];
|
||||
var fuwsk = [];
|
||||
for (var i = 0; i < wu.length; i++) {
|
||||
for (var j = 0; j < shi.length; j++) {
|
||||
if (wu[i][1] == shi[j][1]) {
|
||||
for (var l = 0; l < kai.length; l++) {
|
||||
if (wu[i][1] == kai[l][1]) {
|
||||
zhengwsk.push(wu[i]);
|
||||
zhengwsk.push(shi[j]);
|
||||
zhengwsk.push(kai[l]);
|
||||
wu.splice(i,1);
|
||||
shi.splice(j,1);
|
||||
kai.splice(l,1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (zhengwsk.length) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (zhengwsk.length) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (wu.length>0&&shi.length>0&&kai.length>0) {
|
||||
fuwsk.push(wu[0]);
|
||||
fuwsk.push(shi[0]);
|
||||
fuwsk.push(kai[0]);
|
||||
}
|
||||
if (zhengwsk.length&&fuwsk.length) {
|
||||
return [fuwsk,zhengwsk];
|
||||
}
|
||||
if (zhengwsk.length) {
|
||||
return [zhengwsk];
|
||||
}
|
||||
if (fuwsk.length) {
|
||||
return [fuwsk];
|
||||
}
|
||||
}
|
||||
return [];
|
||||
},
|
||||
chongren_ksw_tishi: function(){
|
||||
var wu = [];
|
||||
var shi = [];
|
||||
var kai = [];
|
||||
var tishipai = [];
|
||||
var pai = cls_zhaopengyou_aset.CardIdsToCards(paiju, zhaopengyou_bianliang.pub.paiid);
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
switch (pai[i][4]){
|
||||
case 5:
|
||||
wu.push(pai[i]);
|
||||
break;
|
||||
case 10:
|
||||
shi.push(pai[i]);
|
||||
break;
|
||||
case 13:
|
||||
kai.push(pai[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (wu.length <= shi.length && wu.length <= kai.length && wu.length >=3) {//有3副以上五十K
|
||||
for(var i = 0;i<wu.length;i++){
|
||||
tishipai.push(wu[i]);
|
||||
tishipai.push(shi[i]);
|
||||
tishipai.push(kai[i]);
|
||||
}
|
||||
return [tishipai];
|
||||
}else
|
||||
if (shi.length <= wu.length && shi.length <= kai.length && shi.length >=3) {//有3副以上五十K
|
||||
for(var i = 0;i<shi.length;i++){
|
||||
tishipai.push(wu[i]);
|
||||
tishipai.push(shi[i]);
|
||||
tishipai.push(kai[i]);
|
||||
}
|
||||
return [tishipai];
|
||||
}else
|
||||
if (kai.length <= shi.length && kai.length <= wu.length && kai.length ==3) {//有3副以上五十K
|
||||
for(var i = 0;i<kai.length;i++){
|
||||
tishipai.push(wu[i]);
|
||||
tishipai.push(shi[i]);
|
||||
tishipai.push(kai[i]);
|
||||
}
|
||||
return [tishipai];
|
||||
}else{//没有3副以上五十K
|
||||
tishipai = [];
|
||||
var zhengwsk = [];
|
||||
var fuwsk = [];
|
||||
for (var i = 0; i < wu.length; i++) {
|
||||
for (var j = 0; j < shi.length; j++) {
|
||||
if (wu[i][1] == shi[j][1]) {
|
||||
for (var l = 0; l < kai.length; l++) {
|
||||
if (wu[i][1] == kai[l][1]) {
|
||||
zhengwsk.push(wu[i]);
|
||||
zhengwsk.push(shi[j]);
|
||||
zhengwsk.push(kai[l]);
|
||||
wu.splice(i,1);
|
||||
shi.splice(j,1);
|
||||
kai.splice(l,1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (zhengwsk.length) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (zhengwsk.length) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (wu.length>0&&shi.length>0&&kai.length>0) {
|
||||
fuwsk.push(wu[0]);
|
||||
fuwsk.push(shi[0]);
|
||||
fuwsk.push(kai[0]);
|
||||
}
|
||||
if (zhengwsk.length&&fuwsk.length) {
|
||||
return [fuwsk,zhengwsk];
|
||||
}
|
||||
if (zhengwsk.length) {
|
||||
return [zhengwsk];
|
||||
}
|
||||
if (fuwsk.length) {
|
||||
return [fuwsk];
|
||||
}
|
||||
}
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
77
codes/games/client/Projects/zpy/js/class/class.app.js
Normal file
77
codes/games/client/Projects/zpy/js/class/class.app.js
Normal file
@@ -0,0 +1,77 @@
|
||||
///////////////////////////////////////////////////
|
||||
//////////////cls_app: 应用基础类//////////////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_app = cls_app || {
|
||||
//构造函数
|
||||
new: function(_str_appname, _obj_packet) {
|
||||
/*
|
||||
参数说明:
|
||||
_str_appname 应用名称
|
||||
_obj_packet 所有应用的总包接口对象
|
||||
*/
|
||||
|
||||
//创建一个实例
|
||||
var app = {};
|
||||
|
||||
// ================= 实例的公有属性 ================= //
|
||||
//应用名称
|
||||
app.appname = _str_appname;
|
||||
//总包接口
|
||||
app.packet_face = _obj_packet;
|
||||
//给客户端发包函数
|
||||
app.SendPack = app.packet_face.SendPack;
|
||||
//给http客户端发包函数
|
||||
app.SendPack_Http = app.packet_face.SendPack_Http;
|
||||
//给tcp客户端发包函数
|
||||
app.SendPack_Tcp = app.packet_face.SendPack_Tcp;
|
||||
//将app添加到packet_face的应用列表中
|
||||
app.packet_face.applist.push(app);
|
||||
|
||||
//模块列表 [{"face":room_face,"facename":"room_face","routename":"room"}]
|
||||
app.modlist = [];
|
||||
|
||||
// ================= 实例的公有方法 ================= //
|
||||
//TCP客户端断开
|
||||
app.OnTcpDisConnected = function(_str_tcpid) {
|
||||
cls_app.OnTcpDisConnected(app, _str_tcpid);
|
||||
}
|
||||
|
||||
//处理数据包
|
||||
app.ReceivePack = function(_pack) {
|
||||
return cls_app.ReceivePack(app, _pack);
|
||||
}
|
||||
|
||||
return app;
|
||||
},
|
||||
|
||||
// ================= 所有实例的共享方法 ================= //
|
||||
//TCP客户端断开
|
||||
OnTcpDisConnected: function(_obj_app, _str_tcpid) {
|
||||
for (var i = 0; i < _obj_app.modlist.length; i++) {
|
||||
if (_obj_app.modlist[i].OnTcpDisConnected) {
|
||||
_obj_app.modlist[i].OnTcpDisConnected(_str_tcpid);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//处理数据包
|
||||
ReceivePack: function(_obj_app, _pack) {
|
||||
if (typeof(_pack) == "string") {
|
||||
_pack = JSON.parse(_pack); //转换json
|
||||
}
|
||||
//路由各个模块
|
||||
for (var i = 0; i < _obj_app.modlist.length; i++) {
|
||||
if (_pack.route == _obj_app.modlist[i].routename) {
|
||||
if (_obj_app.modlist[i].DoPack) {
|
||||
var repack = _obj_app.modlist[i].DoPack(_pack);
|
||||
//发包
|
||||
if (repack && _obj_app.SendPack) {
|
||||
_obj_app.SendPack(repack);
|
||||
}
|
||||
return repack;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
462
codes/games/client/Projects/zpy/js/class/class.aset2.js
Normal file
462
codes/games/client/Projects/zpy/js/class/class.aset2.js
Normal file
@@ -0,0 +1,462 @@
|
||||
/*================= cls_aset2: 小局基础类 =================
|
||||
注意:
|
||||
1,此牌类是基础小局类;各子游戏需要继承此基础类后下编写自己的小局类。
|
||||
2,子游戏开发人员不能修改该文件。
|
||||
=========================================================*/
|
||||
var cls_aset2 = {
|
||||
|
||||
//================ 新建一小局 ================
|
||||
New: function(){
|
||||
//定义小局
|
||||
var o_aset = this.declare();
|
||||
//初始化牌列表
|
||||
this.initcardlist(o_aset);
|
||||
//除掉不要的牌
|
||||
this.deletecard(o_aset);
|
||||
//设置每张牌的分值
|
||||
this.setcardscore(o_aset);
|
||||
return o_aset;
|
||||
},
|
||||
//小局的数据定义
|
||||
declare: function(){
|
||||
var o_aset = {};
|
||||
//玩家列表
|
||||
o_aset.playerlist = []; //在此定义和存储玩家的状态,比如准备状态、叫分的分值、游戏的得分等等,格式如[[], [], ...], [{}, {}, ...], [player, player, ...]
|
||||
//牌列表
|
||||
o_aset.cardlist = []; //格式为[[], [], [], ...],里面的每个小数组就是一张牌
|
||||
//庄(位置)
|
||||
o_aset.zhuang = -1;
|
||||
//控制权(位置)
|
||||
o_aset.control = -1;
|
||||
//当前是第几轮出牌
|
||||
o_aset.play = 0;
|
||||
//当前是本轮的第几个出牌
|
||||
o_aset.index = 0;
|
||||
|
||||
return o_aset;
|
||||
},
|
||||
//初始化牌列表
|
||||
initcardlist: function(o_aset){
|
||||
//几副牌
|
||||
var card_count = this.get_cardcount();
|
||||
//牌类
|
||||
var card_class = this.get_cardclass();
|
||||
//初始化
|
||||
for (var i = 1; i <= card_count; i++){ //几副牌
|
||||
for (var j = 1; j <= 4; j++){ //方块、梅花、红心、黑桃四种花色
|
||||
for (var k = 1; k <= 13; k++){ //A到K
|
||||
var id = (i - 1) * 54 + (j - 1) * 13 + k - 1; //牌的绝对id
|
||||
//新建一张牌
|
||||
var card_object = card_class.New(id);
|
||||
o_aset.cardlist.push(card_object);
|
||||
}
|
||||
}
|
||||
//小王
|
||||
var card_object = card_class.New((i - 1) * 54 + 53 - 1);
|
||||
o_aset.cardlist.push(card_object);
|
||||
//大王
|
||||
var card_object = card_class.New((i - 1) * 54 + 54 - 1);
|
||||
o_aset.cardlist.push(card_object);
|
||||
}
|
||||
},
|
||||
//几副牌
|
||||
get_cardcount: function(){
|
||||
return 1;
|
||||
},
|
||||
//小局对应的牌类
|
||||
get_cardclass: function(){
|
||||
return cls_card2;
|
||||
},
|
||||
//除掉不要的牌
|
||||
deletecard: function(o_aset){
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
this.get_cardclass().SetDeal(o_card, -1);
|
||||
}
|
||||
|
||||
//下面的代码是3人二七王除掉3、4的例子。类似功能需要在子游戏中重写该方法
|
||||
// for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
// var o_card = o_aset.cardlist[i];
|
||||
// var card_number = this.get_cardclass().GetNumber(o_card);
|
||||
// if (card_number == 3 || card_number == 4){
|
||||
// this.get_cardclass().SetDeal(o_card, -2);
|
||||
// }
|
||||
// }
|
||||
},
|
||||
//设置每张牌的分值
|
||||
setcardscore: function(o_aset){
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
var card_deal = this.get_cardclass().GetDeal(o_card);
|
||||
if (card_deal != -2){
|
||||
this.get_cardclass().SetScore(o_card, 0);
|
||||
}
|
||||
}
|
||||
|
||||
//下面的代码是设置5、10、K分值的例子。类似功能需要在子游戏中重写该方法
|
||||
// for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
// var o_card = o_aset.cardlist[i];
|
||||
// var card_deal = this.get_cardclass().GetDeal(o_card);
|
||||
// if (card_deal != -2){
|
||||
// var card_number = this.get_cardclass().GetNumber(o_card);
|
||||
// switch (card_number){
|
||||
// case 5:
|
||||
// this.get_cardclass().SetScore(o_card, 5);
|
||||
// break;
|
||||
// case 10:
|
||||
// this.get_cardclass().SetScore(o_card, 10);
|
||||
// break;
|
||||
// case 13:
|
||||
// this.get_cardclass().SetScore(o_card, 10);
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
},
|
||||
|
||||
//===================== 发牌 =====================
|
||||
DealCard: function(o_aset, o_desk){
|
||||
//需要发牌的位置列表
|
||||
var seatlist = this.get_dealseatlist(o_aset, o_desk);
|
||||
//每人需要发多少张牌
|
||||
var dealcount = this.get_dealcount(o_aset, o_desk);
|
||||
//需要留几张底牌
|
||||
var bottomcount = this.get_bottomcount(o_aset, o_desk);
|
||||
//注意:dealcount * seatlist + bottomcount必须等于除掉不要的牌之后的牌的总数
|
||||
//发牌数组
|
||||
var tmplist = [];
|
||||
for (var i = 0; i < seatlist.length; i++){
|
||||
for (var j = 0; j < dealcount; j++){
|
||||
tmplist.push(seatlist[i]);
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < bottomcount; i++){
|
||||
tmplist.push(-1);
|
||||
}
|
||||
|
||||
//随机发牌
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
var card_deal = this.get_cardclass().GetDeal(o_card);
|
||||
if (card_deal != -2){
|
||||
var idx = min_random(0, tmplist.length - 1);
|
||||
this.get_cardclass().SetDeal(o_card, tmplist[idx]);
|
||||
this.get_cardclass().SetStart(o_card, tmplist[idx]);
|
||||
this.get_cardclass().SetPlay(o_card, -1);
|
||||
this.get_cardclass().SetOver(o_card, tmplist[idx]);
|
||||
//将发牌数组的最后一位移至该位置
|
||||
if (idx < tmplist.length - 1) {
|
||||
tmplist[idx] = tmplist[tmplist.length - 1];
|
||||
};
|
||||
//发牌数组长度减一
|
||||
tmplist.length = tmplist.length - 1;
|
||||
}
|
||||
}
|
||||
},
|
||||
//需要发牌的位置列表
|
||||
get_dealseatlist: function(o_aset, o_desk){
|
||||
var seatlist = [];
|
||||
for (var i = 0; i < o_desk.o_room.seatlist.length; i++){
|
||||
if (o_desk.o_room.seatlist[i]){
|
||||
if (o_desk.o_room.seatlist[i].gameinfo.isbet){
|
||||
seatlist.push(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
return seatlist;
|
||||
},
|
||||
//每人需要发多少张牌
|
||||
get_dealcount: function(o_aset, o_desk){
|
||||
return 0;
|
||||
},
|
||||
//需要留几张底牌
|
||||
get_bottomcount: function(o_aset, o_desk){
|
||||
return 0;
|
||||
},
|
||||
|
||||
//==================== 拿底牌 ====================
|
||||
PutBottomCard: function(o_aset, seat){
|
||||
var bottomcardlist = this.GetBottomCards(o_aset);
|
||||
for (var i = 0; i < bottomcardlist.length; i++) {
|
||||
var o_card = bottomcardlist[i];
|
||||
this.get_cardclass().SetStart(o_card, seat);
|
||||
}
|
||||
},
|
||||
|
||||
//===================== 埋牌 =====================
|
||||
BuryCard: function(o_aset, seat, cardidlist){
|
||||
/*参数:
|
||||
seat:哪个位置要埋牌
|
||||
cardidlist:要埋的牌的id
|
||||
返回值:true表示执行成功,false表示执行失败。*/
|
||||
if (this.canBuryCard(o_aset, seat, cardidlist)){
|
||||
this.doBuryCard(o_aset, seat, cardidlist);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
get_burycardcount: function(){
|
||||
return 8;
|
||||
},
|
||||
//检查是否可埋牌
|
||||
canBuryCard: function(o_aset, seat, cardidlist){
|
||||
//检查控制权
|
||||
if (seat != o_aset.control){
|
||||
return false;
|
||||
}
|
||||
//检查埋牌数量
|
||||
if (cardidlist.length != this.get_burycardcount()){
|
||||
return false;
|
||||
}
|
||||
//检查要埋的牌是否在玩家手上
|
||||
var inhandcardids = this.GetCardIdsInhand(o_aset, seat);
|
||||
return min_ary_include(inhandcardids, cardidlist);
|
||||
},
|
||||
//埋牌
|
||||
doBuryCard: function(o_aset, seat, cardidlist){
|
||||
var cardlist = this.CardIdsToCards(o_aset, cardidlist);
|
||||
for (var i = 0; i < cardlist.length; i++) {
|
||||
var o_card = cardlist[i];
|
||||
this.get_cardclass().SetPlay(o_card, -2);
|
||||
}
|
||||
},
|
||||
|
||||
//===================== 出牌 =====================
|
||||
PlayCard: function(o_aset, seat, cardidlist, mode){
|
||||
/*参数:
|
||||
seat:哪个位置要出牌
|
||||
cardidlist:要出的牌的id
|
||||
mode:出牌模式 0-需要跟随上一家出牌 1-需要跟随第一家出牌
|
||||
返回值:true表示执行成功,false表示执行失败。*/
|
||||
var can = this.canPlayCard(o_aset, seat, cardidlist, mode); //检查是否可出
|
||||
if (can.result){ //可出
|
||||
this.doPlayCard(o_aset, seat, cardidlist); //出下去
|
||||
return true;
|
||||
} else { //不可出
|
||||
return false;
|
||||
}
|
||||
},
|
||||
//检查是否可出牌
|
||||
canPlayCard: function(o_aset, seat, cardidlist, mode){
|
||||
var can = {}; //返回的结果
|
||||
can.result = false; //是否可以出出去
|
||||
can.cards = null; //牌(对象)
|
||||
can.cardtype = null; //牌型
|
||||
can.value = null; //大小
|
||||
can.flower = null; //花色
|
||||
|
||||
//检查控制权
|
||||
if (seat != o_aset.control){
|
||||
can.result = false;
|
||||
return can;
|
||||
}
|
||||
//检查要出的牌是否在玩家手上
|
||||
var inhandcardids = this.GetCardIdsInhand(o_aset, seat);
|
||||
if (!min_ary_include(inhandcardids, cardidlist)){
|
||||
can.result = false;
|
||||
return can;
|
||||
}
|
||||
|
||||
return can;
|
||||
},
|
||||
//第一个出牌时分析选中的牌是否可以出出去(主要是分析牌型)
|
||||
canPlayCard_first: function(o_aset, cardidlist){
|
||||
var can = {}; //返回的结果
|
||||
can.result = false; //是否可以出出去
|
||||
can.cards = null; //牌(对象)
|
||||
can.cardtype = null; //牌型
|
||||
can.value = null; //大小
|
||||
can.flower = null; //花色
|
||||
|
||||
|
||||
return can;
|
||||
},
|
||||
//不是第一个出牌时分析选中的牌是否可以出出去(主要是分析牌型是否符合前面出牌的牌型)
|
||||
canPlayCard_second: function(o_aset, cardidlist, mode){
|
||||
var can = {}; //返回的结果
|
||||
can.result = false; //是否可以出出去
|
||||
can.cards = null; //牌(对象)
|
||||
can.cardtype = null; //牌型
|
||||
can.value = null; //大小
|
||||
can.flower = null; //花色
|
||||
|
||||
return can;
|
||||
},
|
||||
//出牌
|
||||
doPlayCard: function(o_aset, seat, cardidlist){
|
||||
var cardlist = this.CardIdsToCards(o_aset, cardidlist);
|
||||
for (var i = 0; i < cardlist.length; i++) {
|
||||
var o_card = cardlist[i];
|
||||
this.get_cardclass().SetPlay(o_card, o_aset.play);
|
||||
this.get_cardclass().SetIndex(o_card, o_aset.index);
|
||||
}
|
||||
},
|
||||
|
||||
//=================== 可跟随的牌 ===================
|
||||
CanFollowCard: function(o_aset, seat, mode){
|
||||
//根据第一个人或上一个人出的牌,分析seat这个位置上的人必出的牌和可出的牌
|
||||
|
||||
},
|
||||
|
||||
//==================== 小局结算 =====================
|
||||
CloseAccount: function(o_aset, o_desk){
|
||||
|
||||
},
|
||||
|
||||
//================ 获取各种情况的牌 ================
|
||||
//获取开局时玩家发到手上的牌
|
||||
GetDealCardsBySeat: function(o_aset, seat){
|
||||
return this.GetCardsByDealstate(o_aset, seat);
|
||||
},
|
||||
GetDealCardIdsBySeat: function(o_aset, seat){
|
||||
var cardlist = this.GetDealCardsBySeat(o_aset, seat);
|
||||
return this.CardsToCardIds(cardlist);
|
||||
},
|
||||
//获取底牌
|
||||
GetBottomCards: function(o_aset){
|
||||
return this.GetCardsByDealstate(o_aset, -1);
|
||||
},
|
||||
GetBottomCardIds: function(o_aset){
|
||||
var cardlist = this.GetBottomCards(o_aset);
|
||||
return this.CardsToCardIds(cardlist);
|
||||
},
|
||||
//获取玩家当前手上有的牌
|
||||
GetCardsInhand: function(o_aset, seat){
|
||||
var cardlist = [];
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
var card_start = this.get_cardclass().GetStart(o_card);
|
||||
if (card_start == seat){
|
||||
var card_play = this.get_cardclass().GetPlay(o_card);
|
||||
if (card_play == -1 || card_play == null){
|
||||
cardlist.push(o_card);
|
||||
}
|
||||
}
|
||||
}
|
||||
return cardlist;
|
||||
},
|
||||
GetCardIdsInhand: function(o_aset, seat){
|
||||
var cardlist = this.GetCardsInhand(o_aset, seat);
|
||||
return this.CardsToCardIds(cardlist);
|
||||
},
|
||||
//获取埋牌 参数:seat谁埋的牌,可以不传,默认只有一个人会埋牌
|
||||
GetBuryCards: function(o_aset, seat){
|
||||
return this.GetCardsByPlaystate(o_aset, -2, seat);
|
||||
},
|
||||
GetBuryCardIds: function(o_aset, seat){
|
||||
var cardlist = this.GetBuryCards(o_aset, seat);
|
||||
return this.CardsToCardIds(cardlist);
|
||||
},
|
||||
//获取上一轮出牌
|
||||
GetPriorPlayCard: function(o_aset, round){
|
||||
|
||||
},
|
||||
//获取下一轮出牌
|
||||
GetNextPlayCard: function(o_aset, round){
|
||||
|
||||
},
|
||||
|
||||
//================== 各种底层函数 ==================
|
||||
//根据发牌状态获取牌列表
|
||||
GetCardsByDealstate: function(o_aset, dealstate){
|
||||
var cardlist = [];
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
var card_deal = this.get_cardclass().GetDeal(o_card);
|
||||
if (card_deal == dealstate){
|
||||
cardlist.push(o_card);
|
||||
}
|
||||
}
|
||||
return cardlist;
|
||||
},
|
||||
//根据出牌状态获取牌列表
|
||||
GetCardsByPlaystate: function(o_aset, playstate, seat){
|
||||
var cardlist = [];
|
||||
for (var i = 0; i < o_aset.cardlist.length; i++){
|
||||
var o_card = o_aset.cardlist[i];
|
||||
var card_play = this.get_cardclass().GetPlay(o_card);
|
||||
if (card_play == playstate){
|
||||
if (seat != null){
|
||||
var card_start = this.get_cardclass().GetStart(o_card);
|
||||
if (card_start == seat){
|
||||
cardlist.push(o_card);
|
||||
}
|
||||
} else {
|
||||
cardlist.push(o_card);
|
||||
}
|
||||
}
|
||||
}
|
||||
return cardlist;
|
||||
},
|
||||
//将牌对象列表转换成牌id列表
|
||||
CardsToCardIds: function(cardlist){
|
||||
var cardidlist = [];
|
||||
for (var i = 0; i < cardlist.length; i++){
|
||||
var o_card = cardlist[i];
|
||||
var card_id = this.get_cardclass().GetId(o_card);
|
||||
cardidlist.push(card_id);
|
||||
}
|
||||
return cardidlist;
|
||||
},
|
||||
//将牌id列表转换成牌对象列表
|
||||
CardIdsToCards: function(o_aset, cardidlist){
|
||||
var cardlist = [];
|
||||
for (var i = 0; i < cardidlist.length; i++){
|
||||
var o_card = o_aset.cardlist[cardidlist[i]];
|
||||
cardlist.push(o_card);
|
||||
}
|
||||
return cardlist;
|
||||
},
|
||||
|
||||
//新建小局类
|
||||
NewClass: function(){
|
||||
var cls = {};
|
||||
cls.New = cls_aset2.New;
|
||||
cls.declare = cls_aset2.declare;
|
||||
cls.initcardlist = cls_aset2.initcardlist;
|
||||
cls.get_cardcount = cls_aset2.get_cardcount;
|
||||
cls.get_cardclass = cls_aset2.get_cardclass;
|
||||
cls.deletecard = cls_aset2.deletecard;
|
||||
cls.setcardscore = cls_aset2.setcardscore;
|
||||
|
||||
cls.DealCard = cls_aset2.DealCard;
|
||||
cls.get_dealseatlist = cls_aset2.get_dealseatlist;
|
||||
cls.get_dealcount = cls_aset2.get_dealcount;
|
||||
cls.get_bottomcount = cls_aset2.get_bottomcount;
|
||||
|
||||
cls.PutBottomCard = cls_aset2.PutBottomCard;
|
||||
|
||||
cls.BuryCard = cls_aset2.BuryCard;
|
||||
cls.get_burycardcount = cls_aset2.get_burycardcount;
|
||||
cls.canBuryCard = cls_aset2.canBuryCard;
|
||||
cls.doBuryCard = cls_aset2.doBuryCard;
|
||||
|
||||
cls.PlayCard = cls_aset2.PlayCard;
|
||||
cls.canPlayCard = cls_aset2.canPlayCard;
|
||||
cls.canPlayCard_first = cls_aset2.canPlayCard_first;
|
||||
cls.canPlayCard_second = cls_aset2.canPlayCard_second;
|
||||
cls.doPlayCard = cls_aset2.doPlayCard;
|
||||
|
||||
cls.CanFollowCard = cls_aset2.CanFollowCard;
|
||||
|
||||
cls.CloseAccount = cls_aset2.CloseAccount;
|
||||
|
||||
cls.GetDealCardsBySeat = cls_aset2.GetDealCardsBySeat;
|
||||
cls.GetDealCardIdsBySeat = cls_aset2.GetDealCardIdsBySeat;
|
||||
cls.GetBottomCards = cls_aset2.GetBottomCards;
|
||||
cls.GetBottomCardIds = cls_aset2.GetBottomCardIds;
|
||||
cls.GetCardsInhand = cls_aset2.GetCardsInhand;
|
||||
cls.GetCardIdsInhand = cls_aset2.GetCardIdsInhand;
|
||||
cls.GetBuryCards = cls_aset2.GetBuryCards;
|
||||
cls.GetBuryCardIds = cls_aset2.GetBuryCardIds;
|
||||
cls.GetPriorPlayCard = cls_aset2.GetPriorPlayCard;
|
||||
cls.GetNextPlayCard = cls_aset2.GetNextPlayCard;
|
||||
|
||||
cls.GetCardsByDealstate = cls_aset2.GetCardsByDealstate;
|
||||
cls.GetCardsByPlaystate = cls_aset2.GetCardsByPlaystate;
|
||||
cls.CardsToCardIds = cls_aset2.CardsToCardIds;
|
||||
cls.CardIdsToCards = cls_aset2.CardIdsToCards;
|
||||
return cls;
|
||||
}
|
||||
}
|
||||
743
codes/games/client/Projects/zpy/js/class/class.card2.js
Normal file
743
codes/games/client/Projects/zpy/js/class/class.card2.js
Normal file
@@ -0,0 +1,743 @@
|
||||
/*===================== cls_card2: 牌的基础类 ======================
|
||||
扑克牌的统一定义:
|
||||
1,单张牌的定义是一个长度为14的数组 [Id, Flower, Number, ArithF, ArithN, Score, Deal, Start, Play, Index, Over, Tag1, Tag2, Tag3]
|
||||
第一位:Id,牌的绝对id,即数组下标,从0开始计数。
|
||||
第二位:Flower,牌的物理花色,5:王 4:黑桃 3:红心 2:梅花 1:方块。
|
||||
第三位:Number,牌的物理大小,1:A 2:2 ... 9:9 10:10 11:J 12:Q 13:K 53:小王 54:大王。
|
||||
第四位:ArithF,牌的算法花色,区别于物理花色,用于牌型计算和比较牌的大小。
|
||||
要求是大于0的整数,不能等于0或小于0,默认等于物理花色。
|
||||
第五位:ArithN,牌的算法大小,区别于物理大小,用于牌型计算和比较牌的大小。
|
||||
要求是大于0的整数,不能等于0或小于0,默认等于物理大小。
|
||||
第六位:Score,牌的分值,如5、10、K。
|
||||
第七位:Deal,发牌状态。
|
||||
-2:规则去除的牌;
|
||||
-1:未发的牌(底牌);
|
||||
>=0:发牌发到谁手上,即座位号。
|
||||
第八位:Start,开局状态,开局时牌在谁手上,与座位编号对应。
|
||||
第九位:Play,出牌状态。
|
||||
-2:埋的牌;
|
||||
-1:未出的牌(手上的牌);
|
||||
>=0:牌是第几轮出出去的,从0开始计数。
|
||||
第十位:Index,本轮中的出牌顺序号,从0开始计数。
|
||||
第十一位:Over,牌局结束时被谁得到,与座位编号对应。
|
||||
第十二位:Tag1,扩展属性1。
|
||||
第十三位:Tag2,扩展属性2。
|
||||
第十四位:Tag3,扩展属性3。
|
||||
2,基础牌型的统一定义:
|
||||
所有基础牌型都由两个值表示:tong,同,表示一样的牌;shun,顺,表示连续的牌。
|
||||
单张:tong=1,shun=1
|
||||
对子:tong=2,shun=1
|
||||
两连对:tong=2,shun=2
|
||||
三连对:tong=2,shun=3
|
||||
三个:tong=3,shun=1
|
||||
飞机:tong=3,shun=2
|
||||
四个:tong=4,shun=1
|
||||
五连顺:tong=1,shun=5
|
||||
六连顺:tong=1,shun=6
|
||||
其他基础牌型以此类推
|
||||
|
||||
注意:
|
||||
1,此牌类是基础扑克牌类、通用扑克牌类;各子游戏可以直接使用,也可以继承此基础类后下编写自己的牌类。
|
||||
2,子游戏开发人员不能修改该文件。
|
||||
3,访问牌的属性时要求使用Get和Set方法,不能直接通过数组下标的形式访问。
|
||||
===================================================================*/
|
||||
var cls_card2 = {
|
||||
|
||||
//新建一张牌
|
||||
New: function(id){
|
||||
return this.declare(id);
|
||||
},
|
||||
//牌的数据定义
|
||||
declare: function(id){
|
||||
//id转物理花色
|
||||
var IdToFlower = function(cardid){
|
||||
var yu = cardid % 54;
|
||||
if (yu == 52 || yu == 53){
|
||||
return 5;
|
||||
}
|
||||
return parseInt(yu / 13) + 1;
|
||||
}
|
||||
//id转物理数值
|
||||
var IdToNumber = function(cardid){
|
||||
var yu = cardid % 54;
|
||||
if (yu == 52){
|
||||
return 53;
|
||||
}
|
||||
if (yu == 53){
|
||||
return 54;
|
||||
}
|
||||
return yu % 13 + 1;
|
||||
}
|
||||
|
||||
var o_card = [];
|
||||
o_card[0] = id;
|
||||
o_card[1] = IdToFlower(id);
|
||||
o_card[2] = IdToNumber(id);
|
||||
o_card[3] = o_card[1];
|
||||
o_card[4] = o_card[2];
|
||||
o_card[5] = null;
|
||||
o_card[6] = null;
|
||||
o_card[7] = null;
|
||||
o_card[8] = null;
|
||||
o_card[9] = null;
|
||||
o_card[10] = null;
|
||||
o_card[11] = null;
|
||||
o_card[12] = null;
|
||||
o_card[13] = null;
|
||||
return o_card;
|
||||
},
|
||||
//牌的id,整型,只读
|
||||
GetId: function(o_card){
|
||||
return o_card[0];
|
||||
},
|
||||
//牌的物理花色,整型,只读
|
||||
GetFlower: function(o_card){
|
||||
return o_card[1];
|
||||
},
|
||||
//牌的物理大小,整型,只读
|
||||
GetNumber: function(o_card){
|
||||
return o_card[2];
|
||||
},
|
||||
//牌的算法花色,整型
|
||||
GetArithF: function(o_card){
|
||||
return o_card[3];
|
||||
},
|
||||
SetArithF: function(o_card, value){
|
||||
o_card[3] = value;
|
||||
},
|
||||
//牌的算法大小,整型
|
||||
GetArithN: function(o_card){
|
||||
return o_card[4];
|
||||
},
|
||||
SetArithN: function(o_card, value){
|
||||
o_card[4] = value;
|
||||
},
|
||||
//牌的分值,整型
|
||||
GetScore: function(o_card){
|
||||
return o_card[5];
|
||||
},
|
||||
SetScore: function(o_card, value){
|
||||
o_card[5] = value;
|
||||
},
|
||||
//发牌状态,整型
|
||||
GetDeal: function(o_card){
|
||||
return o_card[6];
|
||||
},
|
||||
SetDeal: function(o_card, value){
|
||||
o_card[6] = value;
|
||||
},
|
||||
//开局状态,整型
|
||||
GetStart: function(o_card){
|
||||
return o_card[7];
|
||||
},
|
||||
SetStart: function(o_card, value){
|
||||
o_card[7] = value;
|
||||
},
|
||||
//出牌状态,整型
|
||||
GetPlay: function(o_card){
|
||||
return o_card[8];
|
||||
},
|
||||
SetPlay: function(o_card, value){
|
||||
o_card[8] = value;
|
||||
},
|
||||
//出牌顺序,整型
|
||||
GetIndex: function(o_card){
|
||||
return o_card[9];
|
||||
},
|
||||
SetIndex: function(o_card, value){
|
||||
o_card[9] = value;
|
||||
},
|
||||
//结束时被谁得到,整型
|
||||
GetOver: function(o_card){
|
||||
return o_card[10];
|
||||
},
|
||||
SetOver: function(o_card, value){
|
||||
o_card[10] = value;
|
||||
},
|
||||
//扩展属性
|
||||
GetTag1: function(o_card){
|
||||
return o_card[11];
|
||||
},
|
||||
SetTag1: function(o_card, value){
|
||||
o_card[11] = value;
|
||||
},
|
||||
GetTag2: function(o_card){
|
||||
return o_card[12];
|
||||
},
|
||||
SetTag2: function(o_card, value){
|
||||
o_card[12] = value;
|
||||
},
|
||||
GetTag3: function(o_card){
|
||||
return o_card[13];
|
||||
},
|
||||
SetTag3: function(o_card, value){
|
||||
o_card[13] = value;
|
||||
},
|
||||
/*
|
||||
以下提供几个针对牌数组的基础算法,这两个方法是基于牌的算法花色和算法大小实现的,各子游戏在调用前需要将牌的算法花色和算法大小先设置好。
|
||||
|
||||
设置算法花色的原则是:
|
||||
1,如果对花色没要求则需要将所有牌的算法花色统一。比如斗地主中的五连顺是任何花色都可以一起连顺子的,则需要将所有牌的算法花色全部设置成0,表示都是同一花色,然后在同一花色下取顺子。
|
||||
2,如果对花色有要求则需要根据实际情况区分算法花色。比如升级中的两连对是指同一花色下的两连对,则需要将算法花色设置成不同的值,表示不同算法花色之间是不能组成两连对的。
|
||||
|
||||
设置算法大小的原则是:算法大小即可表示是否连牌,也可表示牌的大小关系。
|
||||
1,设置算法大小时要求做到数字连续则表示是连牌。比如A的物理大小是1,K的物理大小是13,1和13是不连续的,此时需要将A的算法大小设置成14,将K的算法大小设置成13,14和13是连续的,表示A和K可以连牌。再比如王牌和A是不能作为连牌出现的,则需要将王的算法大小设置成16,将A的算法大小设置成14,16和14不是连续的,表示王和A不能连牌。
|
||||
2,设置算法大小时要求做到数字大小则表示是牌的大小。比如A的物理大小是1,K的物理大小是13,1比13小,但A比K大,此时需要将A的算法大小设置成14,将K的算法大小设置成13,14比13大,表示A比K大。再比如王牌比A大,则需要将王的算法大小设置成16,将A的算法大小设置成14,16大于14,表示王比A大。
|
||||
*/
|
||||
|
||||
//根据算法花色筛选牌
|
||||
FilterCardListByArithF: function(o_cardlist, ArithF){
|
||||
/*参数说明
|
||||
o_cardlist:需要进行筛选的牌数组
|
||||
ArithF:要筛选的算法花色,默认不筛选
|
||||
|
||||
返回值:筛选后的牌数组*/
|
||||
var result = [];
|
||||
for (var i = 0; i < o_cardlist.length; i++) {
|
||||
var o_card = o_cardlist[i];
|
||||
var card_ArithF = this.GetArithF(o_card);
|
||||
if (!ArithF || card_ArithF == ArithF) {
|
||||
result.push(o_cardlist[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
||||
//根据算法大小筛选牌
|
||||
FilterCardListByArithN: function(o_cardlist, min_ArithN, max_ArithN){
|
||||
/*参数说明
|
||||
o_cardlist:需要进行筛选的牌数组
|
||||
min_ArithN:要筛选的算法大小最小值,>=,默认不限制
|
||||
max_ArithN:要筛选的算法大小最大值,<=,默认不限制
|
||||
返回值:筛选后的牌数组*/
|
||||
var result = [];
|
||||
for (var i = 0; i < o_cardlist.length; i++) {
|
||||
var o_card = o_cardlist[i];
|
||||
var card_ArithN = this.GetArithN(o_card);
|
||||
if ((!min_ArithN || card_ArithN >= min_ArithN) &&
|
||||
(!max_ArithN || card_ArithN <= max_ArithN)) {
|
||||
result.push(o_cardlist[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
},
|
||||
|
||||
//根据算法大小对牌数组进行排序(冒泡排序法)
|
||||
SortCardList: function(o_cardlist, options){
|
||||
/*参数说明
|
||||
o_cardlist: 需要进行排序的牌数组
|
||||
options : 排序选项,长度为2的数组,结构为[大小排序方向,花色排序方向]
|
||||
第一位: 算法大小排序方向,0-从小到大排序 1-从大到小排序,默认为0。
|
||||
第二位: 物理花色排序方向,算法大小相同时是否再按物理花色排序,默认为0。
|
||||
0-根据算法大小排序方向默认选择物理花色排序方向,
|
||||
options[0]=0时,物理花色默认按“方块->梅花->红心->黑桃”排序;
|
||||
options[0]=1时,物理花色默认按“黑桃->红心->梅花->方块”排序。
|
||||
1-不按物理花色排序,在o_cardlist中是什么顺序就什么顺序。
|
||||
2-按物理花色从小到大,方块->梅花->红心->黑桃
|
||||
3-按物理花色从大到小,黑桃->红心->梅花->方块
|
||||
返回值: 排序后的牌数组*/
|
||||
var ArithN_direct = 0; //算法大小排序方向
|
||||
var Flower_direct = 0; //物理花色排序方向
|
||||
if (options) {
|
||||
ArithN_direct = parseInt(options[0]);
|
||||
Flower_direct = parseInt(options[1]);
|
||||
}
|
||||
if (!Flower_direct){
|
||||
if (ArithN_direct) {
|
||||
//算法大小从大到小排序时,默认按“黑桃->红心->梅花->方块”排序
|
||||
Flower_direct = 3;
|
||||
} else {
|
||||
//算法大小从小到大排序时,默认按“方块->梅花->红心->黑桃”排序
|
||||
Flower_direct = 2;
|
||||
}
|
||||
}
|
||||
|
||||
//j与j+1互换位置
|
||||
var doChangej = function(){
|
||||
var tmp = o_cardlist[j];
|
||||
o_cardlist[j] = o_cardlist[j + 1];
|
||||
o_cardlist[j + 1] = tmp;
|
||||
}
|
||||
|
||||
for (var i = 0; i < o_cardlist.length; i++){
|
||||
for (var j = 0; j < o_cardlist.length - i - 1; j++){
|
||||
var ArithN_j = this.GetArithN(o_cardlist[j]);
|
||||
var ArithN_j1 = this.GetArithN(o_cardlist[j + 1]);
|
||||
if (ArithN_direct == 0 && ArithN_j > ArithN_j1){
|
||||
//从小到大排序
|
||||
doChangej();
|
||||
continue;
|
||||
}
|
||||
if (ArithN_direct == 1 && ArithN_j < ArithN_j1){
|
||||
//从大到小排序
|
||||
doChangej();
|
||||
continue;
|
||||
}
|
||||
if (ArithN_j == ArithN_j1){
|
||||
//算法大小相同时
|
||||
if (Flower_direct == 1){
|
||||
//不按物理花色排序
|
||||
continue;
|
||||
}
|
||||
var Flower_j = this.GetFlower(o_cardlist[j]);
|
||||
var Flower_j1 = this.GetFlower(o_cardlist[j + 1]);
|
||||
if (Flower_direct == 2 && Flower_j > Flower_j1){
|
||||
//按“方块->梅花->红心->黑桃”排序
|
||||
doChangej();
|
||||
continue;
|
||||
}
|
||||
if (Flower_direct == 3 && Flower_j < Flower_j1){
|
||||
//按“黑桃->红心->梅花->方块”排序
|
||||
doChangej();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return o_cardlist;
|
||||
},
|
||||
|
||||
//获取指定牌型(基础牌型)的各种组合(只组合,无排列)
|
||||
GetCardListByCardType: function(o_cardlist, cardtype, options){
|
||||
/*参数说明
|
||||
o_cardlist:在这些牌中获取指定牌型,必须是经过了从小到大排序后的牌数组。
|
||||
cardtype :目标牌型,长度为2的数组,结构为[同,顺]。
|
||||
例如单张为[1,1],对子为[2,1],五连顺为[1,5]。
|
||||
options :取牌选项,长度为4的数组,结构为[结果数量,取牌方向,拆牌标志,一次标志]
|
||||
第一位:结果数量,0-获取所有可能的结果,>0要取的结果数量,默认为0。
|
||||
比如,牌数组为[2,3,5,7]时,
|
||||
当options[0]=0时,则取单张的结果为2,3,5,7;
|
||||
当options[0]=1时,则取单张的结果为2;
|
||||
当options[0]=3时,则取单张的结果为2,3,5。
|
||||
第二位:取牌方向,0-从小到大取结果,1-从大到小取结果,默认为0。
|
||||
第三位:拆牌标志,0-不拆牌,1-拆牌,默认为0。
|
||||
比如,牌数组为[2,2,3,5,5,5,7],
|
||||
当options[2]=0时,则取单张时会不取对子的牌和三张的牌,即结果为3,7;
|
||||
当options[2]=1时,则取单张时会拆掉对子的牌和三张的牌,即结果为2,3,5,7。
|
||||
第四位:一次标志,0-相同大小的牌只取一次,1-取所有情况,默认为0。
|
||||
比如,牌数组为[红心2, 黑桃2, 方块3, 方块5, 红心5, 黑桃5, 方块7],
|
||||
当options[3]=0时,则取单张的结果为:红心2, 方块3, 方块5, 方块7;
|
||||
当options[3]=1时,则取单张时结果为:红心2, 黑桃2, 方块3, 方块5, 红心5, 黑桃5, 方块7。
|
||||
返回值:满足牌型要求的牌组合数组。
|
||||
格式如
|
||||
[
|
||||
[o_card, o_card, o_card, ...],
|
||||
[o_card, o_card, o_card, ...],
|
||||
[o_card, o_card, o_card, ...],
|
||||
...
|
||||
]
|
||||
注意:统一用第一张牌的算法大小值表示牌型大小,比如34567是顺子,56789也是顺子,用3表示34567顺子的大小,用5表示56789顺子的大小,5大于3,表示56789的顺子比34567的顺子大*/
|
||||
|
||||
var cardtype_tong = parseInt(cardtype[0]); //牌型-同
|
||||
var cardtype_shun = parseInt(cardtype[1]); //牌型-顺
|
||||
var options_count = 0; //结果数量
|
||||
var options_direct= 0; //取牌方向
|
||||
var options_split = 0; //拆牌标志
|
||||
var options_once = 0; //一次标志
|
||||
if (options){
|
||||
options_count = parseInt(options[0]);
|
||||
options_direct= parseInt(options[1]);
|
||||
options_split = parseInt(options[2]);
|
||||
options_once = parseInt(options[3]);
|
||||
}
|
||||
|
||||
//将牌按大小分组,即相同大小的牌归为一组。如,将[2,2,3,5,5,5,7]这样的牌数组转成[[2,2],[3],[5,5,5],[7]]
|
||||
var SameGroupList = [];
|
||||
var SameGroup = [];
|
||||
for (var i = 0; i < o_cardlist.length; i++){
|
||||
var o_card = o_cardlist[i];
|
||||
if (SameGroup.length == 0){
|
||||
SameGroup.push(o_card);
|
||||
} else {
|
||||
var card_ArithN = this.GetArithN(o_card);
|
||||
var SameGroup_ArithN = this.GetArithN(SameGroup[0]);
|
||||
if (card_ArithN == SameGroup_ArithN){
|
||||
SameGroup.push(o_card);
|
||||
} else {
|
||||
SameGroupList.push(SameGroup);
|
||||
SameGroup = [];
|
||||
SameGroup.push(o_card);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (SameGroup.length > 0){
|
||||
SameGroupList.push(SameGroup);
|
||||
}
|
||||
|
||||
//将牌分组按牌型的“同”获取各自的组合。例如,将[[2,2],[3],[5,5,5],[7]]这样的牌分组按“同”等于2转成[[[2,2]], [[方5,梅5],[方5,红5],[梅5,红5]]]
|
||||
var TongGroupList = [];
|
||||
for (var i = 0; i < SameGroupList.length; i++){
|
||||
if (SameGroupList[i].length < cardtype_tong){
|
||||
// TongGroupList.push([]);
|
||||
continue;
|
||||
}
|
||||
if (SameGroupList[i].length == cardtype_tong){
|
||||
TongGroupList.push([SameGroupList[i]]);
|
||||
continue;
|
||||
}
|
||||
if (SameGroupList[i].length > cardtype_tong){
|
||||
if (!options_split){ //不允许拆牌
|
||||
// TongGroupList.push([]);
|
||||
continue;
|
||||
}
|
||||
if (!options_once){ //同样大小的牌只取一次
|
||||
TongGroupList.push([SameGroupList[i].slice(0, cardtype_tong)]);
|
||||
} else {
|
||||
TongGroupList.push(min_CombineInAry(SameGroupList[i], cardtype_tong));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//返回结果
|
||||
var resultlist = [];
|
||||
var ShunGroup = [];
|
||||
//检查ShunGroup是否是连顺,如果是连顺则在ShunGroup取结果保存到resultlist中
|
||||
var check_return_ShunGroup = function(){
|
||||
var isShun = true;
|
||||
for (var j = 0; j < ShunGroup.length; j++){
|
||||
if (ShunGroup[j].length == 0) {
|
||||
isShun = false;
|
||||
break;
|
||||
}
|
||||
if (j > 0) {
|
||||
var j1_ArithN = this.GetArithN(ShunGroup[j-1][0][0]);
|
||||
var j_ArithN = this.GetArithN(ShunGroup[j][0][0]);
|
||||
//相减等于1表示是顺
|
||||
if (j_ArithN - j1_ArithN != 1){
|
||||
isShun = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isShun){
|
||||
return false;
|
||||
}
|
||||
var result = min_CombineByArys(ShunGroup);
|
||||
for (var j = 0; j < result.length; j++) {
|
||||
var temp = [];
|
||||
for (var k = 0; k < result[j].length; k++) {
|
||||
temp = temp.concat(result[j][k]);
|
||||
}
|
||||
resultlist.push(temp);
|
||||
|
||||
if (options_count && resultlist.length >= options_count) {
|
||||
//达到了要取的结果数量
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}.bind(this);
|
||||
|
||||
//按牌型的“顺”获取符合要求的结果
|
||||
if (!options_direct){
|
||||
//从小到大取结果
|
||||
for (var i = 0; i <= TongGroupList.length - cardtype_shun; i++){
|
||||
ShunGroup = TongGroupList.slice(i, i + cardtype_shun);
|
||||
if (check_return_ShunGroup()){
|
||||
return resultlist;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//从大到小取结果
|
||||
for (var i = TongGroupList.length - cardtype_shun; i >= 0; i--){
|
||||
ShunGroup = TongGroupList.slice(i, i + cardtype_shun);
|
||||
if (check_return_ShunGroup()){
|
||||
return resultlist;
|
||||
}
|
||||
}
|
||||
}
|
||||
return resultlist;
|
||||
},
|
||||
GetCardListByCardTypeA: function(o_cardlist, cardtype, options, min_ArithN, max_ArithN){
|
||||
/*参数说明
|
||||
o_cardlist:同GetCardListByCardType中的参数说明。
|
||||
cardtype :同GetCardListByCardType中的参数说明。
|
||||
options :同GetCardListByCardType中的参数说明。
|
||||
min_ArithN:同FilterCardListByArithN中的参数说明。
|
||||
max_ArithN:同FilterCardListByArithN中的参数说明。
|
||||
返回值:同GetCardListByCardType中的参数说明。*/
|
||||
var cardlist = this.FilterCardListByArithN(o_cardlist, min_ArithN, max_ArithN);
|
||||
return this.GetCardListByCardType(cardlist, cardtype, options);
|
||||
},
|
||||
GetCardListByCardTypeB: function(o_cardlist, cardtype, options, ArithF, min_ArithN, max_ArithN){
|
||||
/*参数说明
|
||||
o_cardlist:可以是未排序的牌数组,该函数会实现排序。
|
||||
cardtype :同GetCardListByCardType中的参数说明。
|
||||
options :同GetCardListByCardType中的参数说明。
|
||||
ArithF :同FilterCardListByArithF中的参数说明。
|
||||
min_ArithN:同FilterCardListByArithN中的参数说明。
|
||||
max_ArithN:同FilterCardListByArithN中的参数说明。
|
||||
返回值:同GetCardListByCardType中的参数说明。*/
|
||||
var cardlist = this.FilterCardListByArithF(o_cardlist, ArithF);
|
||||
this.SortCardList(cardlist);
|
||||
cardlist = this.FilterCardListByArithN(cardlist, min_ArithN, max_ArithN);
|
||||
return this.GetCardListByCardType(cardlist, cardtype, options);
|
||||
},
|
||||
|
||||
//获取指定牌型(扩展牌型)的一种组合(只取一种组合)
|
||||
GetCardListByExtendCardTypeA: function(o_cardlist, cardtypelist){
|
||||
/*参数说明
|
||||
o_cardlist :同GetCardListByCardTypeA中的参数说明。
|
||||
cardtypelist:扩展牌型和取牌选项。
|
||||
结构为[
|
||||
[cardtype, options, min_ArithN, max_ArithN],
|
||||
[cardtype, options, min_ArithN, max_ArithN],
|
||||
[cardtype, options, min_ArithN, max_ArithN]
|
||||
]
|
||||
其中cardtype、options、min_ArithN、max_ArithN同GetCardListByCardTypeA中的参数说明。
|
||||
例如3带1,cardtypelist=[
|
||||
[[3,1], [1,x,x,x], min_ArithN, max_ArithN],
|
||||
[[1,1], [1,x,x,x], min_ArithN, max_ArithN]
|
||||
]
|
||||
3带2,cardtypelist=[
|
||||
[[3,1], [1,x,x,x], min_ArithN, max_ArithN],
|
||||
[[1,1], [1,x,x,x], min_ArithN, max_ArithN],
|
||||
[[1,1], [1,x,x,x], min_ArithN, max_ArithN]
|
||||
]
|
||||
3带1对,cardtypelist=[
|
||||
[[3,1], [1,x,x,x], min_ArithN, max_ArithN],
|
||||
[[2,1], [1,x,x,x], min_ArithN, max_ArithN]
|
||||
]
|
||||
注意:options中第一参数一定为1,表示只取一个结果,如果传的值不等于1,也会按等于1处理。
|
||||
|
||||
返回值:同GetCardListByCardTypeA中的参数说明。*/
|
||||
|
||||
var cardlist = o_cardlist;
|
||||
var result = [];
|
||||
for (var i = 0; i < cardtypelist.length; i++){
|
||||
var cardtype = cardtypelist[i][0];
|
||||
var options = cardtypelist[i][1];
|
||||
if (options[0] != 1){
|
||||
options[0] = 1;
|
||||
}
|
||||
var min_ArithN = cardtypelist[i][2];
|
||||
var max_ArithN = cardtypelist[i][3];
|
||||
var BaseCardGroup = this.GetCardListByCardTypeA(cardlist, cardtype, options, min_ArithN, max_ArithN);
|
||||
if (BaseCardGroup.length == 0){
|
||||
return [];
|
||||
}
|
||||
result = result.concat(BaseCardGroup[0]);
|
||||
cardlist = min_ary_deduct(cardlist, BaseCardGroup[0]);
|
||||
}
|
||||
return [result];
|
||||
},
|
||||
|
||||
//获取牌数组的最大牌型
|
||||
GetMaxCardTypeByCardList: function(o_cardlist, option){
|
||||
/*参数说明
|
||||
o_cardlist: 必须是经过了从小到大排序后的牌数组。
|
||||
option: 选项,默认为0
|
||||
0-返回"同"最多的最大牌型(如果"同"相同则取"顺"最多的,如果"顺"也相同则取"值"最大的)
|
||||
1-返回"顺"最多的最大牌型(如果"顺"相同则取"同"最多的,如果"同"也相同则取"值"最大的)
|
||||
返回值:结构为[cardtype, cardlist]。其中,
|
||||
cardtype为基础牌型,结构为[同,顺];
|
||||
cardlist为满足cardtype的牌数组,牌型相同时取最大值的牌。
|
||||
|
||||
例如,当option=0时,
|
||||
牌数组为[3,7,7,7,9,9,J,J,J,Q,Q], 返回值为[[3,1], [J,J,J]]
|
||||
牌数组为[3,7,7,7,8,8,8,9,9,J,J,J,Q,Q], 返回值为[[3,2], [7,7,7,8,8,8]]
|
||||
牌数组为[3,7,7,7,8,8,8,9,9,J,J,J,Q,Q,Q],返回值为[[3,2], [J,J,J,Q,Q,Q]]
|
||||
当option=1时,
|
||||
牌数组为[2,4,5,6,8,9,J,J,Q,Q,K], 返回值为[[1,3], [J,Q,K]]
|
||||
牌数组为[2,4,4,5,5,6,6,8,9,J,J,Q,Q,K], 返回值为[[2,3], [4,4,5,5,6,6]]
|
||||
牌数组为[2,4,4,5,5,6,6,8,9,J,J,Q,Q,K,K],返回值为[[3,2], [J,J,Q,Q,K,K]]*/
|
||||
var result = [];
|
||||
|
||||
//将o_cardlist按大小分组。
|
||||
//如,将[2,2,3,5,5,5,7]这样的牌数组转成[[2,2],[3],[5,5,5],[7]]
|
||||
var changeto_SameGroupList = function(){
|
||||
var SameGroupList = [];
|
||||
var SameGroup = [];
|
||||
for (var i = 0; i < o_cardlist.length; i++){
|
||||
var o_card = o_cardlist[i];
|
||||
if (SameGroup.length == 0){
|
||||
SameGroup.push(o_card);
|
||||
} else {
|
||||
var card_ArithN = this.GetArithN(o_card);
|
||||
var SameGroup_ArithN = this.GetArithN(SameGroup[0]);
|
||||
if (card_ArithN == SameGroup_ArithN){
|
||||
SameGroup.push(o_card);
|
||||
} else {
|
||||
SameGroupList.push(SameGroup);
|
||||
SameGroup = [];
|
||||
SameGroup.push(o_card);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (SameGroup.length > 0){
|
||||
SameGroupList.push(SameGroup);
|
||||
}
|
||||
return SameGroupList;
|
||||
}.bind(this);
|
||||
|
||||
var SameGroupList = changeto_SameGroupList();
|
||||
switch (option){
|
||||
case 0: //取"同"最多的牌型 [A,2,2,3,4,4,5,5,7,7,8,8,9,9,J,J,Q,Q,K,K]
|
||||
//检查ShunGroup是否是连顺
|
||||
var check_ShunGroup_isShun = function(){
|
||||
for (var j = 0; j < ShunGroup.length; j++){
|
||||
if (ShunGroup[j].length == 0) {
|
||||
return false;
|
||||
}
|
||||
if (j > 0) {
|
||||
var j1_ArithN = this.GetArithN(ShunGroup[j-1][0]);
|
||||
var j_ArithN = this.GetArithN(ShunGroup[j][0]);
|
||||
//相减等于1表示是顺
|
||||
if (j_ArithN - j1_ArithN != 1){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}.bind(this);
|
||||
|
||||
result[0] = [SameGroupList[0].length, 1];
|
||||
result[1] = SameGroupList[0];
|
||||
for (var i = 1; i < SameGroupList.length; i++) {
|
||||
if (SameGroupList[i].length > result[0][0]){
|
||||
result[0] = [SameGroupList[i].length, 1];
|
||||
result[1] = SameGroupList[i];
|
||||
} else if (SameGroupList[i].length == result[0][0]){
|
||||
var ArithN_i = this.GetArithN(SameGroupList[i][0]);
|
||||
var ArithN_r = this.GetArithN(result[1][result[1].length - 1]);
|
||||
if (ArithN_i - ArithN_r == 1){ //相减等于1表示是顺
|
||||
result[0][1] = result[0][1] + 1;
|
||||
result[1] = result[1].concat(SameGroupList[i]);
|
||||
} else {
|
||||
if (i + result[0][1] <= SameGroupList.length){
|
||||
var ShunGroup = SameGroupList.slice(i, i + result[0][1]);
|
||||
var isShun = check_ShunGroup_isShun();
|
||||
if (isShun){
|
||||
var check_Tong = true;
|
||||
for (var j = 1; j < ShunGroup.length; j++) {
|
||||
if (ShunGroup[j].length != result[0][0]){
|
||||
check_Tong = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (check_Tong) {
|
||||
result[1] = [];
|
||||
for (var j = 0; j < ShunGroup.length; j++) {
|
||||
result[1] = result[1].concat(ShunGroup[j]);
|
||||
}
|
||||
i = i + result[0][1] - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1: //取"顺"最多的牌型 [A,3,4,6,8,8,9,9,J,J,J,Q,Q,Q]
|
||||
//将SameGroupList转成ShunGroupList
|
||||
//如,将[[2,2],[3],[5,5,5],[6,6],[7],[9,9]]转成[[[2,2],[3]], [[5,5,5],[6,6],[7]], [[9,9]]]
|
||||
var changeto_ShunGroupList = function(){
|
||||
var ShunGroupList = [];
|
||||
for (var i = 0; i < SameGroupList.length; i++) {
|
||||
var ArithN_i = this.GetArithN(SameGroupList[i][0]);
|
||||
var isFound = false;
|
||||
for (var j = 0; j < ShunGroupList.length; j++) {
|
||||
var ArithN_j = this.GetArithN(ShunGroupList[j][ShunGroupList[j].length - 1][0]);
|
||||
if (ArithN_i - ArithN_j == 1) {
|
||||
ShunGroupList[j].push(SameGroupList[i]);
|
||||
isFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isFound){
|
||||
ShunGroupList.push([SameGroupList[i]]);
|
||||
}
|
||||
}
|
||||
return ShunGroupList;
|
||||
}.bind(this);
|
||||
|
||||
//获取ShunGroup中最小的"同"数
|
||||
var get_ShunGroup_minTong = function(){
|
||||
var min_Tong = ShunGroup[0].length;
|
||||
for (var j = 1; j < ShunGroup.length; j++) {
|
||||
if (ShunGroup[j].length < min_Tong) {
|
||||
min_Tong = ShunGroup[j].length;
|
||||
}
|
||||
}
|
||||
return min_Tong;
|
||||
}.bind(this);
|
||||
|
||||
//根据ShunGroup的min_Tong设置result
|
||||
var set_result_byShunGroup_byMinTong = function(){
|
||||
result[0] = [min_Tong, ShunGroup.length];
|
||||
result[1] = [];
|
||||
for (var j = 0; j < ShunGroup.length; j++) {
|
||||
result[1] = result[1].concat(ShunGroup[j].slice(0, min_Tong));
|
||||
}
|
||||
}.bind(this);
|
||||
|
||||
var ShunGroupList = changeto_ShunGroupList();
|
||||
//在ShunGroupList中取最长的"顺"
|
||||
for (var i = 0; i < ShunGroupList.length; i++) {
|
||||
var ShunGroup = ShunGroupList[i];
|
||||
var min_Tong = get_ShunGroup_minTong();
|
||||
if (i == 0){
|
||||
set_result_byShunGroup_byMinTong();
|
||||
} else {
|
||||
if (ShunGroup.length > result[0][1]) {
|
||||
set_result_byShunGroup_byMinTong();
|
||||
} else if (ShunGroup.length == result[0][1]) {
|
||||
if (min_Tong >= result[0][0]){
|
||||
set_result_byShunGroup_byMinTong();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
},
|
||||
GetMaxCardTypeByCardListA: function(o_cardlist){
|
||||
/*参数说明 o_cardlist:可以是未排序的牌数组,该函数会实现排序。*/
|
||||
this.SortCardList(o_cardlist);
|
||||
return this.GetMaxCardTypeByCardList(o_cardlist);
|
||||
},
|
||||
|
||||
//新建单张牌类
|
||||
NewClass: function(){
|
||||
var cls = {};
|
||||
cls.New = cls_card2.New;
|
||||
cls.declare = cls_card2.declare;
|
||||
cls.GetId = cls_card2.GetId;
|
||||
cls.GetFlower = cls_card2.GetFlower;
|
||||
cls.GetNumber = cls_card2.GetNumber;
|
||||
cls.GetArithF = cls_card2.GetArithF;
|
||||
cls.SetArithF = cls_card2.SetArithF;
|
||||
cls.GetArithN = cls_card2.GetArithN;
|
||||
cls.SetArithN = cls_card2.SetArithN;
|
||||
cls.GetScore = cls_card2.GetScore;
|
||||
cls.SetScore = cls_card2.SetScore;
|
||||
cls.GetDeal = cls_card2.GetDeal;
|
||||
cls.SetDeal = cls_card2.SetDeal;
|
||||
cls.GetStart = cls_card2.GetStart;
|
||||
cls.SetStart = cls_card2.SetStart;
|
||||
cls.GetPlay = cls_card2.GetPlay;
|
||||
cls.SetPlay = cls_card2.SetPlay;
|
||||
cls.GetIndex = cls_card2.GetIndex;
|
||||
cls.SetIndex = cls_card2.SetIndex;
|
||||
cls.GetOver = cls_card2.GetOver;
|
||||
cls.SetOver = cls_card2.SetOver;
|
||||
cls.GetTag1 = cls_card2.GetTag1;
|
||||
cls.SetTag1 = cls_card2.SetTag1;
|
||||
cls.GetTag2 = cls_card2.GetTag2;
|
||||
cls.SetTag2 = cls_card2.SetTag2;
|
||||
cls.GetTag3 = cls_card2.GetTag3;
|
||||
cls.SetTag3 = cls_card2.SetTag3;
|
||||
cls.FilterCardListByArithF = cls_card2.FilterCardListByArithF;
|
||||
cls.FilterCardListByArithN = cls_card2.FilterCardListByArithN;
|
||||
cls.SortCardList = cls_card2.SortCardList;
|
||||
cls.GetCardListByCardType = cls_card2.GetCardListByCardType;
|
||||
cls.GetCardListByCardTypeA = cls_card2.GetCardListByCardTypeA;
|
||||
cls.GetCardListByCardTypeB = cls_card2.GetCardListByCardTypeB;
|
||||
cls.GetCardListByExtendCardTypeA = cls_card2.GetCardListByExtendCardTypeA;
|
||||
cls.GetMaxCardTypeByCardList = cls_card2.GetMaxCardTypeByCardList;
|
||||
cls.GetMaxCardTypeByCardListA = cls_card2.GetMaxCardTypeByCardListA;
|
||||
return cls;
|
||||
}
|
||||
}
|
||||
|
||||
225
codes/games/client/Projects/zpy/js/class/class.desk.js
Normal file
225
codes/games/client/Projects/zpy/js/class/class.desk.js
Normal file
@@ -0,0 +1,225 @@
|
||||
///////////////////////////////////////////////////
|
||||
/////////////// cls_desk: 牌桌基础类 //////////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_desk = cls_desk || {
|
||||
|
||||
//创建单个牌桌实例
|
||||
new: function(o_room){
|
||||
/*
|
||||
参数说明:
|
||||
o_room 牌桌对应的房间对象
|
||||
|
||||
补充说明:
|
||||
1,房间对象由框架负责创建和释放。
|
||||
2,房间对象管理的是人,解决诸如谁在房间里,谁在哪个位置上,谁进了房间,谁离开了房间等问题。
|
||||
3,牌桌对象由游戏负责创建,牌桌对象会随着房间的释放而释放,子游戏不用管牌桌的释放。
|
||||
4,牌桌对象管理的是牌,解决诸如哪个位置上发了什么牌,出了什么牌等问题。
|
||||
5,此牌桌类是基础牌桌类,各子游戏需要在继承此基础类的情况下编写自己的牌桌类。
|
||||
*/
|
||||
var desk = {};
|
||||
|
||||
//牌桌与房间互挂
|
||||
o_room.o_desk = desk; //可通过房间对象的o_desk属性访问牌桌对象
|
||||
desk.o_room = o_room; //可通过牌桌对象的o_desk属性访问房间对象
|
||||
|
||||
//数据
|
||||
desk.data = {}; //要求data必须是纯数据,不能在data下面写方法、函数、定时器
|
||||
//定时器
|
||||
desk.timer = {}; //可根据实际需要在desk.timer下定义多个定时器
|
||||
//收发包
|
||||
desk.pack = []; //调试状态下记录牌桌的收包发包情况
|
||||
//流程方法
|
||||
desk.flow = {};
|
||||
//算法方法
|
||||
desk.arith = {};
|
||||
|
||||
//////////在下面定义实例的属性
|
||||
//数据-小局列表
|
||||
desk.data.asetlist = []; //每开一小局则往该数组中添加一个aset小局对象,[aset, aset, aset, ...], [{}, {}, {}, ...], [[], [], [], ...],数组长度即可表示当前是第几小局,数组最后一个小局对象即是当前小局
|
||||
|
||||
|
||||
/////////在下面定义实例的方法,要求实例的方法必须调用类的方法,以节省内存资源,要求实例的方法名要与类的方法名保持一致
|
||||
//记录游戏的收包情况(不包括框架的收包),要求前端向服务器发包时根据配置参数的设置情况将前端内存数据一起发上来,数据放在pack.data.d里面,服务器收到包后必须调用该方法
|
||||
desk.flow.save_receivepack = function(pack, seat, playerid){
|
||||
return cls_desk.save_receivepack(desk, pack, seat, playerid);
|
||||
}
|
||||
//记录游戏的发包情况(不包括框架的发包),要求服务器向前端发包后一定要调用该方法
|
||||
desk.flow.save_sendpack = function(pack, seat, playerid){
|
||||
return cls_desk.save_sendpack(desk, pack, seat, playerid);
|
||||
}
|
||||
//将当前小局的收发包情况保存成TXT
|
||||
desk.flow.save_pack_curraset = function(callback_succ, callback_fail){
|
||||
return cls_desk.save_pack_curraset(desk, callback_succ, callback_fail);
|
||||
}
|
||||
//输出日志
|
||||
desk.flow.save_log = function(dir, file, log){
|
||||
return cls_desk.save_log(desk, dir, file, log);
|
||||
}
|
||||
//清日志
|
||||
desk.flow.clear_log = function(dir, file){
|
||||
return cls_desk.clear_log(desk, dir, file);
|
||||
}
|
||||
//获取当前小局对象
|
||||
desk.flow.get_curraset = function(){
|
||||
return cls_desk.get_curraset(desk); //必须调用类的方法,且需要将实例对象作为参数传入类方法,这里只能写一句代码
|
||||
}
|
||||
//获取当前小局局数
|
||||
desk.flow.get_currasetnum = function(){
|
||||
return cls_desk.get_currasetnum(desk); //必须调用类的方法,且需要将实例对象作为参数传入类方法,这里只能写一句代码
|
||||
}
|
||||
|
||||
return desk;
|
||||
},
|
||||
|
||||
////////////以下都是类的方法,要求所有的逻辑算法全部都要用类方法来实现
|
||||
//记录收包情况
|
||||
save_receivepack: function(o_desk, pack, seat, playerid){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){ //如果是调试状态下,则记录收包情况
|
||||
var o_save = {};
|
||||
o_save.time = min_now(); //时间
|
||||
o_save.type = 0; //收包
|
||||
o_save.seat = seat; //位置
|
||||
o_save.playerid = playerid; //玩家id
|
||||
o_save.data = {};
|
||||
//前端内存数据
|
||||
o_save.data.client = pack.data.d;
|
||||
//服务器房间内存数据
|
||||
o_save.data.room = o_desk.o_room.method.get_roominfo();
|
||||
//服务器牌桌内存数据
|
||||
o_save.data.desk = min_copyjson(o_desk.data);
|
||||
for (var i = 0; i < o_save.data.desk.asetlist.length; i++) {
|
||||
if (i < o_save.data.desk.asetlist.length - 1){
|
||||
o_save.data.desk.asetlist[i] = null;
|
||||
};
|
||||
};
|
||||
delete pack.data.d;
|
||||
//接收到的数据包
|
||||
o_save.pack = pack;
|
||||
o_desk.pack.push(o_save);
|
||||
}
|
||||
}catch(e){};
|
||||
},
|
||||
//记录发包情况
|
||||
save_sendpack: function(o_desk, pack, seat, playerid){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){ //如果是调试状态下,则记录发包情况
|
||||
var o_save = {};
|
||||
o_save.time = min_now(); //时间
|
||||
o_save.type = 1; //发包
|
||||
o_save.seat = seat; //位置
|
||||
o_save.playerid = playerid; //玩家id
|
||||
o_save.data = {};
|
||||
//服务器房间内存数据
|
||||
o_save.data.room = o_desk.o_room.method.get_roominfo();
|
||||
//服务器牌桌内存数据
|
||||
o_save.data.desk = min_copyjson(o_desk.data);
|
||||
for (var i = 0; i < o_save.data.desk.asetlist.length; i++) {
|
||||
if (i < o_save.data.desk.asetlist.length - 1){
|
||||
o_save.data.desk.asetlist[i] = null;
|
||||
};
|
||||
};
|
||||
//发送的数据包
|
||||
o_save.pack = pack;
|
||||
o_desk.pack.push(o_save);
|
||||
}
|
||||
}catch(e){};
|
||||
},
|
||||
//将当前小局的收发包情况保存成TXT
|
||||
save_pack_curraset: function(o_desk, callback_succ, callback_fail){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
o_desk.pack[i].saveflag = 1;
|
||||
};
|
||||
|
||||
var o_makewartime = new Date(o_desk.o_room.makewartime);
|
||||
var yyyy = o_makewartime.getFullYear();
|
||||
var mm = o_makewartime.getMonth() + 1;
|
||||
var dd = o_makewartime.getDate();
|
||||
var dir = yyyy + "-" + mm + "-" + dd;
|
||||
var file = o_desk.o_room.o_game.o_agent.agentid + "-" + o_desk.o_room.o_game.gameid + "-" + o_desk.o_room.roomcode + "-" + o_desk.flow.get_currasetnum() + ".txt";
|
||||
var data = JSON.stringify(o_desk.pack);
|
||||
|
||||
var cfg = {};
|
||||
cfg.url = "http://120.26.52.206:8080/debug.php";
|
||||
// cfg.url = "http://10.117.216.66:8080/debug.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file + "&data=" + data;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
if (o_desk.pack[i].saveflag){
|
||||
o_desk.pack.splice(i, 1);
|
||||
i--;
|
||||
};
|
||||
};
|
||||
if(callback_succ){
|
||||
callback_succ();
|
||||
};
|
||||
};
|
||||
cfg.error = function(str){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
if (o_desk.pack[i].saveflag){
|
||||
delete o_desk.pack[i].saveflag;
|
||||
};
|
||||
};
|
||||
console.log(min_now() + " 保存牌局调试数据失败1");
|
||||
console.log("dir=" + dir);
|
||||
console.log("file=" + file);
|
||||
console.log(str);
|
||||
if(callback_fail){
|
||||
callback_fail();
|
||||
};
|
||||
};
|
||||
min_http(cfg);
|
||||
}
|
||||
}catch(e){
|
||||
console.log(min_now() + " 保存牌局调试数据失败2");
|
||||
console.log("dir=" + dir);
|
||||
console.log("file=" + file);
|
||||
console.log(e);
|
||||
};
|
||||
},
|
||||
//输出日志
|
||||
save_log: function(o_desk, dir, file, log){
|
||||
try{
|
||||
var cfg = {};
|
||||
cfg.url = "http://120.26.52.206:8080/savelog.php";
|
||||
// cfg.url = "http://10.117.216.66:8080/savelog.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file + "&data=" + log;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){};
|
||||
cfg.error = function(str){
|
||||
console.log(min_now() + " 输出日志失败:" + dir + "/" + file);
|
||||
console.log(str);
|
||||
};
|
||||
min_http(cfg);
|
||||
}catch(e){}
|
||||
},
|
||||
//清日志
|
||||
clear_log: function(o_desk, dir, file){
|
||||
try{
|
||||
var cfg = {};
|
||||
cfg.url = "http://120.26.52.206:8080/clearlog.php";
|
||||
// cfg.url = "http://10.117.216.66:8080/clearlog.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){};
|
||||
cfg.error = function(str){
|
||||
console.log(min_now() + " 清空日志失败:" + dir + "/" + file);
|
||||
console.log(str);
|
||||
};
|
||||
min_http(cfg);
|
||||
}catch(e){}
|
||||
},
|
||||
//获取当前小局对象
|
||||
get_curraset: function(o_desk){
|
||||
return o_desk.data.asetlist[desk.data.asetlist.length - 1];
|
||||
},
|
||||
//获取当前小局局数
|
||||
get_currasetnum: function(o_desk){
|
||||
return o_desk.data.asetlist.length;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
287
codes/games/client/Projects/zpy/js/class/class.desk2.js
Normal file
287
codes/games/client/Projects/zpy/js/class/class.desk2.js
Normal file
@@ -0,0 +1,287 @@
|
||||
/*================= cls_desk2: 牌桌基础类 =================
|
||||
说明:
|
||||
1,房间对象由框架负责创建和释放。
|
||||
2,房间对象管理的是人,解决诸如谁在房间里,谁在哪个位置上,谁进了房间,谁离开了房间等问题。
|
||||
3,牌桌对象由游戏负责创建,牌桌对象会随着房间的释放而释放,子游戏不用管牌桌的释放。
|
||||
4,牌桌对象管理的是牌,解决诸如哪个位置上发了什么牌,出了什么牌等问题。
|
||||
|
||||
注意:
|
||||
1,此牌桌类是基础类;各子游戏需要在继承此基础类的情况下编写自己的牌桌类。
|
||||
2,子游戏开发人员不能修改该文件。
|
||||
3,子游戏只能调用实例方法,不能直接调用类方法。
|
||||
=========================================================*/
|
||||
var cls_desk2 = {
|
||||
|
||||
//debug服务器地址
|
||||
// debugserver: "120.26.52.206:8080", //外网地址,开发人员本地调试时使用该地址
|
||||
debugserver: "10.117.216.66:8080", //内网地址,正式服务器上使用该地址
|
||||
|
||||
//创建实例
|
||||
new: function(object_room){//参数说明:object_room 牌桌对应的房间对象
|
||||
var object = {};
|
||||
|
||||
//牌桌与房间互挂
|
||||
object_room.o_desk = object; //可通过房间对象的o_desk属性访问牌桌对象
|
||||
object.o_room = object_room; //可通过牌桌对象的o_desk属性访问房间对象
|
||||
|
||||
//=============== 在下面定义实例的属性 ===============
|
||||
//数据
|
||||
object.data = {}; //要求data必须是纯数据,不能在data下面写方法、函数、定时器
|
||||
//定时器
|
||||
object.timer = {}; //可根据实际需要在desk.timer下定义多个定时器
|
||||
//收发包
|
||||
object.pack = []; //调试状态下记录牌桌的收包发包情况
|
||||
//bug调试方法
|
||||
object.debug = {};
|
||||
//游戏内容方法
|
||||
object.method = {};
|
||||
|
||||
//小局列表。每开一小局则往该数组中添加一个aset小局对象,格式如[aset, aset, aset, ...],数组长度即可表示当前是第几小局,数组最后一个小局对象即是当前小局
|
||||
object.data.asetlist = [];
|
||||
|
||||
|
||||
//=============== 在下面定义实例的方法 ===============
|
||||
/*1,要求实例的方法必须调用类的方法,以节省内存资源。
|
||||
2,要求实例的方法必须只用一句代码调用类的方法,并将实例对象作为第一个参数传给类方法。
|
||||
3,要求实例的方法名要与类的方法名保持一致。*/
|
||||
|
||||
//====================== bug调试 =====================
|
||||
//记录游戏的收包情况(不包括框架的收包),要求前端向服务器发包时根据isdebugger参数的配置情况将前端的内存数据一起发上来,数据放在pack.data.d里面,服务器收到前端发来的包后必须调用该方法
|
||||
//参数说明:pack前端发来的包,seat哪个位置发来的包,哪个玩家发来的包
|
||||
object.debug.save_receivepack = function(pack, seat, playerid){
|
||||
return cls_desk2.save_receivepack(object, pack, seat, playerid);
|
||||
}
|
||||
//记录游戏的发包情况(不包括框架的发包),要求服务器向前端发包后一定要调用该方法
|
||||
/*参数说明:pack向前端发的包,seat给哪个位置发包,给哪个玩家发包。
|
||||
如果是向所有玩家发包则seat传-1,playerid传null,
|
||||
如果是向多个玩家发包则seat传位置数组,playerid传玩家id数组*/
|
||||
object.debug.save_sendpack = function(pack, seat, playerid){
|
||||
return cls_desk2.save_sendpack(object, pack, seat, playerid);
|
||||
}
|
||||
//将当前小局的收发包情况保存到debug服务器上,要求小局结算后,下一个小局新建前调用此方法
|
||||
//参数说明:callback_succ保存成功的回调函数,callback_fail保存失败的回调函数
|
||||
object.debug.save_pack_curraset = function(callback_succ, callback_fail){
|
||||
return cls_desk2.save_pack_curraset(object, callback_succ, callback_fail);
|
||||
}
|
||||
//输出调试日志到debug服务器上,输入后可在debug服务器上或浏览器中查看日志内容
|
||||
//参数说明:dir日志目录名,file日志文件名,log要输出的日志内容
|
||||
object.debug.save_log = function(dir, file, log){
|
||||
return cls_desk2.save_log(object, dir, file, log);
|
||||
}
|
||||
//清空debug服务器上的调试日志
|
||||
//参数说明:dir日志目录名,file日志文件名
|
||||
object.debug.clear_log = function(dir, file){
|
||||
return cls_desk2.clear_log(object, dir, file);
|
||||
}
|
||||
|
||||
|
||||
//====================== 游戏内容 =====================
|
||||
//对应的小局类
|
||||
object.method.AsetClass = function(){
|
||||
return cls_aset2;
|
||||
}
|
||||
//新建一小局
|
||||
object.method.NewAset = function(){
|
||||
return cls_desk2.NewAset(object);
|
||||
}
|
||||
//大局结算
|
||||
object.method.CloseAccount = function(){
|
||||
return cls_desk2.CloseAccount(object);
|
||||
}
|
||||
|
||||
//获取当前小局对象
|
||||
object.method.CurrAset = function(){
|
||||
return cls_desk2.CurrAset(object);
|
||||
}
|
||||
//获取当前小局是第几小局
|
||||
object.method.CurrAsetNum = function(){
|
||||
return cls_desk2.CurrAsetNum(object);
|
||||
}
|
||||
//获取下一个有人的位置
|
||||
object.method.GetNextSeat = function(seat){
|
||||
return cls_desk2.GetNextSeat(object, seat);
|
||||
}
|
||||
|
||||
return object;
|
||||
},
|
||||
|
||||
//================ 在下面定义类的方法 ================
|
||||
//===================== bug调试 ======================
|
||||
//记录服务器收包情况
|
||||
save_receivepack: function(o_desk, pack, seat, playerid){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){ //如果是调试状态下,则记录收包情况
|
||||
var o_save = {};
|
||||
o_save.time = min_now(); //记录的时间
|
||||
o_save.type = 0; //服务器收到前端的发包
|
||||
o_save.seat = seat; //哪个位置发来的包
|
||||
o_save.playerid = playerid; //哪个玩家发来的包
|
||||
o_save.data = {};
|
||||
//前端内存数据
|
||||
o_save.data.client = pack.data.d;
|
||||
//服务器房间内存数据
|
||||
o_save.data.room = o_desk.o_room.method.get_roominfo();
|
||||
//服务器牌桌内存数据
|
||||
o_save.data.desk = min_copyjson(o_desk.data);
|
||||
for (var i = 0; i < o_save.data.desk.asetlist.length; i++) {
|
||||
if (i < o_save.data.desk.asetlist.length - 1){
|
||||
o_save.data.desk.asetlist[i] = null;
|
||||
};
|
||||
};
|
||||
delete pack.data.d;
|
||||
//接收到的数据包
|
||||
o_save.pack = pack;
|
||||
o_desk.pack.push(o_save);
|
||||
}
|
||||
}catch(e){};
|
||||
},
|
||||
//记录服务器发包情况
|
||||
save_sendpack: function(o_desk, pack, seat, playerid){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){ //如果是调试状态下,则记录发包情况
|
||||
var o_save = {};
|
||||
o_save.time = min_now(); //记录的时间
|
||||
o_save.type = 1; //服务器向前端发包
|
||||
o_save.seat = seat; //服务器向哪个位置发包
|
||||
o_save.playerid = playerid; //服务器向哪个玩家发包
|
||||
o_save.data = {};
|
||||
//服务器房间内存数据
|
||||
o_save.data.room = o_desk.o_room.method.get_roominfo();
|
||||
//服务器牌桌内存数据
|
||||
o_save.data.desk = min_copyjson(o_desk.data);
|
||||
for (var i = 0; i < o_save.data.desk.asetlist.length; i++) {
|
||||
if (i < o_save.data.desk.asetlist.length - 1){
|
||||
o_save.data.desk.asetlist[i] = null;
|
||||
};
|
||||
};
|
||||
//发送的数据包
|
||||
o_save.pack = pack;
|
||||
o_desk.pack.push(o_save);
|
||||
}
|
||||
}catch(e){};
|
||||
},
|
||||
//将当前小局的收发包情况保存到debug服务器上
|
||||
save_pack_curraset: function(o_desk, callback_succ, callback_fail){
|
||||
try{
|
||||
if (o_desk.o_room.o_game.method.isdebugger()){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
o_desk.pack[i].saveflag = 1;
|
||||
};
|
||||
|
||||
var o_makewartime = new Date(o_desk.o_room.makewartime);
|
||||
var yyyy = o_makewartime.getFullYear();
|
||||
var mm = o_makewartime.getMonth() + 1;
|
||||
var dd = o_makewartime.getDate();
|
||||
var dir = yyyy + "-" + mm + "-" + dd;
|
||||
var file = o_desk.o_room.o_game.o_agent.agentid + "-" + o_desk.o_room.o_game.gameid + "-" + o_desk.o_room.roomcode + "-" + o_desk.method.CurrAsetNum() + ".txt";
|
||||
var data = JSON.stringify(o_desk.pack);
|
||||
|
||||
var cfg = {};
|
||||
cfg.url = "http://" + cls_desk2.debugserver + "/debug.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file + "&data=" + data;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
if (o_desk.pack[i].saveflag){
|
||||
o_desk.pack.splice(i, 1);
|
||||
i--;
|
||||
};
|
||||
};
|
||||
if(callback_succ){
|
||||
callback_succ();
|
||||
};
|
||||
};
|
||||
cfg.error = function(str){
|
||||
for (var i = 0; i < o_desk.pack.length; i++) {
|
||||
if (o_desk.pack[i].saveflag){
|
||||
delete o_desk.pack[i].saveflag;
|
||||
};
|
||||
};
|
||||
console.log(min_now() + " 保存牌局调试数据失败1");
|
||||
console.log("dir=" + dir);
|
||||
console.log("file=" + file);
|
||||
console.log(str);
|
||||
if(callback_fail){
|
||||
callback_fail();
|
||||
};
|
||||
};
|
||||
min_http(cfg);
|
||||
}
|
||||
}catch(e){
|
||||
console.log(min_now() + " 保存牌局调试数据失败2");
|
||||
console.log("dir=" + dir);
|
||||
console.log("file=" + file);
|
||||
console.log(e);
|
||||
};
|
||||
},
|
||||
//输出调试日志到debug服务器上
|
||||
save_log: function(o_desk, dir, file, log){
|
||||
try{
|
||||
if (typeof(log) == "object"){
|
||||
log = JSON.stringify(log);
|
||||
}
|
||||
var cfg = {};
|
||||
cfg.url = "http://" + cls_desk2.debugserver + "/savelog.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file + "&data=" + log;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){};
|
||||
cfg.error = function(str){
|
||||
console.log(min_now() + " 输出调试日志失败");
|
||||
console.log(str);
|
||||
};
|
||||
min_http(cfg);
|
||||
}catch(e){}
|
||||
},
|
||||
//清空debug服务器上的调试日志
|
||||
clear_log: function(o_desk, dir, file){
|
||||
try{
|
||||
var cfg = {};
|
||||
cfg.url = "http://" + cls_desk2.debugserver + "/clearlog.php";
|
||||
cfg.data = "dir=" + dir + "&file=" + file;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str){};
|
||||
cfg.error = function(str){
|
||||
console.log(min_now() + " 清空调试日志失败");
|
||||
console.log(str);
|
||||
};
|
||||
min_http(cfg);
|
||||
}catch(e){}
|
||||
},
|
||||
|
||||
//===================== 游戏内容 ======================
|
||||
//新建一小局
|
||||
NewAset: function(o_desk){
|
||||
var o_aset = o_desk.method.AsetClass().New();
|
||||
o_desk.data.asetlist.push(o_aset);
|
||||
return o_aset;
|
||||
},
|
||||
//获取当前小局对象
|
||||
CurrAset: function(o_desk){
|
||||
return o_desk.data.asetlist[o_desk.data.asetlist.length - 1];
|
||||
},
|
||||
//获取当前小局局数
|
||||
CurrAsetNum: function(o_desk){
|
||||
return o_desk.data.asetlist.length;
|
||||
},
|
||||
//获取下一个有人的位置
|
||||
GetNextSeat: function(o_desk, seat){
|
||||
if (seat < 0){
|
||||
return -1;
|
||||
}
|
||||
var seatcount = o_desk.o_room.o_game.seatcount;
|
||||
if (seat >= seatcount){
|
||||
return -1;
|
||||
}
|
||||
var i = seat;
|
||||
var o_nextplayer = null;
|
||||
while (!o_nextplayer){
|
||||
i = (i + 1) % seatcount;
|
||||
o_nextplayer = o_desk.o_room.seatlist[i];
|
||||
}
|
||||
return i;
|
||||
},
|
||||
//大局结算
|
||||
CloseAccount: function(o_desk){
|
||||
|
||||
}
|
||||
}
|
||||
135
codes/games/client/Projects/zpy/js/class/class.flow2.js
Normal file
135
codes/games/client/Projects/zpy/js/class/class.flow2.js
Normal file
@@ -0,0 +1,135 @@
|
||||
/*=============== cls_flowMgr2: 流程管理类 ===============
|
||||
注意:
|
||||
1,子游戏开发人员不能修改该文件。
|
||||
=========================================================*/
|
||||
var cls_flowMgr2 = {
|
||||
//创建实例
|
||||
new: function(){
|
||||
object = {};
|
||||
//流程库
|
||||
object.lib = [];
|
||||
//流程配置
|
||||
object.steplist = [];
|
||||
//当前流程,即steplist的数组下标
|
||||
object.idx = -1;
|
||||
|
||||
object.method = {};
|
||||
|
||||
//在流程库中添加一个流程
|
||||
object.method.addflow = function(id, name, func_start, func_over, time, flag1, flag2){
|
||||
/*参数说明:
|
||||
id : 流程id,必须唯一
|
||||
name : 流程名,主要起到说明和备注的作用
|
||||
func_start: 进入该流程时执行的函数(先完成本流程的开始处理,再根据time开启定时器)
|
||||
func_over : 该流程结束时执行的函数(先完成本流程的结束处理,再进入下一流程)
|
||||
time : 进入该流程后开启的定时器(自动触发func_over结束该流程)时长,毫秒
|
||||
-1: 不需要开启定时器,需要用户触发func_over结束流程
|
||||
0: 不需要开启定时器,执行完func_start后立即执行func_over结束流程
|
||||
>0: 需要开启定时器,定时器自动触发func_over结束流程
|
||||
flag1: 进入流程时执行完func_start后,是否由子游戏开启本流程的定时器,默认为0
|
||||
0: 由流程管理对象管理
|
||||
1: 由子游戏管理
|
||||
flag2: 结束流程时执行完func_over后,是否由子游戏关闭定时器并进入下一流程,默认为0
|
||||
0: 由流程管理对象管理
|
||||
1: 由子游戏管理*/
|
||||
return cls_flowMgr2.addflow(object, id, name, func_start, func_over, time, flag1, flag2);
|
||||
}
|
||||
//设置流程。参数steplist为流程配置,是一个流程id数组,如[2,1,1,3,2,4]
|
||||
object.method.set = function(steplist){
|
||||
object.steplist = steplist;
|
||||
}
|
||||
//获取当前流程
|
||||
object.method.currflow = function(){
|
||||
cls_flowMgr2.currflow(object);
|
||||
}
|
||||
//开始按流程配置执行
|
||||
object.method.startflow = function(){
|
||||
cls_flowMgr2.startflow(object);
|
||||
}
|
||||
//进入下一流程
|
||||
object.method.nextflow = function(){
|
||||
cls_flowMgr2.nextflow(object);
|
||||
}
|
||||
return object;
|
||||
},
|
||||
|
||||
//在流程库中添加一个流程
|
||||
addflow: function(o_flowMgr, id, name, func_start, func_over, time, flag1, flag2){
|
||||
var o_flow = {};
|
||||
o_flow.id = id; //流程id
|
||||
o_flow.name = name; //流程名
|
||||
o_flow.func_start = func_start; //进入该流程是执行的函数
|
||||
o_flow.func_over = func_over; //该流程结束时执行的函数
|
||||
o_flow.time = time; //进入该流程后开启的定时器时长
|
||||
o_flow.flag1 = flag1;
|
||||
o_flow.flag2 = flag2;
|
||||
o_flow.timer = null; //定时器id
|
||||
o_flowMgr.lib.push(o_flow);
|
||||
return o_flow;
|
||||
},
|
||||
//获取当前流程
|
||||
currflow: function(o_flowMgr){
|
||||
if (!o_flowMgr.steplist || o_flowMgr.steplist.length == 0){
|
||||
return null;
|
||||
}
|
||||
if (o_flowMgr.idx == -1 || o_flowMgr.idx >= o_flowMgr.steplist.length){
|
||||
return null;
|
||||
}
|
||||
var flowid = o_flowMgr.steplist[o_flowMgr.idx];
|
||||
var flowidx = min_ary_indexof(o_flowMgr.lib, flowid, "id");
|
||||
if (flowidx == -1){
|
||||
return null;
|
||||
}
|
||||
return o_flowMgr.lib[flowidx];
|
||||
},
|
||||
//开始按流程配置执行程序
|
||||
startflow: function(o_flowMgr){
|
||||
if (o_flowMgr.lib.length == 0){
|
||||
return;
|
||||
}
|
||||
if (o_flowMgr.steplist.length == 0){
|
||||
return;
|
||||
}
|
||||
o_flowMgr.idx = 0;
|
||||
this.exec(o_flowMgr);
|
||||
},
|
||||
//进入下一流程
|
||||
nextflow: function(o_flowMgr){
|
||||
var o_flow = this.currflow(o_flowMgr);
|
||||
if (o_flow){
|
||||
if (o_flow.func_over) {
|
||||
o_flow.func_over();
|
||||
}
|
||||
if (!o_flow.flag2){
|
||||
if (o_flow.timer){
|
||||
clearTimeout(o_flow.timer);
|
||||
o_flow.timer = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
o_flowMgr.idx = o_flowMgr.idx + 1;
|
||||
this.exec(o_flowMgr);
|
||||
},
|
||||
//执行当前流程
|
||||
exec: function(o_flowMgr){
|
||||
var o_flow = this.currflow(o_flowMgr);
|
||||
if (!o_flow){
|
||||
return;
|
||||
}
|
||||
if (!o_flow.func_start){
|
||||
return;
|
||||
}
|
||||
o_flow.func_start();
|
||||
if (o_flow.time == 0) {
|
||||
this.nextflow(o_flowMgr);
|
||||
} else if (o_flow.time > 0) {
|
||||
//需要开启定时器
|
||||
if (!o_flow.flag1) {
|
||||
if (o_flow.func_over) {
|
||||
o_flow.timer = setTimeout(o_flow.func_over, o_flow.time);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
70
codes/games/client/Projects/zpy/js/class/class.mod.js
Normal file
70
codes/games/client/Projects/zpy/js/class/class.mod.js
Normal file
@@ -0,0 +1,70 @@
|
||||
///////////////////////////////////////////////////
|
||||
//////////////cls_mod: 模块基础类//////////////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_mod = cls_mod || {
|
||||
//构造函数
|
||||
new: function(_str_modname, _str_routename, _obj_app) {
|
||||
/*
|
||||
_str_modname 模块名称
|
||||
_str_routename 模块的路由名称
|
||||
_obj_app 所属的应用对象
|
||||
*/
|
||||
|
||||
//创建一个实例
|
||||
var mod = {};
|
||||
|
||||
// ================= 实例的公有属性 ================= //
|
||||
//模块名称
|
||||
mod.modname = _str_modname;
|
||||
//路由名称
|
||||
mod.routename = _str_routename;
|
||||
//所属的应用
|
||||
mod.app = _obj_app;
|
||||
//将mod对象添加到app的模块列表中
|
||||
mod.app.modlist.push(mod);
|
||||
mod.app[_str_modname] = mod;
|
||||
|
||||
// ================= 实例的公有方法 ================= //
|
||||
//收包处理
|
||||
mod.DoPack = function(_msg) {
|
||||
return cls_mod.DoPack(mod, _msg);
|
||||
}
|
||||
|
||||
//输出mod
|
||||
cls_mod.OutputMod(mod);
|
||||
|
||||
return mod;
|
||||
},
|
||||
|
||||
DoPack: function(_obj_mod, _msg) {
|
||||
if (typeof(_msg) == "string") {
|
||||
_msg = JSON.parse(_msg); //转换json
|
||||
}
|
||||
//执行rpc
|
||||
if (_msg.rpc) {
|
||||
if (min_ExitsFunction(_obj_mod[_msg.rpc])) {
|
||||
return _obj_mod[_msg.rpc](_msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
OutputMod: function(_obj_mod) {
|
||||
if (typeof global !== "undefined")
|
||||
{} else {
|
||||
global = {};
|
||||
}
|
||||
|
||||
if (typeof module !== "undefined")
|
||||
{} else {
|
||||
module = {};
|
||||
module.exports = {};
|
||||
}
|
||||
|
||||
global[_obj_mod.modname] = _obj_mod;
|
||||
global[_obj_mod.modname].DoPack = _obj_mod.DoPack;
|
||||
|
||||
if (module) {
|
||||
module.exports[_obj_mod.modname] = _obj_mod;
|
||||
}
|
||||
}
|
||||
}
|
||||
91
codes/games/client/Projects/zpy/js/class/class.mysql.js
Normal file
91
codes/games/client/Projects/zpy/js/class/class.mysql.js
Normal file
@@ -0,0 +1,91 @@
|
||||
///////////////////////////////////////////////////
|
||||
///////////// cls_mysql: 数据库操作 ///////////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_mysql = cls_mysql || {
|
||||
|
||||
//构造函数
|
||||
new: function(url, func_fail_sendpack){
|
||||
var mysql = {};
|
||||
//php地址
|
||||
mysql.url = url;
|
||||
//发生错误时的回包函数
|
||||
mysql.func_fail_sendpack = func_fail_sendpack;
|
||||
|
||||
//执行sql语句
|
||||
mysql.execsql = function(method, sql, para, func_succ, pack) {
|
||||
/*
|
||||
method: php方法名 execsql/opensql
|
||||
sql: 要执行的sql语句
|
||||
para: 要执行的sql语句的参数数组
|
||||
func_succ: sql语句执行成功后的回调函数
|
||||
pack: 客户端发来的数据包,执行失败的话会根据pack返回客户端执行失败的结果
|
||||
*/
|
||||
var data = {}
|
||||
data.m = method;
|
||||
data.s = sql;
|
||||
data.p = para;
|
||||
|
||||
var strdata = JSON.stringify(data);
|
||||
//将=号替换为^,php收到后再替换回来,以避免=号POST传参会截断的问题
|
||||
strdata = strdata.replace(/\=/g,"^");
|
||||
//将+号替换为#,php收到后再替换回来,以避免+号POST传参会截断的问题
|
||||
strdata = strdata.replace(/\+/g,"#");
|
||||
|
||||
var cfg = {};
|
||||
cfg.url = mysql.url;
|
||||
cfg.data = "data=" + strdata;
|
||||
cfg.type = "POST";
|
||||
cfg.success = function(str) {
|
||||
try {
|
||||
var result = JSON.parse(str);
|
||||
} catch(e) {
|
||||
console.log(min_now() + " 数据库执行结果转换json失败.");
|
||||
console.log(str);
|
||||
console.log(data);
|
||||
return;
|
||||
}
|
||||
|
||||
if (result.state != 0) {
|
||||
console.log(min_now() + " 请求" + mysql.url + "失败.");
|
||||
console.log(result);
|
||||
console.log(data);
|
||||
|
||||
if (pack) {
|
||||
console.log(JSON.stringify(pack));
|
||||
//返回客户端执行失败的结果
|
||||
if (mysql.func_fail_sendpack) {
|
||||
pack.data = {};
|
||||
pack.data.state = result.state;
|
||||
pack.data.error = result.error;
|
||||
mysql.func_fail_sendpack(pack);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//执行sql成功执行回调函数
|
||||
// console.log(result);
|
||||
if (func_succ) {
|
||||
func_succ(result.data);
|
||||
}
|
||||
}
|
||||
};
|
||||
cfg.error = function(str){
|
||||
console.log(min_now() + " 请求" + mysql.url + "失败.");
|
||||
console.log(str);
|
||||
console.log(data);
|
||||
|
||||
if (pack) {
|
||||
console.log(JSON.stringify(pack));
|
||||
//返回客户端执行失败的结果
|
||||
if (mysql.func_fail_sendpack) {
|
||||
pack.data = {};
|
||||
pack.data.state = 99;
|
||||
pack.data.error = "请求数据库失败.";
|
||||
mysql.func_fail_sendpack(pack);
|
||||
}
|
||||
}
|
||||
};
|
||||
min_http(cfg);
|
||||
}
|
||||
return mysql;
|
||||
}
|
||||
}
|
||||
685
codes/games/client/Projects/zpy/js/class/class.p.js
Normal file
685
codes/games/client/Projects/zpy/js/class/class.p.js
Normal file
@@ -0,0 +1,685 @@
|
||||
|
||||
|
||||
var cls_zhaopengyou_paixing = cls_zhaopengyou_paixing || {
|
||||
|
||||
jinxian_zhaopengyou: function(dq_dapai){
|
||||
var paixing = [];
|
||||
|
||||
//获取牌型
|
||||
var paixing = cls_zhaopengyou_card.GetMaxCardTypeByCardList(dq_dapai , 0);
|
||||
if (paixing[0][0] >= 4 && paixing[0][0] != dq_dapai.length) {//有个炸弹
|
||||
if (zhaopengyou_bianliang.pub.paiid.length - dq_dapai.length !=0) {//没打完
|
||||
if (dq_dapai.length == 5) {
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,1], [0,0,1,0], null ,null);
|
||||
if(feiji.length){//如果有就是3带
|
||||
paixing = [[3,1],feiji[feiji.length-1]];
|
||||
}
|
||||
}else if (dq_dapai.length == 10) {//10张牌
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,2], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,2],feiji[feiji.length-1]];
|
||||
}
|
||||
}else if (dq_dapai.length == 15) {//15张牌
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,3], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,3],feiji[feiji.length-1]];
|
||||
}
|
||||
}else if (dq_dapai.length == 20) {//20张牌
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,4], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,4],feiji[feiji.length-1]];
|
||||
}
|
||||
}else if (dq_dapai.length == 25) {//25张牌
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,5], [0,0,1,0], null ,15);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,5],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if (dq_dapai.length > 6) {//多余6张牌
|
||||
if(dq_dapai.length < 9){//飞机 2
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,2], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,2],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
else if (dq_dapai.length <=12 && dq_dapai.length >=9) {//飞机 3
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,3], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,3],feiji[feiji.length-1]];
|
||||
}else{
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,2], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,2],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (dq_dapai.length <= 15 && dq_dapai.length > 12) {//飞机 3.4
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,4], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,4],feiji[feiji.length-1]];
|
||||
if(zhaopengyou_bianliang.pub.paixing.length){
|
||||
if (zhaopengyou_bianliang.pub.paixing[0][0] == 3 && zhaopengyou_bianliang.pub.paixing[0][1] == 3) {//飞机 4
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,3], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,3],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,3], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,3],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (dq_dapai.length <= 18 && dq_dapai.length > 15) {//飞机 3.5
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,5], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,5],feiji[feiji.length-1]];
|
||||
if(zhaopengyou_bianliang.pub.paixing.length){
|
||||
if (zhaopengyou_bianliang.pub.paixing[0][0] == 3 && zhaopengyou_bianliang.pub.paixing[0][1] == 4) {//飞机 4
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,4], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,4],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,4], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,4],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (dq_dapai.length <= 20 && dq_dapai.length > 18) {//飞机 3.5
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,6], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,6],feiji[feiji.length-1]];
|
||||
if(zhaopengyou_bianliang.pub.paixing.length){
|
||||
if (zhaopengyou_bianliang.pub.paixing[0][0] == 3 && zhaopengyou_bianliang.pub.paixing[0][1] == 5) {//飞机 4
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,5], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,5],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,5], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,5],feiji[feiji.length-1]];
|
||||
if(zhaopengyou_bianliang.pub.paixing.length){
|
||||
if (zhaopengyou_bianliang.pub.paixing[0][0] == 3 && zhaopengyou_bianliang.pub.paixing[0][1] == 4) {//飞机 4
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,4], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,4],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,4], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,4],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (dq_dapai.length <= 25 && dq_dapai.length > 20) {//飞机 3.6
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,6], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,6],feiji[feiji.length-1]];
|
||||
if(zhaopengyou_bianliang.pub.paixing.length){
|
||||
if (zhaopengyou_bianliang.pub.paixing[0][0] == 3 && zhaopengyou_bianliang.pub.paixing[0][1] == 5) {//飞机 4
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,5], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,5],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,5], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,5],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (dq_dapai.length > 25) {//飞机 3.6
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,6], [0,0,1,0], null ,14);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [[3,6],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}else if (dq_dapai.length == 5) {
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
[3,1], [0,0,1,0], null ,null);
|
||||
paixing = [[3,1],feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (paixing[0][0] == 3 && paixing[0][1] >1 ) {
|
||||
var paixing01=0;
|
||||
if (paixing[1][paixing[1].length-1][4] == 15) {
|
||||
paixing[0][1] = paixing[0][1] -1;
|
||||
paixing[1].splice(paixing[1].length-3,3);
|
||||
paixing01=-1;
|
||||
}
|
||||
if (zhaopengyou_bianliang.pub.paixing.length && zhaopengyou_bianliang.pub.paixing[0][0] == 3) {
|
||||
if (zhaopengyou_bianliang.pub.paiid.length - dq_dapai.length == 0) {
|
||||
switch (zhaopengyou_bianliang.pub.paixing[0][1]){
|
||||
case 2:
|
||||
if (dq_dapai.length<=10) {
|
||||
paixing = [3,2];
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (dq_dapai.length<=15) {
|
||||
paixing = [3,3];
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (dq_dapai.length<=20) {
|
||||
paixing = [3,4];
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (dq_dapai.length<=25) {
|
||||
paixing = [3,5];
|
||||
}
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
switch (zhaopengyou_bianliang.pub.paixing[0][1]){
|
||||
case 2:
|
||||
if (dq_dapai.length==10) {
|
||||
paixing = [3,2];
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (dq_dapai.length==15) {
|
||||
paixing = [3,3];
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (dq_dapai.length==20) {
|
||||
paixing = [3,4];
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (dq_dapai.length==25) {
|
||||
paixing = [3,5];
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (paixing[1] >1 && paixing01==-1) {
|
||||
paixing[1] = paixing[1] -1;
|
||||
}
|
||||
var feiji = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(dq_dapai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
paixing, [0,0,1,0], null ,null);
|
||||
if(feiji.length){//如果有就是飞机
|
||||
paixing = [paixing,feiji[feiji.length-1]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return paixing;
|
||||
},
|
||||
dapai_zhaopengyou :function(pai , paixing , len, paisuanfa , da_paisuanfa ,qian_paixing){
|
||||
var put = false;
|
||||
if (paixing[0] == 1&& paixing[1] == 1) {//单牌
|
||||
if(pai.length==1){
|
||||
put =true;
|
||||
}else{
|
||||
put = false;
|
||||
}
|
||||
}
|
||||
else if (paixing[0] == 2 &&paixing[1] ==1) {//对子
|
||||
if (pai.length ==2) {
|
||||
put =true;
|
||||
}else{
|
||||
put = false;
|
||||
}
|
||||
}
|
||||
else if (paixing[0] == 1 &&paixing[1] >=5) {//顺子
|
||||
if (pai.length == paixing[1] && da_paisuanfa < 15) {
|
||||
put =true;
|
||||
}else{
|
||||
put = false;
|
||||
}
|
||||
}
|
||||
else if (paixing[0] == 2 && paixing[1] >=2) {//连对
|
||||
if (pai.length == paixing[0]*paixing[1] && da_paisuanfa < 15) {
|
||||
put =true;
|
||||
}else{
|
||||
put = false;
|
||||
}
|
||||
}
|
||||
else if (paixing[0] == 3 && paixing[1] ==1) {//3带
|
||||
if (pai.length == 5 ) {//如果是5张
|
||||
put = true;
|
||||
}else {
|
||||
if (pai.length < 5 && len ==0) {//但是如果是最后一手牌,可以出
|
||||
put =true;
|
||||
}else{
|
||||
put = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (paixing[0] == 3 && paixing[1] >=2) {//飞机
|
||||
if (pai.length == 5*paixing[1] && da_paisuanfa < 15) {
|
||||
put =true;
|
||||
}else{
|
||||
if( pai.length >= paixing[0]*paixing[1] && pai.length <= 5*paixing[1] && len == 0 && da_paisuanfa < 15){
|
||||
put = true;
|
||||
}else{
|
||||
if (len >0) {
|
||||
if (pai.length == 10 ) {
|
||||
if (paixing[1] >= 3) {
|
||||
paixing[1] = 2;
|
||||
put = true;
|
||||
} else if (paixing[1] == 2){
|
||||
put = true;
|
||||
}
|
||||
}
|
||||
else if (pai.length == 15) {
|
||||
if (paixing[1] >= 4) {
|
||||
paixing[1] = 3;
|
||||
put = true;
|
||||
} else if (paixing[1] == 3){
|
||||
put = true;
|
||||
}
|
||||
}
|
||||
else if (pai.length == 20) {
|
||||
if (paixing[1] >= 5) {
|
||||
paixing[1] = 4;
|
||||
put = true;
|
||||
} else if (paixing[1] == 4){
|
||||
put = true;
|
||||
}
|
||||
}
|
||||
else if (pai.length == 25) {
|
||||
if (paixing[1] >= 6) {
|
||||
paixing[1] = 5;
|
||||
put = true;
|
||||
} else if (paixing[1] == 5){
|
||||
put = true;
|
||||
}
|
||||
}
|
||||
else{
|
||||
put = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (paixing[0] >= 4 && paixing[1] == 1) {//炸弹
|
||||
if (paixing[0] == pai.length) {
|
||||
put =true;
|
||||
}
|
||||
}else if(paixing[0] == 4 && paixing[1] >= 1){//带炸弹的飞机
|
||||
if (pai.length == 5*paixing[1]) {//中途打出2个炸的飞机
|
||||
paixing = [3,paixing[1]];
|
||||
put = true;
|
||||
}else if (pai.length<5*paixing[1] && len ==0) {
|
||||
paixing = [3,paixing[1]];
|
||||
put = true;
|
||||
}
|
||||
}
|
||||
|
||||
return [put,paixing];
|
||||
},
|
||||
bipai_zhaopengyou :function (paixing ,da_paixing , pai , da_pai , paishu , zuidapaishu , shengpai ){
|
||||
if (paixing[0][0] == da_paixing[0][0] && paixing[0][1] == da_paixing[0][1]) {//牌型相同
|
||||
if (pai>da_pai) {//如果第一张牌大于最大牌
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}else if(paixing[0][0] >= 4&& paixing[0][0]>da_paixing[0][0]){//现在出的牌如果是炸 并且比上家大
|
||||
return true;
|
||||
//if (paixing[0][0]==paishu) {
|
||||
//if (paixing[0][0] > da_paixing[0][0]) {
|
||||
//return true;
|
||||
//}else{
|
||||
//return false;
|
||||
//}
|
||||
//}else {
|
||||
//if (paixing[0][0] == 4 && pai < 3) {
|
||||
//if (pai>da_pai) {//如果第一张牌大于最大牌
|
||||
//return true;
|
||||
//}else{
|
||||
//return false;
|
||||
//}
|
||||
//return true;
|
||||
//}else if ((paixing[0][0] == 6||paixing[0][0] == 5) && (pai == 21 ||pai == 22)) {
|
||||
//if (pai>da_pai) {//如果第一张牌大于最大牌
|
||||
//return true;
|
||||
//}else{
|
||||
//return false;
|
||||
//}
|
||||
//}else if (paixing[0][0] >= 9) {
|
||||
//return true;
|
||||
//}else{
|
||||
//return false;
|
||||
//}
|
||||
//}
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var cls_control = cls_control ||{
|
||||
// 操作人 状态
|
||||
new: function(people,state){
|
||||
var seat = 0;
|
||||
switch (people){//控制权移交
|
||||
case 0:
|
||||
if (state[1] == 1) {
|
||||
seat = 2;
|
||||
if (state[2] == 1) {
|
||||
seat = 3;
|
||||
}
|
||||
}else{
|
||||
seat = 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (state[2] == 1) {
|
||||
seat = 3;
|
||||
if (state[3] == 1) {
|
||||
seat = 0;
|
||||
}
|
||||
}else{
|
||||
seat = 2;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (state[3] == 1) {
|
||||
seat = 0;
|
||||
if (state[0] == 1) {
|
||||
seat = 1;
|
||||
}
|
||||
}else{
|
||||
seat = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (state[0] == 1) {
|
||||
seat = 1;
|
||||
if (state[1] == 1) {
|
||||
seat = 2;
|
||||
}
|
||||
}else{
|
||||
seat = 0;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return seat;
|
||||
}
|
||||
}
|
||||
var ksw_zhaopengyou = ksw_zhaopengyou ||{
|
||||
jinxian :function(pai){
|
||||
var daxiao = 0;
|
||||
var wu = 0;
|
||||
var shi = 0;
|
||||
var kai = 0;
|
||||
var wang = 0;
|
||||
var paixing = [];
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
switch (pai[i][4]){
|
||||
case 5:
|
||||
wu ++;
|
||||
break;
|
||||
case 10:
|
||||
shi ++;
|
||||
break;
|
||||
case 13:
|
||||
kai ++;
|
||||
break;
|
||||
case 53:
|
||||
wang ++;
|
||||
break;
|
||||
case 54:
|
||||
wang ++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (pai.length==3) {//如果3张牌
|
||||
if (wang == 3) {//都是王
|
||||
paixing = [[5,1],[[0,0,0,0,21]]];
|
||||
}else if(wu == 1 && shi == 1 && kai == 1){//是510k
|
||||
paixing = [[4,1],[[0,0,0,0,1]]];
|
||||
if (pai[0][1] == pai[1][1] && pai[0][1] == pai[2][1]) {//如果花色相同
|
||||
paixing = [[4,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pai.length==4){//如果4张牌
|
||||
if (wang == 4) {
|
||||
paixing = [[9,1],[[0,0,0,1]]];
|
||||
}
|
||||
}
|
||||
else if (wu+shi+kai == pai.length&&pai.length>=9) {//9张牌以上
|
||||
if (wu<=shi&&wu<=kai) {
|
||||
if (wu==3) {
|
||||
paixing = [[5,1],[[0,0,0,0,22]]];
|
||||
}
|
||||
if (wu==4) {
|
||||
paixing = [[9,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (wu==5) {
|
||||
paixing = [[10,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (wu==6) {
|
||||
paixing = [[11,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (wu==7) {
|
||||
paixing = [[12,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (wu==8) {
|
||||
paixing = [[13,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
}
|
||||
else if (shi<=wu&&shi<=kai) {
|
||||
if (shi==3) {
|
||||
paixing = [[5,1],[[0,0,0,0,22]]];
|
||||
}
|
||||
if (shi==4) {
|
||||
paixing = [[9,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (shi==5) {
|
||||
paixing = [[10,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (shi==6) {
|
||||
paixing = [[11,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (shi==7) {
|
||||
paixing = [[12,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (shi==8) {
|
||||
paixing = [[13,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
}
|
||||
else if (kai<=wu&&kai<=shi) {
|
||||
if (kai==3) {
|
||||
paixing = [[5,1],[[0,0,0,0,22]]];
|
||||
}
|
||||
if (kai==4) {
|
||||
paixing = [[9,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (kai==5) {
|
||||
paixing = [[10,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (kai==6) {
|
||||
paixing = [[11,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (kai==7) {
|
||||
paixing = [[12,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
if (kai==8) {
|
||||
paixing = [[13,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
}
|
||||
}
|
||||
return paixing;
|
||||
},
|
||||
chongren :function(pai){
|
||||
var daxiao = 0;
|
||||
var wu = 0;
|
||||
var shi = 0;
|
||||
var kai = 0;
|
||||
var wang = 0;
|
||||
var paixing = [];
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
switch (pai[i][4]){
|
||||
case 5:
|
||||
wu ++;
|
||||
break;
|
||||
case 10:
|
||||
shi ++;
|
||||
break;
|
||||
case 13:
|
||||
kai ++;
|
||||
break;
|
||||
case 53:
|
||||
wang ++;
|
||||
break;
|
||||
case 54:
|
||||
wang ++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (pai.length==3) {//??3??
|
||||
if (wang == 3) {//???
|
||||
paixing = [[6,1],[[0,0,0,0,22]]];
|
||||
}else if(wu == 1 && shi == 1 && kai == 1){//?510k
|
||||
paixing = [[4,1],[[0,0,0,0,1]]];
|
||||
if (pai[0][1] == pai[1][1] && pai[0][1] == pai[2][1]) {//??????
|
||||
paixing = [[4,1],[[0,0,0,0,2]]];
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pai.length==4){//??4??
|
||||
if (wang == 4) {
|
||||
paixing = [[9,1],[[0,0,0,2]]];
|
||||
}
|
||||
}
|
||||
else if (wu+shi+kai == pai.length&&pai.length>=9) {//9????
|
||||
if (wu==shi&&wu==kai) {
|
||||
if (wu==3) {
|
||||
paixing = [[6,1],[[0,0,0,0,21]]];
|
||||
}
|
||||
if (wu==4) {
|
||||
paixing = [[9,1],[[0,0,0,0,1]]];
|
||||
}
|
||||
if (wu==5) {
|
||||
paixing = [[10,1],[[0,0,0,0,1]]];
|
||||
}
|
||||
if (wu==6) {
|
||||
paixing = [[11,1],[[0,0,0,0,1]]];
|
||||
}
|
||||
if (wu==7) {
|
||||
paixing = [[12,1],[[0,0,0,0,1]]];
|
||||
}
|
||||
if (wu==8) {
|
||||
paixing = [[13,1],[[0,0,0,0,1]]];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return paixing;
|
||||
},
|
||||
tongse_zhaopengyou : function(pai,paixing,da,xiao){//是否同色
|
||||
var tongse = cls_zhaopengyou_card.GetCardListByCardTypeA(cls_zhaopengyou_card.SortCardList(pai,[0,0]),
|
||||
// 牌的类型 [所有可能,小到大,拆牌,取所有情况] 起始牌
|
||||
paixing, [0,0,1,0], xiao ,da);
|
||||
if (tongse.length) {
|
||||
var heise = 0;
|
||||
var hongse = 0;
|
||||
for (var i = 0; i < tongse[0].length; i++) {
|
||||
if (tongse[0][i][1] == 1 ||tongse[0][i][1] == 3) {
|
||||
heise ++;
|
||||
}
|
||||
else if (tongse[0][i][1] == 2 ||tongse[0][i][1] == 4) {
|
||||
hongse ++;
|
||||
}
|
||||
}
|
||||
if (hongse == 4 || heise == 4) {
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
70
codes/games/client/Projects/zpy/js/class/class.pai.js
Normal file
70
codes/games/client/Projects/zpy/js/class/class.pai.js
Normal file
@@ -0,0 +1,70 @@
|
||||
///////////////////////////////////////////////////
|
||||
////////////////// cls_pai: 单张牌 ////////////////
|
||||
///////////////////////////////////////////////////
|
||||
var cls_pai = cls_pai || {
|
||||
|
||||
//创建单张牌实例
|
||||
new: function(id, score, dealowner){
|
||||
/*
|
||||
参数说明:
|
||||
id 牌的绝对id
|
||||
score 牌在游戏中的分值
|
||||
dealowner 发牌状态
|
||||
|
||||
扑克牌的统一编码规则:
|
||||
1,牌面花色的定义 5:王 4:黑桃 3:红心 2:梅花 1:方块
|
||||
2,牌面数值的定义 1:A 2:2 3:3 ... 9:9 10:10 11:J 12:Q 13:K 53:小王 54:大王
|
||||
*/
|
||||
var pai = {};
|
||||
|
||||
//属性
|
||||
pai.id = id; //绝对id,即数组下标,从0开始计数
|
||||
pai.score = score; //牌在游戏中的分值
|
||||
pai.dealowner = dealowner; //发牌状态
|
||||
//-1:规则去除的牌
|
||||
// 0:未发的牌,即底牌
|
||||
//>0:发牌发到谁手上,从1开始计数,即座位编号+1,座位编号是从0开始计数的
|
||||
pai.playround = -1; //出牌状态
|
||||
//-1:未出的牌
|
||||
// 0:埋牌
|
||||
//>0:牌是第几轮出出去的,从1开始计数
|
||||
pai.playindex = -1; //本轮中的出牌顺序,从1开始计数
|
||||
pai.playowner = -1; //出牌后被谁得到,与座位编号对应
|
||||
|
||||
//方法
|
||||
pai.method = {};
|
||||
|
||||
//牌面花色
|
||||
pai.method.get_flower = function(){
|
||||
return cls_pai.get_flower(pai);
|
||||
}
|
||||
|
||||
//牌面数值
|
||||
pai.method.get_number = function(){
|
||||
return cls_pai.get_number(pai);
|
||||
}
|
||||
|
||||
return pai;
|
||||
},
|
||||
|
||||
//获取牌面花色
|
||||
get_flower: function(o_pai) {
|
||||
var yu = o_pai.id % 54;
|
||||
if (yu == 52 || yu == 53){ //小王大王
|
||||
return 5;
|
||||
}
|
||||
return parseInt(yu / 13) + 1;
|
||||
},
|
||||
|
||||
//获取牌面数值
|
||||
get_number: function(o_pai) {
|
||||
var yu = o_pai.id % 54;
|
||||
if (yu == 52){ //小王
|
||||
return 53;
|
||||
}
|
||||
if (yu == 53){ //大王
|
||||
return 54;
|
||||
}
|
||||
return yu % 13 + 1;
|
||||
}
|
||||
}
|
||||
813
codes/games/client/Projects/zpy/js/class/minhttp.js
Normal file
813
codes/games/client/Projects/zpy/js/class/minhttp.js
Normal file
@@ -0,0 +1,813 @@
|
||||
(function(wnd, undef){
|
||||
|
||||
//复制json对象
|
||||
function min_copyjson(json)
|
||||
{
|
||||
return JSON.parse(JSON.stringify(json));
|
||||
}
|
||||
|
||||
function min_clone(myObj){
|
||||
if(!myObj)
|
||||
return myObj;
|
||||
if(typeof(myObj) != 'object')
|
||||
return myObj;
|
||||
|
||||
var myNewObj = new Object();
|
||||
|
||||
for(var i in myObj)
|
||||
myNewObj[i] = min_clone(myObj[i]);
|
||||
|
||||
return myNewObj;
|
||||
}
|
||||
|
||||
//json对象转字符串
|
||||
function min_jsontostr(json) {
|
||||
return JSON.stringify(json);
|
||||
}
|
||||
|
||||
//字符串转json对象
|
||||
function min_strtojson(str) {
|
||||
return JSON.parse(str);
|
||||
}
|
||||
|
||||
//字符串转整型 def:转换失败时返回的默认值
|
||||
function min_strtoint(str, def) {
|
||||
var i = parseInt(str);
|
||||
if (i == 0) {
|
||||
return 0;
|
||||
};
|
||||
if (!i) { //=0也会进来
|
||||
if (!def) {
|
||||
def = 0;
|
||||
};
|
||||
i = def;
|
||||
}
|
||||
return i;
|
||||
};
|
||||
|
||||
//整型转字符串
|
||||
function min_inttostr(i) {
|
||||
return i.toString();
|
||||
};
|
||||
|
||||
//去左空格
|
||||
function min_ltrim(s){
|
||||
return s.replace(/(^\s*)/g, "");
|
||||
};
|
||||
|
||||
//去右空格;
|
||||
function min_rtrim(s){
|
||||
return s.replace(/(\s*$)/g, "");
|
||||
};
|
||||
|
||||
//去左右空格;
|
||||
function min_trim(s){
|
||||
return s.replace(/(^\s*)|(\s*$)/g, "");
|
||||
};
|
||||
|
||||
//整除
|
||||
function min_div(i, b)
|
||||
{
|
||||
if (!b) {
|
||||
return parseInt(i);
|
||||
}
|
||||
return parseInt(i / b);
|
||||
};
|
||||
|
||||
//取余数
|
||||
function min_mod(a, b){
|
||||
return a % b;
|
||||
};
|
||||
|
||||
//取绝对值
|
||||
function min_abs(b) {
|
||||
return Math.abs(b);
|
||||
};
|
||||
|
||||
//取随机数(范围包含了min和max)
|
||||
function min_random(min, max) {
|
||||
var Range = max - min;
|
||||
var Rand = Math.random();
|
||||
return (min + Math.round(Rand * Range));
|
||||
};
|
||||
//取随机数1
|
||||
function min_random1(num) {
|
||||
return parseInt(Math.random()*num);
|
||||
};
|
||||
|
||||
//随机字符串
|
||||
function min_randomChar(length){
|
||||
var x = "0123456789";
|
||||
var y = "qwertyuioplkjhgfdsazxcvbnm";
|
||||
var z = "QWERTYUIOPLKJHGFDSAZXCVBNM";
|
||||
var tmp = "";
|
||||
for (var i = 0; i < length; i++) {
|
||||
switch(min_random(0, 2)) {
|
||||
case 0:
|
||||
tmp += x.charAt(Math.ceil(Math.random()*100000000)%x.length);
|
||||
break;
|
||||
case 1:
|
||||
tmp += y.charAt(Math.ceil(Math.random()*100000000)%y.length);
|
||||
break;
|
||||
case 2:
|
||||
tmp += z.charAt(Math.ceil(Math.random()*100000000)%z.length);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
// var timestamp = new Date().getTime();
|
||||
// return timestamp + tmp;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
//取长度
|
||||
function min_length(key) {
|
||||
if (typeof(key) != "string") {
|
||||
var key = key + "";
|
||||
}
|
||||
return key.length;
|
||||
}
|
||||
|
||||
//字符全替换 ignoreCase:true忽略大小写 false不忽略大小写
|
||||
function min_replaceAll(str, str_old, str_new, ignoreCase)
|
||||
{
|
||||
if (!RegExp.prototype.isPrototypeOf(str_old)) {
|
||||
return str.replace(new RegExp(str_old, (ignoreCase ? "gi": "g")), str_new);
|
||||
} else {
|
||||
return str.replace(str_old, str_new);
|
||||
}
|
||||
}
|
||||
|
||||
//取本地当前时间,格式yyyy-MM-dd HH:MM:SS
|
||||
function min_now()
|
||||
{
|
||||
var date = new Date();
|
||||
var seperator1 = "-";
|
||||
var seperator2 = ":";
|
||||
var month = date.getMonth() + 1;
|
||||
var strDate = date.getDate();
|
||||
if (month >= 1 && month <= 9) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (strDate >= 0 && strDate <= 9) {
|
||||
strDate = "0" + strDate;
|
||||
}
|
||||
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
|
||||
+ " " + date.getHours() + seperator2 + date.getMinutes()
|
||||
+ seperator2 + date.getSeconds();
|
||||
return currentdate;
|
||||
}
|
||||
|
||||
//取本地当前日期,格式yyyy-MM-dd
|
||||
function min_day()
|
||||
{
|
||||
var date = new Date();
|
||||
var seperator1 = "-";
|
||||
var month = date.getMonth() + 1;
|
||||
var strDate = date.getDate();
|
||||
if (month >= 1 && month <= 9) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (strDate >= 0 && strDate <= 9) {
|
||||
strDate = "0" + strDate;
|
||||
}
|
||||
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate;
|
||||
return currentdate;
|
||||
}
|
||||
|
||||
//获取时间差
|
||||
function min_datediff(startTime, endTime, diffType) {
|
||||
//将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
|
||||
startTime = startTime.replace(/\-/g, "/");
|
||||
endTime = endTime.replace(/\-/g, "/");
|
||||
|
||||
//将计算间隔类性字符转换为小写
|
||||
diffType = diffType.toLowerCase();
|
||||
var sTime = new Date(startTime); //开始时间
|
||||
var eTime = new Date(endTime); //结束时间
|
||||
//作为除数的数字
|
||||
var divNum = 1;
|
||||
switch (diffType) {
|
||||
case "second":
|
||||
divNum = 1000;
|
||||
break;
|
||||
case "minute":
|
||||
divNum = 1000 * 60;
|
||||
break;
|
||||
case "hour":
|
||||
divNum = 1000 * 3600;
|
||||
break;
|
||||
case "day":
|
||||
divNum = 1000 * 3600 * 24;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
|
||||
}
|
||||
|
||||
//判断时间是否在范围内 time_range("3:00", "4:00")
|
||||
function min_timerange(beginTime, endTime) {
|
||||
var strb = beginTime.split (":");
|
||||
if (strb.length != 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var stre = endTime.split (":");
|
||||
if (stre.length != 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var b = new Date();
|
||||
var e = new Date();
|
||||
var n = new Date();
|
||||
|
||||
b.setHours(strb[0]);
|
||||
b.setMinutes(strb[1]);
|
||||
e.setHours(stre[0]);
|
||||
e.setMinutes(stre[1]);
|
||||
|
||||
if (n.getTime() > b.getTime() && n.getTime() < e.getTime()){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//本地存储数据
|
||||
function min_writefile_gameid(msg, gameid, fileid) {
|
||||
localStorage.setItem("file_" + gameid + "_" + fileid, msg);
|
||||
}
|
||||
|
||||
//读取本地数据
|
||||
function min_readfile_gameid(gameid, fileid) {
|
||||
return localStorage.getItem("file_" + gameid + "_" + fileid);
|
||||
}
|
||||
|
||||
//取当前页面url中的参数值 def:没取到时返回的默认值
|
||||
function min_getQueryString(name, def) {
|
||||
var self = window;
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||||
var r = self.location.search.substr(1).match(reg);
|
||||
if (r != null) {
|
||||
return unescape(r[2])
|
||||
} else {
|
||||
if (def) {
|
||||
return def;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//获取当前页面的路径
|
||||
function min_getUrlRootPath() {
|
||||
var curWwwPath = window.location.host;
|
||||
var pathName = window.location.pathname;
|
||||
return curWwwPath + pathName.substr(0,pathName.lastIndexOf('/'));
|
||||
}
|
||||
|
||||
//设置cookie
|
||||
function min_setCookie(name, value, exp_minute) {
|
||||
if (!exp_minute) {
|
||||
exp_minute = 20; //默认时效20分钟
|
||||
}
|
||||
var exp = new Date();
|
||||
exp.setTime(exp.getTime() + exp_minute*60*1000);
|
||||
document.cookie = name + "=" + value + ";expires=" + exp.toGMTString()+';path=/';
|
||||
}
|
||||
|
||||
//读取cookie
|
||||
function min_getCookie(name) {
|
||||
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
|
||||
if(arr != null)
|
||||
return arr[2];
|
||||
return null;
|
||||
}
|
||||
|
||||
//删除cookie
|
||||
function min_delCookie(name) {
|
||||
var value = min_getCookie(name);
|
||||
if (value) {
|
||||
min_setCookie(name, value, 0);
|
||||
}
|
||||
}
|
||||
|
||||
//获取一个dom
|
||||
function min_getdom(id)
|
||||
{
|
||||
return document.getElementById(id);
|
||||
};
|
||||
|
||||
//设置一个dom属性值 id:dom、或dom的id、或实列,key:属性,val:值
|
||||
function min_setdom(id, key, val) {
|
||||
var obj;
|
||||
if (typeof(id) == 'string') {
|
||||
obj = min_getdom(id);
|
||||
}
|
||||
else {
|
||||
obj = id;
|
||||
}
|
||||
obj.setAttribute(key, val);
|
||||
}
|
||||
|
||||
//添加一段innerHTML
|
||||
function min_uphtml(id, str, isadd) {
|
||||
/*
|
||||
setAttribute是设置网页元素的属性,就是在标签里内如<img />标签的src属性。
|
||||
innerHTML不是属性,只是JS里内代表一个双标记中间的文本,如:<span> </span>中间的字符。
|
||||
*/
|
||||
var obj = window.document.getElementById(id);
|
||||
if (isadd) {
|
||||
obj.innerHTML = obj.innerHTML + str;
|
||||
}
|
||||
else {
|
||||
obj.innerHTML = str;
|
||||
}
|
||||
}
|
||||
|
||||
//新建一个定时器每隔time毫秒执行一次func函数,函数返回定时器id
|
||||
function min_ontime(func, time)
|
||||
{
|
||||
return setInterval(func, time);
|
||||
}
|
||||
|
||||
//新建一个定时器time毫秒后执行一次func函数(只执行一次),函数返回定时器id
|
||||
function min_ontimeout(func, time)
|
||||
{
|
||||
return setTimeout(func, time);
|
||||
}
|
||||
|
||||
//关闭定时器id为timerid的定时器
|
||||
function min_closetime(timerid)
|
||||
{
|
||||
return clearTimeout(timerid);
|
||||
}
|
||||
|
||||
//encode转码
|
||||
function min_encode(s)
|
||||
{
|
||||
return encodeURIComponent(s);
|
||||
}
|
||||
|
||||
//decode解码
|
||||
function min_decode(s)
|
||||
{
|
||||
return decodeURIComponent(s);
|
||||
}
|
||||
|
||||
//新建一个tcp连接
|
||||
function min_tcp(config)
|
||||
{
|
||||
var ws = new WebSocket("ws://" + config.ipport); //不要带htpp,例如127.0.0.1:5414
|
||||
|
||||
//连接上服务器后触发的事件
|
||||
if (config.onopen) {
|
||||
ws.onopen = config.onopen;
|
||||
};
|
||||
|
||||
//收到服务器发来的数据包后触发的事件,onmessage函数会有一个底层的msg参数,其中msg.data才是服务器发过来的业务数据
|
||||
if (config.onmessage) {
|
||||
ws.onmessage = config.onmessage;
|
||||
};
|
||||
|
||||
//断开与服务器的连接后触发的事件
|
||||
if (config.onclose) {
|
||||
ws.onclose = config.onclose; //断开连接的事件
|
||||
};
|
||||
|
||||
//错误事件
|
||||
if (config.onerror) {
|
||||
ws.onerror = config.onerror; //错误事件
|
||||
};
|
||||
|
||||
return ws;
|
||||
}
|
||||
|
||||
//http请求
|
||||
function min_http(config) {
|
||||
/*
|
||||
config =
|
||||
{
|
||||
url: "http://127.0.0.1:5414/index.html",
|
||||
type: "POST", //GET or POST 方法
|
||||
data: "", //请求的数据
|
||||
success: func_callback_succ, //请求成功后的回调函数function(data,status,callbackdata)
|
||||
error: func_callback_err, //请求失败后的回调函数function(data,status)
|
||||
callbackdata: "", //作为回调函数第三个参数带入回调函数的数据
|
||||
//enurl: 0, //是否encodeURIComponent转码, 默认0不转码
|
||||
//deurl: 0, //是否decodeURIComponent解码,默认0不解码
|
||||
debugLog: false, //是否输出debug日志,默认false
|
||||
method: "(OPTIONAL) True for async and False for Non-async | By default its Async"
|
||||
}
|
||||
*/
|
||||
if (!config.debugLog) {
|
||||
config.debugLog = false;
|
||||
}
|
||||
if (!config.enurl) {
|
||||
config.enurl = 0;
|
||||
}
|
||||
if (!config.deurl) {
|
||||
config.deurl = 0;
|
||||
}
|
||||
if (!config.method) {
|
||||
config.method = true;
|
||||
}
|
||||
|
||||
if (!config.url) {
|
||||
if (config.debugLog == true) {
|
||||
console.log("No Url!");
|
||||
}
|
||||
return;
|
||||
};
|
||||
|
||||
if (!config.type) {
|
||||
if (config.debugLog == true) {
|
||||
console.log("No Default type (GET/POST) given!");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var xmlhttp = initXMLhttp();
|
||||
|
||||
xmlhttp.onreadystatechange = function() {
|
||||
if (xmlhttp.readyState == 4 && xmlhttp.status == 200 && config.success)
|
||||
{
|
||||
var responseText = mydecodeURIComponent(xmlhttp.responseText, config.deurl);
|
||||
if (!config.callbackdata) {
|
||||
config.success(responseText, xmlhttp.readyState);
|
||||
}
|
||||
else {
|
||||
config.success(responseText, xmlhttp.readyState, config.callbackdata);
|
||||
}
|
||||
if (config.debugLog == true) {
|
||||
console.log("SuccessResponse");
|
||||
}
|
||||
if (config.debugLog == true) {
|
||||
console.log("Response Data:" + xmlhttp.responseText);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (xmlhttp.readyState == 4 && config.error)
|
||||
{
|
||||
if (!config.callbackdata) {
|
||||
config.error(xmlhttp.readyState, xmlhttp.status);
|
||||
}
|
||||
else {
|
||||
config.error(xmlhttp.readyState, xmlhttp.status, config.callbackdata);
|
||||
}
|
||||
}
|
||||
if (config.debugLog == true) {
|
||||
console.log("FailureResponse --> readyState:" + xmlhttp.readyState + ", Status:" + xmlhttp.status);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var sendString = [],
|
||||
sendData = config.data;
|
||||
if (typeof sendData === "string") {
|
||||
var tmpArr = String.prototype.split.call(sendData, '&');
|
||||
for (var i = 0, j = tmpArr.length; i < j; i++) {
|
||||
var datum = tmpArr[i].split('=');
|
||||
if (datum[1]) {
|
||||
sendString.push(myencodeURIComponent(datum[0], config.enurl) + "=" + myencodeURIComponent(datum[1], config.enurl));
|
||||
}
|
||||
else {
|
||||
sendString.push(myencodeURIComponent(datum[0], config.enurl));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (typeof sendData === 'object' && !(sendData instanceof String || (FormData && sendData instanceof FormData))) {
|
||||
for (var k in sendData) {
|
||||
var datum = sendData[k];
|
||||
if (Object.prototype.toString.call(datum) == "[object Array]") {
|
||||
for (var i = 0, j = datum.length; i < j; i++) {
|
||||
sendString.push(myencodeURIComponent(k, config.enurl) + "[]=" + myencodeURIComponent(datum[i], config.enurl));
|
||||
}
|
||||
}
|
||||
else {
|
||||
sendString.push(myencodeURIComponent(k, config.enurl) + "=" + myencodeURIComponent(datum, config.enurl));
|
||||
}
|
||||
}
|
||||
}
|
||||
sendString = sendString.join('&');
|
||||
|
||||
if (config.type == "GET") {
|
||||
var g;
|
||||
var i = config.url.lastIndexOf("?");
|
||||
if (i > 8) {
|
||||
g = "&";
|
||||
} else {
|
||||
g = "?";
|
||||
}
|
||||
var ddata = new Date().getMilliseconds();
|
||||
if (sendString == "") {
|
||||
sendString = '#dfw1977=' + (ddata + min_random(1, 99999) * 1000);
|
||||
} else {
|
||||
sendString = sendString + '#dfw1977=' + (ddata + min_random(1, 99999) * 1000);
|
||||
}
|
||||
xmlhttp.open("GET", config.url + g + sendString, config.method);
|
||||
xmlhttp.send();
|
||||
|
||||
if (config.debugLog == true) {
|
||||
console.log("GET fired at:" + config.url + "?" + sendString);
|
||||
}
|
||||
}
|
||||
if (config.type == "POST") {
|
||||
xmlhttp.open("POST", config.url, config.method);
|
||||
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
xmlhttp.send(sendString);
|
||||
|
||||
if (config.debugLog == true) {
|
||||
console.log("POST fired at:" + config.url + " || Data:" + sendString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function initXMLhttp() {
|
||||
var xmlhttp;
|
||||
if (window.XMLHttpRequest) {
|
||||
//code for IE7,firefox chrome and above
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
} else {
|
||||
//code for Internet Explorer
|
||||
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
return xmlhttp;
|
||||
}
|
||||
|
||||
//转码
|
||||
function myencodeURIComponent(s, ifif)
|
||||
{
|
||||
if (ifif == 1) {
|
||||
return min_encode(s);
|
||||
} else {
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
//解码
|
||||
function mydecodeURIComponent(s, ifif)
|
||||
{
|
||||
if (ifif == 1) {
|
||||
return min_decode(s);
|
||||
} else {
|
||||
return s;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//在数组中根据元素值查找下标
|
||||
function min_ary_indexof(array1, val, name)
|
||||
{
|
||||
for (var i = 0; i < array1.length; i++)
|
||||
{
|
||||
if (!name)
|
||||
{
|
||||
if (array1[i] == val)
|
||||
return i;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (array1[i][name] == val)
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
|
||||
//在数组中根据值删除元素
|
||||
function min_ary_delval(array1, val, name)
|
||||
{
|
||||
var index = min_ary_indexof(array1, val, name);
|
||||
if (index > -1)
|
||||
{
|
||||
array1.splice(index, 1);
|
||||
}
|
||||
};
|
||||
|
||||
//在数组中根据下标删除诺干个元素
|
||||
function min_ary_delfromto(array1, from, to)
|
||||
{
|
||||
var rest = array1.slice((to || from) + 1 || array1.length);
|
||||
array1.length = from < 0 ? array1.length + from : from;
|
||||
array1.push.apply(array1, rest);
|
||||
};
|
||||
|
||||
//在数组中删除某一对象元素
|
||||
function min_ary_delobj(array1, object)
|
||||
{
|
||||
for (var i = 0; i < array1.length; ++i)
|
||||
{
|
||||
if (array1[i] === object)
|
||||
{
|
||||
array1.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//数组包含
|
||||
function min_ary_include(aryparent, arychild){
|
||||
for (var i = 0; i < arychild.length; i++) {
|
||||
var found = false;
|
||||
for (var j = 0; j < aryparent.length; j++) {
|
||||
if (aryparent[j] == arychild[i]){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
//数组相减
|
||||
function min_ary_deduct(aryparent, arychild){
|
||||
var re = [];
|
||||
for (var i = 0; i < aryparent.length; i++){
|
||||
var found = false;
|
||||
for (var j = 0; j < arychild.length; j++){
|
||||
if (aryparent[i] == arychild[j]){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found){
|
||||
re.push(aryparent[i])
|
||||
}
|
||||
}
|
||||
return re;
|
||||
};
|
||||
|
||||
//从m个数中获取n个数的组合,只取组合,不取排列(递归算法)
|
||||
function min_CombineInAry(ary, n){
|
||||
if (ary.length < n){
|
||||
return [];
|
||||
}
|
||||
if (ary.length == n){
|
||||
return [ary];
|
||||
}
|
||||
if (ary.length > n){
|
||||
var result = [];
|
||||
for (var i = 0; i <= ary.length - n; i++) {
|
||||
var tmplist = [];
|
||||
tmplist.push(ary[i]);
|
||||
if (n - 1 > 0){
|
||||
var sub_cardlist = ary.slice(i + 1);
|
||||
var sub_tmplist = min_CombineInAry(sub_cardlist, n - 1);
|
||||
for (var j = 0; j < sub_tmplist.length; j++) {
|
||||
result.push(tmplist.concat(sub_tmplist[j]));
|
||||
}
|
||||
} else {
|
||||
result.push(tmplist);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
//从n个数组中各取一个元素出来进行组合,只取组合,不取排列(递归算法)
|
||||
function min_CombineByArys(arylist){
|
||||
if (arylist.length == 0){
|
||||
return [];
|
||||
}
|
||||
var result = [];
|
||||
for (var i = 0; i < arylist[0].length; i++) {
|
||||
result.push([arylist[0][i]]);
|
||||
}
|
||||
if (arylist.length == 1){
|
||||
return result;
|
||||
}
|
||||
var resultlist = [];
|
||||
var sub_result = min_CombineByArys(arylist.slice(1));
|
||||
for (var i = 0; i < result.length; i++) {
|
||||
for (var j = 0; j < sub_result.length; j++) {
|
||||
resultlist.push(result[i].concat(sub_result[j]));
|
||||
}
|
||||
}
|
||||
return resultlist;
|
||||
}
|
||||
|
||||
//是否存在指定函数
|
||||
function min_ExitsFunction(funcName)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (typeof(eval(funcName)) == "function")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
return false;
|
||||
}
|
||||
|
||||
//(按顺序)加载js文件
|
||||
function min_loadJsFile(str_jsfile, func_succ, NoRandomFlag)
|
||||
{
|
||||
var domScript = document.createElement('script');
|
||||
if (!NoRandomFlag)
|
||||
{
|
||||
// str_jsfile = str_jsfile + '?' + Math.random() * 10000;
|
||||
// str_jsfile = str_jsfile + '?' + min_random(1, 10000000);
|
||||
str_jsfile = str_jsfile + '?' + min_timestamp();
|
||||
}
|
||||
domScript.src = str_jsfile;
|
||||
func_succ = func_succ || function(){};
|
||||
domScript.onload = domScript.onreadystatechange = function() {
|
||||
if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {
|
||||
func_succ();
|
||||
this.onload = this.onreadystatechange = null;
|
||||
this.parentNode.removeChild(this);
|
||||
}
|
||||
}
|
||||
document.getElementsByTagName('head')[0].appendChild(domScript);
|
||||
}
|
||||
|
||||
//生成一个GUID
|
||||
function min_guid()
|
||||
{
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
||||
var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
|
||||
return v.toString(16);});
|
||||
}
|
||||
|
||||
//获取时间戳
|
||||
function min_timestamp()
|
||||
{
|
||||
return new Date().getTime();
|
||||
}
|
||||
|
||||
wnd.min_copyjson = min_copyjson; //复制json对象
|
||||
wnd.min_clone = min_clone;
|
||||
wnd.min_jsontostr = min_jsontostr; //json转字符串
|
||||
wnd.min_strtojson = min_strtojson; //字符串转json
|
||||
wnd.min_inttostr = min_inttostr; //整型转字符型
|
||||
wnd.min_strtoint = min_strtoint; //字符型转整型
|
||||
|
||||
wnd.min_ltrim = min_ltrim; //去左空格
|
||||
wnd.min_rtrim = min_rtrim; //去右空格
|
||||
wnd.min_trim = min_trim; //去左右空格
|
||||
|
||||
wnd.min_div = min_div; //整除
|
||||
wnd.min_mod = min_mod; //取余数
|
||||
wnd.min_abs = min_abs; //取绝对值
|
||||
wnd.min_random = min_random; //取随机数
|
||||
wnd.min_random1 = min_random1; //取随机数1
|
||||
wnd.min_randomChar = min_randomChar; //随机字符串
|
||||
wnd.min_length = min_length; //取长度
|
||||
wnd.min_replaceAll = min_replaceAll; //字符全替换
|
||||
|
||||
wnd.min_now = min_now; //取本地当前时间
|
||||
wnd.min_day = min_day; //取本地当前日期
|
||||
wnd.min_datediff = min_datediff; //获取时间差
|
||||
wnd.min_timerange = min_timerange;
|
||||
wnd.min_guid = min_guid; //生成一个GUID
|
||||
|
||||
wnd.min_getQueryString = min_getQueryString; //取当前页面url中的参数值
|
||||
wnd.min_getUrlRootPath = min_getUrlRootPath; //获取当前页面的路径
|
||||
|
||||
wnd.min_setCookie = min_setCookie; //设置cookie
|
||||
wnd.min_getCookie = min_getCookie; //读取cookie
|
||||
wnd.min_delCookie = min_delCookie; //删除cookie
|
||||
|
||||
wnd.min_getdom = min_getdom; //获取一个dom
|
||||
wnd.min_setdom = min_setdom; //设置一个dom属性值
|
||||
wnd.min_uphtml = min_uphtml; //添加一段innerHTML
|
||||
|
||||
wnd.min_ontime = min_ontime; //新建一个周期性的定时器
|
||||
wnd.min_ontimeout = min_ontimeout; //新建一个一次性的定时器
|
||||
wnd.min_closetime = min_closetime; //关闭定时器
|
||||
|
||||
wnd.min_writefile_gameid = min_writefile_gameid; //本地存储数据
|
||||
wnd.min_readfile_gameid = min_readfile_gameid; //读取本地数据
|
||||
|
||||
wnd.min_encode = min_encode; //encodeURIComponent转码
|
||||
wnd.min_decode = min_decode; //decodeURIComponent解码
|
||||
|
||||
wnd.min_tcp = min_tcp; //新建一个tcp连接
|
||||
wnd.min_http = min_http; //http请求
|
||||
|
||||
wnd.min_ary_indexof = min_ary_indexof; //在数组中根据元素值查找下标
|
||||
wnd.min_ary_delval = min_ary_delval; //在数组中根据值删除元素
|
||||
wnd.min_ary_delfromto = min_ary_delfromto; //在数组中根据下标删除诺干个元素
|
||||
wnd.min_ary_delobj = min_ary_delobj; //在数组中删除某一对象元素
|
||||
wnd.min_ary_include = min_ary_include; //数组包含
|
||||
wnd.min_ary_deduct = min_ary_deduct; //数组相减
|
||||
wnd.min_CombineInAry = min_CombineInAry; //从m个数中取n个数的组合
|
||||
wnd.min_CombineByArys = min_CombineByArys; //从n个数组中各取一个元素出来进行组合
|
||||
|
||||
wnd.min_ExitsFunction = min_ExitsFunction; //是否存在函数
|
||||
wnd.min_loadJsFile = min_loadJsFile; //加载js文件
|
||||
|
||||
wnd.min_guid = min_guid; //生成一个GUID
|
||||
wnd.min_timestamp = min_timestamp; //获取时间戳
|
||||
})(window);
|
||||
|
||||
|
||||
25
codes/games/client/Projects/zpy/js/class/zhaopengyou_aset.js
Normal file
25
codes/games/client/Projects/zpy/js/class/zhaopengyou_aset.js
Normal file
@@ -0,0 +1,25 @@
|
||||
//牌局类
|
||||
var cls_zhaopengyou_aset = cls_aset2.NewClass();
|
||||
var cls_zhaopengyou_card = cls_card2.NewClass();
|
||||
|
||||
cls_zhaopengyou_aset.declare = function(){
|
||||
var paiju = cls_aset2.declare();
|
||||
// paiju.number = o_desk.data.asetlist.length + 1;
|
||||
return paiju;
|
||||
};
|
||||
|
||||
//几副牌
|
||||
cls_zhaopengyou_aset.get_cardcount = function(){
|
||||
return 2;
|
||||
};
|
||||
|
||||
//每人需要发多少张牌
|
||||
cls_zhaopengyou_aset.get_dealcount = function(paiju , o_desk){
|
||||
return 27;
|
||||
};
|
||||
//留几张牌
|
||||
cls_zhaopengyou_aset.get_bottomcount = function(paiju , o_desk){
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
||||
458
codes/games/client/Projects/zpy/js/friend.js
Normal file
458
codes/games/client/Projects/zpy/js/friend.js
Normal file
@@ -0,0 +1,458 @@
|
||||
var frieng = function (fri,zj,z) {//显示朋友
|
||||
set_group(215,37,0,0,0);//set_level(101,0);
|
||||
if (z==0) {//庄显示
|
||||
//set_self(1268,37,1,0,0);
|
||||
switch (zj){//自己是几
|
||||
case 0:
|
||||
if (fri==0) {//要显示的庄是几
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,531,0,0);
|
||||
}
|
||||
if (fri==1) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
}
|
||||
if (fri==2) {
|
||||
set_self(1268,18,735,0,0);
|
||||
set_self(1268,19,74,0,0);
|
||||
}
|
||||
if (fri==3) {
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (fri==1) {//要显示的庄是几
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,531,0,0);
|
||||
}
|
||||
if (fri==2) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
}
|
||||
if (fri==3) {
|
||||
set_self(1268,18,735,0,0);
|
||||
set_self(1268,19,74,0,0);
|
||||
}
|
||||
if (fri==0) {
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (fri==2) {//要显示的庄是几
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,531,0,0);
|
||||
}
|
||||
if (fri==3) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
}
|
||||
if (fri==0) {
|
||||
set_self(1268,18,735,0,0);
|
||||
set_self(1268,19,74,0,0);
|
||||
}
|
||||
if (fri==1) {
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (fri==3) {//要显示的庄是几
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,531,0,0);
|
||||
}
|
||||
if (fri==0) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
}
|
||||
if (fri==1) {
|
||||
set_self(1268,18,735,0,0);
|
||||
set_self(1268,19,74,0,0);
|
||||
}
|
||||
if (fri==2) {
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}else if(z==1){//朋友显示
|
||||
set_self(1268,37,1,0,0);
|
||||
set_self(1379,37,1,0,0);
|
||||
switch (zj){//自己是几
|
||||
case 0:
|
||||
if (fri==0) {//要显示的朋友是几
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,531,0,0);
|
||||
}
|
||||
if (fri==1) {
|
||||
set_self(1379,18,1149,0,0);
|
||||
set_self(1379,19,242,0,0);
|
||||
}
|
||||
if (fri==2) {
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
}
|
||||
if (fri==3) {
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,242,0,0);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (fri==1) {//要显示的朋友是几
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,531,0,0);
|
||||
}
|
||||
if (fri==2) {
|
||||
set_self(1379,18,1149,0,0);
|
||||
set_self(1379,19,242,0,0);
|
||||
}
|
||||
if (fri==3) {
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
}
|
||||
if (fri==0) {
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,242,0,0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (fri==2) {//要显示的朋友是几
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,531,0,0);
|
||||
}
|
||||
if (fri==3) {
|
||||
set_self(1379,18,1149,0,0);
|
||||
set_self(1379,19,242,0,0);
|
||||
}
|
||||
if (fri==0) {
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
}
|
||||
if (fri==1) {
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,242,0,0);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (fri==3) {//要显示的朋友是几
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,531,0,0);
|
||||
}
|
||||
if (fri==0) {
|
||||
set_self(1379,18,1149,0,0);
|
||||
set_self(1379,19,242,0,0);
|
||||
}
|
||||
if (fri==1) {
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
}
|
||||
if (fri==2) {
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,242,0,0);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}else if(z==2){//独
|
||||
set_self(1268,37,1,0,0);
|
||||
set_self(1379,37,1,0,0);
|
||||
set_self(1380,37,1,0,0);
|
||||
switch (zj){//自己是几
|
||||
case 0:
|
||||
if (fri==0) {//独的人是几
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==1) {
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,531,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==2) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,531,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==3) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,531,0,0);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (fri==1) {//独的人是几
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==2) {
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,531,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==3) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,531,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==0) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,531,0,0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (fri==2) {//独的人是几
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==3) {
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,531,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==0) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,531,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==1) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,531,0,0);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (fri==3) {//独的人是几
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==0) {
|
||||
set_self(1268,18,4,0,0);
|
||||
set_self(1268,19,531,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==1) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,4,0,0);
|
||||
set_self(1379,19,531,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,242,0,0);
|
||||
}
|
||||
if (fri==2) {
|
||||
set_self(1268,18,1149,0,0);
|
||||
set_self(1268,19,242,0,0);
|
||||
set_self(1379,18,735,0,0);
|
||||
set_self(1379,19,74,0,0);
|
||||
set_self(1380,18,4,0,0);
|
||||
set_self(1380,19,531,0,0);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
var zjzb = function () {
|
||||
//如果自己准备了
|
||||
set_group(205,37,0,0,0);//set_level(105,0);
|
||||
set_group(201,37,0,0,0);//set_level(103,1);
|
||||
set_group(203,37,1,0,0);//set_level(103,1);
|
||||
for (var i=0;i<4;i++) {
|
||||
set_self(i+1124,37,0,0,0);
|
||||
}
|
||||
switch (Utl.getMySeat()){
|
||||
case 0:
|
||||
for (var i=0;i<=3;i++) {
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[i]==1) {
|
||||
set_self(i+1124,37,1,0,0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
for (var i=1;i<=3;i++) {
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[i]==1) {
|
||||
set_self(i+1123,37,1,0,0);
|
||||
}
|
||||
}
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[0]==1) {
|
||||
set_self(1127,37,1,0,0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
for (var i=2;i<=3;i++) {
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[i]==1) {
|
||||
set_self(i+1122,37,1,0,0);
|
||||
}
|
||||
}
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[0]==1) {
|
||||
set_self(1126,37,1,0,0);
|
||||
}
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[1]==1) {
|
||||
set_self(1127,37,1,0,0);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[3]==1) {
|
||||
set_self(1124,37,1,0,0);
|
||||
}
|
||||
for (var i=0;i<3;i++) {
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[i]==1) {
|
||||
set_self(1125+i,37,1,0,0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (get_self(1124,37,0,0,0)==1) {
|
||||
set_self(1399,37,0,0,0);
|
||||
}
|
||||
}
|
||||
var zbqk = function (zhunbei){
|
||||
switch (Utl.getMySeat()){
|
||||
case 0:
|
||||
for (var i=0;i<=3;i++) {
|
||||
if (zhunbei[i]==1) {
|
||||
set_self(i+1124,37,1,0,0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
for (var i=1;i<=3;i++) {
|
||||
if (zhunbei[i]==1) {
|
||||
set_self(i+1123,37,1,0,0);
|
||||
}
|
||||
}
|
||||
if (zhunbei[0]==1) {
|
||||
set_self(1127,37,1,0,0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
for (var i=2;i<=3;i++) {
|
||||
if (zhunbei[i]==1) {
|
||||
set_self(i+1122,37,1,0,0);
|
||||
}
|
||||
}
|
||||
if (zhunbei[0]==1) {
|
||||
set_self(1126,37,1,0,0);
|
||||
}
|
||||
if (zhunbei[1]==1) {
|
||||
set_self(1127,37,1,0,0);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (zhunbei[3]==1) {
|
||||
set_self(1124,37,1,0,0);
|
||||
|
||||
}
|
||||
for (var i=0;i<3;i++) {
|
||||
if (zhunbei[i]==1) {
|
||||
set_self(1125+i,37,1,0,0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
var dajujiesuan = function () {
|
||||
set_group(206,37,1,0,0);//set_level(502,1);
|
||||
|
||||
var zf = [0,0,0,0];
|
||||
for(var i = 0;i<zhaopengyou_bianliang.pub.fen.length/4;i++){
|
||||
zf[0] = zf[0]+zhaopengyou_bianliang.pub.fen[i*4];
|
||||
zf[1] = zf[1]+zhaopengyou_bianliang.pub.fen[i*4+1];
|
||||
zf[2] = zf[2]+zhaopengyou_bianliang.pub.fen[i*4+2];
|
||||
zf[3] = zf[3]+zhaopengyou_bianliang.pub.fen[i*4+3];
|
||||
}
|
||||
if (zhaopengyou_bianliang.pub.fen.length>0) {
|
||||
Utl.getMultipleResult(zf);
|
||||
GameUI.showCalBtn(zf);
|
||||
}
|
||||
switch (Utl.getMySeat()){
|
||||
case 0:
|
||||
dajiesuan(0,zhaopengyou_bianliang.pub.fen,jushu[1],jushu[0],zhaopengyou_bianliang.pub.grade);
|
||||
break;
|
||||
case 1:
|
||||
dajiesuan(1,zhaopengyou_bianliang.pub.fen,jushu[1],jushu[0],zhaopengyou_bianliang.pub.grade);
|
||||
break;
|
||||
case 2:
|
||||
dajiesuan(2,zhaopengyou_bianliang.pub.fen,jushu[1],jushu[0],zhaopengyou_bianliang.pub.grade);
|
||||
break;
|
||||
case 3:
|
||||
dajiesuan(3,zhaopengyou_bianliang.pub.fen,jushu[1],jushu[0],zhaopengyou_bianliang.pub.grade);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5543
codes/games/client/Projects/zpy/js/gameabc.min.js
vendored
Normal file
5543
codes/games/client/Projects/zpy/js/gameabc.min.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5682
codes/games/client/Projects/zpy/js/gameabc.min2.js
Normal file
5682
codes/games/client/Projects/zpy/js/gameabc.min2.js
Normal file
File diff suppressed because it is too large
Load Diff
766
codes/games/client/Projects/zpy/js/gamemain.js
Normal file
766
codes/games/client/Projects/zpy/js/gamemain.js
Normal file
@@ -0,0 +1,766 @@
|
||||
var gameabc_face = gameabc_face||{};
|
||||
{
|
||||
gameabc_face.tag=12; //定义你的游戏全局内存
|
||||
gameabc_face.tag1=123;//定义你的游戏全局内存
|
||||
gameabc_face .tag2=123;//定义你的游戏全局内存
|
||||
gameabc_face.tag3=123;//定义你的游戏全局内存
|
||||
gameabc_face.dfwgao=1;
|
||||
xp =0;//滑动控制
|
||||
xpEnable = true;//滑动牌是否开启
|
||||
chupaishu = [0,0,0,0];//打了几张牌
|
||||
mypaizhen = [];//自己牌的帧数
|
||||
sort_ow = 0;//排序方式 0 是大小排序 1是张数排序
|
||||
ts= 0;//第几次炸弹
|
||||
seat = 0;//出这手牌的人
|
||||
jushu = [];//第几局
|
||||
ren = -1;//重连的人
|
||||
yon = 0; //能不能打
|
||||
bipai = [];//比牌
|
||||
shijian = 30;//时间
|
||||
d = 0;//独的状态
|
||||
baozha = []; //自己有几个什么炸
|
||||
wsk = [[],[],[]];//510K
|
||||
jiesuanid = [];//虚拟id
|
||||
jszt = -1;//结算状态 -1未开始 0打牌中 1 小局结算 2准备 3大局结算
|
||||
tscp = 0;//出第几个提示牌
|
||||
fapai = 0;//发到第几张牌
|
||||
benlunpai = [];//本局所有牌
|
||||
xinxi = [];//昵称 头像
|
||||
zhuangqk = [];//庄的变化情况
|
||||
kaijupai = [];//4个人的开局牌
|
||||
roomcode = 0;//房间号
|
||||
myseat = 0;//座位号
|
||||
record_ju = [];//回放第几局
|
||||
single = 0;//操作独控制
|
||||
putcars = 0;//操作打牌控制
|
||||
clds = null;//重连定时
|
||||
record_defen = [0,0,0,0];//回放得分
|
||||
record_jiang = [0,0,0,0];//回放奖
|
||||
record_jijiang = [0,0,0,0];//回放手数奖
|
||||
record_dawan = [0,0,0,0];//回放打完
|
||||
boom_tishi = [];
|
||||
wsk_tishi = [];
|
||||
boomts = 0;
|
||||
wskts = 0;
|
||||
paiju = {
|
||||
|
||||
};
|
||||
banben = 0;
|
||||
daishu = 0;
|
||||
xuanzhonglipai = false;
|
||||
myCardSize1 = [110,140];
|
||||
myCardSize2 = [66,84];
|
||||
myCardSpace = 50;
|
||||
myPutCardSpace = 30;
|
||||
myPutCardY = 370;
|
||||
myCardLeftX = 1173;
|
||||
myCardButtomCount = 19;//下排牌的最大数量
|
||||
myCardPositionY1 = [540,564];//[550,584]
|
||||
myCardPositionY2 = [447,471];//[469,503]
|
||||
|
||||
}
|
||||
gameabc_face.gamestart=function(gameid)
|
||||
{
|
||||
//游戏初始化代码
|
||||
Logic.AppStart();
|
||||
set_group(201,37,0,0,0);//set_level(101,0);
|
||||
set_group(202,37,0,0,0);//set_level(102,0);
|
||||
set_group(205,37,0,0,0);//set_level(501,0);
|
||||
set_group(206,37,0,0,0);//set_level(502,0);
|
||||
set_group(203,37,0,0,0);//set_level(103,0);
|
||||
set_group(204,37,0,0,0);//set_level(104,0);
|
||||
set_group(213,37,0,0,0);//set_level(101,0);
|
||||
set_group(214,37,0,0,0);//set_level(101,0);
|
||||
set_group(214,37,0,0,0);//set_level(101,0);
|
||||
for (var i = 0; i < 8; i++) {//
|
||||
set_self(i+1189,37,0,0,0);
|
||||
}
|
||||
for (var i = 0; i<81; i++) {
|
||||
set_self(1028+i,37,0,0,0);
|
||||
}
|
||||
set_self(1153,37,0,0,0);
|
||||
set_self(1392,37,0,0,0);
|
||||
set_self(1145,37,0,0,0);
|
||||
set_self(1393,37,0,0,0);
|
||||
set_self(1146,37,0,0,0);
|
||||
set_self(1146,18,600,0,0);
|
||||
set_self(1146,19,260,0,0);
|
||||
set_self(1146,20,0,0,0);
|
||||
set_self(1146,21,0,0,0);
|
||||
set_self(1146,37,0,0,0);
|
||||
};
|
||||
|
||||
gameabc_face.ani_doend=function(id,sx,count,allend)
|
||||
{
|
||||
//logmessage(id+"/"+sx+"/"+count+"/"+allend);
|
||||
//play_ani(0,2,18,50,200,0,1000,0,0,0,0,6000,1);//主动关闭
|
||||
GameUI.utlani_doend(id,sx,count,allend);
|
||||
gameCombat.utlani_doend(id,sx,count,allend);
|
||||
if(id==1146){
|
||||
if (sx==20&&get_self(1146,20,0,0,0)==75) {
|
||||
play_ani(1,1146,20,75,40,0,1500,0,0,0,1,0,0);
|
||||
play_ani(1,1146,21,75,40,0,1500,0,0,0,1,0,0);
|
||||
zhuang(zhaopengyou_bianliang.pub.zhuang,Utl.getMySeat());
|
||||
}
|
||||
}
|
||||
if(id==1140&&sx==20){
|
||||
set_group(208,37,0,0,0);
|
||||
|
||||
}
|
||||
;
|
||||
};
|
||||
|
||||
gameabc_face.box_doend=function(id,sx,timelen)
|
||||
{
|
||||
//play_box 结束事件
|
||||
//showmessage("box_doend:"+id+"/"+sx+"/"+timelen);
|
||||
//logmessage("box_doend:"+id+"/"+sx+"/"+timelen);
|
||||
};
|
||||
gameabc_face.onloadurl=function(recid,rectype,url,error,count,len)
|
||||
{
|
||||
//修改为gameabc_face.onloadurl 则自己处理图片加载进度
|
||||
//资源加载完成函数
|
||||
//recid:资源id
|
||||
//rectype:1 图片 2声音
|
||||
//url :网络地址
|
||||
//error:是否加载错误
|
||||
//len:资源大小
|
||||
//count:加载的个数百分比
|
||||
|
||||
//logmessage("onload:"+recid+"/"+rectype+"/"+count+"/"+error);
|
||||
GameUI.onloadurl(recid,rectype,url,error,count,len);
|
||||
/*
|
||||
if (rectype==0)
|
||||
{
|
||||
open_load("","1.mp3","");
|
||||
gameabc_face.randombase=0;//使用系统浏览器缓存
|
||||
}
|
||||
|
||||
if (count==100)
|
||||
{
|
||||
game_close_zsmsg("");
|
||||
|
||||
} else
|
||||
{
|
||||
game_open_zsmsg(count+"%"+" 加载中...");
|
||||
};
|
||||
*/
|
||||
};
|
||||
|
||||
gameabc_face.chongzhi=function(userid,zt,data)
|
||||
{
|
||||
//游戏接口代码
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.onresize=function(pmw/*屏幕宽*/,pmh/*屏幕宽*/,sjweww/*设计宽*/,sjnewh/*设计宽*/,nweww/*显示宽*/,newh/*显示高*/)
|
||||
{
|
||||
|
||||
//屏幕变化
|
||||
// 在此调整 列表控件的宽高和区域 不是整体缩放
|
||||
//logmessage("onresize:"+pmw+"/"+pmh+"/"+sjweww+"/"+sjnewh+"/"+nweww+"/"+newh);
|
||||
};
|
||||
|
||||
gameabc_face.gamebegindraw=function(gameid, spid, times, timelong)
|
||||
{
|
||||
//更新开始代码
|
||||
GameUI.utlgamebegindraw(gameid, spid, times, timelong);
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.gameenddraw=function(gameid, spid, times, timelong)
|
||||
{
|
||||
//更新完成代码
|
||||
GameUI.gameenddraw(gameid, spid, times, timelong);
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.mousedown=function(gameid, spid, downx, downy, no1, no2, no3, no4, no5, no6)
|
||||
{
|
||||
//点击代码
|
||||
GameUI.utlmousedown(gameid, spid, downx, downy, no1, no2, no3, no4, no5, no6);
|
||||
Game_Modify.utlmousedown(gameid, spid, downx, downy, no1, no2, no3, no4, no5, no6);
|
||||
gameCombat.utlmousedown(gameid, spid, downx, downy, no1, no2, no3, no4, no5, no6);
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.mousedown_nomove=function(gameid, spid, downx, downy, timelong, no1, no2, no3, no4, no5)
|
||||
{
|
||||
//点击代没移动代码
|
||||
GameUI.utlmousedown_nomove(gameid, spid, downx, downy, timelong, no1, no2, no3, no4, no5);
|
||||
Game_Modify.utlmousedown_nomove(gameid, spid, downx, downy, timelong, no1, no2, no3, no4, no5);
|
||||
gameCombat.utlmousedown(gameid, spid, downx, downy, no1, no2, no3, no4, no5);
|
||||
};
|
||||
|
||||
gameabc_face.mouseup=function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
|
||||
{
|
||||
//点击弹起代码
|
||||
//可以通过spid_down和spid_up 的比较 来判断是 点击还是 移动
|
||||
GameUI.utlmouseup(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
|
||||
Game_Modify.mouseup(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
|
||||
//MouseUp(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
|
||||
gameCombat.utlmouseup (gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.mousemove=function(gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1)
|
||||
{
|
||||
//点击后移动代码
|
||||
//set_self(spid,18,offmovex,1,0);
|
||||
//set_self(spid,19,offmovey,1,0);
|
||||
GameUI.utlmousemove(gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1);
|
||||
Game_Modify.utlmousemove(gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1);
|
||||
gameCombat.utlmousemove(gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1);
|
||||
};
|
||||
|
||||
gameabc_face.gamemydraw=function(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7)
|
||||
{
|
||||
//每个精灵更新绘画代码
|
||||
GameUI.utlgamemydraw(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7);
|
||||
Game_Modify.gamemydraw(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7);
|
||||
gameCombat.utlgamemydraw(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7);
|
||||
};
|
||||
|
||||
gameabc_face.gamemydrawbegin=function(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7)
|
||||
{
|
||||
//每个精灵更新前绘画代码
|
||||
GameUI.utlgamemydrawbegin(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7);
|
||||
Game_Modify.utlgamemydrawbegin(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7);
|
||||
gameCombat.utlgamemydrawbegin(gameid, spid, times, timelong, no2, no3, no4, no5, no6, no7);
|
||||
};
|
||||
|
||||
gameabc_face.ontimer= function(gameid, spid, /* 本次间隔多少次了 */ times, /* 本次间隔多久 */ timelong,/* 开启后运行多少次了 */ alltimes){
|
||||
/*请在下面输入您的代码
|
||||
*/
|
||||
//set_self(1,18,5,1,0);
|
||||
GameUI.utlontimer(gameid, spid, /* 本次间隔多少次了 */ times, /* 本次间隔多久 */ timelong,/* 开启后运行多少次了 */ alltimes);
|
||||
if(spid==1189){
|
||||
miao();
|
||||
}
|
||||
//if (spid == 1190) {
|
||||
//chongl();
|
||||
//}
|
||||
if (spid==1124) {
|
||||
jszt = 9;
|
||||
set_self(1027-fapai,37,1,0,0);
|
||||
fapai = fapai+1;
|
||||
if (d!=-1) {
|
||||
set_self(1143,43,zhaopengyou_bianliang.pub.zhaopai%54+1,0,0);
|
||||
set_self(1143,37,1,0,0);
|
||||
}
|
||||
if (fapai==27) {
|
||||
if (zhaopengyou_bianliang.pub.zhuang==Utl.getMySeat()&&zhaopengyou_bianliang.pub.du[zhaopengyou_bianliang.pub.zhuang]==-1) {
|
||||
set_self(1142,37,1,0,0);
|
||||
set_self(1183,37,1,0,0);
|
||||
}
|
||||
//set_self(1190,57,2000,0,0);
|
||||
|
||||
if (zhaopengyou_bianliang.pub.zhuang == zhaopengyou_bianliang.pub.kongzhiquan) {
|
||||
var dmd = 0;
|
||||
for (var i=0;i<4;i++) {
|
||||
if (zhaopengyou_bianliang.pub.dq_dapai[i].length==0) {
|
||||
dmd = dmd + 1;
|
||||
}
|
||||
}
|
||||
if (dmd==4) {
|
||||
shizhong(zhaopengyou_bianliang.pub.kongzhiquan,Utl.getMySeat());
|
||||
set_self(1189,57,1000,0,0);
|
||||
}
|
||||
|
||||
}
|
||||
set_self(1389,37,1,0,0);
|
||||
set_self(1390,37,1,0,0);
|
||||
set_self(1391,37,1,0,0);
|
||||
set_self(1442,37,1,0,0);
|
||||
for (var i =0;i<27;i++) {
|
||||
set_self(1001+i,41,1,0,0);
|
||||
set_self(1001+i,37,1,0,0);
|
||||
}
|
||||
set_self(1124,57,0,0,0);
|
||||
}
|
||||
}
|
||||
if (spid==1402) {//打牌定时器
|
||||
Record_chuliNext();
|
||||
// if(putcars == benlunpai.length){//小局结算
|
||||
// Record_Branch(myseat,zhaopengyou_bianliang.pub.chongguan,zhaopengyou_bianliang.pub.defen,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.pengyou,zhaopengyou_bianliang.pub.xiaojufen);
|
||||
// Record_Timer(false);
|
||||
// }
|
||||
// else{
|
||||
// Record_Putcards(benlunpai,myseat,zhaopengyou_bianliang.pub.shengli,putcars);
|
||||
// putcars++;
|
||||
// // set_self(1189,57,1000,0,0);
|
||||
// Record_Timer(true);
|
||||
// Record_Clock(benlunpai[putcars].seat,myseat);
|
||||
|
||||
// if(putcars >= benlunpai.length){
|
||||
// // set_self(1189,57,0,0,0);
|
||||
// Record_Timer(false);
|
||||
// Record_Clock(-1,myseat);
|
||||
// }
|
||||
|
||||
// }
|
||||
}
|
||||
if(spid == 1233){
|
||||
switch (Utl.getMySeat()){
|
||||
case 0:
|
||||
fen(0,zhaopengyou_bianliang.pub.grade,zhaopengyou_bianliang.pub.chongguan,zhaopengyou_bianliang.pub.defen,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.pengyou,zhaopengyou_bianliang.pub.xiaojufen);
|
||||
break;
|
||||
case 1:
|
||||
fen(1,zhaopengyou_bianliang.pub.grade,zhaopengyou_bianliang.pub.chongguan,zhaopengyou_bianliang.pub.defen,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.pengyou,zhaopengyou_bianliang.pub.xiaojufen);
|
||||
break;
|
||||
case 2:
|
||||
fen(2,zhaopengyou_bianliang.pub.grade,zhaopengyou_bianliang.pub.chongguan,zhaopengyou_bianliang.pub.defen,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.pengyou,zhaopengyou_bianliang.pub.xiaojufen);
|
||||
break;
|
||||
case 3:
|
||||
fen(3,zhaopengyou_bianliang.pub.grade,zhaopengyou_bianliang.pub.chongguan,zhaopengyou_bianliang.pub.defen,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.pengyou,zhaopengyou_bianliang.pub.xiaojufen);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
set_self(1233,57,0,0,0);
|
||||
}
|
||||
if (spid ==1418) {
|
||||
set_self(1418,37,0,0,0);
|
||||
set_self(1419,37,0,0,0);
|
||||
set_self(1418,57,0,0,0);
|
||||
set_self(1570,37,0,0,0);
|
||||
}
|
||||
};
|
||||
|
||||
gameabc_face.tcpconnected=function(tcpid)
|
||||
{
|
||||
/*
|
||||
ifast_tcp_open(1,"127.0.0.1:5414");//连接ws tcp
|
||||
*/
|
||||
//logmessage("tcpopen:"+tcpid);
|
||||
//Logic.tcpconnected(tcpid);
|
||||
};
|
||||
gameabc_face.tcpmessage=function(tcpid,data)
|
||||
{
|
||||
//logmessage("tcpread:"+data);
|
||||
//Net._ReceiveData(data);
|
||||
//Net_nn.TcpMessage(tcpid,data);
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.tcpdisconnected=function(tcpid)
|
||||
{
|
||||
//logmessage("tcpclose:"+tcpid);
|
||||
//Logic.DisConnect();
|
||||
|
||||
|
||||
};
|
||||
gameabc_face.tcperror=function(tcpid,data)
|
||||
{
|
||||
//logmessage("tcperror:"+tcpid);
|
||||
|
||||
};
|
||||
|
||||
gameabc_face.httpmessage=function(myid,url,data)
|
||||
{
|
||||
/*
|
||||
ifast_http(1,"web/test.txt",1);//获取文件 同域
|
||||
*/
|
||||
//logmessage("httpread:"+myid+"/"+url+":"+data);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4
codes/games/client/Projects/zpy/js/jquery-2.1.1.min.js
vendored
Normal file
4
codes/games/client/Projects/zpy/js/jquery-2.1.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
675
codes/games/client/Projects/zpy/js/paixu.js
Normal file
675
codes/games/client/Projects/zpy/js/paixu.js
Normal file
@@ -0,0 +1,675 @@
|
||||
var paixu = function(p,n){//排序
|
||||
var cardspz = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
||||
var car =[];
|
||||
if(n==0){
|
||||
for (var i = 0;i < p.length; i++) {
|
||||
p[i] = p[i]-1;
|
||||
}
|
||||
}
|
||||
for (var i = 0;i < p.length; i++) {
|
||||
car[i] = cardspz[p[i]];
|
||||
}
|
||||
var one = [0];
|
||||
var two = [0];
|
||||
var three = [0];
|
||||
var four = [0];
|
||||
var five = [0];
|
||||
var six = [0];
|
||||
var seven = [0];
|
||||
var eight = [0];
|
||||
var nine = [0];
|
||||
var ten = [0];
|
||||
var eleven = [0];
|
||||
var twelve = [0];
|
||||
var thirteen = [0];
|
||||
var fourteen = [0];
|
||||
//每种牌各多少张
|
||||
for(var i = 0;i < car.length; i++){
|
||||
switch (car[i]){
|
||||
case 15:
|
||||
fourteen[0] = fourteen[0]+1;
|
||||
fourteen.push(p[i]);
|
||||
break;
|
||||
case 14:
|
||||
fourteen[0] = fourteen[0]+1;
|
||||
fourteen.push(p[i]);
|
||||
break;
|
||||
case 13:
|
||||
thirteen[0] = thirteen[0]+1;
|
||||
thirteen.push(p[i]);
|
||||
break;
|
||||
case 12:
|
||||
twelve[0] = twelve[0]+1;
|
||||
twelve.push(p[i]);
|
||||
break;
|
||||
case 11:
|
||||
eleven[0] = eleven[0]+1;
|
||||
eleven.push(p[i]);
|
||||
break;
|
||||
case 10:
|
||||
ten[0] = ten[0]+1;
|
||||
ten.push(p[i]);
|
||||
break;
|
||||
case 9:
|
||||
nine[0] = nine[0]+1;
|
||||
nine.push(p[i]);
|
||||
break;
|
||||
case 8:
|
||||
eight[0] = eight[0]+1;
|
||||
eight.push(p[i]);
|
||||
break;
|
||||
case 7:
|
||||
seven[0] = seven[0]+1;
|
||||
seven.push(p[i]);
|
||||
break;
|
||||
case 6:
|
||||
six[0] = six[0]+1;
|
||||
six.push(p[i]);
|
||||
break;
|
||||
case 5:
|
||||
five[0] = five[0]+1;
|
||||
five.push(p[i]);
|
||||
break;
|
||||
case 4:
|
||||
four[0] = four[0]+1;
|
||||
four.push(p[i]);
|
||||
break;
|
||||
case 3:
|
||||
three[0] = three[0]+1;
|
||||
three.push(p[i]);
|
||||
break;
|
||||
case 2:
|
||||
two[0] = two[0]+1;
|
||||
two.push(p[i]);
|
||||
break;
|
||||
case 1:
|
||||
one[0] = one[0]+1;
|
||||
one.push(p[i]);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
var plist = [[]];
|
||||
plist = [one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve,thirteen,fourteen];
|
||||
//张数多的在前面
|
||||
plist.sort(px);
|
||||
var yi = [];
|
||||
var er = [];
|
||||
var san = [];
|
||||
var si = [];
|
||||
var wu = [];
|
||||
var liu = [];
|
||||
var qi = [];
|
||||
var ba = [];
|
||||
for (var i =0;i<plist.length;i++ ) {
|
||||
plist[i].splice(0,1);
|
||||
}
|
||||
//把张数相同的牌放一起
|
||||
for (var i =0;i<plist.length;i++ ) {
|
||||
switch (plist[i].length){
|
||||
case 1:
|
||||
for (var j = 0;j<plist[i].length;j++) {
|
||||
yi.push(plist[i][j]);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
for (var j = 0;j<plist[i].length;j++) {
|
||||
er.push(plist[i][j]);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
for (var j = 0;j<plist[i].length;j++) {
|
||||
san.push(plist[i][j]);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
for (var j = 0;j<plist[i].length;j++) {
|
||||
si.push(plist[i][j]);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
for (var j = 0;j<plist[i].length;j++) {
|
||||
wu.push(plist[i][j]);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
for (var j = 0;j<plist[i].length;j++) {
|
||||
liu.push(plist[i][j]);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
for (var j = 0;j<plist[i].length;j++) {
|
||||
qi.push(plist[i][j]);
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
for (var j = 0;j<plist[i].length;j++) {
|
||||
ba.push(plist[i][j]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
//每种张数的排序
|
||||
yi.sort(ss);
|
||||
er.sort(ss);
|
||||
san.sort(ss);
|
||||
si.sort(ss);
|
||||
wu.sort(ss);
|
||||
liu.sort(ss);
|
||||
qi.sort(ss);
|
||||
ba.sort(ss);
|
||||
var card = [];
|
||||
//把每种张数从大到小依次加入数组
|
||||
for (var i =0;i<ba.length;i++ ) {
|
||||
card.push(ba[i]);
|
||||
}
|
||||
for (var i =0;i<qi.length;i++ ) {
|
||||
card.push(qi[i]);
|
||||
}
|
||||
for (var i =0;i<liu.length;i++ ) {
|
||||
card.push(liu[i]);
|
||||
}
|
||||
for (var i =0;i<wu.length;i++ ) {
|
||||
card.push(wu[i]);
|
||||
}
|
||||
for (var i =0;i<si.length;i++ ) {
|
||||
card.push(si[i]);
|
||||
}
|
||||
for (var i =0;i<san.length;i++ ) {
|
||||
card.push(san[i]);
|
||||
}
|
||||
for (var i =0;i<er.length;i++ ) {
|
||||
card.push(er[i]);
|
||||
}
|
||||
for (var i =0;i<yi.length;i++ ) {
|
||||
card.push(yi[i]);
|
||||
}
|
||||
if(n==0){
|
||||
for (var i = 0;i < card.length; i++) {
|
||||
card[i] = card[i]+1;
|
||||
}
|
||||
}
|
||||
return card;
|
||||
|
||||
}
|
||||
var px = function (a,b) {//不同张数炸弹排序
|
||||
if (a[0] < b[0]) {//1
|
||||
return 1;
|
||||
}
|
||||
else if (a[0] > b[0]) {//-1
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
var pxa = function (a,b) {//不同张数炸弹帧数排序 包括王
|
||||
if (a[0] < b[0]) {//-1
|
||||
return -1;
|
||||
}
|
||||
else if (a[0] > b[0]) {//1
|
||||
return 1;
|
||||
}else if (a[0] == b[0]) {
|
||||
if (a[1]==54) {
|
||||
return 1;
|
||||
}
|
||||
if (a[2]==54) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
var pxb = function (a,b) {//同张数炸弹排序
|
||||
var x=0;
|
||||
var y=0;
|
||||
var pai = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
||||
x = pai[a[1]-1];
|
||||
y = pai[b[1]-1];
|
||||
if (a[0] < b[0]) {//1
|
||||
return 1;
|
||||
}
|
||||
else if (a[0] > b[0]) {//-1
|
||||
return -1;
|
||||
}
|
||||
else{
|
||||
if (x>y) {//-1
|
||||
if (y==1) {
|
||||
if (x==2||x>13) {
|
||||
return -1;
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (y==2) {
|
||||
if (x>13) {
|
||||
return -1;
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
|
||||
}
|
||||
else if(x<y){//1
|
||||
if (x==1) {
|
||||
if (y==2||y>13) {
|
||||
return 1;
|
||||
}else{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if (x==2) {
|
||||
if (y>13) {
|
||||
return 1;
|
||||
}else{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
var dxpx = function (p, n) {//比较大小
|
||||
if (n==0) {
|
||||
for (var i = 0;i < p.length; i++) {
|
||||
p[i] = p[i]-1;
|
||||
}
|
||||
}
|
||||
p.sort(ss);
|
||||
if (n==0) {
|
||||
for (var i = 0;i < p.length; i++) {
|
||||
p[i] = p[i]+1;
|
||||
}
|
||||
}
|
||||
return p;
|
||||
}
|
||||
var ss = function (a, b) {//比较大小
|
||||
var x=0;
|
||||
var y=0;
|
||||
var pai = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||
1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
||||
x = pai[a];
|
||||
y = pai[b];
|
||||
if (x < y) {//1
|
||||
if(x==1){
|
||||
if (y==2) {
|
||||
return 1;
|
||||
}
|
||||
else if (y>13) {
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else if (x==2) {
|
||||
if (y>13) {
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else if (x > y) {//-1
|
||||
if(y==1){
|
||||
if (x==2) {
|
||||
return -1;
|
||||
}
|
||||
else if (x>13) {
|
||||
return -1;
|
||||
}
|
||||
else{
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
else if (y==2) {
|
||||
if (x>13) {
|
||||
return -1;
|
||||
}
|
||||
else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
else {//如相等 黑色花色在前
|
||||
if (a>53) {
|
||||
a=a-54;
|
||||
}
|
||||
if (b>53) {
|
||||
b=b-54;
|
||||
}
|
||||
if (a>b) {//-1
|
||||
if (a+26>=52&&a+13<52) {//如果 a是红心
|
||||
if (a-26==b) {//如果b 是方块
|
||||
return -1;
|
||||
}
|
||||
else{
|
||||
return 1;
|
||||
}
|
||||
}else{
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
else if(a<b){//1
|
||||
if (b+26>=52&&b+13<52) {//b是红心
|
||||
if (b-26==a) {//a是方块
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
return -1;
|
||||
}
|
||||
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
}else if(a==b){
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
var againsort = function (so) {
|
||||
|
||||
if (so == 1) {//张数排序
|
||||
if(banben == 1){
|
||||
//id排序
|
||||
var lp = zhaopengyou_bianliang.pub.lipai;
|
||||
var lipai = [];
|
||||
// 理牌牌在前
|
||||
for(var i=0;i<zhaopengyou_bianliang.pub.lipai.length;i++){
|
||||
lipai = lipai.concat(zhaopengyou_bianliang.pub.lipai[i]);
|
||||
}
|
||||
var paiidcpy = zhaopengyou_bianliang.pub.paiid.concat();
|
||||
for(var k=0;k<lipai.length;k++){
|
||||
for(var j=0;j<paiidcpy.length;j++){
|
||||
if(lipai[k] == paiidcpy[j]){
|
||||
paiidcpy.splice(j,1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
zhaopengyou_bianliang.pub.paiid = lipai.concat(zd_paixu(paiidcpy));
|
||||
}else{
|
||||
//id排序
|
||||
var lp = zhaopengyou_bianliang.pub.lipai;
|
||||
var lipai = [];
|
||||
// 理牌牌在前
|
||||
for(var i=0;i<zhaopengyou_bianliang.pub.lipai.length;i++){
|
||||
lipai = lipai.concat(zhaopengyou_bianliang.pub.lipai[i]);
|
||||
}
|
||||
var paiidcpy = zhaopengyou_bianliang.pub.paiid.concat();
|
||||
for(var k=0;k<lipai.length;k++){
|
||||
for(var j=0;j<paiidcpy.length;j++){
|
||||
if(lipai[k] == paiidcpy[j]){
|
||||
paiidcpy.splice(j,1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
zhaopengyou_bianliang.pub.paiid = lipai.concat(paixu(paiidcpy,1));
|
||||
}
|
||||
set_self(1389,43,2,0,0);
|
||||
}
|
||||
if(so == 0){//大小排序
|
||||
//id排序
|
||||
var lp = zhaopengyou_bianliang.pub.lipai;
|
||||
var lipai = [];
|
||||
// 理牌牌在前
|
||||
for(var i=0;i<zhaopengyou_bianliang.pub.lipai.length;i++){
|
||||
lipai = lipai.concat(zhaopengyou_bianliang.pub.lipai[i]);
|
||||
}
|
||||
var paiidcpy = zhaopengyou_bianliang.pub.paiid.concat();
|
||||
for(var k=0;k<lipai.length;k++){
|
||||
for(var j=0;j<paiidcpy.length;j++){
|
||||
if(lipai[k] == paiidcpy[j]){
|
||||
paiidcpy.splice(j,1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
zhaopengyou_bianliang.pub.paiid = lipai.concat(dxpx(paiidcpy,1));
|
||||
set_self(1389,43,1,0,0);
|
||||
}
|
||||
for (var i=0;i<zhaopengyou_bianliang.pub.paiid.length;i++) {
|
||||
set_self(1001+27-zhaopengyou_bianliang.pub.paiid.length+i,43,zhaopengyou_bianliang.pub.paiid[i]%54+1,0,0);
|
||||
}
|
||||
}
|
||||
var zd_paixu = function (pai) {
|
||||
|
||||
var daxiao = [];
|
||||
for(var i = 0; i<10;i++){
|
||||
daxiao[i] = [];
|
||||
}
|
||||
var wskpx= [[],[],[]];
|
||||
var wang = [[],[]];
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
switch ((pai[i]%54+1)%13){
|
||||
case 1:
|
||||
if(pai[i]==52||pai[i]==106){
|
||||
wang[0].push(pai[i]);
|
||||
}else{
|
||||
|
||||
daxiao[8].push(pai[i]);
|
||||
}
|
||||
|
||||
break;
|
||||
case 2:
|
||||
if(pai[i]==53||pai[i]==107){
|
||||
wang[1].push(pai[i]);
|
||||
}else{
|
||||
daxiao[9].push(pai[i]);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
daxiao[0].push(pai[i]);
|
||||
break;
|
||||
case 4:
|
||||
daxiao[1].push(pai[i]);
|
||||
break;
|
||||
case 5:
|
||||
wskpx[0].push(pai[i]);
|
||||
break;
|
||||
case 6:
|
||||
daxiao[2].push(pai[i]);
|
||||
break;
|
||||
case 7:
|
||||
daxiao[3].push(pai[i]);
|
||||
break;
|
||||
case 8:
|
||||
daxiao[4].push(pai[i]);
|
||||
break;
|
||||
case 9:
|
||||
daxiao[5].push(pai[i]);
|
||||
break;
|
||||
case 10:
|
||||
wskpx[1].push(pai[i]);
|
||||
break;
|
||||
case 11:
|
||||
daxiao[6].push(pai[i]);
|
||||
break;
|
||||
case 12:
|
||||
daxiao[7].push(pai[i]);
|
||||
break;
|
||||
case 0:
|
||||
wskpx[2].push(pai[i]);
|
||||
break;
|
||||
//2 7 10 为 5 10 K
|
||||
}
|
||||
}
|
||||
for(var i= 0;i<daxiao.length;i++){
|
||||
if(daxiao[i].length == 0){
|
||||
daxiao.splice(i,1);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
if(wskpx[0].length>0 && wskpx[1].length>0 && wskpx[2].length>0){
|
||||
daxiao.sort(zd_px);
|
||||
}else{
|
||||
|
||||
if(wskpx[0].length){
|
||||
daxiao.push(wskpx[0]);
|
||||
}
|
||||
if(wskpx[1].length){
|
||||
daxiao.push(wskpx[1]);
|
||||
}
|
||||
if(wskpx[2].length){
|
||||
daxiao.push(wskpx[2]);
|
||||
}
|
||||
wskpx= [[],[],[]];
|
||||
daxiao.sort(zd_px);
|
||||
}
|
||||
|
||||
var jieguo = [];
|
||||
var jia = 0;
|
||||
for(var i= 0;i<daxiao.length;i++){
|
||||
daxiao[i].sort(ss);
|
||||
if(daxiao[i].length<=3 && jia == 0){
|
||||
jia = 1;
|
||||
if(wskpx[0].length){
|
||||
wskpx[0].sort(ss);
|
||||
jieguo.push(wskpx[0]);
|
||||
}
|
||||
if(wskpx[1].length){
|
||||
wskpx[1].sort(ss);
|
||||
jieguo.push(wskpx[1]);
|
||||
}
|
||||
if(wskpx[2].length){
|
||||
wskpx[2].sort(ss);
|
||||
jieguo.push(wskpx[2]);
|
||||
}
|
||||
if(wang[1].length){
|
||||
wang[1].sort(ss);
|
||||
jieguo.push(wang[1]);
|
||||
}
|
||||
if(wang[0].length){
|
||||
wang[0].sort(ss);
|
||||
jieguo.push(wang[0]);
|
||||
}
|
||||
wang = [];
|
||||
}
|
||||
jieguo.push(daxiao[i]);
|
||||
}
|
||||
if(jia == 0){
|
||||
if(wskpx[0].length){
|
||||
wskpx[0].sort(ss);
|
||||
jieguo.push(wskpx[0]);
|
||||
}
|
||||
if(wskpx[1].length){
|
||||
wskpx[1].sort(ss);
|
||||
jieguo.push(wskpx[1]);
|
||||
}
|
||||
if(wskpx[2].length){
|
||||
wskpx[2].sort(ss);
|
||||
jieguo.push(wskpx[2]);
|
||||
}
|
||||
if(wang[1].length){
|
||||
wang[1].sort(ss);
|
||||
jieguo.push(wang[1]);
|
||||
}
|
||||
if(wang[0].length){
|
||||
wang[0].sort(ss);
|
||||
jieguo.push(wang[0]);
|
||||
}
|
||||
wang = [];
|
||||
}
|
||||
|
||||
var paiwan = [];
|
||||
for(var i= 0;i<jieguo.length;i++){
|
||||
for(var j= 0;j<jieguo[i].length;j++){
|
||||
paiwan.push(jieguo[i][j]);
|
||||
}
|
||||
}
|
||||
return paiwan;
|
||||
|
||||
|
||||
}
|
||||
var zd_px = function (a,b) {//不同张数炸弹排序
|
||||
|
||||
if(a.length == 0){
|
||||
return 1;
|
||||
}
|
||||
if(a.length>=4 || b.length>=4){
|
||||
if (a.length < b.length) {//1
|
||||
return 1;
|
||||
}
|
||||
else if (a.length > b.length) {//-1
|
||||
return -1;
|
||||
}else{
|
||||
if((a[0]%54)%13>(b[0]%54)%13){
|
||||
if((b[0]%54)%13 == 0 &&(a[0]%54)%13 != 1){
|
||||
return 1;
|
||||
}else if((b[0]%54)%13 == 1){
|
||||
return 1;
|
||||
}
|
||||
return -1;
|
||||
}else if((a[0]%54)%13<(b[0]%54)%13){
|
||||
if((a[0]%54)%13 == 0 &&(b[0]%54)%13 != 1){
|
||||
return -1;
|
||||
}else if((a[0]%54)%13 == 1){
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if((a[0]%54)%13>(b[0]%54)%13){
|
||||
if((b[0]%54)%13 == 0 &&(a[0]%54)%13 != 1){
|
||||
return 1;
|
||||
}else if((b[0]%54)%13 == 1){
|
||||
return 1;
|
||||
}else{
|
||||
return -1;
|
||||
}
|
||||
}else if((a[0]%54)%13<(b[0]%54)%13){
|
||||
if((a[0]%54)%13 == 0 &&(b[0]%54)%13 != 1){
|
||||
return -1;
|
||||
}else if((a[0]%54)%13 == 1){
|
||||
return -1;
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
925
codes/games/client/Projects/zpy/js/putcards.js
Normal file
925
codes/games/client/Projects/zpy/js/putcards.js
Normal file
@@ -0,0 +1,925 @@
|
||||
var putcar = function (cards_a,cards_b,boom_a,boom_b) { //2个人的牌 2个人的牌型
|
||||
var paia = [];
|
||||
var paib = [];
|
||||
var daxiao_a = boom_a[1];
|
||||
var daxiao_b = boom_b[1];
|
||||
var feiji_a = [boom_a[2]];
|
||||
var feiji_b = [boom_b[2]];
|
||||
var list = [-1,0,0];
|
||||
var paizu = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
||||
for (var i = 0; i <cards_a.length; i++) {
|
||||
paia.push(paizu[cards_a[i]-1]);
|
||||
}
|
||||
for (var i = 0; i <cards_b.length; i++) {
|
||||
paib.push(paizu[cards_b[i]-1]);
|
||||
}
|
||||
|
||||
//炸弹b个数 > 炸弹a个数
|
||||
if (daxiao_a!=0||daxiao_b!=0) {
|
||||
if (daxiao_b>daxiao_a) {
|
||||
list[0]=1;
|
||||
}
|
||||
else if(daxiao_b==daxiao_a&&daxiao_a>0&&paia.length>=3&&paia.length<=8&&paia.length==paib.length){//炸弹b个数 = 炸弹a个数
|
||||
list[0] = bicards(paia,paib);
|
||||
}
|
||||
else if(daxiao_b<daxiao_a){
|
||||
list[0] = -1;
|
||||
}
|
||||
}
|
||||
if (daxiao_a==daxiao_b&&daxiao_b==0) {//没有炸弹
|
||||
if (boom_a[0]==boom_b[0]) {//牌型相同
|
||||
if (boom_a[0]<5) {//如果不是3带类的牌型
|
||||
if (paia.length==paib.length) {//长度相同 比较最大牌的大小
|
||||
list [0] = bicards(paia,paib);
|
||||
}else{//长度不同
|
||||
list[0] = -1;
|
||||
}
|
||||
}
|
||||
else{//如果是3带类的牌型,则比较最大的三带
|
||||
list[0] = bicards(feiji_a,feiji_b);
|
||||
}
|
||||
}else{//牌型不同
|
||||
list[0] = -1;
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
var paixing_jinxian = function(pai_a,shengpai){ //获取牌型
|
||||
var paizu = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
||||
var pai = [];
|
||||
for (var i = 0; i <pai_a.length; i++) {
|
||||
pai.push(paizu[pai_a[i]-1]);
|
||||
}
|
||||
var cards = 0;
|
||||
var boom_a = 0;
|
||||
var feiji = 0;
|
||||
|
||||
boom_a = boom(pai);
|
||||
|
||||
if (boom_a==0) {
|
||||
boom_a = k(pai,pai_a);
|
||||
}
|
||||
if (boom_a ==0) {
|
||||
//3心王
|
||||
if (pai.length==3) {
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
if (pai[i]==14||pai[i]==15) {
|
||||
boom_a = 51;
|
||||
}else{
|
||||
boom_a = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
//4心王
|
||||
if (pai.length==4) {
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
if (pai[i]==14||pai[i]==15) {
|
||||
boom_a = 81;
|
||||
}else{
|
||||
boom_a = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (cards==0&&boom_a == 0) {
|
||||
if (pai.length==1) {//单张
|
||||
cards = 1;
|
||||
}
|
||||
}
|
||||
if (cards==0&&boom_a == 0) {
|
||||
if (pai.length==2) {//对子
|
||||
if (pai[0]==pai[1]) {
|
||||
cards =2;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cards==0&&boom_a == 0) {
|
||||
if (pai.length>=5) {//一条龙
|
||||
if (pai[pai.length-1]<=10&&pai[pai.length-1]>=3) {//第一张牌是3-10
|
||||
if (pai[0]==1 ||pai[0]<=13) {//最后一张牌是A或者<= K
|
||||
if (pai[0]!=2) {//最后一张牌不是2
|
||||
if (pai[0]==1&&pai[1]==13) {//如果第一张牌是A
|
||||
for (var i = 1; i < pai.length-1; i++) {
|
||||
if (pai[i]-1 == pai[i+1]) {
|
||||
cards = 3;
|
||||
}
|
||||
else{
|
||||
cards = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}else{//如果第一张牌不是A
|
||||
for (var i = 0; i < pai.length-1; i++) {
|
||||
if (pai[i]-1 == pai[i+1]) {
|
||||
cards = 3;
|
||||
}
|
||||
else{
|
||||
cards = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cards ==0&&boom_a == 0) {
|
||||
if (pai.length>=4&&pai.length%2==0) {//连对
|
||||
//如果第一张牌<=k并且不等于2 最后一张牌>=3
|
||||
if (pai[pai.length-1]>=3&&pai[0]<=13&&pai[0]!=2) {
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
if (pai[i] == pai[i+1]) {//这张牌=下一张牌
|
||||
if (i+2 == pai.length) {//如果是最后一对牌
|
||||
break;
|
||||
}
|
||||
if (pai[i]-1==pai[i+2]) {//这对牌=下一对牌
|
||||
cards = 4;
|
||||
i=i+1;
|
||||
}
|
||||
else if (pai[i]==1&&pai[i+2]==13) {//如果第一对是A 第二对是K
|
||||
cards = 4;
|
||||
i=i+1;
|
||||
}
|
||||
else{
|
||||
cards = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else{
|
||||
cards = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cards==0&&boom_a == 0) {
|
||||
for (var i = 0; i < pai.length-1; i++) {
|
||||
if (pai[i]==pai[i+1]&&pai[i]==pai[i+2]) {//3带
|
||||
if (pai.length>5) {
|
||||
for (var j =i; j<i+8;j++) {
|
||||
if (pai[j]==1) {
|
||||
pai[j] = 14;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pai[i]-1==pai[i+3]&&pai[i+3]==pai[i+4]&&pai[i+3]==pai[i+5]) { //2连飞
|
||||
if (pai[i+3]-1==pai[i+6]&&pai[i+6]==pai[i+7]&&pai[i+7]==pai[i+8]) { //3连飞
|
||||
if (pai[i+6]-1==pai[i+9]&&pai[i+9]==pai[i+10]&&pai[i+10]==pai[i+11]) { //4连飞
|
||||
if (pai[i+9]-1==pai[i+12]&&pai[i+12]==pai[i+13]&&pai[i+13]==pai[i+14]) { //5连飞
|
||||
if (pai[i+12]-1==pai[i+15]&&pai[i+15]==pai[i+16]&&pai[i+16]==pai[i+17]) { //6连飞
|
||||
if (pai.length == 20 && shengpai > 0) {
|
||||
cards = 8;
|
||||
feiji = pai[i];
|
||||
i = i + 11;
|
||||
}
|
||||
else if (pai.length == 25 && shengpai > 0) {
|
||||
cards = 9;
|
||||
feiji = pai[i];
|
||||
i = i + 14;
|
||||
}else{
|
||||
cards = 10;
|
||||
feiji = pai[i];
|
||||
}
|
||||
|
||||
}
|
||||
else{//5连飞
|
||||
if (pai[i+14]==pai[i+15]) {
|
||||
var surplus = pai.splice(i+15,1)
|
||||
pai.unshift(min_random(0,100));
|
||||
i = 0;
|
||||
}
|
||||
else if (pai.length<=25&&pai.length>=15&&cards<=9) {
|
||||
if (pai.length == 15 && shengpai > 0) {
|
||||
cards = 7;
|
||||
feiji = pai[i];
|
||||
i = i + 8;
|
||||
}else
|
||||
if (pai.length == 20 && shengpai > 0) {
|
||||
cards = 8;
|
||||
feiji = pai[i];
|
||||
i = i + 11;
|
||||
}else{
|
||||
cards = 9;
|
||||
feiji = pai[i];
|
||||
i = i + 14;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//4连飞
|
||||
if (pai[i+11]==pai[i+12]) {
|
||||
var surplus = pai.splice(i+12,1)
|
||||
pai.unshift(min_random(0,100));
|
||||
i = 0;
|
||||
}
|
||||
else if (pai.length<=20&&pai.length>=12&&cards<=8) {
|
||||
if (pai.length == 15 && shengpai > 0) {
|
||||
cards = 7;
|
||||
feiji = pai[i];
|
||||
i = i+8;
|
||||
}else{
|
||||
cards = 8;
|
||||
feiji = pai[i];
|
||||
i = i+11;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//3连飞
|
||||
if (pai[i+8]==pai[i+9]) {
|
||||
var surplus = pai.splice(i+9,1)
|
||||
pai.unshift(min_random(0,100));
|
||||
i = 0;
|
||||
}
|
||||
else if (pai.length<=15&&pai.length>=9&&cards<=7) {
|
||||
if (pai.length == 10 && shengpai > 0) {
|
||||
cards = 6;
|
||||
feiji = pai[i];
|
||||
i = i+5;
|
||||
}else{
|
||||
cards = 7;
|
||||
feiji = pai[i];
|
||||
i = i+8;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//2连飞
|
||||
if (pai[i+5]==pai[i+6]) {
|
||||
var surplus = pai.splice(i+6,1)
|
||||
pai.unshift(min_random(0,100));
|
||||
i = 0;
|
||||
}
|
||||
else if (pai.length<=10&&pai.length>=6&&cards<=6) {
|
||||
cards = 6;
|
||||
feiji = pai[i];
|
||||
i = i+5;
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//3带
|
||||
if (pai[i+2]==pai[i+3]) {
|
||||
var surplus = pai.splice(i+3,1)
|
||||
pai.unshift(min_random(0,100));
|
||||
i = 0;
|
||||
}
|
||||
else if (pai.length<=5&&pai.length>=3&&cards<=5) {
|
||||
cards = 5;
|
||||
feiji = pai[i]
|
||||
i = i+2;
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//不是3带
|
||||
if(cards<5){
|
||||
cards = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 牌型 炸弹 飞机最大的一张牌
|
||||
var car = [cards,boom_a,feiji];
|
||||
return car;
|
||||
}
|
||||
var paixing_chongren = function(pai_a , shengpai){ //获取牌型
|
||||
var paizu = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
||||
var pai = [];
|
||||
for (var i = 0; i <pai_a.length; i++) {
|
||||
pai.push(paizu[pai_a[i]-1]);
|
||||
}
|
||||
var cards = 0;
|
||||
var boom_a = 0;
|
||||
var feiji = 0;
|
||||
|
||||
boom_a = boom(pai);
|
||||
if (boom_a==0) {
|
||||
boom_a = kz(pai,pai_a);
|
||||
}
|
||||
if (boom_a ==0) {
|
||||
//3心王
|
||||
if (pai.length==3) {
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
if (pai[i]==14||pai[i]==15) {
|
||||
boom_a = 61;
|
||||
}else{
|
||||
boom_a = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
//4心王
|
||||
if (pai.length==4) {
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
if (pai[i]==14||pai[i]==15) {
|
||||
boom_a = 81;
|
||||
}else{
|
||||
boom_a = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (cards==0&&boom_a == 0) {
|
||||
if (pai.length==1) {//单张
|
||||
cards = 1;
|
||||
}
|
||||
}
|
||||
if (cards==0&&boom_a == 0) {
|
||||
if (pai.length==2) {//对子
|
||||
if (pai[0]==pai[1]) {
|
||||
cards =2;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cards==0&&boom_a == 0) {
|
||||
if (pai.length>=5) {//一条龙
|
||||
if (pai[pai.length-1]<=10&&pai[pai.length-1]>=3) {//第一张牌是3-10
|
||||
if (pai[0]==1 ||pai[0]<=13) {//最后一张牌是A或者<= K
|
||||
if (pai[0]!=2) {//最后一张牌不是2
|
||||
if (pai[0]==1&&pai[1]==13) {//如果第一张牌是A
|
||||
for (var i = 1; i < pai.length-2; i++) {
|
||||
if (pai[i]-1 == pai[i+1]) {
|
||||
cards = 3;
|
||||
}
|
||||
else{
|
||||
cards = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}else{//如果第一张牌不是A
|
||||
for (var i = 0; i < pai.length-1; i++) {
|
||||
if (pai[i]-1 == pai[i+1]) {
|
||||
cards = 3;
|
||||
}
|
||||
else{
|
||||
cards = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cards ==0&&boom_a == 0) {
|
||||
if (pai.length>=4&&pai.length%2==0) {//连对
|
||||
//如果第一张牌<=k并且不等于2 最后一张牌>=3
|
||||
if (pai[pai.length-1]>=3&&pai[0]<=13&&pai[0]!=2) {
|
||||
for (var i = 0; i < pai.length; i++) {
|
||||
if (pai[i] == pai[i+1]) {//这张牌=下一张牌
|
||||
if (i+2 == pai.length) {//如果是最后一对牌
|
||||
break;
|
||||
}
|
||||
if (pai[i]-1==pai[i+2]) {//这对牌=下一对牌
|
||||
cards = 4;
|
||||
i=i+1;
|
||||
}
|
||||
else if (pai[i]==1&&pai[i+2]==13) {//如果第一对是A 第二对是K
|
||||
cards = 4;
|
||||
i=i+1;
|
||||
}
|
||||
else{
|
||||
cards = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else{
|
||||
cards = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cards==0&&boom_a == 0) {
|
||||
for (var i = 0; i < pai.length-1; i++) {
|
||||
if (pai[i]==pai[i+1]&&pai[i]==pai[i+2]) {//3带
|
||||
if (pai.length>5) {
|
||||
for (var j =i; j<i+8;j++) {
|
||||
if (pai[j]==1) {
|
||||
pai[j] = 14;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pai[i]-1==pai[i+3]&&pai[i+3]==pai[i+4]&&pai[i+3]==pai[i+5]) { //2连飞
|
||||
if (pai[i+3]-1==pai[i+6]&&pai[i+6]==pai[i+7]&&pai[i+7]==pai[i+8]) { //3连飞
|
||||
if (pai[i+6]-1==pai[i+9]&&pai[i+9]==pai[i+10]&&pai[i+10]==pai[i+11]) { //4连飞
|
||||
if (pai[i+9]-1==pai[i+12]&&pai[i+12]==pai[i+13]&&pai[i+13]==pai[i+14]) { //5连飞
|
||||
if (pai[i+12]-1==pai[i+15]&&pai[i+15]==pai[i+16]&&pai[i+16]==pai[i+17]) { //6连飞
|
||||
if (pai.length == 20 && shengpai > 0) {
|
||||
cards = 8;
|
||||
feiji = pai[i];
|
||||
i = i + 11;
|
||||
}
|
||||
else if (pai.length == 25 && shengpai > 0) {
|
||||
cards = 9;
|
||||
feiji = pai[i];
|
||||
i = i + 14;
|
||||
}else{
|
||||
cards = 10;
|
||||
feiji = pai[i];
|
||||
}
|
||||
|
||||
}
|
||||
else{//5连飞
|
||||
if (pai[i+14]==pai[i+15]) {
|
||||
var surplus = pai.splice(i+15,1)
|
||||
pai.unshift(min_random(0,100));
|
||||
i = 0;
|
||||
}
|
||||
else if (pai.length<=25&&pai.length>=15&&cards<=9) {
|
||||
if (pai.length == 15 && shengpai > 0) {
|
||||
cards = 7;
|
||||
feiji = pai[i];
|
||||
i = i + 8;
|
||||
}else
|
||||
if (pai.length == 20 && shengpai > 0) {
|
||||
cards = 8;
|
||||
feiji = pai[i];
|
||||
i = i + 11;
|
||||
}else{
|
||||
cards = 9;
|
||||
feiji = pai[i];
|
||||
i = i + 14;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//4连飞
|
||||
if (pai[i+11]==pai[i+12]) {
|
||||
var surplus = pai.splice(i+12,1)
|
||||
pai.unshift(min_random(0,100));
|
||||
i = 0;
|
||||
}
|
||||
else if (pai.length<=20&&pai.length>=12&&cards<=8) {
|
||||
if (pai.length == 15 && shengpai > 0) {
|
||||
cards = 7;
|
||||
feiji = pai[i];
|
||||
i = i+8;
|
||||
}else{
|
||||
cards = 8;
|
||||
feiji = pai[i];
|
||||
i = i+11;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//3连飞
|
||||
if (pai[i+8]==pai[i+9]) {
|
||||
var surplus = pai.splice(i+9,1)
|
||||
pai.unshift(min_random(0,100));
|
||||
i = 0;
|
||||
}
|
||||
else if (pai.length<=15&&pai.length>=9&&cards<=7) {
|
||||
if (pai.length == 10 && shengpai > 0) {
|
||||
cards = 6;
|
||||
feiji = pai[i];
|
||||
i = i+5;
|
||||
}else{
|
||||
cards = 7;
|
||||
feiji = pai[i];
|
||||
i = i+8;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//2连飞
|
||||
if (pai[i+5]==pai[i+6]) {
|
||||
var surplus = pai.splice(i+6,1)
|
||||
pai.unshift(min_random(0,100));
|
||||
i = 0;
|
||||
}
|
||||
else if (pai.length<=10&&pai.length>=6&&cards<=6) {
|
||||
cards = 6;
|
||||
feiji = pai[i];
|
||||
i = i+5;
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//3带
|
||||
if (pai[i+2]==pai[i+3]) {
|
||||
var surplus = pai.splice(i+3,1)
|
||||
pai.unshift(min_random(0,100));
|
||||
i = 0;
|
||||
}
|
||||
else if (pai.length<=5&&pai.length>=3&&cards<=5) {
|
||||
cards = 5;
|
||||
feiji = pai[i]
|
||||
i = i+2;
|
||||
}
|
||||
}
|
||||
}
|
||||
else{//不是3带
|
||||
if(cards<5){
|
||||
cards = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 牌型 炸弹 飞机最大的一张牌
|
||||
var car = [cards,boom_a,feiji];
|
||||
return car;
|
||||
}
|
||||
// 编译后的牌 牌帧数
|
||||
var k = function (k,pai) {
|
||||
var daxiao = 0;
|
||||
var wu = 0;
|
||||
var shi = 0;
|
||||
var kai = 0
|
||||
for (var i = 0; i < k.length; i++) {
|
||||
switch (k[i]){
|
||||
case 5:
|
||||
wu = wu+1;
|
||||
break;
|
||||
case 10:
|
||||
shi = shi+1;
|
||||
break;
|
||||
case 13:
|
||||
kai = kai+1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (k.length==3) {
|
||||
if (k[0]==13&&k[1]==10&&k[2]==5) {
|
||||
daxiao = 15;
|
||||
if (pai[0]==13) {
|
||||
if (pai[1]==10) {
|
||||
if (pai[2]==5) {
|
||||
daxiao = 16;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pai[0]==26) {
|
||||
if (pai[1]==23) {
|
||||
if (pai[2]==18) {
|
||||
daxiao = 16;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pai[0]==39) {
|
||||
if (pai[1]==36) {
|
||||
if (pai[2]==31) {
|
||||
daxiao = 16;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pai[0]==52) {
|
||||
if (pai[1]==49) {
|
||||
if (pai[2]==44) {
|
||||
daxiao = 16;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
daxiao = 0;
|
||||
}
|
||||
if (wu+shi+kai == k.length&&k.length>=9) {
|
||||
if (wu<=shi&&wu<=kai) {
|
||||
if (wu==3) {
|
||||
daxiao = 52;
|
||||
}
|
||||
if (wu==4) {
|
||||
daxiao = 82;
|
||||
}
|
||||
if (wu==5) {
|
||||
daxiao = 120;
|
||||
}
|
||||
if (wu==6) {
|
||||
daxiao = 240;
|
||||
}
|
||||
if (wu==7) {
|
||||
daxiao = 480;
|
||||
}
|
||||
if (wu==8) {
|
||||
daxiao = 960;
|
||||
}
|
||||
}
|
||||
else if (shi<=wu&&shi<=kai) {
|
||||
if (shi==3) {
|
||||
daxiao = 52;
|
||||
}
|
||||
if (shi==4) {
|
||||
daxiao = 82;
|
||||
}
|
||||
if (shi==5) {
|
||||
daxiao = 120;
|
||||
}
|
||||
if (shi==6) {
|
||||
daxiao = 240;
|
||||
}
|
||||
if (shi==7) {
|
||||
daxiao = 480;
|
||||
}
|
||||
if (shi==8) {
|
||||
daxiao = 960;
|
||||
}
|
||||
}
|
||||
else if (kai<=wu&&kai<=shi) {
|
||||
if (kai==3) {
|
||||
daxiao = 52;
|
||||
}
|
||||
if (kai==4) {
|
||||
daxiao = 82;
|
||||
}
|
||||
if (kai==5) {
|
||||
daxiao = 120;
|
||||
}
|
||||
if (kai==6) {
|
||||
daxiao = 240;
|
||||
}
|
||||
if (kai==7) {
|
||||
daxiao = 480;
|
||||
}
|
||||
if (kai==8) {
|
||||
daxiao = 960;
|
||||
}
|
||||
}
|
||||
}
|
||||
return daxiao;
|
||||
}
|
||||
// 编译后的牌 牌帧数
|
||||
var kz = function (k,pai) {
|
||||
var daxiao = 0;
|
||||
var wu = 0;
|
||||
var shi = 0;
|
||||
var kai = 0
|
||||
for (var i = 0; i < k.length; i++) {
|
||||
switch (k[i]){
|
||||
case 5:
|
||||
wu = wu+1;
|
||||
break;
|
||||
case 10:
|
||||
shi = shi+1;
|
||||
break;
|
||||
case 13:
|
||||
kai = kai+1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (k.length==3) {
|
||||
if (k[0]==13&&k[1]==10&&k[2]==5) {
|
||||
daxiao = 15;
|
||||
if (pai[0]==13) {
|
||||
if (pai[1]==10) {
|
||||
if (pai[2]==5) {
|
||||
daxiao = 16;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pai[0]==26) {
|
||||
if (pai[1]==23) {
|
||||
if (pai[2]==18) {
|
||||
daxiao = 16;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pai[0]==39) {
|
||||
if (pai[1]==36) {
|
||||
if (pai[2]==31) {
|
||||
daxiao = 16;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pai[0]==52) {
|
||||
if (pai[1]==49) {
|
||||
if (pai[2]==44) {
|
||||
daxiao = 16;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
daxiao = 0;
|
||||
}
|
||||
if (wu+shi+kai == k.length&&k.length>=9) {
|
||||
if (wu==shi&&wu==kai) {
|
||||
if (wu==3) {
|
||||
daxiao = 51;
|
||||
}
|
||||
if (wu==4) {
|
||||
daxiao = 71;
|
||||
}
|
||||
if (wu==5) {
|
||||
daxiao = 120;
|
||||
}
|
||||
if (wu==6) {
|
||||
daxiao = 240;
|
||||
}
|
||||
if (wu==7) {
|
||||
daxiao = 480;
|
||||
}
|
||||
if (wu==8) {
|
||||
daxiao = 960;
|
||||
}
|
||||
}
|
||||
}
|
||||
return daxiao;
|
||||
}
|
||||
var boom = function (pai) {
|
||||
var daxiao = 0;
|
||||
if (pai.length>=4&&pai.length<=8) {
|
||||
for (var i = 0; i < pai.length-1; i++) {
|
||||
if (pai[i]==pai[i+1]) {
|
||||
daxiao = pai.length*10;
|
||||
|
||||
}else{
|
||||
daxiao = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return daxiao;
|
||||
}
|
||||
|
||||
var bicards = function (paia,paib) {
|
||||
var yon = -1;
|
||||
if (paib[0]>paia[0]) {
|
||||
if (paia[0]==1) { //a = A
|
||||
if (paib[0]==2||paib[0]>13) { //b = 2 或者王
|
||||
yon = 1;
|
||||
}
|
||||
else{ //否则
|
||||
yon = -1;
|
||||
}
|
||||
}
|
||||
else if (paia[0]==2) { //a = 2
|
||||
if (paib[0]>13) { //b = 王
|
||||
yon = 1;
|
||||
}
|
||||
else{
|
||||
yon = -1;
|
||||
}
|
||||
}else{
|
||||
yon=1;
|
||||
}
|
||||
}
|
||||
else if (paib[0]<paia[0]) {//a > b
|
||||
if (paib[0]==1) { //b = A
|
||||
if (paia[0]==2||paia[0]>13) { //a = 2 或者王
|
||||
yon = -1;
|
||||
}
|
||||
else{
|
||||
yon = 1;
|
||||
}
|
||||
}
|
||||
else if (paib[0]==2) { //b = 2
|
||||
if (paia[0]>13) { //a = 王
|
||||
yon = -1;
|
||||
}
|
||||
else{
|
||||
yon = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (paib[0]==paia[0]){ //b = a
|
||||
yon = -1;
|
||||
}
|
||||
if (yon>0) {
|
||||
return paib.length;
|
||||
}else{
|
||||
return yon;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var kswdaipai = function (pai_a) {
|
||||
var paizu = [1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
|
||||
var pai = [];
|
||||
for (var i = 0; i <pai_a.length; i++) {
|
||||
pai.push(paizu[pai_a[i]-1]);
|
||||
}
|
||||
var car_boom_k = 0;
|
||||
var car_boom_s = 0;
|
||||
var car_boom_w = 0;
|
||||
for(var i=0;i<pai.length;i++){
|
||||
switch (pai[i]){
|
||||
case 13:
|
||||
car_boom_k = car_boom_k +1;
|
||||
break;
|
||||
case 10:
|
||||
car_boom_s = car_boom_s +1;
|
||||
break;
|
||||
case 5:
|
||||
car_boom_w = car_boom_w +1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
var boom = 0;
|
||||
if (car_boom_w>=3 && car_boom_s>=3 && car_boom_k>=3 && car_boom_w+car_boom_s+car_boom_k == pai.length) {
|
||||
if (car_boom_w <= car_boom_s && car_boom_w <= car_boom_k) {
|
||||
switch (car_boom_w){
|
||||
case 3:
|
||||
boom = 52;
|
||||
break;
|
||||
case 4:
|
||||
boom = 82;
|
||||
break;
|
||||
case 5:
|
||||
boom = 120;
|
||||
break;
|
||||
case 6:
|
||||
boom = 240;
|
||||
break;
|
||||
case 7:
|
||||
boom = 480;
|
||||
break;
|
||||
case 8:
|
||||
boom = 960;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}else
|
||||
if (car_boom_s <= car_boom_w && car_boom_s <= car_boom_k) {
|
||||
switch (car_boom_s){
|
||||
case 3:
|
||||
boom = 52;
|
||||
break;
|
||||
case 4:
|
||||
boom = 82;
|
||||
break;
|
||||
case 5:
|
||||
boom = 120;
|
||||
break;
|
||||
case 6:
|
||||
boom = 240;
|
||||
break;
|
||||
case 7:
|
||||
boom = 480;
|
||||
break;
|
||||
case 8:
|
||||
boom = 960;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}else
|
||||
if (car_boom_k <= car_boom_s && car_boom_k <= car_boom_w) {
|
||||
switch (car_boom_k){
|
||||
case 3:
|
||||
boom = 52;
|
||||
break;
|
||||
case 4:
|
||||
boom = 82;
|
||||
break;
|
||||
case 5:
|
||||
boom = 120;
|
||||
break;
|
||||
case 6:
|
||||
boom = 240;
|
||||
break;
|
||||
case 7:
|
||||
boom = 480;
|
||||
break;
|
||||
case 8:
|
||||
boom = 960;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return boom;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
57
codes/games/client/Projects/zpy/js/tiaoshi.js
Normal file
57
codes/games/client/Projects/zpy/js/tiaoshi.js
Normal file
@@ -0,0 +1,57 @@
|
||||
var de_bug = de_bug||{};
|
||||
de_bug.tiaoshi_dapai = function () {
|
||||
var tsdp = {};
|
||||
tsdp.paiid = zhaopengyou_bianliang.pub.paiid;
|
||||
tsdp.kongzhiquan = zhaopengyou_bianliang.pub.kongzhiquan;
|
||||
tsdp.zhuang = zhaopengyou_bianliang.pub.zhuang;
|
||||
tsdp.banben = banben;
|
||||
return tsdp;
|
||||
};
|
||||
de_bug.tiaoshi_buyao = function () {
|
||||
var tsby = {};
|
||||
tsby.paiid = zhaopengyou_bianliang.pub.paiid;
|
||||
tsby.kongzhiquan = zhaopengyou_bianliang.pub.kongzhiquan;
|
||||
tsby.banben = banben;
|
||||
return tsby;
|
||||
}
|
||||
de_bug.tiaoshi_dawan = function () {
|
||||
var tsdw = {};
|
||||
tsdw.jszt = jszt;
|
||||
tsdw.zhunbei = zhaopengyou_bianliang.pub.zhunbei;
|
||||
tsdw.kongzhiquan = zhaopengyou_bianliang.pub.kongzhiquan;
|
||||
tsdw.banben = banben;
|
||||
return tsdw;
|
||||
}
|
||||
de_bug.tiaoshi_zhunbei = function () {
|
||||
var tszb = {};
|
||||
tszb.jszt = jszt;
|
||||
tszb.zhunbei = zhaopengyou_bianliang.pub.zhunbei;
|
||||
tszb.kongzhiquan = zhaopengyou_bianliang.pub.kongzhiquan;
|
||||
return tszb;
|
||||
}
|
||||
de_bug.tiaoshi_du = function () {
|
||||
var tsd = {};
|
||||
tsd.kongzhiquan = zhaopengyou_bianliang.pub.kongzhiquan;
|
||||
tsd.du = zhaopengyou_bianliang.pub.du;
|
||||
tsd.zhuang = zhaopengyou_bianliang.pub.zhuang;
|
||||
tsd.banben = banben;
|
||||
return tsd;
|
||||
}
|
||||
de_bug.tiaoshi_du = function () {
|
||||
var tsd = {};
|
||||
tsd.kongzhiquan = zhaopengyou_bianliang.pub.kongzhiquan;
|
||||
tsd.du = zhaopengyou_bianliang.pub.du;
|
||||
tsd.zhuang = zhaopengyou_bianliang.pub.zhuang;
|
||||
tsd.paiid = zhaopengyou_bianliang.pub.paiid;
|
||||
tsd.banben = banben;
|
||||
return tsd;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
322
codes/games/client/Projects/zpy/js/tishi.js
Normal file
322
codes/games/client/Projects/zpy/js/tishi.js
Normal file
@@ -0,0 +1,322 @@
|
||||
var tishi = function(p){//提示
|
||||
|
||||
for (var j=0;j<p.length;j++) {
|
||||
|
||||
var spid = Game_Modify.getSpidByPaiid(p[j]);
|
||||
|
||||
//if (get_self(spid,19,0,0,0)==584) {
|
||||
//set_self(spid,19,550,0,0);
|
||||
|
||||
//}else if (get_self(spid,19,0,0,0)==503){
|
||||
//set_self(spid,19,469,0,0);
|
||||
|
||||
//}
|
||||
//else if (get_self(spid,19,0,0,0)==565){
|
||||
//set_self(spid,19,531,0,0);
|
||||
//}
|
||||
// 判断牌是否在理牌中,如果在,则整个理牌全部选中 (主要是为了解决三带的问题)
|
||||
var result = Game_Modify.findItem(p[j],zhaopengyou_bianliang.pub.lipai);
|
||||
if(result.length > 0){
|
||||
for(var i=0;i<result.length;i++){
|
||||
for(var m=0;m<zhaopengyou_bianliang.pub.lipai[result[i]].length;m++){
|
||||
var sp = Game_Modify.getSpidByPaiid(zhaopengyou_bianliang.pub.lipai[result[i]][m]);
|
||||
Game_Modify.selectCard(sp,true);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
Game_Modify.selectCard(spid,true);
|
||||
}
|
||||
|
||||
// if (get_self(spid,19,0,0,0)==myCardPositionY2[1]) {
|
||||
// set_self(spid,19,myCardPositionY2[0],0,0);
|
||||
// }
|
||||
// else if (get_self(spid,19,0,0,0)==myCardPositionY1[1]) {
|
||||
// set_self(spid,19,myCardPositionY1[0],0,0)
|
||||
// }
|
||||
// else if (get_self(spid,19,0,0,0)==565){
|
||||
// set_self(spid,19,531,0,0)
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
var dutishi = function(){//提示
|
||||
for(var i = 0;i < 4; i++){
|
||||
if(zhaopengyou_bianliang.pub.du[i] != -1){
|
||||
switch (Utl.changeToStatus(i)){
|
||||
case 0:
|
||||
if(zhaopengyou_bianliang.pub.du[i] == 0){
|
||||
set_self(1385,37,1,0,0);
|
||||
}else{
|
||||
set_self(1385,37,0,0,0);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if(zhaopengyou_bianliang.pub.du[i] == 0){
|
||||
set_self(1386,37,1,0,0);
|
||||
}else{
|
||||
set_self(1386,37,0,0,0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if(zhaopengyou_bianliang.pub.du[i] == 0){
|
||||
set_self(1387,37,1,0,0);
|
||||
}else{
|
||||
set_self(1387,37,0,0,0);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if(zhaopengyou_bianliang.pub.du[i] == 0){
|
||||
set_self(1388,37,1,0,0);
|
||||
}else{
|
||||
set_self(1388,37,0,0,0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
var guiwei = function(){//归位
|
||||
if (banben == 0) {
|
||||
ResetMyHandCards();
|
||||
} else if (banben == 1) {
|
||||
for (var i = 0; i < 27; i++) {//自己
|
||||
set_self(i+1001,20,100,0,0);
|
||||
set_self(i+1001,21,140,0,0);
|
||||
}
|
||||
for (var i = 0; i < 27; i++) {//自己
|
||||
set_self(i+1001,18,137+36*i,0,0);
|
||||
set_self(i+1001,19,565,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
for (var i = 0; i < 9; i++) {//右边
|
||||
set_self(1028+i,18,915+i*23,0,0);
|
||||
set_self(1028+i,19,256,0,0);
|
||||
set_self(1037+i,18,915+i*23,0,0);
|
||||
set_self(1037+i,19,302,0,0);
|
||||
set_self(1046+i,18,915+i*23,0,0);
|
||||
set_self(1046+i,19,346,0,0);
|
||||
}
|
||||
for (var i = 0; i < 9; i++) {//上边
|
||||
//set_self(1055+i,18,501+i*23,0,0);
|
||||
//set_self(1055+i,19,75,0,0);
|
||||
//set_self(1064+i,18,501+i*23,0,0);
|
||||
//set_self(1064+i,19,119,0,0);
|
||||
//set_self(1073+i,18,501+i*23,0,0);
|
||||
//set_self(1073+i,19,163,0,0);
|
||||
set_self(1055+i,18,501+i*23,0,0);
|
||||
set_self(1055+i,19,75+55,0,0);
|
||||
set_self(1064+i,18,501+i*23,0,0);
|
||||
set_self(1064+i,19,119+55,0,0);
|
||||
set_self(1073+i,18,501+i*23,0,0);
|
||||
set_self(1073+i,19,163+55,0,0);
|
||||
}
|
||||
for (var i = 0; i < 9; i++) {//左边
|
||||
set_self(1082+i,18,134+i*23,0,0);
|
||||
set_self(1082+i,19,256,0,0);
|
||||
set_self(1091+i,18,134+i*23,0,0);
|
||||
set_self(1091+i,19,302,0,0);
|
||||
set_self(1100+i,18,134+i*23,0,0);
|
||||
set_self(1100+i,19,346,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
//剩余的牌 打完的顺序 最后一手牌
|
||||
var dawanxs = function(sp,ying,zuida,dw,sg,py){//上下游显示
|
||||
for (var i=0;i<108;i++) {
|
||||
set_self(1001+i,37,0,0,0);
|
||||
}
|
||||
switch (Utl.getMySeat()){
|
||||
case 0:
|
||||
shangxiayou(0,1,2,3,ying,sg);
|
||||
shengyupai(0,1,2,3,sp);
|
||||
break;
|
||||
case 1:
|
||||
shangxiayou(1,2,3,0,ying,sg);
|
||||
shengyupai(1,2,3,0,sp);
|
||||
break;
|
||||
case 2:
|
||||
shangxiayou(2,3,0,1,ying,sg);
|
||||
shengyupai(2,3,0,1,sp);
|
||||
break;
|
||||
case 3:
|
||||
shangxiayou(3,0,1,2,ying,sg);
|
||||
shengyupai(3,0,1,2,sp);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
zuihoupai(dw,zuida);
|
||||
if (sg==3) {
|
||||
frieng(py[0][0],Utl.getMySeat(),2);
|
||||
}else{
|
||||
frieng(py[0][0],Utl.getMySeat(),0);
|
||||
frieng(py[0][1],Utl.getMySeat(),1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var shangxiayou = function(a,b,c,d,ying,sg){//上下游显示
|
||||
if (sg==3) {
|
||||
set_self(1137,37,1,0,0);
|
||||
set_self(1138,37,0,0,0);
|
||||
set_self(1400,37,0,0,0);
|
||||
set_self(1401,37,0,0,0);
|
||||
}else if (sg==2){
|
||||
set_self(1137,37,1,0,0);
|
||||
set_self(1138,37,1,0,0);
|
||||
set_self(1400,37,0,0,0);
|
||||
set_self(1401,37,0,0,0);
|
||||
}else{
|
||||
set_self(1137,37,1,0,0);
|
||||
set_self(1138,37,1,0,0);
|
||||
set_self(1400,37,1,0,0);
|
||||
set_self(1401,37,1,0,0);
|
||||
}
|
||||
|
||||
if (ying[0] ==a) {
|
||||
set_self(1137,18,25,0,0);
|
||||
set_self(1137,19,481,0,0);
|
||||
}else if(ying[1]==a){
|
||||
set_self(1138,18,25,0,0);
|
||||
set_self(1138,19,481,0,0);
|
||||
}else if (ying[2]==a) {
|
||||
set_self(1400,18,25,0,0);
|
||||
set_self(1400,19,481,0,0);
|
||||
}else if (ying[3]==a) {
|
||||
set_self(1401,18,25,0,0);
|
||||
set_self(1401,19,481,0,0);
|
||||
}
|
||||
|
||||
if (ying[0] ==b) {
|
||||
set_self(1137,18,1170,0,0);
|
||||
set_self(1137,19,190,0,0);
|
||||
}else if(ying[1]==b){
|
||||
set_self(1138,18,1170,0,0);
|
||||
set_self(1138,19,190,0,0);
|
||||
}else if (ying[2] ==b) {
|
||||
set_self(1400,18,1170,0,0);
|
||||
set_self(1400,19,190,0,0);
|
||||
}else if(ying[3]==b){
|
||||
set_self(1401,18,1170,0,0);
|
||||
set_self(1401,19,190,0,0);
|
||||
}
|
||||
|
||||
if (ying[0] ==c) {
|
||||
set_self(1137,18,755,0,0);
|
||||
set_self(1137,19,20,0,0);
|
||||
}else if(ying[1]==c){
|
||||
set_self(1138,18,755,0,0);
|
||||
set_self(1138,19,20,0,0);
|
||||
}else if (ying[2] ==c) {
|
||||
set_self(1400,18,755,0,0);
|
||||
set_self(1400,19,20,0,0);
|
||||
}else if(ying[3]==c){
|
||||
set_self(1401,18,755,0,0);
|
||||
set_self(1401,19,20,0,0);
|
||||
}
|
||||
|
||||
if (ying[0] ==d) {
|
||||
set_self(1137,18,25,0,0);
|
||||
set_self(1137,19,190,0,0);
|
||||
}else if(ying[1]==d){
|
||||
set_self(1138,18,25,0,0);
|
||||
set_self(1138,19,190,0,0);
|
||||
}else if (ying[2] ==d) {
|
||||
set_self(1400,18,25,0,0);
|
||||
set_self(1400,19,190,0,0);
|
||||
}else if(ying[3]==d){
|
||||
set_self(1401,18,25,0,0);
|
||||
set_self(1401,19,190,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var shengyupai = function (a,b,c,d,allc) {//剩余牌显示
|
||||
if (banben ==0) {
|
||||
|
||||
updateMyHandCards(allc[a]);
|
||||
} else if (banben ==1) {
|
||||
for (var i = 0; i < allc[a].length; i++) {
|
||||
set_self(1001+i,37,1,0,0);
|
||||
set_self(1001,18,650-36*allc[a].length/2,0,0);
|
||||
set_self(1001+i,18,get_self(1001,18,0,0,0)+36*i,0,0);
|
||||
set_self(1001+i,19,565,0,0);
|
||||
set_self(1001+i,43,allc[a][i]%54+1,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
for (var i=0;i<allc[b].length;i++) {
|
||||
set_self(1028+i,43,allc[b][i]%54+1,0,0);
|
||||
set_self(1028+i,37,1,0,0);
|
||||
}
|
||||
for (var i=0;i<allc[c].length;i++) {
|
||||
set_self(1055+i,43,allc[c][i]%54+1,0,0);
|
||||
set_self(1055+i,37,1,0,0);
|
||||
}
|
||||
for (var i=0;i<allc[d].length;i++) {
|
||||
set_self(1082+i,43,allc[d][i]%54+1,0,0);
|
||||
set_self(1082+i,37,1,0,0);
|
||||
}
|
||||
}
|
||||
var zuihoupai = function (a,allc) {//最后一手牌显示
|
||||
if(Utl.getMySeat() == a){
|
||||
if (banben ==0) {
|
||||
|
||||
updateMyHandCards(allc[a]);
|
||||
} else if (banben ==1) {
|
||||
for (var i = 0; i < allc.length; i++) {
|
||||
set_self(1001+i,37,1,0,0);
|
||||
set_self(1001,18,650-36*allc.length/2,0,0);
|
||||
set_self(1001+i,18,get_self(1001,18,0,0,0)+36*i,0,0);
|
||||
set_self(1001+i,19,565,0,0);
|
||||
set_self(1001+i,43,allc[i]%54+1,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a = a-Utl.getMySeat();
|
||||
if (a==-1) {
|
||||
a=3;
|
||||
}
|
||||
if (a==-2) {
|
||||
a=2
|
||||
}
|
||||
if (a==-3) {
|
||||
a=1;
|
||||
}
|
||||
for (var j =0;j<allc.length;j++) {
|
||||
set_self(1001+j+(a*27),43,allc[j]%54+1,0,0);
|
||||
set_self(1001+j+(a*27),37,1,0,0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
353
codes/games/client/Projects/zpy/js/xianpai.js
Normal file
353
codes/games/client/Projects/zpy/js/xianpai.js
Normal file
@@ -0,0 +1,353 @@
|
||||
var xianpai = function () {//显示朋友
|
||||
set_group(203,37,1,0,0);
|
||||
set_group(215,37,1,0,0);
|
||||
for (var i =0;i<4;i++) {
|
||||
set_self(1124+i,37,0,0,0);
|
||||
}
|
||||
switch (Utl.getMySeat()){
|
||||
case 0:
|
||||
for (var i=0;i<4;i++) {
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[i]==1) {
|
||||
set_self(1124+i,37,1,0,0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
for (var i=0;i<3;i++) {
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[i+1]==1) {
|
||||
set_self(1124+i,37,1,0,0);
|
||||
}
|
||||
|
||||
}
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[0]==1) {
|
||||
set_self(1127,37,1,0,0);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
for (var i=0;i<2;i++) {
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[i+2]==1) {
|
||||
set_self(1124+i,37,1,0,0);
|
||||
}
|
||||
|
||||
}
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[0]==1) {
|
||||
set_self(1126,37,1,0,0);
|
||||
}
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[1]==1) {
|
||||
set_self(1127,37,1,0,0);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
for (var i=0;i<3;i++) {
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[i]==1) {
|
||||
set_self(1125+i,37,1,0,0);
|
||||
}
|
||||
}
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[3]==1) {
|
||||
set_self(1124,37,1,0,0);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var yinxiao = function (paixing,seat) {
|
||||
if(Utl.getSexBySeat(seat) == 1){
|
||||
if(paixing[0][0] == 1 && paixing[0][1] == 1){
|
||||
if (paixing[1][0][4] == 53) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.danzhang[13]);
|
||||
}else if (paixing[1][0][4] == 54) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.danzhang[14]);
|
||||
}else{
|
||||
Utl.playSound(zhaopengyou_yinxiao.danzhang[paixing[1][0][4]-3]);
|
||||
}
|
||||
}else if(paixing[0][0] == 2 && paixing[0][1] == 1){
|
||||
if (paixing[1][0][4] == 53) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.yidui[13]);
|
||||
}else if (paixing[1][0][4] == 54) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.yidui[14]);
|
||||
}else{
|
||||
Utl.playSound(zhaopengyou_yinxiao.yidui[paixing[1][0][4]-3]);
|
||||
}
|
||||
}else if(paixing[0][0] == 3 && paixing[0][1] == 1){
|
||||
Utl.playSound(zhaopengyou_yinxiao.sandai[paixing[1][0][4]-3]);
|
||||
}else if(paixing[0][0] == 1 && paixing[0][1] >= 5){
|
||||
Utl.playSound(zhaopengyou_yinxiao.shunzi[0]);
|
||||
}else if(paixing[0][0] == 2 && paixing[0][1] >= 2){
|
||||
Utl.playSound(zhaopengyou_yinxiao.liandui[0]);
|
||||
}else if(paixing[0][0] >= 3 && paixing[0][1] >= 2){
|
||||
Utl.playSound(zhaopengyou_yinxiao.feiji[0]);
|
||||
}else if(paixing[0][0] >= 4 && paixing[0][1] == 1 &&paixing[0][0] <9){
|
||||
if(paixing[1][0][4]<3){
|
||||
if (paixing[1][0][4]==1) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk[0]);
|
||||
} else {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk[1]);
|
||||
}
|
||||
}else{
|
||||
if (banben ==0) {
|
||||
switch (paixing[1][0][4]){
|
||||
case 21:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wang[0]);
|
||||
break;
|
||||
case 22:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk[2]);
|
||||
break;
|
||||
default:
|
||||
Utl.playSound(zhaopengyou_yinxiao.zhadan[0]);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (paixing[1][0][4]){
|
||||
case 21:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk[2]);
|
||||
break;
|
||||
case 22:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wang[0]);
|
||||
break;
|
||||
default:
|
||||
Utl.playSound(zhaopengyou_yinxiao.zhadan[0]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(paixing[0][0] >= 9 ){
|
||||
switch (paixing[0][0]){
|
||||
case 9:
|
||||
if (banben ==0) {
|
||||
if (paixing[1][0][4]==1) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wang[1]);
|
||||
} else {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk[3]);
|
||||
}
|
||||
}else{
|
||||
if (paixing[1][0][4]==1) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk[3]);
|
||||
} else {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wang[1]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk[4]);
|
||||
break;
|
||||
case 11:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk[5]);
|
||||
break;
|
||||
case 12:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk[6]);
|
||||
break;
|
||||
case 13:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk[7]);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}else{
|
||||
if(paixing[0][0] == 1 && paixing[0][1] == 1){
|
||||
if (paixing[1][0][4] == 53) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.danzhang_nv[13]);
|
||||
}else if (paixing[1][0][4] == 54) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.danzhang_nv[14]);
|
||||
}else{
|
||||
Utl.playSound(zhaopengyou_yinxiao.danzhang_nv[paixing[1][0][4]-3]);
|
||||
}
|
||||
|
||||
}else if(paixing[0][0] == 2 && paixing[0][1] == 1){
|
||||
if (paixing[1][0][4] == 53) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.yidui_nv[13]);
|
||||
}else if (paixing[1][0][4] == 54) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.yidui_nv[14]);
|
||||
}else{
|
||||
Utl.playSound(zhaopengyou_yinxiao.yidui_nv[paixing[1][0][4]-3]);
|
||||
}
|
||||
}else if(paixing[0][0] == 3 && paixing[0][1] == 1){
|
||||
Utl.playSound(zhaopengyou_yinxiao.sandai_nv[paixing[1][0][4]-3]);
|
||||
}else if(paixing[0][0] == 1 && paixing[0][1] >= 5){
|
||||
Utl.playSound(zhaopengyou_yinxiao.shunzi_nv[0]);
|
||||
}else if(paixing[0][0] == 2 && paixing[0][1] >= 2){
|
||||
Utl.playSound(zhaopengyou_yinxiao.liandui_nv[0]);
|
||||
}else if(paixing[0][0] >= 3 && paixing[0][1] >= 2){
|
||||
Utl.playSound(zhaopengyou_yinxiao.feiji_nv[0]);
|
||||
}else if(paixing[0][0] >= 4 && paixing[0][1] == 1 && paixing[0][0] < 9){
|
||||
if(paixing[1][0][4]<3){
|
||||
if (paixing[1][0][4]==1) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk_nv[0]);
|
||||
} else {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk_nv[1]);
|
||||
}
|
||||
}else{
|
||||
if (banben ==0) {
|
||||
switch (paixing[1][0][4]){
|
||||
case 21:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wang_nv[0]);
|
||||
break;
|
||||
case 22:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk_nv[2]);
|
||||
break;
|
||||
default:
|
||||
Utl.playSound(zhaopengyou_yinxiao.zhadan_nv[0]);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (paixing[1][0][4]){
|
||||
case 21:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk_nv[2]);
|
||||
break;
|
||||
case 22:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wang_nv[0]);
|
||||
break;
|
||||
default:
|
||||
Utl.playSound(zhaopengyou_yinxiao.zhadan_nv[0]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(paixing[0][0] >= 9 ){
|
||||
switch (paixing[0][0]){
|
||||
case 9:
|
||||
if (banben ==0) {
|
||||
if (paixing[1][0][4]==1) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wang_nv[1]);
|
||||
} else {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk_nv[3]);
|
||||
}
|
||||
}else{
|
||||
if (paixing[1][0][4]==1) {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk_nv[3]);
|
||||
} else {
|
||||
Utl.playSound(zhaopengyou_yinxiao.wang_nv[1]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk_nv[4]);
|
||||
break;
|
||||
case 11:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk_nv[5]);
|
||||
break;
|
||||
case 12:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk_nv[6]);
|
||||
break;
|
||||
case 13:
|
||||
Utl.playSound(zhaopengyou_yinxiao.wsk_nv[7]);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
var ResetMyHandCards = function(){
|
||||
for (var i = 0; i < 27; i++) {//自己
|
||||
set_self(i+1001,20,myCardSize1[0],0,0);
|
||||
set_self(i+1001,21,myCardSize1[1],0,0);
|
||||
}
|
||||
var startX1 = myCardLeftX - (27 - myCardButtomCount - 1) * myCardSpace - myCardSize1[0];
|
||||
for (var i = 0; i < 27 - myCardButtomCount; i++) {//自己
|
||||
set_self(i+1001,18,startX1+myCardSpace*i,0,0);
|
||||
set_self(i+1001,19,myCardPositionY2[1],0,0);
|
||||
}
|
||||
var startX2 = myCardLeftX - (myCardButtomCount -1) * myCardSpace - myCardSize1[0];
|
||||
for (var i = 0; i < myCardButtomCount; i++) {//自己
|
||||
set_self(i+1001+27-myCardButtomCount,18,startX2+myCardSpace*i,0,0);
|
||||
set_self(i+1001+27-myCardButtomCount,19,myCardPositionY1[1],0,0);
|
||||
}
|
||||
}
|
||||
var updateMyHandCards = function(allc){
|
||||
if (allc.length<=myCardButtomCount) {
|
||||
for (var i = 0; i < allc.length; i++) {
|
||||
set_self(1001+i,37,1,0,0);
|
||||
set_self(1001,18,638-myCardSpace*allc.length/2,0,0);
|
||||
set_self(1001+i,18,get_self(1001,18,0,0,0)+myCardSpace*i,0,0);
|
||||
set_self(1001+i,19,myCardPositionY1[1],0,0);
|
||||
set_self(1001+i,43,allc[i]%54+1,0,0);
|
||||
}
|
||||
}
|
||||
if (allc.length>myCardButtomCount) {
|
||||
var startX1 = myCardLeftX - (allc.length - myCardButtomCount - 1) * myCardSpace - myCardSize1[0];
|
||||
for (var i = 0; i < allc.length-myCardButtomCount; i++) {
|
||||
set_self(1001+i,37,1,0,0);
|
||||
//set_self(1001,18,myCardLeftX-myCardSpace*(allc.length-myCardButtomCount-1),0,0);
|
||||
set_self(1001+i,18,startX1+myCardSpace*i,0,0);
|
||||
set_self(1001+i,19,myCardPositionY2[1],0,0);
|
||||
set_self(1001+i,43,allc[i]%54+1,0,0);
|
||||
|
||||
}
|
||||
var startX2 = myCardLeftX - (myCardButtomCount -1) * myCardSpace - myCardSize1[0];
|
||||
for (var i = allc.length-myCardButtomCount; i < allc.length; i++) {
|
||||
set_self(1001+i,37,1,0,0);
|
||||
//set_self(1001+allc.length-myCardButtomCount,18,148,0,0);
|
||||
set_self(1001+i,18,startX2+myCardSpace*(i-(allc.length-myCardButtomCount)),0,0);
|
||||
set_self(1001+i,19,myCardPositionY1[1],0,0);
|
||||
set_self(1001+i,43,allc[i]%54+1,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
var updateMyHandCards2 = function(zijip){
|
||||
if (zijip.length<=myCardButtomCount) {
|
||||
for (var i = 0; i < zijip.length; i++) {
|
||||
set_self(1028-zijip.length+i,37,1,0,0);
|
||||
set_self(1028-zijip.length+i,19,myCardPositionY1[1],0,0);
|
||||
set_self(1028-zijip.length,18,638-myCardSpace*zijip.length/2,0,0);
|
||||
set_self(1028-zijip.length+i,18,get_self(1028-zijip.length,18,0,0,0)+49*i,0,0);
|
||||
}
|
||||
}
|
||||
if (zijip.length>myCardButtomCount) {
|
||||
var startX1 = myCardLeftX - (zijip.length-myCardButtomCount - 1) * myCardSpace - myCardSize1[0];
|
||||
//console.log('startX1:'+startX1);
|
||||
for (var i = 0; i < zijip.length-myCardButtomCount; i++) {
|
||||
set_self(1028-zijip.length+i,37,1,0,0);
|
||||
set_self(1028-zijip.length+i,19,myCardPositionY2[1],0,0);
|
||||
//set_self(1028-zijip.length,18,myCardLeftX-myCardSpace*(zijip.length-myCardButtomCount-1)-myCardSize1[0],0,0);
|
||||
set_self(1028-zijip.length+i,18,startX1+myCardSpace*i,0,0);
|
||||
}
|
||||
var startX2 = myCardLeftX - (myCardButtomCount- 1) * myCardSpace - myCardSize1[0];
|
||||
//console.log('startX2:'+startX2);
|
||||
for (var i = zijip.length-myCardButtomCount; i < zijip.length; i++) {
|
||||
set_self(1028-zijip.length+i,37,1,0,0);
|
||||
set_self(1028-zijip.length+i,19,myCardPositionY1[1],0,0);
|
||||
//set_self(1009,18,startX2,0,0);
|
||||
//set_self(1028-zijip.length+i,18,get_self(1009,18,0,0,0)+myCardSpace*(i-(zijip.length-myCardButtomCount)),0,0);
|
||||
set_self(1028-zijip.length+i,18,startX2+myCardSpace*(i-(zijip.length-myCardButtomCount)),0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var updateMyPutCards = function(dq_pai){
|
||||
for (var i = 0; i<dq_pai.length; i++) {
|
||||
set_self(1001+i,37,1,0,0);
|
||||
set_self(1001+i,19,myPutCardY,0,0);
|
||||
set_self(1001+i,20,myCardSize2[0],0,0);
|
||||
set_self(1001+i,21,myCardSize2[1],0,0);
|
||||
set_self(1001,18,630-myPutCardSpace*dq_pai.length/2,0,0);
|
||||
set_self(1001+i,18,get_self(1001,18,0,0,0)+myPutCardSpace*i,0,0);
|
||||
set_self(1001+i,43,dq_pai[i]%54+1,0,0);
|
||||
}
|
||||
for (var i = dq_pai.length; i<27; i++) {
|
||||
set_self(1001+i,37,0,0,0);
|
||||
set_self(1001+i,19,340,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
752
codes/games/client/Projects/zpy/js/zhankuang.js
Normal file
752
codes/games/client/Projects/zpy/js/zhankuang.js
Normal file
@@ -0,0 +1,752 @@
|
||||
var zhankuang = function (defen, jiang,jijiang) {//战况
|
||||
|
||||
for (var i =0;i<8;i++ ) {
|
||||
set_self(1198+i,37,1,0,0);
|
||||
set_self(1418+i,37,1,0,0);
|
||||
}
|
||||
set_self(1570,37,1,0,0);
|
||||
if (d==-1) {
|
||||
for (var i =0;i<4;i++ ) {
|
||||
set_self(1198+i,37,0,0,0);
|
||||
set_self(1422+i,37,0,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
if(zhaopengyou_bianliang.pub.shengli.length == 0){
|
||||
for (var i =0;i<4;i++ ) {
|
||||
set_self(1198+i,37,0,0,0);
|
||||
set_self(1422+i,37,0,0,0);
|
||||
}
|
||||
}
|
||||
|
||||
//switch (Utl.getMySeat()){
|
||||
//case 0:
|
||||
//for(var i=0;i<4;i++){
|
||||
//set_self(1202+i,7,jiang[i]);
|
||||
//set_self(1198+i,7,defen[i]);
|
||||
//if (jiang[i]>=10) {
|
||||
//set_self(1202+i,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1202+i,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[i]>=100) {
|
||||
//set_self(1198+i,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[i]>=10) {
|
||||
//set_self(1198+i,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1198+i,20,22,0,0);
|
||||
//}
|
||||
//}
|
||||
|
||||
//break;
|
||||
//case 1:
|
||||
//for(var i=0;i<3;i++){
|
||||
//set_self(1202+i,7,jiang[i+1]);
|
||||
//set_self(1198+i,7,defen[i+1]);
|
||||
//if (jiang[i+1]>=10) {
|
||||
//set_self(1202+i,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1202+i,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[i+1]>=100) {
|
||||
//set_self(1198+i+1,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[i+1]>=10) {
|
||||
//set_self(1198+i,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1198+i,20,22,0,0);
|
||||
//}
|
||||
//}
|
||||
//set_self(1205,7,jiang[0]);
|
||||
//set_self(1201,7,defen[0]);
|
||||
//if (jiang[0]>=10) {
|
||||
//set_self(1205,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1205,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[0]>=100) {
|
||||
//set_self(1201,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[0]>=10) {
|
||||
//set_self(1201,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1201,20,22,0,0);
|
||||
//}
|
||||
//break;
|
||||
//case 2:
|
||||
//for(var i=0;i<2;i++){
|
||||
//set_self(1202+i,7,jiang[i+2]);
|
||||
//set_self(1198+i,7,defen[i+2]);
|
||||
//if (jiang[i+2]>=10) {
|
||||
//set_self(1202+i,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1202+i,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[i+2]>=100) {
|
||||
//set_self(1198+i,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[i+2]>=10) {
|
||||
//set_self(1198+i,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1198+i,20,22,0,0);
|
||||
//}
|
||||
//}
|
||||
//for(var i=0;i<2;i++){
|
||||
//set_self(1204+i,7,jiang[i]);
|
||||
//set_self(1200+i,7,defen[i]);
|
||||
//if (jiang[i]>=10) {
|
||||
//set_self(1204+i,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1204+i,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[i]>=100) {
|
||||
//set_self(1200+i,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[i]>=10) {
|
||||
//set_self(1200+i,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1200+i,20,22,0,0);
|
||||
//}
|
||||
//}
|
||||
//break;
|
||||
//case 3:
|
||||
//set_self(1202,7,jiang[3]);
|
||||
//set_self(1198,7,defen[3]);
|
||||
//if (jiang[3]>=10) {
|
||||
//set_self(1202,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1202,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[3]>=100) {
|
||||
//set_self(1198,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[3]>=10) {
|
||||
//set_self(1198,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1198,20,22,0,0);
|
||||
//}
|
||||
|
||||
//for(var i=0;i<3;i++){
|
||||
//set_self(1203+i,7,jiang[i]);
|
||||
//set_self(1199+i,7,defen[i]);
|
||||
//if (jiang[i]>=10) {
|
||||
//set_self(1203+i,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1203+i,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[i]>=100) {
|
||||
//set_self(1199+i,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[i]>=10) {
|
||||
//set_self(1199+i,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1199+i,20,22,0,0);
|
||||
//}
|
||||
//}
|
||||
//break;
|
||||
//default:
|
||||
//break;
|
||||
//}
|
||||
switch (Utl.getMySeat()){
|
||||
case 0:
|
||||
for(var i=0;i<4;i++){
|
||||
GameUI.setNumberImage(1202+i,jiang[i]+jijiang[i],18);
|
||||
GameUI.setNumberImage(1198+i,defen[i],18);
|
||||
//set_self(1202+i,7,jiang[i]+jijiang[i]);
|
||||
//set_self(1198+i,7,defen[i]);
|
||||
//if (jiang[i]+jijiang[i]>=10) {
|
||||
//set_self(1202+i,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1202+i,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[i]>=100) {
|
||||
//set_self(1198+i,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[i]>=10) {
|
||||
//set_self(1198+i,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1198+i,20,22,0,0);
|
||||
//}
|
||||
}
|
||||
|
||||
break;
|
||||
case 1:
|
||||
for(var i=0;i<3;i++){
|
||||
GameUI.setNumberImage(1202+i,jiang[i+1]+jijiang[i+1],18);
|
||||
GameUI.setNumberImage(1198+i,defen[i+1],18);
|
||||
//set_self(1202+i,7,jiang[i+1]+jijiang[i+1]);
|
||||
//set_self(1198+i,7,defen[i+1]);
|
||||
//if (jiang[i+1]+jijiang[i+1]>=10) {
|
||||
//set_self(1202+i,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1202+i,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[i+1]>=100) {
|
||||
//set_self(1198+i+1,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[i+1]>=10) {
|
||||
//set_self(1198+i,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1198+i,20,22,0,0);
|
||||
//}
|
||||
}
|
||||
GameUI.setNumberImage(1205,jiang[0]+jijiang[0],18);
|
||||
GameUI.setNumberImage(1201,defen[0],18);
|
||||
//set_self(1205,7,jiang[0]+jijiang[0]);
|
||||
//set_self(1201,7,defen[0]);
|
||||
//if (jiang[0]+jijiang[0]>=10) {
|
||||
//set_self(1205,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1205,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[0]>=100) {
|
||||
//set_self(1201,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[0]>=10) {
|
||||
//set_self(1201,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1201,20,22,0,0);
|
||||
//}
|
||||
break;
|
||||
case 2:
|
||||
for(var i=0;i<2;i++){
|
||||
GameUI.setNumberImage(1202+i,jiang[i+2]+jijiang[i+2],18);
|
||||
GameUI.setNumberImage(1198+i,defen[i+2],18);
|
||||
//set_self(1202+i,7,jiang[i+2]+jijiang[i+2]);
|
||||
//set_self(1198+i,7,defen[i+2]);
|
||||
//if (jiang[i+2]+jijiang[i+2]>=10) {
|
||||
//set_self(1202+i,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1202+i,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[i+2]>=100) {
|
||||
//set_self(1198+i,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[i+2]>=10) {
|
||||
//set_self(1198+i,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1198+i,20,22,0,0);
|
||||
//}
|
||||
}
|
||||
for(var i=0;i<2;i++){
|
||||
GameUI.setNumberImage(1204+i,jiang[i]+jijiang[i],18);
|
||||
GameUI.setNumberImage(1200+i,defen[i],18);
|
||||
//set_self(1204+i,7,jiang[i]+jijiang[i]);
|
||||
//set_self(1200+i,7,defen[i]);
|
||||
//if (jiang[i]+jijiang[i]>=10) {
|
||||
//set_self(1204+i,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1204+i,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[i]>=100) {
|
||||
//set_self(1200+i,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[i]>=10) {
|
||||
//set_self(1200+i,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1200+i,20,22,0,0);
|
||||
//}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
GameUI.setNumberImage(1202,jiang[3]+jijiang[3],18);
|
||||
GameUI.setNumberImage(1198,defen[3],18);
|
||||
//set_self(1202,7,jiang[3]+jijiang[3]);
|
||||
//set_self(1198,7,defen[3]);
|
||||
//if (jiang[3]+jijiang[3]>=10) {
|
||||
//set_self(1202,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1202,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[3]>=100) {
|
||||
//set_self(1198,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[3]>=10) {
|
||||
//set_self(1198,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1198,20,22,0,0);
|
||||
//}
|
||||
|
||||
for(var i=0;i<3;i++){
|
||||
GameUI.setNumberImage(1203+i,jiang[i]+jijiang[i],18);
|
||||
GameUI.setNumberImage(1199+i,defen[i],18);
|
||||
//set_self(1203+i,7,jiang[i]+jijiang[i]);
|
||||
//set_self(1199+i,7,defen[i]);
|
||||
//if (jiang[i]+jijiang[i]>=10) {
|
||||
//set_self(1203+i,20,50,0,0);
|
||||
//}else{
|
||||
//set_self(1203+i,20,25,0,0);
|
||||
//}
|
||||
|
||||
//if (defen[i]>=100) {
|
||||
//set_self(1199+i,20,66,0,0);
|
||||
//}
|
||||
//else if (defen[i]>=10) {
|
||||
//set_self(1199+i,20,44,0,0);
|
||||
//}else{
|
||||
//set_self(1199+i,20,22,0,0);
|
||||
//}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var chonghua = function () {//重画
|
||||
try{
|
||||
if (jushu.length>0) {
|
||||
//set_self(1190,57,2000,0,0);
|
||||
for (var i = 0;i<20;i++) {
|
||||
set_group(201+i,37,0,0,0);
|
||||
}
|
||||
xianshifen();
|
||||
xianshizhuang(zhaopengyou_bianliang.pub.zhuang,Utl.getMySeat());
|
||||
//zhankuang(zhaopengyou_bianliang.pub.defen,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.jijiang);
|
||||
set_self(1160,7,"第"+jushu[0]+" / "+jushu[1]+"局");
|
||||
set_self(1160,18,987-(get_self(1160,7).gblen()*15)/2,0,0);
|
||||
set_self(1389,37,1,0,0);
|
||||
set_self(1390,37,1,0,0);
|
||||
set_self(1391,37,1,0,0);
|
||||
set_self(1442,37,1,0,0);
|
||||
if(jszt == 9){
|
||||
zhadan.zhadanxianshi();
|
||||
}
|
||||
frieng(zhaopengyou_bianliang.pub.zhuang,Utl.getMySeat(),0);
|
||||
//知道朋友
|
||||
if (zhaopengyou_bianliang.pub.pengyou[0].length==2&&jszt==9) {
|
||||
frieng(zhaopengyou_bianliang.pub.pengyou[0][1],Utl.getMySeat(),1);
|
||||
}
|
||||
//独
|
||||
if (zhaopengyou_bianliang.pub.pengyou[0].length==1) {
|
||||
zhaopengyou_bianliang.pub.zhaopai = 55;
|
||||
d = -1;
|
||||
if (jszt ==9) {
|
||||
frieng(zhaopengyou_bianliang.pub.pengyou[0][0],Utl.getMySeat(),2);
|
||||
}
|
||||
}
|
||||
var dawan = 0;
|
||||
for (var i=0;i<4;i++) {
|
||||
if(zhaopengyou_bianliang.pub.shengpai[i].length==27){
|
||||
dawan = dawan+1;
|
||||
}
|
||||
}
|
||||
if(jszt ==4){
|
||||
//大局结算界面
|
||||
dajiesuan(Utl.getMySeat(),zhaopengyou_bianliang.pub.fen,jushu[1],jushu[0],zhaopengyou_bianliang.pub.grade);
|
||||
}
|
||||
if (d>=0) {
|
||||
if (zhaopengyou_bianliang.pub.pengyou[0].length>0) {//如果知道了朋友是谁
|
||||
if (zhaopengyou_bianliang.pub.benju == 1) {//双关打完牌 在结算界面
|
||||
set_self(1190,57,0,0,0);
|
||||
set_group(201,37,0,0,0);//set_level(101,0);
|
||||
if (jszt==1) {
|
||||
//小局结算界面
|
||||
if (zhaopengyou_bianliang.pub.dawan[Utl.getMySeat()]==1) {
|
||||
xianshizhuang(zhaopengyou_bianliang.pub.zhuang,Utl.getMySeat());
|
||||
guiwei();
|
||||
dawanxs(zhaopengyou_bianliang.pub.paiid,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.zuidapai,zhaopengyou_bianliang.pub.zuihouda,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.pengyou);
|
||||
set_self(1146,37,1,0,0);
|
||||
zbqk(zhaopengyou_bianliang.pub.zhunbei);
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[Utl.getMySeat()] == 0) {
|
||||
set_self(1399,37,1,0,0);
|
||||
}
|
||||
}else{
|
||||
//小局结算界面
|
||||
fen(Utl.getMySeat(),zhaopengyou_bianliang.pub.grade,zhaopengyou_bianliang.pub.chongguan,zhaopengyou_bianliang.pub.dq_dapai,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.pengyou,zhaopengyou_bianliang.pub.xiaojufen,zhaopengyou_bianliang.pub.leixing,zhaopengyou_bianliang.pub.zha);
|
||||
}
|
||||
}
|
||||
else if (jszt==3) {
|
||||
//大局结算界面
|
||||
dajiesuan(Utl.getMySeat(),zhaopengyou_bianliang.pub.fen,jushu[1],jushu[0],zhaopengyou_bianliang.pub.grade);
|
||||
}else if(jszt==2){
|
||||
//准备界面
|
||||
zjzb();
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
else if(zhaopengyou_bianliang.pub.benju == 1){//双关打完牌 在结算界面
|
||||
set_self(1190,57,0,0,0);
|
||||
set_group(201,37,0,0,0);//set_level(101,0);
|
||||
if (jszt==1) {
|
||||
//小局结算界面
|
||||
if (zhaopengyou_bianliang.pub.dawan[Utl.getMySeat()]==1) {
|
||||
xianshizhuang(zhaopengyou_bianliang.pub.zhuang,Utl.getMySeat());
|
||||
guiwei();
|
||||
dawanxs(zhaopengyou_bianliang.pub.paiid,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.zuidapai,zhaopengyou_bianliang.pub.zuihouda,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.pengyou);
|
||||
set_self(1146,37,1,0,0);
|
||||
zbqk(zhaopengyou_bianliang.pub.zhunbei);
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[Utl.getMySeat()] == 0) {
|
||||
set_self(1399,37,1,0,0);
|
||||
}
|
||||
}else{
|
||||
//小局结算界面
|
||||
fen(Utl.getMySeat(),zhaopengyou_bianliang.pub.grade,zhaopengyou_bianliang.pub.chongguan,zhaopengyou_bianliang.pub.dq_dapai,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.pengyou,zhaopengyou_bianliang.pub.xiaojufen,zhaopengyou_bianliang.pub.leixing,zhaopengyou_bianliang.pub.zha);
|
||||
}
|
||||
}
|
||||
else if (jszt==3) {
|
||||
//大局结算界面
|
||||
dajiesuan(Utl.getMySeat(),zhaopengyou_bianliang.pub.fen,jushu[1],jushu[0],zhaopengyou_bianliang.pub.grade);
|
||||
}else if(jszt==2){
|
||||
//准备界面
|
||||
zjzb();
|
||||
}
|
||||
}
|
||||
else if (dawan==3) {//正常打完牌 在结算界面
|
||||
set_self(1190,57,0,0,0);
|
||||
set_group(201,37,0,0,0);//set_level(101,0);
|
||||
if (jszt==1) {
|
||||
//小局结算界面
|
||||
if (zhaopengyou_bianliang.pub.dawan[Utl.getMySeat()]==1) {
|
||||
xianshizhuang(zhaopengyou_bianliang.pub.zhuang,Utl.getMySeat());
|
||||
guiwei();
|
||||
dawanxs(zhaopengyou_bianliang.pub.paiid,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.zuidapai,zhaopengyou_bianliang.pub.zuihouda,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.pengyou);
|
||||
set_self(1146,37,1,0,0);
|
||||
zbqk(zhaopengyou_bianliang.pub.zhunbei);
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[Utl.getMySeat()] == 0) {
|
||||
set_self(1399,37,1,0,0);
|
||||
}
|
||||
}else{
|
||||
//小局结算界面
|
||||
fen(Utl.getMySeat(),zhaopengyou_bianliang.pub.grade,zhaopengyou_bianliang.pub.chongguan,zhaopengyou_bianliang.pub.dq_dapai,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.pengyou,zhaopengyou_bianliang.pub.xiaojufen,zhaopengyou_bianliang.pub.leixing,zhaopengyou_bianliang.pub.zha);
|
||||
}
|
||||
}
|
||||
else if (jszt==3) {
|
||||
//大局结算界面
|
||||
dajiesuan(Utl.getMySeat(),zhaopengyou_bianliang.pub.fen,jushu[1],jushu[0],zhaopengyou_bianliang.pub.grade);
|
||||
}else if(jszt==2){
|
||||
//准备界面
|
||||
zjzb();
|
||||
}
|
||||
}
|
||||
*/
|
||||
else{//没打完
|
||||
set_group(201,37,1,0,0);//set_level(101,1);
|
||||
set_self(1143,43,zhaopengyou_bianliang.pub.zhaopai%54+1,0,0);
|
||||
set_self(1143,37,1,0,0);
|
||||
set_self(1151,37,0,0,0);
|
||||
//隐藏不要 上游..
|
||||
for (var i = 0; i<3; i++) {
|
||||
set_self(1120+i,37,0,0,0);
|
||||
}
|
||||
set_self(1109,37,0,0,0);
|
||||
set_self(1137,37,0,0,0);
|
||||
set_self(1138,37,0,0,0);
|
||||
set_self(1400,37,0,0,0);
|
||||
set_self(1401,37,0,0,0);
|
||||
//自己 要显示的牌 打完的人 本局自己全部牌 本局总打出的牌 自己的要显示牌
|
||||
zijipai(Utl.getMySeat(),zhaopengyou_bianliang.pub.dq_dapai[Utl.getMySeat()],zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.paiid,zhaopengyou_bianliang.pub.shengpai);
|
||||
xianshifen();
|
||||
set_self(1186,7,"27");
|
||||
set_self(1187,7,"27");
|
||||
set_self(1189,7,"27");
|
||||
//时钟的位置
|
||||
shizhong(zhaopengyou_bianliang.pub.kongzhiquan,Utl.getMySeat());
|
||||
set_self(1189,57,1000,0,0);
|
||||
//谁出牌
|
||||
if (zhaopengyou_bianliang.pub.kongzhiquan == Utl.getMySeat()) {
|
||||
oper(zhaopengyou_bianliang.pub.kongzhiquan,zhaopengyou_bianliang.pub.dq_dapai);
|
||||
}
|
||||
var over = 0;
|
||||
for(var i = 0; i<4;i++){
|
||||
if (zhaopengyou_bianliang.pub.dq_dapai[i][0]<=-1) {
|
||||
over = over+1;
|
||||
if (zhaopengyou_bianliang.pub.dq_dapai[i][0]==-3&&zhaopengyou_bianliang.pub.dq_dapai[i].length>1) {
|
||||
over = over-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (over == 4) {
|
||||
set_self(1109,37,0,0,0);
|
||||
set_self(1120,37,0,0,0);
|
||||
set_self(1121,37,0,0,0);
|
||||
set_self(1122,37,0,0,0);
|
||||
}
|
||||
|
||||
}
|
||||
}else{
|
||||
set_group(201,37,1,0,0);//set_level(101,1);
|
||||
set_self(1143,43,zhaopengyou_bianliang.pub.zhaopai%54+1,0,0);
|
||||
set_self(1143,37,1,0,0);
|
||||
set_self(1151,37,0,0,0);
|
||||
//隐藏不要 上游..
|
||||
for (var i = 0; i<3; i++) {
|
||||
set_self(1120+i,37,0,0,0);
|
||||
}
|
||||
set_self(1109,37,0,0,0);
|
||||
set_self(1137,37,0,0,0);
|
||||
set_self(1138,37,0,0,0);
|
||||
set_self(1400,37,0,0,0);
|
||||
set_self(1401,37,0,0,0);
|
||||
xianshifen();
|
||||
//自己 要显示的牌 打完的人 本局自己全部牌 本局总打出的牌 自己的要显示牌
|
||||
zijipai(Utl.getMySeat(),zhaopengyou_bianliang.pub.dq_dapai[Utl.getMySeat()],zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.paiid,zhaopengyou_bianliang.pub.shengpai);
|
||||
//againsort(sort_ow);
|
||||
var dyon = 0;
|
||||
for (var i=0;i<4;i++) {
|
||||
if (zhaopengyou_bianliang.pub.du[i]==-1) {
|
||||
dyon =dyon+1;
|
||||
}
|
||||
}
|
||||
if (dyon>=1) {//还在独不独阶段
|
||||
set_self(1186,7,"27");
|
||||
set_self(1187,7,"27");
|
||||
set_self(1189,7,"27");
|
||||
//时钟的位置
|
||||
shizhong(zhaopengyou_bianliang.pub.kongzhiquan,Utl.getMySeat());
|
||||
set_self(1189,57,1000,0,0);
|
||||
|
||||
if (zhaopengyou_bianliang.pub.kongzhiquan == Utl.getMySeat()) {
|
||||
set_self(1142,37,1,0,0);
|
||||
set_self(1183,37,1,0,0);
|
||||
}
|
||||
dutishi();
|
||||
}
|
||||
else{
|
||||
set_group(204,37,0,0,0);//set_level(104,0);
|
||||
//时钟是位置
|
||||
shizhong(zhaopengyou_bianliang.pub.kongzhiquan,Utl.getMySeat());
|
||||
set_self(1189,57,1000,0,0);
|
||||
if (zhaopengyou_bianliang.pub.kongzhiquan == Utl.getMySeat()) {
|
||||
oper(zhaopengyou_bianliang.pub.kongzhiquan,zhaopengyou_bianliang.pub.dq_dapai);
|
||||
}
|
||||
var over = 0;
|
||||
for(var i = 0; i<4;i++){
|
||||
if (zhaopengyou_bianliang.pub.dq_dapai[i][0]<=-1) {
|
||||
over = over+1;
|
||||
if (zhaopengyou_bianliang.pub.dq_dapai[i][0]==-3&&zhaopengyou_bianliang.pub.dq_dapai[i].length>1) {
|
||||
over = over-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (over == 4) {
|
||||
set_self(1109,37,0,0,0);
|
||||
set_self(1120,37,0,0,0);
|
||||
set_self(1121,37,0,0,0);
|
||||
set_self(1122,37,0,0,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if (d==-1) {//如果是独
|
||||
zhaopengyou_bianliang.pub.zhaopai = 55;
|
||||
// 有一个人打完
|
||||
if(zhaopengyou_bianliang.pub.benju == 1){
|
||||
set_group(201,37,0,0,0);//set_level(101,0);
|
||||
set_self(1190,57,0,0,0);
|
||||
if (jszt==1) {
|
||||
//小局结算界面
|
||||
if (zhaopengyou_bianliang.pub.dawan[Utl.getMySeat()]==1) {
|
||||
xianshizhuang(zhaopengyou_bianliang.pub.zhuang,Utl.getMySeat());
|
||||
guiwei();
|
||||
dawanxs(zhaopengyou_bianliang.pub.paiid,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.zuidapai,zhaopengyou_bianliang.pub.zuihouda,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.pengyou);
|
||||
set_self(1146,37,1,0,0);
|
||||
zbqk(zhaopengyou_bianliang.pub.zhunbei);
|
||||
if (zhaopengyou_bianliang.pub.zhunbei[Utl.getMySeat()] == 0) {
|
||||
set_self(1399,37,1,0,0);
|
||||
}
|
||||
}else{
|
||||
//小局结算界面
|
||||
fen(Utl.getMySeat(),zhaopengyou_bianliang.pub.grade,zhaopengyou_bianliang.pub.chongguan,zhaopengyou_bianliang.pub.dq_dapai,zhaopengyou_bianliang.pub.shuangguan,zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.pengyou,zhaopengyou_bianliang.pub.xiaojufen,zhaopengyou_bianliang.pub.leixing,zhaopengyou_bianliang.pub.zha);
|
||||
}
|
||||
}
|
||||
else if (jszt==3) {
|
||||
//大局结算界面
|
||||
dajiesuan(Utl.getMySeat(),zhaopengyou_bianliang.pub.fen,jushu[1],jushu[0],zhaopengyou_bianliang.pub.grade);
|
||||
}else if(jszt==2){
|
||||
//准备界面
|
||||
zjzb();
|
||||
}
|
||||
}
|
||||
else{//还在打
|
||||
set_group(201,37,1,0,0);//set_level(101,1);
|
||||
set_self(1143,37,0,0,0);
|
||||
set_self(1151,37,1,0,0);
|
||||
//zhankuang(zhaopengyou_bianliang.pub.defen,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.jijiang);
|
||||
//隐藏不要 上游..
|
||||
for (var i = 0; i<3; i++) {
|
||||
set_self(1120+i,37,0,0,0);
|
||||
}
|
||||
set_self(1109,37,0,0,0);
|
||||
set_self(1137,37,0,0,0);
|
||||
set_self(1138,37,0,0,0);
|
||||
set_self(1400,37,0,0,0);
|
||||
set_self(1401,37,0,0,0);
|
||||
//自己 要显示的牌 打完的人 本局自己全部牌 本局总打出的牌 自己的要显示牌
|
||||
zijipai(Utl.getMySeat(),zhaopengyou_bianliang.pub.dq_dapai[Utl.getMySeat()],zhaopengyou_bianliang.pub.shengli,zhaopengyou_bianliang.pub.paiid,zhaopengyou_bianliang.pub.shengpai);
|
||||
|
||||
xianshifen();
|
||||
//againsort(sort_ow);
|
||||
|
||||
shizhong(zhaopengyou_bianliang.pub.kongzhiquan,Utl.getMySeat());
|
||||
set_self(1189,57,1000,0,0);
|
||||
if (zhaopengyou_bianliang.pub.kongzhiquan == Utl.getMySeat()) {
|
||||
oper(zhaopengyou_bianliang.pub.kongzhiquan,zhaopengyou_bianliang.pub.dq_dapai);
|
||||
}
|
||||
|
||||
var over = 0;
|
||||
for(var i = 0; i<4;i++){
|
||||
if (zhaopengyou_bianliang.pub.dq_dapai[i][0]<=-1) {
|
||||
over = over+1;
|
||||
if (zhaopengyou_bianliang.pub.dq_dapai[i][0]==-3&&zhaopengyou_bianliang.pub.dq_dapai[i].length>1) {
|
||||
over = over-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (over == 4) {
|
||||
set_self(1109,37,0,0,0);
|
||||
set_self(1120,37,0,0,0);
|
||||
set_self(1121,37,0,0,0);
|
||||
set_self(1122,37,0,0,0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
//}
|
||||
}else{
|
||||
jszt = -1;
|
||||
}
|
||||
zhankuang(zhaopengyou_bianliang.pub.defen,zhaopengyou_bianliang.pub.jiang,zhaopengyou_bianliang.pub.jijiang);
|
||||
}catch(e){
|
||||
var data={
|
||||
zhaopai : zhaopengyou_bianliang.pub.zhaopai,
|
||||
mypaizhen : mypaizhen,
|
||||
paiid : zhaopengyou_bianliang.pub.paiid,
|
||||
zhuang : zhuang,
|
||||
pengyou : zhaopengyou_bianliang.pub.pengyou,
|
||||
jiesuanhuangtai : jszt,
|
||||
kongzhiquan : zhaopengyou_bianliang.pub.kongzhiquan,
|
||||
dachupai : zhaopengyou_bianliang.pub.dq_dapai,
|
||||
du : zhaopengyou_bianliang.pub.du,
|
||||
d : d
|
||||
};
|
||||
Net.submit_error(JSON.stringify(data),e.stack);
|
||||
}
|
||||
}
|
||||
var xianshifen = function () {//显示另外3家的牌和自己的总积分
|
||||
switch (Utl.getMySeat()){
|
||||
case 0:
|
||||
putcard(3,2,1,zhaopengyou_bianliang.pub.dq_dapai,chupaishu,zhaopengyou_bianliang.pub.shengli);//
|
||||
xianshizhuang(zhaopengyou_bianliang.pub.zhuang,0);
|
||||
set_self(436,7,zhaopengyou_bianliang.pub.grade[0]);
|
||||
set_self(437,7,zhaopengyou_bianliang.pub.grade[1]);
|
||||
set_self(438,7,zhaopengyou_bianliang.pub.grade[2]);
|
||||
set_self(439,7,zhaopengyou_bianliang.pub.grade[3]);
|
||||
break;
|
||||
case 1:
|
||||
putcard(0,3,2,zhaopengyou_bianliang.pub.dq_dapai,chupaishu,zhaopengyou_bianliang.pub.shengli);
|
||||
xianshizhuang(zhaopengyou_bianliang.pub.zhuang,1);
|
||||
set_self(436,7,zhaopengyou_bianliang.pub.grade[1]);
|
||||
set_self(437,7,zhaopengyou_bianliang.pub.grade[2]);
|
||||
set_self(438,7,zhaopengyou_bianliang.pub.grade[3]);
|
||||
set_self(439,7,zhaopengyou_bianliang.pub.grade[0]);
|
||||
break;
|
||||
case 2:
|
||||
putcard(1,0,3,zhaopengyou_bianliang.pub.dq_dapai,chupaishu,zhaopengyou_bianliang.pub.shengli);
|
||||
xianshizhuang(zhaopengyou_bianliang.pub.zhuang,2);
|
||||
set_self(436,7,zhaopengyou_bianliang.pub.grade[2]);
|
||||
set_self(437,7,zhaopengyou_bianliang.pub.grade[3]);
|
||||
set_self(438,7,zhaopengyou_bianliang.pub.grade[0]);
|
||||
set_self(439,7,zhaopengyou_bianliang.pub.grade[1]);
|
||||
break;
|
||||
case 3:
|
||||
putcard(2,1,0,zhaopengyou_bianliang.pub.dq_dapai,chupaishu,zhaopengyou_bianliang.pub.shengli);
|
||||
xianshizhuang(zhaopengyou_bianliang.pub.zhuang,3);
|
||||
set_self(436,7,zhaopengyou_bianliang.pub.grade[3]);
|
||||
set_self(437,7,zhaopengyou_bianliang.pub.grade[0]);
|
||||
set_self(438,7,zhaopengyou_bianliang.pub.grade[1]);
|
||||
set_self(439,7,zhaopengyou_bianliang.pub.grade[2]);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
151
codes/games/client/Projects/zpy/js/zhaopengyou_bianliang.js
Normal file
151
codes/games/client/Projects/zpy/js/zhaopengyou_bianliang.js
Normal file
@@ -0,0 +1,151 @@
|
||||
var zhaopengyou_bianliang = zhaopengyou_bianliang||{};
|
||||
zhaopengyou_bianliang.pub = {};
|
||||
zhaopengyou_bianliang.client = {};
|
||||
zhaopengyou_bianliang.client.fabao = {};
|
||||
zhaopengyou_bianliang.client.fabao.shijian = 0;
|
||||
zhaopengyou_bianliang.client.fabao.rpc = "";
|
||||
|
||||
zhaopengyou_bianliang.pub.dq_dapai = [[],[],[],[]];//最近一轮打出来的牌
|
||||
zhaopengyou_bianliang.pub.defen = [0,0,0,0,0]; //捡分
|
||||
zhaopengyou_bianliang.pub.zuidapai = [];//本轮最大的牌
|
||||
zhaopengyou_bianliang.pub.pengyou = [[],[]];//两队朋友
|
||||
zhaopengyou_bianliang.pub.zhunbei = [0,0,0,0];//准备
|
||||
zhaopengyou_bianliang.pub.shengli = [];//出完牌的人
|
||||
zhaopengyou_bianliang.pub.jiang = [0,0,0,0];//奖
|
||||
zhaopengyou_bianliang.pub.chongguan = [0,0,0,0,0,0,0,0];//冲关
|
||||
zhaopengyou_bianliang.pub.shuangguan = 0;//是否双关
|
||||
zhaopengyou_bianliang.pub.du = [-1,-1,-1,-1];//是否独
|
||||
zhaopengyou_bianliang.pub.zhuang = 0;//庄是谁
|
||||
zhaopengyou_bianliang.pub.zhaopai = 55;//找牌
|
||||
zhaopengyou_bianliang.pub.pysx = 0;//朋友令牌显示
|
||||
zhaopengyou_bianliang.pub.kongzhiquan = -1;//控制权在谁
|
||||
zhaopengyou_bianliang.pub.xiaojufen = [0,0,0,0];//本局得分
|
||||
zhaopengyou_bianliang.pub.dapai = [[],[],[],[]];//全部打出来的牌
|
||||
zhaopengyou_bianliang.pub.paiid = [];//自己的牌
|
||||
zhaopengyou_bianliang.pub.tiaoshi = 1;//调试状态
|
||||
zhaopengyou_bianliang.pub.grade = [0,0,0,0];//得分情况
|
||||
zhaopengyou_bianliang.pub.fen = [];//大局全部分
|
||||
zhaopengyou_bianliang.pub.dawan = [0,0,0,0];//是否关闭小局
|
||||
zhaopengyou_bianliang.pub.zuihouda = 0;//最后一手牌出的人
|
||||
zhaopengyou_bianliang.pub.leixing = [];//房间类型
|
||||
zhaopengyou_bianliang.pub.duozha = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]];//每个人几个什么炸
|
||||
zhaopengyou_bianliang.pub.jijiang = [0,0,0,0];//算奖几奖
|
||||
zhaopengyou_bianliang.pub.tishipai = [];
|
||||
zhaopengyou_bianliang.pub.shengpai = [27,27,27,27];
|
||||
zhaopengyou_bianliang.pub.paixing = [];
|
||||
zhaopengyou_bianliang.pub.benju = 0;
|
||||
|
||||
var zhaopengyou_yinxiao = zhaopengyou_yinxiao||{};
|
||||
//zhaopengyou_yinxiao.danzhang = [];
|
||||
//zhaopengyou_yinxiao.danzhang_nv = [];
|
||||
//for(var i = 0;i<13;i++){
|
||||
//var yx = i+1;
|
||||
//var nv = i+14;
|
||||
//if(yx<10){
|
||||
//zhaopengyou_yinxiao.danzhang.push("0010"+yx+".mp3");
|
||||
//}else{
|
||||
//zhaopengyou_yinxiao.danzhang.push("001"+yx+".mp3");
|
||||
//}
|
||||
//zhaopengyou_yinxiao.danzhang_nv.push("001"+nv+".mp3");
|
||||
//}
|
||||
//zhaopengyou_yinxiao.danzhang_nv.push("00211.mp3");
|
||||
//zhaopengyou_yinxiao.danzhang_nv.push("00212.mp3");
|
||||
//zhaopengyou_yinxiao.danzhang.push("00209.mp3");
|
||||
//zhaopengyou_yinxiao.danzhang.push("00210.mp3");
|
||||
//zhaopengyou_yinxiao.yidui = [];
|
||||
//zhaopengyou_yinxiao.yidui_nv = [];
|
||||
//for(var i = 27;i<=39;i++){
|
||||
//zhaopengyou_yinxiao.yidui.push("001"+i+".mp3");
|
||||
//var nv = i+13;
|
||||
//zhaopengyou_yinxiao.yidui_nv.push("001"+nv+".mp3");
|
||||
//}
|
||||
//zhaopengyou_yinxiao.yidui.push("00205.mp3");
|
||||
//zhaopengyou_yinxiao.yidui.push("00206.mp3");
|
||||
//zhaopengyou_yinxiao.yidui_nv.push("00207.mp3");
|
||||
//zhaopengyou_yinxiao.yidui_nv.push("00208.mp3");
|
||||
//zhaopengyou_yinxiao.sandai = [];
|
||||
//zhaopengyou_yinxiao.sandai_nv = [];
|
||||
//for(var i = 53;i<=65;i++){
|
||||
//var nv = i+13;
|
||||
//zhaopengyou_yinxiao.sandai_nv.push("001"+nv+".mp3");
|
||||
//zhaopengyou_yinxiao.sandai.push("001"+i+".mp3");
|
||||
//}
|
||||
//zhaopengyou_yinxiao.liandui = ["00183.mp3"];
|
||||
//zhaopengyou_yinxiao.liandui_nv = ["00184.mp3"];
|
||||
//zhaopengyou_yinxiao.shunzi = ["00185.mp3"];
|
||||
//zhaopengyou_yinxiao.shunzi_nv = ["00186.mp3"];
|
||||
//zhaopengyou_yinxiao.feiji = ["00195.mp3"];
|
||||
//zhaopengyou_yinxiao.feiji_nv = ["00196.mp3"];
|
||||
|
||||
//zhaopengyou_yinxiao.zhadan = ["00179.mp3"];
|
||||
//zhaopengyou_yinxiao.zhadan_nv = ["00180.mp3"];
|
||||
//zhaopengyou_yinxiao.wsk = ["00217.mp3","00218.mp3","00219.mp3","00220.mp3","00221.mp3","00222.mp3","00213.mp3","00214.mp3"];
|
||||
//zhaopengyou_yinxiao.wsk_nv = ["00225.mp3","00226.mp3","00227.mp3","00228.mp3","00229.mp3","00230.mp3","00231.mp3","00232.mp3"];
|
||||
//zhaopengyou_yinxiao.buyao = ["00189.mp3","00191.mp3"];
|
||||
//zhaopengyou_yinxiao.buyao_nv = ["00192.mp3","00194.mp3"];
|
||||
//zhaopengyou_yinxiao.wang = ["00213.mp3","00214.mp3"];
|
||||
//zhaopengyou_yinxiao.wang_nv = ["00215.mp3","00216.mp3"];
|
||||
|
||||
zhaopengyou_yinxiao.danzhang = [];
|
||||
zhaopengyou_yinxiao.danzhang_nv = [];
|
||||
for(var i = 0;i<13;i++){
|
||||
zhaopengyou_yinxiao.danzhang.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.danzhang_nv.push("00235.mp3");
|
||||
}
|
||||
zhaopengyou_yinxiao.danzhang_nv.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.danzhang_nv.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.danzhang.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.danzhang.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.yidui = [];
|
||||
zhaopengyou_yinxiao.yidui_nv = [];
|
||||
for(var i = 27;i<=39;i++){
|
||||
zhaopengyou_yinxiao.yidui.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.yidui_nv.push("00235.mp3");
|
||||
}
|
||||
zhaopengyou_yinxiao.yidui.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.yidui.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.yidui_nv.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.yidui_nv.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.sandai = [];
|
||||
zhaopengyou_yinxiao.sandai_nv = [];
|
||||
for(var i = 53;i<=65;i++){
|
||||
zhaopengyou_yinxiao.sandai_nv.push("00235.mp3");
|
||||
zhaopengyou_yinxiao.sandai.push("00235.mp3");
|
||||
}
|
||||
zhaopengyou_yinxiao.liandui = ["00235.mp3"];
|
||||
zhaopengyou_yinxiao.liandui_nv = ["00235.mp3"];
|
||||
zhaopengyou_yinxiao.shunzi = ["00235.mp3"];
|
||||
zhaopengyou_yinxiao.shunzi_nv = ["00235.mp3"];
|
||||
zhaopengyou_yinxiao.feiji = ["00235.mp3"];
|
||||
zhaopengyou_yinxiao.feiji_nv = ["00235.mp3"];
|
||||
|
||||
zhaopengyou_yinxiao.zhadan = ["00233.mp3"];
|
||||
zhaopengyou_yinxiao.zhadan_nv = ["00233.mp3"];
|
||||
zhaopengyou_yinxiao.wsk = ["00233.mp3","00233.mp3","00233.mp3","00233.mp3","00233.mp3","00233.mp3","00233.mp3","00233.mp3"];
|
||||
zhaopengyou_yinxiao.wsk_nv = ["00233.mp3","00233.mp3","00233.mp3","00233.mp3","00233.mp3","00233.mp3","00233.mp3","00233.mp3"];
|
||||
zhaopengyou_yinxiao.buyao = ["",""];
|
||||
zhaopengyou_yinxiao.buyao_nv = ["",""];
|
||||
zhaopengyou_yinxiao.wang = ["00233.mp3","00233.mp3"];
|
||||
zhaopengyou_yinxiao.wang_nv = ["00233.mp3","00233.mp3"];
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1289
codes/games/client/Projects/zpy/js/zhuang.js
Normal file
1289
codes/games/client/Projects/zpy/js/zhuang.js
Normal file
File diff suppressed because it is too large
Load Diff
3
codes/games/client/Projects/zpy/js/zpy_Event.js
Normal file
3
codes/games/client/Projects/zpy/js/zpy_Event.js
Normal file
@@ -0,0 +1,3 @@
|
||||
//精灵事件单元...
|
||||
|
||||
|
||||
Reference in New Issue
Block a user