找回密码
 点一下
查看: 1440|回复: 5

怎么让怪死亡后在他最开始的位置刷新一个?

[复制链接]
发表于 2016-8-30 23:18:48 | 显示全部楼层 |阅读模式
有些怪不是会被拉到别的地方杀死么 怎么记录他的最开始的点 让他死亡后一段时间刷新 就好像war3自带的雷克萨战役里面一样?

点评

你肯定要在开始就记录它的位置的。  发表于 2016-9-17 23:38
发表于 2016-8-31 15:28:00 | 显示全部楼层
搜索 野怪刷新

基本方法是在野怪死亡后记录  创建它在开始的点

或者每分钟判断野怪死亡 来刷新野怪
回复

使用道具 举报

发表于 2016-9-9 18:06:03 | 显示全部楼层
在他开始的点创造个他如果要循环就加个计时器。 计时器用单次。        
回复

使用道具 举报

发表于 2016-9-19 16:55:25 | 显示全部楼层
这个简单    你的需求 我以前也思考过   

刷怪出来的时候    用哈希表 在  单位下 绑定  位置   这样 这个怪死了 后   就可以获取原先的点 无论他被拉到了 多少远  死后 还是刷新在 一开始刷出来的点上
回复

使用道具 举报

发表于 2016-10-10 20:04:27 | 显示全部楼层
本帖最后由 o拼了命去爱你o 于 2016-10-11 07:27 编辑

//让指定单位在死亡后N秒在注册时的地点复活并保持面向角度。
//call Wolf_FuHuoEvet(unit,real) 单位和复活时间  注册后该单位死亡后会在注册的这个地点复活
//需要在调用函数之前声明一个哈希表udg_HT
function FuHhuoAction2 takes nothing returns nothing

         local timer t = GetExpiredTimer()
         local unit u = LoadUnitHandle(udg_HT,GetHandleId(t),StringHash("fuhuounit"))
         local real x = LoadReal(udg_HT,GetHandleId(u),StringHash("fuhuox"))
         local real y = LoadReal(udg_HT,GetHandleId(u),StringHash("fuhuoy"))
         local real angle = LoadReal(udg_HT,GetHandleId(u),StringHash("fuhuof"))



          call CreateUnit( GetOwningPlayer(u), GetUnitTypeId(u), x, y, angle )

          //call BJDebugMsg("已经复活!")

          call FlushChildHashtable( udg_HT, GetHandleId(u) )
          call FlushChildHashtable( udg_HT, GetHandleId(t) )//清空哈希表主索引

          call DestroyTimer(t)//删除计时器

          set t = null
          set u = null


endfunction

function FuHuoAction1 takes nothing returns nothing
         local timer t = CreateTimer()

         call SaveUnitHandle(udg_HT,GetHandleId(t),StringHash("fuhuounit"),GetTriggerUnit())
         call TimerStart(t,LoadReal(udg_HT,GetHandleId(GetTriggerUnit()),StringHash("fuhuotime")),false,function FuHhuoAction2)

         //call BJDebugMsg("等待复活!")
         set t = null
         call DestroyTrigger( GetTriggeringTrigger() )//销毁触发器                     
        endfunction
function Wolf_FuHuoEvet takes unit u1,real r1 returns nothing

     local trigger fuhuo = CreateTrigger()

     local real x = GetUnitX(u1)
     local real y = GetUnitY(u1)
     local real angle = GetUnitFacing(u1)
     call SaveReal(udg_HT,GetHandleId(u1),StringHash("fuhuotime"),r1)
     call SaveReal(udg_HT,GetHandleId(u1),StringHash("fuhuox"),x)
     call SaveReal(udg_HT,GetHandleId(u1),StringHash("fuhuoy"),y)
     call SaveReal(udg_HT,GetHandleId(u1),StringHash("fuhuof"),angle)

     call TriggerRegisterUnitEvent( fuhuo, u1, EVENT_UNIT_DEATH )

     call TriggerAddAction(fuhuo, function FuHuoAction1)

     //call BJDebugMsg("注册单位死亡事件!")
     set fuhuo = null

endfunction
//end 复活系统---------------------

点评

这个是jass?复制上去就行?  详情 回复 发表于 2017-5-22 22:09
回复

使用道具 举报

 楼主| 发表于 2017-5-22 22:09:51 | 显示全部楼层
o拼了命去爱你o 发表于 2016-10-10 20:04
//让指定单位在死亡后N秒在注册时的地点复活并保持面向角度。
//call Wolf_FuHuoEvet(unit,real) 单位和复 ...

这个是jass?复制上去就行?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 11:14 , Processed in 0.251542 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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