使用Jscript[ASP,ASP.NET]开发本地QQ农场牧场的可行性【转帖】

zy91000 2010-08-09 01:57:22
目前,网上流行的QQ本地农场,本地开心农场,全部是PHP开发,有个PWSNS是.net开发,但是不开源,对于其他平台的程序来说,只能看着PHP程序使用,自己就没有办法吗?

那么多ASP,网站,没有办法?? 当然不是. 请看我对于php农场和其他语言的调研. 以下展示代码全部是Jscript [ASP]代码,部分方法基于SMART ASP 库

PHP本地农场的代码,大量使用了 键值对 的array 例如:



# 道具类型参数$Toolstype = array( "30001" => array("tId" => 1,"tName" => "普通化肥","price" => 400,"FBPrice" => 0,"YFBPrice" => 0,"timeLimit" => 0,"type" => 3,"effect" => 3600,"depict" => "每个阶段只能使用一次,减少该阶段成长时间1小时。","saleOut" => false), "30002" => array("tId" => 2,"tName" => "高速化肥","price" => 0,"FBPrice" => 4,"YFBPrice" => 3,"timeLimit" => 0,"type" => 3,"effect" => 9000,"depict" => "每个阶段只能使用一次,减少该阶段成长时间2.5小时。","saleOut" => false), "30003" => array("tId" => 3,"tName" => "极速化肥","price" => 0,"FBPrice" => 10,"YFBPrice" => 8,"timeLimit" => 0,"type" => 3,"effect" => 19800,"depict" => "每个阶段只能使用一次,减少该阶段成长时间5.5小时。","saleOut" => false), "40001" => array("tId" => 1,"tName" => "狗","price" => "1000","FBPrice" => "0","YFBPrice" => "0","timeLimit" => 0,"type" => 4,"effect" => "","depict" => "可能抓住摘取果实的好友,罚的金币归主人所有。没有狗粮,狗不会抓人","saleOut" => false), "40003" => array("tId" => 3,"tName" => "苏格兰牧羊犬","price" => "5000","FBPrice" => "0","YFBPrice" => "0","timeLimit" => 0,"type" => 4,"effect" => "","depict" => "可能抓住摘取果实的好友。牧羊犬比普通狗提高50%抓坏人的概率","saleOut" => false), "9001" => array("tId" => 9001,"tName" => "普通狗粮","price" => 0,"FBPrice" => 4,"YFBPrice" => 3,"timeLimit" => 0,"type" => 909090,"effect" => "","depict" => "每购买1天普通狗粮,1天内狗会在一定几率下抓住摘取果实的好友","saleOut" => false), "9002" => array("tId" => 9002,"tName" => "狗粮5送2礼包","price" => 0,"FBPrice" => 20,"YFBPrice" => 15,"timeLimit" => 0,"type" => 909090,"effect" => "","depict" => "一次性购买5天狗粮,可额外获赠2天狗粮,让狗狗为你看守农场一周","saleOut" => false));



那么翻译成JScript [或者叫 JSON 的形式] 是什么呢? 是对象:
代码
// 道具类型参数$Toolstype = { "30001" : {"tId" : 1,"tName" : "普通化肥","price" : 400,"FBPrice" : 0,"YFBPrice" : 0,"timeLimit" : 0,"type" : 3,"effect" : 3600,"depict" : "每个阶段只能使用一次,减少该阶段成长时间1小时。","saleOut" : false}, "30002" : {"tId" : 2,"tName" : "高速化肥","price" : 0,"FBPrice" : 4,"YFBPrice" : 3,"timeLimit" : 0,"type" : 3,"effect" : 9000,"depict" : "每个阶段只能使用一次,减少该阶段成长时间2.5小时。","saleOut" : false}, "30003" : {"tId" : 3,"tName" : "极速化肥","price" : 0,"FBPrice" : 10,"YFBPrice" : 8,"timeLimit" : 0,"type" : 3,"effect" : 19800,"depict" : "每个阶段只能使用一次,减少该阶段成长时间5.5小时。","saleOut" : false}, "40001" : {"tId" : 1,"tName" : "狗","price" : "1000","FBPrice" : "0","YFBPrice" : "0","timeLimit" : 0,"type" : 4,"effect" : "","depict" : "可能抓住摘取果实的好友,罚的金币归主人所有。没有狗粮,狗不会抓人","saleOut" : false}, "40003" : {"tId" : 3,"tName" : "苏格兰牧羊犬","price" : "5000","FBPrice" : "0","YFBPrice" : "0","timeLimit" : 0,"type" : 4,"effect" : "","depict" : "可能抓住摘取果实的好友。牧羊犬比普通狗提高50%抓坏人的概率","saleOut" : false}, "9001" : {"tId" : 9001,"tName" : "普通狗粮","price" : 0,"FBPrice" : 4,"YFBPrice" : 3,"timeLimit" : 0,"type" : 909090,"effect" : "","depict" : "每购买1天普通狗粮,1天内狗会在一定几率下抓住摘取果实的好友","saleOut" : false}, "9002" : {"tId" : 9002,"tName" : "狗粮5送2礼包","price" : 0,"FBPrice" : 20,"YFBPrice" : 15,"timeLimit" : 0,"type" : 909090,"effect" : "","depict" : "一次性购买5天狗粮,可额外获赠2天狗粮,让狗狗为你看守农场一周","saleOut" : false}}; 熟悉js的人,看出来了,对象就是键值对的组合.

