Project1

标题: 云中游戏 - 全RM平台仿网游CDKEY兑换系统 - 多图 - 开源 - 轻喷 [打印本页]

作者: oott123    时间: 2013-5-5 20:20
标题: 云中游戏 - 全RM平台仿网游CDKEY兑换系统 - 多图 - 开源 - 轻喷
本帖最后由 oott123 于 2013-5-14 12:03 编辑

VA范例工程,带了dll的有点大,丢百度上:http://pan.baidu.com/share/link?shareid=452764&uk=822553734
不带dll的丢论坛附件一份备用: 云中商城Demo.zip (309.02 KB, 下载次数: 301)
脚本:
RUBY 代码复制下载
  1. =begin
  2.   云中游戏CDKEY系统
  3.     By oott123 via best33.com
  4.     首发:66rpg    [url]http://rpg.blue/thread-309255-1-1.html[/url]
  5.     使用方法:
  6.       1.事件页1输入两个变量,分别为8位和6位,输入完成后打开独立开关
  7.       2.事件页2当独立开关打开时自动执行,条件分歧-脚本-Gamecloud.valcdkey(1,2)
  8.         其中1,2为第一步中的两个变量ID
  9.       3.条件分歧为真时,CDKEY兑换成功;为假时失败。
  10.     WEB端搭建方法:
  11.       见[url]http://rpg.blue/thread-309255-1-1.html[/url]
  12. =end
  13.  
  14. module Gamecloud
  15.   def Gamecloud.valcdkey(key,pwd)
  16.  
  17.     ## 配置说明:请在这里输入云中游戏web端的网址,不带/index.php和后面的任何参数
  18.     base_url = 'http://3.gamecloudemo.duapp.com'
  19.     ## 配置结束
  20.  
  21.     base_url = base_url + '/index.php/valcdkey/api/'
  22.     key = $game_variables[key]
  23.     pwd = $game_variables[pwd]
  24.     http_url = base_url + key.to_s + '/' + pwd.to_s
  25.     str = Gamecloud.get_http_case2(http_url)
  26.     res = str.split('|')
  27.     if(res[0] == 'error')
  28.       return false
  29.     end#of if
  30.     if(res[1] == 'gold')
  31.       #增加金币
  32.       # p "获得了金币"+res[3].to_s
  33.       $game_party.gain_gold(res[3].to_i)
  34.     elsif(res[1] == 'item')
  35.       #获得物品
  36.       # p "获得了"+$data_items[res[2]].name+"x"+res[3].to_s
  37.       $game_party.gain_item($data_items[res[2].to_i], res[3].to_i)
  38.     else
  39.       p "未知错误,请检查!"
  40.       return false
  41.     end#if
  42.     return true
  43.   end#of valcdkey
  44.   def Gamecloud.dumpitems
  45.     file=File.new('itemlist.txt', "w")
  46.     $data_items.each{|i|
  47.         if (i && (i.name != ''))
  48.           file.puts(i.id.to_s + '=' + i.name)
  49.         end
  50.       }
  51.     file.close
  52.   end#of dumpitems
  53.   def Gamecloud.get_http_case2(url)
  54.     #采用凌童鞋推荐的Wininnet.dll调用,抛弃外挂dll=-=不过代码复杂多了……
  55.  
  56.     #要用到的三个api
  57.     api_InternetOpen = Win32API.new(
  58.       'Wininet.dll','InternetOpen',%w(l i l l i),'l')
  59.     api_InternetOpenUrl = Win32API.new(
  60.       'Wininet.dll','InternetOpenUrl',%w(l p p i i i),'l')
  61.     api_InternetReadFile = Win32API.new(
  62.       'Wininet.dll','InternetReadFile',%w(l p i p),'l')
  63.  
  64.     hInternet = api_InternetOpen.call(0,0,0,0,0)  #Internet句柄
  65.  
  66.     hFile = api_InternetOpenUrl.call(hInternet,url,'',0,512,0) #文件句柄
  67.  
  68.     dwNumberOfBytesToRead = 512 #一次要阅读的字符数量,一般512就搞定调用了
  69.     res = " " * dwNumberOfBytesToRead #缓冲区初始化
  70.     lpdwNumberOfBytesRead = [0].pack('L') #2进制的已读取字节数引用传递变量
  71.  
  72.     api_InternetReadFile.call(
  73.       hFile,res,dwNumberOfBytesToRead,lpdwNumberOfBytesRead)  #读取
  74.  
  75.     lpdwNumberOfBytesRead = lpdwNumberOfBytesRead.unpack('L')[0]  #得到字节数
  76.  
  77.     return res.slice(0,lpdwNumberOfBytesRead)  #将res分片返回
  78.   end#of get_http_case2
  79. end #of module gamecloud


