22 12
發新話題
打印

教改SP檔 (意見收集 @ #11)

[Close]

教改SP檔 (意見收集 @ #11)

禁我飛去教學第2 PART


正所謂工欲善其事,必先利其器
第一步,你須要有編寫既工具
當然notepad都得,但係notepad睇唔到行數
所以我推薦大家用EmEditor.
上google就可以search到 (破解版個d,用心搵下就會搵到 =])

當你安裝好晒後,就應該會見到呢個介面

首先教D簡單既, 漢化先啦
大家都經常係插件網站度見到XXX漢化
咁漢化究竟係咩黎呢?
其實漢化就係將外國插件網公開source既插件
將其中會顯示比玩家/場主見到既字
翻譯後再取代本來既文字,令使用者覺得親切.

ok先黎個簡單示範一個好常見既插件,  入場提示插件
以呢個插件為例子:l4d2_playerjoining.sp用em開左之後會見到呢個畫面


大家係左手面會見到由1-N的數字順序而整齊咁排列好
但係佔據中間的一大堆字只係單調既黑色係咪睇落好唔順眼
好難分呢?
只要你跟以下既步驟做...




就會見到一個彩色既世界了


係咪順眼左好多呢


好,基本開始步驟完了,然後到正式的"漢化"了
未開始漢化前,先介紹下最基本sourcemod用黎顯示文字比玩家/場主睇既編程字眼分別係:
PrintToChat,PrintHintText,PrintCenterText(以上3個係對應指定某位玩家的)

而相對全場玩家都可以睇到既編程字眼會係: PrintToChatAll,PrintHintTextToAll,PrintCenterTextAll


以l4d2_playerjoining.sp中既42106行做例子
PrintToChatAll("%s \x04%N\x01 has connected to the server.", TAG_INFO, client);
PrintToChat(i, "%s \x04%N\x01 has joined the %s.", TAG_INFO, player, sTeam);

呢2句分別係對應全場玩家指定玩家既顯示句法
你會見到中間粉紅色左一段字,而佢頭尾分別比" 括住
呢個括號里面既內容就係會顯示比玩家睇到既字
仔細d睇,你會見到有d (%s ,%N, \x04, \x01)呢d怪獸
暫時你地會唔知佢地係乜,但係我遲下會講解既 =]

ok,咁大家將注意力集中係has connected to the server呢part
呢句好簡單, 將佢翻譯成中文就係: 已連接到伺服器
大家只要將已連接到伺服器覆蓋has connected to the server
就基本完成左漢化了,係咪好簡單呢?

不過未完, 你仲要save好佢再將sp檔轉成smx檔先叫完成架嘛
save as個時有少少須要留意既
就係將編碼個度由 繁體中文  轉為  UTF-8



點解咁做呢?  
(註: 如果冇興趣知,可以飛左以下呢段文字)
如果你有讀過電腦既,你應該會知道電腦世界所有野都係由1同0組成
而我地人類就利用1同0唔同既排列方法黎進行儲存我地所須要既內容
呢度所指唔同既排列方法,就係編碼
你用A排列方法黎SAVE B排列方法既內容,電腦當然唔識睇而變成亂碼
所以你就要轉番編碼做UTF-8 呢個相對容納性較大既排列方法啦!




完成儲存呢個步驟就到compile啦
你可以去X:\Program Files\Steam\SteamApps\common\left 4 dead 2\left4dead2\addons\sourcemod\scripting
度搵到compile.exe呢個程式

compile.exe係一個轉換器
佢既功用係將sp檔轉做smx檔

方法好簡單,只要將sp檔拖去compile.exe上
佢就會幫你轉做smx了




最後去X:\Program Files\Steam\SteamApps\common\left 4 dead 2\left4dead2\addons\sourcemod\scripting\compiled
度搵番l4d2_playerjoining.smx
將佢COPY去X:\Program Files\Steam\SteamApps\common\left 4 dead 2\left4dead2\addons\sourcemod\plugins
就完成全個步驟了

教學完畢

禁我飛去教學第2 PART

[ 本帖最後由 leo221094 於 2010-9-3 15:59 編輯 ]
附件: 您所在的用戶組無法下載或查看附件

TOP

真係好好,好有用,有埋圖文並茂,都好詳細,好啱D初學者自用。有D sp檔我想改但係又唔識,依家可以試吓學吓改 ,感謝無私分享

TOP

http://forums.alliedmods.net/showthread.php?t=93892

可以試吓呢個
係外國D人整
專為.sp檔上色既(Notepad++用)

TOP

支持一下
Steam: startv_
建議場主輸入 sv_consistency "0" in server.cfg

TOP

幾正,,,,好

TOP

引用:
原帖由 kennyfong 於 2010-8-31 07:02 發表
http://forums.alliedmods.net/showthread.php?t=93892

可以試吓呢個
係外國D人整
專為.sp檔上色既(Notepad++用)
的確係唔錯
不過暫時對em都幾滿意,未需要轉住
thx a lot

TOP

引用:
原帖由 kennyfong 於 2010-8-31 07:02 發表
http://forums.alliedmods.net/showthread.php?t=93892

可以試吓呢個
係外國D人整
專為.sp檔上色既(Notepad++用)
我本身係用Notepad++,你提供呢個對我好有用 ,已收下,謝謝

[ 本帖最後由 etsa 於 2010-10-2 16:59 編輯 ]

