游侠NETSHOW论坛

标题: 正义之帝的编剧技术上级者讲座:10/17更新第四讲 [打印本页]

作者: ericsim    时间: 2008-9-25 06:57:43     标题: 正义之帝的编剧技术上级者讲座:10/17更新第四讲

最近,有两件让人高兴的事发生,所以促使我开始举办这个讲座。
        第一件事,据版友广成子所说,他在上海的D盘店,有店长sama向热情洋溢地推荐了——《人间五十年·初夏篇》。店长口吐莲花一般地说,这是最新的资料片云云。广成子道兄很客气地回答他:这是我朋友写的。店长sama随即墙角画圈圈ing。生平第一次让人盗版,还是让人觉得有些高兴。不过可能第二次就不会太让人高兴了。hoho
        第二件事,随着《五十年》系列的推出,本区的不少朋友开始了太阁5剧情编辑的迷人不归途。初级教程已经由本坛的小龙女、桥段发过了。而更早些,还有第一光荣组的组员zhongzzw发过初级上手教程,还有本区的老老前辈(俺那个时代的)315600、前辈shooter(小龙女时代的)发过中文版的说明书,初学者可以搜索一下,然后参考学习。
        如果您已经是一名成功的初学者了的话,还想进一步提高自己的编剧技术的话,那么,本讲座就比较适合您了。


       本讲座为方便初级者向上级者进修而开办。将分若干期讲述一些编剧的特别思路和特别技巧。
    当然,现在是连载形式,所以脚踩香蕉皮,想到哪里就写到哪里。大家有想知道的,可以跟帖提问。
        另,本区还活着的高手们,gufengshu、小虎仔、桥段(墩)等,和偶尔诈尸的zqj2004、小龙女等,有宝贵意见请尽量提出。

那么,大吼一声:

开班啦——



楼层索引:


第一讲:写给上级的挑战者们——————————————————2楼
第二讲:两种计时器的区别和应用————————————————3楼
第三讲:超长剧情的控制(一)—————————————————31楼
第四讲:超长剧情的控制(二)—————————————————41楼

[ 本帖最后由 ericsim 于 2008-10-17 08:24 编辑 ]
作者: ericsim    时间: 2008-9-25 06:58:31

第一讲:写给上级的挑战者们

      第一讲,说一些纲要性的东西。这里,默认朋友们已经掌握了初级技术,即能编写单流程事件、简单分支事件、单层循环事件,熟悉说明书(可以是中文版),能机械整合其他人所放出的源代码。
      过了初级这一关,很多朋友应该会觉得离随心所欲实现自己编写剧本的野心还很远。还想编写更庞大、更复杂的事件,无论是工具事件、泛用事件和特别人物剧情。
      那么,有些东西,会制约您的编写能力。其一,就是书写习惯
      不良的书写习惯会给朋友们带来很多麻烦。第一,“{”和“}”经常会不能一一对应;第二,自己编写的事件完成到一半,结果睡一觉以后发现已经看不懂昨天写的东西了;第三,源代码拿出去和人交流,被抱怨要花太长时间才能理解意思(这一条是参加了工作组,或者在论坛提问才会显现)。
      第一点,默认诸位越过初级门槛的达人们已经能自己克服。至于第三点,如果不准备共享源代码,似乎也问题不大。那么,阻碍诸位成为上级者的,就是第二点了。有朋友会说,没事,我看得懂自己写的代码,尽管排得很乱。呵呵,那么您之前写的单个事件,有多少行呢?有多少个分支呢?有多少级分支呢?有多少层循环呢?如果您要书写到1000行左右的单个事件,套用3到4层循环,有数十个各个级别的分支,您还能说不良的书写习惯对您的效率毫无影响吗?
      那么怎样算良好的书写习惯?简单而言,就是有自己的一套固定书写形式。当然,每个人的书写习惯可能不太一样。这里我只谈下自己的固定书写套路。

Ericsim式书写格式
1、每个事件的开始,先确立一个空白事件的骨架。

太閤立志伝5イベントソース//<——顶格
//此脚本说明

