TA的每日心情 | 開心 2022-2-17 08:27 |
---|
簽到天數: 14 天 [LV.3]考上駕照
管理員
- 積分
- 4124
|
<?php
// 這段代碼的作用防止文件直接調用,每個道具文件都必須在開頭加入
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
// 用户点擊使用後,執行的代碼
if(submitcheck('usesubmit')) {
// 驗證資料是否填寫完全,這裏驗證$tid(帖子id)是否填寫
if(empty($tid)) {
showmessage('magics_info_nonexistence');
}
// 取得帖子的相關資料
$thread = getpostinfo($tid, 'tid', array('fid'));
// 驗證帖子所在的版塊是否有使用道具的權限
checkmagicperm($magicperm['forum'], $thread['fid']);
// 道具的執行代碼
$db->query("UPDATE {$tablepre}threads SET closed='1', moderated='1' WHERE tid='$tid'");
$expiration = $timestamp + 86400;
// 使用道具代碼
usemagic($magicid, $magic['num']);
// 記錄道具使用日誌
updatemagiclog($magicid, '2', '1', '0', $tid);
// 記錄道具使用對象(這裏指主題)日誌
updatemagicthreadlog($tid, $magicid, $magic['identifier'], $expiration);
// 顯示道具使用信息
showmessage('magics_operation_succeed', 'magic.php?action=user');
}
// 生成道具界面顯示代碼
function showmagic() {
global $tid, $lang;
magicshowtype($lang['option'], 'top');
magicshowsetting($lang['target_tid'], 'tid', $tid, 'text');
magicshowtype('', 'bottom');
}
?>
以上就是一個簡單道具的编寫格式,其中紅色注釋部分是一個道具必須有的,當然裏面的一些代碼可以根據道具類型的不同做一些改動,比如取得帖子資料的語句,如果是對用户的操作,可以改為取用户資料。相關這些操作我們已經内置了一些自定義函數,通過這些自定義函數你就可以輕鬆調用你想調用的資料了,下面我們就來說說這些自定義函數。
道具系统自帶函數
所有的自定函數都在include/magic.func.php文件裏面,下面我對這些函數一一做解釋
// 道具權限驗證函數
$perms有權限的groupid或者fid的序列,中間用\t隔開
$id要驗證fid或者groupid
checkmagicperm($perms, $id)
// 獲得道具函數
$magicid道具id,
$magicnum道具獲得數量
$weight 道具重量
$totalweight 用户擁有道具總重量
$uid 獲得道具用户的uid
$maxmagicsweight 該用户所擁有的道具最大重量
getmagic($magicid, $magicnum, $weight, $totalweight, $uid, $maxmagicsweight)
// 查詢用户擁有道具最大重量函數
$uid 查詢用户uid
$magicarray 道具數據數组
getmagicweight($uid, $magicarray)
// 查詢帖子信息函數
$id 帖子或者主題的pid或者tid
$type 查詢的類型 tid代表主題 pid代表帖子
$colsarray 要查詢的字段 數據類型數组
getpostinfo($id, $type, $colsarray = '')
// 查詢用户信息函數
$username 查詢用户名
$colsarray 要查詢的字段 數據類型數组
getuserinfo($username, $colsarray = '')
// 贈送道具函數
$username 要贈送對象的用户名
$magicid 贈送道具道具id
$magicnum 贈送道具的單個數量
$totalnum 贈送道具的總數量
$totalprice 贈送道具的總價格
givemagic($username, $magicid, $magicnum, $totalnum, $totalprice)
// 道具随機函數
$odds 成功的機率,例如10成功的機率就是10%
magicrand($odds)
// 道具市场道具操作函數
$magicid 道具id
$marketnum 道具市場道具數量
$magicnum 道具數量
marketmagicnum($magicid, $marketnum, $magicnum)
// 道具操作驗證函數(用户驗證道具使用對象是否被版主操作過)
$tid 帖子id
magicthreadmod($tid)
// 道具界面生成函數
magicshowsetting($setname, $varname, $value, $type = 'radio', $width = '20%')
magicshowtips($tips, $title)
magicshowtype($name, $type = '')
// 道具使用函數
$magicid 道具id
$totalnum 被使用道具的用户擁有總數量
$num 使用數量
usemagic($magicid, $totalnum, $num = 1)
// 道具使用對象日誌(主要用于使用對象主題時)
$tid 主題tid
$magicid 道具id
$action 動作標識
$expiration 道具有效期
$extra 是否記錄用户名 1為不記錄,0為記錄
updatemagicthreadlog($tid, $magicid, $action, $expiration, $extra = 0)
// 道具使用日誌
$magicid 道具id
$action 動作標識 1為購買 2為使用 3為贈送 4為道具市場出售 5為道具市場購買
$amount 道具操作數量
$price道具操作價格
$targettid 道具使用對象tid
$targetpid 道具使用對象pid
$targetuid 道具使用對象uid
updatemagiclog($magicid, $action, $amount, $price, $targettid = 0, $targetpid = 0, $targetuid = 0)
|
上一篇:最新版的Discuz X3.4 UTF8 繁體版下一篇:道具也可以扣分?
|