| 
TA的每日心情|  | 喜歡 8 小時前
 | 
|---|
 簽到天數: 980 天 [LV.10]昇任副理 管理員   
 
	積分5053   
 
 | 
 
| 
<?php
x
馬上註冊,結交更多好友,享用更多功能,讓你輕鬆玩轉社區。
您需要 登錄 才可以下載或查看,沒有賬號?立即註冊  // 這段代碼的作用防止文件直接調用,每個道具文件都必須在開頭加入
 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)
 
 | 
 |