解密8:官渡36回合脚本及顾问修改
本帖最后由 luckgaoan 于 2012-3-1 18:21 编辑本帖只为新手制作。目的是让新手看懂。
我以将一年12回合改成36回合guandu36.txt为例说明。
第一步: -----------------------设置触发器
打开alexander\data export_descr_advice.txt
找到;===============================================================
;== 12 Turns-per-Year Mod Start AdviceThread
;===============================================================
;------------------------------------------
AdviceThread 12tpy_Thread
GameArea Campaign
Item 12tpy_Text_01
Uninhibitable
Verbosity0
Threshold1
MaxRepeats0
RepeatInterval1
Attitude Normal
Presentation Default
Title 12tpy_Text_01_Title
Scriptscripts\show_me\script_12tpy_dates.txt
Text 12tpy_Text_01_Text1这就是12回合脚本的触发器了;===============================================================
;== guandu36 Turns-per-Year Mod Start AdviceThread
;===============================================================
;------------------------------------------
AdviceThread 12tpy_Thread
GameArea Campaign
Item 12tpy_Text_01
Uninhibitable
Verbosity0
Threshold1
MaxRepeats0
RepeatInterval1
Attitude Normal
Presentation Default
Title 12tpy_Text_01_Title
Scriptscripts\show_me\guandu_36.txt
Text 12tpy_Text_01_Text1将其改为36回合脚本的路径
第二步:
在lexander\data\scripts\show_me 内新建一名为guandu_36.txt的文件script
while I_TurnNumber < 2483
select_ui_element advisor_dismiss_button
simulate_mouse_click lclick_down
simulate_mouse_click lclick_up
suspend_unscripted_advice true
脚本内容
if I_TurnNumber < 2483
select_ui_element advisor_dismiss_button
simulate_mouse_click lclick_down
simulate_mouse_click lclick_up
end_if
end_while
end_script内容
console_command date 194
console_command season summer
declare_counter Season_Year_Turn0_Thread
while I_TurnNumber = 0
monitor_conditions I_CompareCounter Season_Year_Turn0_Thread = 0
if I_CompareCounter Season_Year_Turn0_Thread = 0
advance_advice_thread Season_Year_Turn0_Thread
inc_counter Season_Year_Turn0_Thread 1
end_if
end_monitor
suspend_unscripted_advice true
end_while
……………………直到第35个
console_command date 196
console_command season winter
declare_counter Season_Year_Turn35_Thread
while I_TurnNumber = 35
monitor_conditions I_CompareCounter Season_Year_Turn35_Thread = 0
if I_CompareCounter Season_Year_Turn35_Thread = 0
advance_advice_thread Season_Year_Turn35_Thread
wait 1
select_ui_element advisor_portrait_button
simulate_mouse_click lclick_down
simulate_mouse_click lclick_up
inc_counter Season_Year_Turn35_Thread 1
end_if
end_monitor
suspend_unscripted_advice true
end_while
复制过去。只需将第11,23 个的winter改为summer
因为原版是12回合,又是从0开始,所以最后一年是第35个。
这是第一年194年的脚本,可以一直写下去,但不能太多,否则会很卡
顾问的话
打开alexander\data\text export_advice.txt{Season_Year_Turn0_Text_01_Title} 東漢獻帝建安四年請激活f1腳本
{Season_Year_Turn0_Text_01_Text1} 主公,現在是公元一九九年一月上旬。\n\n歡迎來到luckgaoan製作的官渡之戰\nluckgaoan祝您遊戲愉快转一个有趣的帖子
世上最先进的一年N回脚本(全通吃版!)
引用编程的一句行话,“最精简的就是最好的”。 本设计适用于:罗马、蛮族BI、ALX、中2、王国、以及所有国内外MOD.......一率通吃。
“这个系统虽然只有短短的几行字,但是对罗马系列的影响非常大,只有搞系统脚本制作的人才能体会得到。通常全战的系统脚本文件数据在1.5~1.7M就开始卡了,超过1.7M的如果玩到后期兵多就让人等到烦,所以设计人有时不得不反复筛选只保留更重要的系统以保证游戏运行速度。而这个简单精致的新系统为你节省出了大量的空间和资源,让你能够使用更多的系统了。”
精简版1年N回合系统例:
declare_counter dates
set_counter dates 0
monitor_event FactionTurnStart FactionIsLocal
console_command season summer
inc_counter dates 1
if I_CompareCounter dates = 4
console_command season winter
set_counter dates 0
end_if
end_monitor
;-----------------------------------------M2↑
while I_TurnNumber >= 0
suspend_unscripted_advice true
end_while
说明:这段文字中的4代表一年四回合,你想要多少回合就把它改多少,简单方便。中2系列的用虚线以上部分就够了,罗马系列的还要有下面三行。将此数据复制到脚本文件末尾即可。
如果是有大型脚本系统设计的中2MOD如魔戒,最好是复制去开头(为了避开某些剧情系统存在的屏蔽脚本内存运算的设计),就是script的下面。如果发现人家原本就设计有另种回合脚本(一般在末尾)就要删掉,因为系统运行是以后面的为准。
后话:我把这个拿去替换掉三国的1年12回合脚本,脚本容量从1.3M被压缩到 1K !!!要知道系统脚本是每回合都必须从头读取一遍的东西,容量大小直接影响到游戏的运行速度。因此,以前老外那些论文似的长篇设计通通可以扔进垃圾堆了哈哈。
这个系统对罗马系列影响最大,能为有大型脚本系统的罗马MOD节省宝贵的运行资源,对中2的运行没什么影响,比中2魔戒老外设计的那种回合系统先进的地方就是改回合方便,它那个估计连看得懂的人都没几个,更别说改了。
里发一下我研究并稍微改进的一年四回合脚本
script
while I_TurnNumber >= 0
select_ui_element advisor_dismiss_button
simulate_mouse_click lclick_down
simulate_mouse_click lclick_up
suspend_unscripted_advice true
declare_counter dates
monitor_event FactionTurnStart FactionIsLocal
console_command season summer
inc_counter dates 1
if I_CompareCounter dates = 4
console_command season winter
set_counter dates 0
end_if
end_monitor
while I_TurnNumber >= 0
suspend_unscripted_advice true
end_while
if I_TurnNumber >= 0
select_ui_element advisor_dismiss_button
simulate_mouse_click lclick_down
simulate_mouse_click lclick_up
end_if
end_while
end_script
用这种方法就没顾问了 第一个,留名:lol 先坐板凳位,等上学习课。:loveliness: 等上学习课。
满怀期待点开帖子,竟然发现编辑中三个字,叫我情何以堪:lol luck 还是宝刀未老 依然给力 luck v依然宝刀未老 茄子的脚本不止没顾问 头一年只有6个月。。。。。会引起武将头像和技能混乱 不然我早作了。。。:( ansirandy 发表于 2012-3-4 22:50 static/image/common/back.gif
茄子的脚本不止没顾问 头一年只有6个月。。。。。会引起武将头像和技能混乱 不然我早作了。。。:( ...
{:soso__14040694544857304584_3:} 会引起武将头像和技能混乱 不会吧?那通吃个毛儿啊!不就乱套了。 曾宝 发表于 2012-3-27 14:23 static/image/common/back.gif
会引起武将头像和技能混乱 不会吧?那通吃个毛儿啊!不就乱套了。 ...
通吃三国意外不需要头像定位的MOD 所以还是很强大的 关键是不占用脚本的空间 ansirandy 发表于 2012-3-27 16:12 static/image/common/back.gif
通吃三国意外不需要头像定位的MOD 所以还是很强大的 关键是不占用脚本的空间 ...
你这么说我晓得了。不过是“以外”吧?搞的我纠结了半天。{:soso__16984349925490629196_1:} 你最上面的一些修改地方应该用红字标明,否则不知所云,特别是新手(比如我)
要是有投降脚本就好了。 学习了。。。。。。。。。。。。。。{:soso_e100:} 在回一次,,给点金币啊!!!!!!!!!!
页:
[1]