找回密码
 点一下
查看: 1346|回复: 4

属性增减可能会带来的bug

[复制链接]
发表于 2010-7-4 14:01:39 | 显示全部楼层 |阅读模式
我遇到过的一个触发
单位-任意单位被攻击

条件-攻击单位是风行者
  

动作-增加dist(dist为两者间的距离) 的敏捷给攻击单位并建立计时器循环0.1秒,计时器那个计时器是这样的“降低dist的敏捷对于用哈希表储存的单位,就是那个风行者”


这样就模拟一个简陋的“小鹿推进”技能,当攻击者拥有弹幕攻击的时候仍然有效,但是目标移动的距离是不会算在敏捷上面的,当然,敏捷也无法造成伤害,是通过敏捷加成攻击的,当然,小鹿的推进比这个复杂点,每次攻击都需要注册。。。。。。本来好好的攻击瞬间加敏捷,0.1s后减掉敏捷,但是


风行者选出来后有一定的概率是个变态,这个变态每一下攻击都会扣自己一点血,攻击十几下自己就死了,复活后一样,不过概率我不知道多少,说多不多,说少我已经见到几次了。。。。。。。。。
发表于 2010-7-4 14:19:35 | 显示全部楼层
测试中未发现“设置属性”的BUG,应该是实际地图的问题,请发图。
[trigger]
未命名触发器 001
    事件
        时间 - 每 0.01 秒触发事件
    条件
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (敏捷 对 追风之西尔瓦娜斯 0002 <预设> (不包括 加成)) 大于 1000
            Then - 动作
                英雄 - 修改 敏捷 对 追风之西尔瓦娜斯 0002 <预设> : 减去 1000 点
            Else - 动作
                英雄 - 修改 敏捷 对 追风之西尔瓦娜斯 0002 <预设> : 添加 1000 点

[/trigger]
推测为哈希表使用不正确。
回复

使用道具 举报

 楼主| 发表于 2010-7-4 14:46:13 | 显示全部楼层
function dishurt1 takes nothing returns nothing
local timer tm=GetExpiredTimer()
local unit me=LUtm(2,tm,"me")读取单位的意思
local real dist=LRtm(2,tm,"dist")
call ModifyHeroStat( bj_HEROSTAT_AGI, me, bj_MODIFYMETHOD_SUB, R2I(dist) )//计时器,无条件减掉属性,因为能到这里属性一定增加了
call FlushChildHashtable(udg_HT[2],GetHandleId(tm))
call DestroyTimer(tm)
set tm=null
set me=null
endfunction

function disthurt takes nothing returns nothing  //距离伤害,目标移动距离不算
local timer tm=CreateTimer()
local unit you=GetTriggerUnit()//别怪我那些被动的单位设置成you把主动单位设置成me。。。。。己方,对方的意思,没别的。。。
local unit me=GetAttacker()
local real x=GetUnitX(me)
local real y=GetUnitY(me)
local real x1=GetUnitX(you)
local real y1=GetUnitY(you)
local real k=I2R(GetPlayerTechCountSimple('Rhri',GetOwningPlayer(me)))/8
local real dist=Pow(Pow((x-x1),2)+Pow((y-y1),2),0.5)*k
call ModifyHeroStat( bj_HEROSTAT_AGI, me, bj_MODIFYMETHOD_ADD, R2I(dist))
call SRtm(2,tm,"dist",dist)//这些SRtm的意思是SaveReal(udg_HT[2],GetHandleId(tm),StringHash("dist"),dist)的意思,下面那个差不多意思
call SUtm(2,tm,"me",me)
call TimerStart(tm,1,false,function dishurt1)
set me=null
set you=null
endfunction
猪君被调离了!
回复

使用道具 举报

发表于 2010-7-4 16:03:43 | 显示全部楼层
倒是遇到过一个类似的 就是我做过一个物品 使用增加属性的物品(吃书)作为物品的触发基础技能了(设置为0)
结果由于改过平衡常数智力的魔法加成不是整数 会各种四舍五入 导致悲剧没用一次都会加魔法 = =。。
既然是少血 会不会有力量的变化什么的???
回复

使用道具 举报

 楼主| 发表于 2010-7-4 16:24:15 | 显示全部楼层
没有,看AGI敏捷。。。。。没有力量。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 07:48 , Processed in 0.034026 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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