Dateien

> > CS2D > Lua Scripts > Simple Pet system
DateiübersichtCS2D-ÜbersichtLua Scripts-Übersicht

Englisch Simple Pet system >

24 Kommentare4 kb, 814 Downloads

alt Simple Pet system

Devil-Thanh
GAME BANNED Off Offline

Hey all
I'm bored today so i made this lua.
This is the pet system by me, it's very simple but fun, i think
Your Pet can attack enemy and kill them
You can up dmg and accuracy of you Pet(Pet can attack miss)
On/Off your Pet

√ Use and edit
× upload again and say it yours

I think the images is too bad

but have fun!
(i'm bad at English)
Zugelassen von Sparty

Download Download

4 kb, 814 Downloads

Kommentare

24 Kommentare
Seite
Zum Anfang Vorherige 1 2 Nächste Zum Anfang

Logge dich ein!

Du musst dich einloggen, um selber Kommentare verfassen zu können!Einloggen

alt

Junior3534
User Off Offline

I think its good and work but when i turn on my pet,he dont follow me ???

HELP PLEASE ! Thanks
Ich mag es!

alt

omg
User Off Offline

there were so many errors/bugs/bad code when i first ran it that it was utterly useless. i then proceeded to spend a big ass amount of time trying to fix everything in order to get it working in my server...i spent so much time trying to fix it/optimize it/read ur code that i might as well have just written the whole thing by myself

anyway, heres my fixed version because i think its a good code idea (it now has no bugs):
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
function initArray2(f,v)
	local cmd={}
	for c=1,f do
		cmd[c]=v
	end
	return cmd
end

config = {
	startdmg = 1,		--This is the first dmg of Pet
	startaccuracy = 1,		--This is the first accuracy point of pet (it >0) 
	updmgcost = 1,		--Up Pet's dmg price
	addeddmg = 1,		--This dmg will be added to Pet's dmg in one up
	upaccuracycost = 1,	--Up Pet's accuracy price
	addedaccuracy = 1,	--This point will be added to Pet's accuracy in one up
	--added stuff
	startrange=80,--in pixels, i guess. it gets used in distance formula calculation. for reference: 32 pixels is 1 tile length
	uprangecost=1,
	addedrange=1
}
sa=3--the serveraction for menu (1=f2,2=f3,3=f4)
Con = {lvl = 0,x = 0,y = 0,rot = 0,tg = 0,dmg = 0, accuracy = 0,exist = 0,range = 0}
Pet = initArray2(32,Con)
petimages={}
timer(10000,"fillimages")
function fillimages()
	for i=1,32 do
		petimages[i]=image("gfx/pet.bmp",0,0,1)
	end
end

addhook('join','join')
function join(id)
	Pet[id]={lvl = 1,x = 0,y = 0, rot = 0, tg = 0, dmg = config.startdmg, accuracy = config.startaccuracy,exist = 0,range=config.startrange}
end

addhook("leave","existomatic")
function existomatic(id)
	Pet[id].exist=0
	Pet[id].x=0
	Pet[id].y=0
	Pet[id].tg=0
	imagepos(petimages[id],0,0,0)
end

addhook('serveraction','sv_act')
function sv_act(id,act)
	if act==sa then
		minimenu(id)
	end
end

function minimenu(id)
	local ex=""
	if Pet[id].exist==1 then ex="Off" else ex="On" end
	menu(id,"Pet Menu,Pet "..ex..",Pet information,Up "..config.addeddmg.." Dmg|"..config.updmgcost..",Up "..config.addedaccuracy.." Accuracy|"..config.upaccuracycost..",Up 10 Range|2012")
end

addhook('menu','mn')
function mn(id,t,b)
	if t=="Pet Menu" then
		if b==1 then
			if Pet[id].exist==0 then
				Pet[id].exist=1
				imagepos(petimages[id],player(id,"x"),player(id,"y"),0)
			else
				Pet[id].exist=0
				Pet[id].x=0
				Pet[id].y=0
				Pet[id].tg=0
				imagepos(petimages[id],0,0,0)
			end
		elseif b==2 then
			local ex=""
			if Pet[id].exist==1 then ex="Yes" else ex="No" end 
			menu(id,"Pet Infomation,Dmg|"..Pet[id].dmg..",Accuracy|"..Pet[id].accuracy..",Exists|"..ex..",Range|"..Pet[id].range.."")
		elseif b==3 then
			if player(id,'money')>=config.updmgcost then
				Pet[id].dmg=Pet[id].dmg + config.addeddmg
				parse("setmoney "..id.." "..player(id,'money')-config.updmgcost)
				minimenu(id)
				msg2(id,"©000255000Successful!@C")
			else
				msg2(id,"©255000000Dont have enough money!@C")
			end
		elseif b==4 then
			if player(id,'money')>=config.upaccuracycost then
				Pet[id].accuracy=Pet[id].accuracy + config.addedaccuracy
				parse("setmoney "..id.." "..player(id,'money')-config.upaccuracycost)
				minimenu(id)
				msg2(id,"©000255000Successful!@C")
			else
				msg2(id,"©255000000Dont have enough money!@C")
			end
		elseif b==5 then
			if player(id,'money')>=config.uprangecost then
				Pet[id].range=Pet[id].range+config.addedrange
				parse("setmoney "..id.." "..player(id,"money")-config.uprangecost)
				minimenu(id)
				msg2(id,"©000255000Successful!@C")
			else
				msg2(id,"©255000000Dont have enough money!@C")
			end
		end
	end
end

function checkfreeline(x1, y1, x2, y2)
	local len = math.floor(math.sqrt((x1 - x2)^2 + (y1 - y2)^2))
	local c=-math.deg(math.atan2(x1 - x2, y1 - y2))
	local d=math.sin(math.rad(c))
	local e=-math.cos(math.rad(c))
	for k = 0,len,16 do--this can be readjusted for accuracy or performance; make 16 larger for performance, closer to 1 for accuracy. 16 is just my recommended optimization
		if tile(math.floor((x1+d*k)/32),math.floor((y1+e*k)/32),"wall") then
			return false
		end
	end
	return true
end

addhook('second','sec')
function sec()
	local tblL=player(0,"tableliving")
	for _,id in ipairs(tblL) do
		if Pet[id].exist==1 then
			Pet[id].tg = 0
			for _,i in ipairs(tblL) do
				if player(i,'team')~= player(id,'team') then
					if checkfreeline(Pet[id].x , Pet[id].y , player(i,'x') , player(i,'y')) then
						local cls = math.sqrt((Pet[id].x - player(i,'x'))^2 + (Pet[id].y - player(i, 'y'))^2)
						if cls<Pet[id].range then
							Pet[id].tg = i
							fire(id)
							return
						else
							Pet[id].tg = 0
						end
					end
				end
			end
			Pet[id].x = player(id,'x')
			Pet[id].y = player(id,'y')
			tween_move(petimages[id],1000,Pet[id].x,Pet[id].y)
		end
	end
end

function fire(id)
	local img=image("gfx/petfire.bmp",0,0,1)
	rot = -math.deg(math.atan2(Pet[id].x - player(Pet[id].tg, 'x'), Pet[id].y - player(Pet[id].tg, 'y'))) 
	imagepos(img,Pet[id].x,Pet[id].y,rot)
	tween_move(img,200, player(Pet[id].tg,'x') , player(Pet[id].tg,'y'))
	timer(200,"freeimage",img)
	if math.random(0,Pet[id].accuracy)~=0 then
		if player(Pet[id].tg,'health')>Pet[id].dmg then
			timer(200,"parse","sethealth "..Pet[id].tg.." "..player(Pet[id].tg,'health')-Pet[id].dmg)
			timer(200,"parse","explosion "..player(Pet[id].tg,"x").." "..player(Pet[id].tg,"y").." "..(Pet[id].dmg*4+32).." 1 "..id)
		else
			timer(200,"parse","customkill "..id.." \"Uber Missile\" "..Pet[id].tg)
		end
		Pet[id].tg = 0
	end
end
3× editiert, zuletzt 05.07.12 04:20:26

alt

Xcover
User Off Offline

How to turn pet menu?
Ich mag es!

alt

DarkEvilz
User Off Offline

my game crash when i turn on pet
Ich mag es!

alt

Misho
User Off Offline

user mafia_man can you stop acting like a dumbass?
Ich mag es!

alt

mafia_man
User Off Offline

I'm bored today so i don't like it.
× Bad description
× Ugly gfx
× Brainfuck script

alt

4Vendetta
User Off Offline

Why not pets like robots?
IMG:https://img607.imageshack.us/img607/2774/petjc.png
Somethinks like this, with customizable weapons and shields?
Ich mag es!

alt

Misho
User Off Offline

user BlackBelt tottaly agree with you.
user Devil-Thanh you had to ask some one to make you better sprites. lol
Ich mag es!

alt

BlackBelt
User Off Offline

nice skin, but you realy fail in the GFX
Ich mag es!

alt

Misho
User Off Offline

I've tested it out.
And it's cool, nice idea.
But make it BIGGER with more functions.
Ich mag es!

alt

4Vendetta
User Off Offline

Nice I've tested it and looks nice, I thinks later you'll upgrade this lua, or not? So you've potential nice
Ich mag es!

alt

Shawni
User Off Offline

Idea is stealed, i already made a script like this

But nice work.
Ich mag es!

alt

Sniper_x
User Off Offline

Nice Lua!
Ich mag es!

alt

Devil-Thanh
GAME BANNED Off Offline

@user SkullzOrig: ideas exists in life. many ways to get idea
2× editiert, zuletzt 29.06.12 06:28:48

alt

BaDgEr
User Off Offline

When my pet has small hp, can I take it to vet?

alt

SkullzOrig
User Off Offline

Sooo... Are we gonna copy ideas from World Of Warcraft?(WoW)

alt

KiRa_3
User Off Offline

Nice
I will edit this and will not upload this
Ich mag es!
Zum Anfang Vorherige 1 2 Nächste Zum Anfang