TOP

改SP檔 Part 2
繼續上一回講開既場內顯示部份

上回提過,基本顯示句法有6句,分別係:
PrintToChat , PrintToChatAll , PrintHintText , PrintHintTextToAll , PrintCenterText , PrintCenterTextAll

先示範下佢地既分別
首先PrintToChat  & PrintToChatAll

基本寫法示範:

遊戲顯示效果:


跟住PrintHintText & PrintHintTextToAll
基本寫法示範:


遊戲顯示效果:





最後係PrintCenterText & PrintCenterTextAll
基本寫法示範:




遊戲顯示效果:





大家可以睇到呢6個句法
其實可以分為3類                               (Chat , Hint , Center)
佢地分別會係遊戲入面顯示係畫面既: 左下 , 中間徧下 & 中間徧上

而任何一類所包含個2句分別會顯示比指定玩家全場玩家
而佢地既差異就係1個 加All  1個唔加 (例子: PrintToChat  & PrintToChatAll)
我諗聰明既你,應該好快就可以熟悉咁運用呢d分別


跟住講寫法,望一望下面個示範圖先



仔細望下2425
佢地除左一個有All, 一個冇之外
仲有咩分別?

答案就係24client
25係冇既
呢個client既作用就係用黎指定邊個玩家,你想顯示d字比佢睇的指針.

咁係咪一定要用"client"呢個字黎做指針?
No! 你可以用其他字黎取代佢, 例如:victim, userid, i, fxxk

因為呢個指針其實係一個value值
你可以當佢係一個箱,而呢個箱里面裝住目標玩家既代號
個箱係咩名唔緊要, 重要既係佢裝住既野.

你點知佢究竟係裝住咩呢?
咁就要再睇上面張示範圖啦

改SP好多時都要由下向上咁追溯上去
我依家順便示範埋點追溯
首先搵"client"
成個sp檔裏面只有2224行出現過"client"
咁即係呢2個client係有關連既
而由於22行係1個title 24行係內容  
由此我地可以判定24行"client"呢個value里面裝載既代號
係繼承自22行, 咁22行既"client"又係繼承自邊度呢?

答案係19行, but, why?
原因係由22-26呢個public,其實係由19行所觸發既
我點知? 只要搵出佢地既共通性就會明白.

1922既共通性就係DisplayDemo
DisplayDemo呢個字就係全個22-26 public既名
19行就係一句指示執行DisplayDemo呢個public既寫法

追溯到19行,就係一切既源頭!!
成個程序既觸發就係第19行.
追溯既行動到此結束,但係目的仲未逹到
我地既目的係搵出"client" 呢個箱究竟係裝住d咩?
要想知道就要解釋下19行既作用啦

簡單咁介紹下19行既寫法啦
RegConsoleCmd("!", DisplayDemo);

RegConsoleCmd : 呢個係一個註冊指令既寫法, 而呢個註冊指令係屬於一個公眾形式指令
                              即係場內任何人都可以執行呢個指令.
"!"                        : 執行指令既啟動碼, 你可以當佢係一個口令(例子: 之麻開門)
DisplayDemo       : 收到指令後執行既public 名字,亦即係22-26行public既名字



簡單黎講,當你想自己寫SP或者改人SP個時,只要跟住呢個追溯程序搵到佢既源頭就可以進行修改.
例如: 我唔鐘意用!黎做啟動碼, 我要用 fxxk  咁我就可以改做 "fxxk"
然後當我係game度要執行程序個時, 我只要打!fxxk 就可以要求系統執行程序啦

(順便講埋,好多人開post求人幫改個d !buy 做 !b, !x !123, 跟我呢個教學已經可以自己修改,求人不如求己)


講到呢度,你地會唔會覺得有d"沉"氣?
我都覺,所以後面都係加速啦



最後,我地知道打!!個個玩家既代號就由19行 ->22行 -> 24行 到最後顯示左句句子比呢個玩家睇了

好,教學完畢,去沖涼

[ 本帖最後由 leo221094 於 2010-9-1 22:23 編輯 ]
附件: 您所在的用戶組無法下載或查看附件

TOP

also can use Notepad++
(I am using it, I think it is better)

TOP

支持樓主
sp檔真係唔知點寫

TOP

so far 黎個意見收集, 教呢D野會唔會簡單得濟?

查實我比較PREFER你地改SP時實際上遇到問題既話可以拎出黎大家討論下
好過我咁樣打水蛇春咁長既教學
(查實係我懶得整,又要CAP圖又要做DEMO 囧")

TOP

回復 11# 的帖子

你咁打落去確實會手殘
為左樓主既健康著想
建議樓主改為問答帖。

TOP

問題問題~~~~~~~~
點解唔WORK
自行解決了~~~

[ 本帖最後由 apple_W 於 2010-9-4 12:53 編輯 ]

TOP

請問
要怎麼修改lxd(5)
才能完美支援L4D2

TOP

引用:
原帖由 love6807 於 2010-9-4 01:24 發表
請問
要怎麼修改lxd(5)
才能完美支援L4D2
請引出你認為有問題的source部份
或者你唔確定邊部份有問題可以將sp當先以rar包裝後放上附件

另外,何謂完美支援?

[ 本帖最後由 leo221094 於 2010-9-4 14:53 編輯 ]

TOP

 22 12
發新話題