Garry's Mod

Garry's Mod

Not enough ratings
[Expression 2] My easy E2 codes 我的简单E2代码
By They call me...
as the title
   
Award
Favorite
Favorited
Unfavorite
Blackhole_grenade 黑洞手雷
长按右键蓄力发射手雷
hold Mouse2 to raise power for throwing the grenade.

@name Blackhole_grenade
@inputs
@outputs
@persist Size Num Count1 Count2 FireOn RemoveOn Power FireCount RemoveCount
@persist [Gre HoloNumber CheckFire CheckRemove]:array
@trigger
@strict

interval(1)

if(first()){
propSpawnUndo(0)
# entity():propDraw(0)
FireOn = 0
RemoveOn = 0

FireCount = 0
RemoveCount = 0

Size = 60

Num = 0
Count1 = 0
Count2 = 0

Power = 1

holoCreate(0)
holoAlpha(0,0)
}

function holo(Index:number,Pos:vector,Scale:vector,Ang:angle,Color:vector,Model:string,Material:string,Parent:number){
holoCreate(Index)
holoPos(Index,Pos)
holoScale(Index,Scale)
holoAng(Index,Ang)
holoColor(Index,Color)
holoModel(Index,Model)
holoMaterial(Index,Material)
holoParent(Index,Parent)
}

if(changed(owner():keyAttack2())&owner():keyAttack2()){
Num++
HoloNumber:pushNumber(Num)

Gre[Num,entity] = propSpawn("models/weapons/w_grenade.mdl",(owner():attachmentPos("eyes" )+owner():eyeAngles():forward()*30),ang(0),0)
Gre[Num,entity]:setTrails(2,0,0.5,"trails/smoke",vec(200,0,0),100)

noCollideAll(Gre[Num,entity],1)

}

if(owner():keyAttack2()){
if(Power<=10){
Power+=0.1
}
Gre[Num,entity]:setPos(owner():attachmentPos("eyes" )+vec(randint(0,0.05))+owner():eyeAngles():forward()*(55-Power*4))
}

if(changed(owner():keyAttack2())&!owner():keyAttack2()&Power>1){
noCollideAll(Gre[Num,entity],0)

Gre[Num,entity]:applyForce(owner():eyeAngles():forward()*Gre[Num,entity]:mass()*100*Power)

owner():soundPlay(Num,0,"WeaponFrag.Throw",0)
Gre[Num,entity]:soundPlay(Num+10,0,"Grenade.Blip",1)

CheckFire:pushNumber(200)

Power = 1
FireCount+=1
}

for(I=1,FireCount){
if(CheckFire[I,number]>0){
CheckFire[I,number] = CheckFire[I,number] - 1
}
if(changed(CheckFire[1,number])&CheckFire[1,number]==0){
FireOn=1
CheckFire:remove(1)
FireCount-=1
RemoveCount+=1
}
}

if(FireOn==1){
FireOn=0
Count1++

holo(HoloNumber[1,number]*7 ,Gre[Count1,entity]:pos(),vec(Size,Size,0.0001),ang(0),vec(255),"cube","models/effects/portalrift_sheet",0)
holo(HoloNumber[1,number]*7+1 ,Gre[Count1,entity]:pos(),vec(Size,Size,0.0001),ang(0,0,90),vec(255),"cube","models/effects/portalrift_sheet",HoloNumber[1,number]*7)
holo(HoloNumber[1,number]*7+2 ,Gre[Count1,entity]:pos(),vec(Size,Size,0.0001),ang(0,45,90),vec(255),"cube","models/effects/portalrift_sheet",HoloNumber[1,number]*7)
holo(HoloNumber[1,number]*7+3 ,Gre[Count1,entity]:pos(),vec(Size,Size,0.0001),ang(0,90,90),vec(255),"cube","models/effects/portalrift_sheet",HoloNumber[1,number]*7 )
holo(HoloNumber[1,number]*7+4 ,Gre[Count1,entity]:pos(),vec(Size,Size,0.0001),ang(0,135,90),vec(255),"cube","models/effects/portalrift_sheet",HoloNumber[1,number]*7)
holo(HoloNumber[1,number]*7+5 ,Gre[Count1,entity]:pos(),vec(-Size/2.25),ang(0),vec(50),"hqsphere","models/props_lab/warp_sheet",HoloNumber[1,number]*7)
holo(HoloNumber[1,number]*7+6 ,Gre[Count1,entity]:pos(),vec(Size/2.25),ang(0),vec(50),"hqsphere","models/props_lab/warp_sheet",HoloNumber[1,number]*7)

holoUnparent(HoloNumber[1,number]*7)
holoParent(HoloNumber[1,number]*7,Gre[Count1,entity])

Gre[Count1,entity]:propFreeze(1)
Gre[Count1,entity]:soundPlay(Count1,0,"Streetwar.d3_c17_06b_grenade_fire",1)

HoloNumber:remove(1)
CheckRemove:pushNumber(200)
}

