Forum

> > CS2D > Scripts > Force a player to use a specific weapon
ForenübersichtCS2D-Übersicht Scripts-ÜbersichtEinloggen, um zu antworten

Englisch Force a player to use a specific weapon

15 Antworten
Zum Anfang Vorherige 1 Nächste Zum Anfang

alt Force a player to use a specific weapon

minos
User Off Offline

Zitieren
Hello guys, I need a lua which when the admin hit somebody with a special weapon he will force him to use knife only and the victim won't be able to use other arms only that specific weapon until he dies.
thank you for reading this.

alt Re: Force a player to use a specific weapon

Talented Doge
User Off Offline

Zitieren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
admin = 0 -- your usgn
specialweapon = 1 -- the weapon you want

knfonly = {}
for i = 1, game("sv_maxplayers") do knfonly[i] = 0 end

addhook("hit", "_hit")
addhook("walkover", "_walkover")
addhook("buy", "_buy")

function _hit(p, s, w)
	if player(s, "usgn") == admin and w == specialweapon then
		parse("strip "..p.." 0")
		knfonly[p] = 1
	end
end

function _walkover(p)
	if knfonly[p] == 1 then return 1 end
end

function _buy(p)
	if knfonly[p] == 1 then return 1 end
end

alt Re: Force a player to use a specific weapon

minos
User Off Offline

Zitieren
@user Talented Doge:Thanks bro but i didn't mean that but when i hit the player his weapons will stay but he can't use them he will use only the special weapon

Edit : I think i should use the select hook but i don't know how i'm not a good scripter
1× editiert, zuletzt 23.04.18 16:16:32

alt Re: Force a player to use a specific weapon

Talented Doge
User Off Offline

Zitieren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
admin = 0 -- your usgn
specialweapon = 1 -- the weapon you want

knfonly = {}
for i = 1, game("sv_maxplayers") do knfonly[i] = 0 end

addhook("hit", "_hit")
addhook("buy", "_buy")
addhook("select", "_select")

function _hit(p, s, w)
	if player(s, "usgn") == admin and w == specialweapon then
		knfonly[p] = 1
	end
end

function _select(p)
	if knfonly[p] == 1 then parse("setweapon "..p.." 50") end
end

function _buy(p)
	if knfonly[p] == 1 then return 1 end
end

alt Re: Force a player to use a specific weapon

Gaios
Reviewer Off Offline

Zitieren
user Talented Doge hat geschrieben
Because:
1. You didn't change the admin usgn
2. You didn't use usp.

He meant that players still can swap their weapons using mouse or 1-9 slots.. I think that you have to strip all the weapons and save to array. And then at round start just equip them again.

alt Re: Force a player to use a specific weapon

Mora
User Off Offline

Zitieren
Due to the ping the function will be delayed anyway. You'd see that you swiped and fired but after some time you set back to that knife. In fact you didn't fire on server so only 0/Server ping would be pretty acceptable. There is no other right way than do it like user Gaios said.

alt Re: Force a player to use a specific weapon

Talented Doge
User Off Offline

Zitieren
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
admin = 131785 -- your usgn
specialweapon = 1 -- the weapon you want

knfonly = {}
playeweps = {}
for i = 1, game("sv_maxplayers") do knfonly[i] = 0 playeweps[i] = {} end

addhook("hit", "_hit")
addhook("buy", "_buy")
addhook("select", "_select")
addhook("spawn", "_spawn")

function _hit(p, s, w)
	if player(s, "usgn") == admin and w == specialweapon then
		playeweps[p] = playerweapons(p)
		parse("strip "..p.." 0")
		knfonly[p] = 1
		return 1
	end
end

function _spawn(p)
	if knfonly[p] == 1 then
		knfonly[p] = 0
		for i = 1, #playeweps[p] do
			parse("equip "..p.." "..playeweps[p][i])
		end
	end
end

function _select(p)
	if knfonly[p] == 1 then parse("setweapon "..p.." 50") end
end

function _buy(p)
	if knfonly[p] == 1 then return 1 end
end

And there is an interesting bug:
When I change the weapon back to knife and the player still gets to keep his primary weapon, the primary weapon will stay and functions almost identical to itself but:
1. It cannot reload
2. It cannot attack except at close range like a knife
Zum Anfang Vorherige 1 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtCS2D-ÜbersichtForenübersicht