《战神的挑战2》lua脚本修改心得(不定期更新)
Lua是一种嵌入式的脚本,可以编写一些逻辑供其他主程序调用一、首先说一个最令我高兴的发现,搜刮宝箱小游戏
Puzzle Quest 2AssetsScriptsPuzzlesPuzzleConfiguration.lua,这个脚本是小游戏全局设置PuzzleConfiguration.HOARD =
{
GEM_DISTRIBUTION = {
Gold5 = 60,
Gold50 = 48,
Gold500 = 36,
Chest1 = 3,
Chest5 = 1,
},注意这个GEM_DISTRIBUTION,程序员的命名习惯相当好啊,百度一下就知道,这个是指小游戏中随机出现的宝石种类和几率,
Gold5从命名上就知道是价值为5的金币,Chest1是普通宝箱,Chest5是稀有宝箱,也就是说,开宝箱的小游戏中,5元的金币最多,其次是50、500的金币,随机出现的箱子是最少的。由于不知道程序的具体设计,所以,最好是互换这几组数字,而不是随心所欲的改动,以防游戏出错
Gold5=1,
Gold50=3,
Gold500=36,
Chest1=48,
Chest5=60,
改完后保存,重新启动游戏,再次开宝箱时,你会发现,哇塞,满屏幕的金箱子啊~~~
二、法师的WildMana技能
在指定的位置处创建一个+3的通配符,有这个技能,无限连、收集魔法,就容易多了,仅仅+3你会不会嫌少呢,要是+7该多好啊
Puzzle Quest 2AssetsScriptsSpellsWildMana.luaWildMana.cost = {
green = 1,
blue = 1,这一段大家都知道了,耗蓝量修改,不多说了local TRANSFORM_MAP = {
Wildcard2 = "Wildcard4",
Wildcard3 = "Wildcard5",
Wildcard4 = "Wildcard6",
Wildcard5 = "Wildcard7",
Wildcard6 = "Wildcard7",
Wildcard7 = "Wildcard7",
}
……
function WildMana:Apply(params)
local gemtype = params.grid.name
params.notify:PushAttribute("gemx", params.targetX)
params.notify:PushAttribute("gemy", params.targetY)
return function ()
Spell:Pause(Spell.SPELL_INTRO_PAUSE)
Spell:TransformGem(params, params.targetX, params.targetY, TRANSFORM_MAP or "Wildcard3")
Spell:Pause(Spell.SPELL_MIN_DURATION)
Spell:Pause(Spell.SPELL_OUTRO_PAUSE)
end
end
关键是这一段,什么意思呢,就是在一个通配符上释放该魔法时,如果是+2通配符,就会变成+4,+3变+5,以此类推,那么,只要把以上“”中的都改成Wildcard7就行了
如:Wildcard2="Wildcard7"
别急,还没完,还有更重要的一步要改,刚才只改了在通配符上放魔法都会变+7,还要改在普通宝石上放魔法也变+7
留意代码中的WildMana函数Spell:TransformGem(params, params.targetX, params.targetY, TRANSFORM_MAP or "Wildcard3")这句是说,释放该魔法时,利用刚刚改的那个数组改变宝石(也就是通配符+2,最高+7),或者,对于普通宝石,改成+3通配符,把"Wildcard3"改成"Wildcard7",这样你用Wildmana(通配魔法)时,就会变一个+7的通配符出来了
注意,最高只能+7,如果你改成"Wildcard9",那么用该魔法时就会创建一个看不见消不掉的BUG石头出来了
什么,你说这魔法只能法师用,其他职业只能干瞪眼,没关系,小改一下,让每个职业都能高速收集魔法吧
Puzzle Quest 2AssetsScriptsHero 目录下有 Assassin.lua(刺客)、Barbarian.lua(野蛮人)、Inquisitor.lua(骑士)、WarMage.lua(巫师)四个文件定义四个职业的初始属性和能学到的技能level_bonuses =
{
{ }, -- Level 1
{ spell = "SwiftStrike"}, -- Level 2
{ spell = "Confuse"}, -- Level 3
{ spell = "Stealth"}, -- Level 4
{ spell = "StoneStrike" }, -- Level 5
{ spell = "SeekShadows"},
{ spell = "Disarm"},
{ spell = "PressurePoints"},
…………
{ upgrade = true},
{ spell = "DualShot" }, -- Level 40
{ },
{ },
{ },
{ upgrade = true},
{ }, -- Level 45
{ },
{ },看有很多个{}里是空的把,照着脚本的格式在空的{}里加上想要的技能就可以了,PS:-- Level 45 这是脚本注释,程序会忽略以 -- 开头直到行末的内容
如{ spell = "WildMana" },这样在角色达到{}所代表的等级时学到WildMana技能了 PS: 第一个{}代表第1级,以此类推 -- Level ×× 的注释正是说明了该技能多少级可以学到
三、野蛮人的Skull Crusher技能
利用盘中的骷髅让对方无法行动,爽吧,但没5个骷髅才停一次,郁闷吧
Puzzle Quest 2AssetsScriptsSpellsSkullCrusher.luafunction SkullCrusher:Apply(params)
local numSkulls = params.grid:CountByName("Skull") + params.grid:CountByName("Skull5")
local numTurns = 1 + math.floor(numSkulls/5)
return function ()
-- Destroy Skulls
Spell:Pause(Spell.SPELL_INTRO_PAUSE)
Spell:ExplodeGemByName(params, "Skull", false, Spell.SPELL_TRANSFORM_PAUSE)
Spell:ExplodeGemByName(params, "Skull5", false, Spell.SPELL_TRANSFORM_PAUSE)
-- Stun Enemy
Spell:ApplyStatusEffectTo(params.target, params, self, "Stun", 2*numTurns)
Spell:Pause(Spell.SPELL_MIN_DURATION)
Spell:Pause(Spell.SPELL_OUTRO_PAUSE)
end
end看看这个函数,local numSkulls = params.grid:CountByName("Skull") + params.grid:CountByName("Skull5")
这个变量获取盘中骷髅的数目,Skull是普通骷髅,Skull5是+5骷髅,一视同仁,其实你可以改成
local numSkulls = params.grid:CountByName("Skull") + params.grid:CountByName("Skull5")*5,
这样+5的骷髅会算5个而不是一个
local numTurns = 1 + math.floor(numSkulls/5)
这个变量获取敌方停止的次数,关键位置啊,表示至少停一回合,外加骷髅数/5(忽略小数)个回合,啊,直接把/5删掉吧,一个骷髅停他一回合(觉得BT了可以改成
local numTurns = 1 + math.floor(numSkulls/3)什么的) 武器之类的也可以改的 而且更直观更好改~~
回复 2# 乐♂神 的帖子
其实改武器有个担忧,万一敌方拿的正好是你改过的武器……你就可能被秒了而职业魔法,貌似没有怪物会 呃,那个开宝箱的改后容易卡死……,估计是宝箱爆太多了,算了,还是改回去,反正
初始魔法+5的项链我正好打到了…… 经过一点尝试,开宝箱小游戏的爆率可以使用如下数字
GEM_DISTRIBUTION = {
Gold5 = 1,
Gold50 = 48,
Gold500 = 60,
Chest1 = 3,
Chest5 = 36,
},
特点,不会出现卡死的情况(至少我玩了4小时,开了10多个箱子,没出现卡死),金箱子照样多 ,钱也相当多,一个宝箱能开出10000以上的金币,唯一不足就是,由于金箱子太多了,木箱子会被你忽视掉,得到的材料会减少……
钱不缺
就缺材料 为什么的我脚本修改了没用。。。。 补充
1.AssetsScriptsItemsItemConfiguration各种装备和词缀的等级要求
2.AssetsScriptsHeroStatsConstants
level_bonus_interval职业的属性点加成(默认每5级加成1点)
blocking_effectiveness_base格挡成功后伤害减免(默认50%)
mana_earn_multiplier每消除宝石后获得的额外加成(默认1)
回复 6# crmking 的帖子
那你就这样改嘛,如下GEM_DISTRIBUTION = {
Gold5 = 1,
Gold50 = 3,
Gold500 = 60,
Chest1 = 48,
Chest5 = 36,
},
这样就满屏的木箱子(材料)了,不过,装备箱子就少多了,钱还是最多了,
因为如果箱子最多的话可能会卡死
回复 8# ccqsk 的帖子
求教:2代里人物属性对 宝石获得的加成最高为+10,也就是消3宝石最多得到13点,如何修改这个值?求教:那个 全初始魔法+5的项链,能不能改成 +10、+20? Puzzle Quest 2AssetsScriptsHeroStatsConstants.lua -- Class Specific:
assassin = {
-- POINT bonus
start = {
agility = 400,
intelligence = 200,
morale = 300,
stamina = 100,
strength = 100,
},這個是刺客的初始屬性,下面的職業自己設定 per_level_interval = {
agility = 1,
intelligence = 0,
morale = 1,
stamina = 0,
strength = 0,
}這個是每次系統加成屬性所獲得的點數
配合樓上寫的HeroStatsConstants.level_bonus_interval = 5每5級加成一次,可以獲得大量點數
但是不能高於9999,因為HeroStatsConstants.ranks = {
{ name = "Low", max_points = 2 }, -- 0 (lua counts from 1, so iterating over this table with ipair yields 1-11, adjust accordingly)
{ name = "Average", max_points = 5 }, -- 1
{ name = "Good", max_points = 9 }, -- 2
{ name = "VeryGood", max_points = 14 }, -- 3
{ name = "Excellent", max_points = 20 }, -- 4
{ name = "Superior", max_points = 27 }, -- 5
{ name = "Heroic", max_points = 35 }, -- 6
{ name = "Legendary", max_points = 44 }, -- 7
{ name = "Epic", max_points = 54 }, -- 8
{ name = "Paragon", max_points = 65 }, -- 9
{ name = "Godlike", max_points = 9999 }, -- 10最高只能識別9999,過了就沒屬性加成了HeroStatsConstants.mana_start_multiplier = 0.5初始魔法HeroStatsConstants.mana_max_multiplier = 5最大魔法HeroStatsConstants.mana_earn_multiplier = 1消除所獲得的魔法加成
钱不缺
就缺材料
crmking 发表于 2010/9/3 16:07:00http://bbs.blacksheepgame.com/images/common/back.gif
材料不夠的看下http://bbs.blacksheepgame.com/showtopic-1433911.htmlhttp://bbs.blacksheepgame.com/showtopic-1434846.html2位大神的帖子,修改爆率,然後固定回合,
我爆率改成50,目前一場材料能有每種材料200+ 修改美啊~ 期待 继续更新····· 真期待啊 很实用的帖子啊!
一定要强烈支持!
期待楼主继续更新! 请问有没装备方面的修改? Puzzle 改了怎么没效果啊。。。。。。。。。。 很不错啊,支持更新 PuzzleConfiguration.HOARD =
{
GEM_DISTRIBUTION = {
Gold5 = 60,
Gold50 = 48,
Gold500 = 36,
Chest1 = 3,
Chest5 = 1,
},
这个数字是就是出现的机率吧,算法应该就是 单物品机率值/(各物品机率值之和) PuzzleConfiguration.HOARD =
{
GEM_DISTRIBUTION = {
Gold5 = 60,
Gold50 = 48,
Gold500 = 36,
Chest1 = 3,
Chest5 = 1,
},这个数字是就是出现的机率吧,算法应该就是 单物品机率值/(各物品机率值之和)六翼天使Ⅱ 发表于 2010/9/30 12:11:00http://bbs.blacksheepgame.com/images/common/back.gif
呃,我给改了一下,
PuzzleConfiguration.HOARD =
{
GEM_DISTRIBUTION = {
Gold5 = 0,
Gold50 = 0,
Gold500 = 144,
Chest1 = 3,
Chest5 = 1,
},
结果就是下面这个截图……每个回合几乎都要2、3分钟才能结束 这个太强悍了。。 刚试了下,很实用的。 相当邪恶。。顶! 能修改侠客的位置吗? 因为我卡死在戈尔根的洞穴里了,。。。。。。。。。。 你们用的都是非ZIP版本啊,我的是直接一个Assets压缩包,解压这个压缩包修改完再压缩就黑屏!!!!!!!!!!! 用记事本修改后无效 还是老样子 文件也覆盖了 各种办法都用了 就是没用
页:
[1]