Forum

> > CS2D > Scripts > Lua Scripts/Questions/Help
Forums overviewCS2D overview Scripts overviewLog in to reply

English Lua Scripts/Questions/Help

6,770 replies
Page
To the start Previous 1 2194 195 196338 339 Next To the start

old Re: Lua Scripts/Questions/Help

Yrael
User Off Offline

Quote
@Flacko
thanks for the help! (did u insert the delay so the firballs disappear or not?)

as well, on a script i wrote, there is a bug saying :expecting 'eof' near end

i know what this error message is, but i dont know how to fix it... here is 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
--------------------------------------------------
-- UT+Quake Sounds Script by Unreal Software    --
-- 22.02.2009 - www.UnrealSoftware.de           --
-- Adds UT and Quake Sounds to your Server      --
--------------------------------------------------

if sample==nil then sample={} end
sample.ut={}

-----------------------
--   INITIAL SETUP   --
-----------------------
function initArray(m)
	local array = {}
	for i = 1, m do
		array[i]=0
	end
	return array
end
sample.ut.level=initArray(32)
sample.ut.fblood=0


-----------------------
-- PREPARE TO FIGHT! --
-----------------------
-- addhook("startround","sample.ut.startround")
-- function sample.ut.startround()
-- 	parse("sv_sound \"fun/prepare.wav\"")
-- 	sample.ut.fblood=0
-- end


-----------------------
--    KILL SOUNDS    --
-----------------------
	level=sample.ut.level[killer]
	level=level+1
	sample.ut.level[killer]=level
	sample.ut.timer[killer]=os.clock()
	-- FIRST BLOOD?
	if (sample.ut.fblood==0) then
		sample.ut.fblood=1
		parse("sv_sound \"fun/firstblood.mp3\"");
	end

		if (level==1) then
			-- Single Kill! Nothing Special!
		elseif (level==3) then
			parse("sv_sound \"fun/multikill.mp3\"")
		elseif (level==5) then
			parse("sv_sound \"fun/killingspree.mp3\"")
		elseif (level==7) then
			parse("sv_sound \"fun/rampage.mp3\"")
		elseif (level==10) then
			parse("sv_sound \"fun/unstoppable.mp3\"")
		else
			parse("sv_sound \"fun/godlike.mp3\"")
		end
	end
end

im stumped...

edit: for some reason some lua scripts arent being executed when i launch cs2d even though i triple checked the path in the server.lua, any answers or previous threads (soz im too lazy to look around :P)

old Re: Lua Scripts/Questions/Help

Soja1997
User Off Offline

Quote
How to do if only the image was under me?
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
-- Flashlight by wUps
--
-- bind "f" "say admin"
--

function initArray(m)
	local array = {}
	for i = 1, m 
	do array[i]=0
	end
		return array
end 

light=initArray(32)
light01=initArray(32)

addhook("say","lightz3")
function lightz3(p3,t)
	if (t == "!cigarette") then	
		if (light01[p3] == 1) then
		     local team = player(id,"team")
     elseif (team==2) then
			light01[p3]=0
			freeimage(light[p3])
		else 
			light01[p3]=1
			light[p3]=image("gfx/--- soja ---/bike.bmp",1,1,200+p3)
			imageblend(light[p3],0)
			imagecolor(light[p3],255,255,255)
			imagealpha(light[p3],0.5)
		end
		return 1
	end
end
SCript its not me i only remake

old Re: Lua Scripts/Questions/Help

Lee
Moderator Off Offline

Quote
Anti has written
Pls help me.. I don't see bug

More >




Lua holds absolute references to all variables that are passed, so by calling:

1
2
3
a = initArray(32, "o")
a[0] = "b"
--a === {"b"}*32

Lua will assign every element within the table to "b", however that's not even your problem (although you should look into this as it will cause unexpected behavior within your script)

Skip down all the way to see the final solution
More >

It is logically flawed to place the entire sequence in a "startround" hook as this will cause unexpected behaviors in a non-normal match. Instead, replace the entire speed_mvs block with:

1
2
3
4
5
addhook("spawn","speed_spawn")
function speed_spawn(id)
	speed_mvs[id]=0
	speed22_mvs(id)
end

And while I hate to go around and spam this all over the place, if you really want more personalized help with Lua, go to http://cs2d.org/