...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
semisage 2010-11-25
  • 打赏
  • 举报
回复
膜拜楼主啊,这么好的帖子没人顶.
同时也帮我解答了心中的疑问,现在好多大型网站都是PHP ASP做的,难道ASP.NET比他们差些?
zy91000 2010-08-09
  • 打赏
  • 举报
回复
来看一个具体的数据库转换成对象[php中数组,jscript中的json对象]


while($value = $_QFG['db']->fetch_array($query)) { $list[] = $value;}




我使用了Smart ASP 后的代码:


代码
/* 获取某人信息 @uid 用户id @tofriend 好友信息 == 查看别人的农场 @return */ getAll:function(uid,tofriend){ var sql = "SELECT C.money,C.username,C.uid,C.yb,C.vip,C.pf,C.tianqi,N.Status,N.reclaim,N.nc_e,N.exp,N.taskid,N.badnum,N.dog,N.decorative,N.activeItem,N.healthMode FROM uchome_qqfarm_config C Left JOIN uchome_qqfarm_nc N ON N.uid=C.uid where C.uid=?"; if(tofriend){ sql = "SELECT C.uid,C.username,C.money,C.pf,C.yb,N.Status,N.reclaim,N.exp,N.taskid,N.badnum,N.dog,N.decorative,N.activeItem,N.healthMode FROM uchome_qqfarm_config C Left JOIN uchome_qqfarm_nc N ON N.uid=C.uid where C.uid=?"; } var db=getconn(); var params = [ db.createParam("uid", "int",uid, 11) ]; db.connect(); var rs = db.executeReader(sql,params); var list = new Array(); list= db.rsToJson(rs); db.close(); return list; }
zy91000 2010-08-09
  • 打赏
  • 举报
回复
php代码: 提示信息,他是组装字符串


代码
//提示信息if((int)$vip1['valid'] > $_QFG['timestamp']) { $vipquantity = 2; $levelup_arr = '{"title":"升级奖励","direction":"这么快就升级到' . $levelups[$levelup_exp]['level'] . '级了啊?真是神速,奖励你' . $levelups[$levelup_exp]['eDesc'] . ',快到背包里看看吧。","item":[{"eType":"' . $levelups[$levelup_exp]['eType'] . '","eParam":"' . $levelups[$levelup_exp]['eParam'] . '","eNum":"' . $levelups[$levelup_exp]['eNum'] . '"}],"level":' . $levelups[$levelup_exp]['level'] . ',"vipItem":[{"eType":"' . $levelups[$levelup_exp]['eType'] . '","eParam":"' . $levelups[$levelup_exp]['eParam'] . '","eNum":"' . $levelups[$levelup_exp]['eNum'] . '"}],"vipText":"你是VIP用户,还可额外再获赠以下奖励:"}'; } else{ $vipquantity = 1; $levelup_arr = '{"title":"升级奖励","direction":"这么快就升级到' . $levelups[$levelup_exp]['level'] . '级了啊?真是神速,奖励你' . $levelups[$levelup_exp]['eDesc'] . ',快到背包里看看吧。","item":[{"eType":"' . $levelups[$levelup_exp]['eType'] . '","eParam":"' . $levelups[$levelup_exp]['eParam'] . '","eNum":"' . $levelups[$levelup_exp]['eNum'] . '"}],"level":' . $levelups[$levelup_exp]['level'] . '}';}