for(I=1,RemoveCount){
if(CheckRemove[I,number]>0){
CheckRemove[I,number] = CheckRemove[I,number] - 1
}
if(changed(CheckRemove[1,number])&CheckRemove[1,number]==0){
RemoveOn=1
CheckRemove:shift()
RemoveCount-=1
}
}

if(RemoveOn==1){
RemoveOn = 0
Count2++
Gre[Count2,entity]:propDelete()
}


holo_players'locations_teleport 玩家定位与传送
基于holo做的玩家透视与传送,定位性能较低,按←与→选人,按下B键传送到该玩家,按下N键开关玩家定位显示。

holo type players wallhack and teleport, poor performance
Press '←' or '→' to choose player , then press 'B' to teleport , and press 'N' to set On or Off.


@name Boon's_players_locations_teleport
@inputs
@outputs
@persist X Num Chair:entity Button
@trigger
@strict
interval(100)

if(first()){
propSpawnUndo(0)
Num = 1
Button=1
Chair = seatSpawn("models/nova/airboat_seat.mdl",entity():pos(),ang(0,90,0),1)
Chair:propNotSolid(1)
Chair:propDraw(0)
}

if(changed(owner():keyPressed("left" )|owner():keyPressed("right" ))&owner():keyPressed("left" )|owner():keyPressed("right" )) {
Num = Num + (owner():keyPressed("right" )-owner():keyPressed("left" ))
Num = (numPlayers()+Num-1)%numPlayers()+1
print(4 , "["+numPlayers()+"/"+Num+"] "+"Player Name : "+players()[Num,entity]:name())
}

if(changed(owner():keyPressed("B" ))&owner():keyPressed("B" )){
Chair:setPos(players()[Num,entity]:pos()+vec(0,0,20)+players()[Num,entity]:eyeAngles():setRoll(0):setPitch(0):forward()*-35)
Chair:setAng(players()[Num,entity]:eyeAngles():setRoll(0):setPitch(0)+ang(0,0,0))
timer("teleport",100)
}

if(clk("teleport")){
Chair:use()
Chair:ejectPod()
}

if(changed(numPlayers())|first()){
if(holoAmount()>numPlayers()){
for(I=numPlayers()+1,numPlayers()+holoAmount()-numPlayers()){
holoDelete(I)
}
}elseif(holoAmount()==numPlayers()){
}else{
for(I=holoAmount()+1,holoAmount()+numPlayers()-holoAmount()){
if(players()[I,entity]!=owner()){
holoCreate(I,owner():pos(),vec(1),ang(0),vec(255),"hqsphere")
holoMaterial(I,"debug/debugportals")
}
}
}
}else{
for(I=1,numPlayers()){
if(players()[I,entity]!=owner()){
X = (owner():pos():distance(players()[I,entity]:pos()))/500
holoPos(I,owner():attachmentPos("eyes")+(players()[I,entity]:pos()+vec(0,0,50)-owner():attachmentPos("eyes")):toAngle():forward()*(50))
holoScale(I,vec(((1/(X*X*X+1))+0.05)*-1))
if(Num==I){holoColor(I,vec(0,255,0))}else{holoColor(I,vec(255))}
}
}
}

