phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)
版主: 版主管理群
天霜
竹貓忠實會員
文章: 882 註冊時間: 2003-04-15 19:40
來自: 星之鄉學園
聯繫:
文章
由 天霜 » 2003-10-25 05:58
HP/MP/EXP Mod (Version 2)
這個外掛模組是依據會員的文章數及加入時間的長短來
變更職業名稱\r
但是有沒有方法先依照\r
Gender(性別外掛模組)分為兩種職業名稱\r
就是如下這樣\r
會員->選擇性別-|
|
|
|--男生--- ----女生--|
| |
(男性向職業名稱) (女性向職業名稱)
法師級 法師級
法術和攻擊均衡的等級 法術和攻擊均衡的等級
士兵級 士兵級
戰士級 戰士級
之前有參考在分站有人發表依據性別有不同閃光顏色的方法
http://plus.phpbb-tw.net/plus/viewtopic ... %A9%CA%A7O
代碼: 選擇全部
else if($postrow[$i]['user_gender'] == 1) // male
{
$glowing_color = '#0099ff';
}
else if($postrow[$i]['user_gender'] == 2) // female
{
$glowing_color = '#ff33cc';
}
所以大約知道要使用的性別代碼是那些
但就不知道要加在HP/MP/EXP Mod (Version 2)那裡了
希望懂程式碼的各位前輩能幫在下這個不情之求 >_<
不回答來自 私人訊息, 電子郵件, 及時通 的相關 phpBB 問題
除非是個人疏失所造成的問題
這世界還有拼命守護 的價值嗎...
Mac
百戰天龍馬蓋先
文章: 2590 註冊時間: 2003-02-02 02:28
來自: MacphpBBMOD
聯繫:
文章
由 Mac » 2003-10-25 07:30
level_mod.php 下面\r
尋找\r
代碼: 選擇全部
if ($level_skillratio < 20 ) {
前面加入\r
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 1) // male
{
尋找\r
代碼: 選擇全部
/* END HP/MP/EXP MOD */
前面加入\r
這樣就有男性的等級,只要把以下
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 1) // male
{
一直到最後面的 "}" 複製一份貼在 "/* END HP/MP/EXP MOD */" 前
把 'user_gender' 換成 2
裡面的 classname 換成女性的等級名稱即可\r
~Mac
天霜
竹貓忠實會員
文章: 882 註冊時間: 2003-04-15 19:40
來自: 星之鄉學園
聯繫:
文章
由 天霜 » 2003-10-27 08:29
謝謝Mac的幫忙
在文章頁面是成功了
不過出了一些問題
在會員公開資料中的職業會變成空白(男/女/沒有選三種都顯示空白)
對了 性別保持沒有選擇的話\r
在文章頁面的職業也會變成空白
不回答來自 私人訊息, 電子郵件, 及時通 的相關 phpBB 問題
除非是個人疏失所造成的問題
這世界還有拼命守護 的價值嗎...
Mac
百戰天龍馬蓋先
文章: 2590 註冊時間: 2003-02-02 02:28
來自: MacphpBBMOD
聯繫:
文章
由 Mac » 2003-10-27 17:21
那就要在女性職業後面在加一個
代碼: 選擇全部
else {
.....
.....
}
個人資料裡面會沒有顯示職業,應該是因為 profile.php 裡面,性別不是這樣子叫出來的
代碼: 選擇全部
$postrow[$i]['user_gender']
因為我沒裝 gener mod,你得研究一下個人資料中的性別是怎麼定義的
之後,你就可以寫成這樣:
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 1 || 個人資料的定義 == 1) // male
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 2 || 個人資料的定義 == 2) // male
~Mac
天霜
竹貓忠實會員
文章: 882 註冊時間: 2003-04-15 19:40
來自: 星之鄉學園
聯繫:
文章
由 天霜 » 2003-10-27 18:55
Mac 寫: 那就要在女性職業後面在加一個
代碼: 選擇全部
else {
.....
.....
}~Mac
這部份我有點不解\r
可否說詳細一點
Mac 寫:
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 1 || 個人資料的定義 == 1) // male
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 2 || 個人資料的定義 == 2) // male
~Mac
嗯 我找到了定義值\r
代碼: 選擇全部
$profiledata['user_gender']
但我改如下
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 1 || $profiledata['user_gender'] == 1) // male
在會員列表是顯示正常 但在文章頁面只要有女性發表文章 那一頁的男性會員職業都會顯示成女性\r
我改的程式碼如下:
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 1 || $profiledata['user_gender'] == 1) // male
{
if ($level_skillratio < 20) {
// high magic, low combat
if ($level_level < 4) {
$level_classname = "見習生";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "術士";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "魔術士";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "術師";
} else {
$level_classname = "幻術師";
}
} elseif ($level_skillratio >= 20 && $level_skillratio < 40) {
// balanced mix
if ($level_level < 4) {
$level_classname = "服侍";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "巫師";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "魔法師";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "執事";
} else {
$level_classname = "聖職者";
}
} elseif ($level_skillratio >=40 && $level_skillratio < 60) {
// high combat (big poster), low magic
if ($level_level < 4) {
$level_classname = "佣兵";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "劍士";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "百人隊隊長";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "部屬";
} else {
$level_classname = "城主";
}
} else {
// big time combat, no magic
if ($level_level < 4) {
$level_classname = "護衛";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "戰士";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "勇者";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "騎士";
} else {
$level_classname = "王者";
}
}
}
/* END HP/MP/EXP MOD */
if($postrow[$i]['user_gender'] == 2 || $profiledata['user_gender'] == 2) // female
{
if ($level_skillratio < 20) {
// high magic, low combat
if ($level_level < 4) {
$level_classname = "女見習生";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "女術士";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "女魔術士";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "女術師";
} else {
$level_classname = "女幻術師";
}
} elseif ($level_skillratio >= 20 && $level_skillratio < 40) {
// balanced mix
if ($level_level < 4) {
$level_classname = "女服侍";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "女巫師";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "女魔法師";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "女執事";
} else {
$level_classname = "聖女";
}
} elseif ($level_skillratio >=40 && $level_skillratio < 60) {
// high combat (big poster), low magic
if ($level_level < 4) {
$level_classname = "女佣兵";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "女劍士";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "百人隊隊長";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "部屬";
} else {
$level_classname = "城主";
}
} else {
// big time combat, no magic
if ($level_level < 4) {
$level_classname = "女護衛";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "女戰士";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "勇者";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "女騎士";
} else {
$level_classname = "王者";
}
}
}
/* END HP/MP/EXP MOD */
性別中有關定義值的程式碼\r
includes/usercp_viewprofile.php
代碼: 選擇全部
// Start add - Gender MOD
if ( !empty($profiledata['user_gender']))
{
switch ($profiledata['user_gender'])
{
case 1: $gender=$lang['Male'];break;
case 2: $gender=$lang['Female'];break;
default:$gender=$lang['No_gender_specify'];
}
} else $gender=$lang['No_gender_specify'];
// End add - Gender MOD
viewtopic.php
代碼: 選擇全部
// Start add - Gender MOD
switch ($postrow[$i]['user_gender'])
{
case 1 : $gender_image = $lang['Gender'].": <img src="" . $images['icon_minigender_male'] . "" alt="" . $lang['Gender']. ":".$lang['Male']."" title="" . $lang['Gender'] . ":".$lang['Male']. "" border="0" />"; break;
case 2 : $gender_image = $lang['Gender'].": <img src="" . $images['icon_minigender_female'] . "" alt="" . $lang['Gender']. ":".$lang['Female']. "" title="" . $lang['Gender'] . ":".$lang['Female']. "" border="0" />"; break;
default : $gender_image="";
}
// End add - Gender MOD
不回答來自 私人訊息, 電子郵件, 及時通 的相關 phpBB 問題
除非是個人疏失所造成的問題
這世界還有拼命守護 的價值嗎...
Mac
百戰天龍馬蓋先
文章: 2590 註冊時間: 2003-02-02 02:28
來自: MacphpBBMOD
聯繫:
文章
由 Mac » 2003-10-27 22:20
像這樣子:
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 1 || $profiledata['user_gender'] == 1) // male
{
.....
.....
.....
}
if($postrow[$i]['user_gender'] == 2 || $profiledata['user_gender'] == 2) // female
{
.....
.....
.....
}
else // 沒有填入性別時
{
.....
.....
.....
}
/* END HP/MP/EXP MOD */
~Mac
天霜
竹貓忠實會員
文章: 882 註冊時間: 2003-04-15 19:40
來自: 星之鄉學園
聯繫:
文章
由 天霜 » 2003-10-27 23:05
代碼: 選擇全部
else // 沒有填入性別時
{
if ($level_skillratio < 20) {
// high magic, low combat
if ($level_level < 4) {
$level_classname = "Apprentice";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "Magician";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "Master Mage";
} else if ($level_level >=11 && $level_level < 15) {
\n $level_classname = "Grand Mage";
} else {
$level_classname = "Archmage";
}
} elseif ($level_skillratio >= 20 && $level_skillratio < 40) {
// balanced mix
if ($level_level < 4) {
$level_classname = "Initiate";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "Mystic";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "Warlock";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "Deacon";
} else {
$level_classname = "Grand Deacon";
}
} elseif ($level_skillratio >=40 && $level_skillratio < 60) {
// high combat (big poster), low magic
if ($level_level < 4) {
$level_classname = "Mercenary";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "Gladiator";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "Centurion";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "Myrmidion";
} else {
$level_classname = "Warlord";
}
} else {
// big time combat, no magic
if ($level_level < 4) {
$level_classname = "Squire";
} else if ($level_level >=4 && $level_level < 7) {
$level_classname = "Soldier";
} else if ($level_level >=7 && $level_level < 11) {
$level_classname = "Warrior";
} else if ($level_level >=11 && $level_level < 15) {
$level_classname = "Knight";
} else { \r
$level_classname = "Champion";
}
}
}
/* END HP/MP/EXP MOD */
照這樣改 會使男女職業失效 變成沒有填入性別的職業
難道我改錯了嗎?
不回答來自 私人訊息, 電子郵件, 及時通 的相關 phpBB 問題
除非是個人疏失所造成的問題
這世界還有拼命守護 的價值嗎...
Mac
百戰天龍馬蓋先
文章: 2590 註冊時間: 2003-02-02 02:28
來自: MacphpBBMOD
聯繫:
文章
由 Mac » 2003-10-27 23:46
不然試試看:
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 1 || $profiledata['user_gender'] == 1) // male
{
.....
.....
.....
}
elseif($postrow[$i]['user_gender'] == 2 || $profiledata['user_gender'] == 2) // female
{
.....
.....
.....
}
elseif($postrow[$i]['user_gender'] == 0 || $profiledata['user_gender'] == 0) // 沒有填入性別時
{
.....
.....
.....
}
/* END HP/MP/EXP MOD */
~Mac
天霜
竹貓忠實會員
文章: 882 註冊時間: 2003-04-15 19:40
來自: 星之鄉學園
聯繫:
文章
由 天霜 » 2003-10-28 06:30
謝謝Mac的幫忙
男性|女性|沒有選擇 皆顯示正常
但是只要加上要顯示個人資料的定義碼 就會亂掉
(有女性發表主題的文章頁面的男姓|沒有選擇 都會變成女性職業)
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 2 || $profiledata['user_gender'] == 2) // female
不加的話 在文章的資料會顯示正常
但是個人資料就會全部變成沒有選擇的職業
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 2) // female
現在問題只出在讓個人資料顯示正常 而不影響到文章資料的部份
我也試過用 && 取代 || 看看
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 2 && $profiledata['user_gender'] == 2) // female
我對php碼不了解 但還是試了其他的排法都失效
代碼: 選擇全部
if($postrow[$i]['user_gender'] && $profiledata['user_gender'] == 2) // female
代碼: 選擇全部
if($postrow[$i]['user_gender'] || $profiledata['user_gender'] == 2) // female
不回答來自 私人訊息, 電子郵件, 及時通 的相關 phpBB 問題
除非是個人疏失所造成的問題
這世界還有拼命守護 的價值嗎...
Mac
百戰天龍馬蓋先
文章: 2590 註冊時間: 2003-02-02 02:28
來自: MacphpBBMOD
聯繫:
文章
由 Mac » 2003-10-28 07:53
|| 是 OR 的意思, 而 && 則是 AND 的意思
代碼: 選擇全部
// Gender Add-On [0 No_gender_specify], [1 Male] or [2 Female]
if ($profileversion) {
$gender = $profiledata['user_gender'];
} else {
$gender = $postrow[$i]['user_gender'];
}
if($gender == 1) // male
{
.....
.....
.....
}
elseif($gender == 2) // female
{
.....
.....
.....
}
elseif($gender == 0) // 沒有填入性別時
{
.....
.....
.....
}
/* END HP/MP/EXP MOD */
~Mac
天霜
竹貓忠實會員
文章: 882 註冊時間: 2003-04-15 19:40
來自: 星之鄉學園
聯繫:
文章
由 天霜 » 2003-10-28 08:02
終於成功了! 再一次謝謝Mac前輩的大力幫助
不回答來自 私人訊息, 電子郵件, 及時通 的相關 phpBB 問題
除非是個人疏失所造成的問題
這世界還有拼命守護 的價值嗎...
Mac
百戰天龍馬蓋先
文章: 2590 註冊時間: 2003-02-02 02:28
來自: MacphpBBMOD
聯繫:
文章
由 Mac » 2003-10-28 08:09
恭喜
~Mac
Martinet
竹貓忠實會員
文章: 850 註冊時間: 2003-06-09 21:58
聯繫:
文章
由 Martinet » 2003-10-28 12:25
回報一下^^"
我做到Mac老大說的下面這個地方..就全部ok..就沒有改成最後面的樣子^^"
只是....我最後一個 } 後面有多加一個 ;
因為我印象中 php 的 if else 最後一個 else 的括弧後面要加 ; ^^"
代碼: 選擇全部
if($postrow[$i]['user_gender'] == 1 || $profiledata['user_gender'] == 1) // male
{
.....
.....
.....
}
elseif($postrow[$i]['user_gender'] == 2 || $profiledata['user_gender'] == 2) // female
{
.....
.....
.....
}
elseif($postrow[$i]['user_gender'] == 0 || $profiledata['user_gender'] == 0) // 沒有填入性別時
{
.....
.....
.....
}
/* END HP/MP/EXP MOD */
Mac
百戰天龍馬蓋先
文章: 2590 註冊時間: 2003-02-02 02:28
來自: MacphpBBMOD
聯繫:
文章
由 Mac » 2003-10-28 16:34
";" 並不是加在闊號後面的
而是加在指令後面\r
我想你多看 phpBB 本身的原始檔就會知道了
~Mac
天霜
竹貓忠實會員
文章: 882 註冊時間: 2003-04-15 19:40
來自: 星之鄉學園
聯繫:
文章
由 天霜 » 2003-10-28 18:10
目前在研究如何將職業名稱顯示於會員列表\r
但試了幾次 都失敗...
我是這樣改\r
memberlist.php
在\r
代碼: 選擇全部
'POSTS' => $posts,
之前加入\r
代碼: 選擇全部
/* BEGIN LEVEL MOD */
'HP' => $level_hp,
'HP_WIDTH' => $level_hp_percent,
'HP_EMPTY' => ( 100 - $level_hp_percent ),
'MP' => $level_mp,
'MP_WIDTH' => $level_mp_percent,
'MP_EMPTY' => ( 100 - $level_mp_percent ),
'EXP' => $level_exp,
'EXP_WIDTH' => $level_exp_percent,
'EXP_EMPTY' => ( 100 - $level_exp_percent ),
'LEVEL' => $level_level,
'LEVEL_CLASSNAME' => $level_classname,
'LEVEL_SKILLRATIO' => $level_skillratio,
/* END LEVEL MOD */
在\r
代碼: 選擇全部
$search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>';
之後加入\r
代碼: 選擇全部
include($phpbb_root_path . 'includes/level_mod.'.$phpEx); //added for Level Mod (Mac)
memberlist_body.tpl
代碼: 選擇全部
{memberrow.USERNAME}</a>
後加入\r
代碼: 選擇全部
<br>{memberrow.LEVEL_CLASSNAME}
結果是全部顯示中性的初級職業
我是那裡改錯了...
不回答來自 私人訊息, 電子郵件, 及時通 的相關 phpBB 問題
除非是個人疏失所造成的問題
這世界還有拼命守護 的價值嗎...