使用JScript翻译过来,可以直接使用json形式


代码
//提示信息if(parseInt($vip1["valid"]) > timestamp ) { $vipquantity = 2; $levelup_arr = {"title":"升级奖励","direction":"这么快就升级到" + $levelups[$levelup_exp]["level"] + "级了啊?真是神速,奖励你" + $levelups[$levelup_exp]["eDesc"]+ ",快到背包里看看吧。","item":[{"eType": $levelups[$levelup_exp]["eType"] ,"eParam": $levelups[$levelup_exp]["eParam"] ,"eNum": $levelups[$levelup_exp]["eNum"] }],"level": $levelups[$levelup_exp]["level"] ,"vipItem":[{"eType": $levelups[$levelup_exp]["eType"] ,"eParam": $levelups[$levelup_exp]["eParam"] ,"eNum": $levelups[$levelup_exp]["eNum"] }],"vipText":"你是VIP用户,还可额外再获赠以下奖励:"}; } else{ $vipquantity = 1; $levelup_arr = {"title":"升级奖励","direction":"这么快就升级到" + $levelups[$levelup_exp]["level"] + "级了啊?真是神速,奖励你"+ $levelups[$levelup_exp]["eDesc"] +",快到背包里看看吧。","item":[{"eType": $levelups[$levelup_exp]["eType"] ,"eParam": $levelups[$levelup_exp]["eParam"] ,"eNum": $levelups[$levelup_exp]["eNum"] }],"level": $levelups[$levelup_exp]["level"] };}

zy91000 2010-08-09
  • 打赏
  • 举报
回复
熟悉js的人,看出来了,对象就是键值对的组合.



里面还使用了大量的遍历对象的操作 foreach:


//装饰参数$decorative = qf_decode($list[0]['decorative']);foreach($decorative as $itemtype => $value) { foreach($value as $key => $value1) { if($value1['status'] == 1) { if($_QFG['timestamp'] < $value1['validtime'] || $value1['validtime'] == 1) { $decorative_echo[$itemtype]['itemId'] = $key; } else { unset($decorative[$itemtype][$key]); $isUpdate = 1; $decorative[$itemtype][$itemtype]['status'] = 1; $decorative_echo[$itemtype]['itemId'] = $itemtype; } } else { if($value1['validtime'] != 1 && $_QFG['timestamp'] >= $value1['validtime']) { unset($decorative[$itemtype][$key]); $isUpdate = 1; } } }}



这样的操作对于JScript来说,也很好应对 for .. in :


