找回密码
 点一下
查看: 1512|回复: 14

想做一个施放会消耗金钱的技能,大家给点意见。

[复制链接]
发表于 2009-11-30 12:04:24 | 显示全部楼层 |阅读模式
想做一个像仙剑奇侠传里乾坤一掷那样的技能,就是施放后会扣除自己的一部分金钱,如果玩家没有钱则不能释放这个技能。不知道用什么技能为基础合适。
此外在编辑器里看到了一个叫做“收费”的技能,提示是“向某个玩家收取固定数额的金子和木材”,不知道是干什么用的。
发表于 2009-11-30 12:56:04 | 显示全部楼层
收费貌似是玩家间给钱的玩意儿?
分开两个触发,首先一个开始施放技能的,
进行整数值判断,玩家金钱是否大于某值,小于的话停止并发布信息“金钱不足”。
另一个就是技能效果发动。这样就不用讲了吧。
回复

使用道具 举报

发表于 2009-11-30 12:57:31 | 显示全部楼层
用触发应该可以吧
事件:单位使用技能
动作:如果单位所属玩家的金钱多于(所需金钱)
那么设置单位所属玩家的金钱等于当前金钱—所需金钱发动技能效果
否则不做动作......
回复

使用道具 举报

发表于 2009-11-30 13:00:47 | 显示全部楼层
你的写法会触发技能冷却。
回复

使用道具 举报

发表于 2009-11-30 13:01:57 | 显示全部楼层
什么意思?
又是我那个没有cd的问题?
回复

使用道具 举报

发表于 2009-11-30 13:17:13 | 显示全部楼层
不是,是你的技能发动时候如果你的钱不够就会什么效果都没有技能照样造成冷却。
回复

使用道具 举报

发表于 2009-11-30 13:23:08 | 显示全部楼层
那不是很好吗?
我就是那么打算的啊
同意技能的释放,只不过钱不够没有伤害洒.....
回复

使用道具 举报

发表于 2009-11-30 13:25:04 | 显示全部楼层
小A大你吓到我了
以为我的写法又出bug了呢
最近做技能玩的时候经常发现不好用
所以改来改去哈.....很是郁闷......
回复

使用道具 举报

发表于 2009-11-30 13:28:39 | 显示全部楼层
这样阿,看来你我的口味不同呢。
回复

使用道具 举报

发表于 2009-11-30 14:51:31 | 显示全部楼层
一般的做法是小a那样,捕捉两个事件的,比如我曾经做过的倒塌某ai版本中某英雄的技能,全是花钱的……
回复

使用道具 举报

发表于 2009-11-30 16:04:13 | 显示全部楼层
你看看这个吧,这触发是附近没有单位就停止施法,你参考下吧

[trigger]
TZ 3
    事件
        单位 - 任意单位 开始施放技能
    条件
        (施放技能) 等于 投掷
    动作
        设置 TZ_Unit[0] = (触发单位)
        设置 TZ_Point[0] = ((触发单位) 的位置)
        设置 TZ_Group = (半径为 275.00 圆心为 TZ_Point[0] 且满足 (((((匹配单位) 是 建筑) 等于 FALSE) and (((匹配单位) 是存活的) 等于 TRUE)) and ((匹配单位) 不等于 (触发单位))) 的所有单位)
        点 - 清除 TZ_Point[0]
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (TZ_Group 中的单位数量) 小于或等于 0
            Then - 动作
                游戏 - 对 (转换 ((触发单位) 的所有者) 为玩家组) 发送文本信息: |cffffc300附近没有可以投掷的单位|r
                设置 TZ_Level[0] = (投掷  的等级对 (触发单位))
                单位 - 对 (触发单位) 发布 停止 命令
                单位 - 删除 投掷  从 (触发单位)
                单位 - 添加 投掷  给 (触发单位)
                单位 - 设置 投掷  等级对 (触发单位) 为 TZ_Level[0]
                单位 - 对 (触发单位) 发布 停止 命令
                触发器 - 关闭 TZ <预设>
                计时器 - 开启 TZ_Add_MP_Timer ,计时方式: 一次性 时间设置: 0.50 秒
                单位 - 对 (触发单位) 发布 停止 命令
                单位 - 对 (触发单位) 发布 保持警戒位置 命令
            Else - 动作
[/trigger]

这触发的好处就是技能的效果不会触发,cd不会产生,等级也能恢复,缺点是施法单位在不被发布命令的情况下会不断重复播放施法动作
回复

使用道具 举报

发表于 2009-11-30 17:53:27 | 显示全部楼层
引用第11楼zhuzeitou于2009-11-30 14:51发表的  :
一般的做法是小a那样,捕捉两个事件的,比如我曾经做过的倒塌某ai版本中某英雄的技能,全是花钱的……
求门
回复

使用道具 举报

发表于 2009-12-1 11:06:14 | 显示全部楼层
ls何意?
回复

使用道具 举报

发表于 2009-12-1 11:37:30 | 显示全部楼层
[codes=jass]function CancelSpellA1MX takes nothing returns nothing
    local player PLY=GetOwningPlayer(GetTriggerUnit())
    local integer LVL=GetUnitAbilityLevel(GetTriggerUnit(),'A1MX')
    if GetPlayerState(PLY,PLAYER_STATE_RESOURCE_GOLD)<LVL*100+400 then
        call mr(GetTriggerUnit())
        call LL(PLY,"金钱不足,无法使用!")
    endif
endfunction
function IsSpellA1MX takes nothing returns boolean
    return GetSpellAbilityId()=='A1MX'
endfunction
function SpellA1MX takes nothing returns nothing
    local player PLY=GetOwningPlayer(GetTriggerUnit())
    local integer LVL=GetUnitAbilityLevel(GetTriggerUnit(),'A1MX')
    call SetPlayerState(PLY,PLAYER_STATE_RESOURCE_GOLD,(GetPlayerState(PLY,PLAYER_STATE_RESOURCE_GOLD)+LVL*50+50))
    call DestroyEffect(AddSpecialEffectTarget("Abilities\\\\Spells\\\\Other\\\\Transmute\\\\PileofGold.mdl",GetTriggerUnit(),"origin"))
endfunction
function TriggerSpellA1MX takes nothing returns nothing
    local trigger t=CreateTrigger()
    call V0X(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(t,Condition(function IsSpellA1MX))
    call TriggerAddAction(t,function SpellA1MX)
    set t=CreateTrigger()
    call V0X(t,EVENT_PLAYER_UNIT_SPELL_CAST)
    call TriggerAddCondition(t,Condition(function IsSpellA1MX))
    call TriggerAddAction(t,function CancelSpellA1MX)
    set t=null
endfunction[/codes]

这是其中一个技能很多都是有特定场合的东西,比如函数名变量名之类,由于加密的关系不断在变
另外有一部分技能不适用这样的方法,比如狂战士,即使这样捕捉照样给你放出来………………
回复

使用道具 举报

发表于 2009-12-1 15:12:34 | 显示全部楼层
如果你如此闲适,把单位前摇调0了的话……
猪头真不亲切,竟然贴J……

还有最好奇的是猪头弄的倒塌某AI版本……
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-6 04:58 , Processed in 0.032737 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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