找回密码
 点一下
查看: 1560|回复: 15

想让某玩家不能控制自己的所有单位

[复制链接]
发表于 2009-8-27 00:29:17 | 显示全部楼层 |阅读模式
几个月前有发贴子来问不让玩家控制他的某单位:   有没有办法让我的单位不受我控制.

这次要问不能控制自己的所有单位.  犀利吧.


==========================================
引用第15楼Renee于2009-03-21 11:26发表的  :
用jass啦~~让玩家取消对自己的共享控制就可以了~~用触发器的话不行~~因为会刻意规避对自己控制权的剥夺~~


Renee大大说有JASS能取消玩家对自己共享的控制, 能不能直接给出该J代码.  我复制到WE里, 让某个T来运行这个J.
哈哈, 邪恶的拿来注意啊
发表于 2009-8-27 00:43:55 | 显示全部楼层
能控制自己的所有单位?那类型滴?用    单位-营救单位    这条触发不行么????不太明白这问题。。。。可能是我理解能力的问题。。。。
回复

使用道具 举报

 楼主| 发表于 2009-8-27 00:44:59 | 显示全部楼层
需要 不能控制自己所有单位

但是这些单位还是我自己的,  还能继续做他们之前发布命令的动作, 或者T发布命令的动作.   并且我还能看到这些单位.
回复

使用道具 举报

发表于 2009-8-27 01:34:15 | 显示全部楼层
就像幽鬼的大?
回复

使用道具 举报

发表于 2009-8-27 09:10:57 | 显示全部楼层
猜想应该是这个函数吧
[codes=jass]native SetPlayerAlliance        takes player sourcePlayer, player otherPlayer, alliancetype whichAllianceSetting, boolean value returns nothing[/codes]

sourcePlayer和otherPlayer就是你要的玩家,whichAllianceSetting填ALLIANCE_SHARED_CONTROL,value是false
回复

使用道具 举报

发表于 2009-8-27 10:12:10 | 显示全部楼层
我研究了一下猪头兄的地图后,改了改,你看看


地图上的那个巨魔,在开始后7秒是不能选取他,但能攻击他,在7秒后便能选取了,你看看能不能帮帮你?

a.w3x (36 KB, 下载次数: 31) ←下载在这里
回复

使用道具 举报

发表于 2009-8-27 13:15:49 | 显示全部楼层
设置失败后成为观看者,然后令自己失败就行啦
回复

使用道具 举报

发表于 2009-8-27 13:20:41 | 显示全部楼层
ls是个很无趣的做法……万一是要暂时失去控制呢?
回复

使用道具 举报

 楼主| 发表于 2009-8-28 14:13:02 | 显示全部楼层
猪头兄那段代码不能直接拿来用吧?

我在触发器里对共享进行了设置, 然后把该触发转成文本的.    并用另一条触发运行他. 还是没效果...
是不是这样还是算触发器而不是R大所说的 J 呢?

该文本内容如下.
function Trig_xxx_Actions takes nothing returns nothing
    call SetPlayerAllianceBJ( Player(0), ALLIANCE_SHARED_CONTROL, false, Player(0) )
    call SetPlayerAllianceBJ( Player(0), ALLIANCE_SHARED_ADVANCED_CONTROL, false, Player(0) )
    call SetPlayerAllianceBJ( Player(1), ALLIANCE_SHARED_CONTROL, true, Player(0) )
    call SetPlayerAllianceBJ( Player(1), ALLIANCE_SHARED_ADVANCED_CONTROL, true, Player(0) )
endfunction

//===========================================================================
function InitTrig_xxx takes nothing returns nothing
    set gg_trg_xxx = CreateTrigger(  )
    call TriggerAddAction( gg_trg_xxx, function Trig_xxx_Actions )
endfunction
回复

使用道具 举报

