ATTACK2
Forum
 
  CS2D
 CS2D  Scripts
 
Scripts  Throwing Machete Script
 Throwing Machete Script Throwing Machete Script
 Throwing Machete Script
34 repliesATTACK2
 BrahOrkah has written
when you say copy and paste it in server.lua do you mean the thing like dofile("sys/lua/SCRIPT.lua") like that or i paste the SCRIPT ITSELF to server.lua? ok sorry i know im stupid but i dont script that much so tell me what i have to put in or edit here to  make this work and if it is possible in right click can you do it :X well thats up to you because you migt get pissed if u remake the script but anyway what do i put in?  MISTERpinoy has written
Brah0rkah it works fine but ithink he wants it on right click
ATTACK2
ATTACK2
Problem is that machete doesn't have a second attack.. It wont fire the attack2 function when you right click, so there's no point in doing that. U can reskin the knive to a machete and then it will work if u replace attack with attack2. ( and change weapon id to knive_id)
Other guy:
you can:
1. copy paste it DIRECTLY into server.lua... ( delete everything else)
2.create a new script ( blabla.lua) and type in server.lua: dofile("sys/lua/blabla.lua") in case blabla is located in sys/lua.
edited 1×, last 13.04.11 03:52:32 pm
binding? you can just do binding?
use the binding key like this
parse bind rightclick throwmachete
Lua scripts are run on the server, and can't force clients to bind a key to something.
You could just use:
1
addhook("attack2","machete_throw")
 DannyDeth has written
bind rightclick? lol.
You could just use:
 
You could just use:
1
addhook("attack2","machete_throw")
No this is not gonna work because machete DOESN'T trigger attack2 ever.
wtf what a *****
 MISTERpinoy has written
then just use knife?
wtf what a *****
wtf what a *****
Hey, I'm not gonna help you if you are badmouthing 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
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
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
--[[Constants]]--
rpiconst = 180/math.pi
imagepath = "gfx/weapons/machete.bmp" -- path to imagepath
speed = 25--speed of machete
rotation_speed = 60 -- rotation speed
tileconst = 32
collisionradius = 50
MACHETES = {}
machete = {}
machete_mt = {__index = machete}
function machete:new(x,y,dir,rot,playerid)
     return setmetatable({x=x,y=y,dir=dir,rot=rot,id =nil, imageid = nil, pid = playerid},machete_mt)
end
function machete:draw()
     self.imageid = image(imagepath,self.x,self.y,1)
end
function machete:update()
     self.y = self.y - (math.cos(self.dir)*speed)
     self.x = self.x + (math.sin(self.dir)*speed)
     self.rot = self.rot + rotation_speed
     if self.rot >= 360 then
          self.rot = 0
     end
     local t,x,y = self:wall_collision()
     if(t) then
          self:destroy()
          fall_x,fall_y = (x - round(math.sin(self.dir))),y + round(math.cos(self.dir))
          parse('spawnitem 69 '..fall_x..' '..fall_y)
     end
     if(self.x > (map("xsize")*tileconst) or self.x < 0 or self.y > (map("ysize")*tileconst) or self.y < 0) then
          self:destroy()
     else
          imagepos(self.imageid,self.x,self.y,self.rot)
     end
     self:player_collision()
end
function machete:wall_collision()
     local xt,yt = math.floor(self.x/tileconst),math.floor(self.y/tileconst)
return not tile(xt,yt,"walkable"),xt,yt
end
function machete:destroy()
     freeimage(self.imageid)
     table.remove(MACHETES,self.id)
     for i,m in ipairs(MACHETES) do
          m.id = i
     end
end
function machete:player_collision()
     local players = player(0,"tableliving")
     for i=1,#players,1 do
          if i ~= self.pid then
               local dis = (self.x - player(players[i],"x"))^2 + (self.y - player(players[i],"y"))^2
               if dis <= 400 then
                    parse('customkill '..self.pid..' "Throwing Machete" '..players[i])
                    self:destroy()
                    local x,y = math.floor(player(players[i],"x")/32),math.floor(player(players[i],"y")/32)
                    parse('spawnitem 69 '..x..' '..y)
                    return
               end
          end
     end
end
addhook("attack2","my_attack2")
function my_attack2(id,mode)
     if player(id,"weapontype") == 50 then
          parse('strip '..id..' 51')
          local m = machete:new(player(id,"x"),player(id,"y"),toRad(player(id,"rot")),0,id)
          table.insert(MACHETES,m)
          m.id = #MACHETES
          m:draw()
     end
end
addhook( "ms100","my_ms100")
function my_ms100()
     for i,v in ipairs(MACHETES) do
          v:update()
     end
end
function toRad(deg)
     return (deg / rpiconst)
end
function round(d)
     if d < 0 then return math.floor(d) else return math.ceil(d) end
end
Argh, I forgot that weapons that don't have an 'attack2' won't call the attack2 hook. I feel like a complete moron
 
 1
Moron
 BrahOrkah has written
 BrahOrkah has written only a few problems the picture of the machete has pnk around it how do i stop that? and when i try to throw it trough an obstacle it dosent go trough and what is your usgn id
  only a few problems the picture of the machete has pnk around it how do i stop that? and when i try to throw it trough an obstacle it dosent go trough and what is your usgn id   oh yes and it team kills even if FF (freindly fire) is off if you can fix them thanks alot
  oh yes and it team kills even if FF (freindly fire) is off if you can fix them thanks alot   
  edited 1×, last 22.04.11 05:22:50 am



 Offline
 Offline