チャプター:{//脚本开始//<——顶格
    イベント:事件1{//事件1 开始//<——空4格半角
        属性://<——再空4格半角,8格半角
        発生契機://<——空8格半角
        発生条件:{//<——空8格半角
           人物解雇:(人物B,無効,出現済み)
//<——每再进入一级“{”和“}”,再空2格半角,此处即空10格
           調査:(対象)==(屬性)
           分岐:(真){
             人物解雇:(人物B,無効,出現済み)//<——每再进入一级“{”和“}”,再空2格半角,此处即空12格
             ループ:{//循环开始
               人物解雇:(人物B,無効,出現済み)//<——每再进入一级“{”和“}”,再空2格半角,此处即空14格


             }//循环结束


          }//真场合
          分岐:(偽){


          }//伪场合
        }//条件结束//<——空8格半角
        スクリプト:{//执行开始//<——空8格半角


        }//执行结束//<——空8格半角
    }//事件1
//<——空4格半角

    イベント:事件2{//事件2 开始
        属性:
        発生契機:
        発生条件:{


        }//条件结束
        スクリプト:{//执行开始


        }//执行结束
    }//事件2
}//脚本结束


以上就是本人采用的基本书写格式。有了良好的书写习惯,才能保证写出上千乃至上万行的事件也不会看了头晕。
注:《一切为了本能寺》目前大约2300余行,未发布的《一切为了川中岛》大约1900余行,灾害功能事件大约3000余行,和谐版大奥功能,约2100行。

    当然,书写习惯除了空格排版习惯以外,还有一个相当重要的地方就是:每写一个“{”,就预先把“}”也写好,并用空格排版到适当的位置。

    其二,有了良好的书写(排版)习惯之后,还有一个重要技能,就是善写注解
    你们是没有见过注解比正式的有效源代码行还长的源码吧。反正我是见过的。俗话说,好记性不如烂笔头。当你脑中灵光闪现的时候,快快把它写到注解里。即每行“//”的后面。
    注解的几大作用:
1、进行简单的分支、分级提示。已经在上面的空白事件例子中给出了用法。
2、华丽的分割线功能
例:
/////////////开始灾害结算部分/////////////////

/////////////开始灾害结算部分/////////////////
3、在源代码中展现您的个性。
例:
          //////////////////////////////////////////
          //////验证码生成部分,绝密,不得泄露//////
          //////                  ——ericsim //////
          //////////////////////////////////////////




以上便是个人觉得比较基本的要点,而且相当容易做到。做到之后,又会对书写事件有着很大的潜在作用。所以,就把宝贵的第一讲全部交给了与技术和思路无关的东西上。各位学员,不要嫌我啰嗦哦。


[ 本帖最后由 ericsim 于 2008-9-25 08:09 编辑 ]
作者: ericsim    时间: 2008-9-25 06:59:05

第二讲:两种计时器的区别和应用


    我们先来读一封来信。
wokuang 于 2008-9-24 22:41 发来
這是來自仙劍逍遙的求救信....

[求助] 如何編寫事件多少天后觸發某事件?
這個帖子
幫我補充一下吧



這算是劇本編輯求救吧


    wokuang,就是仙剑逍遥,他所说的帖子,就是由最近非常好学的hunter198161朋友的提问帖“如何編寫事件多少天后觸發某事件?

原帖由 hunter198161 于 2008-9-24 12:06 发表
因為觸發時間不同,所以只用特定日期設定時間事件還是會有不實感,應該可以設定在某事件發生多少天后觸發後續事件吧?人生五十年劇本里就有這樣的設定啊…… ...


    没错。《人间五十年》剧本中是有这样的设定(PS:你打错剧本名字,给我走廊里罚站去)。
    那么,如何实现的呢?

    当年桥段也问过这个问题。当然他提问的时候,这个问题早有解决思路。当时的普遍思路是:用一个死人的某个四勋(武士功勋、商人功勋、忍者功勋、海贼功勋)记录倒计时的总天数,然后写一个发生契机是“一日開始処理の先頭”的事件,每天减1功勋。而后继事件的一个发生条件就是对应用作计时器的功勋为0。

