[建議]水怪RPG醫院 修改

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

主題已鎖定
atthis
星球公民
星球公民
文章: 216
註冊時間: 2003-07-29 19:16

[建議]水怪RPG醫院 修改

文章 atthis »

原文出處:[原創]水怪RPG醫院外掛

修改參考:
[修改][原創]水怪RPG醫院外掛
[緊急修正]水怪RPG醫院外掛

照以上的內容裝完後,還是會有一點小問題,所以作了一點小修正
修正:
1. 修正作完回復動作後不會即時更新HP、MP及現金
2. 修正檢查回復所需金錢是否大於現金(原版是檢查回復HP或MP是否大於現金)

下載點:rpg_hospital.zip

ps.
1. 我是使用user_money,使用積分系統的請將hospital.php 內的user_money 改成 user_points
2. 我設定一滴血兩佰圓,一滴魔一佰圓,可自行改價錢\r
3. 下面版本的hospital.php可以將回復收到的錢納入樂透頭彩
hospital.php

代碼: 選擇全部

<?php 

include($phpbb_root_path . 'rpg/function_rpg.'.$phpEx); 

if ( !defined('IN_PHPBB') ) 
{ 
   die("Hacking attempt"); 
   exit; 
} 

$returnurl = '<br><br><a href="rpg.php?action=hospital"> << 返回 >> <a>'; 

$template->set_filenames(array( 
   'menu' => 'rpg_header.tpl', 
   'body' => 'rpg_hospital.tpl')); 

// 取得個人資料 
$profiledata = get_userdata(intval($userdata['user_id'])); 

//開始設定HP的值 
if ( isset($HTTP_POST_VARS['hps']) ) //取得使用者在頁面中輸入的hp值 
{ 
    $profiledata = get_userdata(intval($userdata['user_id'])); //設定變數$profiledata為使用者資料 
    $hp = $HTTP_POST_VARS['hp']; //設定變數$hp為使用者在網頁中輸入的hp值 
    $fl_hp_money = "" . floor($hp * 200) . "";
    if (($hp > 0) && ($hp <= $profiledata['rpg_max_hp'])) //如果hp值大於0 而且 hp值等於使用者最大的HP值 
    { 
        if ($hp < 5) //如果hp值小於5 
        { 
            $rpg_hospital_result = "阿~你真小氣耶..一次補這樣夠你冒險嗎?本醫院不接受 5 點以下的服務!"; //輸出警告文字 
        } 
      else if ($hp > $profiledata['rpg_max_hp'] - $profiledata['rpg_cur_hp']) //如果hp值大於使用者最大HP值減使用者現在的HP值 
      { 
         $rpg_hospital_result = "你....這樣輸入是不行的喔....明明沒有那麼多的hp"; //輸出警告文字 
      } 
      else if ($fl_hp_money > $profiledata['user_money']) //如果hp值大於使用者現金 
      { 
         $rpg_hospital_result = "咧....你錢明明沒有那麼多"; //輸出警告文字 
      } 
        else //其他狀況下 
        { 
            $sql = "UPDATE " . USERS_TABLE . " SET rpg_cur_hp = rpg_cur_hp + " . ($hp) .", user_money = user_money - " . $fl_hp_money . " WHERE user_id = " . intval($userdata['user_id']); //設定SQL::恢復HP並減少HP值*20的金錢 
            if( !$db->sql_query($sql) ) 
            { 
                message_die(GENERAL_ERROR, "無法修改個人HP!", "", __LINE__, __FILE__, $sql); 
            } 
	    $sql = "UPDATE " . CONFIG_TABLE . " SET config_value = config_value + " . $fl_hp_money . " WHERE config_name = 'rpg_jackpot'";
            if( !$db->sql_query($sql) )
            {
                message_die(GENERAL_ERROR, "無法更新頭彩獎金!", "", __LINE__, __FILE__, $sql);
            }
            $rpg_hospital_result = "回復HP " . ($hp) . " 成功! (小護士收你" . $fl_hp_money . "納入頭彩彩金)"; 
	    $profiledata = get_userdata(intval($userdata['user_id']));
        } 
    } 
    else 
    { 
            $rpg_hospital_result = "你HP輸入太多了啦!別自不量力好嗎?"; 
    } 
} 
/*開始設定MP的值*/ 
if ( isset($HTTP_POST_VARS['mps']) ) 
{ 
    $profiledata = get_userdata(intval($userdata['user_id'])); 
    $mp = $HTTP_POST_VARS['mp']; 
    $fl_mp_money = "" . floor($mp * 100) . "";
    if (($mp > 0) && ($mp <= $profiledata['rpg_max_mp'])) 
    { 
        if ($mp < 5) 
        { 
            $rpg_hospital_result = "阿~你真小氣耶..一次補這樣夠你冒險嗎?本醫院不接受 5 點以下的服務!"; 
        } 
      else if ($mp > $profiledata['rpg_max_mp'] - $profiledata['rpg_cur_mp']) 
      { 
         $rpg_hospital_result = "你....這樣輸入是不行的喔....明明沒有那麼多的mp"; 
      } 
      else if ($fl_mp_money > $profiledata['user_money']) 
      { 
         $rpg_hospital_result = "咧....你錢明明沒有那麼多"; 
      } 
        else 
        { 
            $sql = "UPDATE " . USERS_TABLE . " SET rpg_cur_mp = rpg_cur_mp + " . ($mp) .", user_money = user_money - " . $fl_mp_money . " WHERE user_id = " . intval($userdata['user_id']); 
            if( !$db->sql_query($sql) ) 
            { 
                message_die(GENERAL_ERROR, "無法修改個人MP!", "", __LINE__, __FILE__, $sql); 
            } 
	    $sql = "UPDATE " . CONFIG_TABLE . " SET config_value = config_value + " . $fl_mp_money . " WHERE config_name = 'rpg_jackpot'";
            if( !$db->sql_query($sql) )
            {
                message_die(GENERAL_ERROR, "無法更新頭彩獎金!", "", __LINE__, __FILE__, $sql);
            }
            $rpg_hospital_result = "回復MP " . ($mp) . " 成功! (小護士收你" . $fl_mp_money . "納入頭彩彩金)"; 
	    $profiledata = get_userdata(intval($userdata['user_id']));
        } 
    } 
    else 
    { 
            $rpg_hospital_result = "你MP輸入太多了啦!別自不量力好嗎?"; 
    } 
} 