事件:
第一页

第二页


网页端下载:https://github.com/oott123/gamecloud/archive/master.zip

Update:都说无法下载……怎么会,GitHub难道真的部分地区被墙了么……
下载地址1.5(依然Github):https://codeload.github.com/oott123/gamecloud/zip/master
Update:在2013年05月14日前下载的用户注意,请到数据库中找到“pre_adminauth”中删除“demo”这一行的数据!
新下载地址:http://pan.baidu.com/share/link?shareid=466770&uk=822553734

教程这样子(度娘BAE服务):
篇幅很长,无耐心的可以无视
先注册一个百度帐号……(不多说。)
登录百度开发者中心:http://developer.baidu.com/
戳右上角这里【马上加入】

填写相关资料

保存后去邮箱查收邮件点确认链接,你懂得。
然后创建应用

找到你刚刚创建的应用(导航栏管理中心)
左手边导航栏点“云环境(BAE)”,进行手机绑定,我就不截图了,换一个已经绑定了的手机号码来
绑定手机完成后再次来到云环境(BAE),此时出现托管界面,按图填写,注意环境选择PHP

完成以后回到管理中心,你的界面应该是这个样子(注意环境是PHP):

点最右边的管理,继续找到“云环境(BAE)”,来到“版本管理”。我这里已经创建过几个版本了,你们做到这里应该是空白。点创建新版本

这里先看看你下载好那个zip文件没。下载好解压之后的目录结构是这个样子的:

来到“application”所在的目录(即最里面一层的gamecloud-master),把这几个文件打包为ZIP

注意选择“添加到压缩文件...”这个带...的选项,然后设置压缩格式为zip

然后我们得到了一个新的gamecloud-master.zip。打开它看看是不是这样的,可以直接看到index.php和app.conf(而不需要进入一个文件夹):

完事之后重命名成v587.zip(这一步只是怕你把文件搞混),回到刚刚的BAE页面,现在“创建版本”窗口应该出来了吧
没啥好说的,随便填写任意一个版本号,上传v587.zip文件

上传有难得一见的进度条,挺好看的
如果看到这里你还没晕,说明……说明你的好日子要到头了。
传完之后找到云数据库,点进去,再按创建数据库

购买时间请随意,记得勾上“使用1G免费配额”,创建。不出意外的话就会弹出一个付款页面,因为是免费的所以自动又跳回来,就可以看到创建好的数据库
记录下名称备用,点击“phpMyAdmin”。第一次会让你授权blahblah的,确认就是了。来到一个数据库管理页面,不过里面什么都没有- -b
戳“导入”

找到刚刚那个目录下的db.sql,点击导入

没有意外的话可以看到一句“导入成功,执行了 12 个查询。 (db.sql)”。同时左边也多出来一些表“pre_adminauth”之类的。关掉这个页面,它已经没用了。
回到管理中心的版本管理,点击对应版本的编辑。继续要授权,确定就是。

找到左手边的/application/config/dbconfig.php,将下面的内容复制进去替换掉原来的,注意其中的“数据库名字”几个中文改成刚刚记录下来的数据库名,小心要把空格去掉。
  1. <?php
  2.         $db['default']['hostname'] = HTTP_BAE_ENV_ADDR_SQL_IP .':'.HTTP_BAE_ENV_ADDR_SQL_PORT;
  3.         $db['default']['username'] = HTTP_BAE_ENV_AK;
  4.         $db['default']['password'] = HTTP_BAE_ENV_SK;
  5.         $db['default']['database'] = '数据库名字';
  6.         $db['default']['dbdriver'] = 'mysql';
  7.         $db['default']['dbprefix'] = 'pre_';
复制代码

然后右上角保存……保存完了关掉这个窗口回到版本管理,点击你刚刚创建的版本旁边的蓝色的“上线”
如果你得到的是这样的结果……

那么点击旁边小小的“预览”,你就能看到你期待已久的、简陋的结果……

到这里,网页端架设完成。把你的网址复制出来,类似于这样的:
  1. http://gamecloudemo.duapp.com/
复制代码
把最后的斜线去掉(如果有的话),然后打开你的工程,把base_url里面的内容换成这个。
你的后台管理地址是:
  1. http://gamecloudemo.duapp.com/index.php/modify/
复制代码
用户名admin密码demo
把范例工程的两个NPC和一个脚本页复制到你的工程里面,与下面那个NPC对话,在你的游戏目录下就生成了itemlist.txt。这个在后台的物品管理中要用到。