old Re: Lua Scripts/Questions/Help

Soja1997
User Off Offline

Quote
How to do if only the image was under me?
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
-- Flashlight by wUps
--
-- bind "f" "say admin"
--

function initArray(m)
	local array = {}
	for i = 1, m 
	do array[i]=0
	end
		return array
end 

light=initArray(32)
light01=initArray(32)

addhook("say","lightz3")
function lightz3(p3,t)
	if (t == "!cigarette") then	
		if (light01[p3] == 1) then
		     local team = player(id,"team")
     elseif (team==2) then
			light01[p3]=0
			freeimage(light[p3])
		else 
			light01[p3]=1
			light[p3]=image("gfx/--- soja ---/bike.bmp",1,1,200+p3)
			imageblend(light[p3],0)
			imagecolor(light[p3],255,255,255)
			imagealpha(light[p3],0.5)
		end
		return 1
	end
end
SCript its not me i only remake

old Re: Lua Scripts/Questions/Help

gabpro
User Off Offline

Quote
N-B-K has written
gabpro has written
After answering it can anyone answer the following question?

I'd like to know how to save a variable in a document(.txt) and load it later,for example save the mod's money...

PS:LOL,I'm using tradutor too


There are too much information in the forum about that ;), or in the download section, just search and you'll see


I search and find,but it dont work =x
Have a error,but i dont understand how to save or load files with lua...
Can anyone help me how to save the variable X(leave) and load it after(join) in a .txt document or something?

old Re: Lua Scripts/Questions/Help

Lee
Moderator Off Offline

Quote
Soja1997 has written
How to do if only the image was under me?
More >

SCript its not me i only remake


Find and replace
1
light[p3]=image("gfx/--- soja ---/bike.bmp",1,1,200+p3)
with
1
light[p3]=image("gfx/--- soja ---/bike.bmp",1,1,100+p3)

Also, please don't bump your questions, do it again and you will be banned.

old Re: Lua Scripts/Questions/Help

Lee
Moderator Off Offline

Quote
Looks like Pikachu beat me to it, simply remove the call to the imagealpha function, which sets the opacity of the image.

old Re: Lua Scripts/Questions/Help

Soja1997
User Off Offline

Quote
Who can make script. Admin give works

Works Menu

Worker - 1000$/Minute
Miner - 2000$/Minute
Barman - 3000$/Minute
Soldier - 4000$/Minute
Doctor - 5000$/Minute
Dealer - 6000/Minute
Banker - 7000$/Minute

If admin say : give_work ID Worker
Miner,Barman,Solider,DOctor,Dealer,Banker etc.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
addhook("minute","RPminute")
function RPminute()
local p = function(id)
if player(id,"exists") then return true end
return nil
end
local give = function(id,ammount)
                    msg2(id,"©150100255 Pay Day!@C")
                                        msg2(id,"©150100255 Wyplata!@C")
addmoney(id, 5000)
end
for id=1,32 do
if p(id) then
give(id,5000)
end
end
end
i use this script you must remake it ;s
edited 3×, last 01.05.10 06:36:00 pm

old Re: Lua Scripts/Questions/Help

SQ
Moderator Off Offline

Quote
Script like yours was done hundreds times.
Although, It's not the best way to use metatables in BMax Lua.
Sometimes, by using hooks in tables that are in already tables - map changing deals game crash.
1
2
3
4
5
6
7
8
local TempParse = parse
function parse(Cmd, ...)
	local p = [[ ]]
	p = p..table.concat( {...}, [[ ]] )
	TempParse(Cmd .. p)
end
--
parse("sv_msg2",1,321)

old Re: Lua Scripts/Questions/Help

SDKey
User Off Offline

Quote
Blazzingxx has written
More >


> Please write me code, where my script generate game crash

old Re: Lua Scripts/Questions/Help

Holloweye
User Off Offline

Quote
Basicly the code add blood sprites on the ground.

Everything worked fine until I added the remove + fade functions. Before the sprites lay on the ground so it worked. But now they only appear sometimes or not at all. I can't find any problems with it so I thought you guys could help me out here.

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
local day = 0

