几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 站务管理 » 农夫山泉有点甜 » 云梦泽(娱乐)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2010-04-11, 06:20 PM   #1
huangyhg
超级版主
 
huangyhg的头像
 
注册日期: 04-03
帖子: 18592
精华: 36
现金: 249466 标准币
资产: 1080358888 标准币
huangyhg 向着好的方向发展
默认 Js小程序:开心餐厅布局程序(可以超过限制多摆炉子,重叠炉子、餐台、桌子、椅子,回收地板、墙纸等功能

JS小程序:开心餐厅布局程序(可以超过限制多摆炉子,重叠炉子、餐台、桌子、椅子,回收地板、墙纸等功能
http://hi.baidu.com/134931/blog/ite...42925807c6.html
在大家的强烈鞭策下,我终于抽了点时间,把前面写的两个小程序组合起来,可以不安装任何软件的情况下,直接用浏览器打开下面的脚本,实现多摆炉子等 功能。   程序的使用方法:粘贴下面的HTML代码到记事本,另存为HTML文件(例如ABC.HTML),登录开心网之后(一定先登录),在那个浏览器 窗口选择打开刚才保存的HTML文件既可使用(有时侯鼠标双击打开就不灵了)。首先只看到获取verify的按钮,点了之后浏览器向开心网发送打开餐厅主 页的请求,稍等一会就会显示verify代码,同时显示可以进一步操作的按钮,这时候应该点“刷新布局”,稍等一会就能看见你的餐厅里面摆放好的物品(注 意坐标方向有一点变化)。现在可以进行两类操作,一是点物品可以移动或者回收物品,移动或者回收后原来的物品消失,新地方或者仓库的变化却要“刷新”后才 显示出来。另外一个功能是点击空白摆放炉子,比如你仓库里面买好了20个炉子,你可以依次点不同的地方,布局好以后点“摆放”按钮,系统就去摆放炉子,等 几秒后就可以“刷新布局”查看战果,进一步到开心网去做菜,看看多出的炉子、草坪上的炉子是不是一样可以用。

  超过限制多摆炉子的说明:首先要在开心网餐厅页面,把现有的炉子上的菜扔了或者收了、清洗干净、收到仓库,然后进入商店购买炉子直到达到限制, 然后再次把新买的炉子收回仓库,如此反复可以购买许多炉子到仓库,但是能摆出来的炉子仍然是有限的。现在在开心网页面少摆放一两个炉子(不留是无法多摆 的),比如你可以摆六个炉子就只摆四个或者五个,就在开心网的这个页面,选择浏览器打开文件,浏览你用记事本保存在本机的脚本文件,获取verify、刷 新布局之后就可以在空白处摆放炉子,摆放10个左右,然后点“摆放”按钮,过10秒就可以查看你的效果了。

  特别提示:能多摆放的炉子数量,与机器的性能、网络的速度有关,所以你在点“摆放”按钮之前,请关闭与开心网无关的程序窗口,特别是关闭迅雷、 快车、QQ旋风等下载软件,可以用任务管理器看一下CPU的繁忙情况,机器基本上平静的时侯点“摆放”按钮,那样成功的可能行最高。但是经过我的测试(我 的系统和网络都很差),运气好的时侯可以多摆10个,运气不好的时侯只多摆放了两三个,这个能超标的数量,全靠你的PC系统在点“摆放”那一瞬间的并发能 力,一般浏览器可能只有这个水平,如果需要超标更多的数量,可能只有你自己用DELPHI或者C++编写多线程程序,原理和下面的代码是一样的--瞬间并 发。

  类似的办法可以摆放其它物品,比如餐台,方法是刷新一下仓库,点一下仓库里面的物品,然后清空摆放设置,重新选择摆放的位置,最后点“摆放”按 钮完成。

  提醒一下,我以前刷的炉子今天被开心网没收了,不过我又用这个程序给另外一个朋 友刷了几个,说明程序还能工作。但是如果使用本程序产生了什么后果,比如被开心网进行什么处罚,请自行承担!我的经验是不要超过16个炉子,把摆放成功多的炉子收回仓库,只保留16个炉子做菜就比较安全。

  常见问题:你的浏览器可能不支持本地JS,运行后弹出的警告要选择允许被禁用的功能。如果无法获取verify,那说明我的AJAX代码可能并 不适合你的浏览器版本,你需要自行学习如何修改AJAX那几行。我的系统是WINXP的,我只使用的IE6,如果其它系统下出现了问题,请自行分析原因, 一般都是多窗口浏览器是否同步COOKIE的问题,还有就是浏览器对JS的语法要求不同的问题。

  完整的程序代码如下:

<style type=text/css>.href {cursor:hand;color:blue;} textarea,input {font-size:9pt;}</style>
<script type=text/javascript>
//全局变量
var verify='';
var cid='';
var uid='';
var gid=256;
function $(id){return document.getElementById(id);}
function createXmlDom(){
var xmlVersions = new Array("MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument", "Microsoft.XmlDom");
for (var i=0; i<xmlVersions.length; i++){
try {var oXmlDom = new ActiveXObject(xmlVersions[i]); return oXmlDom;}
catch (e) {}//alert(e.message);
}
throw new Error("当前系统未安装 MSXML!");
}
function getNode(doc, xpath){
var retval = "";
var value = doc.selectSingleNode(xpath);
if (value) retval = value.text;
return retval;
}
var XmlDom=createXmlDom();
var xmlHttpReady=1;
var xmlHttp=null;
function handleStateChange(){
var url=$('addr_line').value;
var now=new Date();
now=now.getTime();
if (xmlHttp.readyState==4){
if (xmlHttp.status==200){
var s_header=xmlHttp.getAllResponseHeaders();
var s_body=xmlHttp.responseText;
$("text_msg").value+='\n====RESULT HEADER======\n'+s_header+'\n=====RESULT TEXT=======\n'+s_body;
//更新verify
if (s_body.match(/verify=([0-9a-z_]+)\&/)){
verify=RegExp.$1;
$('var_verify').innerHTML=verify;
if (verify.match(/^(\d+)_/)) uid=RegExp.$1;
$('opt1').style.display='';
}
//分地址进行处理
if (url.indexOf('http://www.kaixin001.com/cafe/api_getconf.php')==0){show_decor(s_body);}
else if (url.indexOf('http://www.kaixin001.com/cafe/api_mygranary.php')==0){show_granary(s_body);}
} else $("text_msg").value+='\n\n错误代码:'+xmlHttp.status;
xmlHttpReady=1;
xmlHttp=null;
}
}
function http_request(m,u,d){
if (xmlHttpReady==0) return;
xmlHttpReady=0;
$("addr_line").value=u;
$("text_msg").value=m+' '+d+'\n';
if (window.ActiveXObject) xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
else if (window.XMLHttpRequest) xmlHttp=new XMLHttpRequest();
else {alert('浏览器不支持');return;}
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open(m,u);
if (d=='') xmlHttp.send(null);
else xmlHttp.send(d);
}
</script>


<input type=text id=addr_line style='width:100%'>
<textarea id=text_msg style='width:100%;height:300'></textarea>
<div>verify=<span id=var_verify></span><a class=href onclick="http_request('GET','http://www.kaixin001.com/!cafe /index.php','');">获取</a></div>
<table><tr valign=top>
<td><div id=show_tab></div>
<td>
<a id=opt1 style='display:none' class=href onclick='if (verify=="") alert("请先获取verify"); else http_request("GET","http://www.kaixin001.com/cafe/api_g...uid="+uid,"");'> 刷新布局</a><br>
<div id=opt21 style='display:none'>
说明:<br>
一、点击物品可以<select id=func1><option value=1>移动<option value=2>回收</select>物品。<br>
二、点击空白处批量摆放<span id=gname>白色堡垒灶台</span>(点仓库具体物品改变):<br>
<span id=putstove_show></span> <a class=href onclick="putstove_clear();">清除</a> <a class=href onclick="putstove_exec();">摆放</a><br>
</div>
<div id=result_div style='display:none'></div>
</table>

<table><tr valign=top>
<td id=show_granary>
<td><a id=opt22 style='display:none' class=href onclick='if (cid=="") alert("请先刷新布局"); else http_request("GET","http://www.kaixin001.com/cafe/api_m....random(),"");'> 刷新仓库</a><br>
</table>


<script language=javascript>
function show_decor(s){
XmlDom.loadXML(s);
cid=getNode(XmlDom,'/data/cafe/cafeid');
$('opt21').style.display='';
$('opt22').style.display='';
var items=XmlDom.selectNodes('/data/decor/item');
var decor=new Array();
var i,j,x,y,tkey;
for (i=1;i<=20;i++) {decor[i]=new Array();for (j=1;j<=20;j++) decor[i][j]='&nbsp;';}
for (i=1;i<=items.length;i++){
x=parseInt(getNode(XmlDom,'/data/decor/item['+i+']/x'));
y=parseInt(getNode(XmlDom,'/data/decor/item['+i+']/y'));
oid=parseInt(getNode(XmlDom,'/data/decor/item['+i+']/orderid'));
tkey=getNode(XmlDom,'/data/decor/item['+i+']/tkey');
if (tkey=='window') tkey='窗'; else if (tkey=='door') tkey='门'; else if (tkey=='chair') tkey='椅'; else if (tkey=='table') tkey='桌'; else if (tkey=='counter') tkey='柜'; else if (tkey=='stove') tkey='炉'; else if (tkey=='wall') tkey='墙'; else if (tkey=='floor') tkey='地';
decor[x][y]+='<a class=href onclick="do_move('+x+','+y+','+oid+');this.innerHTML=\'\';">'+tkey+'</a>';
}
s='<table border=1 cellspacing=0>';
for (i=0;i<=20;i++) {s+='<tr><td>'+(i==0?'x\\y':i);if (i==0) for (j=1;j<=20;j++) s+='<td>'+j;else for (j=1;j<=20;j++) s+='<td onclick="putstove('+i+','+j+');">'+decor[i][j];}
s+='</table>';
$('show_tab').innerHTML=s;
}
function show_granary(s){
XmlDom.loadXML(s);
var items=XmlDom.selectNodes('/data/goods/item');
var i,s='',id,name;
for (i=1;i<=items.length;i++){
id=getNode(XmlDom,'/data/goods/item['+i+']/id');
name=getNode(XmlDom,'/data/goods/item['+i+']/name');
s+=' <a class=href style="white-space:pre" onclick="gid='+id+';$(\'gname\').innerHTML=\''+name+'\';">'+name+'('+getNode(XmlDom,'/data/goods/item['+i+']/num')+')</a>';
}
$('show_granary').innerHTML=s;
}
function do_move(x,y,oid){
var url;
if ($('func1').value==1) {
x=prompt('移动的新位置x',x);if (!x) return false;
y=prompt('移动的新位置y',y);if (!y) return false;
url='http://www.kaixin001.com/cafe/api_savegoods.php?verify='+verify+'&cafeid='+cid+'&orderid='+oid+'&direct=1&x='+x+'&y='+y;
}
else if ($('func1').value==2) url='http://www.kaixin001.com/cafe/api_goods2granary.php?verify='+verify+'&cafeid='+cid+'&orderid='+oid+'&r='+Math.random();
if (url) http_request('GET',url,'');
return false;
}
var putstove_html='';
function putstove(i,j){putstove_html+='<img src="http://www.kaixin001.com/cafe/api_g...').innerHTML+=' ('+i+','+j+')';}
function putstove_clear(){putstove_html='';$('putstove_show').innerHTML='';}
function putstove_exec(){$('result_div').innerHTML=putstove_html;alert('请求发出完毕,你可 以刷新布局看看。');}
</script>
<a href=http://hi.baidu.com/134931/blog/item/2e011923f3155142925807c6.html& gt;本程序最新版本</a>

  最后说一句,我写这样的程序,主要是希望激发大家学习计算机编程语言的兴趣,特别是JAVASCRIPT,很简单,很容易学, 而且最关键的是很容易编写出非常有用的程序。以上代码,仅仅是个演示,和专业的外挂相比,相差很远。
__________________
借用达朗贝尔的名言:前进吧,你会得到信心!
[url="http://www.dimcax.com"]几何尺寸与公差标准[/url]
huangyhg离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 10:24 PM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多