if(changed(owner():keyPressed("N" ))&owner():keyPressed("N" )){
Button = (Button+1)%2
for(I=1,numPlayers()){
if(players()[I,entity]!=owner()){
holoAlpha(I,Button*255)
}
}
}

坦克 Tank v5 ( part 1 部分1 ) 需要集齐所有部分才能运行 need all parts to run

对着顶端的椅子按E进入操控(有时候会出现bug椅子陷进去 )
Use the chair on the top to get in the tank (bug sometimes the chair stucks insize)

@name Boon's_Tank v5

#entity
@persist [Base Seat Body User BodyCover Prop]:entity
#number
@persist High W A S D CheckRun Fire RcH P Pitch M1 #M2
#array
@persist [Check EArr]:array
#ranger
@persist [RanF RanB RanL RanR RanC RanHolo RanAim]:ranger
#effect
@persist [Effect1 Effect2]:effect
#ang
@persist [Angle Aim]:angle
#vector

interval(1)
if(first()|duped()){
propSpawnUndo(0)
entity():propDraw(0)

Body = propSpawn("models/props_vehicles/apc001.mdl",entity():pos()+vec(0,0,50),ang(0,180,0),0)
BodyCover = propSpawn("models/props_vehicles/apc001.mdl",entity():pos()+vec(0,0,51),ang(0,180,0),0)
Base = propSpawn("models/hunter/blocks/cube3x6x025.mdl",entity():pos()+vec(0,0,45),ang(0,180,0),0)
Seat = seatSpawn("models/nova/airboat_seat.mdl",Body:toWorld(vec(0,-15,48)),ang(0,180,0),0)

Base:propNotSolid(1)
Base:setColor(vec(0))
Base:setMass(5000)

Seat:parentTo(Body)
Seat:setMaterial("phoenix_storms/OfficeWindow_1-1")

Body:setMaterial("models/props_debris/plasterwall021a")
Body:setColor(vec(30))

BodyCover:parentTo(Body)
BodyCover:setMaterial("phoenix_storms/OfficeWindow_1-1")
BodyCover:setColor(vec(70))
BodyCover:setAlpha(200)
BodyCover:propNotSolid(1)

noCollideAll(Base,1)
noCollideAll(Seat,1)
weld(Body,Base)

timer("First",100)

High = -0
Fire = 0

function void holo(Index:number,Pos:vector,Scale:vector,Ang:angle,Color:vector,Model:string,Material:string,Parent:entity,Alpha:number){
holoCreate(Index)
holoPos(Index,Pos)
holoScale(Index,Scale)
holoAng(Index,Ang)
holoColor(Index,Color)
holoModel(Index,Model)
holoMaterial(Index,Material)
holoEntity(Index):parentTo(Parent)
holoAlpha(Index,Alpha)
}

function void clip(Index:number,ClipIndex:number,Origin:vector,Normal:vector,IsGlobal:number){
holoClipEnabled(Index,ClipIndex,1)
holoClip(Index,ClipIndex,Origin,Normal,IsGlobal)
}

function ranger ranN(Filter:array,Distance:number,Fromvec:vector,Direction:vector){
rangerFilter(Filter)
return rangerOffset(Distance, Fromvec, Direction)
}

}

