魔獸世界編程寶典--World of Warcraft Addons完全參考手冊

魔獸世界編程寶典--World of Warcraft Addons完全參考手冊

《魔獸世界編程寶典--World of Warcraft Addons完全參考手冊》是2010年6月Tsinghua University Press出版的圖書。

基本介紹

  • 書名:魔獸世界編程寶典--World of Warcraft Addons完全參考手冊
  • 作者: (美)James Whitehead II  Bryan McLemore  Matthew Orlando
  • 原版名稱: World of Warcraft Programming: A Guide and Reference for Creating WoW Addons
  • 譯者:楊柏林 張衛星 王聰
書籍概述,內容介紹,作者介紹,目錄,

書籍概述

圖書分類: 軟體
出版社: Tsinghua University Press
書號: 9787XXX222392
發行時間: 2010年6月
地區: 大陸
語言: 簡體中文

內容介紹

閱讀完本書,您將學會如何對魔獸世界界面進行自定義修改。如果您初學編程,將從本書學習到lua和xml的基礎知識,以及如何開始編寫自己的第一個外掛程式。如果您已經熟悉一些原始外掛程式,那么可以直接跳到本書的第Ⅲ第Ⅳ部分,使用模板、函式鉤、自定義圖形、狀態標題等。本書有助於您發布自己的外掛程式,使wow更加有趣。本書是創建wow外掛程式的指南和參考手冊。本書分為5部分,其主題的複雜程度逐漸由低到高。第Ⅰ部分介紹了lua和xml,使讀者快速地上手這兩門語言,便於創建外掛程式。第Ⅱ部分討論了外掛程式的初步構成,以及事件驅動(event-driven)的魔獸世界外掛程式編程的基本概念。在本部分,讀者將創建自己的第一個外掛程式,並熟悉wow中的常用api。第Ⅲ部分通過從頭到尾實現一些外掛程式,將讀者引入更加高級的主題中。第Ⅳ部分為整個api的完備參考,包括函式、工具集、事件以及安全模板。第Ⅴ部分為附錄。

作者介紹

James Whitehead II創建的外掛程式包括PerfectRaid、CliqueTomTom和其他可以從網站下載的外掛程式。他還是Hacking World of Warcraft一書的作者之一。

目錄

