骑马与砍杀中文站论坛

用户名  找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

帖子
购买CDKEY 衣谷三国
查看: 1571|回复: 3

[求助] 想请问下关于玩家的身份和社会地位

[复制链接]

20

主题

114

回帖

50

积分

扈从

Rank: 2Rank: 2

UID
3084588
第纳尔
18
精华
0
互助
2
荣誉
0
贡献
0
魅力
1
注册时间
2019-6-29
鲜花(6) 鸡蛋(0)
发表于 2025-2-17 01:00:43 | 显示全部楼层 |阅读模式
本帖最后由 咸鱼圣代 于 2025-2-17 14:31 编辑


出于方便考虑,我觉得给玩家冠一个身份能在很多地方起到用处,也易于理解。
不过有些地方我还是没搞清楚,想请问一下大家。
玩家唯一可能统治的阵营就是fac_player_supporters_faction对吗?只要这个阵营为激活状态并且确定玩家是其统治者那么玩家就一定是君主,有没有什么别的情况玩家也是君主呢?
玩家向篡位者宣誓会执行(assign, "$player_has_homage" ,1),对吧。但是如果是的话怎么放弃支持篡位者的对话没有把这个全局变量调回0呢?难道玩家在跟随篡位者叛乱期间中途放弃就永远保留"$player_has_homage"为1了吗?
目前我个人是将玩家分为四个身份并试图确定玩家的身份,不过因为上面的问题感到很苦恼,也不知道我的方法有没有疏漏。


slot_troop_player_state = 670
slto_freeman = 0
slto_mercenary = 1
slto_vassal = 2
slto_monarch = 3


(1.000000,
[
    (try_for_range, ":faction_no", kingdoms_begin, kingdoms_end),     
        (try_begin),#如果玩家的阵营为玩家拥立者,且统治者为玩家,玩家就是君主            
            (eq, "$players_kingdom", "fac_player_supporters_faction"),            
            (faction_slot_eq, "fac_player_supporters_faction", slot_faction_leader, "trp_player"),            
            (troop_set_slot, "trp_player", slot_troop_player_state, slto_monarch),        
        (else_try),#如果玩家的阵营不是玩家拥立者,而是属于任何一个NPC王国的话            
            (eq, "$players_kingdom",":faction_no"),            
            (try_begin),#如果执行过(assign, "$player_has_homage" ,1),玩家就是封臣               
                (eq, "$player_has_homage" ,1),               
                (troop_set_slot, "trp_player", slot_troop_player_state, slto_vassal),            
            (else_try),#如果没有执行过,只是单纯的过了一遍(call_script, "script_player_join_faction", "$g_talk_troop_faction"),玩家就是佣兵               
                (troop_set_slot, "trp_player", slot_troop_player_state, slto_mercenary),            
            (try_end),        
        (else_try),#如果上面的一个都没触发,玩家不属于任何一个王国阵营,也不是统治者。玩家是一个自由人            
            (troop_set_slot, "trp_player", slot_troop_player_state, slto_freeman),        
        (try_end),   
    (try_end),


]),



20

主题

114

回帖

50

积分

扈从

Rank: 2Rank: 2

UID
3084588
第纳尔
18
精华
0
互助
2
荣誉
0
贡献
0
魅力
1
注册时间
2019-6-29
鲜花(6) 鸡蛋(0)
 楼主| 发表于 2025-2-17 14:25:38 | 显示全部楼层
本帖最后由 咸鱼圣代 于 2025-2-17 14:29 编辑

        (try_begin),#如果玩家的阵营为玩家拥立者,且统治者为玩家,玩家就是君主;如果统治者不是玩家就是在支持篡国者,玩家是领主
            (eq, "$players_kingdom", "fac_player_supporters_faction"),  
            (try_begin),   
                (faction_slot_eq, "fac_player_supporters_faction", slot_faction_leader, "trp_player"),            
                (troop_set_slot, "trp_player", slot_troop_player_state, slto_monarch),  
            (else_try),
                (troop_set_slot, "trp_player", slot_troop_player_state, slto_vassal),
            (try_end),

注意到了支持篡国者的时候也是领主。

27

主题

229

回帖

262

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1483
精华
0
互助
37
荣誉
0
贡献
0
魅力
256
注册时间
2021-3-14
鲜花(48) 鸡蛋(0)
发表于 2025-2-18 08:50:34 | 显示全部楼层
我记得源码里不是有相应的(assign, "$players_kingdom", 0),和 (assign, "$player_has_homage", 0),将玩家变回自由人吗

20

主题

114

回帖

50

积分

扈从

Rank: 2Rank: 2

UID
3084588
第纳尔
18
精华
0
互助
2
荣誉
0
贡献
0
魅力
1
注册时间
2019-6-29
鲜花(6) 鸡蛋(0)
 楼主| 发表于 2025-2-19 00:15:11 | 显示全部楼层
快乐风猫 发表于 2025-2-18 08:50
我记得源码里不是有相应的(assign, "$players_kingdom", 0),和 (assign, "$player_has_homage", 0),将玩家 ...

是的,我主要是在看我有没有什么疏漏的地方。写出来指定这些槽主要是方便识别,不过就算不把它们写成槽我一些的疑问也还是存在。比如是我找不到支持篡国者后中途放弃的对话有哪里是重新把player_has_homage调成零了的。
我看下来感觉和篡国者沟通完后跳到[anyone|plyr,"lord_give_conclude", 这个对话最后里面过了一遍(assign, "$player_has_homage", 1), 然后选择抛弃篡国者的对话里面却不会有(assign, "$player_has_homage", 0),
源码里面唯一有(assign, "$player_has_homage", 0), 的地方是player_leave_faction的脚本,这个脚本玩家向国王宣誓之后如果对象是篡国者就执行一遍,不公平待遇选项的自立执行一遍,佣兵不续期执行一遍,剩下就是间接包含在indict_lord_for_treason和activate_player_faction这两个脚本里面。这两个脚本都和放弃篡国者的对话无关。
放弃篡国者的时候玩家不管怎么样都不会对homage做操作,哪怕没有领地了执行了deactivate_player_faction也只是把players_kingdom变成零。所以我不知道我弄错没有,如果玩家跟随了篡国者中途退出不管玩家还有地,保有自己的阵营还是没地了,直接自由人,都不会去掉homage。我在想我是不是该自己在对话里加上。
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2025-3-26 09:45 , Processed in 0.099862 second(s), 20 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表