标签 ultima online 下的文章

runuo.png

sudo apt install dirmngr ca-certificates gnupg
sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/debian stable-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

sudo apt install mono-devel mono-complete mono-dbg referenceassemblies-pcl ca-certificates-mono mono-xsp4

作者: reistlin
来源: http://www.reistlin.com/blog/470
更新时间: 2024.06
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

runuo.png

一,下载

RunUO 2.0 下载:
[https://github.com/runuo/runuo/tree/releases/2.0]

Neruns Distro 5.2.1a 下载:
[https://github.com/nerun/runuo-nerun-distro/releases/tag/Old-521a]

ClassicUO 下载:
[https://github.com/ClassicUO/ClassicUO]

Ultima Online Mondains Legacy 蒙丹遗产:
[Client Patch 5.0.9.1]

二,安装

1)解压缩 RunUO-2.0 和 NerunsDistro.v5.2.1a

2)将 NerunsDistro.v5.2.1a 文件夹下的 DataScripts 两个文件夹 复制(覆盖) 到 RunUO-2.0

3)复制 zlib32.dllzlib64.dll 文件到 RunUO-2.0

4)进入 RunUO-2.0,新建 Build.bat 文件:

@echo off

chcp 65001
echo.

echo ================ 删除 RunUO.exe ================
echo.
del /s /q /s "%~dp0RunUO.exe"
echo.

timeout /t 1

echo.
echo ================ 编译 RunUO.exe ================
echo.
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc /optimize /unsafe /t:exe /out:RunUO.exe /win32icon:Server\runuo.ico /d:NEWTIMERS /d:NEWPARENT /recurse:Server\*.cs
echo 编译完成...

timeout /t 5

5)运行 Build.bat 文件。完成 .NET 编译,生成 RunUO.exe 文件。

runuo_build.png

三,配置

1)设置 UO 服务器名称
编辑文件:Scripts\Misc\ServerList.cs

public static readonly string ServerName = "RunUO TC";
为:
public static readonly string ServerName = "REISTLIN";

2)设置 UO 服务器客户端(蒙丹遗产 UOML v5.0.9.1)路径
编辑文件:Scripts\Misc\DataPath.cs

private static string CustomPath = null;
为:
private static string CustomPath = @"D:\Games\Ultima Online ML (5.0.9.1)";

3)设置 UO 服务器支持客户端版本(Client Patch < v6.0.0.0
编辑文件:Scripts\Misc\MapDefinitions.cs

RegisterMap( 1, 1, 1, 7168, 4096, 0, "Trammel",		MapRules.TrammelRules );
为:
RegisterMap( 1, 1, 0, 7168, 4096, 0, "Trammel",		MapRules.TrammelRules );
以及:
TileMatrixPatch.Enabled = false;
为:
TileMatrixPatch.Enabled = true;

四,启动

1)运行 RunUO.exe

runuo_init.png

2)设置 ClassicUO Launcher 客户端登录

runuo_login.png

3)登录游戏,点击界面或者输入命令:

[PremiumSpawner

启动 Premium Spawner Engine 世界初始化界面,根据需要自动生成各个地图物品、NPC。

runuo_admin.png

4)RunUO GM 命令:[https://runuo.github.io/runuo/docs/commands.html]

五,UO 中文配置

1)UO 客户端配置文件:Uo.cfg

UserLanguageCodeString=CHT

2)ClassicUO Launcher 配置文件:ClassicUO Launcher\ClassicUO\settings.json

"lang": "CHT",

uo.png

2012年

2011年

2010年

2009年

2008年

2007年

2006年

2005年

2004年

2003年

2002年

2001年

2000年

1999年

1998年

1997年

作者: reistlin
来源: http://www.reistlin.com/blog/444
更新时间: 2024.04
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

uo.png