if(clk("First")){
#aimpos
holo(-1,Body:toWorld(vec(0,-15,70)),vec(1.5),Body:toWorld(ang(0,90,0)),vec(255,0,0),"hq_sphere","",Body,255)
holoDisableShading(-1,1)
holoVisible(-1,players(),0)
#control
holo(0,Body:toWorld(vec(0,-15,70)),vec(1),Body:toWorld(ang(0,90,0)),vec(250),"cube","",Body,0)
#head_1
holo(1,Body:toWorld(vec(0,-10,40)),vec(8,16,2),Body:toWorld(ang(0)),vec(50),"hq_rcube_thick","models/props_debris/plasterwall021a",Body,255)
holo(2,Body:toWorld(vec(0,-10,40.1)),vec(8.01,16.01,2.01),Body:toWorld(ang(0)),vec(50),"hq_rcube_thick","phoenix_storms/OfficeWindow_1-1",Body,150)
#head_2
holo(3,Body:toWorld(vec(0,-15,50)),vec(8.2,8.7,3),Body:toWorld(ang(0)),vec(50),"hq_rcube_thick","models/props_debris/plasterwall021a",Body,255)
holo(4,Body:toWorld(vec(0,-15,50)),vec(8.21,8.71,3.01),Body:toWorld(ang(0)),vec(50),"hq_rcube_thick","phoenix_storms/OfficeWindow_1-1",Body,150)
#head_3
holo(5,Body:toWorld(vec(0,-15,40)),vec(7,7,7),Body:toWorld(ang(0)),vec(50),"rcylinder_thick","models/props_debris/plasterwall021a",Body,255)
holo(6,Body:toWorld(vec(0,-15,40)),vec(7.01,7.01,7.01),Body:toWorld(ang(0)),vec(50),"rcylinder_thick","phoenix_storms/OfficeWindow_1-1",Body,150)
#tube_1
holo(7,Body:toWorld(vec(0,100,70)),vec(1.4,1.4,14),Body:toWorld(ang(0,0,90)),vec(70),"hq_tube","phoenix_storms/OfficeWindow_1-1",holoEntity(0),255)
holo(8,Body:toWorld(vec(0,200,70)),vec(1.6,1.6,3),Body:toWorld(ang(0,0,90)),vec(70),"hq_tube","phoenix_storms/OfficeWindow_1-1",holoEntity(7),255)
holo(9,Body:toWorld(vec(0,30,70)),vec(1.6,1.6,3),Body:toWorld(ang(0,0,90)),vec(70),"octagon","phoenix_storms/OfficeWindow_1-1",holoEntity(7),255)
#hole
holo(10,Body:toWorld(vec(0,-15,82)),vec(4,4,0.1),Body:toWorld(ang(0,0,0)),vec(0),"rcylinder_thick","",Body,255)
holo(11,Body:toWorld(vec(0,-15,78)),vec(3.9,3.9,3.9),Body:toWorld(ang(0,0,0)),vec(100),"torus2","phoenix_storms/OfficeWindow_1-1",Body,255)
#turning
holo(12,Body:toWorld(vec(0,-40,81.5)),vec(1,1,2),Body:toWorld(ang(0,90,90)),vec(50),"hq_rcylinder","phoenix_storms/OfficeWindow_1-1",Body,255)
#cover
holo(13,Body:toWorld(vec(0,-15,85)),vec(4.4,4.4,0.4),Body:toWorld(ang(0)),vec(60),"rcylinder","models/props_debris/plasterwall021a",holoEntity(12),255)
holo(14,Body:toWorld(vec(0,-15,85)),vec(4.41,4.41,0.41),Body:toWorld(ang(0)),vec(50),"rcylinder","phoenix_storms/OfficeWindow_1-1",holoEntity(13),150)
#frontlight
holo(15,Body:toWorld(vec(-42,145,21.4)),vec(1.4,0.6,0.1),Body:toWorld(ang(0,0,90)),vec(255,255,0),"hq_rcylinder_thick","models/debug/debugwhite",Body,255)
holo(16,Body:toWorld(vec(42,145,21.4)),vec(1.4,0.6,0.1),Body:toWorld(ang(0,0,90)),vec(255,255,0),"hq_rcylinder_thick","models/debug/debugwhite",Body,255)
holoDisableShading(15,1)
holoDisableShading(16,1)
#backlight
holo(17,Body:toWorld(vec(45.5,-146,27)),vec(0.38,0.4,0.1),Body:toWorld(ang(0,0,90)),vec(255,0,0),"hq_rcylinder_thick","models/debug/debugwhite",Body,255)
holo(18,Body:toWorld(vec(-45.5,-146,27)),vec(0.38,0.4,0.1),Body:toWorld(ang(0,0,90)),vec(255,0,0),"hq_rcylinder_thick","models/debug/debugwhite",Body,255)
holoDisableShading(17,1)
holoDisableShading(18,1)

#tank_track1
holo(19,entity():pos()+vec(-70,-131.5,18),vec(5.4,0.2,2),ang(31,90,90),vec(100),"cube","models/props_pipes/GutterMetal01a",Body,255)
holo(20,entity():pos()+vec(-70,141,18),vec(4.2,0.2,2),ang(-43,90,90),vec(100),"cube","models/props_pipes/GutterMetal01a",Body,255)
holo(21,entity():pos()+vec(-70,0,60.8),vec(24.2,0.2,2),ang(0,90,90),vec(100),"cube","models/props_pipes/GutterMetal01a",Body,255)
holo(22,entity():pos()+vec(-70,10,1),vec(19,0.2,2),ang(0,90,90),vec(100),"cube","models/props_pipes/GutterMetal01a",Body,255)
holo(23,entity():pos()+vec(-70,-145,44),vec(3,3,2),ang(0,90,90),vec(100),"hq_tube_thin","models/props_pipes/GutterMetal01a",Body,255)
holo(24,entity():pos()+vec(-70,145,44),vec(3,3,2),ang(0,90,90),vec(100),"hq_tube_thin","models/props_pipes/GutterMetal01a",Body,255)

clip(23,1,vec(0,0,0),vec(-5,0,0),0)
clip(23,2,vec(0,-10,0),vec(0,3,0),0)
clip(24,1,vec(0,0,0),vec(5,0,0),0)
clip(24,2,vec(0,-10,0),vec(0,3,0),0)

#tank_track2
holo(25,entity():pos()+vec(70,-131.5,18),vec(5.4,0.2,2),ang(31,90,90),vec(100),"cube","models/props_pipes/GutterMetal01a",Body,255)
holo(26,entity():pos()+vec(70,141,18),vec(4.2,0.2,2),ang(-43,90,90),vec(100),"cube","models/props_pipes/GutterMetal01a",Body,255)
holo(27,entity():pos()+vec(70,0,60.8),vec(24.2,0.2,2),ang(0,90,90),vec(100),"cube","models/props_pipes/GutterMetal01a",Body,255)
holo(28,entity():pos()+vec(70,10,1),vec(19,0.2,2),ang(0,90,90),vec(100),"cube","models/props_pipes/GutterMetal01a",Body,255)
holo(29,entity():pos()+vec(70,-145,44),vec(3,3,2),ang(0,90,90),vec(100),"hq_tube_thin","models/props_pipes/GutterMetal01a",Body,255)
holo(30,entity():pos()+vec(70,145,44),vec(3,3,2),ang(0,90,90),vec(100),"hq_tube_thin","models/props_pipes/GutterMetal01a",Body,255)

clip(29,1,vec(0,0,0),vec(-5,0,0),0)
clip(29,2,vec(0,-10,0),vec(0,3,0),0)
clip(30,1,vec(0,0,0),vec(5,0,0),0)
clip(30,2,vec(0,-10,0),vec(0,3,0),0)

#small_tire_outsize
holo(31,entity():pos()+vec(70,-145,44),vec(2.7,2.7,7.5),ang(0,90,90),vec(50),"hq_torus_thick","models/props_pipes/pipesystem01a_skin2",Body,255)
holo(32,entity():pos()+vec(-70,-145,44),vec(2.7,2.7,7.5),ang(0,90,90),vec(50),"hq_torus_thick","models/props_pipes/pipesystem01a_skin2",Body,255)
坦克 Tank v5 ( part 2 部分2 ) 需要集齐所有部分才能运行 need all parts to run
holo(33,entity():pos()+vec(70,148,45),vec(2.4,2.4,7.5),ang(0,90,90),vec(50),"hq_torus_thick","models/props_pipes/pipesystem01a_skin2",Body,255)
holo(34,entity():pos()+vec(-70,148,45),vec(2.4,2.4,7.5),ang(0,90,90),vec(50),"hq_torus_thick","models/props_pipes/pipesystem01a_skin2",Body,255)

#tire
for(I=35,39){
holo(I,entity():pos()+vec(-70,-148+(I-34)*52,28),vec(4.4,4.4,7.5),ang(0,90,90),vec(50),"hq_torus_thick","models/props_pipes/pipesystem01a_skin2",Body,255)
holo(I+10,entity():pos()+vec(-70,-148+(I-34)*52,28),vec(3.4,3.4,0.7),ang(0,90,90),vec(255),"hq_rcylinder","models/props_pipes/pipeset_metal02",holoEntity(I),255)
}
for(I=40,44){
holo(I,entity():pos()+vec(70,-148+(I-39)*52,28),vec(4.4,4.4,7.5),ang(0,90,90),vec(50),"hq_torus_thick","models/props_pipes/pipesystem01a_skin2",Body,255)
holo(I+10,entity():pos()+vec(70,-148+(I-39)*52,28),vec(3.4,3.4,0.7),ang(0,90,90),vec(255),"hq_rcylinder","models/props_pipes/pipeset_metal02",holoEntity(I),255)
}

#small_tire_insize
holo(55,entity():pos()+vec(70,-145,44),vec(2.1,2.1,0.7),ang(0,90,90),vec(255),"hq_rcylinder","models/props_pipes/pipeset_metal02",holoEntity(31),255)
holo(56,entity():pos()+vec(-70,-145,44),vec(2.1,2.1,0.7),ang(0,90,90),vec(255),"hq_rcylinder","models/props_pipes/pipeset_metal02",holoEntity(32),255)
holo(57,entity():pos()+vec(70,148,45),vec(2.1,2.1,0.7),ang(0,90,90),vec(255),"hq_rcylinder","models/props_pipes/pipeset_metal02",holoEntity(33),255)
holo(58,entity():pos()+vec(-70,148,45),vec(2.1,2.1,0.7),ang(0,90,90),vec(255),"hq_rcylinder","models/props_pipes/pipeset_metal02",holoEntity(34),255)

Effect1=effect()
Effect1:setScale(100)
Effect1:setNormal(vec(0,0,1))

Effect2=effect()
Effect2:setScale(150)
Effect2:setNormal(vec(0,0,1))

}