发表于 2009-8-28 14:44:26 | 显示全部楼层
[codes=jass]function SetPlayerAllianceBJ takes player sourcePlayer, alliancetype whichAllianceSetting, boolean value, player otherPlayer returns nothing
    // Prevent players from attempting to ally with themselves.
    if (sourcePlayer == otherPlayer) then
        return
    endif

    call SetPlayerAlliance(sourcePlayer, otherPlayer, whichAllianceSetting, value)
endfunction[/codes]

请不要使用这个bj函数,它会判断sourcePlayer与otherPlayer是否相同,如果相同就什么都不干
直接用cj函数吧,像这样
[codes=jass]call SetPlayerAlliance(Player(0), Player(0), ALLIANCE_SHARED_CONTROL, false)[/codes]
回复

使用道具 举报

发表于 2009-8-28 17:40:50 | 显示全部楼层
难道5楼的方法没用???
回复

使用道具 举报

 楼主| 发表于 2009-8-28 17:41:24 | 显示全部楼层
function Trig_xxx_Actions takes nothing returns nothing
    call SetPlayerAlliance(Player(0), Player(0), ALLIANCE_SHARED_CONTROL, false)
    call SetPlayerAlliance(Player(0), Player(0), ALLIANCE_SHARED_ADVANCED_CONTROL, false)
endfunction

//===========================================================================
function InitTrig_xxx takes nothing returns nothing
    set gg_trg_xxx = CreateTrigger(  )
    call TriggerAddAction( gg_trg_xxx, function Trig_xxx_Actions )
endfunction




+++++++++++++++++++++++++++++++++++++++

根据猪头大大的指点进行了修改,   以上是代码.  我已经完全达到预期目标.

第一条指令取消单位共享,  在游戏中就不能控制自己的兵移动巡逻停止了.
但是有些单位有技能仍然可以释放,  有些可以建造和升级的单位仍然可以建造和升级.  
于是第二条指令取消完全共享进一步发挥了作用, 不能建造和升级了.

我再把那些单位都加上"守卫"的分类,  就不能释放技能了. 这下便真正做到不能控制我自己的单位.

这个功能将带来对抗图某种技术的普及, 是里程碑似的.
回复

使用道具 举报

 楼主| 发表于 2009-8-28 17:59:20 | 显示全部楼层
w062c30  兄的演示图也能实现无法控制自己单位.

我看过是用的蝗虫技能, 再给那个单位嗜血术. 再怎么怎么就不太清楚了,  因为我没有装扩展的UI,  只是中文原版编辑器和剑心的补丁.

不知道原理是不是以嗜血术让有蝗虫的单位变身, 从而达到一种BUG般的效果.

只是这样的单位仍然无法被选中,  我的功能需要上不适合. 还是用指令直接关掉更方便可靠.

感谢 w062c30 兄, 感谢猪头大大. 感谢Renee大大!
这项技术将会被大量地图采用!  你们的研究很有价值!
回复

使用道具 举报

发表于 2009-8-29 00:57:09 | 显示全部楼层
引用第12楼刀锋战士于2009-08-28 17:59发表的  :
w062c30  兄的演示图也能实现无法控制自己单位.

我看过是用的蝗虫技能, 再给那个单位嗜血术. 再怎么怎么就不太清楚了,  因为我没有装扩展的UI,  只是中文原版编辑器和剑心的补丁.

不知道原理是不是以嗜血术让有蝗虫的单位变身, 从而达到一种BUG般的效果.
.......

我是用狂暴战士升级,和蝗虫用的

那图的回复控制是我做的,其他都是猪头兄做的
回复

使用道具 举报

 楼主| 发表于 2009-8-29 19:43:41 | 显示全部楼层
哦对的, 是狂暴战士
回复

使用道具 举报

发表于 2009-8-29 20:01:38 | 显示全部楼层
单个的话,用蝗虫+混乱技能貌似可以,这样应该可以做到能被作为目标,但无法自己操作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-25 19:45 , Processed in 0.047794 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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