=-=特别感谢:
@凌童鞋 提供的用wininnet取代自带dll的思路~虽然做成平台什么的我会比较懒得……而且被吐槽说「这么点小东西就拿codeigniter框架是不是有点……」嗯是真的有点大材小用了……
=-=不那么特别的感谢:
度娘 提供的BAE和百度网盘=-=b
Faststone Capture 提供的截图软件=-=bbb
=-=另外说几句废话:
……好吧我知道我很啰嗦就是了……如果不会搭建的话欢迎来骚扰我=-=前提是带上你的VIP或者RMB(叉腰狂笑)……正色】遇到什么问题跟帖就好了,在能力和时间范围内我会答复的。
最后……=-=这种没有营养的帖子有几个人会看…………

其它懒得说了=-=看看自己在考试前都干了什么口胡。
作者: end55rpg    时间: 2013-5-5 20:48
不错,百度应该不会倒
作者: z2z4    时间: 2013-5-8 17:55
为什么 后台里什么都没 一个乱码 和一段网址   
作者: T君的暴走    时间: 2013-5-8 19:25
很厉害,可惜太麻烦了,如果只用脚本定义一个CDKEY就简单多了= =
作者: oott123    时间: 2013-5-11 11:36
本帖最后由 oott123 于 2013-5-11 15:26 编辑

@end55rpg  github可能存在部分地区被墙?不过应该是可以下载的……
Update:加入百度网盘下载地址http://pan.baidu.com/share/link?shareid=462038&uk=822553734
@z2z4 乱码?求截图
@T君的暴走 那样的话就没法实现实时生成CDKEY,或者一个CDK只能由一个人使用的功能了=-=麻烦确实麻烦……
作者: z2z4    时间: 2013-5-11 12:07
不就玩RM吗 搞的还要学php编码
作者: 你最珍贵    时间: 2013-5-11 13:21
RMxp的有吗= =
作者: 绿坝    时间: 2013-5-11 14:54
收藏,回家再看,和现在在做的游戏可以一起用。
{:2_287:}CDK拿去卖钱。
作者: 光的圆周率    时间: 2013-5-11 15:14
亲 网页端下载不能 麻烦修复下咯
作者: 光的圆周率    时间: 2013-5-11 15:22
光的圆周率 发表于 2013-5-11 15:14
亲 网页端下载不能 麻烦修复下咯

网页端下载地址国外有效
我这里上传一份 gamecloud-master.rar (972.26 KB, 下载次数: 91)


作者: oott123    时间: 2013-5-11 15:28
@z2z4 嘛我本行就是php……
@你最珍贵 XP也可以的,全平台通用的说~
@绿坝 感谢支持~
@光的圆周率 大概是GitHub部分地区被墙了,我更新了一份百度网盘地址在主楼~多谢的说~
作者: 你最珍贵    时间: 2013-5-11 16:38
珍贵在观看教程中不幸猝死
作者: ljlljl0    时间: 2013-5-12 17:25
在网站数据库中 的

这个是什么意思,后面的编码是什么?
作者: oott123    时间: 2013-5-13 08:21
本帖最后由 oott123 于 2013-5-13 08:37 编辑
ljlljl0 发表于 2013-5-12 17:25
在网站数据库中 的

这个是什么意思,后面的编码是什么?


呃demo可能是忘记删掉了你可以手动删掉…回头更新一下(奇怪我印象中似乎是删掉了的)
后面的是md5编码的说,具体是怎么编码的我也忘掉了,你可以查查源码,大概是在application/model/admin_check.php这个文件下的saltpassword方法…(我记不太清楚了总之差不多是这样),其实就是把原文加上两个固定字符串再md5一下。
作者: oott123    时间: 2013-5-13 08:21
你最珍贵 发表于 2013-5-11 16:38
珍贵在观看教程中不幸猝死

实在不行我也可以帮你搭的说
作者: 渝川    时间: 2013-6-22 12:07
那……怎么设置cdkey?
作者: katonghu    时间: 2013-6-30 19:45
真的很有用,不过遇到了不能解决的麻烦。
请问一下,如何删除CDKEY呢,点击下面的按钮好像不起作用。

0001.jpg (56.09 KB, 下载次数: 27)

0001.jpg

作者: oott123    时间: 2013-6-30 20:14
katonghu 发表于 2013-6-30 19:45
真的很有用,不过遇到了不能解决的麻烦。
请问一下,如何删除CDKEY呢,点击下面的按钮好像不起作用。 ...