简单而言,就是这么书写:

太閤立志伝5イベントソース
//此脚本说明

チャプター:{//脚本开始
    イベント:事件1{//事件1 开始
        属性:
        発生契機:
        発生条件:{
          //作为例子,条件留空
        }//条件结束
        スクリプト:{//执行开始
          //作为例子,执行内容留空
          更新:(人物::朝倉宗滴.武士勲功)(10)//倒计时设定为10天
          更新:(イベントフラグ::泛用·天数倒计时(甲))(成立)
//计时器启动开关
        }//执行结束
    }//事件1

    イベント:泛用·天数倒计时(甲){//泛用·天数倒计时(甲) 开始
        属性:何度でも
        発生契機:一日開始処理の先頭
        発生条件:{
          調査:(イベントフラグ::泛用·天数倒计时(甲))==(成立)
          調査:(人物::朝倉宗滴.死亡フラグ)==(死亡)
          調査:(人物::朝倉宗滴.武士勲功)!=(0)

        }//条件结束
        スクリプト:{//执行开始
          代入a:(人物::朝倉宗滴.武士勲功)
          代入a:(a)-(1)
          更新:(人物::朝倉宗滴.武士勲功)(a)

        }//执行结束
    }//泛用·天数倒计时(甲)

    イベント:事件2{//事件2 开始
        属性:
        発生契機:
        発生条件:{
          //作为例子,条件留空
          調査:(イベントフラグ::泛用·天数倒计时(甲))==(成立)
          調査:(人物::朝倉宗滴.武士勲功)==(0)
        }//条件结束
        スクリプト:{//执行开始
          //作为例子,执行内容留空
          更新:(イベントフラグ::泛用·天数倒计时(甲))(不成立)//计时器关闭
        }//执行结束
    }//事件2
}//脚本结束


    这是最早的思路。当然由着这个思路,后来有个简化的办法:

太閤立志伝5イベントソース
//此脚本说明

チャプター:{//脚本开始
    イベント:事件1{//事件1 开始
        属性:
        発生契機:
        発生条件:{
          //作为例子,条件留空
        }//条件结束
        スクリプト:{//执行开始
          //作为例子,执行内容留空
          代入a:(状况::ゲーム経過日数)//游戏中经过的天数
          更新:(人物::朝倉宗滴.武士勲功)(a)//记录事件1的发生时间
          更新:(イベントフラグ::泛用·天数倒计时(乙))(不成立)//计时启动
        }//执行结束
    }//事件1

    イベント:事件2{//事件2 开始
        属性:
        発生契機:
        発生条件:{
          //作为例子,条件留空
          調査:(イベントフラグ::泛用·天数倒计时(乙))==(成立)
          調査:(人物::朝倉宗滴.武士勲功)!=(0)
        }//条件结束
        スクリプト:{//执行开始
          //作为例子,执行内容留空
          代入a:(状况::ゲーム経過日数)
          代入b:(人物::朝倉宗滴.武士勲功)
          代入c:(a)-(b)
          AND調査:{
            調査:(a)>(b)//确保事件2时间点在事件1之后
            調査:(c)>=(10)//事件1之后10天及以上,发生事件2
          }
          更新:(イベントフラグ::泛用·天数倒计时(乙))(不成立)
//计时器关闭
        }//执行结束
    }//事件2
}//脚本结束

    那么,这就是本讲题目中所说的两种计时器吗?错了。其实我觉得那是一种计时器。因为,只有当你睡觉之类的方式度过这一天时,该计时器才有效。也就是说,如果你很极端地一直在进行吃药+修炼或打刀等活动,那么此时计时器是停走的。那么,原本你设计是事件1发生之后10天到30天发生事件2,却很可能在几年以后让你触发了事件2。所以,这也是《五十年》里,提示让你睡觉打发那几天时间,而不是让你用这些时间去修行。
    有解决的办法吗?有!这就是只有本人使用的第2种纯数学的计时器了。理论如下:视太阁5游戏里的每一天为1个整数点。由于太阁5的时间跨度是1554年到1620年。这70年不到的时间,大约是360*70<30000天,即不到3万个整数点。将这个离散的时间区段映射到一个死人0到60000的功勋,是绰绰有余的。因此,便是将太阁中的每一天做一个一一映射,映射到一个死人的某个四勋上去。以上的理论部分,看不懂的可以跳过。
    实例如下:

