目录结构调整

This commit is contained in:
2026-02-04 23:47:45 +08:00
parent 6938c911c3
commit 6b22238c6e
8780 changed files with 15333 additions and 574 deletions

View 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属性值 iddom、或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);

View 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

View 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:"",
}

File diff suppressed because it is too large Load Diff

View 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);
};
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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);
}

View 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
// }
// })

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,169 @@
var Game_Config = Game_Config||{};//相关配置
Game_Config.Debugger={//调试配置
isDebugger : false,// debugger模式下会将所有收发的包输出到控制台(正式发布改为false)
AutoLogin : true,//debugger模式下是否需要记住登录状态自动登录(正式发布改为true)
isSubmitError : true,//是否需要服务器收集错误信息调试时可根据需要正式发布改为true
visitorLogin : true,//隐藏式游客登录
visiblePay:true,//审核通过后是否显示支付按钮
serverType:0,//0->正式服务器 1->测试服务器 2->本地服务器
gameserver:"https://tsgames.daoqi88.cn/config/update_jsonv2.txt"+"?"+ifast_random(100000)
//gameserver:"https://projectimage.tscce.cn/avatar/nickname1.txt"+"?"+ifast_random(100000)
// gameserver:"https://tsgames.daoqi88.cn/config/beta_update_jsonv2.txt"+"?"+ifast_random(100000)
};
Game_Config.Max = {
SumOfRoomtype:8,//创建时房间类型roomtype数组长度
ShowChat:2000,//聊天停留时间
PlayerCnt:3,//房间最大人数
group:500,//游戏最大群组号
showtime:10,//加载等待最少时间
reconnecttime:30000,//唤醒游戏间隔(超过间隔断线重连)
Mainnickname:10,//主界面玩家昵称显示长度(字符长度)
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:115,//自己信息对齐点(根据游戏界面自行修改)
position:[115,115,115],//其他主界面玩家信息昵称、积分居中对齐的x坐标 注意是其他玩家不包括自己从下家开始
//TextContent:["1","2","3","4","5","6","7"],//常用语内容
TextContent:["大家好,很高兴见到各位","不要意思,我要先走一步","快点啊,等到花都谢了","怎么又断线了,网络这么差啊","这牌摸得我也是醉了","你太牛了","喔,这牌太凶了"],//常用语内容
TextContentMp3:["00100.mp3","00101.mp3","00102.mp3","00103.mp3","00104.mp3","00105.mp3","00106.mp3"],//常用语对应音效
};
Game_Config.Share={//分享参数
appdownload:"",//下载链接(无需配置,从服务器获取)
title:"斗地主",//(分享标题)
description:"斗地主",//分享描述
gameTitle:"",//游戏中的分享标题模板工程会自动将游戏名字分享出去、不必写在这个变量里
gameDescription:""//游戏中分享描述
};
Game_Config.Chat={//游戏内聊天配置信息
LimitLength:40,//聊天最大长度(字节长度)
textwidth:12.5,//聊天显示文字的宽度(未改动聊天显示文字大小无需改动无需修改)
ChatDis:[30,12],//聊天气泡与内容的间隔0位置左右间隔(最好不要低于30)1位置上下间隔
isLeft:[1,0,1,1,1],//聊天气泡是否为以左边为基准线
ChatLoc:[[99,306],[1176,90],[103,90],[175,105],[175,315]]//聊天气泡的基准点位置(注意是基准点位置!)
};
Game_Config.Voice={//游戏内聊天配置信息
VoiceTime:600,//播放语音动画的时间一般情况无需无需修改
VoiceDis:[30,12],//语音气泡与内容的间隔0位置左右间隔(最好不要低于30)1位置上下间隔
isLeft:[1,0,1,1,1],//气泡是否为以左边为基准线
VoiceLoc:[[99,306],[1176,90],[103,90],[175,105],[175,315]]//气泡的基准点位置(注意是基准点位置!)
};
Game_Config.Setting={
Ads1:"本游戏仅为娱乐休\n闲使用道具所有\n 游戏通用\n\n游戏问题请联系微\n 信公众号:\n",
//Ads2:"\n 或客服号:\n",
board:"",//从后台获取设置无效
//info:[" 客服信息","QQ:","",""],//客服QQ提醒
info:[" 客服信息","QQ:","手机:","微信:"],//客服QQ提醒
board_blength:24,//通知页面一行最大字节数(无需设置)
charge:"关注友乐微信公众号充值",//充值提示
};
Game_Config.Protocol={
x:270,//协议图片初始x坐标
y:70,//协议图片初始y坐标
h:560,//协议图片显示高度
w:729//协议图片显示宽度
};
Game_Config.Help={//帮助
x:280,//帮助图片初始x坐标
y:170,//帮助图片初始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:"00107.mp3",//大厅界面背景音
MainSceneMusic:"00108.mp3"//游戏主界面背景音
};
Game_Config.ClickButton = {//需要设置点击音效的按钮(只有有弹窗的按钮设置此音效有效、按钮已经设置好、子游戏不允许修改)
src_1:"",//点击时播放的声音资源文件( 不需要播放则不填,下同)
src_2:""//弹窗时播放的音效
}
Game_Config.loginButton = {//登录按钮信息
x1:440,//非审核版本微信登录按钮x
x2:113,//审核版本微信登录按钮x
x3:488,//审核版本游客登录按钮x
};
Game_Config.sysConfig = {
mainMenuButton:false,//是否进入主菜单界面隐藏四个按钮
mainScenePlayerInfo:false,//是否隐藏主界面玩家信息
mainSceneButton:false,//是否隐藏主界面按钮
shareRoom:false,//接收到星星场是否屏蔽平台框架显示
changeSeat:false,//是否屏蔽平台自动刷新换座后界面
hideNotice:false,//隐藏公告栏
vipInfinite:false,//是否为百人场
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,378 @@
var gameHallImport = {};
gameHallImport.appStart =function(){
console.log("appStart");
}
gameHallImport.jumpMenuScene =function(){
console.log("jumpMenuScene");
}
gameHallImport.gameStart = function(){
console.log("gameStart");
}
gameHallImport.setGameList =function(){
console.log("setGameList");
}
gameHallImport.clearGameinfo = function(){
console.log("clearGameinfo");
}
gameHallImport.getWebdata = function(data){
console.log("getWebdata");
}
gameHallImport.isInstalled = function(data){
console.log("isInstalled");
return 1;
}
gameHallImport.up_imgurl = function(recid,photo){
console.log("up_imgurl");
}
gameHallImport.getphoto = function(recid,photo){
console.log("getphoto");
}
// Game_Modify.appStart =function(){
// }
Game_Modify.StartWar=function(_msg){//开战
}
Game_Modify._ReceiveData=function(_msg){//接收数据包
Col_net(_msg);
}
Game_Modify.createRoom=function(_roomtype,_infinite){//创建房间
Infinite.found();
}
Game_Modify.myJoinRoom=function(_msg){//自己进入房间
Infinite.join(Utl.getMySeat());
}
Game_Modify.Reconnect=function(_deskinfo){//重连
Public_data.Initialization();
Infinite.updata(_deskinfo.stage);
aset = cls_doudizhu_aset.New();//创建牌桌
for (var i = 0; i < aset.cardlist.length; i++) {
if (cls_doudizhu_card.GetNumber(aset.cardlist[i]) == 1) {
cls_doudizhu_card.SetArithN(aset.cardlist[i],14);
} else if (cls_doudizhu_card.GetNumber(aset.cardlist[i]) == 2){
cls_doudizhu_card.SetArithN(aset.cardlist[i],16);
}
}
if (_deskinfo.stage >=0) {
Updata_ui.net(_deskinfo);
}
}
Game_Modify.stopAllSounds=function(){//关闭所有声音 (游戏声音)
}
Game_Modify.Free=function(_msg){//投票解散结果为同意时,点击结果界面确认的按钮时触发
Public_data.data.grade = _msg.data.grade; //总分
Public_data.data.stage = _msg.data.stage; //阶段
game.shijian = _msg.data.shijian; //大局结算时间
endover();
}
Game_Modify.DeskInfo=function(_msg){//未开战状态下自己加入是牌桌数据
Infinite.no_join();
}
Game_Modify.breakRoom=function(){//游戏已开局情况下自己退出房间触发
Infinite.out();
}
Game_Modify.playerJoinRoom=function(seat){//其他玩家加入房间
Infinite.join(seat);
}
Game_Modify.playerLeaveRoom=function(seat){//其他玩家离开房间
}
Game_Modify.updateScene = function(){//更新游戏界面
//根据本地数据重新显示界面
Infinite.updata(Public_data.data.stage);
if (Public_data.data.stage != -1 && Public_data.data.stage != 4) {
All_ani.hide();
All_timer.hide();
Updata_ui.redraw();
}
}
Game_Modify.closeGameScene=function(){//关闭游戏界面
}
Game_Modify.playerOffline = function(seat){//玩家离线
}
Game_Modify.playerOnline = function(seat){//玩家上线
}
Game_Modify.playerphonestate = function(seat,type){//玩家电话状态type->挂断1->接打电话、有电话进来的状态
}
Game_Modify.shakeEvent = function(){
switch(GameData.shakeID){
case Game_Config.shakeList.startwar://摇一摇开战(如果有主动开战)
var data={};
data.agentid=GameData.AgentId;
data.gameid=GameData.GameId;
data.playerid=C_Player.playerid;
data.roomcode=Desk.roomcode;
Net.Send_self_makewar(data);
Func.stopshake();
GameData.shakeID=Game_Config.shakeList.nil;
break;
}
}
Game_Modify.calResult = function(inputArr){//计算器结果显示
Calculator.show(inputArr,22,295,348,28,1927,1930,1924);
}
Game_Modify.onEnterMainScene = function(roomtype){//进入游戏主场景
console.log("进入游戏主场景");
if (roomtype[3] == 2) {//如果是无限局
set_self(1069,37,1,0,0);
if (Utl.getstarName()=="星星") {
set_self(1069,43,1,0,0);
} else{
set_self(1069,43,2,0,0);
}
}
set_self(1070,37,1,0,0);//皮肤
set_self(149,1,pifu[1][pifu[0]][0]);
Utl.setFontColor(1045,pifu[1][pifu[0]][1]);//色号
}
Game_Modify.onExitMainScene = function(){//退出游戏主场景
console.log("退出游戏主场景");
}
Game_Modify.onGameConfig = function(_gameConfig){//获取到游戏配置时调用(只在game_config有数据时才调用)
game.config = _gameConfig;
Game_Modify.Type_1[0].des = game.config.jushu[0] + "局房卡X" + game.config.kouka[0][0] + "";
Game_Modify.Type_1[1].des = game.config.jushu[1] + "局房卡X" + game.config.kouka[0][1] + "";
Game_Modify.Type_7[0].des = game.config.dizhu[0] + "分";
Game_Modify.Type_7[1].des = game.config.dizhu[1] + "分";
Game_Modify.Type_7[2].des = game.config.dizhu[2] + "分";
Game_Modify.CreateRoomData.Type_5 = [game.config.gold[0],game.config.gold[3],game.config.gold[2]];
}
Game_Modify.onEnterVideo = function(){//进入牌局回放触发
}
Game_Modify.onSurrender = function(_msg){//收到投降回包
}
Game_Modify.onReady = function(seat){//玩家准备触发
}
Game_Modify.getRoomInfo = function(roomtype,type,tea){//通过roomtype获取房间描述每行最多18个字符超过需要自己换行type1系统房间2非系统房间
console.log("Game_Modify.getRoomInfo:"+roomtype);
return "房间描述"+roomtype;
}
Game_Modify.getStarLimit = function(roomtype){//通过roomtype获取房间星星场下限数量(准入)
console.log("Game_Modify.getStarLimit:"+roomtype);
return roomtype[4][1];
}
Game_Modify.getMult = function(roomtype,type){//通过roomtype获取房间星星场倍数
console.log("Game_Modify.getStarLimit:"+roomtype);
return roomtype[4][0];
}
Game_Modify.getFullRoomInfo = function(roomtype){//通过roomtype获取房间全部信息描述 每行最多26个字符超过需要自己换行
//console.log("Game_Modify.getFullRoomInfo:"+roomtype);
//房间信息
var _des = "";
if(roomtype[3] == 1){
_des= Game_Modify.Type_1[roomtype[0]-1].des+Game_Modify.Type_2[roomtype[1]-1].des+'\n'+"底分:"+Game_Modify.Type_7[roomtype[6]-1].des+'\n'+ Game_Modify.Type_9[roomtype[8]-1].des+' '+Game_Modify.Type_10[roomtype[9]-1].des+" "+Game_Modify.Type_3[roomtype[2]-1].des;
} else{
if (Utl.getIsInfinite() == 1){
_des= "底分:"+Game_Modify.Type_7[roomtype[6]-1].des+' '+ Game_Modify.Type_9[roomtype[8]-1].des+' '+Game_Modify.Type_10[roomtype[9]-1].des+" "+Game_Modify.Type_3[roomtype[2]-1].des
+'\n'+Utl.getstarName()+"倍数:" + roomtype[4][0]+''+"入场限制:" + roomtype[4][1];
}else{
_des = Game_Modify.Type_1[roomtype[0]-1].des+' '+"底分:"+Game_Modify.Type_7[roomtype[6]-1].des+'\n'+ Game_Modify.Type_9[roomtype[8]-1].des+' '+Game_Modify.Type_10[roomtype[9]-1].des+" "+Game_Modify.Type_3[roomtype[2]-1].des
+'\n'+Utl.getstarName()+"倍数:" + roomtype[4][0]+''+"入场限制:" + roomtype[4][1];
}
}
return _des;
}
Game_Modify.onOpenHelp = function(spid){//打开帮助页面触发
}
//显示大厅界面触发
Game_Modify.onMainMenuScene = function(){
Public_data.Initialization();
UI.hide();
All_ani.hide();
All_timer.hide();
}
//确认数字输入框回调
Game_Modify.onCheckInput = function(_result){
console.log(_result);
}
//创建房间成功后触发
Game_Modify.onCreateRoom = function(_data){
}
//获取离场限制
Game_Modify.getLeaveLimit = function(roomtype){
return 10;
}
//成功获取定位信息触发
Game_Modify.onLocationInfo = function(_locationInfo){
}
//进入游戏界面创建牌桌之前调用
Game_Modify.onCreateDesk = function(roomtype){
console.log("onCreateDesk:"+roomtype);
//最大人数
if(roomtype[2] == 1){
Game_Config.Max.PlayerCnt = 3;
}else if(roomtype[2] == 2){
Game_Config.Max.PlayerCnt = 2;
}
}
//通过roomtype获取是否开启视频功能0->不开启1->开启
Game_Modify.getVideoByRoomType = function(roomtype){
return 1;
}
//返回值为字符数组数组每项为房间一项描述信息
Game_Modify.getRoomTopDescAry = function(roomtype){
//console.log(roomtype);
//房间信息
if (roomtype[1] == 1) {
Game_Modify.Type_1[0].des = game.config.jushu[0] + "局房卡X" + game.config.kouka[1][0] + "";
Game_Modify.Type_1[1].des = game.config.jushu[1] + "局房卡X" + game.config.kouka[1][1] + "";
}else{
Game_Modify.Type_1[0].des = game.config.jushu[0] + "局房卡X" + game.config.kouka[0][0] + "";
Game_Modify.Type_1[1].des = game.config.jushu[1] + "局房卡X" + game.config.kouka[0][1] + "";
}
if(roomtype[3] == 1){
return [Game_Modify.Type_1[roomtype[0]-1].des,Game_Modify.Type_2[roomtype[1]-1].des,"底分:"+Game_Modify.Type_7[roomtype[6]-1].des,Game_Modify.Type_9[roomtype[8]-1].des,
Game_Modify.Type_10[roomtype[9]-1].des,Game_Modify.Type_3[roomtype[2]-1].des];
} else{
if (Utl.getIsInfinite() == 1) {
return ["底分:"+Game_Modify.Type_7[roomtype[6]-1].des,Game_Modify.Type_9[roomtype[8]-1].des,Game_Modify.Type_10[roomtype[9]-1].des,Game_Modify.Type_3[roomtype[2]-1].des
,Utl.getstarName()+"倍数:" + roomtype[4][0],"入场限制:" + roomtype[4][1]];
} else {
return [Game_Modify.Type_1[roomtype[0]-1].des,"底分:"+Game_Modify.Type_7[roomtype[6]-1].des,Game_Modify.Type_9[roomtype[8]-1].des,Game_Modify.Type_10[roomtype[9]-1].des,Game_Modify.Type_3[roomtype[2]-1].des
,Utl.getstarName()+"倍数:" + roomtype[4][0],"入场限制:" + roomtype[4][1]];
}
}
}
//星星场房间列表
Game_Modify.getShareRoom = function(_msg){
}
//玩家自己退出房间
Game_Modify.myExitRoom = function(seat){
Infinite.out();
}
//接收到换座包触发
Game_Modify.changeSeat = function(seat1,seat2){
}
//关闭vip选项时调用
Game_Modify.onCloseVip = function(){
}
//判断房间是否为金币场(是金币场返回1否则返回0)
Game_Modify.getRoomMode = function(roomtype){
return 0;
}
// //通过该接口获取房间最大玩家数量,获取最大玩家数量记得把Game_Config.Max.PlayerCnt的值设置成对应值对于roomtype需要先判断是否合法如果不合法默认返回Game_Config.Max.PlayerCnt
// Game_Modify.getMaxPlayerCount = function(roomtype){
// return Game_Config.Max.PlayerCnt;
// }
// /**
// * 更新玩家信息界面显示(数据层方法)
// */
// Game_Modify.updatePlayerInfoUI = function(targetSeat){
// return false;
// }
//回放时触发
Game_Modify.recovery = function(_msg){
opencard(1);
opencard(2);
set_self(1064,41,1,0,0);
set_self(1064,37,1,0,0);
Public_data.aset_recovery(_msg);
config_carlen();
cards_interval();
liangdipai(1);//亮底牌
difenxs();//底分显示
beixs();//倍数显示
dzxs();//地主显示
}
//回放时退出触发
Game_Modify.recoveryout = function(){
set_group(220,37,0,0,0);
Public_data.Initialization();
UI.hide();
All_ani.hide();
All_timer.hide();
}
//开始回放时手牌排序
Game_Modify.sort = function(cards){
cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,cards)
,[1,3]);
cards = cls_doudizhu_aset.CardsToCardIds(cards);
return cards;
}
//回放结束
Game_Modify.over = function(_msg){
Public_data.data.bei = _msg.data.gameinfo2.pjhf[dijiju][_msg.data.gameinfo2.pjhf[dijiju].length-1][1]; //当前倍数
asetover();
}
//回放中途触发
Game_Modify.recovery_step = function(num){
//set_group(220,37,0,0,0);
beixs();//倍数显示
}
//点击出牌时触发
Game_Modify.putcards = function(){
}

View File

@@ -0,0 +1,152 @@
//相关配置
var id_config = id_config||{
};
id_config.hc_len = [20,17,17]; //手牌长度
id_config.car_start = [2001,2101,2201];//每个位置牌起始id
id_config.sta_posi_x = [565,1003,166];//每个位置标准牌的x坐标
id_config.sta_posi_y = [531,108,108];//每个位置标准牌的y坐标
id_config.car_intervalx = [70,43,43];//每个位置两张牌之间x的间隔
id_config.car_intervaly = [42,42,42];//每个位置两张牌之间y的间隔
id_config.put_intervalx = [43,43,43];//打出去每个位置两张牌之间x的间隔
id_config.put_intervaly = [72,72,72];//打出去每个位置两张牌之间y的间隔
id_config.car_position = [1,2,0];//每个位置标准牌的方位 0左边第一张 1中间 2右边
id_config.car_len = [20,10,10];//每个人一排几张牌
id_config.put_len = [20,10,10];//每个人一排几张牌
id_config.wide = [150,110,110];//每个人牌的宽
id_config.high = [190,142,142];//每个人牌的高
id_config.put_wide = [110,110,110];//每个人牌打出去的宽
id_config.put_high = [142,142,142];//每个人牌打出去的高
id_config.put_posi_x = [585,1003,166];//每个人牌打出去的标准牌的x坐标
id_config.put_posi_y = [340,108,108];//每个人牌打出去的标准牌的y坐标
id_config.put_position = [1,2,0];//每个位置打出去标准牌的方位 0左边第一张 1中间 2右边
id_config.pass = [1046,1047,1048];//不要的id
id_config.intervalh = 30;//点击手牌 上移的距离
id_config.but_id = 0; //出牌按钮id 不用为0
id_config.mask = 2522; //第一张遮罩id 遮罩的大小和牌的大小相同
id_config.pass_id = 1046; //第一个不要的id
//回放
id_config.fast = 1066; //快进
id_config.pause = 1065; //暂停
id_config.retreat = 1067; //退一步
id_config.out = 1068; //退出
//局数
id_config.game = 1514; //局字
id_config.Slash = 1513; //斜杠
id_config.min_num = 1517; //小局数
id_config.max_num = 1515; //大局数
id_config.ward_wide = 16; //数字的宽度
id_config.ward_interval = 15; //数字的间隔
//时钟
id_config.clock = 1507; //钟
id_config.time_id = 1508; //时间id
id_config.time_size = 25; //一位数字的大小
id_config.clock_x = [450,1022,175]; //钟x坐标
id_config.clock_y = [380,160,160]; //钟y坐标
id_config.time_clock_x = 29; //钟和一位数字的x距离
id_config.time_clock_y = 23; //钟和一位数字的y距离
//按钮
id_config.but_putcard = 1056;//出牌按钮的id
id_config.but_pass = 1054;//不要按钮的id
id_config.but_prompt = 1055;//提示按钮的id
id_config.but_maxpass = 1057;//要不起按钮的id
id_config.but_mingpai = 1058;//明牌id
id_config.but_putcard_x = [581,789,688,543];//出牌按钮3钟情况的x坐标 第一种情况 第二种情况 第三种情况
id_config.but_pass_x = [286,286,581];//不要按钮3钟情况的x坐标 第一种情况 第二种情况 第三种情况
id_config.but_prompt_x = [581,581,581];//提示按钮3钟情况的x坐标 第一种情况 第二种情况 第三种情况
id_config.pass_prompt = 1059;//没有大过上家牌的文字图的id
id_config.txt_di = 1060;//文字图的底id
id_config.put_err = 1061;//出牌错误的文字图的id
//托管
id_config.trus = 1520;//托管按钮
id_config.trus_di = 1521;//托管底
id_config.trus_cancel = 1522;//取消托管
//明牌
id_config.mingpaidi = 1063;//明牌底
id_config.mingpaiquan = 1062;//明牌圈
id_config.mingpaizi = 1049;//明牌字
id_config.mingpaidix = [277,518,65];//明牌底x
id_config.mingpaidiy = [179,80,80];//明牌底y
id_config.mingpaiquanx = [585,826,373];//明牌圈x
id_config.mingpaiquany = [244,145,145];//明牌圈y
id_config.mingpaizix = [596,857,404];//明牌字x
id_config.mingpaiziy = [278,179,179];//明牌字y
id_config.mingpaidik = 727;//明牌底的宽度
//动画
id_config.dafeiji = 1156; //大飞机的id
id_config.feiji = 1150; //第一个飞机字的id
id_config.feijidi = 1153; //第一个飞机底的id
//id_config.feiji_wide = [168,168,168];//宽
//id_config.feiji_high = [85,85,85];//高
id_config.feiji_x = [[260,430],[970,800],[-90,60]];//x
id_config.feiji_y = [381,156,156];//y
id_config.shunzi = 1157; //第一个顺子字的id
id_config.shunzidi = 1160; //第一个顺子底的id
id_config.liandui = 1163; //第一个连对字的id
id_config.lianduidi = 1166; //第一个连对底的id
//id_config.shunzi_wide = [141,141,141];//宽
//id_config.shunzi_high = [76,76,76];//高
id_config.shunzi_x = [[380,552],[1260,928],[10,223]];//x
id_config.shunzi_y = [369,168,168];//y
id_config.zhadan = 1169;//炸弹
id_config.zhadan_x = [[380,500,588],[1157,1030,940],[10,137,240]];//炸弹x
id_config.zhadan_y = [[545,200,362],[126,30,130],[126,30,130]];//炸弹y
id_config.baozha = 1172;//爆炸
id_config.baozha_x = [489,838,129];//爆炸
id_config.baozha_y = [231,-5,-5];//爆炸
id_config.huojian = 1175;//火箭
id_config.yan = 1178;//烟
id_config.huojian_x = [556,929,198];//火箭x
//id_config.huojian_y = [231,-5,-5];//火箭y
id_config.yan_x = [384,757,26];//烟x
//id_config.huojian_y = [231,-5,-5];//烟y
id_config.wangzhax = [537,973,165];//王炸字显示x坐标
id_config.wangzhay = [378,175,175];//王炸字显示y坐标
id_config.wangzhazi = 1143;//王炸字id
id_config.zhadanzi = 1140;//炸弹字id

