[编辑这个帖子]
//--------------------------------------------------------------------
//插件:天降卡片
//原作:童虎
//修改: FY(文文の封印)
//适用:Discuz! 4.0 系列
//技术支持:discuz.dismall.com
//个人网站:www.bjdyzx.com
//联系信箱/MSN:PerfectWorks@Gmail.com
//--------------------------------------------------------------------
简单介绍:
可以由会员自由添加卡片,添加后的卡片有一定概率(后台设置)会随着发帖和恢复掉落,若是普通卡片掉落,则会有积分的加减变化,如果是特殊卡片,可以由管理员自行确定。比如论坛要搞一个送Q号的活动,管理员可以添加一个叫QQ的特殊卡片。如果这个卡片掉落了,那会员就可以PM管理员,告知卡片掉落的帖子,管理员确定后就可以把QQ号送出。
插件用了钩子,下一个版本升级就不用修改任何文件,直接覆盖插件信息即可。
因为大部分用户都是D41了,所以D40版本升级会如不如D41快,如果可以的话希望大家能尽快升级到D41。如果你安装或者升级了这个插件,请务必跟贴。如果跟贴过少,我会认为是插件已经不再需要,就会停止升级,谢谢大家支持~
全新安装:
数据库升级
- CREATE TABLE `cdb_card` (
- `id` mediumint(8) unsigned NOT NULL auto_increment,
- `username` varchar(30) NOT NULL default '',
- `cname` varchar(30) NOT NULL default '',
- `ceffect` varchar(255) NOT NULL default '0',
- `cint` varchar(50) NOT NULL default '',
- `cardico` varchar(30) NOT NULL default '',
- `type` tinyint(1) unsigned NOT NULL default '0',
- PRIMARY KEY (`id`)
- ) TYPE=MyISAM;
复制代码
- ALTER TABLE `cdb_posts` ADD `card` INT( 6 ) UNSIGNED NOT NULL DEFAULT '0';
复制代码
include/newthread.inc.php和include/newreply.inc.php(改法一样)
Step 1.1
找到
- $bbcodeoff = checkbbcodes($message, !empty($bbcodeoff));
复制代码
上面加
- //[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 1/4 START
- @include DISCUZ_ROOT.'./forumdata/cache/plugin_card.php';
- if(mt_rand(1,1000) >= round(10*(100 - $_DPLUGIN['card']['vars']['probability'])) && strlen($message) > 1 && $_DPLUGIN['card']['vars']['open']){
- @include DISCUZ_ROOT.'./forumdata/cache/cache_card.php';
- $prize=0;
- if($_CARD['cardnum'] && $_CARD['card']){
- do{
- $cardid =round(mt_rand($_CARD['cardnum']['min'],$_CARD['cardnum']['max']));
- $prize = $_CARD['card'][$cardid]['ceffect'];
- }while(!$_CARD['card'][$cardid]);
- }
- }
- //[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 1/4 END
复制代码
Step 1.2
下面不远处
$db->query("INSERT INTO {$tablepre}posts (fid, tid, first, author, authorid, subject, dateline, message, useip, invisible, anonymous, usesig, htmlon, bbcodeoff, smileyoff, parseurloff, attachment)
VALUES ('$fid', '$tid', '0', '$discuz_user', '$discuz_uid', '$subject', '$timestamp', '$message', '$onlineip', '$pinvisible', '$isanonymous', '$usesig', '$htmlon', '$bbcodeoff', '$smileyoff', '$parseurloff', '$attachment')");
对比添加红字部分
$db->query("INSERT INTO {$tablepre}posts (fid, tid, first, author, authorid, subject, dateline, message, useip, invisible, anonymous, usesig, htmlon, bbcodeoff, smileyoff, parseurloff, attachment/*[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 2/4 START*/, card/*[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 2/4 END*/)
VALUES ('$fid', '$tid', '0', '$discuz_user', '$discuz_uid', '$subject', '$timestamp', '$message', '$onlineip', '$pinvisible', '$isanonymous', '$usesig', '$htmlon', '$bbcodeoff', '$smileyoff', '$parseurloff', '$attachment'/*[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 3/4 START*/ ,'$cardid'/*[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 3/4 END*/)");
Step 1.3
newreply.inc.php找到
- updatepostcredits('+', $discuz_uid, $replycredits);
复制代码
newthread.inc.php找到
- updatepostcredits('+', $discuz_uid, $postcredits);
复制代码
下面加
- //[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 4/4 START
- if($cardid && !$_CARD['card'][$cardid]['type']){
- $extcredits = $_DPLUGIN['card']['vars']['extcredits'];
- $db->query("UPDATE {$tablepre}members SET extcredits$extcredits = extcredits$extcredits + $prize WHERE uid='$discuz_uid'");
- }
- //[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 4/4 END
复制代码
注意newthread.inc.php和newreply.inc.php都要改哦
viewthread.php
Step 2.1
找到- if(!$newpostanchor && $post['dateline'] > $lastvisit) {
复制代码
上面加入
- //[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 1/1 START
- if($post['card']){
- @include DISCUZ_ROOT.'./forumdata/cache/plugin_card.php';
- @include DISCUZ_ROOT.'./forumdata/cache/cache_card.php';
- $post['card']= $post['card'] ? $_CARD['card'][$post['card']] : "";
- }
- //[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 1/1 END
复制代码
viewthread.htm模版
Step 3.1
找到
- <span style="font-size: {MSGFONTSIZE}">$post[message]</span>
复制代码
下面加入
- <!--[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 1/1 START-->
- <!--{if $post[card]}-->
- <!--{if $post[card][type]=="0"}-->
- <TABLE height=115 cellSpacing=1 cellPadding=0 align=right border=0>
- <TR><TD bgColor=#ffffff>
- <TABLE height=107 cellSpacing=1 cellPadding=0 width="98%" align=center bgColor=#000000 border=0><TR><TD bgColor=#ffffff>
- <TABLE height=107 cellSpacing=2 cellPadding=0 width=400 border=0>
- <TR><TD vAlign=middle width=90 rowSpan=3>
- <DIV align=center><IMG height=98 src="images/card/$post[card][cardico]" width=73></DIV>
- </TD>
- <TD style="COLOR: #ff0000">只听"哐当"一声响,天上掉下来个锅盖,正砸在 $post[username] 头上,上面还有 $post[card][username] 做的 $post[card][cname] 卡一张</TD>
- </TR>
- <TR><TD style="COLOR: #ff0000">卡片说明: $post[card][cint]</TD></TR>
- <TR><TD style="COLOR: #ff0000">卡片效果: $post[card][ceffect] $extcredits[$_DPLUGIN[card][vars][extcredits]][unit] $extcredits[$_DPLUGIN[card][vars][extcredits]][title]</TD></TR>
- </TABLE>
- </TD></TR></TABLE>
- </TD></TR></TABLE>
- <!--{else}-->
- <TABLE height=115 cellSpacing=1 cellPadding=0 align=right border=0>
- <TR><TD bgColor=#ff0000>
- <TABLE height=107 cellSpacing=1 cellPadding=0 width="98%" align=center bgColor=#ff0000 border=0><TR><TD bgColor=#ffffff>
- <TABLE height=107 cellSpacing=2 cellPadding=0 width=400 border=0>
- <TR><TD vAlign=middle width=90 rowSpan=3>
- <DIV align=center><IMG height=98 src="images/card/$post[card][cardico]" width=73></DIV>
- </TD>
- <TD style="COLOR: #ff0000">只听"哐当"一声响,天上掉下来个锅盖,正砸在 $post[username] 头上,上面还有 $post[card][username] 做的 $post[card][cname] 卡一张</TD>
- </TR>
- <TR><TD style="COLOR: #ff0000">卡片说明: $post[card][cint]</TD></TR>
- <TR><TD style="COLOR: #ff0000">卡片效果: $post[card][ceffect]</TD></TR>
- </TABLE>
- </TD></TR></TABLE>
- </TD></TR></TABLE>
- <!--{/if}-->
- <!--{/if}-->
- <!--[天降卡片 BY 童虎 / D4化 BY PerfectWorks] add 1/1 END-->
复制代码
按目录结构上传覆盖附件upload文件夹内所有文件
导入discuz_plugin_card.txt插件信息
全新安装结束
注意:开始安装完毕后,默认的掉落卡片机率是100%,可以用这个进行测试
测试完成后,务必请更改自定义积分类别,和掉落概率
反安装方法:
删除所有修改(见上)
后台删除插件
删除plugins/card目录
删除templates/default/card.htm
数据库卸载代码:
- DROP TABLE 'cdb_card';
- ALTER TABLE `cdb_posts` DROP `card`;
复制代码
版主友情提示:
请楼下回帖的朋友们注意咯,如果已经安装成功的请回来说明下安装和使用情况。这样有利于版主根据大家回馈的信息给作者以肯定和鼓励。同时,也方便作者了解自己作品的使用情况。
您的每个文字将是对作者的鼓励和支持!
M55
[ 本帖最后由 PerfectWorks 于 2006-6-15 01:23 编辑 ] |