请教大神,怎么用lua代码实现功能的开启和关闭?
lua吧
全部回复
仅看楼主
level 8
灬漓渃 楼主
比如下面这个技能代码
local function onattack(inst,owner,target)
Local x,y,z=inst.transform:getworldposition()
Local a,b,c=target.transform:getworldposition()
If (x-a)*(x-a)+(y-b)*(y-b)+(z-c)*(z-c)>4.0 then
owner.transform:setposition (target.transform:getworldposition())
end
请问怎么才能实现按“Z”键开启或关闭这个技能?
2016年08月27日 03点08分 1
level 1
楼主能帮我看一段代码吗?
我的while do命令无限重复怎么办?
function OnEvent (event,arg)
while (event == "MOUSE_BUTTON_PRESSED" and arg ==2) do
PressAndReleaseKey("p")
Sleep(100)
end
end
2016年08月27日 15点08分 2
你试试楼下的代码,我不保证正确因为我不熟悉你用的API不过代码思路差不多就是那样的了
2016年08月28日 10点08分
level 11
希望你们可以把问题抽象成模型再问 这样对自己和别人都有帮助,
lz
的那个可以利用小封包来解决,
do
local function onattack()
asdasdas--原代码 只是告诉你下面代码的位置
end
local old=onattack
local en=nil
function sign()--伪函数,这个就是你注册一个z热键 那个热键触发这条代码
if en then
onattack=old
en=nil
else
onattack=nil
en=1
end
end
end
@虾蟹鲷乌豚 这名字,,,
首先一个函数运行时的参数是由外界一次性传递的,当你开始运行这条代码时 参数都是固定的 传递这个参数的变量怎么变化都和这个已经传导进来的没有关系了,也就是说你点击后这个函数开始循环,但是他的event不会因为你的手指离开屏幕而变成其他的,因为它是已经传导进来了,属于这个函数封包,与外界没有关联了。
你需要使用协同或者线程来完成。当然因为实际上你这个函数是注入时 实际上是以线程形式执行的不需要由你来完成主次线程交互。所以代码很简单,照样按照我的风格使用小封包
do
local pressed=nil
function pressedrun ()
while(pressd) do
PressAndReleaseKey("p")
Sleep(100)
end
end
function OnEvent (event,arg)
if (event == "MOUSE_BUTTON_PRESSED" and arg ==2) then
pressed=1
pressedrun()
end
if (event == "MOUSE_BUTTON_RELEASED" and pressed ) then
pressed=nil
end
end
end
如果使用协程代码会很好看的。
2016年08月28日 10点08分 3
谢谢谢谢!我研究一下!!!太感谢你了!!!![勉强]
2016年08月30日 07点08分
还是不行啊[泪]
2016年08月30日 08点08分
1