View File

@@ -0,0 +1,162 @@
//数据处理
var Public_data = {
}
Public_data.recovery = {
}
Public_data.data = {
}
Public_data.game = {
}
Public_data.ini = function(){
//框架数据定义
Public_data.recovery.RoomCode = 0; //房间号
Public_data.recovery.asetcount = 0; //总局数
Public_data.recovery.roomtype = []; //房间类型
Public_data.recovery.ziyuan = []; //昵称 头像
Public_data.recovery.id = []; //playerid
Public_data.recovery.hand_cards = []; //手牌
Public_data.recovery.pjhf = []; //打牌回放
Public_data.recovery.num = 0; //回放第几步
Public_data.clickid = 0; //鼠标所在的牌id
Public_data.clickiniid = 0; //点下去的牌id
Public_data.select = []; //选中的牌
Public_data.current = 15; //当前倒计时
Public_data.outmove = 0; //是否移动到外面
Public_data.cards = []; //出牌
Public_data.jieduan = 0; //发牌动画阶段
Public_data.playtime = 15; //倒计时
//------------------------------------------------------------
Public_data.data.banker = -1; //庄
Public_data.data.tuoguan = []; //托管
Public_data.data.roomtype = []; //房间类型
Public_data.data.bei = 0; // 倍数
Public_data.data.hand_cards = []; //手牌
Public_data.data.team_cards = [[],[]]; //每个人的队友牌(某些游戏打完了能看队友的牌)
Public_data.data.undercards = []; //底牌
Public_data.data.playerlist = [[],[]]; //玩家状态 下标0:操作状态、1:准备状态、2:是否参与游戏、3抢庄状态、4加倍状态
Public_data.data.stage = -1; //牌桌当前阶段 0发牌 1加倍 2打牌 3小局 4大局
Public_data.data.caozuo = 0; //接包次数
Public_data.data.rest= [-1,-1]; //每个人的牌剩余
Public_data.data.rest_cards = [[],[]]; //游戏结束时所有人剩余的牌
Public_data.data.dealid = [[],[],[]]; //每个人的出牌ID
Public_data.data.bj_score = [-1,-1]; //本局每个人的输赢分
Public_data.data.wsk_score = [-1,-1]; //每人的5 10 K分
Public_data.data.change_seat = [-1,-1]; //某些游戏需要换座的
Public_data.data.updown_swim = [-1,-1]; //上下游
Public_data.data.cardtype =[[],[]]; //当前出牌的牌型 下标0:牌型的类型、1:牌型的大小、2:牌的ID
Public_data.data.maxplayer =-1; //当前最大出牌人的座位号
Public_data.data.rpc = ""; //包名
Public_data.data.maxman = 3; //最大人数
Public_data.data.num = [10,400]; //局数
Public_data.data.point_cards = []; //提示
Public_data.data.control = 0; //控制权
Public_data.data.caozuo = 0; //包数量
Public_data.data.mp_zt = [-1,-1,-1]; //明牌状态
Public_data.data.team_cards = []; //明牌id
Public_data.data.down_score = []; //底分
Public_data.data.di_bei = 0; //底倍数
Public_data.data.end = -1; //本局状态
Public_data.data.gold_score = []; //星星得分
Public_data.data.chuntian = 0; //春天
}
Public_data.ini_game = function(){
//子游戏数据初始化
Public_data.game.shizhong = 30; //时钟
}
Public_data.Initialization = function(){
//初始化数据 在gameabc_face.gamestart中调用
All_timer.time_r(); //重置定时器
Public_data.ini(); //初始化数据
Public_data.ini_game();
carini();//牌还原
Hand_card.ini();//牌初始化
UI.hide();//界面隐藏
All_ani.hide();//动画关闭
All_timer.hide();//定时器关闭
game.ini();
Utl.stopMusic();
Game_Config.soundList.MainSceneMusic = "00108.mp3";//王炸声音特效
Utl.playMusic();
set_self(1072,41,0,0,0);
}

View File

@@ -0,0 +1,583 @@
//界面显示
var UI = {
}
UI.hide = function(){
//隐藏界面
UI.dealcard.hide();
UI.lootbanket.hide();
UI.more.hide();
UI.playcards.hide();
UI.display.hide();
UI.aset.hide();
UI.ready.hide();
Recovery.Card_Game.hide();
clock(0);
}
UI.begin = {
//开始
show: function(){
UI.hide();
game_num(1);//局数显示
trus(0);//托管
},
update: function(){
UI.hide();
liangdipai(0);//亮底牌
trus(0);//托管
//set_self(1500,37,1,0,0);
},
hide: function(){
game_num(0);//局数显示
}
}
UI.dealcard = {
//发牌
show: function(){//显示
Hand_card.ani();//准备发牌动画
All_ani.dealcard.show();//发牌动画
liangdipai(0);//亮底牌
beixs();//倍数显示
difenxs();//底分显示
for(var i= 0;i<Public_data.data.maxman;i++){//明牌显示
if (Public_data.data.mp_zt[i] == 1 ) {
All_ani.mingpai.show(mingpaidonghua,Utl.changeToStatus(i));//明牌动画
}
else{//显示牌张数
dipaishu();
}
}
},
update: function(){//更新显示
//set_group(201,37,1);
id_config.clock_x[0] = 428;
clock(1); //时钟显示
liangdipai(0);//亮底牌
opencards();//明牌
jiaofen();//叫分
if(Utl.getMySeat() == Public_data.data.control){
xiafen();
}
for(var i= 0;i<Public_data.data.maxman;i++){
if (Utl.getMySeat() == i) {
Hand_card.sort(i,Public_data.data.hand_cards);
mpbs(1);//明牌标识
}else if (Public_data.data.mp_zt[i] == 1) {//明牌
opencards();//明牌
}else{
dipaishu();
}
}
},
hide: function(){//隐藏
clock(0); //时钟显示
set_group(201,37,0,0,0);
set_group(202,37,0,0,0);
set_group(203,37,0,0,0);
set_group(204,37,0,0,0);
set_group(210,37,0,0,0);
set_group(211,37,0,0,0);
}
}
UI.lootbanket = {
//抢庄
show: function(){
set_group(204,37,0,0,0);
jiaofen();//叫分显示
difenxs();//底分显示
lootbanketsound();//叫分音效
var bujiao = 0;
for (var i = 0; i < Public_data.data.maxman; i++) {
if (Public_data.data.playerlist[3][i] == 0) {
bujiao++;
}
}
if (bujiao == Public_data.data.maxman && Public_data.data.stage == 0 ) {
clock(0); //时钟显示
set_self(1090,37,0,0,0);
set_self(1091,37,0,0,0);
}else{
if (Public_data.data.stage == 1 ) {
set_self(All_timer.jiaofen,57,All_timer.time.jiaofen,0,0);
id_config.clock_x[0] = 600;
//Public_data.data.control = Utl.getMySeat();//用来显示钟
liangdipai(1);//亮底牌
Utl.playSound(Sound.fptx);
beixs(); //修改倍数
dzxs();//地主显示
opencards();//明牌
Utl.playSound(Sound.fptx);
clock(0); //时钟显示
if (Public_data.data.banker == Utl.getMySeat()) {//自己是地主
jiapai();//加牌动画
mpbs(0);//明牌标识
}else{
config_carlen();//设置牌长度
dipaishu();
set_self(All_timer.jiaofen,57,All_timer.time.jiaofen,0,0);
}
}else{
clock(1); //时钟显示
}
if (Utl.getMySeat() == Public_data.data.control) {
if (Public_data.data.stage == 0) {
xiafen();//叫分按钮
}
}
}
},
update: function(){
Hand_card.sort(Utl.getMySeat(),Public_data.data.hand_cards);//重新摆手牌
mpbs(1);//明牌标识
//liangdipai(0);//亮底牌
dzxs();//地主显示
opencards();//明牌
jiaofen();//叫分显示
if (Public_data.data.stage == 1 ) {
//Public_data.data.control = Utl.getMySeat();
liangdipai(1);//亮底牌
//set_group(207,37,1,0,0);
jiabeixs();
}
clock(1); //时钟显示
if (Utl.getMySeat() == Public_data.data.control) {
if (Public_data.data.stage == 0) {
xiafen();//叫分按钮
} else {
//set_group(207,37,1,0,0);
//button_show(1,false);//出牌按钮
//Hand_card.sort(Utl.getMySeat());//重新摆手牌
}
}
},
hide: function(){
UI.dealcard.hide();
set_group(207,37,0,0,0);
}
}
UI.more = {
//加倍
show: function(){
if(game.seat == Utl.getMySeat() && Public_data.data.playerlist[4][Utl.getMySeat()] > -1){
clock(0); //时钟显示
}
jiabeixs();
jiabeisound();//音效
},
update: function(){
//Public_data.data.control = Utl.getMySeat();//用来显示钟
Hand_card.sort(Utl.getMySeat(),Public_data.data.hand_cards);//重新摆手牌
mpbs(1);//明牌标识
liangdipai(1);//亮底牌
opencards();//明牌
jiabeixs();
paidz();//牌上地主显示
if(Public_data.data.playerlist[4][Utl.getMySeat()] == -1){
id_config.clock_x[0] = 600;
clock(1); //时钟显示
}else{
clock(0); //时钟显示
}
dzxs();//地主显示
},
hide: function(){
UI.dealcard.hide();
clock(0); //时钟显示
set_group(207,37,0,0,0);
}
}
UI.playcards = {
//打牌
show: function(){
if (Public_data.data.jieguo == 1) {
set_group(207,37,0,0,0);
clock(0); //时钟显示
beixs();//倍数显示
if (Public_data.data.caozuo > 0) {
id_config.clock_x[0] = 493;
Utl.playSound(Sound.cptx);
sound();//音效
}else{
trus(1);//托管
}
if (game.seat != Utl.getMySeat()) {
Putcards.sort();//出牌
if (Public_data.data.mp_zt[game.seat] !=1 ) {
if (Public_data.data.end==-1) {
paidz();//牌上地主显示
}
dipaishu();
}else{
opencards();//明牌
}
clock(1); //时钟显示
}
if (Public_data.data.end == -1) {
if (Public_data.data.control == Utl.getMySeat() && Public_data.data.stage == 2) {
if (Public_data.data.caozuo == 0) {
button_show(1);
}else{
var caozuo = 0;
for (var i=0; i<Public_data.data.maxman; i++) {
if (Public_data.data.playerlist[0][i] == -1) {
caozuo++;
}
}
if (caozuo == Public_data.data.maxman) {
button_show(1,true);
}
else if (Public_data.data.point_cards.length) {
button_show(2,true);
} else {
button_show(3,true);
}
}
}
}else{
clock(0); //时钟显示
//set_self(1021,37,0,0,0);
}
}else{
if (Public_data.data.control == Utl.getMySeat() && Public_data.data.stage == 2) {
set_self(id_config.txt_di,37,1,0,0);
set_self(id_config.put_err,37,1,0,0);
All_ani.put_err.show(1);
}
}
},
update: function(){
id_config.clock_x[0] = 493;
liangdipai(1);//亮底牌
clock(1); //时钟显示
dzxs();//地主显示
Hand_card.sort(Utl.getMySeat(),Public_data.data.hand_cards);//手牌
mpbs(1);//明牌标识
Putcards.sort();//出牌
opencards();//明牌
paidz();//出牌上地主显示
if (Public_data.data.control == Utl.getMySeat()) {
if (Public_data.data.caozuo == 0) {
button_show(1);
}else{
var caozuo = 0;
for (var i=0; i<Public_data.data.maxman; i++) {
if (Public_data.data.playerlist[0][i] == -1) {
caozuo++;
}
}
if (caozuo == Public_data.data.maxman) {
button_show(1,true);
}
else if (Public_data.data.point_cards.length) {
button_show(2,true);
} else {
button_show(3,true);
}
}
}
},
hide: function(){
UI.dealcard.hide();
clock(0); //时钟显示
set_group(205,37,0,0,0);
}
}
UI.display = {
//不出
show: function(){
id_config.clock_x[0] = 493;
clock(1); //时钟显示
if (game.seat == Utl.getMySeat()) {
Hand_card.sort(Utl.getMySeat(),Public_data.data.hand_cards);//手牌
button_show(0);
}
opencards();//明牌
Putcards.sort();//出牌
paidz();//出牌上地主显示
passsound();//不要音效
if (Public_data.data.control == Utl.getMySeat()) {
var caozuo = 0;
for (var i=0; i<Public_data.data.maxman; i++) {
if (Public_data.data.playerlist[0][i] == -1) {
caozuo++;
}
}
if (caozuo == Public_data.data.maxman) {
button_show(1,true);
}else{
if (Public_data.data.point_cards.length) {
button_show(2,true);
} else {
button_show(3,true);
}
}
}
},
update: function(){
id_config.clock_x[0] = 493;
liangdipai(1);//亮底牌
clock(1); //时钟显示
dzxs();//地主显示
Hand_card.sort(Utl.getMySeat(),Public_data.data.hand_cards);//手牌
mpbs(1);//明牌标识
Putcards.sort();//出牌
opencards();//明牌
paidz();//出牌上地主显示
if (Public_data.data.control == Utl.getMySeat()) {
var caozuo = 0;
for (var i=0; i<Public_data.data.maxman; i++) {
if (Public_data.data.playerlist[0][i] == -1) {
caozuo++;
}
}
if (caozuo == Public_data.data.maxman) {
button_show(1,true);
}else{
if (Public_data.data.point_cards.length) {
button_show(2,true);
} else {
button_show(3,true);
}
}
}
},
hide: function(){
UI.dealcard.hide();
clock(0); //时钟显示
set_group(205,37,0,0,0);
}
}
UI.aset = {
//小局
show: function(){
clock(0); //时钟显示
Utl.playSound(Sound.sltx);
set_group(205,37,0,0,0);
trus(0);
if (Utl.getIsInfinite() == 0) {
for(var i=0;i<Public_data.data.maxman;i++)
{
if(Public_data.data.roomtype[3]==2){
Utl.changeBean(Public_data.data.gold_score[i],i);
}
Utl.setGrade(i,Public_data.data.grade[i]);
}
} else {
for(var i=0;i<Public_data.data.maxman;i++)
{
Utl.changeBean(0,i);
Utl.changeBean(Public_data.data.gold[i]-Utl.getBeanBySeat(i),i);
Utl.setGrade(i,Public_data.data.gold[i]);
}
}
asetopen();//小局明牌
if(Public_data.data.chuntian ==1){
All_ani.chuntian.show();
}
if (game.seat != Utl.getMySeat()) {
Putcards.sort();//出牌
paidz();//出牌上地主显示
}
dzxs();
mpbs(0);
set_self(All_timer.aset,57,All_timer.time.aset,0,0);//准备进小局
},
update: function(){
liangdipai(1);//亮底牌
clock(0); //时钟显示
set_group(205,37,0,0,0);
asetopen();//小局明牌
Putcards.sort();//出牌
paidz();//出牌上地主显示
dzxs();//地主显示
mpbs(0);//明牌标识
beixs();//倍数显示
zhunbei();
asetover();
},
hide: function(){
UI.dealcard.hide();
clock(0); //时钟显示
set_group(251,37,0,0,0);
set_group(260,37,0,0,0);
}
}
UI.ready = {
//准备
show: function(){
zhunbei();
if (Public_data.data.playerlist[1][Utl.getMySeat()] != 1) {
for(var i= 0;i<Public_data.data.maxman;i++){
if (Public_data.data.mp_zt[i] == 1) {
set_self(1814,41,0,0,0);
set_self(1814,35,100,0,0);
set_self(1077,41,0,0,0);
set_self(1077,35,100,0,0);
break;
}
}
return;
}
set_group(251,37,0,0,0);
set_group(201,37,0,0,0);
set_group(202,37,0,0,0);
set_group(203,37,0,0,0);
set_group(205,37,0,0,0);
set_group(210,37,0,0,0);
set_group(211,37,0,0,0);
set_self(1076,37,0,0,0);
set_self(1077,37,0,0,0);
set_self(1079,37,0,0,0);
set_self(1078,37,0,0,0);
clock(0);
mpbs(0);//明牌标识
game_num(1);
//zhunbei();
},
update: function(){
set_group(251,37,0,0,0);
clock(0);
game_num(1);
zhunbei();
},
hide: function(){
UI.dealcard.hide();
set_group(251,37,0,0,0);
set_group(252,37,0,0,0);
}
}
UI.help_play = {
//托管
show: function(){
trus(1);
},
update: function(){
trus(1);
},
hide: function(){
trus(0);
}
}
UI.mingpai = {
//明牌
show: function(){
//opencard(game.seat); //配置明牌坐标
All_ani.mingpai.show(mingpaidonghua,Utl.changeToStatus(game.seat));//明牌动画
if(Utl.getMySeat() == Public_data.data.control){
button_show(1);
}
id_config.clock_x[0] = 428;
clock(1);
mpbs(1);//明牌标识
},
update: function(){
opencards();//明牌
mpbs(1);//明牌标识
},
hide: function(){
set_group(201,37,0,0,0);
set_group(202,37,0,0,0);
set_group(203,37,0,0,0);
}
}

View File