#Button
User = Seat:driver()
W = User:keyPressed("w")
A = User:keyPressed("A")
S = User:keyPressed("S")
D = User:keyPressed("D")
M1 = User:keyAttack1()
#M2 = User:keyAttack2()

#Check
Check = array( !Base:isWeldedTo() , (!Seat:driver():isValid()) , (Seat:driver():isValid()) , (changed(User:isValid())&User:isValid()) , (changed(User:isValid())&!User:isValid()))
for(I=1,Check:count()){
if(Check[I,number]==1){
switch (I) {
case 1,
selfDestruct()
break

case 2,
#chair up
if(changed(High<24)&High<24){
Seat:deparent()
}elseif(High<=24){
High=High+0.3
Seat:setPos(Body:toWorld(vec(0,-15,48+High)))
Seat:setAng(Body:toWorld(ang(0,0,0)))
holoAng(12,Body:toWorld(ang(-High*2.5,90,90)))
}
if(High>=24){
Seat:parentTo(Body)
}
break

case 3,
#chair down
if(changed(High>0)&High>0){
Seat:deparent()
}elseif(High>=0){
High=High-0.3
Seat:setPos(Body:toWorld(vec(0,-15,48+High)))
Seat:setAng(Body:toWorld(ang(0,0,0)))
holoAng(12,Body:toWorld(ang(-High*2.5,90,90)))
}elseif(High<=0){
Seat:parentTo(Body)
}
break
case 4,
holoVisible(-1,User,1)
holoVisible(3,User,0)
holoVisible(5,User,0)
holoVisible(10,User,0)
holoVisible(11,User,0)
holoVisible(13,User,0)
break
case 5,
for(I=1,numPlayers()){
holoVisible(-1,players()[I,entity],0)
holoVisible(3,players()[I,entity],1)
holoVisible(5,players()[I,entity],1)
holoVisible(10,players()[I,entity],1)
holoVisible(11,players()[I,entity],1)
holoVisible(13,players()[I,entity],1)
}
break
default,
break
}
}
}