第Ⅰ部分 學習編程
第1章 關於魔獸世界的編程
1.1 定製用戶界面
1.1.1 外掛程式是如何工作的
1.1.2 外掛程式能夠做什麼
1.2 Lua新手上路
1.2.1 下載和安裝Wow[ma
1.2.2 在網上使用Lua
1.2.3 下載並安裝Lua解釋器
1.3 探究您的Lua解釋器
第2章 探討Lua基礎知識
2.1 使用Lua解釋器
2.1.1 運行命令
2.1.2 錯誤信息的理解
2.1.3 使用歷史信息來做改變
2.1.4 退出解釋器
2.2 處理數字
2.2.1 基本算術運算
2.2.2 科學記數法
2.2.3 十六進制表示法
2.2.4 理解浮點
2.3 理解值和變數
2.3.1 探討值和它們的類型
2.3.2 使用變數
2.4 使用字元串
2.4.1 比較字元串
2.4 2多個字元串的連線
2.4.3 將數字轉換成字元串
2.4.4 將字元串轉換成數字
2.4.5 引用字元串
2.4.6 轉義特殊的字元
2.4.7 獲得字元串的長度
2.5 布爾值和運算符
2.5.1 使用and運算符
2.5.2 or運算符的使用
2.5.3 not運算符的使用
2.5.4 理解nil值
2.6 探討作用域
2.6.1 塊(Block)
2.6.2 組塊(Chunk)
2.7 小結
第3章 基本的函式和控制結構
3.1 使用函式
3.1.1 創建函式
3.1.2 局部函式
3.1.3 函式的參數和返回值
3.1.4 函式作為Lua值
3.2 用if語句進行判斷
3.2.1 簡單的條件
3.2.2 複雜的表達式
3.2.3 擴展的條件語句
3.2.4 顯示個人問候信息
3.3 用while語句來重複動作
3.3.1 計算階乘
3.3.2 while和repeat之間的差異
3.4 用數值執行for循環
3.4.1 計算階乘
3.4.2 循環條件的求值
3.4.3 循環中的變數作用域
3.5 小結
第4章 使用表
4.1 用表來存儲數據
4.1.1 創建和索引表
4.1.2 從表中清除元素
4.1.3 字元串關鍵字的捷徑
4.1.4 創建有內容的表
4.2 把表當作數組使用
4.2.1 創建數組
4.2.2 獲取數組的長度
4.2.3 在數組中添加元素
4.2.4 從數組中刪除元素
4.2.5 對數組中的元素排序
4.3 用名稱空間使用表
4.3.1 創建util名稱空間
4.3.2 向util中添加函式
4.4 表的面向對象編程
4.4.1 創建非面向對象計數器
4.4.2 把表作為簡單的對象
4.4.3 用冒號調用對象方法
4.4.4 用冒號定義函式
4.4.5 創建更佳的計數器
4.5 利用元表對表進行擴展
4.5.1 添加元表
4.5.2 定義元方法
4.5.3 旁路元表
4.6 小結
第5章 高級函式和控制結構
5.1 多值返回
5.2 將十六進制轉換成RGB
5.3 指定多個值
5.4 返回值丟失
5.5 W0W中的多個返回值
5.6 接受可變數目的參數
5.7 聲明變參函式
5.8 結合select()函式使用
5.9 范型for循環和疊代器
5.10 范型for語句的語法
5.11 遍歷表的數組部分
5.12 遍歷完整的表
5.13 表的清除
5.14 其他的疊代器
5.15 對表的數組排序
5.16 定義樣例數據
5.17 默認的排序順序
5.18 創建比較函式
5.19 創建更複雜的比較函式
5.20 小結
第6章 Lua標準庫
6.1 表庫
6.1.1 table.concat(table,sep[,i[,j]]])
6.1.2 table.insert(table,[pos,]value)
6.1.3 table.maxn(table)
6.1.4 table.remove(table[,pos])
6.1.5 table.sort(1xtble[,comp])
6.2 數學函式館
6.3 字元串函式
6.4 格式化新字元串
6.5 模式匹配
6.5.1 字元類型
6.5.2 模式選項
6.5.3 模式捕獲
6.5.4 模式錨點
6.5.5 模式的例子
6.6 模式匹配函式
6.7 Lua在WoW外掛程式中的補充
6.8 函式別名
6.9 小結
第7章 學習XML
7.1 XML——一種標記語言
7.1.1 XML與HTML的關係
7.1.2 XML的組件
7.1.3創建規範的XML
7.2 驗證XML文檔
7.2.1 規範定義的樣例
7.2.2 XMIL檔案的例子
7.2.3 魔獸世界中的XML
7.2.4 使用GradientType
7.2.5 探討模式
7.3 小結
第Ⅱ部分 魔獸世界編程
第8章 魔獸世界編程概述
8.1 遊戲中運行和測試代碼
8.1.1 安裝
8.1.2 使用/script和/run
8.1.3 顯示輸出
8.2 在遊戲中編輯代碼
8.2.1 TinyPad
8.2.2 Omnibus
8.2.3 WowLlla
8.3 編寫自定義print()函式
8.4 外掛程式和腳本的局限性
8.5 用Blizzard外掛程式編寫資源
8.5.1 用戶界面自定義工具
8.5.2 用戶界面和宏論壇
8.6 論壇資源
8.6.1 WowwiKI
8.6.2 魔獸版本監視器
8.7 小結
第9章 外掛程式解析
9.1 開發屬於您自己的外掛程式資料夾
9.1.1 暴雪的外掛程式
9.1.2 自定義外掛程式
9.2 外掛程式組件和檔案
9.2.1 內容表格檔案(.toc)
9.2.2 Lua腳本檔案
9.2.3 XIL檔案
9.2.4 媒體檔案
9.3 本地化您的外掛程式
9.3.1 可用的本地語言
9.3.2 本地化的原因
9.3.3 鼓勵玩家建議
9.3.4 實現本地化
9.4 創建外掛程式框架
9.4.1 為外掛程式命名(創建目錄)
9.4.2 創建.toc檔案
9.4.3 創建框架.xml檔案
9.5 使用外部庫
9.6 小結
第10章 在XML中創建窗體
10.1 了解UI對象
10.1.1 為對象進行命名
10.1.2 指定父對象
10.1.3 設定對象尺寸
10.1.4 錨定對象
10.1.5 將窗體和圖形元素分層
10.1.6 一般屬性
10.2 創建紋理
10.2.1 添加顏色
10.2.2 添加漸變效果
10.2.3 添加圖形元素
10.3 使用字型字元串創建文本
10.3.1 使用模板
10.3.2 使用的例子
10.3.3 進一步自定義
10.4 探討窗體類型
10.4.1 按鈕(Button)
10.4.2 複選按鈕(CheckButton)
10.4.3 顏色選擇ColorSelect)
10.4.4 編輯框(Editbox)
10.4.5 遊戲工具提示(GalneTooltip)
10.4.6 訊息窗體(MessageFrame)
10.4.7 小地圖(Minimap)
10.4.8 模型(Modeel)
10.4.9 滾動信息窗體(scrollingMessageFrame)
10.4.10 滾動窗體(Scroll Frame)
10.4.11 簡單的HTML窗體
10.4.12 滑動器(Slider)
10.4.13 狀態欄(StatusBar)
10.4.14 飛行路線窗體
10.5 小結
第11章 向XML窗體中添加行為
11.1 理解事件和腳本
11.1.1 窗體腳本
11.1.2 遊戲事件
11.2 使用腳本回響窗體事件
11.2.1 <OnEnter>和<OnLeave>
11.2.2 <OnLoad>
11.2.3 <OnEvent>
11.2.4 <OnClick>
11.2.5 <OnUpdate>
11.3 可用的窗體腳本
11.4 使用窗體方法改變窗體
11.4.1 常用方法
11.4.2 指定類型的函式
11.5 創建並使用模板
11.5.1 模板有用的原因
11.5.2 新建XML模板
11.5.3 使用XML模板
11.6 使用默認UI工具集模板
11.7 小結
第12章 創建您的第一個外掛程式:CombatTracker
12.1 定義規格說明
12.1.1 combatTracker用戶要求
12.1.2 找準遊戲事件
12.2 創建外掛程式架構
12.3 定義CombatTracker的XML窗體
12.4 測試CombatTrackerFrame
12.5 向CombatTrackerFrame添加操作腳本
12.5.1 <OnLoad>
12.5.2 <OnEvent>
12.5.3 <OnClick>
12.5.4 <OnDragStart>
12.5.5 <OnDragStop>
12.6 為CombatTracken.lua添加函式
12.6.1 CombatTracker-OnLoad(frame)
12.6.2 CombatTracker-OnEvent(frame,event.)
12.6.3 CombatTrackerReportDPS0
12.7 測試CombatTracker
12.7.1 窗體拖拽
12.7.2 右擊報告:第1部分
12.7.3 測試戰鬥跟蹤
12.7.4 右擊報告:第Ⅱ部分
12.8 小結
第13章 運用魔獸世界API
13.1 理解魔獸世界API
13.1.1 常規API
13.1.2 類庫API
13.1.3 FrameXML函式
13.1.4 受保護函式
13.1.5 單位函式的使用與關閉
13.2 創建簡單的單位窗體
13.2.1 創建窗體
13.2.2 添加數據域
13.2.3 設定窗體事件處理程式
13.3 使用API
13.3.1 顯示和隱藏窗體
13.3.2 實現簡單的更新函式
13.3.3 顯示生命和法力值
13.3.4 更新敵對信息
13.4 小結
第14章 使用AddOn Studio創建基本外掛程式
14.1 開始使用AddOnStudio
14.2 可視化設計您的界面
14.2.1 使用Toolbox
14.2.2 設定屬性
14.3 編寫代碼
14.3.1 監聽事件
14.3.2 自動添加事件處理程式
14.3.3 驗證單位是否存在
14.3.4 添加“關閉”按鈕的代碼
14.4 部署外掛程式
14.5 小結
第Ⅲ部分 高級外掛程式技術
第15章 利用編程模板
15.1 向TargetText添加增益
15.1.1 創立基本木板模板
15.1.2 定義基本的行為
15.2 創建增益圖示
15.2.1 創建柵格
15.2.2 設定錨點
15.2.3 創建特定的wrapper函式
15.3 更新增益
15.3.1 對增益進行遍歷
15.3.2 對更新操作進行封裝
15.4 小結
第16章 脫離XML編寫外掛程式
16.1 探索基本的窗體創建
16.1.1 使用CreateFontString()函式
16.1.2 使用CreateTexture()函式
16.2 創建更好的玩家窗體
16.2.1 設定Lua
16.2.2 創建窗體
16.2.3 使它工作
16.3 比較LUA窗體和XML窗體
16.4 小結
第17章 使用安全模板
17.1 了解污染(Taint)
17.1.1 啟用污染日誌
17.1.2 執行污染
17.1.3 變數污染
17.1.4 蔓延的污染
17.1.5 理解被保護的窗體
17.1.6 無污染地設定窗體屬性
17.2 使用安全模板
17.2.1 為動作按鈕定義行為
17.2.2 做一些簡單的選擇
17.3 使您的單位窗體充滿生機
17.3.1 移除禁止代碼
17.3.2 接受單擊
17.3.3 顯示和隱藏窗體
17.3.4 設定動作
17.4 小結
第18章 創建命令
18.1 檢測基本的命令
18.2 小提示、技巧以及好主意
18.2.1 象徵輸入
18.2.2 將確定用於模式匹配
18.2.3 假跳轉
18.2.4 好主意
18.3 小結
第19章 用函式鉤改變已有行為
19.1 什麼是函式鉤
19.1.1 修改返回值
19.1.2 函式鉤工具腳本
19.1.3 安全地鉤一個函式
19.1.4 安全地鉤住腳本
19.2 決定什麼時候使用函式鉤
19.2.1 理解鉤鏈(Hook Chain)
19.2.2 尋找替代
19.3 設計外掛程式:MapZoomOut
19.3.1 創建定時器
19.3.2 創建MapZoomOut
19.4 小結
第20章 創建自定義圖形界面
20.1 創建圖形的普遍規則
20.2 GIMP
20.2.1 新建圖片
20.2.2 添加圖形組件
20.2.3 保存紋理
20.3 Adobe Photoshop
20.3.1 新建圖像
20.3.2 添加圖形組件
20 .3.3 創建透明度通道
20.3.4 保存圖像
20.4 Paint Shop Pro
20.4.1 新建圖像
20.4.2 添加圖像組件
20.4.3 創建透明度通道
20.4.4 保存圖像
20.5 測試紋理
20.5.1 沒有按鈕出現
20.5.2 出現綠色方塊
20.6 小結
第21章 使窗體移動
21.1 拖放和放置
21.2 標題區域
21.3 使用 OnMouseDown和OnMouseUp
21.4 使用OnDragStart/OnDragStop
21.5 給窗體賦予生命
21.6 漸隱
21.7 小結
第22章 創建滾動窗體
22.1 使用滾動結構
22.1.1 定義滾動窗體
22.1.2 添加子滾動條
22.1.3 創建滾動條
22.2 創建偽滾動窗體
22.2.1 添加滾動條
22.2.2 利用滑鼠滾輪進行滾動
22.3 小結
第23章 創建下拉選單
23.1 創建簡單的下拉選單
23.1.1 添加切換按鈕
23.1.2 創建下拉窗體
23.1.3 初始化下拉選單
23.1.4 設定下拉選單
23.1.5 測試下拉選單
23.2 創建多級下拉選單
23.3 創建高級下拉選單
23.3.1 功能選單項
23.3.2 CheckButton選單項
23.4 調色板選單項
23.5 自動創建選單
23.6 小結
第24章 工具提示
24.1 操作工具提示
24.1.1 使用”:Set…”函式
24.1.2 包含自定義信息的工具提示
24.1.3 創建自定義工具提示
24.2 解析工具提示數據
24.2.1 基礎結構剖析
24.2.2 基本掃描循環
24.3 小結
第25章 使用狀態標題
25.1 創建第一個狀態標題
25.1.1 重設滑鼠單擊
25.1.2 通過單擊修改狀態
25.2 控制視覺屬性
25.2.1 顯示和隱藏子標題
25.2.2 重置子標題的位置
25.2.3 重新定義子標題和標題的大小
25.2.4 重置標題位置
25.3 配置其他的屬性
25.3.1 改變標題的單位
25.3.2 覆蓋綁定鍵
25.3.3 在棧中存儲狀態
25.4 創建宏序列
25.4.1 定義序列
25.4.2 設定基本的序列
25.4.3 重置您的序列
25.5 創建 Pie按鈕
25.5.1 設定 Pie按鈕
25.5.2 構建窗體
25.5.3 完成行為
25.6 小結
第26章 驅動狀態改變
26.1 使用狀態驅動
26.1.1 延時驅動狀態改變
26.1.2 理解宏選項
26.1.3 合併情景類型
26.1.4 在標題中共享狀態
26.2 使用定位模板
26.2.1 觸發定位改變
26.2.2 重新映射定位轉換
26.3 創建動作彈出選單
26.3.1 創建視窗
26.3.2 添加按鈕
26.3.3 定義基本行為
26.3.4 套用錨點
26.4 小結
第27章 利用組模板創建單位窗體
27.1 模板的工作原理
27.2 配置SecureGroupHeader
27.3 SecureCroupPetHeader模板屬性
27.4 新建SecureGroupHeader
27.5 定義XML模板
27.6 添加行為腳本
27.6.1 初始化窗體
27.6.2 更新單位信息
27.6.3 更新最大生命值
27.6.4 添加拖拽支持
27.7 測試BasicUnitFrames
27.8 小結
第Ⅳ部分 參考文獻
第28章 API參考文獻
28.1 API參考約定
28.1.1 函式簽名
28.1.2 參數和返回列表
28.2 API偽類型
28.3 按字母排序的API列表
第29章 API目錄
29.1 動作
29.2 動作欄
29.3 外掛程式
29.4 競技場
29.5 拍賣
29.6 銀行
29.7 戰場
29.8 綁定
29.9 增益
29.10 攝像機
29.11 頻道
29.12 聊天
29.13 僅在中國使用的函式
29.14 客戶端
29.15 戰鬥
29.16 申訴
29.17 容器
29.18 手工藝
29.19 游標
29.20 配置變數
29.21 調試
29.22 陣營
29.23 GM調查
29.24 GM請求
29.25 公會
29.26公會銀行
29.27 查看
29.28 副本
29.29 物品欄
29.30 物品
29.31 物品連結
29.32 物品文本
29.33 知識庫
29.34 鍵盤
29.35 尋求組隊/尋求成員
29.36 拾取
29.37 Mac
29.38 Macro
29.39 郵件
29.40 地圖
29.41 商人
29.42 其他
29.43 不同的單擊
29.44 金錢
29.45 移動
29.46 NPC
29.47 小隊
29.48 寵物
29.49 請求
29.50 玩家
29.51 配置
29.52 PvP
29.53 任務
29.54 團隊
29.55 技能
29.56 社交
29.57 凹槽
29.58 聲音
29.59 法術
29.60 形態
29.61 統計信息
29.62 天賦
29.63 目標
29.64 飛行器
29.65 跟蹤
29.66 交易
29.67 交易技能
29.68 訓練師
29.69 UI
29.70 單位
29.71 實用程式
29.72 視頻
29.73 語音
29.74 區域
第30章 事件參考
第31章 工具集參考
31.1 工具集API
31.1.1 UIObject
31.1.2 FontInstance
31.1.3 Region
31.1.4 VisibleRegion
31.1.5 LayeredRegion
31.1.6 Font
31.1.7 Texture
31.1.8 FontString
31.1.9 Frame
31.1.10 GameTooltip
31.1.11 EditBox
31.1.12 Slider
31.1.13 Model
31.1.14 MessageFrame
31.1.15 Cooldown
31.1.16 ScrollFrame
31.1.17 ColorSelect
31.1.18 Minimap
31.1.19 SimpleHTML
31.1.20 ScrollingMessageFrame
31.1.21 StatusBar
31.1.22 Button
31.1.23 PlayerModel
31.1.24 CheckButton
31.1.25 TabardModel
31.1.26 DressUpModel
31.2 處理程式列表
第Ⅴ部分 附錄
附錄A 發布外掛程式
附錄B 利用版本控制系統跟蹤歷史記錄
附錄C 最好的代碼風格
附錄D 避免常見的錯誤
附錄E 使用外掛程式庫
附錄F 作者和外掛程式社區
附錄G 辭彙表

相關詞條

熱門詞條

聯絡我們