@@ -0,0 +1,530 @@
//动画
var All_ani = {
}
All_ani.hide = function() {
All_ani.dealcard.hide();
All_ani.put_err.hide();
All_ani.chapai.hide();
All_ani.put_cards.hide();
All_ani.mingpai.hide();
All_ani.aset_mingpai.hide();
All_ani.feiji.hide();
All_ani.shunzi.hide();
All_ani.liandui.hide();
All_ani.zhadan.hide();
All_ani.wangzha.hide();
All_ani.zhuomian.hide();
All_ani.chuntian.hide();
All_ani.hide1();
}
//在 gameabc_face.ani_doend 中调用
All_ani.ani_doend = function(id,sx,count,allend){
//动画结束
//发牌结束
dealcard_ani_doend(id,sx,count,allend);
//插牌结束
chapai_ani_doend(id,sx,count,allend);
//明牌结束
mingpai_ani_doend(id,sx,count,allend);
//飞机结束
paixingdonghua(id,sx,count,allend);
//炸弹结束
zhadanover(id,sx,count,allend);
//爆炸结束
baozhaover(id,sx,count,allend);
//烟结束
yanover(id,sx,count,allend);
//桌面结束
zhuomianover(id,sx,count,allend);
//炸弹字结束
zhadanziover(id,sx,count,allend);
//春天结束
chuntianover(id,sx,count,allend);
}
All_ani.dealcard = {//发牌
show:function(){
if (Public_data.data.hand_cards.length%2) {//单数
var anix = id_config.sta_posi_x[0] - (id_config.car_intervalx[0] * ((Public_data.data.hand_cards.length-1)/2));
}else{//双数
var anix = id_config.sta_posi_x[0] - (id_config.car_intervalx[0] * (Public_data.data.hand_cards.length/2)) + id_config.car_intervalx[0]/2;
}
for(var i = 0;i<Public_data.data.hand_cards.length;i++){
play_ani(1,i+id_config.car_start[0],18,anix,i*id_config.car_intervalx[0]+anix,0,400,0,0,0,1,0,0);
set_self(i+id_config.car_start[0],37,1);
set_self(i+id_config.car_start[0],19,id_config.sta_posi_y[0],0,0);
}
},
hide:function(){
for(var i = 0;i<id_config.hc_len[Utl.getMySeat()];i++){
play_ani(0,i+id_config.car_start[0],0);
set_self(i+id_config.car_start[0],37,0);
}
}
}
All_ani.chapai = {//插牌
show:function(dq_wz){
var x_wz = [];//加入后的坐标
for (var i = 0; i < Public_data.data.hand_cards.length; i++) {
x_wz[i] = get_self(id_config.car_start[0]+i,18,0,0,0);
}
var jiaru = 0;
for (var i = 0; i < id_config.hc_len[Utl.getMySeat()]; i++) {
if (i == wz[jiaru]) {//这张牌是底牌
set_self(id_config.car_start[0]+i,19,470,0,0);
set_self(id_config.car_start[0]+i,37,0,0,0);
jiaru ++;
}else{
set_self(id_config.car_start[0]+i,18,dq_wz[i-jiaru],0,0);
play_ani(1,id_config.car_start[0]+i,18,get_self(id_config.car_start[0]+i,18),x_wz[i],0,300,0,0,0,1,0,0);
}
}
},
hide:function(){
for(var i = 0;i<id_config.hc_len[Utl.getMySeat()];i++){
play_ani(0,i+id_config.car_start[0],0);
set_self(i+id_config.car_start[0],37,0);
}
}
}
All_ani.put_err = {
//出牌错误
show: function(type){
play_ani(1,id_config.txt_di,35,255,0,0,All_timer.time.put_err,0,0,0,1,0,0);
if (type) {
play_ani(1,id_config.put_err,35,255,0,0,All_timer.time.put_err,0,0,0,1,0,0);
}else{
play_ani(1,id_config.pass_prompt,35,255,0,0,All_timer.time.put_err,0,0,0,1,0,0);
}
},
hide: function(){
play_ani(0,id_config.put_err,0);
set_self(id_config.put_err,37,0,0,0);
play_ani(0,id_config.txt_di,0);
set_self(id_config.txt_di,37,0,0,0);
play_ani(0,id_config.pass_prompt,0);
set_self(id_config.pass_prompt,37,0,0,0);
}
}
All_ani.put_cards = {
//出牌动画
show: function(tiqi,weiti){
chupaidonghua = 1;//出牌动画开关
//575
var chu =[];
var liu = [];
var kuan = 0;
var liukuan = 0;
//------------------------------------------//选中牌上划
if (tiqi.length%2) {//单数
kuan = id_config.put_posi_x[0] - (id_config.put_intervalx[0] * ((tiqi.length - 1)/2));
}else{//双数
kuan = id_config.put_posi_x[0] - (id_config.put_intervalx[0] * (tiqi.length/2)) + id_config.put_intervalx[0]/2;
}
for (var i= 0;i<tiqi.length;i++) {
play_ani(1,id_config.car_start[0]+tiqi[i],19,get_self(id_config.car_start[0]+tiqi[i],19),id_config.put_posi_y[0],0,100,0,0,0,1,0,0);
play_ani(1,id_config.car_start[0]+tiqi[i],18,get_self(id_config.car_start[0]+tiqi[i],18),i*id_config.put_intervalx[0]+kuan,0,100,0,0,0,1,0,0);
play_ani(1,id_config.car_start[0]+tiqi[i],20,get_self(id_config.car_start[0]+tiqi[i],20),id_config.put_wide[0],0,100,0,0,0,1,0,0);
play_ani(1,id_config.car_start[0]+tiqi[i],21,get_self(id_config.car_start[0]+tiqi[i],21),id_config.put_high[0],0,100,0,0,0,1,0,0);
}
//-------------------------------------------------------//未选中牌对齐
var handcards = Public_data.data.hand_cards.length;
if (handcards%2) {//单数
liukuan = id_config.sta_posi_x[0] - (id_config.car_intervalx[0] * ((handcards-1)/2));
}else{//双数
liukuan = id_config.sta_posi_x[0] - (id_config.car_intervalx[0] * (handcards/2)) + id_config.car_intervalx[0]/2;
}
if (weiti.length == 0) {
set_self(1021,37,0,0,0);
} else {
for (var i= 0;i<weiti.length;i++) {
if (i == weiti.length-1) {
if(Public_data.data.banker == Utl.getMySeat()){//牌上地主跟着最后一张牌走
var zhx = get_self(id_config.car_start[0]+weiti[i],18);
set_self(1021,19,get_self(id_config.car_start[0]+weiti[i],19,0,0,0),0,0);
set_self(1021,18,get_self(id_config.car_start[0]+weiti[i],18,0,0,0),0,0);
play_ani(1,1021,18,zhx,liukuan+i*id_config.car_intervalx[0],0,100,0,0,0,1,0,0);
set_self(1021,37,1,0,0);
}
}
play_ani(1,id_config.car_start[0]+weiti[i],18,get_self(id_config.car_start[0]+weiti[i],18),liukuan+i*id_config.car_intervalx[0],0,100,0,0,0,1,0,0);
}
}
},
hide: function(){
for(var i = 0;i<id_config.hc_len[Utl.getMySeat()];i++){
play_ani(0,i+id_config.car_start[0],0);
set_self(i+id_config.car_start[0],37,0);
}
}
}
All_ani.mingpai = {
//明牌
show: function(type,seat){
switch (type){
case 0:
Utl.playSound("00125.mp3");
//显示底变宽
//opencard(seat); //配置明牌坐标
set_self(id_config.mingpaizi,19,id_config.mingpaiziy[seat],0,0);
set_self(id_config.mingpaiquan,19,id_config.mingpaiquany[seat],0,0);
set_self(id_config.mingpaizi,18,id_config.mingpaizix[seat],0,0);
//set_self(id_config.mingpaidi,18,id_config.mingpaidix[seat],0,0);
set_self(id_config.mingpaiquan,18,id_config.mingpaiquanx[seat],0,0);
set_self(id_config.mingpaidi,19,id_config.mingpaidiy[seat],0,0);
set_self(id_config.mingpaidi,18,id_config.mingpaidix[seat]+id_config.mingpaidik/2,0,0);
set_self(id_config.mingpaidi,20,0,0,0);
set_self(id_config.mingpaidi,33,100,0,0);
play_ani(1,id_config.mingpaidi,20,0,id_config.mingpaidik,0,200,0,0,0,1,0,0);
play_ani(1,id_config.mingpaidi,18,id_config.mingpaidix[seat]+id_config.mingpaidik/2,id_config.mingpaidix[seat],0,200,0,0,0,1,0,0);
set_self(id_config.mingpaidi,37,1,0,0);
mingpaidonghua = 1;
break;
case 1:
//显示圈旋转 明牌放大
All_ani.mingpai.hide(1);
set_self(id_config.mingpaiquan,37,1,0,0);
set_self(id_config.mingpaizi,37,1,0,0);
set_self(id_config.mingpaizi,33,0,0,0);
set_self(id_config.mingpaiquan,33,100,0,0);
play_ani(1,id_config.mingpaiquan,34,0,360,0,1300,0,0,0,0,0,0);
play_ani(1,id_config.mingpaizi,33,0,120,0,200,0,0,0,1,0,0);
mingpaidonghua = 2;
break;
case 2:
//显示 明牌恢复
All_ani.mingpai.hide(1);
play_ani(1,id_config.mingpaizi,33,120,100,0,200,0,0,0,1,0,0);
mingpaidonghua = 3;
break;
case 3:
//明牌恢复后准备隐藏
All_ani.mingpai.hide(1);
set_self(All_timer.mingpai,57,All_timer.time.mingpai,0,0);
mingpaidonghua = 4;
break;
case 4:
//开始隐藏
All_ani.mingpai.hide(1);
play_ani(1,id_config.mingpaizi,33,100,120,0,100,0,0,0,1,0,0);
play_ani(1,id_config.mingpaidi,33,100,120,0,100,0,0,0,1,0,0);
play_ani(1,id_config.mingpaiquan,33,100,120,0,100,0,0,0,1,0,0);
mingpaidonghua = 5;
break;
case 5:
//隐藏
All_ani.mingpai.hide(1);
play_ani(1,id_config.mingpaizi,33,120,0,0,200,0,0,0,1,0,0);
play_ani(1,id_config.mingpaidi,33,120,0,0,200,0,0,0,1,0,0);
play_ani(1,id_config.mingpaiquan,33,120,0,0,200,0,0,0,1,0,0);
mingpaidonghua = 6;
opencards();//明牌
//clock(1);
if(Utl.getMySeat() == Public_data.data.control){
jiaofen();//叫分
if (Public_data.data.stage == 0) {
xiafen();
}
}
break;
case 6:
//关动画
All_ani.mingpai.hide();
mingpaidonghua = 7;
break;
}
} ,
hide: function(type){
if(!type){
set_self(id_config.mingpaizi,37,0,0,0);
set_self(id_config.mingpaidi,37,0,0,0);
set_self(id_config.mingpaiquan,37,0,0,0);
play_ani(0,id_config.mingpaiquan,0);
}
play_ani(0,id_config.mingpaizi,0);
play_ani(0,id_config.mingpaidi,0);
}
}
All_ani.aset_mingpai = {
//小局明牌
show: function(seat){
//seat = Utl.changeToStatus(seat);
if (Utl.changeToStatus(seat) == 1) {
//右边
var diyix = 0;
if (Public_data.data.rest_cards[seat].length<=id_config.car_len[Utl.changeToStatus(seat)]) {
diyix = id_config.sta_posi_x[Utl.changeToStatus(seat)] - (id_config.car_intervalx[Utl.changeToStatus(seat)] * (Public_data.data.rest_cards[seat].length-1));
} else {
diyix = id_config.sta_posi_x[Utl.changeToStatus(seat)] - (id_config.car_intervalx[Utl.changeToStatus(seat)] * 9);
}
for (var i = 0; i < Public_data.data.rest_cards[seat].length; i++) {
if (i>=id_config.car_len[Utl.changeToStatus(seat)]) {
play_ani(1,id_config.car_start[Utl.changeToStatus(seat)]+i,18,
id_config.sta_posi_x[Utl.changeToStatus(seat)],//起始位置
diyix+id_config.car_intervalx[Utl.changeToStatus(seat)]*(i-(Public_data.data.rest_cards[seat].length-id_config.car_len[Utl.changeToStatus(seat)])),//结束位置
0,400,0,400,0,1,0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,37,1,0,0);
} else {
play_ani(1,id_config.car_start[Utl.changeToStatus(seat)]+i,18,
id_config.sta_posi_x[Utl.changeToStatus(seat)],//起始位置
diyix+id_config.car_intervalx[Utl.changeToStatus(seat)]*i,//结束位置
0,400,0,0,0,1,0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,37,1,0,0);
}
}
} else if (Utl.changeToStatus(seat) == 2) {
//左边
for (var i = 0; i < Public_data.data.rest_cards[seat].length; i++) {
if (i>=id_config.car_len[Utl.changeToStatus(seat)]) {
play_ani(1,id_config.car_start[Utl.changeToStatus(seat)]+i,18,id_config.sta_posi_x[Utl.changeToStatus(seat)],id_config.sta_posi_x[Utl.changeToStatus(seat)]+id_config.car_intervalx[Utl.changeToStatus(seat)]*(i-id_config.car_len[Utl.changeToStatus(seat)]),0,400,0,400,0,1,0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,37,1,0,0);
} else {
play_ani(1,id_config.car_start[Utl.changeToStatus(seat)]+i,18,id_config.sta_posi_x[Utl.changeToStatus(seat)],id_config.sta_posi_x[Utl.changeToStatus(seat)]+id_config.car_intervalx[Utl.changeToStatus(seat)]*i,0,400,0,0,0,1,0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,37,1,0,0);
}
}
}
},
hide: function(){
for (var i = 0; i < id_config.hc_len[i]; i++) {
play_ani(0,id_config.car_start[1]+i,0);
play_ani(0,id_config.car_start[2]+i,0);
set_self(id_config.car_start[1]+i,37,0,0,0);
set_self(id_config.car_start[2]+i,37,0,0,0);
}
}
}
All_ani.feiji = {//飞机
show: function(type,id,jiajian){
if (type == 1) {
set_self(id_config.feijidi+Utl.changeToStatus(game.seat),37,1,0,0);
set_self(id_config.feiji+Utl.changeToStatus(game.seat),37,1,0,0);
set_self(id_config.dafeiji,37,1,0,0);
if (Utl.changeToStatus(game.seat) == 1) {//右边过来
play_ani(1,id_config.feijidi+Utl.changeToStatus(game.seat),18,id_config.feiji_x[Utl.changeToStatus(game.seat)][0],id_config.feiji_x[Utl.changeToStatus(game.seat)][1],0,300,0,0,0,1,0,0);
play_ani(1,id_config.feiji+Utl.changeToStatus(game.seat),18,id_config.feiji_x[Utl.changeToStatus(game.seat)][0]+40,id_config.feiji_x[Utl.changeToStatus(game.seat)][1]+70,60,240,0,0,0,1,0,0);
} else {//左边过来
play_ani(1,id_config.feijidi+Utl.changeToStatus(game.seat),18,id_config.feiji_x[Utl.changeToStatus(game.seat)][0],id_config.feiji_x[Utl.changeToStatus(game.seat)][1],0,300,0,0,0,1,0,0);
play_ani(1,id_config.feiji+Utl.changeToStatus(game.seat),18,id_config.feiji_x[Utl.changeToStatus(game.seat)][0]+170,id_config.feiji_x[Utl.changeToStatus(game.seat)][1]+200,60,240,0,0,0,1,0,0);
}
play_ani(1,id_config.dafeiji,18,-328,1300,0,1000,0,0,0,1,0,0);
} else {
play_ani(1,id,0);
if (jiajian == 1) {
play_ani(1,id,18,get_self(id,18,0,0,0),get_self(id,18,0,0,0)+30,0,80,0,0,0,1,0,0);
} else {
play_ani(1,id,18,get_self(id,18,0,0,0),get_self(id,18,0,0,0)-30,0,80,0,0,0,1,0,0);
}
}
},
hide: function(){
for (var i = 0; i < 7; i++) {
set_self(id_config.feiji+i,37,0,0,0);
play_ani(0,id_config.feiji+i,0);
}
}
}
All_ani.shunzi = {//顺子
show: function(type,id,jiajian){
if (type == 1) {
set_self(id_config.shunzidi+Utl.changeToStatus(game.seat),37,1,0,0);
set_self(id_config.shunzi+Utl.changeToStatus(game.seat),37,1,0,0);
if (Utl.changeToStatus(game.seat) ==1) {//右边过来
play_ani(1,id_config.shunzidi+Utl.changeToStatus(game.seat),18,id_config.shunzi_x[Utl.changeToStatus(game.seat)][0],id_config.shunzi_x[Utl.changeToStatus(game.seat)][1],0,300,0,0,0,1,0,0);
play_ani(1,id_config.shunzi+Utl.changeToStatus(game.seat),18,id_config.shunzi_x[Utl.changeToStatus(game.seat)][0]-20,id_config.shunzi_x[Utl.changeToStatus(game.seat)][1]-30,60,240,0,0,0,1,0,0);
} else {//左边过来
play_ani(1,id_config.shunzidi+Utl.changeToStatus(game.seat),18,id_config.shunzi_x[Utl.changeToStatus(game.seat)][0],id_config.shunzi_x[Utl.changeToStatus(game.seat)][1],0,300,0,0,0,1,0,0);
play_ani(1,id_config.shunzi+Utl.changeToStatus(game.seat),18,id_config.shunzi_x[Utl.changeToStatus(game.seat)][0]+20,id_config.shunzi_x[Utl.changeToStatus(game.seat)][1]+30,60,240,0,0,0,1,0,0);
}
} else {
play_ani(1,id,0);
if (jiajian == 1) {
play_ani(1,id,18,get_self(id,18,0,0,0),get_self(id,18,0,0,0)+30,0,80,0,0,0,1,0,0);
} else {
play_ani(1,id,18,get_self(id,18,0,0,0),get_self(id,18,0,0,0)-30,0,80,0,0,0,1,0,0);
}
}
},
hide: function(){
for (var i = 0; i < 6; i++) {
set_self(id_config.shunzi+i,37,0,0,0);
play_ani(0,id_config.shunzi+i,0);
}
}
}
All_ani.liandui = {//连对
show: function(type,id,jiajian){
if (type == 1) {
set_self(id_config.lianduidi+Utl.changeToStatus(game.seat),37,1,0,0);
set_self(id_config.liandui+Utl.changeToStatus(game.seat),37,1,0,0);
if (Utl.changeToStatus(game.seat) == 1) {//右边过来
play_ani(1,id_config.lianduidi+Utl.changeToStatus(game.seat),18,id_config.shunzi_x[Utl.changeToStatus(game.seat)][0],id_config.shunzi_x[Utl.changeToStatus(game.seat)][1],0,300,0,0,0,1,0,0);
play_ani(1,id_config.liandui+Utl.changeToStatus(game.seat),18,id_config.shunzi_x[Utl.changeToStatus(game.seat)][0]-20,id_config.shunzi_x[Utl.changeToStatus(game.seat)][1]-30,60,240,0,0,0,1,0,0);
} else {//左边过来
play_ani(1,id_config.lianduidi+Utl.changeToStatus(game.seat),18,id_config.shunzi_x[Utl.changeToStatus(game.seat)][0],id_config.shunzi_x[Utl.changeToStatus(game.seat)][1],0,300,0,0,0,1,0,0);
play_ani(1,id_config.liandui+Utl.changeToStatus(game.seat),18,id_config.shunzi_x[Utl.changeToStatus(game.seat)][0]+20,id_config.shunzi_x[Utl.changeToStatus(game.seat)][1]+30,60,140,0,0,0,1,0,0);
}
} else {
play_ani(1,id,0);
if (jiajian == 1) {
play_ani(1,id,18,get_self(id,18,0,0,0),get_self(id,18,0,0,0)+30,0,80,0,0,0,1,0,0);
} else {
play_ani(1,id,18,get_self(id,18,0,0,0),get_self(id,18,0,0,0)-30,0,80,0,0,0,1,0,0);
}
}
},
hide: function(){
for (var i = 0; i < 6; i++) {
set_self(id_config.liandui+i,37,0,0,0);
play_ani(0,id_config.liandui+i,0);
}
}
}
All_ani.zhadan = {//炸弹
show: function(type,id){
if (type==1) {
set_self(id_config.zhadan+Utl.changeToStatus(game.seat),37,1,0,0);
set_self(id_config.zhadan+Utl.changeToStatus(game.seat),18,id_config.zhadan_x[Utl.changeToStatus(game.seat)][0],0,0);
set_self(id_config.zhadan+Utl.changeToStatus(game.seat),19,id_config.zhadan_y[Utl.changeToStatus(game.seat)][0],0,0);
play_ani(1,id_config.zhadan+Utl.changeToStatus(game.seat),18,id_config.zhadan_x[Utl.changeToStatus(game.seat)][0],id_config.zhadan_x[Utl.changeToStatus(game.seat)][1],0,300,0,0,0,1,0,0);
play_ani(1,id_config.zhadan+Utl.changeToStatus(game.seat),19,id_config.zhadan_y[Utl.changeToStatus(game.seat)][0],id_config.zhadan_y[Utl.changeToStatus(game.seat)][1],0,300,0,0,0,1,0,0);
play_ani(1,149,33,100,130,0,400,0,0,0,1,0,0);
zhadan_ani[Utl.changeToStatus(game.seat)] = 1;
//王炸字
set_self(id_config.zhadanzi+Utl.changeToStatus(game.seat),37,1,0,0);
set_self(id_config.zhadanzi+Utl.changeToStatus(game.seat),35,0,0,0);
set_self(id_config.zhadanzi+Utl.changeToStatus(game.seat),18,id_config.wangzhax[Utl.changeToStatus(game.seat)],0,0);
set_self(id_config.zhadanzi+Utl.changeToStatus(game.seat),19,id_config.wangzhay[Utl.changeToStatus(game.seat)],0,0);
set_self(id_config.zhadanzi+Utl.changeToStatus(game.seat),33,300,0,0);
play_ani(1,id_config.zhadanzi+Utl.changeToStatus(game.seat),33,300,100,0,200,0,0,0,1,0,0);
play_ani(1,id_config.zhadanzi+Utl.changeToStatus(game.seat),35,0,255,0,100,0,0,0,1,0,0);
}else if (type == 2) {
play_ani(1,id,18,id_config.zhadan_x[Utl.changeToStatus(game.seat)][1],id_config.zhadan_x[Utl.changeToStatus(game.seat)][2],0,100,0,0,0,1,0,0);
play_ani(1,id,19,id_config.zhadan_y[Utl.changeToStatus(game.seat)][1],id_config.zhadan_y[Utl.changeToStatus(game.seat)][2],0,100,0,0,0,1,0,0);
zhadan_ani[Utl.changeToStatus(game.seat)] = 0;
}
},
hide: function(){
for (var i = 0; i < 6; i++) {
set_self(id_config.zhadan+i,37,0,0,0);
play_ani(0,id_config.zhadan+i,0);
set_self(id_config.zhadanzi+i,37,0,0,0);
play_ani(0,id_config.zhadanzi+i,0);
}
}
}
All_ani.wangzha = {//王炸
show: function(){
//火箭
set_self(id_config.huojian+Utl.changeToStatus(game.seat),37,1,0,0);
set_self(id_config.huojian+Utl.changeToStatus(game.seat),18,id_config.huojian_x[Utl.changeToStatus(game.seat)],0,0);
set_self(id_config.huojian+Utl.changeToStatus(game.seat),19,730,0,0);
play_ani(1,id_config.huojian+Utl.changeToStatus(game.seat),19,730,-500,0,400,0,0,0,1,0,0);
set_self(All_timer.huojian,57,All_timer.time.huojian,0,0);
//play_ani(1,149,33,100,105,0,100,0,0,0,16,0,1);
//王炸字
set_self(id_config.wangzhazi+Utl.changeToStatus(game.seat),37,1,0,0);
set_self(id_config.wangzhazi+Utl.changeToStatus(game.seat),35,0,0,0);
set_self(id_config.wangzhazi+Utl.changeToStatus(game.seat),18,id_config.wangzhax[Utl.changeToStatus(game.seat)],0,0);
set_self(id_config.wangzhazi+Utl.changeToStatus(game.seat),19,id_config.wangzhay[Utl.changeToStatus(game.seat)],0,0);
set_self(id_config.wangzhazi+Utl.changeToStatus(game.seat),33,300,0,0);
play_ani(1,id_config.wangzhazi+Utl.changeToStatus(game.seat),33,300,100,0,200,0,0,0,1,0,0);
play_ani(1,id_config.wangzhazi+Utl.changeToStatus(game.seat),35,0,255,0,100,0,0,0,1,0,0);
},
hide: function(){
for (var i = 0; i < 6; i++) {
set_self(id_config.zhadan+i,37,0,0,0);
play_ani(0,id_config.zhadan+i,0);
set_self(id_config.zhadanzi+i,37,0,0,0);
play_ani(0,id_config.zhadanzi+i,0);
}
set_self(149,18,0,0,0);
set_self(149,19,0,0,0);
set_self(149,33,100,0,0);
}
}
All_ani.zhuomian = {//桌面缩放
show: function(){
set_self(All_timer.zhuomian,57,All_timer.time.zhuomian,0,0);
},
hide: function(){
set_selfdiv('ifastgame',18,0,0,0);
set_selfdiv('ifastgame',19,0,0,0);
}
}
All_ani.chuntian = {//春天
show: function(){
set_self(1002,37,1,0,0);
set_self(1002,33,0,0,0);
Utl.playSound(Sound.cttx);
play_ani(1,1002,33,0,130,0,200,0,0,0,1,0,0);
},
hide: function(){
set_self(1002,37,0,0,0);
play_ani(0,1002,0);
}
}

View File

@@ -0,0 +1,186 @@
//定时器 在 gameabc_face.ontimer 中调用
var All_timer = {
//定时器id设置
recovery : 1064, //回放牌局
clock : id_config.clock, //钟定时器
put_err: id_config.put_err, //出牌错误
mingpai:1501, //明牌隐藏
aset:1807, //小局显示
feiji:1510, //飞机隐藏
huojian:1511, //火箭出烟
zhuomian:1512, //桌面抖动
zhadanzi:1800, //炸弹字
jiaofen :1803, //叫分结束
wzsy :1509, //王炸声音特效
}
All_timer.hide = function(){
set_self(All_timer.clock,57,0,0,0);
set_self(All_timer.put_err,57,0,0,0);
set_self(All_timer.recovery,57,0,0,0);
set_self(All_timer.mingpai,57,0,0,0);
set_self(All_timer.aset,57,0,0,0);
set_self(All_timer.feiji,57,0,0,0);
set_self(All_timer.huojian,57,0,0,0);
set_self(All_timer.zhuomian,57,0,0,0);
set_self(All_timer.zhadanzi,57,0,0,0);
set_self(All_timer.jiaofen,57,0,0,0);
set_self(All_timer.wzsy,57,0,0,0);
All_timer.hide1();
}
All_timer.time = {
}
All_timer.time_r = function(){
//定时器时间设置
All_timer.time.dealcard = 100; //发牌
All_timer.time.recovery = 2000; //回放牌局
All_timer.time.clock = 1000; //钟
All_timer.time.put_err = 3000; //出牌错误
All_timer.time.mingpai = 1500; //明牌隐藏
All_timer.time.aset = 3000; //小局
All_timer.time.feiji = 1000; //飞机隐藏
All_timer.time.huojian = 200; //火箭出烟
All_timer.time.zhuomian = 10; //桌面抖动
All_timer.time.zhadanzi = 1000; //炸弹字
All_timer.time.jiaofen = 1000; //叫分结束
All_timer.time.wzsy = 15000; //王炸声音结束
}
All_timer.timer = function(gameid , spid , times , timelong , alltimes){
switch (spid){
case All_timer.clock://时钟
if(Public_data.current>0){
Public_data.current--;
}else{
set_self(All_timer.clock,57,0,0,0);
}
if (Public_data.current == 10 || Public_data.current <=3 ) {
Utl.playSound(Sound.sjtx);
}
set_self(id_config.time_id,7,Public_data.current,0,0);
set_self(id_config.time_id,20,id_config.time_size*(ifast_inttostr(Public_data.current).length),0,0);
set_self(id_config.time_id,18,id_config.clock_x[Utl.changeToStatus(Public_data.data.control)]+id_config.time_clock_x-(ifast_inttostr(Public_data.current).length-1)*id_config.time_size/2,0,0);
break;
case All_timer.recovery://回放
if (Public_data.recovery.num+1<Public_data.recovery.pjhf.length-1) {
Public_data.recovery.num ++;
Public_data.Recovery();
Recovery.button();
set_self(id_config.retreat,41,1,0,0);
}else{
Recovery.Card_Game.hide();//关闭定时器
Game_Modify.over(msgrecovery);
}
break;
case All_timer.put_err://出牌错误
All_ani.put_err.show(1);
set_self(All_timer.put_err,57,0,0,0);
break;
case All_timer.mingpai://明牌开始隐藏隐藏
All_ani.mingpai.show(mingpaidonghua);
set_self(All_timer.mingpai,57,0,0,0);
break;
case All_timer.aset://小局显示
asetover();
set_self(All_timer.aset,57,0,0,0);
break;
case All_timer.feiji://飞机界面隐藏
for (var i = 0; i < 19; i++) {
set_self(id_config.feiji+i,37,0,0,0);
play_ani(1,id_config.feiji+i,0);
}
set_self(All_timer.feiji,57,0,0,0);
break;
case All_timer.huojian://火箭出烟
for (var i = 0; i < Public_data.data.maxman; i++) {
if (get_self(id_config.huojian+i,37,0,0,0) ==1) {
set_self(id_config.yan+i,37,1,0,0);
set_self(id_config.yan+i,18,id_config.yan_x[i],0,0);
play_ani(1,id_config.yan+i,43,0,8,0,1000,0,0,0,1,0,0);
break;
}
}
All_ani.zhuomian.show();
set_self(All_timer.huojian,57,0,0,0);
break;
case All_timer.zhuomian://桌面抖动
set_selfdiv('ifastgame',18,ifast_random(20)-10,0,0);
set_selfdiv('ifastgame',19,ifast_random(20)-10,0,0);
zmcs++;
if (zmcs==15)
{
zmcs = 0;
set_selfdiv('ifastgame',18,0,0,0);
set_selfdiv('ifastgame',19,0,0,0);
set_self(All_timer.zhuomian,57,0,0,0);
};
break;
case All_timer.zhadanzi://炸弹字
All_ani.zhadan.hide();
All_ani.wangzha.hide();
set_self(All_timer.zhadanzi,57,0,0,0);
break;
case All_timer.jiaofen://叫分结束
set_group(204,37,0,0,0);
jiabeixs();
clock(1); //时钟显示
dipaishu();
set_self(All_timer.jiaofen,57,0,0,0);
break;
case All_timer.wzsy://王炸音效结束
Utl.stopMusic();
Game_Config.soundList.MainSceneMusic = "00108.mp3";//王炸声音特效
Utl.playMusic();
set_self(All_timer.wzsy,57,0,0,0);
break;
}
}

View File