----------------------------------------------
-- HIT Sprite                               --
----------------------------------------------
addhook("hit","cs_hit")
function cs_hit(id,source,weapon,hpdmg,apdmg)
	if(source > 0) then
		if(player(id,"team") == 1 and player(source,"team") == 2) then
			x1 = player(id,"x")
			y1 = player(id,"y")
			x2 = player(source,"x")
			y2 = player(source,"y")

			--ANGLE
			angle = 90 + math.atan2(y2 - y1, x2 - x1) * 180 / math.pi
			distance = 0
			time = 0
			weapimg = ""

			if(weapon == 1 or weapon == 2 or weapon == 3 or weapon == 4 or weapon == 5 or weapon == 6 or weapon == 20 or weapon == 21 or weapon == 22 or weapon == 23 or weapon == 24 or weapon == 39 or weapon == 40) then
				weapimg = "Small.bmp"
				distance = 2
				time = 7000
			end
			if(weapon == 10 or weapon == 11) then
				weapimg = "Huge.bmp"
				distance = 5
				time = 20000
			end
			if(weapon == 30 or weapon == 31 or weapon == 32 or weapon == 33 or weapon == 34 or weapon == 38) then
				weapimg = "Medium.bmp"
				distance = 5
				time = 10000
			end
			if(weapon == 35 or weapon == 36 or weapon == 37) then
				weapimg = "Big.bmp"
				distance = 5
				time = 15000
			end
			if(weapon == 50) then
				weapimg = "Tiny.bmp"
				distance = 5
				time = 7000
			end

			x1 = x1 + (math.cos(angle*(math.pi/180)) * distance)
			y1 = y1 + (math.sin(angle*(math.pi/180)) * distance)

			if(time > 0) then
				img=image("gfx/HolloweyesSprites/"..weapimg,x1,y1,0)
				imagepos(img,x1,y1,angle)
				timer(time,"fade1",day.."-"..img)
			end
		end
	end
end


----------------------------------------------
-- REMOVE TIMERS                            --
----------------------------------------------
addhook("endround","cs_endround")
function cs_endround(mode)
	day = day + 1
end

----------------------------------------------
-- FADE FUNCTIONS + REMOVE                  --
----------------------------------------------
function fade1(p)
	pos = string.find(p,"-")
	if(tonumber(string.sub(p,0,pos-1)) == day)then
		imagealpha( tonumber(string.sub(p,pos+1)) ,0.5)
	end
	timer(300,"removeIMG",p)
end

function removeIMG(p)
	pos = string.find(p,"-")
	if(tonumber(string.sub(p,0,pos-1)) == day)then
		freeimage( tonumber(string.sub(p,pos+1)) )
	end
end

Thanks

old Re: Lua Scripts/Questions/Help

Flacko
User Off Offline

Quote
@Holloweye:
Timer works in miliseconds. 1 milisec = 1/1000 seconds.
So instead of 300 you should write 3000 for 3 seconds, 30000 for 30 seconds and so on. Note that the timer system is quite buggy.

@SDKey:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PARSE={cmd = nil}
function PARSE.__index(t,k)
	PARSE.cmd = k
	return t
end
function PARSE.__call(t, ...)
	if PARSE.cmd then --PARSE.cmd("par")
		PARSE.cmd = PARSE.cmd.." "..table.concat(arg," ")
		parse(PARSE.cmd)
		PARSE.cmd = nil
	else --PARSE("cmd","par")
		parse(table.concat(arg," "))
	end
end
setmetatable(PARSE,PARSE)
I put the equivalent of your tmp variable (cmd) inside the table so we won't cause a variable conflict.
Also, I used one table for calling and storing the metamethods.

old Re: more useful parse function

SDKey
User Off Offline

Quote
Flacko has written
@SDKey:
More >


Flacko, thanks,

• 1. One table - good idea!

• 2. In my script:
          If I use dofile("sys\lua\parse") I won't cause a variable conflict, because my temp variables are local.
          And I have not PARSE.cmd as table element

• 3. Your script has little bug:
1
2
3
PARSE.equip(1,3)	-- return "equip 1 3"
PARSE("equip", 1, 3)	-- return "cmd equip 1 3"
PARSE("equip 1 3")	-- return "cmd equip 1 3
          please fix it
     
• 4. Can I rewrite standart "parse" function?

Please answer to me...
To the start Previous 1 2194 195 196338 339 Next To the start
Log in to reply Scripts overviewCS2D overviewForums overview