UO Outlands:[https://uooutlands.com]
UO Razor Assistant:[https://www.razorce.com]

一,关闭 UO 客户端,编辑 default.xml 文件

游戏目录\ClassicUO\Data\Plugins\Assistant\Profiles\default.xml

二,替换 XML 标签 overheadmessages 之间的内容

<overheadmessages>
	<overheadmessage searchtext="The world will save in 15 seconds" message="* 服务器准备保存 *" hue="53" />
	<overheadmessage searchtext="The world is saving, please wait" message="* 服务器正在保存 *" hue="38" />
	<overheadmessage searchtext="World save complete" message="* 服务器保存完成 *" hue="68" />
	<overheadmessage searchtext="Captcha successful" message="* 验证成功 *" hue="68" />
	<overheadmessage searchtext="You are now under the protection of the town guards" message="* 进入城镇(安全) *" hue="68" />
	<overheadmessage searchtext="You have left the protection of the town guards" message="* 离开城镇(危险) *" hue="53" />
	<overheadmessage searchtext="You enter the rental room" message="* 进入房间(租用) *" hue="68" />
	<overheadmessage searchtext="You exit the rental room" message="* 离开房间(租用) *" hue="53" />
	<overheadmessage searchtext="You begin applying the bandages" message="* 开始绷带 *" hue="88" />
	<overheadmessage searchtext="You finish applying the bandages" message="* 绷带完成 *" hue="68" />
	<overheadmessage searchtext="You begin using veterinary supplies" message="* 开始绷带(宠物) *" hue="88" />
	<overheadmessage searchtext="You finish using veterinary supplies" message="* 绷带完成(宠物) *" hue="68" />
	<overheadmessage searchtext="You are able to resurrect your follower" message="* 绷带复活(宠物) *" hue="68" />
	<overheadmessage searchtext="You fail to resurrect one or more of your followers" message="* 绷带复活(失败) *" hue="38" />
	<overheadmessage searchtext="Passive taming skill gain available" message="* 获得技能(驯兽) *" hue="68" />
	<overheadmessage searchtext="You enter a meditative trance" message="* 开始冥想 *" hue="68" />
	<overheadmessage searchtext="You stop meditating" message="* 停止冥想 *" hue="68" />
	<overheadmessage searchtext="You cannot focus your concentration" message="* 冥想失败 *" hue="53" />
	<overheadmessage searchtext="You are currently prevented from" message="* 禁止拾取 *" hue="53" />
	<overheadmessage searchtext="Magical travel is not allowed in this location" message="* 禁止传送 *" hue="53" />
	<overheadmessage searchtext="You are too fatigued to move" message="* 已超重 *" hue="38" />
	<overheadmessage searchtext="You charge your spell with additional energy" message="* 法术充能 *" hue="88" />
	<overheadmessage searchtext="You absorb their spell" message="* 法术吸收 *" hue="88" />
	<overheadmessage searchtext="You parry the spell" message="* 法术格挡 *" hue="88" />
	<overheadmessage searchtext="Being perfectly rested, you shove them out of the way" message="* 推开 *" hue="88" />
	<overheadmessage searchtext="Your attack causes your target to bleed" message="* 流血 *" hue="88" />
	<overheadmessage searchtext="You smash through the remainder" message="* 破甲 *" hue="88" />
	<overheadmessage searchtext="Your shot hinders your target" message="* 定身 *" hue="88" />
	<overheadmessage searchtext="Your lightning spell hinders your target" message="* 定身(闪电) *" hue="88" />
	<overheadmessage searchtext="You cause your target to bleed out" message="* 终结技(BleedOut) *" hue="88" />
	<overheadmessage searchtext="You execute your target" message="* 终结技(Execute) *" hue="88" />
	<overheadmessage searchtext="Crafting queue begun" message="* 开始制造(队列) *" hue="68" />
	<overheadmessage searchtext="Crafting queue stopped" message="* 停止制造(队列) *" hue="53" />
	<overheadmessage searchtext="Crafting queue complete" message="* 制造完成(队列) *" hue="68" />
	<overheadmessage searchtext="You create the item" message="* 制造成功 *" hue="68" />
	<overheadmessage searchtext="You create an exceptional quality item" message="* 制造成功(卓越) *" hue="68" />
	<overheadmessage searchtext="You failed to create the item" message="* 制造失败 *" hue="53" />
	<overheadmessage searchtext="You pour the potion into a bottle" message="* 制造成功 *" hue="68" />
	<overheadmessage searchtext="You fail to create a useful potion" message="* 制造失败 *" hue="53" />
	<overheadmessage searchtext="You don't have the resources required to make that item" message="* 缺少制造材料 *" hue="53" />
	<overheadmessage searchtext="You have worn out your tool" message="* 工具损坏 *" hue="38" />
	<overheadmessage searchtext="Target an individual item to recycle" message="* 选择物品(回收) *" hue="53" />
	<overheadmessage searchtext="You successfully steal the item" message="* 偷窃成功 *" hue="68" />
	<overheadmessage searchtext="You fail in your stealing attempt" message="* 偷窃失败 *" hue="38" />
	<overheadmessage searchtext="Now tracking" message="* 目标 {3} *" hue="38" />
	<overheadmessage searchtext="Distance to destination" message="* 目标距离 {4} *" hue="38" />
	<overheadmessage searchtext="You cannot cast a spell while frozen" message="* 无法施法 *" hue="38" />
	<overheadmessage searchtext="You cannot move" message="* 无法移动 *" hue="38" />
	<overheadmessage searchtext="You must wait another" message="* 冷却 {5} 秒 *" hue="53" />
	<overheadmessage searchtext="Target cannot be seen" message="* 目标不在视野 *" hue="53" />
	<overheadmessage searchtext="You cannot see that from here" message="* 目标不在视野 *" hue="53" />
	<overheadmessage searchtext="That is too far away" message="* 距离太远 *" hue="53" />
	<overheadmessage searchtext="That vendor is too far away from you" message="* 距离太远(商人) *" hue="53" />
	<overheadmessage searchtext="You are too far away to use that" message="* 距离太远(物品) *" hue="53" />
	<overheadmessage searchtext="Target is too far away." message="* 距离太远(目标) *" hue="53" />
	<overheadmessage searchtext="You or your nearby followers do not require healing" message="* 距离太远(宠物) *" hue="53" />
	<overheadmessage searchtext="You do not have enough holy symbols for that ability" message="* 神圣符文不足 *" hue="53" />
	<overheadmessage searchtext="You consume a magic mushroom and restore some mana" message="* 魔法蘑菇(已使用) *" hue="68" />
	<overheadmessage searchtext="You may now use another magic mushroom" message="* 魔法蘑菇(已冷却) *" hue="88" />
	<overheadmessage searchtext="You have been in combat" message="* 战斗状态中 *" hue="53" />
	<overheadmessage searchtext="That spell will not adhere to you at this time" message="* 法术冷却中 *" hue="53" />
	<overheadmessage searchtext="You are already casting a spell" message="* 施法进行中 *" hue="53" />
	<overheadmessage searchtext="You have not yet recovered from casting a spell" message="* 施法恢复中 *" hue="53" />
	<overheadmessage searchtext="Your concentration is disturbed, thus ruining thy spell" message="* 施法被干扰 *" hue="38" />
	<overheadmessage searchtext="You must wait to perform another action" message="* 等待动作完成 *" hue="53" />
	<overheadmessage searchtext="You must wait a few moments to use another skill" message="* 等待技能完成 *" hue="53" />
	<overheadmessage searchtext="You must wait a few moments before you may use this item again" message="* 等待物品完成 *" hue="53" />
	<overheadmessage searchtext="You must wait another moment before you may pick up an item from here" message="* 等待拾取物品 *" hue="53" />
	<overheadmessage searchtext="The recipient of this trade would not be able to carry this" message="* 对方无法接收 *" hue="53" />
	<overheadmessage searchtext="There are no charges left on that item" message="* 剩余次数用完 *" hue="53" />
	<overheadmessage searchtext="You do not have that spell" message="* 没有这个法术 *" hue="53" />
	<overheadmessage searchtext="You must be near an anvil and a forge to smith items" message="* 没有锻炉铁砧 *" hue="53" />
	<overheadmessage searchtext="You place the gathered wool into your backpack" message="* 收集羊毛 *" hue="88" />
	<overheadmessage searchtext="You begin to move quietly" message="* 开始潜行 *" hue="88" />
	<overheadmessage searchtext="You feel comfortable enough to begin stealthing	" message="* 开始潜行 *" hue="88" />
	<overheadmessage searchtext="You feel ready to continue stealthing" message="* 继续潜行 *" hue="88" />
	<overheadmessage searchtext="You will automatically stealth when out of steps" message="* 继续潜行 *" hue="88" />
	<overheadmessage searchtext="Lock what down" message="* 锁定(Lock) *" hue="68" />
	<overheadmessage searchtext="Choose the item you wish to secure" message="* 保护(Secure) *" hue="68" />
	<overheadmessage searchtext="Choose the item you wish to release" message="* 解锁(Release) *" hue="38" />
	<overheadmessage searchtext="You cannot pick that up" message="* 无法拾取物品 *" hue="53" />
</overheadmessages>

三,启动游戏,Razor > General > Profiles 选择 default。

Outlands.jpg

作者: reistlin
来源: http://www.reistlin.com/blog/443
更新时间: 2024.01
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

uo.png

UO Outlands:[https://uooutlands.com]
UO Razor Assistant:[https://www.razorce.com]

# Auto Mining v1.2
# By REISTLIN

# Auto Recall ON/OFF
@setvar! AutoRecall 1

// Disparalyze
if paralyzed
    if findtype "pouch" backpack
        yell "[pouch"
    else
        overhead "* 没有 Trapped Pouch *" 38    
    endif
endif

// Auto Recall
if AutoRecall = 1
    if insysmsg "Distance to destination" or insysmsg "Now tracking"
        // Cancel Target
        if targetexists
            hotkey "Clear Target Queue"
            hotkey "Cancel Current Target"
        endif

        // Interrupt Current Action
        hotkey "> Interrupt"

        // Rune Book
        if findtype "runebook" backpack
            overhead "* 开始传送 *" 88
            dclicktype "runebook"
            waitforgump 1551740969
            gumpresponse 2
            stop
        endif

        // Outlands Requirement
        if findtype "Recall rune" backpack
            if skill "Magery" >= 40
                // Recall Scroll
                if findtype "Recall" backpack
                    overhead "* 开始传送(卷轴) *" 88
                    dclicktype "Recall"
                    waitfortarget
                    targettype "Recall rune"
                    stop                
                endif
                // Spell Book
                if findtype "Spellbook" backpack and findtype "Black Pearl%s%" backpack and findtype "Blood Moss" backpack and findtype "Mandrake Root%s%" backpack
                    overhead "* 开始传送(魔法) *" 88
                    cast "Recall"
                    waitfortarget
                    targettype "Recall rune"
                    stop
                endif
            else
                overhead "* 魔法技能不够 *" 38
            endif
        else
            overhead "* 没有传送符文 *" 53    
        endif
    endif
endif

// Check Tracking Buff
if not findbuff "tracking"
    skill "tracking"
    waitforgump 4267467659 
    gumpresponse 6
    wait 1000
    gumpclose 4267467659
    overhead "* 追踪中 *" 
endif

// Check Right Hand
if rhandempty
    if findtype "pickaxe" backpack
        dclicktype "pickaxe" backpack
        wait 500
    else
        overhead "* 没有采矿工具 *" 38 
        break
    endif
endif

// Check Over Weight
if weight > maxweight
    overhead "* 已超重 *" 38
else
    dclick "hands"
endif

// Report Status
if insysmsg "You dig some"
    overhead "* 采矿中 *" 88
elseif insysmsg "You have worn out your tool"
    overhead "* 采矿工具损坏 *" 38
elseif insysmsg "You do not see any harvestable resources nearby"
    overhead "* 没有采矿资源 *" 53
elseif insysmsg "Harvesting is not allowed in this area"
    overhead "* 禁止采矿区域 *" 53
endif

wait 2000

loop

作者: reistlin
来源: http://www.reistlin.com/blog/444
更新时间: 2024.01
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

uo.png

UO Outlands:[https://uooutlands.com]
UO Razor Assistant:[https://www.razorce.com]

# Auto Lumberjacking v1.2
# By REISTLIN

# Auto Recall ON/OFF
@setvar! AutoRecall 1

// Disparalyze
if paralyzed
    if findtype "pouch" backpack
        yell "[pouch"
    else
        overhead "* 没有 Trapped Pouch *" 38     
    endif
endif

// Auto Recall
if AutoRecall = 1
    if insysmsg "Distance to destination" or insysmsg "Now tracking"
        // Cancel Target
        if targetexists
            hotkey "Clear Target Queue"
            hotkey "Cancel Current Target"
        endif

        // Interrupt Current Action
        hotkey "> Interrupt"

        // Rune Book
        if findtype "runebook" backpack
            overhead "* 开始传送 *" 88
            dclicktype "runebook"
            waitforgump 1551740969
            gumpresponse 2
            stop
        endif

        // Outlands Requirement
        if findtype "Recall rune" backpack
            if skill "Magery" >= 40
                // Recall Scroll
                if findtype "Recall" backpack
                    overhead "* 开始传送(卷轴) *" 88
                    dclicktype "Recall"
                    waitfortarget
                    targettype "Recall rune"
                    stop                
                endif
                // Spell Book
                if findtype "Spellbook" backpack and findtype "Black Pearl%s%" backpack and findtype "Blood Moss" backpack and findtype "Mandrake Root%s%" backpack
                    overhead "* 开始传送(魔法) *" 88
                    cast "Recall"
                    waitfortarget
                    targettype "Recall rune"
                    stop
                endif
            else
                overhead "* 魔法技能不够 *" 38
            endif
        else
            overhead "* 没有传送符文 *" 53    
        endif
    endif
endif

// Check Tracking Buff
if not findbuff "tracking"
    skill "tracking"
    waitforgump 4267467659 
    gumpresponse 6
    wait 1000
    gumpclose 4267467659
    overhead "* 追踪中 *"
endif

// Check Left Hand
if lhandempty
    if findtype "hatchet" backpack
        dclicktype "hatchet" backpack
        wait 500
    else
        overhead "* 没有伐木工具 *" 38
        break
    endif
endif

// Check Over Weight
if weight > maxweight
    overhead "* 已超重 *" 38
else
    dclick "hands"
    waitfortarget 500
    target "self"
endif

// Report Status
if insysmsg "You chop some"
    overhead "* 伐木中 *" 88
elseif insysmsg "You broke your axe"
    overhead "* 伐木工具损坏 *" 38
elseif insysmsg "You do not see any harvestable resources nearby" or insysmsg "You cannot produce any wood from that"
    overhead "* 没有伐木资源 *" 53
elseif insysmsg "Harvesting is not allowed in this area"
    overhead "* 禁止伐木区域 *" 53
endif

wait 2000

loop

当听人提到骑士(Knights)这个词时,你会联想到什么?是一名骑着高头大马在城市道路上巡逻的长矛战士,还是在晚霞的映照下拍马冲锋陷阵的重装士兵?是富丽堂皇的宫廷里那潇洒英俊款款深情的高大男子,还是离别挚爱迈出家门的回头一瞥的勇士?如果单纯从字面上来理解,骑士就是跨坐在战马上的武装战士,他们经受了严格的训练,是中世纪欧洲最精锐的部队,是在辽阔土地上自由驰骋的雄鹰。但如果只是这么来阐述何为骑士,肯定无法令我们满意。我们乐意看到这个词被赋予更多的含义,刀剑背后有着执着的梦想,铁血躯体内亦有万丈柔情。

公元800年,法兰克王国的查理大帝一统西欧,被教皇加冕为“伟大的罗马皇帝”,12名跟随查理大帝南征北战的勇士就当然成了“神的侍卫”,他们被人们称为“帕拉丁(Paladin)”,即圣骑士,这被视为骑士的起源。完整的骑士制度到公元11世纪才成形,从严格意义上来说,骑士意味着一个阶层。原本骑士是隶属于贵族的士兵,并且有义务为王国作战(每年为王国或者领主服务约40日),作为报酬,他们管辖部分农地收取农租。这样在王国的贵族和骑士之间就形成了一种契约式的雇佣关系。初期的所有战士都有可能成为骑士,不过后来具有地主身份的骑士渐渐形成了一个固定的阶级,他们已然成为贵族、统治者的附庸。罗马天主教和统治者发动的十字军东征,把骑士阶层推向极度繁荣的历史时期,战士的骁勇和基督教的神圣信仰开始结合,骑士随之也具备了一个新的身份:基督的卫士。披上天主光辉的骑士终于成为深受崇拜与尊敬的人物,他们忠诚于统治者和基督,在基督教的教义感召下乐于救助鳏寡老幼,这样,“骑士脱离了其蛮族和异教的背景,而被整合于基督教文化的社会结构中。结果,骑士像神甫和农民那样,被视为社会不可或缺的三个器官之一。”从中世纪盛行的骑士文学里,我们还能惊喜地发现骑士罗曼蒂克的一面:他们言行得体,举止优雅,追求浪漫的爱情,并且爱情观别具一格——爱情是纯精神性质的感情,肉欲是其间邪恶的亵渎成分。这无疑增添了他们的圣洁色彩。

这样一来,骑士就具备了很多令人称颂的美德:作为武士,他们忠诚;作为信徒,他们谦恭;作为男人,他们纯洁;作为贵族,他们具有同情心。骑士是正义和力量的化身,荣耀和浪漫的象征,骑士制度则成为西方的伦理标准,深刻地影响了人们的观念和行为。时至今日,英国仍然设有骑士头衔,凡是为国家和社会作出重大贡献的杰出人物,便有可能得到女王的授勋。

ultimaonline.png

[ 网络创世纪 Ultima Online ]

在我们的电脑游戏中,“骑士”这个词得到了有趣的、妙不可言的阐述。网络游戏(Multi-User Dungeon or Dimension,以下简称MUD)鼻祖《网络创世纪》(Ultima Online,以下简称UO)在它的世界观里把融合了基督教义的骑士精神概括为著名的八大美德:谦卑、荣誉、牺牲、英勇、怜悯、精神、诚实、公正。历来在很多玩家心目中,这八个词被视为骑士精神的完美表述。下面,让我们来谈谈这八大美德。

- 阅读剩余部分 -