太閤立志伝5イベントソース
//此脚本说明
チャプター:{//脚本开始
    イベント:主线·佐胁良之0{//主线·佐胁良之0 开始
        属性:
        発生契機:
        発生条件:{
          //剧本具体内容留待以后解密
        }//条件结束
        スクリプト:{//执行开始
          //剧本具体内容留待以后解密
          //////日历存储1启动//////
          ////良之事件——暂时////
          代入a:(状況::年)
          代入b:(状況::月)
          代入c:(状況::日)
          代入a:(a)-(1550)
          代入a:(a)*(360)
          代入b:(b)-(1)
          代入b:(b)*(30)
          代入a:(a)+(b)
          代入a:(a)+(c)
          更新:(人物::朝倉宗滴.武士勲功)(a)
          ////日历存储1启动完毕////
        }//执行结束
    }//主线·佐胁良之0

    イベント:主线·佐胁良之1{//主线·佐胁良之1 开始
        属性:一度だけ
        発生契機:室内画面表示後(無効,無効)
        発生条件:{
          //剧本具体内容留待以后解密
          調査:(人物::MP主人)==(前田利家)
          //////日历存储1计算//////
          代入a:(状況::年)
          代入b:(状況::月)
          代入c:(状況::日)
          代入a:(a)-(1550)
          代入a:(a)*(360)
          代入b:(b)-(1)
          代入b:(b)*(30)
          代入a:(a)+(b)
          代入a:(a)+(c)
          ////良之事件——暂时////
          代入d:(人物::朝倉宗滴.武士勲功)
          ////良之事件之后5天////
          代入e:(a)-(d)
          調査:(e)>=(5)
          ////日历存储1计算完毕////
        }//条件结束
        スクリプト:{//执行开始
          //剧本具体内容留待以后解密
        }//执行结束
    }//主线·佐胁良之1
}//脚本结束

    详细说一下紫色部分的含义。这一段代码,就是将1550年1月1日开始的每一天按照实际的日期顺序进行排序,并对应到死人的功勋中去。在事件1的执行部分,事件1的发生日期点便被记录在了死人的功勋中。
    在事件2的条件部分,再进行一次操作,将实际的日期映射为一个日期点,将这两个整数相减,即可比较精确地判断日期条件了。

    这里的时间节点计时器,比之之前的睡觉计时器,要更精确。无论你是睡觉还是修行技能,照样会让时间往前走。

[ 本帖最后由 ericsim 于 2008-9-25 11:08 编辑 ]
作者: Sare    时间: 2008-9-25 09:12:10

好东西……精华 收藏 呼吁
作者: 骑神    时间: 2008-9-25 09:12:37

板凳支持先了
作者: wokuang    时间: 2008-9-25 10:33:16

我也是初学者!
事实上
这三种写法我後来都有想到
前两种本来就会,第三种正好是在向你求救之後想出来了
只不过还没测试,但看来没必要测了

只是在第二种写法的时候
我会出现这种问题
LINE 0012 : ?つからない : ゲーム経過日数
LINE 0012 : 調査コマンドに左辺がありません
LINE 0012 : 代入a : 読み込めませんでした

而我的line 12 的指令是这样
代入a:(ゲーム経過日数)

所以我说「我没有办法代入」(请看hunter198161那个帖子)
就是这样


喔对了
帮e大强调一点
注解真的很重要喔
最简单的例子
<人间五十年>里面一堆新武将
偏偏在编写时又只能用800,801这样的数字来写
怎麽知道谁是谁哩?
这个时候有注解就很清楚了