/* Hospital WaterMonster RPG Mod by bu<buhip@yahoo.co.jp> 
   global $db; 

   $sql = "update phpbb_users set rpg_cur_hp = rpg_max_hp, rpg_cur_mp = rpg_max_mp where user_id = $uid"; 
   $rpg_hospital_result = "HP和MP已經補滿"; 

   if ( !($result = $db->sql_query($sql)) ) 
   { 
      message_die(GENERAL_ERROR, '無法治療您的傷害,真是對不起', '', __LINE__, __FILE__, $sql); 
   }*/ 

// 產生資料頁面 

$page_title = "俏護士小醫院"; 
include($phpbb_root_path . 'includes/page_header.'.$phpEx); 

$template->assign_vars(array( 
   'RPG_LEVEL' => $profiledata['rpg_level'], 
   'RPG_HP_VALUE' => $profiledata['rpg_cur_hp'] . ' / ' . $profiledata['rpg_max_hp'], 
   'RPG_MP_VALUE' => $profiledata['rpg_cur_mp'] . ' / ' . $profiledata['rpg_max_mp'], 
   'USERNAME' => $profiledata['username'], 
   'AVATAR_IMG' => GetAvatar($profiledata), 
   'RPG_MONEY' => number_format($profiledata['user_money']),
   'RPG_HOSPITAL_RESULT' => $rpg_hospital_result, 
   'HP_MAX' => $profiledata['rpg_max_hp'] - $profiledata['rpg_cur_hp'], 
   'MP_MAX' => $profiledata['rpg_max_mp'] - $profiledata['rpg_cur_mp']) 
); 

$template->pparse('menu'); 
$template->pparse('body'); 

include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 

?> 
StickyKid
竹貓忠實會員
竹貓忠實會員
文章: 1019
註冊時間: 2003-01-31 10:32
來自: Taichung, Taiwan
聯繫:

文章 StickyKid »

嗯......謝謝你
我忘記說我是用Points System當貨幣的
我想我真的不夠細心去寫程式吧~齁齁
多謝你囉!
Helvetica is a feature-length independent film about typography.
atthis
星球公民
星球公民
文章: 216
註冊時間: 2003-07-29 19:16

文章 atthis »

StickyKid 寫: 我想我真的不夠細心去寫程式吧~齁齁
沒這種事
你沒寫出來我們連用都沒得用,那還有的修改\r
所以還要請你多多加油喔 :-D
主題已鎖定

回到「外掛問題討論」