代码
//装饰参数$decorative = qf_decode($list[0]["decorative"]);var $decorative_echo={};for(var $itemtype in $decorative ) { var $value=$decorative[$itemtype]; $itemtype = parseInt($itemtype); for( $key in $value) { $value1 = $value[$key]; $key = parseInt($key); if($value1["status"] == 1) { if( timestamp < $value1["validtime"] || $value1["validtime"] == 1) { $decorative_echo[$itemtype ] = {"itemId" :$key}; } else { $decorative.splice($decorative[$itemtype][$key]); $isUpdate = 1; $decorative[$itemtype][$itemtype]["status"] = 1; $decorative_echo[$itemtype ] = {"itemId" :$itemtype}; } } else { if($value1["validtime"] != 1 && $_QFG["timestamp"] >= $value1["validtime"]) { $decorative.splice($decorative[$itemtype][$key]); $isUpdate = 1; } } }}
ASP.NET ASP.NET 概述 ASP.NET 是一个统一的 Web 开发模型,它包括您使用尽可能少的代码生成企业级 Web 应用程序所必需的各种服务。ASP.NET 作为 .NET Framework 的一部分提供。当您编写 ASP.NET 应用程序的代码时,可以访问 .NET Framework 中的类。您可以使用与公共语言运行库 (CLR) 兼容的任何语言来编写应用程序的代码,这些语言包括 Microsoft Visual Basic、C#、JScript .NET 和 J#。使用这些语言,可以开发利用公共语言运行库、类型安全、继承等方面的优点的 ASP.NET 应用程序。 ASP.NET 包括: 页和控件框架 ASP.NET 编译器 安全基础结构 状态管理功能 应用程序配置 运行状况监视和性能功能 调试支持 XML Web services 框架 可扩展的宿主环境和应用程序生命周期管理 可扩展的设计器环境 页和控件框架 ASP.NET 页和控件框架是一种编程框架,它在 Web 服务器上运行,可以动态地生成和呈现 ASP.NET 网页。可以从任何浏览器或客户端设备请求 ASP.NET 网页,ASP.NET 会向请求浏览器呈现标记(例如 HTML)。通常,您可以对多个浏览器使用相同的页,因为 ASP.NET 会为发出请求的浏览器呈现适当的标记。但是,您可以针对诸如 Microsoft Internet Explorer 6 的特定浏览器设计 ASP.NET 网页,并利用该浏览器的功能。ASP.NET 支持基于 Web 的设备(如移动电话、手持型计算机和个人数字助理 (PDA))的移动控件。 ASP.NET 网页是完全面向对象的。在 ASP.NET 网页中,可以使用属性、方法和事件来处理 HTML 元素。ASP.NET 页框架为响应在服务器上运行的代码中的客户端事件提供统一的模型,从而使您不必考虑基于 Web 的应用程序中固有的客户端和服务器隔离的实现细节。该框架还会在页处理生命周期中自动维护页及该页上控件的状态。有关更多信息,请参见 ASP.NET 网页概述。 使用 ASP.NET 页和控件框架还可以将常用的 UI 功能封装成易于使用且可重用的控件。控件只需编写一次,即可用于许多页并集成到 ASP.NET 网页中。这些控件在呈现期间放入 ASP.NET 网页中。 ASP.NET 页和控件框架还提供各种功能,以便可以通过主题和外观来控制网站的整体外观和感觉。可以先定义主题和外观,然后在页面级或控件级应用这些主题和外观。有关更多信息,请参见 ASP.NET 主题和外观概述。 除了主题外,还可以定义母版页,以使应用程序中的页具有一致的布局。一个母版页可以定义您希望应用程序中的所有页(或一组页)所具有的布局和标准行为。然后可以创建包含要显示的页特定内容的各个内容页。当用户请求内容页时,这些内容页与母版页合并,产生将母版页的布局与内容页中的内容组合在一起的输出。有关更多信息,请参见 ASP.NET 母版页概述。 ASP.NET 编译器 所有 ASP.NET 代码都经过了编译,可提供强类型、性能优化和早期绑定以及其他优点。代码一经编译,公共语言运行库会进一步将 ASP.NET 编译为本机代码,从而提供增强的性能。 ASP.NET 包括一个编译器,该编译器将包括页和控件在内的所有应用程序组件编译成一个程序集,之后 ASP.NET 宿主环境可以使用该程序集来处理用户请求。有关更多信息,请参见 ASP.NET 编译概述。 安全基础结构 除了 .NET 的安全功能外,ASP.NET 还提供了高级的安全基础结构,以便对用户进行身份验证和授权,并执行其他与安全相关的功能。您可以使用由 IIS 提供的 Windows 身份验证对用户进行身份验证,也可以通过您自己的用户数据库使用 ASP.NET Forms 身份验证和 ASP.NET 成员资格来管理身份验证。此外,可以使用 Windows 组或您自己的自定义角色数据库(使用 ASP.NET 角色)来管理 Web 应用程序的功能和信息方面的授权。您可以根据应用程序的需要方便地移除、添加或替换这些方案。有关更多信息,请参见下列主题: ASP.NET 网站安全性 使用成员资格管理用户 使用角色管理授权 Forms 身份验证提供程序 ASP.NET 始终使用特定的 Windows 标识运行,因此,您可以通过使用 Windows 功能(例如 NTFS 访问控制列表 (ACL)、数据库权限等等)来保护应用程序的安全。有关 ASP.NET 标识的更多信息,请参见配置 ASP.NET 进程标识和 ASP.NET 模拟。 状态管理功能 ASP.NET

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