#Force
EArr=array(Body,Base,User,Seat,BodyCover,entity(),owner())
RcH = 60

RanF = ranN(EArr,RcH+10,Base:pos()+vec(0,0,5)+Base:boxCenter()+Base:forward()*70,-Base:up())
RanB = ranN(EArr,RcH+10,Base:pos()+vec(0,0,5)+Base:boxCenter()-Base:forward()*70,-Base:up())
RanL = ranN(EArr,RcH+10,Base:pos()+vec(0,0,5)+Base:boxCenter()-Base:right()*165,-Base:up())
RanR = ranN(EArr,RcH+10,Base:pos()+vec(0,0,5)+Base:boxCenter()+Base:right()*165,-Base:up())
RanC = ranN(EArr,RcH,Base:pos()+Base:boxCenter(),-Base:up())

if(RanC:distance()<=RcH-0.1&abs(Body:angles():pitch())<35&abs(Body:angles():roll())<35){
CheckRun = 1
Base:applyForce((vec(0,0,RcH-RanC:distance())*10-vec(0,0,Base:vel():z()))*Base:mass())
}else{
CheckRun = 0
Base:applyForce(vec(0,0,-10)*Base:mass())
}

Base:applyForce(Base:right()*-(W-S)*Base:mass()*20)
Base:applyForce(-Base:vel()*Base:mass()*0.06)