@@ -0,0 +1,235 @@
//点击事件
var Click = {
}
//在 gameabc_face.mouseup 中调用
Click.up = function (gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2){
click_up(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
if (spid_down == spid_up) {
Recovery.click(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
switch (spid_up){
case 149:
if (Public_data.data.stage == 2) {
for (var i = 0; i < id_config.hc_len[Utl.getMySeat()]; i++) {
if (get_self(id_config.car_start[0]+i,37,0,0,0) && get_self(id_config.car_start[0]+i,19,0,0,0) == id_config.sta_posi_y[0]-id_config.intervalh) {
set_self(id_config.car_start[0]+i,19,id_config.sta_posi_y[0],0,0);
}
}
paidz();
mpbs(1);
}
break;
case 1070:
if (pifu[0] < pifu[1].length-1) {
pifu[0] = pifu[0]+1;
}else{
pifu[0] = 0;
}
set_self(149,1,pifu[1][pifu[0]][0]);
Utl.setFontColor(1045,pifu[1][pifu[0]][1]);//色号
break;
case 1300:
kaifang(0);
cjfj(0);//创建房间界面显示
break;
case 1301:
kaifang(1);
cjfj(1);//创建房间界面显示
cls_method_jdb.bsdh_OpenCreateRoom(1308,400,723,1310,1309,1307,1312,game.config.gold[1],17,game.config.gold[0]);
break;
case 1090://加倍
Collect_Net.more(1)
break;
case 1091://不加倍
Collect_Net.more(0);
break;
case 1058://明牌
Collect_Net.mingpai();
break;
case id_config.but_putcard://出牌
Public_data.cards = []; //出牌
for (var i = 0; i < id_config.hc_len[Utl.getMySeat()]; i++) {
if (get_self(id_config.car_start[0]+i,19,0,0,0) == id_config.sta_posi_y[0]-id_config.intervalh && get_self(id_config.car_start[0]+i,37,0,0,0) == 1) {
Public_data.cards.push(Public_data.data.hand_cards[i]);
}
}
if (Public_data.cards.length) {
var put = true;
if (put) {//能出
Collect_Net.playcards();
}else{//不能出
set_self(id_config.put_err,37,1,0,0);
set_self(All_timer.put_err,57,3000,0,0);
}
}
break;
case id_config.but_pass://不要
Hand_card.ini_y();
Collect_Net.display();
paidz();
mpbs(1);
break;
case id_config.but_maxpass://要不起
Hand_card.ini_y();
Collect_Net.display();
paidz();
mpbs(1);
break;
case id_config.but_prompt://提示
if (Public_data.data.point_cards.length) {
Hand_card.ini_y();
for (var j = 0; j <Public_data.data.point_cards[game.tishi].length;j++) {
for (var i = 0; i <Public_data.data.hand_cards.length;i++) {
if (Public_data.data.hand_cards[i] == Public_data.data.point_cards[game.tishi][j]) {
set_self(id_config.car_start[0]+i,19,id_config.sta_posi_y[0]-id_config.intervalh,0,0);
break;
}
}
}
paidz();//出牌上地主显示
mpbs(1);
game.tishi++;
if (game.tishi>=Public_data.data.point_cards.length) {
game.tishi = 0;
}
}
break;
case id_config.trus://托管
Collect_Net.help_play(1);
break;
case id_config.trus_cancel://取消托管
Collect_Net.help_play(0);
break;
case 1814://明牌准备
if (Public_data.data.end == 1) {
Collect_Net.ready(1);
} else {
endover();
}
break;
case 1815://准备
if (Public_data.data.end == 1) {
Collect_Net.ready(0);
} else {
endover();
}
break;
case 1071://查看大局
endover();
break;
case 1933://关闭大局结算
Public_data.Initialization();
UI.hide();
All_ani.hide();
All_timer.hide();
Utl.Exit();
break;
case 1941://分享
Func.sharefinend(1,2,'','','',[1906,1907,1908]);
break;
case 1073://换桌
Utl.sendChangeRoom();
break;
case 1074://退出
//Func.sharefinend(1,2,'','','',[1906,1907,1908]);
break;
case 1075://返回牌桌
fanhuipaizhuo();
break;
case 1077://明牌准备
Collect_Net.ready(1);
break;
case 1076://准备
Collect_Net.ready(0);
break;
case 1079://查看大局
endover();
break;
}
if (spid_up>=1050 && spid_up<=1053) {//叫分
Collect_Net.lootbanket(ifast_abs(1050-spid_up));
//click_up(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);//特效
}
if (spid_up>=1059 && spid_up<=1061) {//错误提示
set_self(id_config.put_err,37,0,0,0);
set_self(id_config.txt_di,37,0,0,0);
set_self(id_config.pass_prompt,37,0,0,0);
}
}
//弹起
if (Public_data.select.length) {//根据选中牌进行操作
Hand_card.click_up();
}
}
//在 gameabc_face.mousedown 中调用
Click.down = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2){
//按下
click_down(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
Recovery.clickdown(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
//手牌选中
Hand_card.handcard_down(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
}
//在 gameabc_face.mousemove 中调用
Click.mousemove = function(gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1){
//手牌滑动
if (spid >= id_config.car_start[0] && spid < id_config.car_start[0] + id_config.hc_len[Utl.getMySeat()]) {
Hand_card.handcard_move(gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1);
}
}

View File

@@ -0,0 +1,136 @@
//收包
//在Game_Modify._ReceiveData 中调用
var Col_net = function(_msg){
switch (_msg.rpc){
case 'begin':
Public_data.begin(_msg);
UI.begin.show();
break;
case 'dealcard':
//发牌
Public_data.dealcard(_msg);
UI.dealcard.show();
break;
case 'lootbanket':
//下注
Public_data.lootbanket(_msg);
UI.lootbanket.show();
break;
case 'more':
//加倍
Public_data.more(_msg);
UI.more.show();
break;
case 'mingpai':
//明牌
Public_data.mingpai(_msg);
UI.mingpai.show();
break;
case 'playcards':
//出牌
Public_data.playcards(_msg);
UI.playcards.show();
break;
case 'display':
//不要
Public_data.display(_msg);
UI.display.show();
break;
case 'aset':
//小局
Public_data.aset(_msg);
UI.aset.show();
break;
//case 'end':
//大局
//Public_data.end(_msg);
//UI.end.show();
//break;
case 'ready':
//准备
Public_data.ready(_msg);
UI.ready.show();
break;
case 'help_play':
//托管
Public_data.help_play(_msg);
UI.help_play.show();
break;
case 'jqrzb':
//机器人准备
Infinite.robot_ready(_msg.data.zbwj);
break;
case 'tichu':
switch (_msg.data.type){
case 1:
Utl.openTips("您的"+Utl.getstarName()+"不够,去其他房间看看吧!");
break;
case 2:
Utl.openTips("您因长时间未准备,已被系统请出房间");
break;
case 3:
Utl.openTips("有玩家"+Utl.getstarName()+"不够,本局结束!");
break;
}
break;
case 'gold_zb':
Infinite.robot_ready(_msg.data.zbwj);
for(var i= 0;i < Public_data.data.maxman;i++){
if (_msg.data.mp_zt[i] == 1 && _msg.data.zbwj[Utl.getMySeat()] == 0) {
set_self(1814,41,0,0,0);
set_self(1814,35,100,0,0);
break;
}
}
if (_msg.data.zbwj[Utl.getMySeat()] == 1) {
set_group(251,37,0,0,0);
set_group(201,37,0,0,0);
set_group(202,37,0,0,0);
set_group(203,37,0,0,0);
set_group(205,37,0,0,0);
set_group(210,37,0,0,0);
set_group(211,37,0,0,0);
set_self(1076,37,0,0,0);
set_self(1077,37,0,0,0);
set_self(1079,37,0,0,0);
set_self(1078,37,0,0,0);
clock(0);
mpbs(0);//明牌标识
}
break;
}
}

View File

@@ -0,0 +1,93 @@
//发包
var Collect_Net = {
game_name : "doudizhu" //游戏名
}
Collect_Net.Package = function(_rpc,_data){
//发包函数
var data = _data;
data.agentid = Utl.getAgentID();//代理商ID
data.playerid = Utl.getMyPlayerid();//玩家playid
data.gameid = Utl.getGameID(),//游戏id
data.roomcode = Utl.getRoomcode();//获得房间号
data.seat = Utl.getMySeat();//获取玩家座位号
Utl.sendData("youle", Collect_Net.game_name, _rpc, data);
}
Collect_Net.lootbanket = function(s){
//下分抢庄
var _data = {
score : s
}
Collect_Net.Package("lootbanket",_data);
}
Collect_Net.more = function(m){
//加倍
var _data = {
more : m
}
Collect_Net.Package("more",_data);
}
Collect_Net.mingpai = function(m){
//明牌
var _data = {
}
Collect_Net.Package("mingpai",_data);
}
Collect_Net.playcards = function(){
//出牌
var _data = {
cards : Public_data.cards,
caozuo : Public_data.data.caozuo
}
Collect_Net.Package("playcards",_data);
}
Collect_Net.display = function(){
//不出
var _data = {
caozuo : Public_data.data.caozuo
}
Collect_Net.Package("display",_data);
}
Collect_Net.help_play = function(type){
//托管
var _data = {
tuoguan : type
}
Collect_Net.Package("help_play",_data);
}
Collect_Net.ready = function(m){
//准备
var _data = {
mingpai : m
}
Collect_Net.Package("ready",_data);
}

View File

@@ -0,0 +1,450 @@
var Hand_card = {};
Hand_card.sort = function(seat,hand_cards){
//手牌摆放
if (seat == Utl.getMySeat()) {
for (var i = 0;i < id_config.hc_len[Utl.getMySeat()]; i++) {
if (id_config.put_posi_y[0] == get_self(id_config.car_start[seat]+i,19,0,0,0)) {
set_self(id_config.car_start[0]+i,19,id_config.sta_posi_y[0],0,0);
}
set_self(id_config.car_start[0]+i,37,0,0,0);
}
}
if (id_config.car_position[Utl.changeToStatus(seat)] == 0) {//左边
Hand_card.sortleft(Utl.changeToStatus(seat),hand_cards);
}else if (id_config.car_position[Utl.changeToStatus(seat)] == 1) {// 中间
Hand_card.sortin(Utl.changeToStatus(seat),hand_cards);
}else if (id_config.car_position[Utl.changeToStatus(seat)] == 2) {//右边
Hand_card.sortright(Utl.changeToStatus(seat),hand_cards);
}
};
Hand_card.ani = function(type){
//显示手牌
//第一张牌的x坐标
if (Public_data.data.hand_cards.length%2) {//单数
var anix = id_config.sta_posi_x[0] - (id_config.car_intervalx[0] * ((Public_data.data.hand_cards.length-1)/2));
}else{//双数
var anix = id_config.sta_posi_x[0] - (id_config.car_intervalx[0] * (Public_data.data.hand_cards.length/2)) + id_config.car_intervalx[0]/2;
}
for (var i = 0;i < id_config.hc_len[Utl.getMySeat()]; i++) {
if (i < Public_data.data.hand_cards.length) {
set_self(id_config.car_start[0]+i,43,Public_data.data.hand_cards[i]%54+1,0,0);
}
set_self(id_config.car_start[0]+i,18,anix,0,0);
set_self(id_config.car_start[0]+i,37,0,0,0);
}
}
Hand_card.show = function(type){
//显示手牌
for (var i = 0;i < Public_data.data.hand_cards.length; i++) {
set_self(id_config.car_start[0]+i,37,type,0,0);
}
}
Hand_card.ini_y = function(type){
//手牌y重置
for (var i = 0; i < id_config.hc_len[Utl.getMySeat()]; i++) {
if (get_self(id_config.car_start[0]+i,37,0,0,0)) {
set_self(id_config.car_start[0]+i,19,id_config.sta_posi_y[0],0,0);
}
}
}
Hand_card.ini = function(){
//牌位置初始化
//第一张牌的x坐标
if (Public_data.data.hand_cards.length%2) {//单数
set_self(id_config.car_start[0],18,id_config.sta_posi_x[0] - (id_config.car_intervalx[0] * ((id_config.hc_len[Utl.getMySeat()]-1)/2)),0,0);
}else{//双数
set_self(id_config.car_start[0],18,id_config.sta_posi_x[0] - (id_config.car_intervalx[0] * (id_config.hc_len[Utl.getMySeat()]/2)) + id_config.car_intervalx[0]/2,0,0);
}
for (var i = 0;i < id_config.hc_len[Utl.getMySeat()]; i++) {
//sta_posi_x 初始x car_intervalx 间距
set_self(id_config.car_start[0]+i,18,get_self(id_config.car_start[0],18,0,0,0)+id_config.car_intervalx[0]*i,0,0);
set_self(id_config.car_start[0]+i,19,id_config.sta_posi_y[0],0,0);
set_self(id_config.car_start[0]+i,20,id_config.wide[0],0,0);
set_self(id_config.car_start[0]+i,21,id_config.high[0],0,0);
set_self(id_config.car_start[0]+i,37,0,0,0);
}
}
Hand_card.sortleft = function(seat,hand_cards){//左边排位子
for (var i = 0;i < hand_cards.length; i++) {
if (i>=id_config.car_len[seat]) {
//sta_posi_x 初始x car_intervalx 间距
set_self(id_config.car_start[seat]+i,18,id_config.sta_posi_x[seat]+id_config.car_intervalx[seat]*(i-id_config.car_len[seat]),0,0);
set_self(id_config.car_start[seat]+i,19,id_config.sta_posi_y[seat]+id_config.car_intervaly[seat],0,0);
set_self(id_config.car_start[seat]+i,20,id_config.wide[seat],0,0);
set_self(id_config.car_start[seat]+i,21,id_config.high[seat],0,0);
set_self(id_config.car_start[seat]+i,43,hand_cards[i]%54+1,0,0);
set_self(id_config.car_start[seat]+i,37,1,0,0);
}else{
//sta_posi_x 初始x car_intervalx 间距
set_self(id_config.car_start[seat]+i,18,id_config.sta_posi_x[seat]+id_config.car_intervalx[seat]*i,0,0);
set_self(id_config.car_start[seat]+i,19,id_config.sta_posi_y[seat],0,0);
set_self(id_config.car_start[seat]+i,20,id_config.wide[seat],0,0);
set_self(id_config.car_start[seat]+i,21,id_config.high[seat],0,0);
set_self(id_config.car_start[seat]+i,43,hand_cards[i]%54+1,0,0);
set_self(id_config.car_start[seat]+i,37,1,0,0);
}
}
};
Hand_card.sortright = function(seat,hand_cards){//右边排位子
//第一张牌的x坐标
if (hand_cards.length<=id_config.car_len[seat]) {
set_self(id_config.car_start[seat],18,id_config.sta_posi_x[seat] - (id_config.car_intervalx[seat] * (hand_cards.length-1)),0,0);
} else {
set_self(id_config.car_start[seat],18,id_config.sta_posi_x[seat] - (id_config.car_intervalx[seat] * 9),0,0);
}
for (var i = 0;i < hand_cards.length; i++) {
if (i>=id_config.car_len[seat]) {
var diyix = id_config.sta_posi_x[seat] - (id_config.car_intervalx[seat] * (hand_cards.length-11));
//sta_posi_x 初始x car_intervalx 间距
set_self(id_config.car_start[seat]+i,18,diyix+id_config.car_intervalx[seat]*(i-id_config.car_len[seat]),0,0);
set_self(id_config.car_start[seat]+i,19,id_config.sta_posi_y[seat]+id_config.car_intervaly[seat],0,0);
set_self(id_config.car_start[seat]+i,20,id_config.wide[seat],0,0);
set_self(id_config.car_start[seat]+i,21,id_config.high[seat],0,0);
set_self(id_config.car_start[seat]+i,43,hand_cards[i]%54+1,0,0);
set_self(id_config.car_start[seat]+i,37,1,0,0);
}else{
//sta_posi_x 初始x car_intervalx 间距
set_self(id_config.car_start[seat]+i,18,get_self(id_config.car_start[seat],18,0,0,0)+id_config.car_intervalx[seat]*i,0,0);
set_self(id_config.car_start[seat]+i,19,id_config.sta_posi_y[seat],0,0);
set_self(id_config.car_start[seat]+i,20,id_config.wide[seat],0,0);
set_self(id_config.car_start[seat]+i,21,id_config.high[seat],0,0);
set_self(id_config.car_start[seat]+i,43,hand_cards[i]%54+1,0,0);
set_self(id_config.car_start[seat]+i,37,1,0,0);
}
}
};
Hand_card.sortin = function(seat,hand_cards){//中间排位子
//第一张牌的x坐标
if (hand_cards.length%2) {//单数
set_self(id_config.car_start[seat],18,id_config.sta_posi_x[seat] - (id_config.car_intervalx[seat] * ((hand_cards.length-1)/2)),0,0);
}else{//双数
set_self(id_config.car_start[seat],18,id_config.sta_posi_x[seat] - (id_config.car_intervalx[seat] * (hand_cards.length/2)) + id_config.car_intervalx[seat]/2,0,0);
}
for (var i = 0;i < hand_cards.length; i++) {
//sta_posi_x 初始x car_intervalx 间距
set_self(id_config.car_start[seat]+i,18,get_self(id_config.car_start[seat],18,0,0,0)+id_config.car_intervalx[seat]*i,0,0);
set_self(id_config.car_start[seat]+i,19,id_config.sta_posi_y[seat],0,0);
set_self(id_config.car_start[seat]+i,20,id_config.wide[seat],0,0);
set_self(id_config.car_start[seat]+i,21,id_config.high[seat],0,0);
set_self(id_config.car_start[seat]+i,43,hand_cards[i]%54+1,0,0);
set_self(id_config.car_start[seat]+i,37,1,0,0);
}
};
var Putcards = {};
Putcards.sort = function(){//打牌排位子
//出牌摆放
for (var i = 0; i < Public_data.data.maxman ;i ++) {
if (Public_data.data.playerlist[0][i] == 1 || Public_data.data.playerlist[0][i] == 3) {
if (Public_data.data.dealid[i].length) {
if (id_config.car_position[Utl.changeToStatus(i)] == 0) {//左边
Putcards.sortleft(i);
}else if (id_config.car_position[Utl.changeToStatus(i)] == 1) {//中间
Putcards.sortin(i);
}else if (id_config.car_position[Utl.changeToStatus(i)] == 2) {//右边
Putcards.sortright(i);
}
set_self(id_config.pass_id + Utl.changeToStatus(i),37,0,0,0);
}
}else if (Public_data.data.playerlist[0][i] == 2) {
set_self(id_config.pass_id + Utl.changeToStatus(i),37,1,0,0);
Putcards.hide(i);
}else if (Public_data.data.playerlist[0][i] == 4) {
set_self(id_config.pass_id + Utl.changeToStatus(i),37,0,0,0);
for(var j = 0;j < id_config.hc_len[Utl.getMySeat()]; j++){
set_self(id_config.car_start[Utl.changeToStatus(i)] + j,37,0,0,0);
}
}else if (Public_data.data.playerlist[0][i] == -1) {
set_self(id_config.pass_id + Utl.changeToStatus(i),37,0,0,0);
Putcards.hide(i);
}
}
};
Putcards.hide = function(seat){
//隐藏出牌
for (var i = 0;i<id_config.hc_len[seat];i++) {
if (get_self(i+id_config.car_start[Utl.changeToStatus(seat)],19,0,0,0) == id_config.put_posi_y[Utl.changeToStatus(seat)]) {
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,37,0,0,0);
}
}
};
Putcards.sortleft = function(seat){//左边排位子
//第一张牌的id
var cardid = id_config.car_start[Utl.changeToStatus(seat)] + id_config.hc_len[seat] - Public_data.data.dealid[seat].length;
for (var i = 0;i < Public_data.data.dealid[seat].length; i++) {
if (i>=Public_data.data.dealid[seat].length) {
//put_posi_x 初始x put_intervalx 间距
set_self(cardid+i,18,id_config.put_posi_x[Utl.changeToStatus(seat)]+id_config.put_intervalx[Utl.changeToStatus(seat)]*(i-id_config.put_len[seat]),0,0);
set_self(cardid+i,19,id_config.put_posi_y[Utl.changeToStatus(seat)]+id_config.put_intervaly[seat],0,0);
set_self(cardid+i,20,id_config.put_wide[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,21,id_config.put_high[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,43,Public_data.data.dealid[seat][i]%54+1,0,0);
set_self(cardid+i,37,1,0,0);
}else{
//put_posi_x 初始x put_intervalx 间距
set_self(cardid+i,18,id_config.put_posi_x[Utl.changeToStatus(seat)]+id_config.put_intervalx[Utl.changeToStatus(seat)]*i,0,0);
set_self(cardid+i,19,id_config.put_posi_y[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,20,id_config.put_wide[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,21,id_config.put_high[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,43,Public_data.data.dealid[seat][i]%54+1,0,0);
set_self(cardid+i,37,1,0,0);
}
}
};
Putcards.sortright = function(seat){//右边排位子
//第一张牌的id
var cardid = id_config.car_start[Utl.changeToStatus(seat)] + id_config.hc_len[seat] - Public_data.data.dealid[seat].length;
//第一张牌的x坐标
set_self(cardid,18,id_config.put_posi_x[Utl.changeToStatus(seat)] - id_config.put_intervalx[Utl.changeToStatus(seat)] * (Public_data.data.dealid[seat].length-1),0,0);
for (var i = 0;i < Public_data.data.dealid[seat].length; i++) {
if (i>=Public_data.data.dealid[seat].length) {
var diyix = id_config.car_start[Utl.changeToStatus(seat)] - (id_config.put_intervalx[Utl.changeToStatus(seat)] * (Public_data.data.dealid[seat].length-11));
//sta_posi_x 初始x car_intervalx 间距
set_self(cardid+i,18,get_self(cardid,18)+id_config.put_intervalx[Utl.changeToStatus(seat)]*(i-id_config.put_len[seat]),0,0);
set_self(cardid+i,19,id_config.put_posi_y[Utl.changeToStatus(seat)]+id_config.put_intervaly[seat],0,0);
set_self(cardid+i,20,id_config.put_wide[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,21,id_config.put_high[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,43,Public_data.data.dealid[seat][i]%54+1,0,0);
set_self(cardid+i,37,1,0,0);
}else{
//sta_posi_x 初始x car_intervalx 间距
set_self(cardid+i,18,get_self(cardid,18)+id_config.put_intervalx[Utl.changeToStatus(seat)]*i,0,0);
set_self(cardid+i,19,id_config.put_posi_y[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,20,id_config.put_wide[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,21,id_config.put_high[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,43,Public_data.data.dealid[seat][i]%54+1,0,0);
set_self(cardid+i,37,1,0,0);
}
}
};
Putcards.sortin = function(seat){//中间排位子
//第一张牌的id
var cardid = id_config.car_start[Utl.changeToStatus(seat)] + id_config.hc_len[seat] - Public_data.data.dealid[seat].length;
//第一张牌的x坐标
if (Public_data.data.dealid.length%2) {//单数
set_self(cardid,18,id_config.put_posi_x[Utl.changeToStatus(seat)] - (id_config.put_intervalx[Utl.changeToStatus(seat)] * ((Public_data.data.dealid[seat].length - 1)/2)),0,0);
}else{//双数
set_self(cardid,18,id_config.put_posi_x[Utl.changeToStatus(seat)] - (id_config.put_intervalx[Utl.changeToStatus(seat)] * (Public_data.data.dealid[seat].length/2)) + id_config.put_intervalx[Utl.changeToStatus(seat)]/2,0,0);
}
for (var i = 0;i < Public_data.data.dealid[seat].length; i++) {
//sta_posi_x 初始x car_intervalx 间距
set_self(cardid+i,18,get_self(cardid,18)+id_config.put_intervalx[Utl.changeToStatus(seat)]*i,0,0);
set_self(cardid+i,19,id_config.put_posi_y[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,20,id_config.put_wide[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,21,id_config.put_high[Utl.changeToStatus(seat)],0,0);
set_self(cardid+i,43,Public_data.data.dealid[seat][i]%54+1,0,0);
set_self(cardid+i,37,1,0,0);
}
};
Putcards.yinchang = function(seat){//打牌隐藏
for (var i =0;i<id_config.hc_len[seat];i++) {
if (get_self(id_config.car_start[seat]+i,19,0,0,0) == id_config.put_posi_y[seat]) {
set_self(id_config.car_start[seat]+i,37,0,0,0);
}
}
};
Hand_card.click = function(gameid, spid, downx, downy, spid_up, upx, upy, timelong, no1, no2){
var y_up = id_config.sta_posi_y - id_config.intervalh; //点击后牌的y坐标
var y_down = id_config.sta_posi_y; //点击前牌的y坐标
if (get_self(spid,19,0,0,0)==y_up) {
set_self(spid,19,y_down,0,0);
}
else if (get_self(spid,19,0,0,0)==y_down){
set_self(spid,19,y_up,0,0);
}
if(id_config.but_id){
for (var i =0;i<id_config.hc_len[Utl.getMySeat()];i++) {
if (get_self(i+id_config.car_start[0],19,0,0,0)==y_up) {
set_self(id_config.but_id,41,1,0,0);
set_self(id_config.but_id,35,255,0,0);
break;
}else{
set_self(id_config.but_id,41,0,0,0);
set_self(id_config.but_id,35,100,0,0);
}
}
}
}
Hand_card.click_up = function(){
//选中牌后弹起时调用
var y_up = id_config.sta_posi_y[0] - id_config.intervalh; //点击后牌的y坐标
var y_down = id_config.sta_posi_y[0]; //点击前牌的y坐标
for(var i = 0; i < id_config.hc_len[Utl.getMySeat()]; i++){
set_self(id_config.mask+i,37,0,0,0);//隐藏遮罩
}
for (var i = 0; i < Public_data.select.length; i++) {
if (get_self(Public_data.select[i],19,0,0,0)==y_down) {
set_self(Public_data.select[i],19,y_up,0,0);
}
else if(get_self(Public_data.select[i],19,0,0,0)==y_up){
set_self(Public_data.select[i],19,y_down,0,0);
}
}
paidz();
mpbs(1);
if(id_config.but_id){
for (var i =0;i<id_config.hc_len[Utl.getMySeat()];i++) {
if (get_self(i+id_config.car_start[0],19,0,0,0)==y_up) {
set_self(id_config.but_id,41,1,0,0);
set_self(id_config.but_id,35,255,0,0);
break;
}else{
set_self(id_config.but_id,41,0,0,0);
set_self(id_config.but_id,35,100,0,0);
}
}
}
Public_data.select = [];
Public_data.clickid = 0;
Public_data.clickiniid = 0;
}
Hand_card.outmove = function(gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1){
for(var i = 0; i < id_config.hc_len[Utl.getMySeat()]; i++){
set_self(id_config.mask+i,37,0,0,0);//隐藏遮罩
}
Public_data.select = []//选中牌清空
Public_data.clickid = gameabc_check_click(movex,movey);
if(Public_data.clickiniid < Public_data.clickid){//往右边移了
for(var i = 0; i < id_config.hc_len[Utl.getMySeat()]; i++){
if (id_config.car_start[0]+i >= Public_data.clickiniid && id_config.car_start[0]+i <= Public_data.clickid) {
set_self(id_config.mask+i,37,1,0,0);
set_self(id_config.mask+i,19,get_self(id_config.car_start[0]+i,19),0,0);
set_self(id_config.mask+i,18,get_self(id_config.car_start[0]+i,18),0,0);
Public_data.select.push(id_config.car_start[0]+i);
}
}
}else if (Public_data.clickiniid > Public_data.clickid) {//往左边移了
for(var i = 0; i < id_config.hc_len[Utl.getMySeat()]; i++){
if (id_config.car_start[0]+i <= Public_data.clickiniid && id_config.car_start[0]+i >= Public_data.clickid) {
set_self(id_config.mask+i,37,1,0,0);
set_self(id_config.mask+i,19,get_self(id_config.car_start[0]+i,19),0,0);
set_self(id_config.mask+i,18,get_self(id_config.car_start[0]+i,18),0,0);
Public_data.select.push(id_config.car_start[0]+i);
}
}
}else{//还在这张牌
Public_data.select = [Public_data.clickiniid];
set_self(id_config.mask+(Public_data.select-id_config.car_start[0]),37,1,0,0);
set_self(id_config.mask+(Public_data.select-id_config.car_start[0]),19,get_self(id_config.car_start[0]+(Public_data.select-id_config.car_start[0]),19),0,0);
set_self(id_config.mask+(Public_data.select-id_config.car_start[0]),18,get_self(id_config.car_start[0]+(Public_data.select-id_config.car_start[0]),18),0,0);
}
}
Hand_card.handcard_move = function(gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1){
//手牌滑动
if (Public_data.select.length &&( gameabc_check_click(movex,movey) < id_config.car_start[0] || gameabc_check_click(movex,movey) >= id_config.car_start[0] + id_config.hc_len[Utl.getMySeat()])) {
Public_data.outmove = 1;
}
for (var i = 0;i<id_config.hc_len[Utl.getMySeat()];i++) {
if(Public_data.outmove == 0){//没出去过
if (gameabc_check_click(movex,movey)== i+id_config.car_start[0] && get_self(i+id_config.car_start[0],37) &&
(get_self(gameabc_check_click(movex,movey),19) == id_config.sta_posi_y[0] || get_self(gameabc_check_click(movex,movey),19) == id_config.sta_posi_y[0] - id_config.intervalh)) {
if(Public_data.clickid != gameabc_check_click(movex,movey)){
if(get_self(id_config.mask+i,37) == 0){//遮罩是隐藏的
//显示遮罩 添加选中
//Hand_card.mousemove (gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1);//手牌滑动
set_self(id_config.mask+i,37,1,0,0);
set_self(id_config.mask+i,19,get_self(id_config.car_start[0]+i,19),0,0);
set_self(id_config.mask+i,18,get_self(id_config.car_start[0]+i,18),0,0);
Public_data.select.push(gameabc_check_click(movex,movey));
Public_data.clickid = gameabc_check_click(movex,movey);
}else{
if(Public_data.clickid > gameabc_check_click(movex,movey)){
//隐藏遮罩删除选中
set_self(id_config.mask+i+1,37,0,0,0);
Public_data.select.splice(Public_data.select.length-1,1);
Public_data.clickid = gameabc_check_click(movex,movey);
}else{
//隐藏遮罩删除选中
set_self(id_config.mask+i-1,37,0,0,0);
Public_data.select.splice(Public_data.select.length-1,1);
Public_data.clickid = gameabc_check_click(movex,movey);
}
}
}
}
}else if (Public_data.outmove == 1 && gameabc_check_click(movex,movey) >= id_config.car_start[0] && gameabc_check_click(movex,movey) < id_config.car_start[0] + id_config.hc_len[Utl.getMySeat()] &&
(get_self(gameabc_check_click(movex,movey),19) == id_config.sta_posi_y[0] || get_self(gameabc_check_click(movex,movey),19) == id_config.sta_posi_y[0] - id_config.intervalh)) {
Hand_card.outmove(gameid, spid, downx, downy, movex,movey ,timelong,offmovex, offmovey, no1);//移动到外面去了
}
}
}
Hand_card.handcard_down = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2){
//手牌选中
for(var i = 0;i<id_config.hc_len[Utl.getMySeat()];i++){
if (spid_down == id_config.car_start[0]+i&&(get_self(spid_down,19) == id_config.sta_posi_y[0] || get_self(spid_down,19) == id_config.sta_posi_y[0] - id_config.intervalh)) {
Public_data.select.push(spid_down);
Public_data.clickid = spid_down;
Public_data.clickiniid = spid_down;
set_self(id_config.mask+i,37,1,0,0);
set_self(id_config.mask+i,19,get_self(id_config.car_start[0]+i,19),0,0);
set_self(id_config.mask+i,18,get_self(id_config.car_start[0]+i,18),0,0);
break;
}
}
}

View File

@@ -0,0 +1,300 @@
//接收数据
Public_data.begin = function(_msg){
//开始
aset = cls_doudizhu_aset.New();//创建牌桌
for (var i = 0; i < aset.cardlist.length; i++) {
if (cls_doudizhu_card.GetNumber(aset.cardlist[i]) == 1) {
cls_doudizhu_card.SetArithN(aset.cardlist[i],14);
} else if (cls_doudizhu_card.GetNumber(aset.cardlist[i]) == 2){
cls_doudizhu_card.SetArithN(aset.cardlist[i],16);
}
}
Public_data.Initialization(); //初始化
Public_data.data.roomtype = _msg.data.roomtype; //房间类型
Public_data.data.num = _msg.data.num; //局数
Public_data.data.tuoguan = _msg.data.tuoguan; //托管
Public_data.data.maxman = _msg.data.maxman; //最大人数
Public_data.data.grade = _msg.data.grade; //总分
Public_data.data.gold_score = _msg.data.gold_score; //房卡房金币场的总分
Public_data.data.gold = _msg.data.gold; //实时金币数
Public_data.data.stage = _msg.data.stage; //当前阶段
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
config_carlen();//设置牌长度
cards_interval();//设置牌间距
}
Public_data.dealcard = function(_msg){
//发牌
Public_data.data.hand_cards = _msg.data.hand_cards; //手牌
Public_data.data.hand_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.hand_cards)
,[1,3]);
Public_data.data.hand_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.hand_cards);
Public_data.data.control = _msg.data.control; //当前叫分控制权
Public_data.data.rest = _msg.data.rest; //剩余牌数量
Public_data.data.stage = _msg.data.stage; //当前阶段
Public_data.data.mp_zt = _msg.data.mp_zt; //明牌状态
Public_data.data.team_cards = _msg.data.team_cards; //明牌id
mppx();
Public_data.data.bei = _msg.data.bei; //当前倍数
Public_data.data.down_score = _msg.data.down_score; //底分
}
Public_data.lootbanket = function(_msg){
//抢庄
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
Public_data.data.down_score = _msg.data.down_score; //当前底分
Public_data.data.control = _msg.data.control; //当前叫分控制权
Public_data.data.stage = _msg.data.stage; //当前阶段
Public_data.data.banker = _msg.data.banker; //庄
Public_data.data.undercards = _msg.data.undercards; //底牌
game.seat = _msg.data.seat; //操作的人
Public_data.data.bei = _msg.data.bei; //当前倍数
Public_data.data.di_bei = _msg.data.di_bei; //底牌倍数
Public_data.data.team_cards = _msg.data.team_cards; //明牌id
Public_data.data.rest = _msg.data.rest; //剩余牌数量
mppx();
if(Public_data.data.banker == Utl.getMySeat()){
Public_data.data.hand_cards = _msg.data.hand_cards; //手牌
Public_data.data.hand_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.hand_cards)
,[1,3]);
Public_data.data.hand_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.hand_cards);
}
}
Public_data.more = function(_msg){
//加倍
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
Public_data.data.bei = _msg.data.bei; //当前倍数
game.seat = _msg.data.seat; //操作的人
}
Public_data.mingpai = function(_msg){
//明牌
Public_data.data.team_cards = _msg.data.team_cards; //明牌id
Public_data.data.bei = _msg.data.bei; //当前倍数
game.seat = _msg.data.seat; //操作的人
Public_data.data.mp_zt = _msg.data.mp_zt; //明牌状态
mppx();
}
Public_data.playcards = function(_msg){
//出牌
Public_data.data.stage = _msg.data.stage; //当前阶段
Public_data.data.jieguo = _msg.data.jieguo; //结果 1能出 0不能出
game.seat = _msg.data.seat; //出牌的座位号
Public_data.data.cardtype = _msg.data.cardtype; //牌型
Public_data.data.control = _msg.data.control; //当前控制权
Public_data.data.dealid = _msg.data.dealid; //所有人出的牌
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
Public_data.data.rest = _msg.data.rest; //剩余牌数量
Public_data.data.maxplayer = _msg.data.maxplayer; //当前最大出牌人
Public_data.data.end = _msg.data.end; //2是大局
Public_data.data.point_cards = _msg.data.point_cards ; //提示牌型
Public_data.data.bei = _msg.data.bei; //当前倍数
Public_data.data.caozuo = _msg.data.caozuo; //出牌次数
Public_data.data.winner = _msg.data.winner; //谁赢了
Public_data.data.team_cards = _msg.data.team_cards; //明牌id
if(game.seat == Utl.getMySeat() && Public_data.data.jieguo == 1){
if (Public_data.data.caozuo > 0) {
button_show(0);
putcard_ani(_msg);//手牌动画
mpbs(0);//明牌标识
//set_self(1021,37,0,0,0);
}
}
mppx();
game.tishi = 0;
//Public_data.data.cardtype = [[4,1],[],12]; //牌型
}
Public_data.display = function(_msg){
//不出
Public_data.data.stage = _msg.data.stage; //当前阶段
game.seat = _msg.data.seat; //出牌的座位号
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
Public_data.data.caozuo = _msg.data.caozuo; //出牌次数
Public_data.data.dealid = _msg.data.dealid; //所有人出的牌
Public_data.data.control = _msg.data.control; //当前控制权
Public_data.data.maxplayer = _msg.data.maxplayer; //当前最大出牌人
Public_data.data.cardtype = _msg.data.cardtype; //牌型
Public_data.data.point_cards = _msg.data.point_cards ; //提示牌型
game.tishi = 0;
}
Public_data.aset = function(_msg){
//小局
Public_data.data.stage = _msg.data.stage; //当前阶段
Public_data.data.bj_score = _msg.data.bj_score; //本局得分
Public_data.data.rest_cards = _msg.data.rest_cards; //剩余牌id
Public_data.data.winner = _msg.data.winner; //谁赢了
Public_data.data.end = _msg.data.end; //2是大局
Public_data.data.grade = _msg.data.grade; //总分
Public_data.data.gold_score = _msg.data.gold_score; //房卡房金币场的总分
Public_data.data.gold = _msg.data.gold; //实时金币数
game.shijian = _msg.data.shijian; //大局结算时间
Public_data.data.mp_zt = _msg.data.mp_zt; //明牌状态
Public_data.data.chuntian = _msg.data.chuntian; //春天
}
Public_data.ready = function(_msg){
//准备
Public_data.data.playerlist = _msg.data.playerlist; //玩家状态
Public_data.data.seat = _msg.data.seat; //出牌的座位号
Public_data.data.mp_zt = _msg.data.mp_zt; //明牌状态
}
Public_data.help_play = function(_msg){
//托管
Public_data.data.tuoguan = _msg.data.tuoguan; //托管
}
Public_data.aset_recovery = function(_msg){
//小局回放
Public_data.data.bj_score = _msg.data.gameinfo2.pjhf[dijiju][_msg.data.gameinfo2.pjhf[dijiju].length-1][0]; //本局得分
Public_data.data.winner = _msg.data.gameinfo2.pjhf[dijiju][_msg.data.gameinfo2.pjhf[dijiju].length-1][3]; //谁赢了
Public_data.data.di_bei = _msg.data.gameinfo2.di_bei[dijiju]; //底牌倍数
Public_data.data.banker = _msg.data.gameinfo2.banker[dijiju]; //庄
Public_data.data.bei = _msg.data.gameinfo2.bei[dijiju]; //当前倍数
Public_data.data.down_score = _msg.data.gameinfo2.down_score[dijiju]; //底分
}
Public_data.Recovery = function(){
//回放
//Public_data.recovery.pjhf = _msg.data.pjhf; //牌局回放数据 pjhf :[[出牌状态,座位号,[每个人的牌id:[],[]],[手牌ID]],[],[],[].....]
var seat = Public_data.recovery.pjhf[Public_data.recovery.num][1];
Public_data.data.bei = Public_data.recovery.pjhf[Public_data.recovery.num][7]; //当前倍数
Game_Modify.recovery_step(Public_data.recovery.num);
Public_data.data.dealid = Public_data.recovery.pjhf[Public_data.recovery.num][2];//出牌
Public_data.data.playerlist[0] = Public_data.recovery.pjhf[Public_data.recovery.num][4];//玩家状态
Public_data.data.end = Public_data.recovery.pjhf[Public_data.recovery.num][9];//玩家状态
if (Public_data.recovery.num+1<Public_data.recovery.pjhf.length) {
Public_data.data.control = Public_data.recovery.pjhf[Public_data.recovery.num+1][1];
if (Public_data.data.end == -1) {
clock(1);
} else {
clock(0);
}
} else {
clock(0);
}
//隐藏牌
for (var i = 0;i < id_config.hc_len[Utl.changeToStatus(seat)]; i++) {
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,37,0,0,0);
}
if(Public_data.recovery.pjhf[Public_data.recovery.num][4][seat] == 2){
//不要
set_self(id_config.pass[Utl.changeToStatus(seat)],37,1,0,0);
for(var i = 0; i<Public_data.data.maxman;i++){
Public_data.data.hand_cards = Public_data.recovery.pjhf[Public_data.recovery.num][3][i];//手牌
Public_data.data.hand_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.hand_cards)
,[1,3]);
Public_data.data.hand_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.hand_cards);
Hand_card.sort(i,Public_data.data.hand_cards);
}
Putcards.sort();
}else if(Public_data.recovery.pjhf[Public_data.recovery.num][4][seat] == 4){
//彻底打完
set_self(id_config.pass[seat],37,0,0,0);
}else {
//打牌
if (Public_data.recovery.pjhf.length>Public_data.recovery.num+1) {
var xiaciseat = Public_data.recovery.pjhf[Public_data.recovery.num+1][1];
Putcards.yinchang(Utl.changeToStatus(xiaciseat));
}
//隐藏不要
set_self(id_config.pass[seat],37,0,0,0);
for(var i = 0; i<Public_data.data.maxman;i++){
Public_data.data.hand_cards = Public_data.recovery.pjhf[Public_data.recovery.num][3][i];//手牌
Public_data.data.hand_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.hand_cards)
,[1,3]);
Public_data.data.hand_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.hand_cards);
Hand_card.sort(i,Public_data.data.hand_cards);
}
Putcards.sort();
}
}

View File

@@ -0,0 +1,111 @@
//重连
var Updata_ui ={
}
Updata_ui.net = function(_msg){//在重连函数中调用
Public_data.Initialization();
//保存数据
Public_data.data = _msg;
config_carlen();//设置牌长度
cards_interval();//设置牌间距
//if (Utl.getIsDebugger() ==1) {
//Public_data.data.hand_cards = _msg.data.hand_cards[Utl.getMySeat()];//手牌
//}else{
//}
Public_data.data.hand_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.hand_cards)
,[1,3]);
Public_data.data.hand_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.hand_cards);
mppx();
//重绘
Updata_ui.redraw();
if (Utl.getIsInfinite() == 0) {
for(var i=0;i<Public_data.data.maxman;i++)
{
if(Public_data.data.roomtype[3]==2){
Utl.changeBean(Public_data.data.gold_score[i],i);
}
Utl.setGrade(i,Public_data.data.grade[i]);
}
} else {
for(var i=0;i<Public_data.data.maxman;i++)
{
Utl.setGrade(i,Utl.getBeanBySeat(i));
}
}
}
Updata_ui.redraw = function(){//在重画函数中调用
chonghui = 1;
UI.hide();
game_num(1);//局数显示
trus(1);//托管
difenxs();//底分显示
Infinite.updata(Public_data.data.stage);
if (Public_data.data.stage < 3 ) {
dipaishu();//底牌数显示
beixs();//倍数显示
}
if (Public_data.data.banker == Utl.getMySeat()) {//自己是地主
//id_config.car_intervalx[0] = 59;
}
//Public_data.data.stage = -1; //牌桌当前阶段 0发牌 1加倍 2打牌 3小局 4大局
switch (Public_data.data.stage){
case 0:
UI.dealcard.update();//发牌
break;
case 1:
//加倍
UI.more.update();
break;
case 2:
//出牌
UI.playcards.update();
break;
case 3:
//小局
if (Public_data.data.playerlist[1][Utl.getMySeat()] == 1) {//小局还是准备
UI.ready.update();
}else{
UI.aset.update();
}
break;
}
chonghui = 0;
}

