Forum

> > CS2D > Scripts > Triggers via lua
Forums overviewCS2D overview Scripts overviewLog in to reply

English Triggers via lua

3 replies
To the start Previous 1 Next To the start

old Triggers via lua

RebornDuck
User Off Offline

Quote
Hey, I need a script that makes triggers via lua and Starkkz allready made that for me (thanks Starkkz <3) but I also want the triggers to be removed once they are triggered, so they can't be triggered anymore, ofc. Starkkz didn't make that but I didn't ask him too. So can someone here try to make it for me?

Here's the code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
button = {}
function CreateButton(x,y,name,trigger)
	button[x.."_"..y] = {name,trigger}
end

addhook("trigger","onTrigger")
function onTrigger(trigger,source)
	for k, b in pairs(button) do
		if b[1] == trigger then
			parse("trigger "..b[2])
		end
	end
end

addhook("use","onUse")
function onUse(id,event)
	if event == 0 then
		local b = button[player(id,"tilex").."_"..player(id,"tiley")]
		if b then
			parse("trigger "..b[2])
		end
	end
end

CreateButton(20, 20, "ExampleTrigger", "ET1,ET2")

Thanks!

old Re: Triggers via lua

Alistaire
User Off Offline

Quote
1
2
3
4
function RemoveButton(x, y)
	table.remove(button[x..'_'..y], 1)
	table.remove(button[x..'_'..y], 2)
end

old Re: Triggers via lua

Starkkz
Moderator Off Offline

Quote
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
ent = {}
function CreateButton(x,y,name,trigger)
	ent[x.."_"..y] = {name,trigger,t = "b"}
end

function CreateRemove(name,entities)
	table.insert(ent, {name,entities,t = "r"})
end

function RemoveEntity(name)
	for k, b in pairs(ent) do
		if b[1] == name then
			ent[k] = nil
		end
	end
end

addhook("trigger","onTrigger")
function onTrigger(trigger,source)
	for k, b in pairs(ent) do
		if b[1] == trigger and b.t == "b" then
			parse("trigger "..b[2])
		elseif b[1] == trigger and b.t == "r" then
			RemoveEntity(b[2])
		end
	end
end

addhook("use","onUse")
function onUse(id,event)
	if event == 0 then
		local b = ent[player(id,"tilex").."_"..player(id,"tiley")]
		if b and b.t == "b" then
			parse("trigger "..b[2])
		end
	end
end

--CreateButton(x,y,name,trigger)
--CreateRemove(name,entities)

CreateButton(20, 20, "ExampleTrigger", "ET1,ET2,Remover")
CreateRemove("Remover", "ExampleTrigger,Remover")

This should work.

old Re: Triggers via lua

RebornDuck
User Off Offline

Quote
user Starkkz has written
Spoiler >


Now I can't even trigger it, nothing happens when I press it. It maybe removes the trigger immediately?
To the start Previous 1 Next To the start
Log in to reply Scripts overviewCS2D overviewForums overview