Here is the Error
1
LUA ERROR: sys/lua/mylua.lua:48: ')' expected (to close '(' at line 47) near 'else'
and here is my lua
Spoiler
------------------------------------------------
---Lover-'s Zombie lua version 1--
--Unrealsoftware Script or lua 1--
-----------------------------------------------
adminlist = {63171}
if white==nil then white={} end
white.ut={}
function initArray(m)
local array = {}
for i = 1, m do
array[i]=0
end
return array
end
v66={}
v66.radar={}
v66.radar.radius=50
v66.radar.on=initArray(32,true)
v66.radar.arrow=initArray(32,true)
v66.radar.img1=initArray(1024,0)
v66.radar.img2=initArray(32,0)
white.ut.timer=initArray(32)
white.ut.level=initArray(32)
white.ut.fblood=0
class=initArray(32)
function classmenu(id)
menu(id,"Select your Class,Deficult Zombie,Runner Zombie,Boomer Zombie,Builder Zombie")
end
addhook("spawn","idlers")
function idlers(id)
if player(id,"team")==2 then
menu(id,"CT Buy Menu,Airstrike Cost:$5222,Chainsaw Cost:$16000,Machete Cost:$5000,Mine Cost:$1000")
end
end
addhook("menu","idle")
function idle(id,men,sel)
if men=="CT Buy Menu" then
if sel==1 then
if player(id,"money")>=5222 then
parse("equip "..id.." 76")
parse("setweapon "..id.." 76")
parse("setmoney "..id.." "..player(id,"money")-5222
else
msg2(id,string.char(169).."255000000Not Enough Money@C")
end
elseif sel==2 then
if player(id,"money")>=16000 then
parse("equip "..id.." 85")
parse("setweapon "..id.." 85")
parse("setmoney "..id.." "..player(id,"money")-16000
else
msg2(id,string.char(169).."255000000Not Enough Money@C")
end
elseif sel==3 then
if player(id,"money")>=5000 then
parse("equip "..id.." 69")
parse("setweapon "..id.." 69")
parse("setmoney "..id.." "..player(id,"money")-5000
else
msg2(id,string.char(169).."255000000Not Enough Money@C")
end
elseif sel==4 then
if player(id,"money")>=5000 then
parse("equip "..id.." 77")
parse("setweapon "..id.." 77")
parse("setmoney "..id.." "..player(id,"money")-1000
else
msg2(id,string.char(169).."255000000Not Enough Money@C")
end
end
end
end
addhook("team","classesteam")
function classesteam(id,team)
if (team==0) then
class[id]=0
end
if (team==1) then
classmenu(id)
end
if (team==2) then
class[id]=0
end
end
addhook("serveraction","classesserveraction")
function classesserveraction(id)
classmenu(id)
end
addhook("menu","classesmenu")
function classesmenu(id,menu,sel)
if (menu=="Select your Class") then
if (sel>=1 and sel<=4) then
class[id]=sel
if (player(id,"health")>0) then
parse("killplayer "..id)
end
end
end
end
addhook("spawn","classesspawn")
function classesspawn(id)
-- Deficult Zombie
if (class[id]==1) then
parse ("setmaxhealth "..id.." 150")
parse ("setarmor "..id.." 200")
parse ("speedmod "..id.." 0")
return "86";
end
-- Runner Zombie
if (class[id]==2) then
parse ("setmaxhealth "..id.." 150")
parse ("setarmor "..id.." 250")
parse ("speedmod "..id.." 5")
return "86";
end
-- Boomer Zombie
if (class[id]==3) then
parse ("setmaxhealth "..id.." 1")
parse ("setarmor "..id.." 0")
parse ("speedmod "..id.." 1")
return "72,86";
end
-- Builder Zombie
if (class[id]==4) then
parse ("setmaxhealth "..id.." 125")
parse ("setarmor "..id.." 75")
parse ("speedmod "..id.." -2")
return "86,74";
end
end
addhook("buy","classesbuy")
function classesbuy()
return 1
end
--hooks
addhook("always","v66.radar.always")
addhook("startround","v66.radar.start")
--funcs
function v66.radar.imageupdate(iid,id,img,x,y,rot,mode)
if img[iid]==0 then
if mode==1 then
img[iid]=image("gfx/hud_dot.bmp",x,y,2,id)
else
img[iid]=image("gfx/arrow.bmp",x,y,2,id)
end
end
imagepos(img[iid],x,y,rot)
if mode==2 then
imagecolor(img[iid],255,255,0)
else
imagecolor(img[iid],255,0,0)
imagescale(img[iid],0.3,0.3)
end
end
function v66.radar.imagedelete(iid,img)
if img[iid]~=0 then
freeimage(img[iid])
img[iid]=0
end
end
function v66.radar.show(id)
local a,x,y
for i=1,32 do
if (player(i,"exists")) and (player(i,"team")==3-player(id,"team")) and (player(i,"health")>0) then
x=(player(i,"x")-player(id,"x"))/8
y=(player(i,"y")-player(id,"y"))/8
a=v66.radar.radius/math.sqrt(x^2+y^2)
if a<1 then
x=x*a
y=y*a
end
x=x+53
y=y+53
v66.radar.imageupdate(id+32*(i-1),id,v66.radar.img1,x,y,0,1)
else
v66.radar.imagedelete(id+32*(i-1),v66.radar.img1)
end
end
end
function v66.radar.always()
for id=1,32 do
if player(id,"exists") and player(id,"team")>0 and (player(id,"health")>0) then
if v66.radar.on[id] then
v66.radar.show(id)
end
if v66.radar.arrow[id] then
v66.radar.imageupdate(id,id,v66.radar.img2,53,53,player(id,"rot"),2)
end
else
for i=1,32 do
v66.radar.imagedelete(id+32*(i-1),v66.radar.img1)
end
v66.radar.imagedelete(id,v66.radar.img2)
end
end
end
function v66.radar.start()
v66.radar.img1=initArray(1024,0)
v66.radar.img2=initArray(32,0)
end
addhook("spawn","spawn1")
function spawn1(id,txt)
for _, usgn in ipairs(adminlist) do
if(player(id,"team") == 2) then
freeimage(id)
id1=image("gfx/l4d/zoey.bmp",1,1,200+id)
imagescale(id1,1,1)
imageblend(id1,1)
imagealpha(id1,1.0)
if (player(id,"team") == 2) then
imagecolor(id1,255,255,255)
elseif (player(id,"team") == 1) then
imagecolor(id1,255,255,255)
end
end
end
addhook("startround","white.ut.startround")
function white.ut.startround()
parse("sv_sound \"fun/prepare.wav\"")
white.ut.fblood=0
end
addhook("kill","white.ut.kill")
function white.ut.kill(killer,victim,weapon)
if (os.clock()-white.ut.timer[killer])>3 then
white.ut.level[killer]=0;
end
level=white.ut.level[killer]
level=level+1
white.ut.level[killer]=level
white.ut.timer[killer]=os.clock()
-- FIRST BLOOD?
if (white.ut.fblood==0) then
white.ut.fblood=1
parse("sv_sound \"fun/firstblood.wav\"");
msg (player(killer,"name").." sheds FIRST BLOOD by killing "..player(victim,"name").."!")
end
-- HUMILIATION? (KNIFEKILL)
if (weapon==50) then
-- HUMILIATION!
parse("sv_sound \"fun/killingspree.wav\"");
msg (player(killer,"name").." Kill "..player(victim,"name").." With a Knife wow!")
else
-- REGULAR KILL
if (level==1) then
-- Single Kill! Nothing Special!
elseif (level==2) then
parse("sv_sound \"fun/doublekill.wav\"");
msg (player(killer,"name").." made a Doublekill!")
elseif (level==3) then
parse("sv_sound \"fun/multikill.wav\"")
msg (player(killer,"name").." made a Multikill!")
elseif (level==4) then
parse("sv_sound \"fun/ultrakill.wav\"")
msg (player(killer,"name").." made an UULTRAAKILL!")
elseif (level==5) then
parse("sv_sound \"fun/unstoppable.wav\"")
msg (player(killer,"name").." made a UNSTAPPABLE!")
elseif (level==6) then
parse("sv_sound \"fun/monsterkill.wav\"")
msg (player(killer,"name").." made a MO-O-O-O-ONSTERKILL-ILL-ILL!")
else
parse("sv_sound \"fun/rampage.wav\"")
msg (player(killer,"name").." is RAMPAGE! "..level.." KILLS!")
end
end
end
parse("mp_timelimit 99")
parse("sv_gamemode 5")
parse("mp_wpndmg XM1014 50")
parse("mp_wpndmg Chainsaw 100")
parse("mp_wpndmg Knife 200")
parse("mp_wpndmg Claw 1")
parse('mp_building_limit "dispenser" 99999')
parse('mp_building_limit "turret" 99999')
parse('mp_building_limit "supply" 99999')
parse('mp_building_limit "gate field" 99999')
parse('mp_building_limit "wall I" 99999')
parse('mp_building_limit "wall II" 99999')
parse('mp_building_limit "wall III" 99999')
parse('mp_building_limit "barbed wire" 100')
parse('mp_building_limit "Barricade" 100')
parse('mp_building_limit "teleporter exit" 1')
parse('mp_building_limit "teleporter entrance" 99999')
addhook("build","no_site")
function no_site(id,type)
if (type == 21) then
return 0
else
return 1
end
end
buildingmoney = {300,500,1000,2000,3000,1500,5000,3000}
addhook("build","no_sitenow")
function no_sitenow(id,type,x,y)
if (type == 21) then
return 0
else
parse("spawnobject "..type.." "..x.." "..y.." 90 1 "..player(id,"team").." "..id)
end
end
addhook("build","money_loose")
function money_loose(id,type)
if (type == 1) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[1])
elseif (type == 2) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[2])
elseif (type == 3) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[3])
elseif (type == 4) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[4])
elseif (type == 5) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[5])
elseif (type == 6) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[6])
elseif (type == 7) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[7])
elseif (type == then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[7])
elseif (type == 9) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[7])
elseif (type == 13) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[8])
elseif (type == 14) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[8])
end
end
---Lover-'s Zombie lua version 1--
--Unrealsoftware Script or lua 1--
-----------------------------------------------
adminlist = {63171}
if white==nil then white={} end
white.ut={}
function initArray(m)
local array = {}
for i = 1, m do
array[i]=0
end
return array
end
v66={}
v66.radar={}
v66.radar.radius=50
v66.radar.on=initArray(32,true)
v66.radar.arrow=initArray(32,true)
v66.radar.img1=initArray(1024,0)
v66.radar.img2=initArray(32,0)
white.ut.timer=initArray(32)
white.ut.level=initArray(32)
white.ut.fblood=0
class=initArray(32)
function classmenu(id)
menu(id,"Select your Class,Deficult Zombie,Runner Zombie,Boomer Zombie,Builder Zombie")
end
addhook("spawn","idlers")
function idlers(id)
if player(id,"team")==2 then
menu(id,"CT Buy Menu,Airstrike Cost:$5222,Chainsaw Cost:$16000,Machete Cost:$5000,Mine Cost:$1000")
end
end
addhook("menu","idle")
function idle(id,men,sel)
if men=="CT Buy Menu" then
if sel==1 then
if player(id,"money")>=5222 then
parse("equip "..id.." 76")
parse("setweapon "..id.." 76")
parse("setmoney "..id.." "..player(id,"money")-5222
else
msg2(id,string.char(169).."255000000Not Enough Money@C")
end
elseif sel==2 then
if player(id,"money")>=16000 then
parse("equip "..id.." 85")
parse("setweapon "..id.." 85")
parse("setmoney "..id.." "..player(id,"money")-16000
else
msg2(id,string.char(169).."255000000Not Enough Money@C")
end
elseif sel==3 then
if player(id,"money")>=5000 then
parse("equip "..id.." 69")
parse("setweapon "..id.." 69")
parse("setmoney "..id.." "..player(id,"money")-5000
else
msg2(id,string.char(169).."255000000Not Enough Money@C")
end
elseif sel==4 then
if player(id,"money")>=5000 then
parse("equip "..id.." 77")
parse("setweapon "..id.." 77")
parse("setmoney "..id.." "..player(id,"money")-1000
else
msg2(id,string.char(169).."255000000Not Enough Money@C")
end
end
end
end
addhook("team","classesteam")
function classesteam(id,team)
if (team==0) then
class[id]=0
end
if (team==1) then
classmenu(id)
end
if (team==2) then
class[id]=0
end
end
addhook("serveraction","classesserveraction")
function classesserveraction(id)
classmenu(id)
end
addhook("menu","classesmenu")
function classesmenu(id,menu,sel)
if (menu=="Select your Class") then
if (sel>=1 and sel<=4) then
class[id]=sel
if (player(id,"health")>0) then
parse("killplayer "..id)
end
end
end
end
addhook("spawn","classesspawn")
function classesspawn(id)
-- Deficult Zombie
if (class[id]==1) then
parse ("setmaxhealth "..id.." 150")
parse ("setarmor "..id.." 200")
parse ("speedmod "..id.." 0")
return "86";
end
-- Runner Zombie
if (class[id]==2) then
parse ("setmaxhealth "..id.." 150")
parse ("setarmor "..id.." 250")
parse ("speedmod "..id.." 5")
return "86";
end
-- Boomer Zombie
if (class[id]==3) then
parse ("setmaxhealth "..id.." 1")
parse ("setarmor "..id.." 0")
parse ("speedmod "..id.." 1")
return "72,86";
end
-- Builder Zombie
if (class[id]==4) then
parse ("setmaxhealth "..id.." 125")
parse ("setarmor "..id.." 75")
parse ("speedmod "..id.." -2")
return "86,74";
end
end
addhook("buy","classesbuy")
function classesbuy()
return 1
end
--hooks
addhook("always","v66.radar.always")
addhook("startround","v66.radar.start")
--funcs
function v66.radar.imageupdate(iid,id,img,x,y,rot,mode)
if img[iid]==0 then
if mode==1 then
img[iid]=image("gfx/hud_dot.bmp",x,y,2,id)
else
img[iid]=image("gfx/arrow.bmp",x,y,2,id)
end
end
imagepos(img[iid],x,y,rot)
if mode==2 then
imagecolor(img[iid],255,255,0)
else
imagecolor(img[iid],255,0,0)
imagescale(img[iid],0.3,0.3)
end
end
function v66.radar.imagedelete(iid,img)
if img[iid]~=0 then
freeimage(img[iid])
img[iid]=0
end
end
function v66.radar.show(id)
local a,x,y
for i=1,32 do
if (player(i,"exists")) and (player(i,"team")==3-player(id,"team")) and (player(i,"health")>0) then
x=(player(i,"x")-player(id,"x"))/8
y=(player(i,"y")-player(id,"y"))/8
a=v66.radar.radius/math.sqrt(x^2+y^2)
if a<1 then
x=x*a
y=y*a
end
x=x+53
y=y+53
v66.radar.imageupdate(id+32*(i-1),id,v66.radar.img1,x,y,0,1)
else
v66.radar.imagedelete(id+32*(i-1),v66.radar.img1)
end
end
end
function v66.radar.always()
for id=1,32 do
if player(id,"exists") and player(id,"team")>0 and (player(id,"health")>0) then
if v66.radar.on[id] then
v66.radar.show(id)
end
if v66.radar.arrow[id] then
v66.radar.imageupdate(id,id,v66.radar.img2,53,53,player(id,"rot"),2)
end
else
for i=1,32 do
v66.radar.imagedelete(id+32*(i-1),v66.radar.img1)
end
v66.radar.imagedelete(id,v66.radar.img2)
end
end
end
function v66.radar.start()
v66.radar.img1=initArray(1024,0)
v66.radar.img2=initArray(32,0)
end
addhook("spawn","spawn1")
function spawn1(id,txt)
for _, usgn in ipairs(adminlist) do
if(player(id,"team") == 2) then
freeimage(id)
id1=image("gfx/l4d/zoey.bmp",1,1,200+id)
imagescale(id1,1,1)
imageblend(id1,1)
imagealpha(id1,1.0)
if (player(id,"team") == 2) then
imagecolor(id1,255,255,255)
elseif (player(id,"team") == 1) then
imagecolor(id1,255,255,255)
end
end
end
addhook("startround","white.ut.startround")
function white.ut.startround()
parse("sv_sound \"fun/prepare.wav\"")
white.ut.fblood=0
end
addhook("kill","white.ut.kill")
function white.ut.kill(killer,victim,weapon)
if (os.clock()-white.ut.timer[killer])>3 then
white.ut.level[killer]=0;
end
level=white.ut.level[killer]
level=level+1
white.ut.level[killer]=level
white.ut.timer[killer]=os.clock()
-- FIRST BLOOD?
if (white.ut.fblood==0) then
white.ut.fblood=1
parse("sv_sound \"fun/firstblood.wav\"");
msg (player(killer,"name").." sheds FIRST BLOOD by killing "..player(victim,"name").."!")
end
-- HUMILIATION? (KNIFEKILL)
if (weapon==50) then
-- HUMILIATION!
parse("sv_sound \"fun/killingspree.wav\"");
msg (player(killer,"name").." Kill "..player(victim,"name").." With a Knife wow!")
else
-- REGULAR KILL
if (level==1) then
-- Single Kill! Nothing Special!
elseif (level==2) then
parse("sv_sound \"fun/doublekill.wav\"");
msg (player(killer,"name").." made a Doublekill!")
elseif (level==3) then
parse("sv_sound \"fun/multikill.wav\"")
msg (player(killer,"name").." made a Multikill!")
elseif (level==4) then
parse("sv_sound \"fun/ultrakill.wav\"")
msg (player(killer,"name").." made an UULTRAAKILL!")
elseif (level==5) then
parse("sv_sound \"fun/unstoppable.wav\"")
msg (player(killer,"name").." made a UNSTAPPABLE!")
elseif (level==6) then
parse("sv_sound \"fun/monsterkill.wav\"")
msg (player(killer,"name").." made a MO-O-O-O-ONSTERKILL-ILL-ILL!")
else
parse("sv_sound \"fun/rampage.wav\"")
msg (player(killer,"name").." is RAMPAGE! "..level.." KILLS!")
end
end
end
parse("mp_timelimit 99")
parse("sv_gamemode 5")
parse("mp_wpndmg XM1014 50")
parse("mp_wpndmg Chainsaw 100")
parse("mp_wpndmg Knife 200")
parse("mp_wpndmg Claw 1")
parse('mp_building_limit "dispenser" 99999')
parse('mp_building_limit "turret" 99999')
parse('mp_building_limit "supply" 99999')
parse('mp_building_limit "gate field" 99999')
parse('mp_building_limit "wall I" 99999')
parse('mp_building_limit "wall II" 99999')
parse('mp_building_limit "wall III" 99999')
parse('mp_building_limit "barbed wire" 100')
parse('mp_building_limit "Barricade" 100')
parse('mp_building_limit "teleporter exit" 1')
parse('mp_building_limit "teleporter entrance" 99999')
addhook("build","no_site")
function no_site(id,type)
if (type == 21) then
return 0
else
return 1
end
end
buildingmoney = {300,500,1000,2000,3000,1500,5000,3000}
addhook("build","no_sitenow")
function no_sitenow(id,type,x,y)
if (type == 21) then
return 0
else
parse("spawnobject "..type.." "..x.." "..y.." 90 1 "..player(id,"team").." "..id)
end
end
addhook("build","money_loose")
function money_loose(id,type)
if (type == 1) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[1])
elseif (type == 2) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[2])
elseif (type == 3) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[3])
elseif (type == 4) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[4])
elseif (type == 5) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[5])
elseif (type == 6) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[6])
elseif (type == 7) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[7])
elseif (type == then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[7])
elseif (type == 9) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[7])
elseif (type == 13) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[8])
elseif (type == 14) then
parse("setmoney "..id.." "..player(id,"money")-buildingmoney[8])
end
end