View File

@@ -0,0 +1,55 @@
gameabc_face.mouseup_4 = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
{
//请在下面输入您的代码
Utl.openSnrOption(0,[1, 1, 1, 1, 1, [0,1,[1,1000,1]]],"房间描述信息");
//var data={};
//data.agentid=GameData.AgentId;
//data.playerid=C_Player.playerid;
//data.taskid=ConstVal.ShareTaskId;
//Net.Send_player_finish_task(data);
//var roomcode=111111;
//if(String(roomcode).length<6){
//GameData.shortCode = roomcode;
//Logic.saveShortCode(GameData.shortCode);
//}else{
//GameData.shortCode = "";
//Logic.saveShortCode("");
//}
};
gameabc_face.mouseup_578 = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
{
//请在下面输入您的代码
GameUI.updateSnrOption();
};
gameabc_face.mouseup_3 = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
{
//请在下面输入您的代码
};
gameabc_face.mouseup_405 = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
{
//请在下面输入您的代码
};
gameabc_face.mouseup_113 = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
{
//请在下面输入您的代码
};

View File

@@ -0,0 +1,48 @@
gameabc_face.mouseup_4 = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
{
//请在下面输入您的代码
};
gameabc_face.mouseup_149 = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
{
//请在下面输入您的代码
};
gameabc_face.mouseup_346 = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
{
//请在下面输入您的代码
};
gameabc_face.mouseup_68 = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
{
//请在下面输入您的代码
var reg = /[^0-9]/g;
var text = Func.gamepastetext();
text = text.replace(reg,"");
console.log(text);
};
var datacount=0;
gameabc_face.mouseup_286 = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2)
{
//请在下面输入您的代码
var data=
{
a:[1,2,4],
b:{
b1:"b1",
b2:[3,5,7]
},
c:datacount
};
datacount++;
Utl.saveGradeInfo(data);
};

View File

