第三章 - 修改腳本技巧
創造出屬於自己的風格主機嗎?
難度非常高級
已下修改方式內容部份轉至網路資料,我實在太懶了,要修改東西,要靠自己研究,而不是靠別人提供方法,這樣你永遠學不會。
Q:伺服器的自動存儲時間
A:Scripts\Misc\AutoSave.cs
private static TimeSpan m_Delay = TimeSpan.FromMinutes( 60.0 ); //1小時存檔1次
Q:新玩家出生時的地點
A:Scripts\Misc\Charactercreation.cs
CityInfo city = GetStartLocation( args, young ); //默認遵守的是新人規則,新人玩家限制登陸地為新手城,如需修改可設置成如下格式。
CityInfo city = new CityInfo( "Britain", "Sweet Dreams Inn", 1496, 1628, 10, Map.Felucca ); // F大陸B城 Y1496 X 1628 Z 10
Q:開啟或關閉線上註冊
A:Scripts\Accounting\AccountHandler.cs
private static bool AutoAccountCreation = true; //改為 true;為開啟 false;為關閉
Q:伺服器名稱
A:Scripts\Misc\ServerList.cs
public const string ServerName = "RunUO Center"; //設定主機名稱
Q:限定客戶端使用的UO版本
A:Scripts\Misc\ClientVerification.cs
ClientVersion.Required = null; //把 null 改爲 Client 的版本即可,如下例: ClientVersion.Required = new ClientVersion( "7.0.30.1" );
Q:設置伺服器登陸的IP
A:Scripts\Misc\ServerList.cs
public const string Address = "127.0.0.1"; // 設定你的ip
Q:修改 Welcome Message(新玩家登陸提示資訊)
A:Scripts\Misc\WelcomeTimer.cs // 17-26行即是登陸提示資訊,可任意修改
Q:設置玩家死後是否出現死人袍(可根據喜好決定是否刪除,刪除目的為減輕伺服器負擔)
A:Scripts\Mobiles\PlayerMobile.cs ,找到1406行,其腳本如下:
public override void Resurrect()
{
bool wasAlive = this.Alive;
base.Resurrect();
if ( this.Alive && !wasAlive )
{
Item deathRobe = new DeathRobe();
if ( !EquipItem( deathRobe ) )
deathRobe.Delete();
}
將其修改為:
public override void Resurrect()
{
base.Resurrect();
}
Q:如何設置玩家使用同一個 IP 的可登陸帳號數
A:Scripts\Accounting\AccountHandler.cs
private static int MaxAccountsPerIP = 1; //把 1 改為你需要的數值。
Q:設置新登陸玩家三圍總數和技能總數
A:Scripts\Misc\CharacterCreation.cs 檔裏修改 18-20 行
private static void AddBackpack( Mobile m )
{
Container pack = m.Backpack;
修改為:
private static void AddBackpack( Mobile m )
{
m.StatCap = 230; //三圍總數
m.SkillsCap = 7000; // 技能總數
Container pack = m.Backpack;
注意:舊玩家角色必須人工修改,只有新登陸玩家才受此規則影響。
Q:修改建立公會後的基本網址
A:Scripts\Gumps/Guilds/GuildCharterGump.cs
private const string DefaultWebsite = "http://com/";
改作你想要的名稱。
Q:修改歡迎訊息
A: Scripts\Misc/WelcomeTimer.cs 這個檔案直接修改
或者
刪除 /Scriptss/Misc/WelcomeTimer.cs 這個檔案
修改 /Scriptss/Misc/CharacterCreation.cs
在 500 行 new WelcomeTimer( newChar ).Start(); 前方加上 //
但你可作出修改,為你自已喜歡的 Welcome 訊息。大約是welcometimer.cs 16-25 行的內容。
Q:修改鐵匠接訂單的間隔時間? (裁縫的依此類推)
A:Scripts\Mobiles\Vendors\NPC\Blacksmith.cs ,找到以下代碼:if ( theirSkill >= 70.1 )
pm.NextSmithBulkOrder = TimeSpan.FromHours( 6.0 );
修改6.0為1.0,即是技能70.1以上玩家接單時間間隔只需1小時。
Q:修改npc出售物品數量及價格?
A:Scripts\Mobiles\Vendors\SBInfo中各個檔,如SBBanker.cs中的
Add( new GenericBuyInfo( "1047016", typeof( CommodityDeed ), 5, 20, 0x14F0, 0x47 ) );
這裏的5指價格,20指數量,0x14F0指看到的物品外觀,0x47指這件物品的顏色。
Q:提早獲取系統贈與的老玩家禮物?
A:Scripts\Engines\VeteranRewards\RewardSystem.cs,找到以下代碼:
public static TimeSpan RewardInterval = TimeSpan.FromDays( 30.0 );
這裏的30就是天數,改成1的話,帳號創建第二天即可獲得系統贈與的老玩家禮物。
Q:如何讓技能好提升
A:Scripts/Misc/SkillCheck.cs
L127, L130: change to gc /= 0.01; for ultra fast skill gain (0.5 recommended for "fast")
Q: 設置玩家使用同一個 IP 的可登陸帳號數 & 開啟或關閉線上註冊
A:Scripts\Accounting\AccountHandler.cs
L23: private static int MaxAccountsPerIP = 99; //99數量
A:Scripts\Accounting\AccountHandler.cs
L?: private static bool AutoAccountCreation = true; //改為 true;為開啟 false;為關閉
Q: 設定開關TC測試中心
A:Scripts\Misc\Test Center\TestCenter.cs
L11: private const bool m_Enabled = true;
//改為 true;為開啟 false;為關閉
Q: xxxxxxx
A:Scripts\Misc\SocketOptions.cs
L14: private const int CoalesceBufferSize = 512; smaller for LAN play (32)
Q: 配置玩家可以傭有幾間房屋
A:Scripts\Multis\BaseHouse.cs
L3077: if ( allHouses.Count > 3 ) return true; Max. houses per character
Q: 配置門打開時間
A:Scripts\Items\Construction\Doors\BaseDoor.cs
L190ff: Time, how long doors stay open
Q: 配置房屋不能在城鎮蓋屋
A:Scripts\Regions\GuardedRegions.cs
L172: return true; Allows houses to be placed almost everywhere (in towns, too)
Q: 配置禁止保險功能
A:Scripts\Misc\CurrentExpansion.cs
L12: Mobile.InsuranceEnabled = !Enabled; Disable insurance
Q: AOS,SE,ML
A:Scripts\Misc\CurrentExpansion.cs
L8: private static readonly Expansion Expansion = Expansion.ML; None, AOS, SE, ML