转跳到内容

ZSOV2_0

【会员】初级会员
  • 内容数

    103
  • 加入

  • 最后访问

帖子发自 ZSOV2_0

  1. 本以为两三天就能写完了,结果写到一半导师给了我个项目,但还是挤了点时间写完了,虽然后半部分有点水就是了。

    整个mod没有剧情,mod作者也没有写的打算。

    只进行了最基本的debug,数值平衡也还没做,如果有bug或与说明不符(详细说明附在文末),请于这里回复。完成版还需要一段时间。

    本mod可由他人自由修改或传播。

    压缩包内容:以u180开头的共28个txt文档,以及前置事件u181共29个txt文档

    下载地址:一楼末附件,或百度网盘:链接: https://pan.baidu.com/s/18PrCumH5ltako5L5gBYwPQ 提取码: vnus

    使用方法:解压后把文件夹内内容放到eve文件夹下。

    占用eveflg:180~185(记忆),260~299(暂时)

    mod说明:

    本mod主要基于未公开指令str_eveflg(xxx)写作,核心为一个行动力系统,玩家每回合根据自身情况累加行动力,然后消耗行动力触发事件。

     

    本mod内容详细说明:(从这里往后就不推荐阅读了,除非有些地方不明白或有bug)

    目录

    触发条件

    通用函数:1、属性参数,2、勲功参数,3、受减成参数影响的属性提升,4、事件组结束检查,5、连续格闘战

    首次触发

    每回合行动力获取

    可选择事件:h、疗伤  a、将角色投狱   b、私下会面   c、锻炼自身能力  d、加班获取精勤  e、强化舰队(得到消耗品)f、抑制负面事件的发生

    负面事件:1、强制格闘战 2、降勲功/削派閥

    总计占用eveflg

    (本事件中除法都向下取整)

     

     

     

    触发条件

    玩家士官,非霸王。如受伤则跳转到疗伤事件,伤愈后照常进行,否则本回合也无法触发。

    通用函数

    1、属性参数:将知力、攻撃、防御、格闘、交渉视作五维,用五维属性值分别计算对应的五维参数,以知力为例,计算规则如下:如知力<60,参数为-1*((60-知力)/10+1),如75<知力≤100,参数为(知力-75)/5,如知力>100,则参数为5+(知力-100)/10

    2、勲功参数:勲功<10000时,参数为(勲功/1000),10000≤勲功<11000时,参数为15,11000≤勲功<13000时(满勲功或王族),参数为25,勲功=13000时(霸王),参数为50

    3、受减成参数影响的属性提升:"u180_powerup5.txt"~"u180_powerup9.txt"

    本事件内玩家提升能力时,用提升的数值除以减成参数(向下取整),以知力为例,计算规则如下:如知力≤100,参数为1,如100<知力≤200,参数为2,如知力≤200,参数为3。当单次能力提升会导致该项能力突破100或200时,先消耗提升量升到参数变更值(100或200),然后变更减成参数进行之后的提升。如果能力提升的量会在除以除以减成参数并取整后归零,则属性不变,返还用以提升能力所消耗的行动力。

    4、事件组结束检查:“u180_endcheck.txt”

    选项:继续事件,结束事件,结束事件(连点跳过用)

    显示剩余行动力,并由玩家决定是否继续事件组,本事件组中绝大多数事件结束后将会调用此函数,大部分事件在中途被强制停止(如行动力不足)时也是通过调用此函数来实现。现在在两种状况下会在不调用此函数的情况下强行结束事件组:1、玩家受伤。2、霸王入狱。事件组被强制结束时不进行负面事件的结算。

    本事件的第三个选项效果与第二个相同,它的存在只是为了把选项的位置对上从而可以通过连点鼠标来跳过事件。

    5、连续格闘战

    在本回合事件组结束之前,每进行一次格闘战,格闘能力就会暂时衰减10%(线性累加)

    仅在格闘战时衰弱,完成后立即恢复正常。在事件开始阶段置零。

     

    首次触发:"u180.txt"(的一部分)

    当你第一次满足事件组触发条件时,获得強化鍵*1,并将强制格闘战中敌方格闘基本值设置为100。

    当不满足事件组触发条件之后再次满足时可再次执行。

     

    每回合行动力获取:"u180.txt"

    "行动力"占用eveflg180,"本派閥人数"占用eveflg263,"(每回合行动力获取后)起始可用行动力"占用eveflg264,"每回合获取行动力"占用eveflg265。

    每月基本恢复20点,由能力提供相当于"五维所对应的属性参数之和"的行动力(可为负数),由派閥提供相当于"所属派阀人数"的行动力(当你为派阀长时此项翻倍),由勲功(身份)提供相当于"勲功参数"的行动力(因为霸王无法触发本事件,无霸王对应分支)。

    一旦玩家不满足条件“玩家士官,非霸王”,则行动力清零。

    上述所有行动力获取之和记为"每回合获取行动力",获取行动力后的当前行动力记为"(每回合行动力获取后)起始可用行动力"

     

    可选择事件:“u180_0.txt”

    h、疗伤:"u180_heal"

    玩家的伤势储存在狀況ID33中,0为健康,1为轻伤,超过2为重伤,每回合自然减1。

    一旦角色受伤,触发事件组后强制触发本事件。可以通过消耗行动力进行疗伤,每点伤势消耗一回合获取行动力。必须一次性将伤势治疗完成,治疗完成后进入"事件组结束检查"。

    疗伤完成后重置"(每回合行动力获取后)起始可用行动力"

    如果行动力不足或主动放弃则强制结束事件组。

     

     

    a、将角色投狱:"u180_a.txt"

    两个可选项:本势力角色"u180_a1.txt",非玩家势力女性"u180_a2.txt"

    一个特殊分歧:选择"本势力角色"后选择本势力霸王"u180_a1x.txt"

     

    选项“本势力角色":选择一个本势力年龄大于5的角色

    放弃选择:进入"事件组结束检查"。

    选择"本势力角色"后选择本势力霸王",下文中详细说明

    选择"本势力角色"后选择自己,无效果,进入"事件组结束检查"。

    非上述三种状况时,消耗行动力将所选角色投狱,

    起始值为100,由交涉产生“2*对方交涉-玩家交涉”需求,由身份产生“5*勲功参数”需求,此三者相加为需求基值。

    倍率起始值为100%,由随机数产生rnd(10)*5%的几率,由知力产生“2*对方知力-2*玩家知力”%,三者相加为倍率值,倍率值不会低于50%。

    基本需求和倍率的乘积为最终需求,不会低于50。

    如果玩家本势力最大的派阀长,则消耗减半,如果目标是本势力最大的派阀长,则消耗为3倍。

     

    选择"本势力角色"后选择本势力霸王:将所有王族投狱,之后替换本势力霸王。如玩家是继任者则将霸王投狱,否则霸王会消失。

    基本需求为1000,每个部下增加50的需求,同派阀则减少25(你是派阀长时为50),每颗星球增加(人口/一亿)*(民忠/100)*50的需求,每个王族增加300需求(单独计数,不与部下的50相冲突)。

    如果你不是本势力最大的派阀长,则消耗翻倍。

     

    选项“非玩家势力女性":随机选择一个非本势力年龄大于6的女性,包括仕官中,村娘,放浪。

    该选项会在进行选择后立即扣除30行动力,之后不会返还。

    消耗行动力将所选角色投狱,

    起始值为100,由格闘产生“2*对方格闘-玩家格闘”需求,由身份产生“5*勲功参数”需求,此三者相加为需求基值。

    倍率部分有两种选择:武力解决,多花点脑子和时间

    选"武力解决"进入格闘战,胜利则将倍率设置为50%;失败则自己的伤势变为3,并强制结束事件组。(自身格闘能力会因为连续格闘战而衰减)

    选“多花点脑子和时间”,倍率起始值为100%,由随机数产生rnd(10)*5%的几率,由能力产生“2*对方格闘-玩家知力”%,三者相加为倍率值,倍率值不会低于75%。

    基本需求和倍率的乘积为最终需求,不会低于50。

    如果最终因行动力不足导致失败,则行动力归零。

     

    b、私下会面 :“u180_b.txt”

    两个可选项:同事,俘虏

    该事件一旦选择就会消耗100行动力

    选同事后分支:对方为女,親密信赖以上“u180_b1H.txt”,一般情况“u180_b1N.txt”

    选俘虏后分支:对方为女“u180_b2H.txt”,一般情况“u180_b2N.txt”

    一个前置事件:判断玩家是否持有面会パス“u181.txt”

    面会パス占用eveflg184,能力提升数值占用eveflg260,能力提升消耗占用eveflg262

    前置事件:当玩家持有面会パス时,将eveflg184设为1。(事件组结束时将将eveflg184设为0)

     

    选项“同事”:自行选择一个本势力年龄大于5的角色

    当对方勲功比你多3000且你没有面会パス时,返还100行动力,进入"事件组结束检查"。

    放弃选择,返还100行动力,进入"事件组结束检查"。

    选择自己,返还99行动力,进入"事件组结束检查"。

     

    满足“对方为女,親密信赖以上”,选项:发生性关系,普通交流

    选择“发生性关系”后,播放HCG,之后如果对方好感已满(为100),可设为性奴,之后进入进入"事件组结束检查"。

    只要没有进行“设为性奴”,或直接选择“普通交流”,则进入“普通交流”

     

    不满足“对方为女,親密信赖以上”,或满足但未进行“设为性奴”操作,则进入普通交流:

    选项:双方能力提升,对方能力提升,(隐藏选项:派閥劝诱)

    选择“双方能力提升”:对方五维中的随机一项能力提升1点,好感提升30点。

    自己的能力提升消耗设置为30,能力提升数值设置为1,进行受减成影响的能力提升。

    选择“,对方能力提升”:对方五维中的一项能力提升3点,好感提升70点,

    (隐藏选项:派閥劝诱):当对方親密大于100(满親密或为性奴),且不为派閥长的时候出现该选项。选择后对方会加入你的派阀。

     

    选项“俘虏”:自行一个俘虏

    满足“对方为女”,选项:发生性关系,普通交流

    具体内容与选项“同事”相同。

    普通交流(俘虏):

    选项:双方能力提升,对方能力提升,(隐藏选项:对方出狱)

    前两项与选项“同事”相同。

    (隐藏选项:对方出狱):当对方親密大于80的时候出现该选项。选择后对方会被设为我方士官。

     

    c、锻炼自身能力“u180_c.txt”

    选项组1:提升2点(消耗150),提升6点(消耗420),提升18点(消耗1200)

    选项组2:提升攻撃,提升防御,提升知力,提升格闘,提升交渉

    能力提升数值占用eveflg260,能力提升消耗占用eveflg262

    具体内容如选项名所写,选择提升量和提升种类后,用通用函数里的“受减成参数影响的属性提升”规则进行能力提升。

    顺带一提,提升量越多,平均每点消耗约低

    提升2点平均每点消耗75,提升6点平均每点消耗70,提升18点平均每点消耗66.67

     

    d、加班获取精勤“u180_d.txt”

    当玩家为派阀长时,因为没有精勤点数,直接进入"事件组结束检查"。

    选项:提升1点(消耗30),提升5点(消耗140)

    因为我不知道怎么以变量的方式调用精勤,所以该选项是没有超额保护措施的,精勤超过9点会被浪费掉,请多加留意。

     

    e、强化舰队(得到消耗品)“u180_e.txt”

    选项:艦隊攻撃+3,艦隊防禦+3,部隊最大數+600

    选择此事件后立即消耗500行动力

    三个选项分别对应:“艦隊戦術書 参”、“防衛戦術書 参”和“部隊招集”

     

    你觉得c、d、e三个分支太水了?太巧了我也是这么觉得的。

    f、抑制负面事件的发生“u180_f.txt”

    选项:抑制强制格闘战事件“u180_f1.txt”,抑制降勲功事件“u180_f2”,(隐藏选项:抑制削派閥事件“u180_f3”)

    阅读此事件前最好先阅读“负面事件”部分

    强制格闘战减成占用eveflg266

     

    抑制强制格闘战事件:

    一旦选择立即扣除50行动力,

    选项:60,0.2(x=85%,y=0.5);80,0.4(x=70%,y=1);100,0.6(x=50%,y=1.5)

    因为必要的信息很多,所以选项就长这样了,在出选项之前就有对这个选项名的大致解释。

    选项上的信息有4个,记为“a,b(x,y)”,a为对手的基本格闘数值,当你的格闘低于a时,敌方的格闘就为a。当你的格闘大于a时,敌方格闘提升“b*(你的格闘-a)”的数值。x为成功战胜对手后填入“强制格闘战减成”的数值,该“减成”与“本回合消耗行动力”的乘积,为本回合向“强制格闘战计数”中增加的数值,不叠加,取最后填入的数值,在事件组开始时填入100。y为成功战胜对手削减“强制格闘战计数”的参量,消减量为y与“本回合消耗行动力”的乘积,仅消减本回合之前累积的计数(这意味着你通过此事件消耗的行动力不会被抵消),且不会低于0。

    自身格闘能力会因为连续格闘战而衰减,在该事件中你能力的衰减是在计算完对方格闘能力之前进行衰减计算。对方对格闘差值的弥补量也会减少。

     

    抑制降勲功事件:

    一旦选择立即扣除100行动力,

    选择一个本势力年龄大于5的角色

    放弃选择:返还100行动力,进入"事件组结束检查"。

    选择自己:返还99行动力,进入"事件组结束检查"。

    选择角色的親密超过30(既不为嫌恶):返还100行动力,进入"事件组结束检查"。

    不满足上述条件时,增加对方50親密,并且降勲功/削派閥的计数减少10*对方的“勲功参数”。

     

    (隐藏选项:抑制削派閥事件):出现条件,自己为派閥长,且派閥中有除自己外的成员

    一旦选择立即扣除100行动力,

    选择一个本势力年龄大于5的角色

    放弃选择:返还100行动力,进入"事件组结束检查"。

    选择自己:返还99行动力,进入"事件组结束检查"。

    选择角色不是你派閥中的人:还100行动力,进入"事件组结束检查"。

    不满足上述条件时,对方入狱,脱离派閥,親密归零。同时“降勲功/削派閥的计数”减少相当于2倍于对方五维“属性参数”之和的数值,之后再减少相当于5倍对方的“勲功参数”的数值。

     

    负面事件:“u180_afterend.txt”

    事件组正常结束后进行负面事件的计算与触发。

    事件组被强制结束时不进行负面事件的结算。

    1、强制格闘战:“u180_afterend1.txt”

    强制格闘战计数占用eveflg182,强制格闘战敌方格闘占用eveflg185

    每回合开始将计数减少10%,然后加上本回合所消耗的行动力与“强制格闘战减成”的乘积。(本回合所消耗的行动力用现有行动力减去"起始可用行动力"得到)。得到的数值乘以判定参数,若大于10倍每回合增加行动力,则发生强制格闘战。

    判定参数与“每回合增加行动力”有关,当其≤50时,判定参数为1;50<“每回合增加行动力”≤100时,判定参数为1.5;“每回合增加行动力”>100时,判定参数为2。按不进行抑制,且每回合耗光行动力计算,既eveflg182=(1+eveflg182*0.9),参数为1时无法触发本事件(结果趋近于10),参数为1.5时每11月触发一次,参数为2时每7月触发一次。按每5回合耗光行动力计算,参数为1时第四次耗光时触发,参数为1.5时第二次耗光时触发,参数为2时立即触发。

    一旦触发则与一个基础格闘为变量'eveflg185'(起始100,你每次胜利则提升10),格闘低于你时增加0.9倍差值的对手进行格闘战。

    自身格闘能力会因为连续格闘战而衰减,并且你能力的衰减是在计算完对方格闘能力之后进行衰减计算。

    若胜利,则清空“强制格闘战计数”,敌方基础格闘增加10,无惩罚。

    若失败,则将伤势设为5,清空“强制格闘战计数”。

    2、降勲功/削派閥:“u180_afterend2.txt”

    降勲功计数占用eveflg183

    实际上是降勲功和削派閥两个负面事件合起来,由玩家是否为派阀长决定分歧。

    计数每回合提升本势力所有好感<30(既嫌恶)角色的“勲功参数”*2,之后扣除本势力所有好感≥100(满好感或性奴)角色的“勲功参数”*0.5;如果玩家是派阀长,计数增长“派阀人数”,如果玩家是本势力最大派阀的派阀长,则计数再增加3*“派阀人数”。

    计数大于10倍每回合增加行动力,则发生负面事件。当玩家不是派阀长的时候,玩家的勲功会下降2000点,并被逐出派阀。当玩家是派阀长的时候,玩家派阀每个角色进行进行一次1/3随机判定,若判定通过则退出派阀。(退出派阀用off_habatu进行,你自己也会进行判定并可能通过,但是该指令对派阀长无效)

     

    总计占用eveflg:

    记忆区:180~185,

    180:累计行动力。最重要的eveflg,选择事件触发则减少对应数值,一旦不足则强制进入"事件组结束检查"。

    181:判断是否是满足触发条件后第一次触发事件。现在仅仅是送玩家一个“强化键”和将eveflg185设为100。

    182:强制格闘战计数。经参数修正后,大于10倍每回合增加行动力,则发生强制格闘战。

    183:降勲功/削派閥计数。大于10倍每回合增加行动力,则发生降勲功/削派閥事件。

    184:用于判断玩家是否持有面会パス。因为没有执行区的单独指令,用前置事件“u181.txt”来进行判断

    185:强制格闘战中敌方格闘基本值。基础为100,每次强制格闘战胜利增加10。

    当不满足事件组触发条件时,180~185清零。

    暂时区:260~299

    260:能力提升数值,函数“受减成参数影响的属性提升”用。

    261:能力提升类型(作废),函数“受减成参数影响的属性提升”用,已作废。

    262:能力提升消耗,函数“受减成参数影响的属性提升”用。

    263:本派閥人数。因为是通过循环得到的,所以单独储存,每回合获取行动力时更新。

    264:起始可用行动力。用于最后计算本回合行动力消耗,获取行动力后更新,疗伤后也会更新。

    265:每回合增加行动力。在本事件组中承担综合考量玩家强度的工作,会在各种各样的地方用到。

    266:强制格闘战计数减成。每回合回合行动力消耗与它的乘积将计入强制格闘战计数。

    267:连续格闘战计数。获取行动力时归零,每次格闘战后+1,每点导致玩家在格闘战中减少10%的属性

    270往后就没那么严格了,

    270~279:用于显示数值。时不时还会直接参与到最后一两步计算中。

    280~289:用于储存各种计算过程,本事件组的劳模,特别是280,你可以在任何子事件中找到它。不够会向290~299借,但实际上使用量最多的情况下也只是刚好全部用完。

    289:玩家受连续格闘战衰减之前的格闘能力,用于格闘战完成后恢复格闘能力。本是个没有什么特别的用于储存各种计算过程的变量,但是由于280~289仅在抑制强制格闘战事件“u180_f1”中使用完过,当时289用于储存玩家原始格闘能力,后面就一直用它来指定玩家原始格闘能力了。

    290-299:出现循环时,在循环中使用的变量。

    u180(私下行动).zip

  2. 1 小时前, iselrohn 说道:

    驚了,原來未公開指令裡還有這種黑科技。。

     

    和已公开的指令比起来超黑科技的,我正在写的事件完全就指着这句代码活了。

    因为没写完就只展示下准备实现的核心功能

    zin_reg_qnar,本事件组现可用行动力为str_eveflg(180) cr 其中,上回合结余str_eveflg(270),每月恢复20点 cr 由派閥提供str_eveflg(271)点,由能力提供str_eveflg(272)点,由勲功提供str_eveflg(273)点

     

    zin_reg_qnar,需要str_eveflg(270)点行动力才能成功,现可用行动力为str_eveflg(180)点 cr 所需基值为100,由交涉产生str_eveflg(271),由身份产生str_eveflg(272) cr 倍率随机数为str_eveflg(274),经知力修正最终倍率为str_eveflg(275)

    大概就是根据玩家状况累计资源去触发一些事件。

    因为是监禁play爱好者所以想时不时扔点妹子到监狱去,同事就假设是诬陷(交涉相关),不是同事就假设是狩猎(格闘相关),然后知力用来做倍率。也有做用行动力兑换能力、兑换好感或者换个霸主的事件的打算,不过我还是先做个事件扔一群妹子到监狱里再说。

    今天先睡了,争取明天晚上之前弄出来。

     

    啊,还有关于处理五维数组处理的方法多谢了,已学习。

  3. 7 小时前, hentai14 说道:

    str_eveflg(xxx)

    西瓜大大,我想在事件里对五维能力进行综合评估,因为五维的状态ID是连着的,而且事件中的处理方式不会变化,所以想用循环来处理。

    我想问一下怎么用狀況ID和人物ID读取人物某个状态的数值。

    现在是把处理过程复制了五遍,分别改間接指定,这样凑合着在用。

    另外能获得所属派閥人数吗,我现在是通过遍历所有人物得到的。

  4. 23 分钟前, hentai14 说道:

    最標準的方法就是用dbg_print當中斷

    或是用對話表示出來(但正式發佈時還得手動去除)

     

    如果想知道eveflg的值, 也可以用SSG

     

    再不然就是拿HSP執行原始碼, 然後觀察變數變化

    怎么用对话表示出来啊?

    我给自己的事件加了个“行动力”参数,在发生事件的时候需要频繁去确认,但一直用dbg_print把这个变量扔在左上角挺别扭的,怎么在对话中出现这个数值的确切值呢?

  5. 想通过事件进行HCG浏览,分支有萝莉、处女、怀孕几种,那个怀孕分支指令里面好像只有怀孕和流产两个。

     

    说起来在写事件的或者遇到种种问题,如果能直接改指令估计可以轻松不少。比如我翻论坛看到这玩意

     

    #defcfunc get_old_path int prm_997, int prm_998

    var_847 = "w" + strf("%04d", prm_997)

    var_850 = "xa.jpg"

    if ( prm_998 == 1 ) {

    var_850 = "xd.jpg"

    }

    if ( var_904 == 1 & var_898(prm_997) > 6 ) {

    var_850 = "xb.jpg"

    if ( prm_998 == 1 ) {

    var_850 = "xe.jpg"

    }

     

    看起来像是函数定义之类的东西,要是能直接改这个地方的var_850就没这么多事了。

  6. 59 分钟前, EcoNet 说道:

    不知你是用来干啥,不过表格可以用宏和代码,文本用编程搞也比较简单

    我语文老师死早了点,有歧义没看出来。

    表格和文本我就是这么处理的,本来我想表达的是,用宏和代码自动处理数据会更轻松。

    但如果不能干涉内部数据还是按键精灵舒服点。

×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款