在左边选中了要删除的然后点下面的按钮就能删除啊……
莫非是浏览器版本太低?换火狐或者谷歌试试?
实在不行就到phpmyadmin里面手动删掉咯
作者: katonghu    时间: 2013-7-2 12:20
谢谢了,还是没能解决,不过以后有时间可以手动删除了。
作者: 你最珍贵    时间: 2013-7-2 14:58
oott123 发表于 2013-5-13 08:21
实在不行我也可以帮你搭的说

哪你帮我弄个XP的成不~[qq]1781206631[/qq]
作者: 精灵使者    时间: 2013-7-3 15:05
我认为CDK可以生成一个file来保存
然后需要的时候读取这个FILE即可
另:我记得我以前发过随机密码生成器
作者: ♂雨    时间: 2013-7-3 18:47
看得头都晕了,这是干什么的。
作者: oott123    时间: 2013-7-3 20:35
精灵使者 发表于 2013-7-3 15:05
我认为CDK可以生成一个file来保存
然后需要的时候读取这个FILE即可
另:我记得我以前发过随机密码生成器 ...

缺点在于无法云端管理呗。
这样做,一个CDK只能用一次,不论在任何电脑上。
作者: 帕克    时间: 2013-7-6 11:56
话说如果给XP用的话,增加物品就会出现这个提示,增加金币就没有问题,求破=-=
作者: 你最珍贵    时间: 2013-8-5 21:45
XP获得物品时出错咋办= =
作者: 1332881954    时间: 2013-8-8 12:31
楼主您好,在XP下增加物品时会出错。怎么办?
作者: Xnan    时间: 2013-8-8 19:24
强烈要求XP版本脚本
作者: jiahui5592986    时间: 2013-8-8 19:35
ljlljl0 发表于 2013-5-12 17:25
在网站数据库中 的

这个是什么意思,后面的编码是什么?

据我的理解,前面是帐号,后面是密码
作者: mabingjun626    时间: 2013-9-7 22:36
完全测试成功啦~~谢谢楼主~你真棒!
作者: xujintao    时间: 2013-9-12 09:04
还真有点意思.哈哈
作者: 赛露休斯    时间: 2013-9-14 05:11
学着搭建。。果然很多地方理解不能,php不懂的说。。。
我想问一下,生成的CDK是如何保存的?进入领取物品的网页以后后台是怎么获得消息的?然后在cdk列表里删除是怎么做到的?

作者: mabingjun626    时间: 2013-9-19 13:06
功能超叼!!!爱死这个系统了。。。太棒了!!!
作者: oott123    时间: 2013-9-27 21:09
赛露休斯 发表于 2013-9-14 05:11
学着搭建。。果然很多地方理解不能,php不懂的说。。。
我想问一下,生成的CDK是如何保存的?进入领取物品 ...

之前在忙 一直没上6R 不好意思

生成的CDK是保存在数据库里的
网页获得消息的话在脚本里,是通过游戏访问网页实现的
删除的话也是通过操作数据库
作者: 赛露休斯    时间: 2013-9-28 19:19
oott123 发表于 2013-9-27 21:09
之前在忙 一直没上6R 不好意思

生成的CDK是保存在数据库里的

之前一直在研究你是怎么把内容写进数据库的,照猫画虎没成功- -后来网上找到用INSERT INTO成功了。。没有看到你是怎么写进数据库的,才刚学的不太懂,目前在写登录验证系统依然很头痛。。。我发现BAE可以实现很多功能呢,想写个系统和RM联动,RGSS方面没问题,就是苦于对PHP+SQL很陌生,能指导一下吗?我的qq1094315800,不会太麻烦的,谢谢了^_^
作者: lc19801203    时间: 2013-10-31 13:39
zai XP 中失败 。而且 PHP代码还需要进一步完善啊。
作者: lc19801203    时间: 2013-11-2 20:34
有大婶 能提供XP和VX 的工程吗?
作者: lc19801203    时间: 2013-11-3 10:16
VX的自己按照教程处理好了。但是 XP 的话 ,金币能用cdkey,但是cdkey包含的是物品的话,就报错了。如下

QQ图片20131103101203.jpg (36.2 KB, 下载次数: 21)

QQ图片20131103101203.jpg

作者: 令狐林    时间: 2013-11-4 23:34
已搭建调试成功!谢谢!
作者: Front    时间: 2014-5-6 20:08
本帖最后由 Front 于 2014-5-6 21:43 编辑

{:2_276:} 足足编辑了3次~~可以用于百度BAE3.0




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1