Ⅰ 為什麼將lua作為游戲腳本
就我個人的理解來看,使用LUA作為腳本語言有三個好處:
1、輕量級
LUA只包括一個精簡的核心和最基本的庫。這使得LUA體積小、啟動速度快,從而適合嵌入在別的程序里。
2、可配置性、可擴展性
LUA並不象其它許多"大而全"的語言那樣,包括很多功能,比如網路通訊、圖形界面等。但是LUA可以很容易地被擴展:由宿主語言(通常是C或C++)提供這些功能,LUA可以使用它們,就像是本來就內置的功能一樣。
3、兼容性
LUA由標准C編寫而成,幾乎在所有操作系統和平台上都可以編譯,運行。
這些都是LUA本身所具備的一些特質。而這些特質正好就決定了LUA的廣泛使用:
1、輕量級
沒人希望自己的應用程序需要附加幾十M甚至幾百M的庫類文件才能運行。如果一個應用程序這么做了,那麼它很難做到Run Anywhere。當然,這個Run Anywhere只是這么一說。
2、可配置性、可擴展性
在游戲研發的過程中,修改是必不可少的過程。如果每次修改都需要從底層做起,那必定是一個非常繁瑣的過程。而LUA的可配置、擴展正好可以解決這一問題。
3、兼容性
游戲只是游戲,不能決定玩家的機器配置,更不能決定玩家的操作系統。如果因為游戲與用戶的操作系統不兼容導致游戲銷量下降,我想,這肯定是不被允許的。
所以,具備了以上三個特點的LUA,沒有不作為游戲腳本使用的理由。
Ⅱ 怎麼用cheat engine里的lua腳本製作游戲修改器
對於固定內存地址的游戲,可以使用Cheat Engine軟體來製作修改器。這個過程很簡單,就是步驟有些多。
以修改雷電2為例,說明如何用ce製作修改器。也可以用其它修改內存地址的軟體來查找游戲的內存地址,然後添加到ce中。這樣可以簡化製作過程。
工具/原料
Cheat Engine 5.61
金山游俠5
fpe2001
修改並添加地址
1運行游戲。切換窗口,打開ce。
點左上角的逗選擇進程地,在逗進程列表地中選擇游戲的名字,點逗打開地。
建議製作修改器用5.61版本的ce,這個版本的高級選項中有創建修改器的選項。
2選中逗hex地前面的選項,檢測輸入的值是十六進制的。對一些數值,需要選中它,才能搜索到。
在逗值地的輸入框中輸入3,點逗首次掃描地。
3切換到游戲,將生命數改變。
只有地址變化了,才能搜索具體的數值。游戲中的數值大部分都可以用具體的數值來搜索。
4切換到ce,在逗值地的輸入框中輸入改變後的數值,點逗再次掃描地。
通常搜索兩次就可以找到唯一的地址。如果還有許多地址,回到游戲讓數值再改變一次,再回到ce中進行再次掃描。所有的游戲修改器都是這樣進行搜索。
5雙擊搜索到的地址,地址被放入鎖定窗口中,選中逗鎖定地,這個地址在游戲中就始終是這個數值。
在鎖定地址上按滑鼠右鍵,選擇逗更改記錄地→逗描述地,或是在地址的逗描述地位置雙擊左鍵。輸入這個地址的說明。
6在地址上按右鍵,選擇逗瀏覽相關內存區域地。打開逗內存瀏覽器地,在窗口下方就是該地址所在的內存數值,其它的內存數值也在這里。雙擊就可以編輯。可是修改後沒有提示,不利於查看。
7對內存地址進行編輯,需要用到金山游俠和fpe2001。
這兩個修改器,在對內存進行編輯後,對編輯過的地址用彩色標記。在進行內存對比時,很方便。這里就不介紹了,這兩個軟體使用方法比ce簡單多了。有些游戲是需要使用不同修改器,才能搜索到地址。
8雙擊金山游俠中鎖定地址中的逗自動鎖定地,打開逗添加修改地窗口,將地址進行復制。
9回到ce。點逗手動添加地址地,在逗添加地址地窗口中的地址框中粘貼剛才復制的地址,輸入描述說明,確定。
10在地址上按滑鼠右鍵,在彈出的菜單中選擇逗更改記錄地→逗值地,輸入數字,確定。這個地址的數值就改變了。
11選擇逗更改記錄地→逗類型地,選擇新類型後確定,就更改了這個地址的長度。
如果需要更改的數值會很大,就要更改類型。2個位元組代表00,4個位元組代表0000。
12其它的地址也這樣添加到ce中。
這樣就避免了使用ce進行搜索的過程。只要是固定的內存地址,都可以通用。
需要的地址全部添加後,就可以製作修改器了。
13在製作之前,選擇左上角的逗保存地圖標,選擇路徑,點逗保存地。游戲的內存地址就被保存成文件了。
下次運行游戲就可以直接打開保存的地址,不需要再搜索地址。修改器製作出錯後,也可以打開保存的地址,重新進行製作。
END
製作修改器
點左下角的逗高級選項地,打開逗高級選項地窗口。
製作修改器需要使用這里的功能。有些版本的ce中沒有這個功能。
點擊逗創建單獨使用的修改器地圖標,在彈出的窗口中選中逗創建新的修改器地和逗游戲/程序運行時,修改數據地,確定。
在逗修改器製作地窗口中,執行的結果會在預覽窗口中顯示。
選擇逗更改圖像地,選擇一個圖片,可以讓逗預覽地窗口中逗啟動地下面顯示圖像。
選擇逗更改圖標地,選擇一個圖標文件,製作的修改器會顯示這個圖標。
輸入標題,在修改器窗口標題欄上就會顯示內容。
選擇逗進程地,找到運行的游戲文件名,左鍵點擊就選擇了。不選擇,修改器就不會知道要修改什麼游戲。
點擊下面的逗加入項目地,在逗修改器製作:添加記錄地窗口中選擇逗添加地。
在逗修改器製作:添加地址地窗口中選擇逗設定數值並鎖定/解鎖地址地,輸入數值。選中逗允許用戶更改這個數值地,在修改器中就可以更改。
選中逗常規鎖定地,在下面的窗口中選擇一個地址,選擇逗添加地。選擇不正確時會有提示。
在彈出的逗修改器製作:添加記錄地窗口中,在逗作用地輸入框中輸入說明,在逗熱鍵地輸入框中按一下設定的按鍵,不滿意設置的熱鍵點逗清除地,選擇確定。
在右面的逗預覽地窗口中就會出現添加的效果。
6其它的地址也是這樣添加。全部添加後,選中逗防止修改地,製作的修改器就不允許用ce打開。
最後點擊逗生成修改器地,選擇路徑,起一個名稱,點逗保存地。會提示修改器已生成。
至此修改器製作完成。使用效果見簡介圖片。
選擇左面窗口中已添加的地址,選擇逗刪除項目地可以去掉選中的地址。
Ⅲ Lua 為什麼在游戲編程領域被廣泛運用
Lua雲風在九十年代就開發游戲引擎並建設個人網站(雲風工作室),在游戲開發領域聲望高。網易《大話西遊II》是首個在市場上取得成功的國產網路游戲。所以後來國內游戲開發行業紛紛受此影響採用Lua。
《大話西遊》用的腳本語言是微軟的JScript(JavaScript的一種方言),維護不便bug多,受系統IE版本的影響兼容性差。所以2002年網易開發《大話西遊II》時,決定在客戶端內嵌別的腳本語言。當時該項目技術負責人雲風認為要挑不出名的語言,讓做外掛的人搞不懂(《大話西遊》一代被外掛《月光寶盒》搞死了),於是就選擇了Lua 4.0。
現在,2013年,Lua和其他流行腳本語言Python、JavaScript各分秋色:
語言規范精簡、運行時庫小。其創始人稱Lua是穿過針孔的語言(Passing a Language through the Eye of a Needle),他加入的任何語言特性都能用C API簡單的調用。
易於創建受限環境,C語言一端可以控制暴露給Lua腳本的任何功能。我猜這也是《魔獸世界》的插件語言選用Lua的原因。
性能方面,雖然仍然比Python快,但不如V8(谷歌的JavaScript實現)。
Ⅳ 騎馬與砍殺的游戲引擎是什麼
就是騎馬與砍殺引擎~人家自己獨立做的~沒看市面上沒有和騎砍同類型的游戲嘛~
Ⅳ 為什麼很多游戲公司都用lua,有什麼淵源
首先是因為很多游戲公司的伺服器是用的C++ 而LUA和C++基本是無縫拼接.
為什麼不能全用C++呢? 不更無縫嗎?因為C++ 每做一點點更改,都要重新編譯執行文件.要修復BUG必須重啟伺服器.這對於大型應用幾乎是不可以接受的.所以運行時編譯語言也就是所謂的"腳本語言"就應運而生. 腳本語言可以在運行時修改/編譯/替換,可以在不重啟游戲伺服器的情況下修復BUG,更新邏輯.
而LUA可以算是效率最高的"腳本語言"之一.其他腳本語言,效率/ 簡單程度/易用程度/穩定程度,和LUA都有相當的距離.
Ⅵ 如何用lua製作游戲
LZ要學LUA的話一定要去看書 Programming in Lua不一定要買紙質的 至少要有個電子檔的 在序言里就已經說了 Lua本身是作為一種擴展語言來定位的 所以本身沒有很強大的庫 而它優勢在於擴展性和兼容性 大部分功能都必須依賴外部的庫 本身只有一些很簡單的庫函數可供調用 但是作為學習的話 那些強大的庫大可不必看 基本的那些庫學起來已經需要好一段時間了
至於腳本和C等的調用問題 雖然兩者都可相互調用,但是畢竟windows與C相連接更緊密,所以一般來說 都是C調用lua 但是當腳本范肌頓可塥玖舵雪罰磨里需要實現一些需要使用c來寫程序的時候也會在lua中調用c
lua腳本和C綁定的問題 c寫的VC程序在windows下是可以直接運行的,lua寫的如果沒有解釋器是無法直接運行的 所以一般來說寫lua程序 想要直接使用的話都會用C來調用
如果您認可我的答案,。
您的採納,是我答題的動力,O(∩_∩)O!!
Ⅶ 求一個Lua編輯器(WOW lua),跟使用方法。
里推薦一個不錯!佔用內存也比較少!適合機子不強的玩家的!
11月11日更新。添加DAB水晶按鈕。趕時髦的ACE2全尺寸通用界面。附傻瓜教程。
11月11日更新:重新製作了.lua文件,採用拼音命名,刪除多餘lua;重新調整了布局,適合各種尺寸顯示器(可能部分還需要微調)。仍然採用DAB動作條(我實在找不到比它功能更全的動作條了)添加了現在時髦的水晶皮膚。(這里感謝德魯魯的指導)。
此界面自認為出彩的地方是小地圖和水晶動作條,小地圖是高亮設計,在飛機上就像看小電視^_^。發現很多人把小地圖改了,浪費了我一片苦心喔。(看圖在最後)
請下載全部11。11的AddOns和WTF文件(除非你喜歡以前的樣式)!!!!!
提供全部適合法師插件下載,其他的ace插件請自行於本論壇尋找,恕不回答與界面無關的問題。
這里衷心感謝觸手黨黨魁的教程(詳見 ... &extra=page%3D1)
感謝熾火大大的腳本修改插件:zScriptBox。
游戲不要選擇窗口模式
游戲請選擇使用ui縮放調節到 .64 即左邊到底
如果你安裝以後界面混亂請自行調整,方法如下:
我只說一點小竅門。(傻瓜教程)
1、下載包包並安裝:清空/World of Warcraft下AddOns和WTF文件夾,請一定要備份哦,然後解壓縮拷貝我的包包(請注意WTF文件夾下有3處地方要改名哦,包里有提示)。
2、進入游戲,在畫面中找到「+」(即zScriptBox),點擊。點了嗎?ok。不要關閉游戲返回桌面,打開文件夾x:\World of Warcraft\Interface\AddOns\oSkin,用記事本打開xxx.lua文件(xxx即中文的「某某某」為我們要改動的界面)。
xxx.lua文件所對應的框體如下:
di.lua=底部信息條
dingbu.lua=頂部框
ditu1.lua、ditu2.lua=地圖的2個邊框
dongzhuotiao.lua=動作條邊框
shifatiao.lua=施法條邊框
touxiang.lua=頭像邊框
youxia.lua=右下框
zhuoxia.lua=左下框
比如:你要修改屏幕頂部框體,就打開dingbu.lua
3、復制裡面的內容,進入游戲粘貼在zScriptBox框里,修改frame:SetWidth(xxxx);frame:SetHeight(xxxx);frame:SetPoint("BOTTOMRIGHT", UIParent, "BOTTOMRIGHT", -xxx, xxx);(xxxx為數字哦,先把數字稍微增減一點哦),點擊zScriptBox框左上角的「RUN」,看到什麼了?^_^。改的不滿意?再改數字試試,直到你滿意為止;注意了:這時你應該先按照你滿意的數字修改xxx.lua文件並保存,然後再回到游戲點擊zScriptBox框上邊的「ReloadUI」,哇!改好了呀!
4、同理你也可以改變其他參數,包括顏色、邊框顏色、框體透明度等等。詳見上面給出的黨魁大大的貼子;
給出黨魁大大的說明:
local frame = CreateFrame("Frame", "MapBar", UIParent)
frame:SetFrameStrata("BACKGROUND")
frame:EnableMouse(false)
frame:SetMovable(false)
frame:SetWidth(135)
frame:SetHeight(135)
frame:ClearAllPoints()
frame:SetPoint("BOTTOMRIGHT", UIParent, "BOTTOMRIGHT", -2, 2)
oSkin:applySkin(frame, 2, nil, nil, 50)
CreatFrame里的是自己給這個frame取的名字, 也是這個lua文件的名字,。
SetFrameStrata是設定frame的層級。有BACKGROUND,LOW,MEDIUM,HIGH和DIALOG幾種, BACKGROUND最低, 一般的frame設成BACKGROUND就行了,當需要用到frame重疊的時候慵陡叩幕嵴謐〔慵兜偷? 這時再改就行了。注意frame的層級不能高於上面放置內容的層級,不然會導致滑鼠操作無效等bug。
EnableMouse跟SetMovable這個顧名思義了吧。一般都是false。
SetWidth和SetHeight分別設置frame的長和寬,單位是pixel。
SetPoint是設置frame的錨點。有TOP,BOTTOM,CENTER,TOPLEFT,TOPRIGHT,BOTTOMLEFT,BOTTOMRIGHT, LEFT和RIGHT8種, 分別對應畫面的8個方位。
applySkin, 把自己建立的這個frame加上oskin的皮膚。4個變數分別是"frame, header, bba, ba, fh"。"frame"是自建frame的名字, bba跟ba分別是改換frame透明度的量, 通常為nil, fh是反光度, 一般設置在0-200之間。
5、關於顏色的改法也很簡單,我是在DAB上先調出顏色參數然後修改core.lua的,見上面給出的黨魁大大的貼子。
6、如果你已經有了oSkin,建議還是使用我提供的oSkin,減少不必要的麻煩。
7、如果你感覺界面里哪個框你不需要,只要打開AddOns\oSkin下oSkin.toc文件在最後部分找到該xxx.lua刪除即可,反之就是增加哦。
很多人一直在問插件設置的問題,這里說明一下有關ace2相關插件的設置。非ace2插件請本站搜索吧。
滑鼠左鍵(也許是右鍵^_^)點擊你信息欄里那個齒輪樣的圖標(這是所有ace2相關插件的控制中心,記住是所有哦,以後插件設置問題都在這里找)--依賴--ace2--插件名稱,或者在此目錄下其他欄目里找,如作者、分類等等。
萬分感謝「輕言淺笑.五區斬魔者 」整理的部分包內插件的設置命令
1. 整合背包:輸入/bagnon設置。
2. 圖標移動:MoveAnything。游戲中按Esc鍵後可見
3.冷卻時間帶閃光提示zcc:
/zcc reset -- 重置
/zcc shine -- 隱藏/顯示閃光
/zcc random -- 自動變化閃光材質
/zcc font <value> -- 設置字體文件, 默認是 Fonts\FZLBJW.TTF
/zcc size <value> -- 字體大小, 取值1~50, 默認是 28
/zcc min <value> -- 少於此值的冷卻不顯示, >0, 默認是 3 秒
/zcc texture <value> -- 閃光材質, 取值1~4, 默認是 1
/zcc scale <value> -- 閃光大小, 取值36~512, 默認是 256
/zcc speed <value> -- 閃光速度, 取值-3~3, 默認是 0
4. 施法進度條:eCastingBar 輸入/ecb設置
5. 技能冷卻:CooldownTimers.輸入/cdt menu 開配置窗口
6. 方形地圖simpleMinimapv
/smm hide可以隱藏或者顯示區域,時間和縮放按鈕
/smm hide time可以把那個顯示時間的太陽/月亮隱藏
/smm show zoom可以隱藏跟顯示縮放按鈕
/smm alpha (0.1 0.2~0.9 1)設置透明度 括弧里的數字自己填一個你滿意的透明度
/smm scale (0.1~0.9 1)設置大小
/smm lock鎖定.輸入一次鎖定,再輸入一次解鎖.
7.buff顯示-ElkBuffBar
輸入/ebb設置 可以看見設置BUFF的參數.
/ebb locked true 鎖定
/ebb locked false 解除鎖定
/ebb width 設置BUFF長
/ebb height 設置BUFF高
8. 查看怪物血量:輸入/MobInfo2
9. 全職業距離監控
/dw lock 鎖定進度條
/dw unlock 解除鎖定
/dw scale 縮放(參數范圍:0.5~3系統默認的是1)
/dw usedefault 使用默認配置(當你不小心將進度條拖到屏幕外面時可以使用此命令使其重新回到屏幕中央)
10. 技能物品冷卻插件 輸入/cdt menu 設置
11. 聊天窗口設置 輸入/sccn設置
輸入/sccn timestamp 關閉時間標簽
移動聊天窗口--滑鼠右鍵點綜合里的解鎖 字體大小也在裡面
12. 法師變羊計時 SheepWatch
使用 /sheepwatch 或 /sw 設置查看當前配置信息使用 /sw status 查看當前配置信息
13 戰斗信息:SCT+SCTD+SpellAlertSCT
SCT 是顯示你受到的傷害
SCTD 是顯示輸出的傷害
SpellAlertSCT 是顯示法術預警
配置命令:
SCT:/sct, /sct menu
SCTD:/sctd,/sctd menu
SpellAlertSCT:/sasct menu
14. 團隊PerfectRaid
團隊:
如果是按姓名排:/praid sort name
如果是按職業排:/praid sort class
如果是按組小隊排:praid sort group
15. 自動解除騎乘、坐下、變形和暗影形態
輸入/ezd設置
16. 傷害統計
輸入/DMSHOW
17. 狐形戰斗條/DHUD
地址:
Ⅷ 關於Lua 如何寫游戲腳本。。比如我要實現一個窗口或者某一個功能,怎麼添加
lua是嵌入式語言,不能獨立完成游戲開發,所謂用lua開發游戲,都是基於用lua做腳本的游戲引擎或者自己實現與宿主的綁定
Ⅸ LUA腳本語言在網路游戲編寫中主要是干什麼用的
主要用途是:
(1)描述界面:WOW和劍網三的界面都是用LUA寫的;
(2)溝通引擎:游戲圖形引擎提供了一些介面庫,可以在LUA中調用;
(3)伺服器端:有些游戲,例如劍網三,在伺服器端也會大量使用LUA。
Ⅹ Lua為什麼在游戲編程領域被廣泛運用
用過Lua的都知道,Lua無論在與C/C++數據傳遞,還是在封裝都很方便,API非常簡單。同時Lua的許可證和緊湊性(把lib編譯進程序即可),都十分利於集成。這些都是Python和V8不能比的。同時,Lua編程學習難度極低。Python雖然容易學,但不簡單;JavaScript學習難度不夠低。實際上,Lua進入游戲業非常早,早在1998年盧卡斯的《異域狂想曲》(Grim Fandango)中,就首次在游戲領域用到了Lua。十年之前著名的游戲博德之門、猴島4都用了Lua。至少從開源代碼來看,雲風對Lua的使用是十分重度的,比如skynet的入口是在Lua上。國內很多游戲對Lua的使用很淺,多是把一些需要經常改的運算放出來給Lua做。