Base:applyAngForce(ang(RanF:distance()-RanB:distance(),(A-D)*10,(RanR:distance()-RanL:distance()))*Base:mass()*30)
Base:applyAngForce(-Base:angVel()*Base:mass()*10)

#holoTire_turning
for(I=31,44){
holoAng(I,holoEntity(I):toWorld(ang(0,5*(W-S)*CheckRun,0)))
}

#Tank_fire
local Inter = ang(0,0,0)
if(User:isValid()){
if(changed(M1)&M1&Fire==0){
Fire=1
Seat:soundPlay(1,0, "Town.d1_town_01a_shotgun_dbl_fire",1)
Body:soundPlay(2,0, "npc/env_headcrabcanister/launch.wav",1)

Effect1:setOrigin(holoEntity(8):pos())
Effect1:play("HelicopterMegaBomb")
Effect2:setOrigin(Base:pos()-vec(0,0,10))
Effect2:play("ThumperDust")

timer("FireOver",4000)

holoCreate(100,holoEntity(8):toWorld(vec(0,5,0)),vec(1),ang(0),vec(0),"hqsphere")
Aim = holoEntity(0):angles()
}

#Aim_pos
RanAim = ranN(EArr,10000,holoEntity(8):pos(),holoEntity(0):forward())
holoPos(-1,holoEntity(8):toWorld(vec(0,10,0))+holoEntity(0):forward()*RanAim:distance())
holoAng(-1,RanAim:hitNormal():toAngle():up():toAngle())
#Angles_here
local X1=Body:angles():up():x()
local Y1=Body:angles():up():y()
local Z1=Body:angles():up():z()

local X2=User:eyeAngles():forward():x()
local Y2=User:eyeAngles():forward():y()
local Z2=(-X1*X2-Y1*Y2)/Z1

Pitch = Body:toWorld(User:eyeAngles()):pitch()
if(Pitch<10&Pitch>-15){
P=User:eyeAngles():pitch()
}elseif(Pitch>=15){
P=vec(X2,Y2,Z2):toAngle():pitch()+10
}elseif(Pitch<=-15){
P=vec(X2,Y2,Z2):toAngle():pitch()-15
}
Inter = (vec(X2,Y2,Z2):toAngle():setPitch(P))
}else{
Inter = Body:toWorld(ang(0,90,0))
}

Angle = holoEntity(0):toWorld((holoEntity(0):toLocal(Inter)*0.01):setRoll(0))
holoAng(0,Angle)


#FireOver
if(clk("FireOver")){
Fire = 0
}

#pao_dan
if(holoEntity(100):isValid()){
RanHolo = ranN(EArr,90,holoEntity(100):pos(),Aim:forward())
if(RanHolo:distance()>85&Fire){
holoPos(100,holoEntity(100):pos()+Aim:forward()*80)
}else{
Prop = propSpawn("models/props_phx/misc/potato_launcher_explosive.mdl",holoEntity(100):pos(), 1)
Prop:propBreak()
holoDelete(100)
}
}