TinyTip 修改頭銜顯示格式

最近換用了TinyTip(Hughman修改版)代替之前的TipTac,
因為它能夠在滑鼠提示裡顯示該角色的雙天賦個人覺得很實用,
可惜TinyTip的頭銜顯示格式是「角色名字 + 頭銜」,
看起來就覺得很怪:
tinytip01
而自己希望是顯示成「頭銜 + 角色名字」並去掉礙眼的「,」,
所以試著修改原本的程式,
原本顯示角色頭銜的內容為:

if TTVar.PVPRank and IsPlayer then
  tmp2 = UnitPVPName(unit)
  tmp3 = nil
  if tmp2 and tmp2 ~= name then
    i = strfind(tmp2, name)
    if i and i > 1 then 
      tmp3 = strsub(tmp2, 1, i - 1 )
    elseif i == 1 then
      _, tmp3 = tmp2:match("(.+),(.+)") --strsub(tmp2, strlen(name)+1)
    end
  end
  tmp3 = tmp3 and (", " .. tmp3) or ""
  L1:SetText( tmp .. tmp3)
else
  L1:SetText( tmp )
end

改成以下這樣,主要改動在第298~299行:

if TTVar.PVPRank and IsPlayer then
  tmp2 = UnitPVPName(unit)
  tmp3 = nil
  if tmp2 and tmp2 ~= name then
    i = strfind(tmp2, name)
    if i and i > 1 then 
      tmp3 = strsub(tmp2, 1, i - 1 )
    elseif i == 1 then
      _, tmp3 = tmp2:match("(.+),(.+)") --strsub(tmp2, strlen(name)+1)
    end
  end
  tmp3 = tmp3 and tmp3 or ""
  L1:SetText( tmp3 .. tmp)
else
  L1:SetText( tmp )
end

另外也將單位W換成萬,

local percent = format("%.1f%%", (val / max * 100))
	tmp, tmp2 = 10000, "W"
	if val and val > tmp then val = format("%.1f %s", (val/tmp), tmp2 ) end
	if max and max > tmp then max = format("%.1f %s", (max/tmp), tmp2 ) end
[/cce_lua]
改成:
[cce_lua first_line="565" line_numbers="1" width="650"]
	local percent = format("%.1f%%", (val / max * 100))
	tmp, tmp2 = 10000, "萬"
	if val and val > tmp then val = format("%.1f %s", (val/tmp), tmp2 ) end
	if max and max > tmp then max = format("%.1f %s", (max/tmp), tmp2 ) end

成果如下:
tinytip02

Firefox 3.6正式推出!

正體中文站

歷經五次Beta版和兩次RC版後終於推出正式版本,
雖然比預設時期延遲了些時間但為了品質相信是值得的。
3.6版本對javascript處理速度上真的有改進,
可惜程式第一次啟動的速度還是有點慢,
聽到的說法是Firefox本身架構的關係,
強化了擴充性但犧牲了些速度。

不過以單純讀取網頁速度來說,
和用過的Opera、Google Chrome等相比其實差異很小了,
而且每次執行的狀況不同也很難客觀地比較,
而Firefox許多實用的套件真的是令人難以釋手。
fx3.6

終於拿到審判胸甲~終結三年來的宿願

總算是讓我的聖騎士從黑翼之巢畢業了,
三年前就這樣穿著七缺一的審判套裝(T2)挺進TBC,
終於在下午的懷舊團如願!
拿到之後還特別去弄了法力+100的附魔(60級年代的東西)。
mypal_t2
背後的AL也是後來懷舊團才拿到的,
當年拿的是悲哀使者。

T2套裝的設計真的是很經典,
尤其是鎧甲裙還是保有重甲的感覺,
同樣的設計T8的鎧甲裙看起來就太像布甲,
T10就好多了但是走陰暗的色彩風格,
果然還是T2最賞心悅目。

PitBull4 數值單位換算再修正

好像有點玩上癮了,
用了一天發現數值判斷還要再調整一下,
畢竟用的單位變小(百萬→萬),
數字也就變大了,
為了配合PitBull短格式的設計我多寫了一條判斷,
當數值達一百萬以上不顯示小數點以下的數字,
看起來比較不會一長串佔空間的感覺。

以 PitBull4_DogTagTexts\libs\LibDogTag-3.0\Categories\TextManip.lua 這檔案為例,
在函式 DogTag:AddTag(“Base”, “Short”) 中的 if type(value) == “number” 下的起頭多加一項判斷:

if type(value) == "number" then
  if value >= 100000 or value <= -100000 then
    return ("%.1f萬"):format(value / 10000)
  elseif value >= 10000 or value <= -100000 then
    return ("%.2f萬"):format(value / 10000)
  --elseif value >= 100000 or value <= -100000 then
  --	return ("%.0fk"):format(value / 1000)
  --elseif value >= 10000 or value <= -10000 then
  --	return ("%.1fk"):format(value / 1000)
  else
    return math.floor(value+0.5)..''
  end
else

所以又做了一些修正:

if type(value) == "number" then
  if value >= 1000000 or value <= -1000000 then
    return ("%.0f萬"):format(value / 10000)
  elseif value >= 100000 or value <= -100000 then
    return ("%.1f萬"):format(value / 10000)
  elseif value >= 10000 or value <= -100000 then
    return ("%.2f萬"):format(value / 10000)
  --elseif value >= 100000 or value <= -100000 then
  --	return ("%.0fk"):format(value / 1000)
  --elseif value >= 10000 or value <= -10000 then
  --	return ("%.1fk"):format(value / 1000)
  else
    return math.floor(value+0.5)..''
  end
else

其他幾個地方也要加入同等的判斷。

成果:
pitbull4_textfix

