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

Made By Michael Xiaohao Zhang

QSanguosha Lua Package

首页

我的故乡

家庭介绍

经历与作品

关于膜法

其他信息


关于太阳神三国杀[QSanguosha]

  太阳神三国杀[QSanguosha]是由太阳神上及其系列团队创立的非官方三国杀免费开源游戏,它基于C++ Qt框架进行制作,创始于2010年,截止至2015年还在进行代码的维护和更新。太阳神三国杀除官方的游戏卡包可以完全免费地使用以外,还包括倚天包、翼包等多个创新的卡包。最终版本为V2-20150926,不再更新。目前最新的个人版本为光棍节神杀版。该最新版本可在太阳神三国杀吧中下载和使用。该程序支持联机和单机两种游戏方式。

●程序界面

关于Lua语言

  Lua是一种轻量级的、快速的脚本语言,由巴西里约热内卢天主教大学的研究小组由1993年基于标准C语言开发。Lua作为脚本语言,不适合进行独立应用程序开发,但可以通过主程序提供的头文件和函数很方便地嵌入应用程序,被广泛地应用。很多游戏的部分脚本便是由Lua编写,如魔兽世界、欧陆风云等。

  对于QSanguosha来讲,该程序为用户和程序员提供了一个端口:Lua扩展。您可以通过编写Lua脚本来创造一个专属于您的武将、卡牌,QSanguosha为您提供了简单易记方便可用的源代码,使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: 女神包. 该扩展包的最初目的是将民间的女神将加入太阳神三国杀中。亲测在最新版本的太阳神三国杀中能够正常流畅地运行。最近更新于2017年11月2日。由于第二个项目的原因,该项目可能会暂时性延更。目前该扩展包包括女神将、民间武将、民间卡牌以及网友的意见。备注:密码isfb. 文件中的goddesscard.lua为历史遗留产物,删除即可。


  ●左部代码:民间的武将牌移出游戏系统。该部分代码仅适用于v2-20170211及以后的版本【更早的版本不支持MarkChanged这一时机】。该部分代码可见于Godress.lua中。

版权所有 ©2018 曉昊魔改 西安交通大学少年班
网站创立者:Small M.

天津市南开区南开四马路36号南开中学综合楼B304室
Tel:15628879568 QQ:1368287280

鸣谢:Github.io

Choose Language

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

Pусский

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

Ελληνικά

한국어