Powered By Adobe Dreamweaver CC 2017 & Notepad++ & Microsoft Visual Studio 2017

Made By Michael Xiaohao Zhang

QSanguosha Lua Package

首頁

我的故鄉

家庭介紹

經歷與作品

膜法專欄

其他訊息


關於太陽神三國殺[QSanguosha]

  太陽神三國殺[QSanguosha]是由太陽神上及其系列團隊創立的非官方三國殺免費開源遊戲,它基於C++ Qt框架進行製作,創始於民國99年,截止至民國104年仍然在進行代碼的維護和更新。太陽神三國殺除官方的遊戲卡包可以完全免費地使用之外,還包括倚天包、翼包等多個創新的卡包。該程式最終版本為V2-20150926,自此不再更新。目前最新的個人版本為太陽神三國殺雙十一版。該程式的最新版本可以在太陽神三國殺吧中下載和使用。本程式支持聯網和單機兩種模式。

●程式頁面

關於Lua語言

  Lua是一種輕量級的、快速的腳本語言,由巴西里約熱內盧天主教大學的研究小組於民國82年基於標準C語言開發。Lua做為腳本語言,不適合進行獨立的應用程式的開發,但可以通過主程式提供的標頭檔和函式方便地嵌入主程式,因而被廣泛地應用。很多遊戲程式的部分腳本即由Lua語言編寫,如魔獸世界、歐陸風雲等。

  對於QSanguosha程式為用戶和程序管理員提供了一個窗口:Lua擴展。您可以通過編寫Lua文件來創造一個專屬於您的武將卡和卡牌,QSanguosha為您提供了簡單易記方便可用的代碼,使Lua腳本的編寫更加容易。Lua是一個輕量而快速的語言,故您只需要將小型的Lua腳本文件複製於指定位置即可,QSanguosha可以自動偵測并運行您的腳本。

●Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
RemoveGeneral_Skill = sgs.CreateTriggerSkill{
  name = "RemoveGeneral_Skill",
  events = {sgs.MarkChanged, sgs.TurnStart},
  global = true,
  frequency = sgs.Skill_Compulsory, 
  on_trigger = function(self, event, player, data)
    if event == sgs.MarkChanged then
      local mark = data:toMark()
      if mark.name == "@RemoveGeneral" then
        local skills = player:getVisibleSkillList()
        local room = player:getRoom()
        if player:getMark("@RemoveGeneral")>0 then
          for _, skill in sgs.qlist(skills) do
            room:addPlayerMark(player, "Qingcheng"..skill:objectName())
          end
        else
          for _, skill in sgs.qlist(skills) do
            room:removePlayerMark(player, "Qingcheng"..skill:objectName())
          end
        end
      end
    elseif event == sgs.TurnStart then  
      local room = player:getRoom()
      if player:getMark("@RemoveGeneral")>0 then
        room:setPlayerMark(player, "@RemoveGeneral", 0)
        local msg = sgs.LogMessage()
        msg.type = "#RemoveGeneralBack"
        msg.from = player
        room:sendLog(msg)
        return true
      end
    end
  end,
  can_trigger = function(self, target)
    return target ~= nil
  end,
  priority = 12
}
local RemoveGeneral_SkillList=sgs.SkillList()
if not sgs.Sanguosha:getSkill("RemoveGeneral_Skill") then 
  RemoveGeneral_SkillList:append(RemoveGeneral_Skill) 
end
sgs.Sanguosha:addSkills(RemoveGeneral_SkillList)

本人的Lua的作品

  本人於最近完成(或在更)了不少(實際上只有2個項目)Lua擴展包。


  ●Goddess.lua: 女神包. 該擴展包的最初目的是將民間的女神將加入太陽神三國殺中。在最新的太陽神三國殺版本中能夠正常而流暢地運行該腳本。該擴展包最近更新于民國106年11月2日。因為第二個項目,該項目可能會暫時性地延遲更新。目前該擴展包包括民間的女神將、民間的武將、部分民間的卡牌以及大陸網友的意見。備註:該文件的解壓密碼為isfb. 文件中的goddesscard.lua是歷次更新遺留的文件,可以刪除。


  ●左端代碼:民間卡牌之武將牌移出遊戲系統。可以用於v2-20170211或者之後的版本【更早的版本或許不支持MarkChanged的時機】。該部分代碼為Goddess.lua的片段。

Copyright ©民國107年 曉昊魔改 西安交通大學少年班
網站建立者:Small M.

中華人民共和國天津市南開區南開四馬路36號南開中學綜合樓B304室
Tel:15628879568 Twitter:@michaelxiaohao

鳴謝:Github.io

Choose Language

English 简体中文
繁體中文 日本語

Pусский

Deutsch
Español العربية
Français Portugues

Ελληνικά

한국어