还有
注解也可以用在括号後面
例如说
一个大数量的循环分歧
常常括号都不知道括到哪去了
像这种时候
在每个 } 的後面就可以加上是哪个东西的结束
也可以减少出错的机会喔

(ps:早上看到你发了一篇阅读权限255的,原来就是这篇啊...这补充还真是详细啊!)

[ 本帖最后由 wokuang 于 2008-9-25 10:43 编辑 ]
作者: xiahou    时间: 2008-9-25 10:37:27

教程很详细。。。不过是没时间做了……
作者: hunter198161    时间: 2008-9-25 10:48:28

尋覓好久的講座,代入a:(ゲーム経過日数)模式的計時器看起來要簡略不少。不過代入太多……我試試看去!
希望右近為大將能繼續更新高級講座,例如一個劇本多種類型分歧的模式,選擇,個人戰,合戰。。這樣融合起來。。
作者: 151711075    时间: 2008-9-25 10:57:31

停網修行前發現秘寶
0。。=
      雙手膜拜!!~~
作者: wokuang    时间: 2008-9-25 10:59:26

哎呀
来不及改上面了

e大跟我的那个代入指令
不是一样的吗?
那是错的喔

刚刚发现的
代入a:(状况::ゲーム経过日数)
这才是对的喔!

原来之前我笨了
所以才代不进去啊
作者: ericsim    时间: 2008-9-25 11:08:08

哦,忘了。的确要加
逍遥立功了——————————————————
作者: kusanagi86    时间: 2008-9-25 12:24:53

华丽的讲座  一定要浮出来支持的~~~~~~~
作者: 評評啖啖    时间: 2008-9-25 12:37:44

ericsim 大大 太阁区就靠你拉


作者: 光之剑士    时间: 2008-9-25 12:42:12

哼 窝头你野心真大 精华一个接一个

·······
作者: hpdxxd    时间: 2008-9-25 13:19:30

在这之前是255权限。。。
终于开了功德无量啊。。。
作者: 我没钱啊    时间: 2008-9-25 15:28:22

我啥都看不懂,这么深奥的玩意对于我来说力有未逮,只能支持然后当伸手党玩你们制作出来的剧本了。
作者: sototo    时间: 2008-9-25 15:31:54

原帖由 我没钱啊 于 2008-9-25 15:28 发表
我啥都看不懂,这么深奥的玩意对于我来说力有未逮,只能支持然后当伸手党玩你们制作出来的剧本了。


同感.............不过来是来支持一下!
作者: 快剑夏候恩    时间: 2008-9-25 15:47:47

那D版商真可怜.
作者: 曾天下第七    时间: 2008-9-25 15:49:35

太难了,像我这样的智商还是别学了,学也学不会。只好热心顶贴..................................
作者: baimao3721    时间: 2008-9-25 16:30:41

據說又造精了  路過順便一頂

窩頭果然很強大
作者: Sare    时间: 2008-9-25 17:45:37

......

有没有人去买D版的时候被D商推荐: 这是新出的太阁六,超好玩......orz!~

[ 本帖最后由 Sare 于 2008-9-25 18:46 编辑 ]
作者: 桥段    时间: 2008-9-25 21:34:56

难道这几天运气一直不好玩无双OL老被人秒杀……原来被窝头提名了

所以来顶顶看能不能转运
作者: tangzhi1984    时间: 2008-9-25 21:59:59

看了很有收获。。。最近在学习如何编写代码,基本上已经能看懂绝大多数的源代码文件了。
自己套用的过程的就是从已有的源代码文件去不断的学习,
有的时候是开了游戏去观察事件的发生对应代码去学习怎么编写。。
作者: bigbirdonl    时间: 2008-9-25 22:39:01

赶快搬个板凳,认真听课。
作者: ansonlaw    时间: 2008-9-26 07:28:28

強啊!! [佩服] [佩服] [佩服] [佩服] [佩服] [佩服] [佩服]
作者: wolfxt007    时间: 2008-9-26 08:38:59

写剧本实际上和写程序差不多了- -
虽然有想法 ……不过没思路没激情啊
作者: bigmojin    时间: 2008-9-26 09:25:41

