qweytr_1 qweytr_1
关注数: 17 粉丝数: 68 发帖数: 1,930 关注贴吧数: 16
突破失败率分析 闲来无事 帮大家理解一下为什么日常80%突破N连失败 --- 设每次突破成功概率为p,则5次失败概率为(1-p)^5,从而5次突破中成功一次的概率为1-(1-p)^5,也就是说成功20次的概率为(1-(1-p)^5)^20 借此我们可以算得下表(点击看大图),表中白色数据对应,单格突破成功率为横竖两个黄格子概率之和的功法突破成功率。--- 可以看出,上表越往左上对突破的估算越乐观,越往右下对突破的估算越悲观 但及时在最乐观的估计中,50%的单格突破成功率也已经与功法突破成功率(0.5299)相当,在最悲观的估计中,70%的单格突破成功率也已经无法得到70%的功法突破成功率 在这个表中,存在一些神奇的事实: 比如70%成功率,最终突破成功的概率用最乐观的估计,也必定小于95.25%,也就是说,突破成功率70%时,平均每突破差不多20次,就有1次突破失败,失败原因是连续5个70%失败。 在统计上,连续5个70%失败的p-value是0.00243,这是一个非常显著的数值,但在太吾中,不考虑其他因素,突破功法得到5个70%失败,p-value接近0.05 如果将最右下角的4连失败视为突破失败(连挂4格基本上意味着需要绕路,很难继续突破)+每次失败后突破成功率-5%(这是因为大家都倾向于先点高概率的格子)视为真实突破情况,那么,70%-80%概率的突破,哪怕玩家不主动贪黄点,十次突破中也必有一次失败。想稳定突破/贪黄点的话,大概需要把突破概率堆到90% 如果成功率普遍在60%附近,你最好做好SL的准备
便利性Mod 删档BUG复盘 太长不看版:将..Whitelist.Enable..设置为true之后可以自动避免一切新增class生效(这也会拦截你禁用的class以及失效的class(还没测试这个功能,但至少接口是这么设计的),暂时没写已有class的新功能的拦截逻辑) --- 仔细检查了一下,这是一个很低级的错误(本来的写法也是,以为那么写没BUG的写法也是) 最开始,我写的是 .SetAndAdvance(OpCodes.Pop, null) .InsertAndAdvance(new CodeInstruction(OpCodes.Ldc_I4_0, null)) 考虑到游戏在那个位置的写法是 callvirt GameDifficulty Game::get_Difficulty() ldfld bool GameDifficulty::deleteGameOnDeath <- set and advance (下一个语句的labei): (下一条语句) <-在此insert and advance 我害怕下一个语句可能出现的label(目前并没有)可能会影响insert and advance被重复执行,于是我交换了set和insert的顺序 .InsertAndAdvance(new CodeInstruction(OpCodes.Ldc_I4_0, null)) .SetAndAdvance(OpCodes.Pop, null) 这样修改之后,我们将得到 (label0:) callvirt GameDifficulty Game::get_Difficulty() (label1:) <- insert and advance ldfld bool GameDifficulty::deleteGameOnDeath <-在此insert and advance (下一个语句的labei): (下一条语句) 这里我并不确定(label1:)跟insert哪个在前,但都无所谓,因为这是ldfld,不会有编译器丧心病狂地把label打到ldfld上,因此游戏理应可以完美地执行我们的目标 这就是BUG的成因。 --- 昨天玩的时候我就检测到这个BUG了(因为永恒誓约模式下仍然会被删档) 我很轻松地调整了两个语句的顺序,并计划今天上传 因为这两个语句看上去很具有欺骗性: OpCodes.Ldc_I4_0, null // 读取false OpCodes.Pop, null // pop 前面读取的false 这两个指令合起来非常像一个nop,因此我下意识以为这么写没问题 --- 仔细观察,我们可以发现,代码其实是 before: callvirt GameDifficulty Game::get_Difficulty() ldfld bool GameDifficulty::deleteGameOnDeath <- codematcher指向这里 brfalse Label84 insert and advance: callvirt GameDifficulty Game::get_Difficulty() ldc.i4.0 ldfld bool GameDifficulty::deleteGameOnDeath <- codematcher指向这里 brfalse Label84 set and advance: callvirt GameDifficulty Game::get_Difficulty() ldc.i4.0 pop <- codematcher指向这里 brfalse Label84 after(等价于) callvirt GameDifficulty Game::get_Difficulty() nop brfalse Label84 于是这个BUG吃掉了一条指令,直接把get_Difficulty()拿来算brfalse了 很不巧get_Difficulty() 的结果会被视为true 这就导致了BUG的发生
圣数11 圣数11的出处是TaskHarvest::HarvestThing之中的某处逻辑BUG 这个函数首先定义几个参数 float num = base.target.Num; float num2 = 1.1f; if (text == "log" || text == "rock") { num2 = 2.2f; } if (base.target.trait is TraitAmmo) { num2 = 50f; } float num3 = num % num2; num /= num2; 也就是,num: 当前物品数量,num2: 转化比例,num3:转化余数 可以看到,转化为log(原木)或者rock(岩石)的时候,转化比例变为2倍,也就是平均2.2个物品才能转化出一个原木或者岩石 多余的物品会被放置在转化余数num3中进行下一步的随机: if (num3 > 0f && EClass.rndf(num2 - num3 + 1f) < 1f) { num += 1f; } 看上去一切都很正常 然而,真的如此吗? 让我们计算一下圣数11: 11/1.1=10 11%1.1 = 1.0999998 稍有些计算机常识的人应该发现了,这里出现了舍入误差,舍入误差造成了一个本来应该是0的数(11%1.1应该是0)被错误舍入到了接近1.1 这导致了+1的发生 类似地,11 % 2.2 = 2.1999998,这是圣数11可以复制物品的来源 对箭矢类武器,系数是50,不存在舍入误差,因此也就不能触发类似的圣数复制效果 这个BUG的修复并不复杂,把1.1f和2.2f(准确地说,1.1000001430511474609375和2.200000286102294921875)改成1.099999904632568359375和2.19999980926513671875即可 总体来说是玩家赚了,因为在平均意义上,玩家在分解一千万个物品时,比之前大概能多获取一个材料 但
球球大家不要整天喊控制台Spawn命令不能指定物品材质了,蟹蟹~ Cheat Spawn mathammer 1 void 于是你得到了一个暗物质材质锤 材料对照表如下: void => 暗物质 oak => 橡木 iron => 铁 granite => 花岗岩 mud => 泥 grass => 草 grass_forest => 森之草 grass_deep => 深草 sand => 沙 jelly => 胶状物 meat => 生鲜 wood_acacia => 金合欢 gold => 金 silver => 银 copper => 铜 bronze => 青铜 mica => 云母 chromite => 铬铁 diamond => 钻石 rubinus => 红宝石 steel => 钢 coral => 珊瑚 glass => 硅砂 crystal => 水晶 hide => 革 hide_dragon => 龙鳞 pearl => 珍珠 emerald => 绿宝石 cobalt => 钴 adamantite => 精金 saphire => 蓝宝石 topaz => 黄玉 aquamarine => 海蓝宝石 opal => 蛋白石 jade => 翡翠 onyx => 缟玛瑙 lapis => 青金石 turquoise => 绿松石 meteorite => 陨铁 platinum => 白金 bone => 骨 wood_birch => 桦木 paper => 纸 ether => 以太 pine => 松木 soil => 土 soil_forest => 森之土 soil_deep => 深层土 snow => 雪 limestone => 石灰石 marble => 大理石 basalt => 玄武岩 slate => 板岩 silt => 淤泥 diorite => 闪绿岩 obsidian => 黑曜石 phyllite => 千枚岩 tofu => 温泉水 pudding => 浅色土 mahogany => 红木 rosewood => 蔷薇木 ice => 冰 straw => 稻草 cedar => 杉木 soil_mystic => 神秘的土 grass_mystic => 神秘的草 water => 水 water_fresh => 淡水 mithril => 秘银 titanium => 钛 cotton => 棉花 silk => 真丝 scale => 鳞 cashmere => 绒毛 zylon => 柴隆纤维 spirit => 灵布 dusk => 暮染 griffon => 狮鹫鳞 plastic => 塑料 soil_blue => 蓝色土 wool => 羊毛 spidersilk => 蜘蛛丝 ash => 灰 redsoil => 红土 fir => 枞木 palm => 帕露露木 soil_light => 亮土 soil_yellow => 黄土 water_sea => 海水 water_tropical => 热带水 sand_white => 白沙 hemp => 亚麻 willow => 柳木 cherryblossom => 樱木 process => 加工食品 carbone => 炭 poplar => 杨木 sand_sea => 海沙 bamboo => 竹 amethyst => 紫水晶
[剧透]全任务描述一览 别问我是怎么打出来的 问就是mod 根本没打 ---- 任务信息: 任务0 Wake-up call_0 [0](0): 「觉醒」 Faction: Default MissionType: Campaign Desc: 你的祖父,邓肯·艾恩堡伯爵,在萨米雷尼亚独立战争中斩杀了因弗兰15名骑士以及另一位骑士的耳朵。为此,西比尔女王授予他封地和贵族头衔。 尽管有着你祖父的治理,但这领地依然还是一个穷地方。然而你的父亲却任由领地荒凉,特别是那红酒窖。在他猎鹿摔断脖子后,你便继承了统治权。 尽管年轻时你想成为一名英雄,但在荒地中和平的十六年中,你早就把那些梦想抛诸脑后,毕竟你生来就拥有光荣的血脉和城堡… From: To: 「进退两难」、「反抗伊始」 任务1 Between a rock and a hard place_1 [1](1): 「进退两难」 Faction: Default MissionType: Campaign Desc: 压制了应该要帮助自己人民的贵族责任,你从家里众多的麻烦脱身而出去帮助你的叔叔。 没有人在城门迎接你,你叔叔的城堡混乱不堪、千疮百孔,难以想象这里究竟发生了什么。 当你想离开的时候,你发现你的粮食不足以支持你回城的路。没办法之下你只能回到彭德雷恩伯爵的领地… From: 「觉醒」 To: 「提议,不容拒绝」、「革命之子」 任务1x OnlyCutscene [2012536894](2012536894): 「提议,不容拒绝」 Faction: Default MissionType: Campaign Desc: 你经过了几天在萨姆雷利亚的舟车劳顿,终于抵达了首都——辉煌的安博诺尔城。 为了掩盖旅程的疲惫,你还喝了点酒,步履蹒跚地来到王座大厅。 此时已经临近费迪南德二世向他忠诚的附庸们演讲的时间了。不过,守时从来不是国王陛下的优点。毕竟,国王享有迟到的特权…… From: 「进退两难」 To: 「启航吧,殿下!」 任务2 Ships [-597802395](-597802395): 「启航吧,殿下!」 Faction: Default MissionType: Campaign Desc: 根据皇家诏令,罗斯格伦的查尔斯·兔心领主应向您提供他最好的三艘船。但在会面时,他解释自己的舰队被费尔南德二世紧急征调,前往戈尔哥特帝国带回宝马。 这位领主承诺他会尽可能的提供一切可能的帮助。换句话说就是愿意提供除了人力物力支持之外的一切支持。 罗斯格伦人素以脾气火爆著称,看到陌生人靠近他们城镇时彻底失控。也就是说,你得在应对骚扰的同时组建远征舰队…… From: 「提议,不容拒绝」 To: 「爬出苦井,又跳火坑」 任务3 Natives [-2001413388](-2001413388): 「爬出苦井,又跳火坑」 Faction: Default MissionType: Campaign Desc: 您可能是第一个成功穿越哈利马提亚海的萨姆雷尼亚旅行者,可喜可贺。 这次冒险可以被视为毫无疑问的、甚至是压倒性的成功。只是有一个“但是”:船只失事后,所有的导航工具都损坏了,你根本不知道自己身在何处。 于是你派出忠实的仆人斯努特去执行侦察任务。任务很简单:看看这片土地上是否有人居住,并找到金山银山、由绿宝石和红宝石构成的河流…… From: 「启航吧,殿下!」 To: 「公主赎金」、「古墓丽影」、「同化进程」 任务4 Natives loot [-683937258](-683937258): 「公主赎金」 Faction: Default MissionType: Campaign Desc: 选择《公主赎金》任务后,《古墓丽影》任务将不可用。 听取两个行动方案后,你决定相信你忠诚的仆人斯努特。这次你尽可能敲定一切细节。 一位使者带着赎回公主的条件,前往最近的萨兰加定居点。具体就是珠宝的总重量、收集的截止日期和交付赎金的地点。 以防万一,在指定地点你建造了另一座堡垒。 于是你在此处享受风光安顿下来,相信萨兰加人会乖乖地把宝藏献上…… From: 「爬出苦井,又跳火坑」 To: 「你是什么鬼?」 任务4x Undead loot [-554986417](-554986417): 「古墓丽影」 Faction: Default MissionType: Campaign Desc: 选择《古墓丽影》任务后,《公主赎金》任务将不可用。 你对可能升级的与当地人的冲突持谨慎态度,因此拒绝了通过赎金换回公主的想法。相反,你决定和平地获取黄金。 尚哈尔公主带领你的队伍前往陵墓。盗墓一直是致富的最安全和最可靠的方法之一。 你在建造以便守护预期中战利品的堡垒中,等待你的手下带来宝藏,同时梦想着有朝一日带着满箱的黄金和宝石回到故土…… From: 「爬出苦井,又跳火坑」 To: 「你是什么鬼?」 任务5 UndeadBoss [-226492927](-226492927): 「你是什么鬼?」 Faction: Default MissionType: Campaign Desc: 被迫深入未知大陆,不见传说中的宝藏,你开始体验艰难的拓殖者生活。 没有稳定的补给品来源,且人们时常染上疥疮。此外,你的队伍在夜晚还遭受不明来源的攻击。 为了稳住局势,你决定在山谷里扎营,至少水看起来挺清。局势似乎向好的方向发展,但你感觉这是暴风雨前的宁静…… From: 「公主赎金」、「古墓丽影」 To: 「世纪奇观」、「往生常识」 任务6 Build Temple [-1286678774](-1286678774): 「世纪奇观」 Faction: Default MissionType: Campaign Desc: 费迪南德国王因为你未能完成填满皇家国库的任务而大发雷霆。这让你更加倾向去寻找其他盟友。 根据尚哈尔所言,赢得萨兰加人好感的唯一办法是击败大陆北方的亡灵。 夜晚,你的远征队进入了亡者的领地。或者说那些超越死亡之人的土地?总之,毫无前人经验可以借鉴…… From: 「你是什么鬼?」 To: 「文化冲突」 任务6x [1898693300](1898693300): 「文化冲突」 Faction: Default MissionType: Campaign Desc: 令人惊讶的是,当极乐圣殿的最后一块石头完工时,那些不死生物竟然就凭空消失了。 你和尚哈尔、斯努特一同,立即前往萨兰加部落联盟的酋长那里,告诉他们这个“重大胜利”的消息,公主是这么称呼的。 一路上,你们没有遇到任何一只食尸鬼,甚至连只脏兮兮的也没有见到。然而,一旦你安全到达尼涅恩德,你尽量不让自己抱太大希望。毕竟,生活让你明白,你的运气就算不是用泥土做的,也是用玻璃做的,非常容易破碎… From: 「世纪奇观」 To: 「恐怖圣境」、「“简单”方案」 任务7 Kill Harpies [155253258](155253258): 「恐怖圣境」 Faction: Default MissionType: Campaign Desc: 选择《恐怖圣境》任务后,《“简单”方案》任务将不可用。 毫无头绪地被萨兰加人驱逐出境,你只好带着人马迁往海边。你从来没有找到任何宝藏,甚至掠夺来的玄武岩也被强制拿走。幸运的是,他们给你留下了地图。 你忠诚的仆人斯努特和同样忠诚的战友尚哈尔给你指明了两条路线。 这场远征让你身心俱疲,因此决定了最明显和最短的方案。于是,你朝着圣山进发…… From: 「文化冲突」 To: 「该回家了!」 任务7x Kill Giants [-265554580](-265554580): 「“简单”方案」 Faction: Default MissionType: Campaign Desc: 选择《“简单”方案》任务后,《恐怖圣境》任务将不可用。 被部落议会驱逐出萨兰加领地后,你决定不再挑战命运,逃往海岸。 当涉及到路线问题时,你毫不犹豫地听从了尚哈尔的建议。是的,虽然这条路线更远,但你已经不愿意再承受任何风险了。 这条路线回应了你 的期待:快速穿越沉睡的森林,身后便是一片肥沃的平原。你不相信下一次运气还会这么好,因此你下令扎营休息。生活教会你要准备好迎接新的考验和困难,因为它们在你的旅途中它们从未缺席。 From: 「文化冲突」 To: 「该回家了!」 任务8 Ships [-707423721](-707423721): 「该回家了!」 Faction: Default MissionType: Campaign Desc: 你一路赶到海边,看着波涛汹涌。你突然发觉,困扰你的根源,你机遇之马丢失的马蹄钉,那吞噬你幸运四叶草的虫子,正是萨姆雷尼亚的国王。 证明这一点的是追捕你的皇家远征军。他们不仅接到了抓捕你的命令。最可怕的是他们与你在同一个海岸上扎营。 你强忍着愤怒,召开会议,讨论一个可以让你能一劳永逸地摆脱这个专制君主的计划…… From: 「恐怖圣境」、「“简单”方案」 To: 「安博诺尔必将沦陷!」 任务9 Kill King [57808652](57808652): 「安博诺尔必将沦陷!」 Faction: Default MissionType: Campaign Desc: 观测月相,今天是1492年3月8日。木已成舟。费迪南德国王宣布我为他的敌人,这是他此生最大的错误。我的敌人都已不在人间。我们回到了萨姆雷尼亚,在安博诺尔外登陆。我们要么攻下首都,要么战死。生平第一次,万事已明了。 From: 「该回家了!」 To: 「狼入羊群」 任务10 King Branch Final [891890970](891890970): 「狼入羊群」 Faction: Default MissionType: Campaign Desc: 安博诺尔的防线已被突破。在你军队的猛烈攻击下,皇家军队一触即溃。或惊恐,或慌乱,或四散奔逃,或勉强保持队形。 首都沦陷后,连最顽固的费迪南德二世的忠臣们也毫无斗志。你收到了一封信,他们请求你在决定国家命运和前任宗主的命运时表现出慈悲和谨慎,或许还要有点智慧。他们还保证会无条件地接受你的决定。 所以,现在只剩下一个敌人。费迪南德二世像懦夫一样躲了起来。确切地说,他把自己锁在了国王城堡的地下室。你和最忠诚的手下一起,走入地牢,亲自接受他的投降,并决定如何处理这个暴君…… From: 「安博诺尔必将沦陷!」 To: 任务0a BomjRoot [-226489263](-226489263): 「反抗伊始」 Faction: Default MissionType: Campaign Desc: 你的祖父,邓肯·艾恩堡伯爵,在萨米雷尼亚独立战争中斩杀了因弗兰15名骑士以及另一位骑士的耳朵。为此,西比尔女王授予他封地和贵族头衔。 尽管有着你祖父的治理,但这领地依然还是一个穷地方。然而你的父亲却任由领地荒凉,特别是那红酒窖。在他猎鹿摔断脖子后,你便继承了统治权。 尽管年轻时你想成为一名英雄,但在荒地中和平的十六年中,你早就把那些梦想抛诸脑后,毕竟你生来就拥有光荣的血脉和城堡… From: 「觉醒」 To: 「革命之子」 任务1a Children of the revolution [2](2): 「革命之子」 Faction: Default MissionType: Campaign Desc: 你把你最精锐的士兵给了血腥的斯科特,让他能安全地直接攻往首都。他承诺说他会在一周之内登基成王,并在之后以皇家身份感激你。但,斯科特已经带着残缺的军队和恐慌的眼神回来。 皇帝已经知道你的叛变了。他的皇家军队已经在前往彭德雷恩的路上,准备平息这次动乱。 带着叛国者的骂名,以及高额的悬赏金,你被迫与斯科特剩余的军队撤往南方… From: 「进退两难」、「反抗伊始」 To: 「埋伏」 任务1at Tutorial mission [-726675576](-726675576): 「埋伏」 Faction: Default MissionType: Campaign Desc: 当你得知皇家军队主力正向你进发时,你顿时陷入了惊愕。但这种状态没有持续太久,因为你很快意识到,得逃命了。 你发现萨姆雷尼亚的道路在民众动荡中已不再安全,但为时已晚。就在你们的队伍遭到袭击的那一刻,你才意识到这一点。 凭借一小股队伍,你设法突围摆脱了追击,逃到了一个地图上都没有标记的废弃堡垒。然而,斯科特对局势的看法略有不同。“这是你大展身手的机会了,战友。现在你将亲身领会什么才是真正的抗争斗士。”他如此说道… From: 「革命之子」 To: 「反抗军的荆棘之路」 任务1aa Escort [669943558](669943558): 「反抗军的荆棘之路」 Faction: Default MissionType: Campaign Desc: 在击败皇家巡逻队后,你匆忙收拾好行李,继续前往哈利马提亚海岸。 很快你就发现,你那位英勇祖先邓肯·铁眉的画像根本放不进行李。别无他法,你只好决定将来在那个位置悬挂一面抵抗旗帜。也许它画得不怎么好,但它很小巧。 “我们需要你这样志同道合的战友,愿意斩断过去和……”——几天的旅程后,斯科特赞扬了你,然后突然不再说话,因为你们已经到达通往罗斯格伦的道路。在那条路上,一切皆有可能。大多是不愉快的事情…… From: 「埋伏」 To: 「反抗军舰队」 任务2a Ships [-900579389](-900579389): 「反抗军舰队」 Faction: Default MissionType: Campaign Desc: 反抗军的领袖,正统国王斯科特一世,带路前行。他异常兴奋,不断重复说反抗军舰队拐个弯就能看到。这肯定是个比喻,因为反抗军走的路不知道已经转了几个角。 你们不得不一直在树林中低头穿行,还要渡过两次以上的河(不过似乎是同一条)。总之,旅程的最后阶段更像是在森林中的漫无目的的游荡。 当众人不抱以期望时,罗斯格伦海岸展现在大家眼前…… From: 「反抗军的荆棘之路」 To: 「怎前割喉城?」 任务3a Natives [-1686517888](-1686517888): 「怎前割喉城?」 Faction: Default MissionType: Campaign Desc: 鉴于你们在海难中幸存并在割喉城登陆(正如那位醉酒的代理大副向你保证的那样),你们认为自己应该有权休息。 不过,有几件事让情况变得复杂。首先,在一个死气沉沉的岩石海岸休息没什么乐趣。此外,你们需要比陈年奶酪和腌牛肉更柔软的东西,但在这个死气沉沉的岩石海岸上哪里能找到那些呢? 你还需要向割喉城人解释,斯科特一世已经葬身大海,他们应该接受你为新的抵抗领导人。最后,即使军队得以重新集结,你们在没有船的情况下,如何才能返回萨姆雷尼亚呢…… From: 「反抗军舰队」 To: 「拯救大兵斯科特」、「同化进程」 任务4a Saving Scott [1171731732](1171731732): 「拯救大兵斯科特」 Faction: Default MissionType: Campaign Desc: 你们离开了最后的停留点并建立了新的营地。萨姆雷尼亚的真正国王和你忠实的仆人斯努特一起去解决反抗军与萨兰加人间的外交混乱。 在等待他们归来的时,你认真阅读了血腥的斯科特的宣言并与尚哈尔公主聊天。她掌握萨姆雷尼亚语,和你最爱的棋盘游戏的速度令人惊讶。 投桃报李,你尝试表现出对文化交流的兴趣,但你尝试说任何萨兰加语词汇的努力都以咬到舌头告终…… From: 「怎前割喉城?」 To: 「此事必有蹊跷」 任务5a Undead Boss [1328922842](1328922842): 「此事必有蹊跷」 Faction: Default MissionType: Campaign Desc: 在尚哈尔公主的带领下,深入未知大陆,反抗军正在寻找祖传宝剑,以说服所有的萨兰加人加入正统国王斯科特一世的大计。然而,搜寻小队并没有走得很远。 第四天,反抗军开始经历奇怪的事情。濒死感、幻听、耵聍过多——这些只是治疗师们越来越频繁记录的症状中最常见的。 意识到不可能所有人耳部发炎,更不用精神失常,你决定直面这股不可名状的力量。反抗军的不朽领袖血腥的斯科特命令你们建造另一座堡垒并做好万全准备…… From: 「拯救大兵斯科特」 To: 「屠龙」、「往生常识」 任务6a Kill Boss [428870644](428870644): 「屠龙」 Faction: Default MissionType: Campaign Desc: 击败奥兹,黑暗王子兼歌者(无论后者代表着什么)后,你觉得有责任规划反抗军的未来动向。“去哪里?”的答案可以在血腥的斯科特的经典著作《做什么 我们行动的燃眉之问》中找到。 “思考越多越危险,”斯科特在书中反思,“它像毒蛇一般,用疑虑的毒液侵蚀灵魂。只需听从命令并执行。”你以自己的方式去理解这位思想家的比喻,你决定为公主夺得祖传宝剑。 感谢上天,每个人早已忘记了最初来割喉城的目的,你相信是萨兰加人的支持将决定安博诺尔战役的结果。 当反抗军接近愤怒蜥蜴的巢穴时,尚哈尔公主提议大胆地从怪物那里偷走祖传宝剑而不进行战斗…… From: 「此事必有蹊跷」 To: 「艰苦谈判」 任务6aa [-1741828084](-1741828084): 「艰苦谈判」 Faction: Default MissionType: Campaign Desc: 带着祖传宝剑和你的盟友尚哈尔公主,你们到达了萨兰加部落的首都,辉煌的尼涅恩德城。 虽然一切都表明反抗军即将得到期待已久的增援,但你尽量不抱太大希望。 毕竟,过往的经验让你觉得自己的运气是由玻璃甚至是陶土制成的,很容易破碎…… From: 「屠龙」 To: 「甲虫隘口」、「象龙之地」 任务7a Kill Harpies [-499383026](-499383026): 「甲虫隘口」 Faction: Default MissionType: Campaign Desc: 选择《甲虫隘口》任务后,《象龙之地》任务将不可用。 在评估了两项挑战的难度后,你觉得“与甲虫共处”任务根本不算挑战。 甲虫和蚂蚁,蚊子和小咬,各种颜色的咬人和嗡嗡作响的东西不断在那些长时间在路上的人周围盘旋。并不是说这种邻居是愉快的,但毕竟,一些昆虫能对反抗军造成什么影响呢? 经过了这样的推理,你勇敢地带领你的士兵们前往“甲虫隘口”…… From: 「艰苦谈判」 To: 「新反抗舰队」 任务7ax Kill Giants [-599707903](-599707903): 「象龙之地」 Faction: Default MissionType: Campaign Desc: 选择《象龙之地》任务后,《甲虫隘口》任务将不可用。你会远离隘口,再也看不到那里的美景。 在认真考虑了萨兰加酋长给你的挑战后,你立刻意识到哪个更容易完成。 你从小就接受了狩猎训练。猎兔子和狐狸、猎狼和野猪。你甚至杀过一次鳄鱼(尽管它住在你家城堡的护城河里)。无论如何,对于经验丰富的猎人来说,获取战利品,包括赫法伦普的象牙,是一件简单的事情。 无论哪里,即便是神秘的大陆,动物终将是动物。因此,反抗军没有再犹豫,开始了一场大狩猎…… From: 「艰苦谈判」 To: 「新反抗舰队」 任务8a Ships [-2092694633](-2092694633): 「新反抗舰队」 Faction: Default MissionType: Campaign Desc: 这就是胜利!经过几个月毫无结果的漂泊,你终于抵达海岸。现在阻挡你与奴役萨姆雷尼亚的暴君之间的只有哈利马提亚海。你能感觉到你的心跳加快吗? 你所要做的就是建造船只,与忠诚的反抗大君一起航行回萨姆雷尼亚的海岸。然后狠狠地揍肥胖的费迪南德一顿。 幸运的是,你找到了一个完美的地方来建造船厂。而且附近有很多树木。正如血腥的斯科特所写,“反抗军难以摆脱艰难和痛苦,否则那就不配称为反抗。”遵循他的教诲,你不允许自己松懈。一个真正的反抗者必须时刻保持警惕…… From: 「甲虫隘口」、「象龙之地」 To: 「最后一战」 任务9a Kill King [1740925034](1740925034): 「最后一战」 Faction: Default MissionType: Campaign Desc: 你带着一支虽小但在未知大陆上经历无数战斗的精锐部队,在安博诺尔登陆。 这是最关键时刻。你一生中第一次,事情很简单。不是你死就是他们亡。反抗军要么胜利,要么它的历史会由其他人书写。你和所有追随者的名字将被嘲笑和责骂,最终被历史遗忘。 也许当反抗运动敢于攻击首都时,萨姆雷尼亚的人民会摆脱奴隶的枷锁,跟随你起义。无论如何,你已经下定决心。必须攻下安博诺尔。反抗的旗帜将在首都上空飘扬! From: 「新反抗舰队」 To: 「狼入羊群」 任务10a Bomj Branch Final [-18442317](-18442317): 「狼入羊群」 Faction: Default MissionType: Campaign Desc: 安博诺尔的防线已被突破。反抗军已闯入城市并包围了王都。卑鄙的篡位者费迪南德二世与他最后的一小群忠实追随者躲进了地牢。 你和你忠实的仆人斯努特无畏地进入敌人的巢穴,终结这场战争。 作为胜利者和反抗军的领袖,你现在要决定这个多年来对萨姆雷尼亚人民敲骨吸髓的暴君的命运…… From: 「最后一战」 To: 任务4b Natives Feast [-619759290](-619759290): 「同化进程」 Faction: Default MissionType: Campaign Desc: 显然,由于文化差异,萨兰加的首领把简单的好客姿态误解为你愿意完全听候她的差遣。 与对话者的这种解读争论是困难的。考虑到有把大砍刀当牙签用的原住民在场,这也相当鲁莽。 尚哈尔公主带领你的队伍进入荒野,并示意你应该在那里建一座城市,一座将成为你和萨兰加人的新家的城市。之后,公主离开,承诺她会回来查看你的成果… From: 「爬出苦井,又跳火坑」、「怎前割喉城?」 To: 「怪物杀手」 任务5b Undead Boss [-440476210](-440476210): 「怪物杀手」 Faction: Default MissionType: Campaign Desc: 你应该杀死“邪恶怪物”的地方看起来极其凄惨。尚哈尔告诉你,这里曾经是萨兰加帝国的首都。并且她梦想着让萨兰加再次伟大。 当你看着这座曾经属于首都的古老废墟时,你脑海中唯一浮现的词就是“垃圾”。为什么某个怪物会想要这些毫无生气的荒地,更重要的是,它是如何单枪匹马占领整个城市的,这些都是很好的问题。 但是当一位迷人的少女正在追寻她的梦想时,一位绅士不能视而不见、袖手旁观。当少女是公主,绅士是领主时,他们所面临的挑战就无需过多担忧。毕竟,在这种情况下,有很多值得信赖的人随时准备听从命令… From: 「同化进程」 To: 「长途跋涉」、「往生常识」 任务6b Escort [-1473307584](-1473307584): 「长途跋涉」 Faction: Default MissionType: Campaign Desc: 成为尚哈尔公主的忠实臣民意味着从现在起,你与公主共享复兴伟大萨兰加帝国的梦想。为了实现这一梦想,你需要把能证明可以战胜亡灵的证据——令人毛骨悚然的怪物奥兹的战利品头颅——带到萨兰加人的首都。 但是你要如何把这个巨大的头颅带到首都呢?即使是一群马也会被这样的重担累垮。好吧,公主想出了一个办法。不得不说,这不是一个普通的办法。而这个办法就是……一只巨大的被驯服的甲虫。 把奥兹的头放在这昆虫的背上后,你踏上了前往尼涅恩德的旅程。尽管天气非常好,但你的心情却并不好。因为你正在穿越亡灵的领地。而且他们并没有睡着。(他们为什么要睡觉?) From: 「怪物杀手」 To: 「冬日朦影」 任务7b Survival in cold [-216410463](-216410463): 「冬日朦影」 Faction: Default MissionType: Campaign Desc: 就像无脑的鸣禽分不清捕兽夹的手艺和它们的同类一样,人们也分不清自己的梦想和执念。但鸟儿之后的生活很好。它们可能只是坐在某个自命不凡的贵族收藏家的客厅里的笼子里鸣叫。然而,梦想则更为复杂。 就拿你和尚哈尔来说。首先,你们建造城市,然后你拖着一个死怪物的头穿越整个国家。为了什么?与从尼涅恩德的围城中幸存下来的少数人一起爬进寒冷、多雪的山脉。 复兴伟大萨兰加帝国的想法被生存问题击得粉碎。你和尚哈尔不得不告别你的梦想,面对这个新的、不友好的现实… From: 「长途跋涉」 To: 「治愈公主」 任务8b Giants [1212891547](1212891547): 「治愈公主」 Faction: Default MissionType: Campaign Desc: 你在烟雾缭绕的高山中度过的寒冬里,只留下了两段愉快的回忆。第一段是吃到鹿骨而不是冻青蛙炖汤。第二段则是和斯诺特和尚哈尔一起乘坐马车前往山谷的旅程。那一刻,你感觉到春天即将来临。你意识到这点,是因为你的牙齿终于不再打颤了。 尽管第二段回忆很难说是愉快的。尚哈尔,通常像驼鹿一样强壮,像公羊一样固执,但这次却无助得…像…你找不到合适的有角动物来完成这个比喻。 不管怎样,看着虚弱且神志不清的公主,你只能催促驾驶马车的斯努特加快速度。但在崎岖不平的路上加速并不是明智之举,因为司机的一个错误动作就可能让马车翻车。最终你到达了象龙山谷… From: 「冬日朦影」 To: 「殖民主义不会得逞!」、「猎鹿人」 任务9b Destory King Waves [-709105325](-709105325): 「殖民主义不会得逞!」 Faction: Default MissionType: Campaign Desc: 作为一位娶了公主的荣誉之士,你必须照顾好你的家人。而王子的家人就是他的子民。经过短暂的争论,甚至尚哈尔也同意,现在不是你和她这对恋人逃向夕阳的时候。 由于向萨姆雷尼亚政府透露了这块大陆的位置,你犯了一个错误。但你也有机会纠正它。为此,在酋长们的请求下,你前往了奇肯加城。这是萨兰加脱离萨姆雷尼亚的最后堡垒。 在这里,你将与皇家军队作战。那些在你家庭幸福的甜蛋糕上令人讨厌的苍蝇,那些潜入人民自由苗圃的狡猾鼹鼠… From: 「治愈公主」 To: 任务9bx Peaceful Final [975078832](975078832): 「猎鹿人」 Faction: Default MissionType: Campaign Desc: 在执行命令时,你有多少次选择了最轻松的道路,滥用权力和资源来实现目标?当你的行动可能导致伤亡时,你是否曾有过一丝迟疑?你是否考虑过他人的生命和你行为的道德准则? 你第一次思考这个问题时,你只看到了新的问题。你是谁?封建领主?探险家?萨兰加王子?你从未要求过这些头衔。 人没有必要让人为了他们不认同的权力、财富或思想而牺牲生命。因此,你决定与你心爱的妻子尚哈尔逃离恐怖的战争。 但这次,斯努特拒绝与你一起走。于是,你们分道扬镳… From: 「治愈公主」 To: 任务5c Undead Tutorial [1864344745](1864344745): 「往生常识」 Faction: Undead MissionType: Campaign Desc: 邓肯·铁眉的后裔冰冷的尸体被带到了梦幻剧场,以确保安全复活。你感觉出奇的好,心情也不错。你的忠实仆人斯努特也从湮灭中以同样良好的状态回归。 一个自称为“暮光主宰九世”的存在向你讲述了宇宙的真正法则,这些法则只有亡灵知晓。根本没有死亡(你自己刚刚亲眼见证了这一点),而结束生命实际上会让人回到过去。每一次,如暮光主宰所说的,“重启”都会稍微改变现实。 之所以会这样,是因为这个世界并不真实,它只是为了取悦“他们”而被创造出来的。但亡灵们相信,在这个领域中仍然有一个真正的价值,而这个价值就是“颂歌”。你原本想问,究竟是谁在享受这场娱乐,而音乐又与此有何关联。但暮光主宰告诉你,这些问题可以留到以后再问。而现在,是时候让你去体验作为亡灵的感觉了…… From: 「你是什么鬼?」、「此事必有蹊跷」、「怪物杀手」 To: 「偶像诞生」 任务6c UndeadRoot [1182811255](1182811255): 「偶像诞生」 Faction: Undead MissionType: Campaign Desc: 在你将最后一个死去的萨兰加人变成另一个丧尸之前,暮光主宰出现在你的房间。他庄严地宣布你已经通过了入会仪式,准备成为“颂歌”的传承者。 从现在开始,他说,你唯一且主要的任务就是文化扩张。亡灵们的办法就是他们的音乐,当然还有大规模屠杀——从萨兰加开始。 在你到来之前,亡灵与当地部落之间曾有一段不稳定的和平。但如果你在争议领土上建立一座城堡,这将激怒萨兰加人并促使他们发动攻击。这样你就能发动一次“报复性”的毁灭打击…… From: 「往生常识」 To: 「危险之旅」 任务7c Destory Natives City [2062769835](2062769835): 「危险之旅」 Faction: Undead MissionType: Campaign Desc: 掌握表演艺术本身就不轻松,如果你被选中去传播亡灵颂歌,那需要考虑的事情就会变得更多,尤其是当你坐在架子鼓后面时。 不过,当你已经死去,成为活着的音乐传奇要容易得多。你无需在睡觉、吃饭等其他无用的小事上浪费时间,因此你可以全身心投入到“颂歌”之中。 在前往尼涅恩德的路上,暗夜领主乐队的音乐调试逐渐完善。作为乐队领袖,你决定在第一次大型演出前,为你的“粉丝们”进行一次公开彩排。当然,也是在真正的大规模屠杀之前…… From: 「偶像诞生」 To: 「学习游泳」 任务8c Destory Lord's City [13673588](13673588): 「学习游泳」 Faction: Undead MissionType: Campaign Desc: 在尼涅恩德取得惊人的成功后,暗夜领主们准备前往萨姆雷尼亚。作为巡演经理的暮光主宰为那些发明你们虚构世界的蠢货道歉。他抱怨说,“开发者们”本可以在这个世界中引入一些飞机。 你其实并不那么生气,毕竟你完全不明白一架悬浮飞机能有什么帮助。不过,哈里马提亚海总得通过某种方式穿越。显然,是水路。 亡灵们如果在造船过程中不让一些活着的生物死去,那就不是他们了…… From: 「危险之旅」 To: 「下任巨星」 任务9c Kill King [308078077](308078077): 「下任巨星」 Faction: Undead MissionType: Campaign Desc: 这就对了!你的船队已经驶向了萨姆雷尼亚的海岸。暮光主宰祝贺了整个团队,并提到酷炫的摇滚乐队需要一个有魅力的主唱。然后他就离开了。 你完全不知道什么是摇滚乐队,也不知道他们需要什么。但你没浪费时间,趁暮光主宰不在时,你决定庆祝你的凯旋。 毕竟,你有无尽的时间去征服萨姆雷尼亚。谁在乎你的死亡与“重载”? From: 「学习游泳」 To: 「领主启示录」 任务10c Undead Branch Final [-1014087304](-1014087304): 「领主启示录」 Faction: Undead MissionType: Campaign Desc: 安博诺尔几乎已经完全臣服于您的脚下。费迪南德二世国王带着少数幸存者,被困于城堡的地牢中,徒劳地希望躲过您和亡灵盟友们在萨姆雷尼亚掀起的腥风血雨。 暗夜领主们全力进攻,直奔地牢,准备摧毁阻挡你们举办有史以来最盛大演出的最后一道屏障。 一旦国王命丧黄泉,你将彻底清除萨姆雷尼亚的凡人势力,从此无人能阻止你将故乡宣告为亡者之地…… From: 「下任巨星」 To:
Mod:中子的事件管理器 TL;DR: Mod id 3113001972 自带一个事件框架(Config.Lua(不包括其中的settings部分),Neutron_EventPackage.dll) 以及一个Demo(Config.Lua(仅限其中的settings部分),Plugins.dll,EventOptions.python.tsv,Events.python.tsv) 另有一个简单的,实验性的,基于事件(准确地说,基于中子的事件管理器)的战斗特效修改(id:3202767919) 大家可以仿照框架生产mod (我喜欢先写Events.tsv,然后通过cvrt.py转换成Events.python.tsv,当然大家也可以根据自己的喜好随意玩耍) 这玩意对比刚刚更新的事件分支,有两个好处 一个是,不需要切版本就能编辑 另一个是,支持对Events.tsv的热重载(关于热重载的触发,我写到EventOptions.tsv里面了) 这样modder可以在游戏里面慢慢调试事件 这玩意未来可能还需要改若干次 不过大家可以先用用看看 -- 大家还记得EA太吾的txt事件编辑吗? 我是说这玩意: http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fbbs.3dmgame.com%2Fthread-5972518-1-1.html&urlrefer=8ed175d893ef99ab73026e7fc49c4c9c 现在这玩意被我复活了 简单逻辑可以直接使用tsv完成 当然中子的代码比茄子的茄太多了,所以建议复杂代码还是自己写plugin的好些 (复杂:指结构体赋值(中子没写指针相关的东西)/取field(还没写)/循环(还没写)) 目前完成度:40%+40%(其中40%的进度都是吃茄子的代码吃出来的,简单测试之下发现问题不大) 除了复杂逻辑最好写dll之外,简单逻辑甚至可以用tsv直接完成 Mod会在steamapps/workshop/content/838350/Builtin-list.txt生成全部可用的函数列表(目前大小是667.5KiB,未来只会增加不会减少) 欢迎大家仿照id为3113001972的框架中自带的示例文件(EventOptions.python.tsv Events.python.tsv EventTriggers.tsv Config.lua 和Plugins.cs/Plugins.dll)写一个Mod BTW,可以借助cvrt.py将给人看的EventOptions.tsv Events.tsv转化成给电脑看的EventOptions.python.tsv Events.python.tsv 至于EventTriggers.tsv……虽然这玩意的python版本好像与本体一致……但为了一致我还是加了.python.的标记 我试着统计了一下时间 大概有一半时间花在写剧情文本上 想了想,觉得自己不是写剧情的料 干脆众筹剧情好了~ --- 如果大家有兴趣写剧情的话,可以试试我的框架 有不会的逻辑可以来找我,我会尽量给出那些逻辑的实现
有dalao知道笔记本电脑装Linux之后怎么设置键盘背光吗? 电脑之前是神舟的Z7-KP7EC,后来因为风扇出了问题换了几个问题依旧,索性换了未来人类DR722 目前的表现是,开机之后键盘有背光,睡眠之后背光消失,且背光不会因为睡眠唤醒亮起 键盘上面的几个有关背光的组合键完全没办法调整键盘背光(包括切换背光开关) 在简单尝试之后,我试了一下网上的教程,结果如下: 基于Scroll Lock的并没有任何作用 某些特定型号可以启用背光(比如Dell可以在/sys/devices/platform/dell-laptop/leds里面管理led),但这里没有找到相应的输入,将/sys/class/leds/*/brightness 全部置0,但仍然没有效果 在键盘背光开启的时候,这些带brightness的参数如下: /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight/actual_brightness : 1 /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight/brightness : 1 # 这个是显示器 /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight/max_brightness : 48000 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3:1.0/0003:1A81:221D.0004/input/input31/input31::capslock/brightness : 0 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3:1.0/0003:1A81:221D.0004/input/input31/input31::capslock/max_brightness : 1 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3:1.0/0003:1A81:221D.0004/input/input31/input31::compose/brightness : 0 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3:1.0/0003:1A81:221D.0004/input/input31/input31::compose/max_brightness : 1 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3:1.0/0003:1A81:221D.0004/input/input31/input31::kana/brightness : 0 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3:1.0/0003:1A81:221D.0004/input/input31/input31::kana/max_brightness : 1 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3:1.0/0003:1A81:221D.0004/input/input31/input31::numlock/brightness : 0 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3:1.0/0003:1A81:221D.0004/input/input31/input31::numlock/max_brightness : 1 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3:1.0/0003:1A81:221D.0004/input/input31/input31::scrolllock/brightness : 0 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3:1.0/0003:1A81:221D.0004/input/input31/input31::scrolllock/max_brightness : 1 /sys/devices/pci0000:00/0000:00:14.3/leds/phy0-led/brightness : 0 /sys/devices/pci0000:00/0000:00:14.3/leds/phy0-led/max_brightness : 1 /sys/devices/pci0000:00/0000:00:1c.6/0000:03:00.0/leds/mmc0::/brightness : 0 /sys/devices/pci0000:00/0000:00:1c.6/0000:03:00.0/leds/mmc0::/max_brightness : 255 /sys/devices/platform/i8042/serio0/input/input4/input4::capslock/brightness : 0 /sys/devices/platform/i8042/serio0/input/input4/input4::capslock/max_brightness : 1 /sys/devices/platform/i8042/serio0/input/input4/input4::numlock/brightness : 0 /sys/devices/platform/i8042/serio0/input/input4/input4::numlock/max_brightness : 1 /sys/devices/platform/i8042/serio0/input/input4/input4::scrolllock/brightness : 0 /sys/devices/platform/i8042/serio0/input/input4/input4::scrolllock/max_brightness : 1 有教程说DBus,但用教程的DBus会显示找不到dbus对象什么的错误(怀疑是键盘没注册到dbus上) 想问一下万能的贴吧dalao,有什么好的解决方法吗?
现在还有人做事件Mod吗? 目前我简化了事件Mod的写法 大家可以愉快地用tsv格式写事件了 可以先写出一个便于阅读的版本:然后借助cvrt.py转换成机器友好版(单元格内的回车换成逗号) 最后借助C#代码 if(((Dictionary<string, GameData.Domains.Mod.ModInfo>)(typeof(GameData.Domains.Mod.ModDomain).GetField("ModInfoDict",(BindingFlags)(-1))).GetValue(null)).TryGetValue("1_2882942864", out var modInfo)){ foreach(var tsvline in System.IO.File.ReadAllLines(modInfo.DirectoryName+"/Events.python.tsv")){ if(!string.IsNullOrEmpty(tsvline.Trim())){ AddEvent(new AutoEvent(tsvline,typeof(事件结算))); } } } 将全部内容整合到Mod中 需要C#的地方,目前只有tsv表中condition,visible与enter这三个字段(以及enter设置为dispatch之后,option中的每一条(此时option被视为condition,而非文本)) 这三处的函数要写在typeof(事件结算)这个类里面 Mod已上传(目前还是Mod《中子的交互扰乱器》的一部分) 如果大家更倾向于写tsv mod,我会继续完善tsv部分(目前完善进度10%……不确定这个完善跟正式版哪个先出) 下一个节点是30%,会将tsv组件独立出来,并彻底摆脱C# 我正在考虑用什么汇编语法…… 比如 new_var Gamedata.Domains.Character.Character taiwu; new_var Gamedata.Domains.TaiwuDomain td; static_field_assign td dm Gamedata.Domains.DomainManager Taiwu dynamic_call_assign taiwu td GetTaiwu (想想就觉得好蠢) (甚至不如直接C#) (至少C#不用打开太吾就能报错)
想砂一个太吾的程序员祭天 以下信息完全由互联网公开信息整理,并附有强烈的个人私货 不喜勿看,测试组觉得我说错那就是我说错了 起因:看到了宵夜dalao的mod http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fgithub.com%2Fxiaoye97%2FUnityExplorerForTaiWu&urlrefer=d03464f04a48f840685169a4f1fa4a20 这里面存在一个config,指明了前端和后端需要加载的dll (理论上这么做挺好,但我不明白为什么config需要写成lua的格式,难道是方便mod作者写闭源config然后埋挖矿程序吗?) 在config里面,我们很容易发现,mod分两种,前端mod和后端mod 这个设计真的天才。原来写mod我们只需要写一处,现在写mod我们必须写两处。以前游戏BUG存在于某一个简单函数,传参几次,dnspy大概都能分析出来 但如果涉及到前后端交互。。大概是从前端debug到数据被送走,然后后端怎么响应大概完全只能靠猜了 我有一个不负责任的推测:前后端分离是太吾coming soon没能兑现的罪魁祸首,没有之一 因为事实上,哪怕今天,太吾的前后端都没完全分离干净 不然宵夜dalao应该去给后端,而非前端写mod 前后端分离的话,应该是后端负责计算,前端负责与后端交互 这样游戏画面不会卡顿,图形界面卡死之后可以直接杀掉图形界面然后拉个新的起来接着玩 现在,我怀疑前端和后端一样,承担了许多计算任务 毕竟前端mod也是有效的mod 这大概会导致,计算繁重的位置(过月?背包?)发生卡顿 怎么说呢,前后端分离本来就是为了避免卡顿 太吾这种可能的时候,看上去有些画蛇添足的做法,很不好。 希望只是我多想了,如果按照我的描述,把那个程序员拉出去祭天大概一点都不过分。 现在我不担心太吾了 毕竟500个测试党没有激起任何骂战 至少太吾还是说得过去的 我担心山海经。
1 下一页