Forum

> > CS2D > Scripts > freeimage and table
Forums overviewCS2D overview Scripts overviewLog in to reply

English freeimage and table

4 replies
To the start Previous 1 Next To the start

old freeimage and table

SkullFace
User Off Offline

Quote
I've been trying to make classes with specific images on them.

I've been searching on forums for freeimage related threads.
These were my examples :


From these forums I came to conclude that this was the solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
local hat_images = {}
	-- SOLDIER
	if (sample.classes.class[id]==1) then
		if (hat_images[pl]) then
		freeimage(pl)
		hat_images[pl]=nil
		hat_images[pl]=image("gfx/sprites/flare2.bmp",1,1,100+id)
		parse ("setmaxhealth "..id.." 140")
		parse ("speedmod "..id.." 0")
		parse ("strip "..id.." 50")
		parse ("setmoney "..id.." 16000")
		return "3,69"; --Deagle, Machete
	end
	end
Before I modified the script, it loaded the images properly but the images weren't removed when I changed class
I've also wanted to addhook on die but that still didn't fix the issue.

TL;DR - Images keep on spawning on top of another when I change class.

old Re: freeimage and table

Devil-Thanh
GAME BANNED Off Offline

Quote
this is the wrong line
1
freeimage(pl)

the ID in cs2d lua cmd freeimage work with image id which is returned from cs2d lua cmd image

So it must be
1
freeimage(hat_images[pl])

and you also need to chanhe pl to id

The code somehow look like this, with id is player's ID
1
2
3
4
5
6
7
8
9
10
11
12
13
local hat_images = {}
     -- SOLDIER
if (sample.classes.class[id]==1) then
	if (hat_images[id]) then
		freeimage(hat_images[id])
		hat_images[id]=image("gfx/sprites/flare2.bmp",1,1,100+id)
		parse("setmaxhealth "..id.." 140")
		parse("speedmod "..id.." 0")
		parse("strip "..id.." 50")
		parse("setmoney "..id.." 16000")
		return "3,69"; --Deagle, Machete
	end
end

old Re: freeimage and table

SkullFace
User Off Offline

Quote
Uhh, idk what I did but this current code (below) didnt work for me before.
Now it works.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function sample.classes.spawn(id)
--local hat_images = {}
	-- SOLDIER
	if (sample.classes.class[id]==1) then
		--if (hat_images[id]) then
		freeimage(id)
		--hat_images[id]=nil
		id=image("gfx/sprites/flare2.bmp",1,1,100+id)
		
		parse ("setmaxhealth "..id.." 140")
		parse ("speedmod "..id.." 0")
		parse ("strip "..id.." 50")
		parse ("setmoney "..id.." 16000")
		return "3,69"; --Deagle, Machete
	end
Thanks for the help!

EDIT :Must be the id and pl thing mess up.

old Re: freeimage and table

Rainoth
Moderator Off Offline

Quote
If it really properly works, I want someone to explain to me how cause it makes no sense to me.
My guess is that the guy thinks it works when in reality it probably doesn't.

here's a bit of code to help you out:
1
2
3
4
5
6
hats = {} -- add this outside your functions.

hats[id] = image("gfx/sprites/flare2.bmp",1,1,100+id) -- add this where you want to create the image

freeimage(hats[id]) -- add this where you want to delete the image
hats[id] = nil

old Re: freeimage and table

Devil-Thanh
GAME BANNED Off Offline

Quote
Yeah it works if there's only 1 player on server, the image will jump to other players when there're more than 1 player
To the start Previous 1 Next To the start
Log in to reply Scripts overviewCS2D overviewForums overview