强劲!!看到了当然要顶起来的说。对大家写剧本很有帮助!!!
作者: 小小旅行家    时间: 2008-9-26 09:48:40

相当专业 看来太阁VI有希望了 哈哈 相当N!  就是期待这样的高手!
作者: 司徒舞    时间: 2008-9-26 13:30:12

这标题起的很有气势…………= =
咳咳~~有一些问题,乃主动点联系偶吧~~
作者: 小虎仔    时间: 2008-9-27 11:46:58     标题: 我来抢楼

e兄真是热心+ 厉害,崇拜一个。
作者: ericsim    时间: 2008-10-13 13:39:49

第三讲:超长剧情的控制(一)

      好久没来更新,主要是不知道继续说什么问题好。现在趁着有些同学开始些长剧情剧本,那就在这个问题上说些东东吧。
      问题一:如何处理自编剧情和游戏自带剧情(后统称历史剧情)之间的关系?
      从具体的问题入手吧。有同学问过这样的问题:怎样能让自己在本能寺之后不从属于羽柴、柴田、信雄、信孝,而是直接独立成一个大名(不需要利用游戏自带的叛变功能)?问得好。
      这便是第一种情况。需要完全重写历史事件。因为光荣没有提供既有事件的逆向编译功能,所以无法对游戏自带事件进行任何修改。(当然严格来说,也不是不可以。您大可以把游戏安装目录下的Event_tw文件夹下的文件全删除。那么就不会发生任何自带事件。注:不推荐这么干。否则后果自负。
      那么,就本能寺后自立这个事件而言,同学们需要做的就是重写这段事件。具体可以参考桥段的《北国的雄狮》或者本人在《朝露的梦幻》中的相关代码。
      再说说重写历史事件需要注意的地方。就本问题而言,不光需要能触发玩家自编的本能寺事件,而且必须让游戏自带的本能寺不发生。总而言之,需要做的有两步:重写屏蔽
      屏蔽——就是不让历史事件发生。通过破坏历史事件触发条件的办法来做到。
      举例而言:《北国的雄狮》中,作者桥段就是通过织田信忠的强制死亡来实现的。当然,为了这点,桥段没有被偶少说。让武将死亡这种不能通过事件编辑来逆向化的操作,尽量要少做。其实,可以让信忠变成未元服状态。这样也就破坏了本能寺要求的信忠成年的条件。当然,破坏发生条件这一步,是需要之前另写一个事件来完成的
      重写——重新书写历史事件,要做到天衣无缝的话,需尽可能地模拟原来的进程。

      再来说说第二种情况。有些历史事件不能完美模拟。比如城池改名(岐阜城、滨松城、长滨城)、安土筑城、大阪筑城、商家自立、忍者自立、海贼自立等等。那么,便需要使自编事件与历史事件交叉发生
      以安土筑城为例。盛夏篇直接面临如何让安土城出现的问题。在初夏篇结束后,再有一步操作,即可发生安土筑城。那便是让信长统一美浓。当然,不是说安土的条件就只有信长统一美浓。其余条件诸如信长全制压南近江等等的条件,已经在初夏篇中通过一次次的势力调整,都已经达成了。而留下美浓的岩村城在武田手里,便是作为一个开关来控制安土筑城的发生的。所以,这种情况下一种比较好用的办法就是:先期通过一个个事件,将大部分条件都达成;留下一个条件作为开关,来控制历史事件的发生。


      又到了说再见的时候。今天就更新到此。

[ 本帖最后由 ericsim 于 2008-10-13 13:51 编辑 ]
作者: baimao3721    时间: 2008-10-13 13:44:05

更新了第三講啊
作者: 快剑夏候恩    时间: 2008-10-13 13:47:14

窝叫受又授课了,因为坐最后一排啥也没听到。
PS:另外强烈抗义三国志11没有剧情编辑器。
作者: ericsim    时间: 2008-10-13 13:50:46

与楼上一起抗议
——————————————————
作者: ansonlaw    时间: 2008-10-13 14:43:01

厲害!!!支持!!!
但多數請況下聽聽還真是一頭霧水,我編劇本的時候都是直接從其他人的劇本里面復制而已,至于理論,太深奧了,有那時間還不如再玩幾遍算了!
作者: 微笑四方    时间: 2008-10-14 21:57:31

我来诈尸一下……
E你先列个提纲,然后计划一下,几天写一篇……HOHO
写的太少了,我看的不过瘾
作者: baimao3721    时间: 2008-10-14 23:01:19

原帖由 快剑夏候恩 于 2008-10-13 13:47 发表
窝叫受又授课了,因为坐最后一排啥也没听到。
PS:另外强烈抗义三国志11没有剧情编辑器。




有的話 你的攻勢會更加猛烈是吧 = =
作者: hpdxxd    时间: 2008-10-15 07:33:59

顶顶顶
2020202020202020
作者: 司徒舞    时间: 2008-10-15 08:49:08

更新比较迟钝……且授课费太过昂贵!抗议……
作者: 微笑四方    时间: 2008-10-15 13:05:29

原帖由 司徒舞 于 2008-10-15 08:49 发表
更新比较迟钝……且授课费太过昂贵!抗议……

他这个人就迟钝 没办法的……费用过高这个问题么,其实不付也没关系 哈哈
作者: ericsim    时间: 2008-10-17 08:16:48

第四讲:超长剧情的控制(二)

      继续上一讲的内容。本期谈一下对后世剧情编写影响很大的系统——式神守护模式

      问题二:什么是式神守护模式?
      玩过《人间五十年》,尤其是《初夏篇》的玩家应该深有体会。当你们自信满满地统领大军,杀到电脑城下,突然毫无征兆的(注:如果有提示“这样子没办法攻城”之类的话,那无关式神的事,乃是GA修改器的问题),强制玩家的队伍回城……对,这就是式神守护模式。为了防止玩家或电脑的无度进攻,破坏势力格局,从而导致剧情无法继续的情况发生。因此,式神模式,与其说是城池的守护神,不如说是自编剧情的守护神。具体的式神控制,分为脚本手动两部分。脚本部分,即是剧情式神模式,对应《人间五十年》的剧情开发。手动调整部分,玩家可以进入由非武将人物把守的道场,在那里进行修改。(其实道场中的功能,乃是工具事件《一切为了本能寺》,调节式神只是一部分的功能。)
      问题三:式神守护模式是如何想到的?
      开发式神系统的起因是,自由之民在进行《春之篇》内测的时候,由于经常被电脑破坏势力格局,而无法正常触发剧情。当时给他的建议是,让他用高亚男的修改器,将一些城池设为不可攻击。结果这家伙嫌麻烦,要求在剧情编辑器的框架下解决这个问题。于是冥思苦想一周左右,终于找到了遏制电脑疯狂进攻(《春》中玩家没有多少合战机会)的办法。当然那个时候开发的是早期的式神系统。包括gufengshu、小虎仔、桥段等人使用的,都是已经放出代码的早期式神。新的式神模式,解决了一些问题,比早期版的效率更高,更方便控制。
      问题四:式神守护模式的思路是怎样的?
      早期式神,因为使用的契机是每日处理的先头,所以分为筛选军团和对筛选军团下达指令两部分。筛选部分,就是对所有存在的军团进行筛选,选取出正在进行合战的军团。注意,筛选正在进行合战的军团和正在进行攻城战的军团,对早期版式神而言,效果是一样的。原因在于,太阁系统中,野战时,日期是不向前走的。即,系统设定,野战都是在一天内完成的。所以每日处理这个契机,对野战中的部队,产生不出实际效果。
      在筛选出正在合战的部队后,接下来判断该部队是攻城还是守城部队。这点是比较麻烦的,因为事件编辑器能调查的军团属性中,居然没有目标这个关键属性。所以只能根据部队主将之类信息来进行判断。但是效果还不是很理想,所以这就是开发后期式神的原因之一。
      在判断出攻守方后,再对一些设定的条件进行判断。比如守城方是否受到保护,攻城方是否被封印攻击等等。对满足条件的军团,下达撤退指令。这里,一个有趣的游戏设定是,不论攻守哪方,有一方被下令撤退后,结果都是合战结束,攻击方返回城池。
      除了攻守方判断有缺陷外,早期式神还有个致命缺陷,便是能够阻止系统自带的攻城战事件顺利进行。例如武田攻击箕轮城的事件。因此在综合考虑之后,在初夏篇开发时,早期版式神便被弃用了。
      后期式神,使用了军团移动终了时的发生契机。这样有很多好处,比如,可以很方便的在发生契机的参数中设定为军团的方针是据点攻击,这样就轻易筛选出了攻方军团;又,这个契机还有个发生据点的参数,就能很方便确定守城方了;在发生条件中排除事件专用军团1到5之后,还能确保游戏自带的剧情攻城战能顺利进行。所以后期式神便克服了早期版的最大的两条缺陷。

      本期讲座也差不多该结束了。不过,还有最后一部分,是需要大家来完成的。现在开始,

布置作业!!!!!!

作业一:找出在本区发布过的(早期版)式神补丁及其源代码,仔细研究下源代码。

作业二:在完成作业一的情况下,思考如何书写后期版的式神。


作者: eds777    时间: 2008-10-17 11:16:29

汗一个先~~居然还带布置作业的.........
作者: strinmel    时间: 2008-10-17 11:59:42

电子书电子书
20202020202020
作者: 司徒舞    时间: 2008-10-17 13:26:32

布置作业……乃睡醒了咪?
作者: 快剑夏候恩    时间: 2008-10-19 21:40:35

作业就是用来欠教的。
作者: oygpal    时间: 2008-10-20 13:06:53

头晕啊
二十字的补丁快打上.............
作者: baimao3721    时间: 2008-10-20 18:44:25

還有課後作業    支持第四課
作者: 无人地带    时间: 2008-10-22 17:45:47

窝大的编剧讲座怎么能不顶一下?
此帖必须收藏,哪天想编了绝对是个好教程
作者: wokuang    时间: 2008-10-24 01:40:46

果然我就觉得你找不到教材
因为比较麻烦的编辑几乎都被人研究过了
剩下的就是比较少用的指令和特别的思考方向
在这样的条件下竟然还能弄出三丶四讲
而且连作业都有
这样下次又有东西讲了
真是
所以一定要 一下
作者: dc1011    时间: 2008-10-24 23:33:44

恩,支持一下~~~~期待之后的更新~~~~
作者: 传说的猫    时间: 2008-10-25 10:07:37

好贴要顶是我做人的原则~~~~~~~~~~~~~~~~
作者: Siegflied    时间: 2008-11-29 13:10:12

作业不会做啊!
LZ把源文件发出来吧......
作者: Siegflied    时间: 2008-11-29 13:28:36

请问如何得到发生据点的参数,以便确定守城方啊?
発生契機不是只能写成“軍団移動終了時(無効,無効,拠点攻擊,無効)”吗?
我新手,不太懂,望LZ不吝赐教...
作者: 小龙女    时间: 2009-5-12 21:49:36

你好牛哦~~哈哈,顶起,有空再慢慢看
作者: iamchenchao    时间: 2009-5-12 22:18:37     标题: 回复 #54 小龙女 的帖子

近距离膜拜小龙女~~        
作者: 烟魔丨宅    时间: 2010-5-23 23:34:06

作业一不好找哦,只找到小龙女PK功能的源代码,作业二没办法,还没研究明白呢
作者: 123qwe456asd    时间: 2010-8-27 16:28:27     标题:

这酷毙啦,楼主真牛。
作者: 結城晴野    时间: 2012-3-22 22:02:28

= =求教程群= =
作者: o(_)o旅行    时间: 2013-4-25 20:53:41

有没有初级的啊
作者: 小小太阁谜    时间: 2015-5-29 04:14:21

窝头大人还有关注太阁吗,大家都想你了




欢迎光临 游侠NETSHOW论坛 (https://game.ali213.net/) Powered by Discuz! X2