@@ -0,0 +1,465 @@
/*================= 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;
}
}

View File

@@ -0,0 +1,744 @@
/*===================== 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=1shun=1
对子tong=2shun=1
两连对tong=2shun=2
三连对tong=2shun=3
三个tong=3shun=1
飞机tong=3shun=2
四个tong=4shun=1
五连顺tong=1shun=5
六连顺tong=1shun=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的物理大小是1K的物理大小是131和13是不连续的此时需要将A的算法大小设置成14将K的算法大小设置成1314和13是连续的表示A和K可以连牌。再比如王牌和A是不能作为连牌出现的则需要将王的算法大小设置成16将A的算法大小设置成1416和14不是连续的表示王和A不能连牌。
2设置算法大小时要求做到数字大小则表示是牌的大小。比如A的物理大小是1K的物理大小是131比13小但A比K大此时需要将A的算法大小设置成14将K的算法大小设置成1314比13大表示A比K大。再比如王牌比A大则需要将王的算法大小设置成16将A的算法大小设置成1416大于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时则取单张的结果为2357
当options[0]=1时则取单张的结果为2
当options[0]=3时则取单张的结果为235。
第二位:取牌方向0-从小到大取结果1-从大到小取结果默认为0。
第三位:拆牌标志0-不拆牌1-拆牌默认为0。
比如,牌数组为[2,2,3,5,5,5,7]
当options[2]=0时则取单张时会不取对子的牌和三张的牌即结果为37
当options[2]=1时则取单张时会拆掉对子的牌和三张的牌即结果为2357。
第四位:一次标志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带1cardtypelist=[
[[3,1], [1,x,x,x], min_ArithN, max_ArithN],
[[1,1], [1,x,x,x], min_ArithN, max_ArithN]
]
3带2cardtypelist=[
[[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;
}
}

View File

@@ -0,0 +1,62 @@
var game ={};
aset = {};
yidongjuli = 0;
kaiqidonghua = 0; //动画开关
chupaidonghua = 0;//出牌动画开关
mingpaidonghua = 0;//明牌动画开关
zhuomian = 0;//桌面动画开关
zmcs = 0;//桌面抖动次数
wz = [];//底牌位置
dijiju = 0;
shengpaisound = [[0,0],[0,0],[0,0]];//报警次数
zhadan_ani = [0,0,0];
pifu = [0,[[1068,"#3b4972"],[1084,"#1b7a68"],[1085,"#956e34"]]];
game.config = 0;//配置
texiao = [1066,1065,1067,1068,1050,1051,1052,1053,1522,1070,1520,1056,1054,1055,1057,1058,1090,1091,1814,1815,1071,1073,1074,1075,1076,1077,1079,1933,1941];
chonghui = 0;
game.ini = function(){
game.roomtype = [];
game.seat = 0;//操作的人
game.shijian = "";//时间
yidongjuli = 0;
game.tishi = 0;
kaiqidonghua = 0; //动画开关
chupaidonghua = 0;//出牌动画开关
mingpaidonghua = 0;//明牌动画开关
zhuomian = 0;//桌面动画开关
zmcs = 0;//桌面抖动次数
wz = [];//底牌位置
dijiju = 0;
shengpaisound = [[0,0],[0,0],[0,0]];
zhadan_ani = [0,0,0];
for(var i = 0; i < 30; i++){
set_self(id_config.mask+i,41,0,0,0);//遮罩不可点
}
set_self(1021,41,0,0,0);//遮罩不可点
set_self(1600,41,0,0,0);//遮罩不可点
}

View File

@@ -0,0 +1,236 @@
var dealcard_ani_doend = function(id,sx,count,allend){
//发牌结束
if (id == id_config.car_start[0]+Public_data.data.hand_cards.length-1) {
if (sx == 18) {
if (Public_data.jieduan == 1) {//拉长结束
for(var i = 0;i<Public_data.data.hand_cards.length;i++){
play_ani(1,i+id_config.car_start[0],18,get_self(i+id_config.car_start[0],18,0,0,0),get_self(i+id_config.car_start[0],18,0,0,0)-i*3,0,50,0,0,0,1,0,0);
}
Public_data.jieduan = 2;
} else if (Public_data.jieduan == 0) {//拉长
for(var i = 0;i<Public_data.data.hand_cards.length;i++){
play_ani(1,i+id_config.car_start[0],18,get_self(i+id_config.car_start[0],18,0,0,0),get_self(i+id_config.car_start[0],18,0,0,0)+i*3,0,50,0,0,0,1,0,0);
}
Public_data.jieduan = 1;
}else if (Public_data.jieduan == 2) {//缩回结束 发牌结束
for (var i = 0; i < id_config.hc_len[Utl.getMySeat()]; i++) {
play_ani(0,id_config.car_start[0]+i,0);
}
id_config.clock_x[0] = 428;
if(Utl.getMySeat() == Public_data.data.control){
jiaofen();//叫分
xiafen();
}
mpbs(1);//明牌标识显示
clock(1);
}
}
}
}
var chapai_ani_doend = function(id,sx,count,allend){
//插牌结束
if (id >= id_config.car_start[0] && id < id_config.car_start[0] + id_config.hc_len[Utl.getMySeat()]) {
if (sx == 19 && chupaidonghua == 0 &&kaiqidonghua ==2) {
kaiqidonghua = 0;
//插牌
set_group(204,37,0,0,0);
jiabeixs();
Hand_card.sort(Utl.getMySeat(),Public_data.data.hand_cards);//手牌
clock(1); //时钟显示
paidz();//牌上地主显示
mpbs(1);//明牌标识
}
if(sx == 18){
if (kaiqidonghua == 1) {//插牌变宽
for (var i=0; i<id_config.hc_len[Utl.getMySeat()];i++) {
play_ani(0,id_config.car_start[0]+i,0);
}
kaiqidonghua = 2;
for(var i=0; i<wz.length;i++){
play_ani(1,id_config.car_start[0]+wz[i],19,get_self(id_config.car_start[0]+wz[i],19,0,0,0),id_config.sta_posi_y[0],0,300,0,0,0,1,0,0);
set_self(id_config.car_start[0]+wz[i],37,1,0,0);
}
}else if (chupaidonghua == 1) {//出牌结束
All_ani.put_cards.hide();
Hand_card.sort(Utl.getMySeat(),Public_data.data.hand_cards);//手牌
Putcards.sort();//出牌
paidz();//牌上地主显示
chupaidonghua = 0;
opencards();//明牌
mpbs(1);//明牌标识
if(Public_data.data.end == -1){
clock(1); //时钟显示
}
}
}
}
}
var mingpai_ani_doend = function(id,sx,count,allend){
//明牌结束
if (id== id_config.mingpaidi ||id_config.mingpaiquan == id||id_config.mingpaizi == id) {
All_ani.mingpai.show(mingpaidonghua);
}
}
var paixingdonghua = function(id,sx,count,allend){
//飞机结束
for (var i = 0;i < Public_data.data.maxman; i++) {
if (id == id_config.feijidi+i) {
set_self(id,37,0,0,0);
play_ani(1,id,0);
All_ani.feiji.show(0,id-3,i);
break;
}
}
if (id == id_config.dafeiji) {//大飞机隐藏
set_self(id,37,0,0,0);
All_ani.feiji.hide();
}
for (var i = 0;i < Public_data.data.maxman; i++) {
if (id == id_config.shunzidi+i) {
set_self(id,37,0,0,0);
play_ani(1,id,0);
All_ani.shunzi.show(0,id-3,i);
set_self(All_timer.feiji,57,All_timer.time.feiji,0,0);
break;
}
}
for (var i = 0;i < Public_data.data.maxman; i++) {
if (id == id_config.lianduidi+i) {
set_self(id,37,0,0,0);
play_ani(1,id,0);
All_ani.liandui.show(0,id-3,i);
set_self(All_timer.feiji,57,All_timer.time.feiji,0,0);
break;
}
}
}
var zhadanover = function(id,sx,count,allend){
//炸弹动画
for(var i = 0;i < Public_data.data.maxman; i++){
if (id == id_config.zhadan+i) {
if (sx == 18) {
if(zhadan_ani[i] == 1){//一阶段
play_ani(1,id,0);
All_ani.zhadan.show(2,id);
} else{//结束 显示爆炸
play_ani(1,id,0);
set_self(id,37,0,0,0);
set_self(id+3,37,1,0,0);
set_self(id+3,18,id_config.baozha_x[i],0,0);
set_self(id+3,19,id_config.baozha_y[i],0,0);
play_ani(1,id+3,43,1,18,0,1000,0,0,0,1,0,0);
//屏幕回缩
play_ani(1,149,33,130,100,0,200,0,0,0,1,0,0);
zhuomian = 1;//桌面动画开关
}
}
break;
}
}
}
var baozhaover = function(id,sx,count,allend){
//爆炸结束
for(var i = 0;i < Public_data.data.maxman; i++){
if (id == id_config.baozha+i) {
play_ani(1,id,0);
set_self(id,37,0,0,0);
break;
}
}
}
var yanover = function(id,sx,count,allend){
//烟结束
for(var i = 0;i < Public_data.data.maxman; i++){
if (id == id_config.yan+i) {
play_ani(1,id,0);
set_self(id,37,0,0,0);
play_ani(1,id-3,0);
set_self(id-3,37,0,0,0);
//All_ani.zhuomian.show();
break;
}
}
}
var zhuomianover = function(id,sx,count,allend){
//桌面结束
if (id == 149) {
if (sx == 33 && zhuomian == 1) {
play_ani(1,id,0);
set_self(149,33,100,0,0);
zhuomian = 0;
}
}
}
var zhadanziover = function(id,sx,count,allend){
//炸弹字结束
for(var i = 0;i < 6; i++){
if (id == id_config.zhadanzi+i && sx == 33) {
play_ani(1,id,0);
set_self(All_timer.zhadanzi,57,All_timer.time.zhadanzi,0,0);
break;
}
}
}
var chuntianover = function(id,sx,count,allend){
//炸弹字结束
if (id == 1002 && sx == 33) {
play_ani(1,id,0);
if (get_self(1002,33) == 130) {
play_ani(1,1002,33,130,100,0,100,0,0,0,1,0,0);
}
}
}

View File

@@ -0,0 +1,26 @@
//牌局类
var cls_doudizhu_aset = cls_aset2.NewClass();
var cls_doudizhu_card = cls_card2.NewClass();
cls_doudizhu_aset.declare = function(){
var paiju = cls_aset2.declare();
// paiju.number = o_desk.data.asetlist.length + 1;
return paiju;
};
//几副牌
cls_doudizhu_aset.get_cardcount = function(){
return 1;
};
//每人需要发多少张牌
cls_doudizhu_aset.get_dealcount = function(paiju , o_desk){
return 17;
};
//留几张牌
cls_doudizhu_aset.get_bottomcount = function(paiju , o_desk){
return 3;
};

View File

@@ -0,0 +1,228 @@
var cls_method_jdb = {};
cls_method_jdb.bsdh_utlmousemove = function(id,zuo,you,beishu,beishudikuangid,dikuangid,xianru,zuidabeishu,kd,spid,offmovex,zuixiao){
//id是拖动按钮的ID zuo最左边的坐标 you最右边的坐标 beishu是显示的倍数ID beishudikuangid是显示倍数底框的ID
//dikuangid底框ID
//nru入场限制ID zuidabeishu是配置中金币场最大的倍数 kd数字的宽度
var zuixiao = zuixiao || 1;
//zuixiao = 10;
if(spid==id&&get_self(id,18)<=you&&get_self(id,18)>=zuo){
set_self(spid,18,offmovex,1,0);
set_self(beishudikuangid,18,offmovex,1,0);
set_self(beishu,18,offmovex,1,0);
if(get_self(spid,18)<=zuo){
set_self(spid,18,zuo,0,0);
set_self(beishudikuangid,18,zuo - 9,0,0);
set_self(beishu,18,zuo + 9,0,0);
}
if(get_self(spid,18)>=you){
set_self(spid,18,you,0,0);
set_self(beishudikuangid,18,you - 9,0,0);
set_self(beishu,18,you + 9,0,0);
}
//difen = parseInt((get_self(id,18)-zuo)/(you - zuo) * zuidabeishu);
difen = parseInt(zuixiao +(get_self(id,18)-zuo)/(you - zuo) * (zuidabeishu-zuixiao));
set_self(dikuangid,18,zuo + 23,0,0);
if(get_self(spid,18)==zuo){
difen = zuixiao;
}else if(get_self(spid,18)==you){
difen = zuidabeishu;
}
if(difen <= zuixiao){
difen = zuixiao;
}else if(difen >= zuidabeishu){
difen = zuidabeishu;
}
xingzui = difen * 1000;
yidongjuli = get_self(id,18,0,0,0) - zuo + 1;
var cankao = (50 - (ifast_inttostr(difen).length) * kd) / 2;
set_self(beishu,18,get_self(id,18,0,0,0)+cankao,0,0);
set_self(beishu,20,kd*ifast_inttostr(difen).length,0,0);
set_self(beishu,7,difen);
set_self(xianru,20,kd*ifast_inttostr(xingzui).length,0,0);
set_self(xianru,7,xingzui);
Game_Modify.CreateRoomData.Type_5[0] = difen;
Game_Modify.CreateRoomData.Type_5[1] = xingzui;
Game_Modify.CreateRoomData.Type_5[2] = Utl.getRebateRange(difen,0)[0];
}
}
cls_method_jdb.bsdh_OpenCreateRoom = function(id,zuo,you,beishu,beishudikuangid,dikuangid,xianru,zuidabeishu,kd,zuixiao){
//滑动
var zuixiao = zuixiao || 1;
//zuixiao = 10;
difen = Game_Modify.CreateRoomData.Type_5[0];
xingzui = Game_Modify.CreateRoomData.Type_5[1];
if(difen >= zuidabeishu){
difen = zuidabeishu;
Game_Modify.CreateRoomData.Type_5[0] = zuidabeishu;
}else if(difen <= zuixiao){
difen = zuixiao;
Game_Modify.CreateRoomData.Type_5[0] = zuixiao;
}
var difen_juli = (difen - zuixiao) / (zuidabeishu-zuixiao) * (you - zuo) +zuo;
set_self(id,18,difen_juli,0,0);
set_self(beishudikuangid,18,get_self(id,18,0,0,0)-10,0,0);
xingzui = difen * 1000;
yidongjuli = get_self(id,18,0,0,0) - zuo + 1;
var cankao = (50 - (ifast_inttostr(difen).length) * kd) / 2;
set_self(beishu,18,get_self(id,18,0,0,0)+cankao,0,0);
set_self(beishu,20,kd*ifast_inttostr(difen).length,0,0);
set_self(beishu,7,difen);
set_self(xianru,20,kd*ifast_inttostr(xingzui).length,0,0);
set_self(xianru,7,xingzui);
}
var mppx = function(){
//明牌牌排序
for(var i = 0; i<Public_data.data.maxman;i++){
if(Public_data.data.mp_zt[i] == 1){
Public_data.data.team_cards = Public_data.data.team_cards[i]; //明牌id
Public_data.data.team_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.team_cards)
,[1,3]);
Public_data.data.team_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.team_cards);
opencard(Utl.changeToStatus(i)); //配置明牌坐标
}
}
}
var mpbs = function(type){
//明牌标识显示
if (type) {
if(Public_data.data.mp_zt[Utl.getMySeat()] == 1){
set_self(1072,18,get_self(id_config.car_start[0]+Public_data.data.hand_cards.length-1,18,0,0,0)+20,0,0);
set_self(1072,19,get_self(id_config.car_start[0]+Public_data.data.hand_cards.length-1,19,0,0,0)+112,0,0);
set_self(1072,37,1,0,0);
}else{
set_self(1072,37,0,0,0);
}
}else{
set_self(1072,37,0,0,0);
}
}
var putcard_ani = function(_msg){
//出牌动画
var tiqi = [];
var weiti = [];
for (var j = 0; j < Public_data.data.hand_cards.length; j++) {
for (var l = 0; l < Public_data.data.dealid[game.seat].length; l++) {//取打出去的牌
if (Public_data.data.dealid[game.seat][l] == Public_data.data.hand_cards[j] && get_self(id_config.car_start[0]+j,37) == 1) {
tiqi.push(j);
break;
}else if (l==Public_data.data.dealid[game.seat].length-1){
weiti.push(j);
}
}
}
tiqi.sort(dppx);
weiti.sort(dppx);
//if(game.seat == Utl.getMySeat()){
Public_data.data.hand_cards = _msg.data.hand_cards; //手牌
Public_data.data.hand_cards = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.hand_cards)
,[1,3]);
Public_data.data.hand_cards = cls_doudizhu_aset.CardsToCardIds(Public_data.data.hand_cards);
//}
All_ani.put_cards.show(tiqi,weiti);
}
var duiqi =function(id,_id,type,_x){
//对齐
if(_x==0||_x){
var zhongxin= _x;
}else{
var zhongxin= get_self(_id,18)+get_self(_id,20)/2;
}
if(type==1){
var chang = get_self(id,20)/2;
}else{
var chang = parseInt(get_self(id,7,1)/2);
}
var x = zhongxin - chang;
set_self(id,18,x,0,0);
}
var cjfj =function(type){
//创建房间界面 type:1星星场 0 普通
var biaojiy = 135;
var gouxuany = 130;
var wenziy = 141;
var jiangey = 80;
var cjfjid = [];//每个数组代表一行
if(type){
Game_Modify.Type_1[0].des = game.config.jushu[0] + "局";
Game_Modify.Type_1[1].des = game.config.jushu[1] + "局";
cjfjid = [[1042,[139,672],[140,673]],
[1044,[1401,1411],[1402,1412],[1403,1413]],
[1087,[1099,1123],[1100,1124],
[1086,[1088,1121],[1089,1122],[1001,1003]]]
];//每个数组代表一行
set_self(1043,37,0,0,0);
set_self(20,37,0,0,0);
set_self(21,37,0,0,0);
set_self(674,37,0,0,0);
set_self(675,37,0,0,0);
} else{
if (Game_Modify.CreateRoomData.Type_2 == 0) {
var kouka =1;
}else{
var kouka =0;
}
Game_Modify.Type_1[0].des = game.config.jushu[0] + "局房卡X" + game.config.kouka[kouka][0] + "";
Game_Modify.Type_1[1].des = game.config.jushu[1] + "局房卡X" + game.config.kouka[kouka][1] + "";
cjfjid = [[1042,[139,672],[140,673]],
[1043,[20,674],[21,675]],
[1044,[1401,1411],[1402,1412],[1403,1413]],
[1087,[1099,1123],[1100,1124]],
[1086,[1088,1121],[1089,1122],[1001,1003]]
];//每个数组代表一行
}
set_self(672,7,Game_Modify.Type_1[0].des,0,0);
set_self(673,7,Game_Modify.Type_1[1].des,0,0);
for (var i = 0;i < cjfjid.length;i++) {
set_self(cjfjid[i][0],19,biaojiy+(i*jiangey),0,0);
set_self(cjfjid[i][0],37,1,0,0);
for (var j = 0; j < cjfjid[i].length-1; j++) {
set_self(cjfjid[i][j+1][0],19,gouxuany+(i*jiangey),0,0);
set_self(cjfjid[i][j+1][0],37,1,0,0);
set_self(cjfjid[i][j+1][1],19,wenziy+(i*jiangey),0,0);
set_self(cjfjid[i][j+1][1],37,1,0,0);
}
}
}

View File

@@ -0,0 +1,97 @@
var opencard = function(seat){
//seat 明牌的方位
switch (seat){
case 0:
break;
case 1:
id_config.clock_x[seat] = 1060; //钟x坐标
id_config.clock_y[seat] = 212; //钟y坐标
id_config.sta_posi_x[seat] = 1075;//每个位置标准牌的x坐标
id_config.sta_posi_y[seat] = 73;//每个位置标准牌的y坐标
id_config.car_intervalx[seat] = 26;//每个位置两张牌之间x的间隔
id_config.car_intervaly[seat] = 42;//每个位置两张牌之间y的间隔
id_config.put_intervalx[seat] = 30;//打出去每个位置两张牌之间x的间隔
id_config.put_intervaly[seat] = 55;//打出去每个位置两张牌之间y的间隔
id_config.wide[seat] = 65;//每个人牌的宽
id_config.high[seat] = 83;//每个人牌的高
id_config.put_wide[seat] = 89;//每个人牌打出去的宽
id_config.put_high[seat] = 112;//每个人牌打出去的高
id_config.put_posi_x[seat] = 1053;//每个人牌打出去的标准牌的x坐标
id_config.put_posi_y[seat] = 200;//每个人牌打出去的标准牌的y坐标
id_config.feiji_y[seat] = 200;//y
id_config.shunzi_y[seat] = 200;//y
id_config.baozha_y[seat] = 50;//y
id_config.wangzhay[seat] = 280;//王炸字显示y坐标
break;
case 2:
id_config.clock_x[seat] = 153; //钟x坐标
id_config.clock_y[seat] = 212; //钟y坐标
id_config.sta_posi_x[seat] = 151;//每个位置标准牌的x坐标
id_config.sta_posi_y[seat] = 73;//每个位置标准牌的y坐标
id_config.car_intervalx[seat] = 26;//每个位置两张牌之间x的间隔
id_config.car_intervaly[seat] = 42;//每个位置两张牌之间y的间隔
id_config.put_intervalx[seat] = 30;//打出去每个位置两张牌之间x的间隔
id_config.put_intervaly[seat] = 55;//打出去每个位置两张牌之间y的间隔
id_config.wide[seat] = 65;//每个人牌的宽
id_config.high[seat] = 83;//每个人牌的高
id_config.put_wide[seat] = 89;//每个人牌打出去的宽
id_config.put_high[seat] = 112;//每个人牌打出去的高
id_config.put_posi_x[seat] = 151;//每个人牌打出去的标准牌的x坐标
id_config.put_posi_y[seat] = 200;//每个人牌打出去的标准牌的y坐标
id_config.feiji_y[seat] = 200;//y
id_config.shunzi_y[seat] = 200;//y
id_config.baozha_y[seat] = 50;//y
id_config.wangzhay[seat] = 280;//王炸字显示y坐标
break;
}
}
var carini = function(){
//正常情况坐标
id_config.clock_x = [450,1022,175]; //钟x坐标
id_config.clock_y = [380,160,160]; //钟y坐标
id_config.sta_posi_x = [565,1003,166];//每个位置标准牌的x坐标
id_config.sta_posi_y = [531,108,108];//每个位置标准牌的y坐标
id_config.car_intervalx = [70,43,43];//每个位置两张牌之间x的间隔
id_config.car_intervaly = [42,42,42];//每个位置两张牌之间y的间隔
id_config.put_intervalx = [43,43,43];//打出去每个位置两张牌之间x的间隔
id_config.put_intervaly = [72,72,72];//打出去每个位置两张牌之间y的间隔
id_config.wide = [150,110,110];//每个人牌的宽
id_config.high = [190,142,142];//每个人牌的高
id_config.put_wide = [110,110,110];//每个人牌打出去的宽
id_config.put_high = [142,142,142];//每个人牌打出去的高
id_config.put_posi_x = [585,1003,166];//每个人牌打出去的标准牌的x坐标
id_config.put_posi_y = [340,108,108];//每个人牌打出去的标准牌的y坐标
id_config.feiji_y = [381,156,156];//y
id_config.shunzi_y = [369,168,168];//y
id_config.baozha_y = [231,-5,-5];//爆炸
id_config.wangzhax = [537,973,165];//王炸字显示x坐标
id_config.wangzhay = [378,175,175];//王炸字显示y坐标
}

View File

@@ -0,0 +1,114 @@
var opencards = function(){
//明牌显示
for(var i = 0; i < Public_data.data.maxman; i++){
if (Public_data.data.mp_zt[i] == 1 && i != Utl.getMySeat()) {
if (Public_data.data.stage < 3 ) {
dipaishu();
}
for (var j = 0;j < id_config.hc_len[i]; j++) {
set_self(id_config.car_start[Utl.changeToStatus(i)]+j,37,0,0,0);
}
Hand_card.sort(i,Public_data.data.team_cards);//手牌
if (Public_data.data.caozuo > 0) {
Putcards.sort();//出牌
paidz();//牌上地主显示
}
}
}
}
var asetopen = function(){
//小局牌显示
for (var i = 0; i < Public_data.data.maxman; i++) {
if (i!= Utl.getMySeat()) {//隐藏牌数
set_self(1030+Utl.changeToStatus(i)*100,37,0,0,0);
set_self(1031+Utl.changeToStatus(i)*100,37,0,0,0);
}
if (Public_data.data.rest_cards[i].length>0) {
//Public_data.data.rest_cards = min_copyjson(Public_data.data.rest_cards[i]);
Public_data.data.rest_cards[i] = cls_doudizhu_card.SortCardList(cls_doudizhu_aset.CardIdsToCards(aset,Public_data.data.rest_cards[i])
,[1,3]);
Public_data.data.rest_cards[i] = cls_doudizhu_aset.CardsToCardIds(Public_data.data.rest_cards[i]);
opencard(Utl.changeToStatus(i));
for(var j = 0; j < id_config.hc_len[i]; j++){
set_self(id_config.car_start[Utl.changeToStatus(i)]+j,37,0,0,0);
}
if(i!= Utl.getMySeat()){
if (chonghui) {
Hand_card.sort(i,Public_data.data.rest_cards[i]);//手牌
}else{
asetcards(i);//小局牌动画
}
} else{
Hand_card.sort(i,Public_data.data.rest_cards[i]);//手牌
}
}
}
}
var asetcards = function(seat){
//小局牌动画
if (Public_data.data.rest_cards[seat].length>id_config.car_len[Utl.changeToStatus(seat)]) {//两排
for(var i = 0; i < Public_data.data.rest_cards[seat].length; i++){
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,18,id_config.sta_posi_x[Utl.changeToStatus(seat)],0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,20,id_config.wide[Utl.changeToStatus(seat)],0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,21,id_config.high[Utl.changeToStatus(seat)],0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,43,Public_data.data.rest_cards[seat][i]%54+1,0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,37,1,0,0);
if(i<id_config.car_len[Utl.changeToStatus(seat)]){
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,19,id_config.sta_posi_y[Utl.changeToStatus(seat)],0,0);
} else{
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,19,id_config.sta_posi_y[Utl.changeToStatus(seat)]+id_config.car_intervaly[Utl.changeToStatus(seat)],0,0);
}
}
} else {//一排
for(var i = 0; i < Public_data.data.rest_cards[seat].length; i++){
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,18,id_config.sta_posi_x[Utl.changeToStatus(seat)],0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,19,id_config.sta_posi_y[Utl.changeToStatus(seat)],0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,20,id_config.wide[Utl.changeToStatus(seat)],0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,21,id_config.high[Utl.changeToStatus(seat)],0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,43,Public_data.data.rest_cards[seat][i]%54+1,0,0);
set_self(id_config.car_start[Utl.changeToStatus(seat)]+i,37,1,0,0);
}
}
All_ani.aset_mingpai.show(seat);
}

View File

@@ -0,0 +1,16 @@
var dppx =function(a,b){
if (a<b) {
return -1;
} else if (a>b) {
return 1;
}else{
return 0;
}
}

View File

@@ -0,0 +1,277 @@
var Sound = {
}
Sound.zdtx = "00186.mp3";//炸弹特效
Sound.cptx = "00187.mp3";//出牌特效
Sound.cttx = "00188.mp3";//春天特效
Sound.fptx = "00189.mp3";//翻牌特效
Sound.fjtx = "00190.mp3";//飞机特效
Sound.sjtx = "00191.mp3";//时间特效
Sound.wztx = "00194.mp3";//王炸特效
Sound.sltx = "00193.mp3";//胜利特效
Sound.wzsytx = "00192.mp3";//王炸生硬特效
//-------------------------------------------------------------------------------男
Sound.one = [];
for (var i = 0; i < 15; i++) {
if (i>=10) {
Sound.one[i] = "0012"+(i-10)+".mp3";
}else{
Sound.one[i] = "0011"+i+".mp3";
}
}
Sound.one[Sound.one.length] = Sound.one[Sound.one.length-1];
Sound.two = [];
for (var i = 0; i < 13; i++) {
if (i>=10) {
Sound.two[i] = "0014"+(i-10)+".mp3";
}else{
Sound.two[i] = "0013"+i+".mp3";
}
}
Sound.two[Sound.two.length] = Sound.two[Sound.two.length-1];
Sound.three = [];
for (var i = 0; i < 13; i++) {
if (i>=10) {
Sound.three[i] = "0016"+(i-10)+".mp3";
}else{
Sound.three[i] = "0015"+i+".mp3";
}
}
Sound.three[Sound.three.length] = Sound.three[Sound.three.length-1];
Sound.shree_one = "00163.mp3";//单带一
Sound.shree_two = "00164.mp3";//单带二
Sound.police_one = "00126.mp3";//剩一张牌
Sound.police_two = "00127.mp3";//剩二张牌
Sound.feiji = "00170.mp3";//飞机
Sound.liandui = "00171.mp3";//连对
Sound.shunzi = "00172.mp3";//顺子
Sound.sier = "00173.mp3";//四带二
Sound.sierdui = "00174.mp3";//四带两对
Sound.boom = "00175.mp3";//炸弹
Sound.wangboom = "00176.mp3";//王炸
Sound.nv_one = [];
for (var i = 0; i < 15; i++) {
if (i>=10) {
Sound.nv_one[i] = "0022"+(i-10)+".mp3";
}else{
Sound.nv_one[i] = "0021"+i+".mp3";
}
}
Sound.nv_one[Sound.nv_one.length] = Sound.nv_one[Sound.nv_one.length-1];
Sound.nv_two = [];
for (var i = 0; i < 13; i++) {
if (i>=10) {
Sound.nv_two[i] = "0024"+(i-10)+".mp3";
}else{
Sound.nv_two[i] = "0023"+i+".mp3";
}
}
Sound.nv_two[Sound.nv_two.length] = Sound.nv_two[Sound.nv_two.length-1];
Sound.nv_three = [];
for (var i = 0; i < 13; i++) {
if (i>=10) {
Sound.nv_three[i] = "0026"+(i-10)+".mp3";
}else{
Sound.nv_three[i] = "0025"+i+".mp3";
}
}
//-----------------------------------------------------------------------------------------------------女
Sound.nv_three[Sound.nv_three.length] = Sound.nv_three[Sound.nv_three.length-1];
Sound.nv_shree_one = "00263.mp3";//单带一
Sound.nv_shree_two = "00264.mp3";//单带二
Sound.nv_police_one = "00226.mp3";//剩一张牌
Sound.nv_police_two = "00227.mp3";//剩二张牌
Sound.nv_feiji = "00270.mp3";//飞机
Sound.nv_liandui = "00271.mp3";//连对
Sound.nv_shunzi = "00272.mp3";//顺子
Sound.nv_sier = "00273.mp3";//四带二
Sound.nv_sierdui = "00274.mp3";//四带两对
Sound.nv_boom = "00275.mp3";//炸弹
Sound.nv_wangboom = "00276.mp3";//王炸
var sound = function(){
if(!Public_data.data.cardtype[2]){
return;
}
if (Utl.getSexBySeat(game.seat) == 1) {
if (Public_data.data.cardtype[2] == 1) {//单牌
if (Public_data.data.cardtype[1][0][4] == 53) {
Utl.playSound(Sound.one[Sound.one.length-3]);
} else if (Public_data.data.cardtype[1][0][4] == 54) {
Utl.playSound(Sound.one[Sound.one.length-1]);
} else if (Public_data.data.cardtype[1][0][4] == 16) {
Utl.playSound(Sound.one[Sound.one.length-4]);
} else {
Utl.playSound(Sound.one[Public_data.data.cardtype[1][0][4]-3]);
}
}else if (Public_data.data.cardtype[2] == 2) {//对子
if (Public_data.data.cardtype[1][0][4] == 16) {
Utl.playSound(Sound.two[Sound.two.length-1]);
} else {
Utl.playSound(Sound.two[Public_data.data.cardtype[1][0][4]-3]);
}
} else if (Public_data.data.cardtype[2] == 3) {//顺子
Utl.playSound(Sound.shunzi);
All_ani.shunzi.show(1);
}else if (Public_data.data.cardtype[2] == 4) {//连对
Utl.playSound(Sound.liandui);
All_ani.liandui.show(1);
}else if (Public_data.data.cardtype[2] == 5) {//三条
if (Public_data.data.cardtype[1][0][4] == 16) {
Utl.playSound(Sound.three[Sound.three.length-1]);
} else {
Utl.playSound(Sound.three[Public_data.data.cardtype[1][0][4]-3]);
}
}else if (Public_data.data.cardtype[2] == 6) {//三带一
Utl.playSound(Sound.shree_one);
} else if (Public_data.data.cardtype[2] == 7){//三带一对
Utl.playSound(Sound.shree_two);
}
else if (Public_data.data.cardtype[2] == 8) {//飞机
Utl.playSound(Sound.feiji);
All_ani.feiji.show(1);
Utl.playSound(Sound.fjtx);
}else if (Public_data.data.cardtype[2] == 9) {//炸弹
Utl.playSound(Sound.boom);
All_ani.zhadan.show(1);
Utl.playSound(Sound.zdtx);
}else if (Public_data.data.cardtype[2] == 10) {//四带二
Utl.playSound(Sound.sier);
}else if (Public_data.data.cardtype[2] == 10) {//四带二对
Utl.playSound(Sound.sierdui);
}else if (Public_data.data.cardtype[2] == 12) {//王炸
Utl.playSound(Sound.wangboom);
All_ani.wangzha.show();
Utl.playSound(Sound.wztx);
Utl.stopMusic();
Game_Config.soundList.MainSceneMusic = Sound.wzsytx;//王炸声音特效
Utl.playMusic();
set_self(All_timer.wzsy,57,All_timer.time.wzsy,0,0);
}
}else{
if (Public_data.data.cardtype[2] == 1) {//单牌
if (Public_data.data.cardtype[1][0][4] == 53) {
Utl.playSound(Sound.nv_one[Sound.one.length-3]);
} else if (Public_data.data.cardtype[1][0][4] == 54) {
Utl.playSound(Sound.nv_one[Sound.one.length-1]);
}else if (Public_data.data.cardtype[1][0][4] == 16) {
Utl.playSound(Sound.nv_one[Sound.one.length-4]);
} else {
Utl.playSound(Sound.nv_one[Public_data.data.cardtype[1][0][4]-3]);
}
}else if (Public_data.data.cardtype[2] == 2) {//对子
if (Public_data.data.cardtype[1][0][4] == 16) {
Utl.playSound(Sound.nv_two[Sound.nv_two.length-1]);
} else {
Utl.playSound(Sound.nv_two[Public_data.data.cardtype[1][0][4]-3]);
}
} else if (Public_data.data.cardtype[2] == 3) {//顺子
Utl.playSound(Sound.nv_shunzi);
All_ani.shunzi.show(1);
}else if (Public_data.data.cardtype[2] == 4) {//连对
Utl.playSound(Sound.nv_liandui);
All_ani.liandui.show(1);
}else if (Public_data.data.cardtype[2] == 5) {//三条
if (Public_data.data.cardtype[1][0][4] == 16) {
Utl.playSound(Sound.nv_three[Sound.nv_three.length-1]);
} else {
Utl.playSound(Sound.nv_three[Public_data.data.cardtype[1][0][4]-3]);
}
} else if (Public_data.data.cardtype[2] == 6) {//三带一
Utl.playSound(Sound.nv_shree_one);
}else if (Public_data.data.cardtype[2] == 7) {//三带一对
Utl.playSound(Sound.nv_shree_two);
}
else if (Public_data.data.cardtype[2] == 8) {//飞机
Utl.playSound(Sound.nv_feiji);
All_ani.feiji.show(1);
Utl.playSound(Sound.fjtx);
}else if (Public_data.data.cardtype[2] == 9) {//炸弹
Utl.playSound(Sound.nv_boom);
All_ani.zhadan.show(1);
Utl.playSound(Sound.zdtx);
}else if (Public_data.data.cardtype[2] == 10) {///四带二
Utl.playSound(Sound.nv_sier);
}else if (Public_data.data.cardtype[2] == 11) {//四带二对
Utl.playSound(Sound.nv_sierdui);
}
else if (Public_data.data.cardtype[2] == 12) {//王炸
Utl.playSound(Sound.nv_wangboom);
All_ani.wangzha.show();
Utl.playSound(Sound.wztx);
Utl.stopMusic();
Game_Config.soundList.MainSceneMusic = Sound.wzsytx;//王炸声音特效
Utl.playMusic();
set_self(All_timer.wzsy,57,All_timer.time.wzsy,0,0);
}
}
}
Sound.pass = ["00179.mp3","00180.mp3","00181.mp3","00182.mp3"];//不要
Sound.nv_pass = ["00279.mp3","00280.mp3","00281.mp3","00282.mp3"];//不要
var passsound = function(){//不要
if (Utl.getSexBySeat(game.seat) == 1) {
Utl.playSound(Sound.pass[ifast_random(4)]);
}else{
Utl.playSound(Sound.nv_pass[ifast_random(4)]);
}
}
Sound.jiabei = ["00178.mp3","00177.mp3"];//加倍
Sound.nv_jiabei = ["00278.mp3","00277.mp3"];//加倍
var jiabeisound = function (){//音效
if (Utl.getSexBySeat(game.seat) == 1) {
if (Public_data.data.playerlist[4][game.seat] == 1) {//加倍
Utl.playSound(Sound.jiabei[1]);
}else if (Public_data.data.playerlist[4][game.seat] == 0) {//不加倍
Utl.playSound(Sound.jiabei[0]);
}
} else {
if (Public_data.data.playerlist[4][game.seat] == 1) {//加倍
Utl.playSound(Sound.nv_jiabei[1]);
}else if (Public_data.data.playerlist[4][game.seat] == 0) {//不加倍
Utl.playSound(Sound.nv_jiabei[0]);
}
}
}
Sound.lootbanket = ["00183.mp3","00184.mp3","00185.mp3","00195.mp3"];//叫分
Sound.nv_lootbanket = ["00183.mp3","00184.mp3","00185.mp3","00295.mp3"];//叫分
var lootbanketsound = function (){//叫分音效
if (Public_data.data.playerlist[3][game.seat] == 0) {//不叫
if (Utl.getSexBySeat(game.seat) == 1) {
Utl.playSound(Sound.lootbanket[3]);
}else{
Utl.playSound(Sound.nv_lootbanket[3]);
}
}else{
if (Utl.getSexBySeat(game.seat) == 1) {//叫几分
Utl.playSound(Sound.lootbanket[Public_data.data.down_score[0]-1]);
}else{
Utl.playSound(Sound.nv_lootbanket[Public_data.data.down_score[0]-1]);
}
}
}

View File

@@ -0,0 +1,551 @@
var dzxs = function(){
set_self(1504+Utl.changeToStatus(Public_data.data.banker),37,1,0,0);
//paidz();//牌上地主显示
}
var asetover = function(){
//小局
set_group(251,37,1,0,0);
set_self(1002,37,0,0,0);
set_self(1811,37,0,0,0);
set_self(1812,37,0,0,0);
set_self(1813,37,0,0,0);
set_self(1814,41,1,0,0);
set_self(1814,35,255,0,0);
set_self(1811+Public_data.data.banker,37,1,0,0);//地主显示
set_self(1802,43,Public_data.data.winner+1);
for(var i= 0;i<Public_data.data.maxman;i++){
if (Public_data.data.mp_zt[i] == 1) {
set_self(1814,41,0,0,0);
set_self(1814,35,100,0,0);
}
set_self(1816+i,7,Func.subString(Utl.getNicknameBySeat(i),6,true));//昵称
//set_self(1816+i,37,1,0,0);//昵称
var sy = 0;
if (i == Public_data.data.banker && Public_data.data.winner == 0) {
sy=1;
}else if (i != Public_data.data.banker && Public_data.data.winner == 1) {
sy=1;
}
set_self(1819+i,7,Public_data.data.down_score[1]);//底分
//set_self(1819+i,37,1,0,0);//昵称
set_self(1822+i,7,"x" + Public_data.data.bei);//倍数
set_self(1825+i,7,Public_data.data.bj_score[i]);//得分
if (sy) {
Utl.setFontColor(1816+i,"#dcbc59");//昵称
Utl.setFontColor(1819+i,"#dcbc59");//底分
Utl.setFontColor(1822+i,"#dcbc59");//倍数
Utl.setFontColor(1825+i,"#dcbc59");//得分
}else{
Utl.setFontColor(1816+i,"#9c9c9c");
Utl.setFontColor(1819+i,"#9c9c9c");
Utl.setFontColor(1822+i,"#9c9c9c");
Utl.setFontColor(1825+i,"#9c9c9c");
}
}
for(var i= 0;i<Public_data.data.maxman;i++){//对齐
duiqi(1819+i,1804,0);
duiqi(1822+i,1805,0);
duiqi(1825+i,1806,0);
}
//按钮显示
if (Public_data.data.end == 1) {
set_self(1071,37,0,0,0);
set_self(1814,37,1,0,0);
set_self(1815,37,1,0,0);
} else if (Public_data.data.end == 2){
set_self(1071,37,1,0,0);
set_self(1814,37,0,0,0);
set_self(1815,37,0,0,0);
}else{
set_self(1071,37,0,0,0);
set_self(1814,37,0,0,0);
set_self(1815,37,0,0,0);
}
if (Utl.getIsInfinite() == 1) {//如果是无限局
set_self(1073,37,1,0,0);
set_self(1074,37,0,0,0);
} else{
set_self(1073,37,0,0,0);
set_self(1074,37,0,0,0);
}
if (Public_data.data.roomtype[2] == 2) {//两人模式
set_self(1813,37,0,0,0);
set_self(1818,37,0,0,0);
set_self(1821,37,0,0,0);
set_self(1824,37,0,0,0);
set_self(1827,37,0,0,0);
set_self(1810,37,0,0,0);
}
}
var ready_con = function(){
//准备
for (var i = 0; i < Public_data.data.maxman; i++) {
if (Public_data.data.playerlist[1][i] == 1) {
set_self(1096+Utl.changeToStatus(i),37,1,0,0);
}
}
}
var endover = function(){
//大局
Utl.gameOver();
set_group(260,37,1,0,0);
//大局坐标配置
var wjdkx = 213;//玩家底框
var txx = 282;//头像
var dyjx = 177;//大赢家
var ncx = 348;//昵称
var idx = 338;//id
var zjfx = 267;//总局分
var jjx = 376;//加减
var fsx = 396;//分数
var zzdfx = 270;//最终得分
var zzjjx = 312;//最终加减
var zzszx = 334;//最终数字
var jiange = 295;//间隔
var pianyi = 0;//偏移
if(Public_data.data.roomtype[2] == 2){//两人模式
pianyi = 138;
jiange = 304;
//ncx = 486;//昵称
set_self(1905,37,0,0,0);
set_self(1908,37,0,0,0);
set_self(1911,37,0,0,0);
set_self(1914,37,0,0,0);
set_self(1917,37,0,0,0);
set_self(1920,37,0,0,0);
set_self(1923,37,0,0,0);
set_self(1926,37,0,0,0);
set_self(1929,37,0,0,0);
set_self(1932,37,0,0,0);
set_self(1940,37,0,0,0);
}
set_self(1938,37,0,0,0);
set_self(1939,37,0,0,0);
set_self(1940,37,0,0,0);
set_self(1935,7,Game_Modify.Type_2[Public_data.data.roomtype[1]-1].des);//玩法
set_self(1936,7,Utl.getNicknameBySeat(0));//房主
set_self(1937,7,game.shijian);//时间
var dyj = dayingjia();
//var xzb = [348,643,938];
var zzdf = Utl.getMultipleResult(Public_data.data.grade);
for (var i= 0;i<Public_data.data.maxman;i++){
//底框
set_self(1903+i,43,2,0,0);
set_self(1903+i,18,((wjdkx+pianyi)+(i*jiange)),0,0);
//头像
set_self(1906+i,1,Utl.getHeadimgSrc(i));
set_self(1906+i,18,((txx+pianyi)+(i*jiange)),0,0);
//昵称
set_self(1909+i,7,Utl.getNicknameBySeat(i));
set_self(1909+i,18,((ncx+pianyi)+(i*jiange)),0,0);
//set_self(1909+i,18,get_self(1909+i,18)-parseInt(get_self(1909+i,7,1))/2,0,0);
duiqi(1909+i,1903+i,0);//昵称
//id
set_self(1912+i,7,"ID: " + Utl.getPlayeridBySeat(i));
set_self(1912+i,18,((ncx+pianyi)+(i*jiange)),0,0);
set_self(1912+i,18,get_self(1912+i,18)-parseInt(get_self(1912+i,7,1))/2,0,0);
duiqi(1912+i,1903+i,0);//id
//总积分
set_self(1915+i,18,((zjfx+pianyi)+(i*jiange)),0,0);
//加减
if (Public_data.data.grade[i]<0) {
set_self(1921+i,37,1,0,0);
}else{
set_self(1921+i,37,0,0,0);
}
set_self(1921+i,18,((jjx+pianyi)+(i*jiange)),0,0);
//分
set_self(1918+i,7,ifast_abs(Public_data.data.grade[i]));
set_self(1918+i,18,((fsx+pianyi)+(i*jiange)),0,0);
set_self(1918+i,20,13*ifast_inttostr(ifast_abs(Public_data.data.grade[i])).length);
//最终得分
set_self(1924+i,18,((zzdfx+pianyi)+(i*jiange)),0,0);
//最终得分数字
set_self(1927+i,7,min_replaceAll(String(ifast_abs(zzdf[i])),'\\.', 'b', ''));
set_self(1927+i,18,((ncx+pianyi)+(i*jiange)),0,0);
set_self(1927+i,20,28*ifast_inttostr(ifast_abs(zzdf[i])).length);
duiqi(1927+i,1903+i,1);//大局分
if (zzdf[i]>0) {
set_self(1927+i,1,1036);
} else {
set_self(1927+i,1,1024);
}
//最终加减
//set_self(1930+i,18,((zzjjx+pianyi)+(i*jiange)),0,0);
if (Public_data.data.grade[i]<0) {
set_self(1930+i,37,1,0,0);
set_self(1930+i,18,get_self(1927+i,18)-22,0,0);
}else{
set_self(1930+i,37,0,0,0);
}
}
for (var i = 0; i<Public_data.data.maxman;i++) {
//大赢家
set_self(1938+dyj[i],37,1,0,0);
set_self(1938+i,18,((dyjx+pianyi)+(i*jiange)),0,0);
set_self(1903+dyj[i],43,1);
}
Calculator.show1(Public_data.data.grade);
if (Utl.getShowShare() == 1) {
set_self(1941,37,0,0,0);
}
}
var dayingjia = function(){
var dayingjia = [];
if (Public_data.data.grade[0]>=Public_data.data.grade[1] && Public_data.data.grade[0]>=Public_data.data.grade[2]&&Public_data.data.grade[0]>0) {
dayingjia.push(0);
}
if (Public_data.data.grade[1]>=Public_data.data.grade[0] && Public_data.data.grade[1]>=Public_data.data.grade[2]&&Public_data.data.grade[1]>0) {
dayingjia.push(1);
}
if (Public_data.data.grade[2]>=Public_data.data.grade[0] && Public_data.data.grade[2]>=Public_data.data.grade[1]&&Public_data.data.grade[2]>0) {
dayingjia.push(2);
}
//dayingjia.sort(dppx);
return dayingjia;
}
var kaifang = function(type){
//开房
if (type) {
for(var i =1305;i<=1312;i++){
set_self(i,37,1,0,0);
}
set_self(1300,43,2,0,0);
set_self(1301,43,1,0,0);
Game_Modify.CreateRoomData.Type_4 = 1;
}else{
for(var i =1305;i<=1312;i++){
set_self(i,37,0,0,0);
}
set_self(1300,43,1,0,0);
set_self(1301,43,2,0,0);
Game_Modify.CreateRoomData.Type_4 = 0;
}
}
var jiaofen = function(){
//叫分显示
if (Public_data.data.stage <2 && Public_data.data.stage >= 0) {
for (var i= 0; i < Public_data.data.maxman; i++) {
if (Public_data.data.playerlist[3][i] == 0) {
set_self(1080+Utl.changeToStatus(i),37,1,0,0);
} else if (Public_data.data.playerlist[3][i] != -1){
set_self(1083+Utl.changeToStatus(i),37,1,0,0);
set_self(1083+Utl.changeToStatus(i),43,Public_data.data.playerlist[3][i],0,0);
}else{
set_self(1080+Utl.changeToStatus(i),37,0,0,0);
set_self(1083+Utl.changeToStatus(i),37,0,0,0);
}
}
if (Public_data.data.down_score[0]<0) {
for (var i = 0;i<4;i++) {
set_self(1050+i,35,255,0,0);
set_self(1050+i,41,1,0,0);
set_self(1050+i,37,0,0,0);
}
clock(0); //时钟显示
}
}
}
var xiafen = function(){
//可下分按钮显示
//set_group(204,37,0,0,0);
for (var i = 0;i<4;i++) {
set_self(1050+i,35,255,0,0);
set_self(1050+i,41,1,0,0);
set_self(1050+i,37,1,0,0);
}
if (Public_data.data.down_score[0]>0) {
for (var i = 0;i<Public_data.data.down_score[0];i++) {
set_self(1051+i,35,100,0,0);
set_self(1051+i,41,0,0,0);
}
}
}
var liangdipai = function(type){
//亮底牌
for (var i = 0;i<3;i++) {
set_self(1510+i,37,1,0,0);
}
set_self(1509,37,1,0,0);
if (type == 1) {
for (var i = 0;i<Public_data.data.undercards.length;i++) {
set_self(1510+i,37,1,0,0);
set_self(1510+i,43,Public_data.data.undercards[i]%54+1,0,0);
}
if (Public_data.data.di_bei>1) {
set_self(1500,37,1,0,0);
set_self(1500,43,Public_data.data.di_bei-1,0,0);
}else{
set_self(1500,37,0,0,0);
}
}else if(type == 0){
if(Public_data.data.stage == 0){
for (var i = 0;i<3;i++) {
set_self(1510+i,37,1,0,0);
set_self(1510+i,43,55,0,0);
}
set_self(1509,37,1,0,0);
} else{
for (var i = 0;i<3;i++) {
set_self(1510+i,37,0,0,0);
set_self(1510+i,43,55,0,0);
}
set_self(1509,37,0,0,0);
}
set_self(1500,37,0,0,0);
}
}
var jiapai = function(){
//插入牌
var dq_wz = [];//加入前坐标
for (var i = 0; i < id_config.hc_len[Utl.getMySeat()]; i++) {
dq_wz[i] = get_self(id_config.car_start[0]+i,18,0,0,0);
}
config_carlen();//设置牌长度
cards_interval();//设置牌间距
Hand_card.sort(Utl.getMySeat(),Public_data.data.hand_cards);//重新摆手牌
wz = [];//要插入的位置
for (var j = 0; j < Public_data.data.undercards.length; j++) {
for (var i = 0; i < Public_data.data.hand_cards.length; i++) {
if (Public_data.data.hand_cards[i] == Public_data.data.undercards[j]) {
wz.push(i);
break;
}
}
}
wz.sort(dppx);
All_ani.chapai.show(dq_wz);
kaiqidonghua = 1;
}
var jiabeixs = function(){
//加倍显示
set_self(1503,7,Public_data.data.bei);//显示倍数
set_self(1503,20,ifast_inttostr(Public_data.data.bei).length*22);
duiqi(1503,1503,1,862);//大局分
Public_data.data.control = Utl.getMySeat();//用来显示钟
if (Public_data.data.playerlist[4][Utl.getMySeat()] == -1) {
set_self(1090,37,1,0,0);
set_self(1091,37,1,0,0);
}else{
set_self(1090,37,0,0,0);
set_self(1091,37,0,0,0);
}
for(var i = 0; i < Public_data.data.maxman; i++){
if (Public_data.data.playerlist[4][i] == 1) {
set_self(1092+Utl.changeToStatus(i),37,1,0,0);
set_self(1092+Utl.changeToStatus(i),43,1,0,0);
}else if (Public_data.data.playerlist[4][i] == 0) {
set_self(1092+Utl.changeToStatus(i),37,1,0,0);
set_self(1092+Utl.changeToStatus(i),43,2,0,0);
}else{
set_self(1092+Utl.changeToStatus(i),37,0,0,0);
}
}
}
var beixs = function(){
//显示倍数
for (var i = 0;i<3;i++) {
set_self(1501+i,37,1,0,0);
}
set_self(1503,7,Public_data.data.bei);//显示倍数
set_self(1503,20,ifast_inttostr(Public_data.data.bei).length*22);
duiqi(1503,1503,1,862);//倍数对齐
}
var trus = function(type){
set_self(id_config.trus_di,41,0,0,0);
if (Public_data.data.stage != 2) {
set_self(id_config.trus,37,0,0,0);
set_self(id_config.trus_di,37,0,0,0);
set_self(id_config.trus_cancel,37,0,0,0);
}else{
//托管
if (type == 0) {
set_self(id_config.trus,37,0,0,0);
set_self(id_config.trus_di,37,0,0,0);
set_self(id_config.trus_cancel,37,0,0,0);
}else if (type== 1 ) {
if (Public_data.data.tuoguan[Utl.getMySeat()] == 1) {
set_self(id_config.trus,37,0,0,0);
set_self(id_config.trus_di,37,1,0,0);
set_self(id_config.trus_cancel,37,1,0,0);
}else{
set_self(id_config.trus,37,1,0,0);
set_self(id_config.trus_di,37,0,0,0);
set_self(id_config.trus_cancel,37,0,0,0);
}
}
}
}
var paidz = function(){
//牌上地主显示
if(Public_data.data.banker == Utl.getMySeat()){
if (Public_data.data.hand_cards.length) {
set_self(1021,19,get_self(id_config.car_start[0]+Public_data.data.hand_cards.length-1,19,0,0,0),0,0);
set_self(1021,18,get_self(id_config.car_start[0]+Public_data.data.hand_cards.length-1,18,0,0,0),0,0);
set_self(1021,37,1,0,0);
}else{
set_self(1021,37,0,0,0);
}
}
putpaidz();
}
var putpaidz = function(){
//出牌上地主显示
if (Public_data.data.banker>=0) {
if (Public_data.data.playerlist[0][Public_data.data.banker] == 1 || Public_data.data.playerlist[0][Public_data.data.banker] == 3) {
var seat = Public_data.data.banker;
var zuihouid = id_config.car_start[Utl.changeToStatus(seat)] + id_config.hc_len[seat]-1;
set_self(1600+Utl.changeToStatus(seat),18,get_self(zuihouid,18),0,0);
set_self(1600+Utl.changeToStatus(seat),19,get_self(zuihouid,19),0,0);
set_self(1600+Utl.changeToStatus(seat),20,get_self(zuihouid,20),0,0);
set_self(1600+Utl.changeToStatus(seat),21,get_self(zuihouid,21),0,0);
set_self(1600+Utl.changeToStatus(seat),37,get_self(zuihouid,37),0,0);
}else{
set_self(1600+Utl.changeToStatus(Public_data.data.banker),37,0,0,0);
}
}else{
set_self(1600+Utl.changeToStatus(Public_data.data.banker),37,0,0,0);
}
}
var difenxs = function(){
//底分显示
set_self(1045,7,"底分 " + Public_data.data.down_score[1]);
set_self(1045,18,640-get_self(1045,7,1)/2,0,0);
set_self(1045,20,get_self(1045,7).length*12,0,0);
set_self(1045,37,1,0,0);
Utl.setFontColor(1045,pifu[1][pifu[0]][1]);//色号
}
var dipaishu = function(){
//底牌数
for(var i= 0;i<Public_data.data.maxman;i++){//底牌数显示
if (Utl.getMySeat() != i && Public_data.data.mp_zt[i] !=1){
set_self(1030+Utl.changeToStatus(i)*100,37,1,0,0);
set_self(1031+Utl.changeToStatus(i)*100,37,1,0,0);
set_self(1031+Utl.changeToStatus(i)*100,7,Public_data.data.rest[i]);
set_self(1031+Utl.changeToStatus(i)*100,20,ifast_inttostr(Public_data.data.rest[i]).length *16);
if (Utl.changeToStatus(i) == 1) {
set_self(1031+Utl.changeToStatus(i)*100,18,1144-(get_self(1031+Utl.changeToStatus(i)*100,20,0,0,0)/2),0,0);
} else {
set_self(1031+Utl.changeToStatus(i)*100,18,138-(get_self(1031+Utl.changeToStatus(i)*100,20,0,0,0)/2),0,0);
}
}else{
set_self(1031+Utl.changeToStatus(i)*100,37,0,0,0);
set_self(1030+Utl.changeToStatus(i)*100,37,0,0,0);
}
}
if (Public_data.data.stage < 3 ) {
if(Public_data.data.rest[game.seat] <=2){
if (Utl.getSexBySeat(game.seat) == 1) {//报警音效
if (Public_data.data.rest[game.seat] == 2 && shengpaisound[game.seat][1] == 0) {
Utl.playSound(Sound.police_two);
shengpaisound[game.seat][1] = 1;
}else if (Public_data.data.rest[game.seat] == 1 && shengpaisound[game.seat][0] == 0){
Utl.playSound(Sound.police_one);
shengpaisound[game.seat][0] = 1;
}
} else {
if (Public_data.data.rest[game.seat] == 2 && shengpaisound[game.seat][1] == 0) {
Utl.playSound(Sound.nv_police_two);
shengpaisound[game.seat][1] = 1;
}else if (Public_data.data.rest[game.seat] == 1 && shengpaisound[game.seat][0] == 0) {
Utl.playSound(Sound.nv_police_one);
shengpaisound[game.seat][0] = 1;
}
}
}
}
}
var zhunbei = function(){
//准备
for (var i = 0; i < Public_data.data.maxman; i++ ) {
if (Public_data.data.playerlist[1][i] == 1) {
set_self(1096+Utl.changeToStatus(i),37,1,0,0);
}else{
set_self(1096+Utl.changeToStatus(i),37,0,0,0);
}
}
}
var fanhuipaizhuo = function(){
//返回牌桌
set_group(251,37,0,0,0);
set_self(1078,37,1,0,0);
set_self(1078,35,1,0,0);
if (Public_data.data.stage == 3) {//小局
set_self(1079,37,0,0,0);
set_self(1076,37,1,0,0);
set_self(1077,37,1,0,0);
set_self(1077,41,1,0,0);
set_self(1077,35,255,0,0);
for(var i= 0;i<Public_data.data.maxman;i++){
if (Public_data.data.mp_zt[i] == 1) {
set_self(1077,41,0,0,0);
set_self(1077,35,100,0,0);
break;
}
}
}else{//大局
if (Utl.getIsInfinite() != 1) {
set_self(1079,37,1,0,0);
set_self(1076,37,0,0,0);
set_self(1077,37,0,0,0);
}
}
}

View File

@@ -0,0 +1,6 @@
//精灵事件单元...

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,230 @@
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;
}
gameabc_face.gamestart=function(gameid)
{
//游戏初始化代码
Logic.AppStart();
Public_data.Initialization();
//set_self(149,1,1068);
};
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);
All_ani.ani_doend(id,sx,count,allend);
};
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)
{
GameUI.onloadurl(recid,rectype,url,error,count,len);
};
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);
Click.down(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);
};
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);
gameCombat.utlmouseup(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
Click.up(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)
{
//点击后移动代码
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);
Click.mousemove(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){
GameUI.utlontimer(gameid, spid, /* 本次间隔多少次了 */ times, /* 本次间隔多久 */ timelong,/* 开启后运行多少次了 */ alltimes);
All_timer.timer(gameid, spid, /* 本次间隔多少次了 */ times, /* 本次间隔多久 */ timelong,/* 开启后运行多少次了 */ alltimes);
};
gameabc_face.tcpconnected=function(tcpid)
{
};
gameabc_face.tcpmessage=function(tcpid,data)
{
;
};
gameabc_face.tcpdisconnected=function(tcpid)
{
};
gameabc_face.tcperror=function(tcpid,data)
{
};
gameabc_face.httpmessage=function(myid,url,data)
{
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,106 @@
var Calculator = {
//计算器
}
Calculator.show1 = function(branch){
//计算器计算
if (branch.length>0) {
Utl.getMultipleResult(branch);
GameUI.showCalBtn(branch);
}
}
Calculator.show = function(inputArr,interval,interval_num,initial,digit,num_id,bol_id,reference_id,version){
//inputArr : 同Game_Modify.calResult
//interval : 减号号和数字的间隔
//interval_num : 2个数字间的间距
//initial : 第一个人的数字显示X坐标的中心位置
//digit : 个位数字的宽
//num_id 第一个数字id
//bol_id : 第一个-号id
//reference_id : 第一个参照物id 用于数字居中
//version : 版本 true竖版 false横版
//if (!version) {
for (var i = 0;i<Public_data.data.maxman;i++) {
//结果转码
set_draw (min_replaceAll(String(ifast_abs(inputArr[i])),'\\.', 'b', ''),num_id+i,initial+(i*interval_num)-digit/2,digit);
set_self(num_id+i,37,1,0,0);
set_self(num_id+i,20,digit*ifast_inttostr(ifast_abs(inputArr[i])).length,0,0);
duiqi(num_id+i,reference_id+i,1);
if(inputArr[i]<0){
set_self(bol_id+i,37,1,0,0);
set_self(bol_id+i,18,get_self(num_id+i,18,0,0,0)-interval,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);
};
//局数显示
var game_num = function(type){
if(Utl.getIsInfinite() == 0){
if (type) {
set_self(id_config.game,37,1,0,0);//局
set_self(id_config.Slash,37,1,0,0);//斜杠
set_self(id_config.min_num,37,1,0,0);//小局数
set_self(id_config.max_num,37,1,0,0);//大局数
set_self(id_config.min_num,18,get_self(id_config.Slash,18,0,0,0) - id_config.ward_interval-5 - (ifast_inttostr(Public_data.data.num[0]).length - 1) * id_config.ward_wide ,0,0);
set_self(id_config.min_num,20,id_config.ward_wide*ifast_inttostr(Public_data.data.num[0]).length,0,0);
set_self(id_config.min_num,7,Public_data.data.num[0]);
set_self(id_config.max_num,18,get_self(id_config.Slash,18,0,0,0) + id_config.ward_interval,0,0);
set_self(id_config.max_num,20,id_config.ward_wide*ifast_inttostr(Public_data.data.num[1]).length,0,0);
set_self(id_config.max_num,7,Public_data.data.num[1]);
set_self(id_config.game,18,get_self(id_config.max_num,18,0,0,0) + id_config.ward_interval + id_config.ward_wide*ifast_inttostr(Public_data.data.num[1]).length,0,0);
}else{
set_self(id_config.game,37,0,0,0);//局
set_self(id_config.Slash,37,0,0,0);//斜杠
set_self(id_config.min_num,37,0,0,0);//小局数
set_self(id_config.max_num,37,0,0,0);//大局数
}
}
}
var cards_interval = function(){
//设置手牌间距
var wei = 1280-id_config.wide[0];//最后一张牌的坐标
var inter = parseInt((wei-5)/(id_config.hc_len[Utl.getMySeat()]-1));
if (inter>70) {
id_config.car_intervalx[0] = 70;
}else{
id_config.car_intervalx[0] = inter;
}
}
var config_carlen = function(){
//设置手牌长度
id_config.hc_len[0] = game.config.card_len[Public_data.data.roomtype[2]-1][Public_data.data.roomtype[8]-1];
id_config.hc_len[1] = game.config.card_len[Public_data.data.roomtype[2]-1][Public_data.data.roomtype[8]-1];
id_config.hc_len[2] = game.config.card_len[Public_data.data.roomtype[2]-1][Public_data.data.roomtype[8]-1];
if (Public_data.data.banker>-1) {
id_config.hc_len[Public_data.data.banker] = id_config.hc_len[Public_data.data.banker]+Public_data.data.undercards.length;
}
}

View File

@@ -0,0 +1,102 @@
var Infinite = {
}
Infinite.join = function(seat){
//加入房间
if (Utl.getIsInfinite() == 1) {//如果是无限局
for (var i = 0; i <Desk.PlayerList.length; i++) {
if(Desk.PlayerList[i].playerid!=-1){
Utl.setGrade(i,Desk.GetPlayerBySeat(i).bean);
}
}
Utl.setPlayerPrepare(seat, 0);
}
}
Infinite.no_join = function(){
//未开战加入房间
Utl.setDeskStage(0);
Utl.setPlayerPrepare(Utl.getMySeat(), 0);
}
Infinite.updata = function(stage){
//stage 开战状态
//重连
if (Utl.getIsInfinite() == 1) {//如果是无限局
if(stage != -1){
Utl.setDeskStage(1);
}else{
Utl.setDeskStage(0);
for (var i = 0; i < Desk.PlayerList.length; i++) {
if(Desk.PlayerList[i].playerid!=1){
if (Utl.getPlayerReadyState(i) == 1) {//是否准备
Utl.setPlayerPrepare(i,1);
}else{
Utl.setPlayerPrepare(i,0);
}
}
}
}
for (var i = 0; i < Desk.PlayerList.length; i++) {
if(Desk.PlayerList[i].playerid!=1){
Utl.setGrade(i,Desk.GetPlayerBySeat(i).bean);
}
}
}
}
Infinite.out = function(){
//退出房间
if (Utl.getIsInfinite() == 1) {//如果是无限局
Utl.setPlayerPrepare(Utl.getMySeat(), 0);
}
}
Infinite.ready = function(seat){
if (Utl.getIsInfinite() == 1) {//如果是无限局
//准备
Utl.setPlayerPrepare(seat, 1);
}
}
Infinite.robot_ready = function(wjzb){
if (Utl.getIsInfinite() == 1) {//如果是无限局
//准备
for (var i = 0; i < wjzb.length; i++) {
if(Desk.PlayerList[i].playerid != -1){
if (wjzb[i] == 1) {//是否准备
Utl.setPlayerPrepare(i,1);
}else{
Utl.setPlayerPrepare(i,0);
}
}
}
}
}
Infinite.found = function(){
//创建房间
if (Utl.getIsInfinite() == 1) {//如果是无限局
Utl.setGrade(Utl.getMySeat(),Desk.GetPlayerBySeat(Utl.getMySeat()).bean);
Utl.setDeskStage(0);
Utl.setPlayerPrepare(Utl.getMySeat(), 0);
}
}

View File

@@ -0,0 +1,179 @@
//回放时调用
var Recovery = {
}
var msgrecovery = {
}
Public_data.huifang = function(_msg,ju){
msgrecovery = _msg;
if(typeof _msg.data.gameinfo2 == "string"){
_msg.data.gameinfo2=JSON.parse(_msg.data.gameinfo2);
}
Public_data.recovery.roomcode = _msg.data.gameinfo2.roomcode; //房间号
Public_data.recovery.asetcount = _msg.data.gameinfo2.asetcount; //总局数
Public_data.data.roomtype = _msg.data.gameinfo2.roomtype; //房间类型
Public_data.recovery.ziyuan = _msg.data.gameinfo2.ziyuan;//玩家信息 昵称 头像
Public_data.recovery.id = _msg.data.gameinfo2.id; //玩家id
Public_data.recovery.hand_cards= _msg.data.gameinfo2.hand_cards[ju]; //手牌
Public_data.recovery.pjhf = _msg.data.gameinfo2.pjhf[ju]; //牌局回放数据 pjhf :[[出牌状态,座位号,[每个人的牌id:[],[]],[手牌ID],[玩家状态]],[],[],[].....]
Public_data.recovery.num = -1;//重新回放
Public_data.data.maxman = _msg.data.gameinfo2.pjhf[dijiju][_msg.data.gameinfo2.pjhf[dijiju].length-1][2]; //人数
Public_data.data.undercards = _msg.data.gameinfo2.undercards[dijiju]; //底牌
var myseat = 0;
for(var i = 0; i < Public_data.recovery.id.length; i++){
if (Public_data.recovery.id[i]==Utl.getMyPlayerid()) {
myseat = i;
break;
}
}
//最大人数
//Game_Config.Max.PlayerCnt = Public_data.data.maxman;
Utl.openVideo(Public_data.recovery.ziyuan,myseat,Public_data.recovery.roomcode,Public_data.data.roomtype);
Recovery.show(_msg);
for (var i = 0; i < Public_data.data.maxman; i++) {
if (Public_data.recovery.hand_cards[i]) {
Public_data.data.hand_cards = Public_data.recovery.hand_cards[i];
Public_data.data.hand_cards = Game_Modify.sort(Public_data.data.hand_cards);
Hand_card.sort(i,Public_data.data.hand_cards);//手牌显示
}
}
Public_data.data.hand_cards = Public_data.recovery.hand_cards[myseat];
set_self(id_config.pause,43,2,0,0);
Recovery.button();
Public_data.data.control = Public_data.recovery.pjhf[0][1];
clock(1);
set_self(All_timer.recovery,57,All_timer.time.recovery,0,0);
}
Recovery.Card_Game = {
show :function(){//开启牌局回放定时器
Public_data.Recovery();//数据处理
set_self(All_timer.recovery,57,All_timer.time.recovery,0,0);
Recovery.show();
},
hide: function(){//关闭牌局回放定时器
set_self(All_timer.recovery,57,0,0,0);//关闭
set_self(All_timer.clock,57,0,0,0);//关闭
}
}
Recovery.show = function(_msg){
//回放时要显示的
Game_Modify.recovery(_msg);
}
Recovery.button = function(){
if (Public_data.recovery.num<=0) {
set_self(id_config.retreat,41,0,0,0);
}else{
set_self(id_config.retreat,41,1,0,0);
}
set_self(id_config.fast,37,1,0,0);
set_self(id_config.pause,37,1,0,0);
set_self(id_config.retreat,37,1,0,0);
set_self(id_config.out,37,1,0,0);
}
Recovery.click = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2){
switch (spid_up){
case id_config.fast://快进
Recovery.Card_Game.hide();//关闭定时器
if (Public_data.recovery.num+1<Public_data.recovery.pjhf.length-1) {
Public_data.recovery.num ++;
Public_data.Recovery();
set_self(id_config.retreat,41,1,0,0);
//Recovery.button();
set_self(All_timer.clock,57,0,0,0);
set_self(id_config.pause,43,1,0,0);
}else{
Recovery.Card_Game.hide();//关闭定时器
Public_data.recovery.num ++;
Game_Modify.over(msgrecovery);
}
click_up(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
break;
case id_config.pause://暂停 开始
if(get_self(id_config.pause,43,0,0,0) == 2){
Recovery.Card_Game.hide();//关闭定时器
set_self(id_config.pause,43,1,0,0);
}else if(get_self(id_config.pause,43,0,0,0) == 1){
set_self(All_timer.recovery,57,All_timer.time.recovery,0,0);//开启定时器
set_self(id_config.pause,43,2,0,0);
}
click_up(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
break;
case id_config.retreat://退一步
Recovery.Card_Game.hide();//关闭定时器
if (Public_data.recovery.num>0) {
Public_data.recovery.num = Public_data.recovery.num -1;
Public_data.Recovery();
set_group(251,37,0,0,0);
//Recovery.button();
set_self(All_timer.clock,57,0,0,0);
set_self(id_config.pause,43,1,0,0);
}
click_up(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
break;
case id_config.out://退出
UI.hide();
Utl.closeVideo();
Game_Modify.recoveryout();
click_up(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
break;
}
}
Recovery.clickdown = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2){
switch (spid_up){
case id_config.fast://快进
click_down(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
break;
case id_config.pause://暂停 开始
click_down(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
break;
case id_config.retreat://退一步
click_down(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
break;
case id_config.out://退出
click_down(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2);
break;
default:
break;
}
}

View File

@@ -0,0 +1,24 @@
All_timer.hide1 = function(){
//关定时器
set_self(All_timer.dealcard,57,0,0,0);
set_self(All_timer.recovery,57,0,0,0);
set_self(All_timer.clock,57,0,0,0);
set_self(All_timer.put_err,57,0,0,0);
}
All_ani.hide1 = function(){
//关动画
}

View File

@@ -0,0 +1,160 @@
var click_down = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2){
//点击时触发特效
for (var i = 0; i < texiao.length; i++) {
if (spid_down == texiao[i]) {
set_self(spid_down,33,105,0,0,0);
set_self(spid_down,35,200,0,0,0);
}
}
}
var click_up = function(gameid, spid_down, downx, downy, spid_up, upx, upy, timelong, no1, no2){
//弹起时解除特效
//for (var i = 0; i < texiao.length; i++) {
set_self(spid_down,33,100,0,0,0);
set_self(spid_down,35,255,0,0,0);
//}
}
var clock = function(type){
//type 显示时钟 1显示 0隐藏
set_self(All_timer.clock,57,0,0,0);
set_self(id_config.clock,37,0,0,0);
set_self(id_config.time_id,37,0,0,0);
if (type) {
if (Public_data.data.stage>=0) {
Public_data.current = game.config.playtime[Public_data.data.stage];//当前倒计时
}else{
Public_data.current = 15;//当前倒计时
}
//钟的位置
set_self(id_config.clock,18,id_config.clock_x[Utl.changeToStatus(Public_data.data.control)],0,0);
set_self(id_config.clock,19,id_config.clock_y[Utl.changeToStatus(Public_data.data.control)],0,0);
set_self(id_config.clock,37,1,0,0);
//数字的位置
set_self(id_config.time_id,18,id_config.clock_x[Utl.changeToStatus(Public_data.data.control)]+id_config.time_clock_x-((ifast_inttostr(Public_data.current).length-1)*id_config.time_size/2),0,0);
set_self(id_config.time_id,19,id_config.clock_y[Utl.changeToStatus(Public_data.data.control)]+id_config.time_clock_y,0,0);
set_self(id_config.time_id,20,id_config.time_size*(ifast_inttostr(Public_data.current).length),0,0);
set_self(id_config.time_id,37,1,0,0);
set_self(id_config.time_id,7,Public_data.current,0,0);
//倒计时定时器
set_self(All_timer.clock,57,All_timer.time.clock,0,0);
}
}
var button_show = function(type,s){
//type :
//2 正常情况 显示出牌 不要 提示按钮
//1: 第一个出情况 显示出牌按钮 或者加上提示按钮
//3: 要不起情况 只显示不要按钮和显示没有打过上家的牌
//s显示提示按钮 true显示 false : 隐藏 默认 true
var show = false;
if (s) {
show = s;
}
set_self(id_config.but_prompt,37,0,0,0);
set_self(id_config.but_putcard,37,0,0,0);
set_self(id_config.but_pass,37,0,0,0);
set_self(id_config.pass_prompt,37,0,0,0);
set_self(id_config.txt_di,37,0,0,0);
set_self(id_config.but_mingpai,37,0,0,0);
set_self(id_config.but_maxpass,37,0,0,0);
if(type == 2) {//显示3个按钮
set_self(id_config.but_prompt,37,1,0,0);
set_self(id_config.but_prompt,18,id_config.but_prompt_x[1],0,0);
set_self(id_config.but_putcard,37,1,0,0);
set_self(id_config.but_putcard,18,id_config.but_putcard_x[1],0,0);
set_self(id_config.but_pass,37,1,0,0);
set_self(id_config.but_pass,18,id_config.but_pass_x[1],0,0);
}else if (type == 1) {//只显示出牌
if (show) {
set_self(id_config.but_prompt,37,1,0,0);
set_self(id_config.but_prompt,18,id_config.but_prompt_x[0],0,0);
set_self(id_config.but_putcard,37,1,0,0);
set_self(id_config.but_putcard,18,id_config.but_putcard_x[0],0,0);
} else {
if(Public_data.data.caozuo == 0){
var mp = 0;
for (var i = 0; i < Public_data.data.maxman; i++) {
if (Public_data.data.mp_zt[i] == 1) {
mp = 1;
}
}
if (mp == 0) {//显示明牌按钮
set_self(id_config.but_mingpai,37,1,0,0);
id_config.clock_x[0] = 600;
clock(1); //时钟显示
set_self(id_config.but_putcard,18,id_config.but_putcard_x[2],0,0);
}else{//隐藏明牌按钮
set_self(id_config.but_mingpai,37,0,0,0);
set_self(id_config.but_putcard,18,id_config.but_putcard_x[3],0,0);
id_config.clock_x[0] = 428;
clock(1); //时钟显示
}
}else{
set_self(id_config.but_putcard,18,id_config.but_putcard_x[2],0,0);
}
set_self(id_config.but_putcard,37,1,0,0);
}
}else if (type == 3) {//显示要不起
set_self(id_config.but_maxpass,37,1,0,0);
set_self(id_config.but_maxpass,18,id_config.but_pass_x[2],0,0);
set_self(id_config.pass_prompt,37,1,0,0);
set_self(id_config.txt_di,37,1,0,0);
All_ani.put_err.show(0);
}
}