Shadowed Unit Frames 修改生命/法力值換算單位

因為有PTT WOW版友問到SUF是否也可以改成萬來換算,
以ShadowedUnitFrames 3.1版為例,
找到一下SUF是在 ShadowedUnitFrames/modules/tags.lua 這個檔案,
一樣用文字編輯器打開它,
在第218~228行有以下兩個函式:

function ShadowUF:FormatLargeNumber(number)
  if( number &lt; 9999 ) then
    return &lt; number
  elseif( number &lt; 999999 ) then
    return string.format("%.1fk", number / 1000)
  elseif( number &lt; 99999999 ) then
    return string.format("%.2fm", number / 1000000)
  end

  return string.format("%dm", number / 1000000)
end

可以改成以下這個樣子:

function ShadowUF:FormatLargeNumber(number)
  if( number &lt; 99999 ) then
    return number
  elseif( number &lt; 999999 ) then
    return string.format("%.1f萬", number / 10000)
  elseif( number &lt; 99999999 ) then
    return string.format("%d萬", number / 10000)
  end

  return string.format("%.2f億", number / 100000000)
end

當數值為不到十萬時顯示完整數值,
十萬至一百以下以萬為單位並顯示一位小數,
一百萬至一億內的值顯示以萬為單位的整數,
而超過一億的值(也就是上面沒列到的條件)則可顯示兩位小數的值並以億為單位,
改完一樣儲存成無BOM的UTF-8格式。

只有一個檔案改起來比PitBull簡單多了,
另外if判斷裡數值的大小要不要改就看你要設定哪個範圍的數值要以你想要的方式顯示。

成果:
suf_fix

PitBull4 修改生命/法力值換算單位

[已有新改法請一同參考PitBull4 數值單位換算再修正]

使用PitBull做為頭像已經有好一陣子了
不過它的血量/法力值如果有加Short、VeryShort等修飾語法
換算單位是用m(百萬)、k(千)這類英美常用的換算單位
而不是像台版內建用是的華人地區常用的萬
之前在PTT WOW版上詢問PitBull生命值的數值設定時曾有人順道問過這個問題
最近突然想到便想改看看

因此翻了一下PitBull的原始碼改看看
所使用的版本是4.0.0 Beta8版
需要更動的程式碼有兩個檔案:
PitBull4_DogTagTexts\libs\LibDogTag-3.0\Categories\TextManip.lua

PitBull4_LuaTexts\ScriptEnv.lua
前者是DogTagTexts後者是LuaTexts
端看你所用來顯示數值的是哪一個模組。
閱讀更多 PitBull4 修改生命/法力值換算單位

光畫社新聞Blog文章日期修正

昨天發現到Blog上的文章怎麼順序都不對,
仔細看發現所有的文章日期都變成2010-01-15 02:00:58之後,
幸好文章數還不多,
乾脆直接進資料庫手動改,
文章日期是儲存在plog_articles資料表的date欄位中,
找出舊的資料庫SQL檔進行比對修正就可以了,
修完正畢後資料庫也立即備份。

FreeBSD – /etc/fstab出錯的解決方法

有時/etc/fstab這個檔案不小心改錯了,
或是將系統碟移到其他機器上發生抓取的裝置名稱和/etc/fstab內容不符時,
開機後無法正常啟動FreeBSD而進入單人模式,
此時會發現無法使用vi、ee等編輯器修改/etc/fstab ,
這是因為像/usr等分區還沒有被掛入,
解決方法如下:

先將掛載 / 並設定為可讀寫,此例 / 是在ad0s1a
# mount -o rw /dev/ad0s1a

接下來就將/usr 掛入,此例 /usr 是在ad0s1f
# mount /dev/ad0s1f /usr

就可以使用ee等編輯器把/etc/fstab修改好,再重新開機應該就沒問題了。

為lifetype的清除垃圾

因為數年累積下來的垃圾讓光畫社的新聞Blog變得相當肥大,
現在找出元兇是plog_articles_comments和plog_bayesian_tokens這兩個資料表,
前者是包含一大堆垃圾迴響&引用的內容,
後面是貝氏過瀘所抓取到的token,
這兩個資料表在匯入資料庫之後就是一整個肥大。

首先利用vim將plog_articles_comments資料表中非正常迴響的欄位內容全部刪掉,
一共有4萬6千多篇的垃圾(正常的也才13篇…),
接著是清空plog_bayesian_tokens資料表,
因為也是超級多乾脆清掉讓它重新抓取,

最後再到plog_articles和plog_blogs兩個資料表,
將plog_articles資料表的num_trackbacks、num_nonspam_trackbacks,
和plog_blogs資料表的num_trackbacks共三個欄位直接清成0,
因為已經將所有的引用全部刪除,
所以這邊的資料也需要修改。

整個做完後資料庫空間佔不到2MB的空間,
原來之前有超過90%的空間都被垃圾佔去,
實在是很恐怖…

emesene 1.6 推出囉

emesene官網:
http://www.emesene.org/

自從MSN Messager 8.5版之後就不怎麼喜歡微軟自家的東西上MSN,
開始改用其他的軟體,
這當中像是Pidgin、aMan、Miranda IM、emesene等都用過,
其中最喜愛用的就是小巧emesene,
功能也符合我的需求(如Esc鍵不會關閉對話視窗),
只可惜先前1.5.1版會有䁥稱設定的問題,
每次上線它會自動從你的Windows Live帳號讀取個人名稱作為你的暱稱,
結果就是每次上線就要自己改一次,
也因為如此中間有一陣子改用Pidgin。
而現在終於推出新的1.6版,
for Windows的可執行版也在日前釋出,
解決了個人暱稱的問題並修正一些Bug。