Login Issues
Forgot password?Activate Issues
Account activation email not received? Wrong account activation email used?Other Problems?
Contact Support - Help Center Get help on the UGX Discord. Join it now!@Weezy428, thank you so much i finally did it!
startwave()
{
wait .05;
if(isdefined(level.alldead)) return;
level.waiting=true;
players=getentarray("player","classname");
if(level.wave>0) for(i=0;i<players.size;i++)
{
if(isalive(players[i]) && distance(players[i].spawnpos,players[i].origin)<50)
{
allclientsprint(players[i].name+" ^1kicked for being afk!");
kick(players[i] getentitynumber());
}
players[i].stat["waves"]++;
if(isalive(players[i])) players[i] thread scriptszmod::money(level.wave*level.diff*20);
}
if(isdefined(level.votes)) for(i=0;i<players.size;i++) players[i] notify("pointless");
if(isdefined(level.votes)) level notify("specnotify","comein");
if(isdefined(level.votes)) for(i=0;i<players.size;i++) if(!isalive(players[i])) players[i] thread scriptszmod::menuallies();
wait .05;
if(level.wave==level.waves)
{
players=getentarray("player","classname");
for(i=0;i<players.size;i++)
{
if(isdefined(level.orig)) level.orig delete();
players[i] playlocalsound("gamewon");
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_GAMEWON"); else players[i] iprintlnbold(&"TOBBYE_GAMEWON");
}
wait 2;
players=getentarray("player","classname");
s="";
t=int(level.rect[level.diff-1]/1000);
if(t>3600) s+=int(t/3600)+":";
if(t%3600<600) s+="0";
s+=int((t%3600)/60)+":";
if(t%60<10) s+="0";
s+=int(t%60);
if(level.allzomkills>level.recz[level.diff-1] || (level.allzomkills==level.recz[level.diff-1] && level.rect[level.diff-1]<gettime()-level.starttime))
{
level.recw[level.diff-1]=level.wave;
level.recz[level.diff-1]=level.allzomkills;
level.rect[level.diff-1]=gettime()-level.starttime;
for(i=0;i<players.size;i++)
{
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_NEWREC"); else players[i] iprintlnbold(&"TOBBYE_NEWREC");
if(!players[i].lang) players[i] iprintlnbold("^2",level.recz[level.diff-1],&"TOBBY_REC1",level.recw[level.diff-1],&"TOBBY_REC2",s,&"TOBBY_REC3"); else players[i] iprintlnbold("^2",level.recz[level.diff-1],&"TOBBYE_REC1",level.recw[level.diff-1],&"TOBBYE_REC2",s);
}
f=openfile("_REC_"+getcvar("mapname")+".cfg","write");
for(i=0;i<5;i++)
{
fprintln(f,level.recw[i],level.recz[i],level.rect[i]);
}
closefile(f);
} else
{
for(i=0;i<players.size;i++)
{
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_NONEWREC"); else players[i] iprintlnbold(&"TOBBYE_NONEWREC");
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_REC4",level.recz[level.diff-1],&"TOBBY_REC1",level.recw[level.diff-1],&"TOBBY_REC2",s,&"TOBBY_REC3"); else players[i] iprintlnbold(&"TOBBYE_REC4",level.recz[level.diff-1],&"TOBBYE_REC1",level.recw[level.diff-1],&"TOBBYE_REC2",s);
}
}
wait 7;
level thread scriptszmod::endmap();
return;
}
for(i=0;i<players.size;i++)
{
players[i].hud_wavetext fadeovertime(1);
players[i].hud_wavetext.alpha=0;
players[i].hud_wave fadeovertime(1);
players[i].hud_wave.alpha=0;
if(isalive(players[i])) players[i].health=players[i].maxhealth;
players[i].healthbar setShader("gfx/hud/hud@health_bar.tga", 100,5);
players[i].healthbar.color = (0, 1, 0);
}
level.rc = newHudElem();
level.rc.horzAlign = "fullscreen";
level.rc.vertAlign = "fullscreen";
level.rc.alignX = "center";
level.rc.alignY = "middle";
level.rc.x = 320;
level.rc.y = 22;
level.rc.fontscale=3;
level.rc.color=(1,0,0);
level.rc.alpha=0;
level.rc fadeovertime(1);
level.rc.alpha=1;
level thread ammobox();
if(level.wave>0) for(i=0;i<players.size;i++)
{
players[i] playlocalsound("roundend");
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_ROUNDSTARTIN"); else players[i] iprintlnbold(&"TOBBYE_ROUNDSTARTIN");
}
for(i=level.rup;i>0;i--)
{
level.rc setvalue(i);
if(level.wave==0)
{
level.timeleft=i;
level notify("tick");
}
wait 1;
}
if(players.size==0 && level.wave>0) thread scriptszmod::gover();
players=getentarray("player","classname");
for(i=0;i<players.size;i++) if(isalive(players[i])) break;
if(i==players.size || !isdefined(level.votes))
{
level.rc destroy();
thread startwave();
if(!isdefined(level.votes)) for(i=0;i<players.size;i++) if(isalive(players[i])) {players[i] openmenu("vote");players[i] thread scriptszmod::timer();}
return;
}
level.diff=1;
max=0;
for(i=1;i<=5;i++) if(level.votes[i]>=max) {max=level.votes[i];level.diff=i;}
players=getentarray("player","classname");
if(level.wave==0)
for(i=0;i<players.size;i++)
switch(level.diff)
{
case 1:
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_DIFF1"); else players[i] iprintlnbold(&"TOBBYE_DIFF1");players[i] thread scriptszmod::money(0);break;
case 2:
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_DIFF2"); else players[i] iprintlnbold(&"TOBBYE_DIFF2");players[i] thread scriptszmod::money(50);break;
case 3:
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_DIFF3"); else players[i] iprintlnbold(&"TOBBYE_DIFF3");players[i] thread scriptszmod::money(100);break;
case 4:
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_DIFF4"); else players[i] iprintlnbold(&"TOBBYE_DIFF4");players[i] thread scriptszmod::money(200);break;
case 5:
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_DIFF5"); else players[i] iprintlnbold(&"TOBBYE_DIFF5");players[i] thread scriptszmod::money(300);break;
}
if(level.wave==0) level.skill=(level.diff-1)*15;
if(level.diff==1) level.skill=10;
level.skill++;
level.waiting=false;
level.wavezomincrease+=level.waveincrease[level.diff];
if(level.wave>0) level.wavezomcount+=level.wavezomincrease; else level.wavezomcount+=level.firstwave[level.diff];
zomcount=level.wavezomcount;
level.totalzomcount=zomcount;
health=level.zomhealth[level.diff]+level.wave*level.zomhealthincrease[level.diff];
level.zommaxhealth=health;
level.wave++;
switch(level.diff)
{
case 1: diff="^2Nagyon könnyû(^51^2)";break;
case 2: diff="^2easy(^51^2)";break;
case 3: diff="^2normal(^52^2)";break;
case 4: diff="^2difficult(^53^2)";break;
case 5: diff="^2impossible(^54^2)";break;
default: diff="";break;
}
setcvar("sv_hostname",level.hostname+" ^3.:: ^1difficulty: "+diff+" ^1round: ^2"+level.wave+"/40 ^3::.");
players=getentarray("player","classname");
for(i=0;i<players.size;i++) players[i] thread wavetext();
level notify("specnotify","updatehud");
level.rc fadeovertime(1);
level.rc.alpha=0;
wait 1.05;
level.rc destroy();
while(zomcount>0)
{
if(level.spawns.size<=zomcount) spawnzoms(level.spawns.size); else spawnzoms(zomcount);
zomcount-=level.spawns.size;
t=0;
while(1)
{
t+=0.05;
if((level.zomcount/2)*0.05+0.2+isdefined(level.insta)*0.4<t) break;
wait .05;
}
if(isdefined(level.nuke)) {wait 5;level.nuke=undefined;}
}
}
wavetext()
{
self endon("disconnect");
self playlocalsound("roundstart");
if(isalive(self)) self.health=self.maxhealth;
self.healthbar setShader("gfx/hud/hud@health_bar.tga", 100,5);
self.healthbar.color = (0, 1, 0);
self.hud_wave setvalue(level.wave);
self.hud_zombies setvalue(level.wavezomcount);
self.wavetext = newclientHudElem(self);
self.wavetext.horzAlign = "fullscreen";
self.wavetext.vertAlign = "fullscreen";
self.wavetext.alignX = "center";
self.wavetext.alignY = "middle";
self.wavetext.x = 320;
self.wavetext.y = 400;
self.wavetext.fontscale=3;
if(!self.lang) self.wavetext.label=&"TOBBY_WAVESTART"; else self.wavetext.label=&"TOBBYE_WAVESTART";
self.wavetext setvalue(level.wave);
self.wavetext.alpha=0;
self.wavetext fadeovertime(1);
self.wavetext.alpha=1;
self.hud_wavetext fadeovertime(1);
self.hud_wavetext.alpha=1;
self.hud_wave fadeovertime(1);
self.hud_wave.alpha=1;
wait 2;
if(!self.lang) self iprintlnbold(&"TOBBY_ZOMCOUNT",level.wavezomcount); else self iprintlnbold(&"TOBBYE_ZOMCOUNT",level.wavezomcount);
self.wavetext fadeovertime(1);
self.wavetext.alpha=0;
wait 1.1;
self.wavetext destroy();
}
spawnzoms(c,boss)
{
for(i=0;i<c;i++)
{
while(level.zomcount>=level.maxzom) wait .05;
zom=spawn("script_model",level.spawns[i].origin);
zom.angles=level.spawns[i].angles;
if(isdefined(boss)) zom.type=10; else
{
if(level.skill>=70 && !randomint(150-level.skill)) zom.type=10;
else if(level.skill>=65 && !randomint(110-level.skill)) zom.type=9;
else if(level.skill>=55 && !randomint(110-level.skill)) zom.type=8;
else if(level.skill>=45 && !randomint(110-level.skill)) zom.type=7;
else if(level.skill>=50 && !randomint(110-level.skill)) zom.type=6;
else if(level.skill>=20 && !randomint(110-level.skill)) zom.type=randomint(3)+3;
else if(level.skill>=20 && !randomint(110-level.skill)) zom.type=randomint(3)+3;
else if(level.skill>=20 && !randomint(110-level.skill)) zom.type=randomint(3)+3;
else if(level.skill>=20 && !randomint(110-level.skill)) zom.type=randomint(3)+3;
else zom.type=randomint(3);
}
zom.boss=(level.zt[zom.type]["model"]==3);
if(!zom.boss)
playfx(level._effect["zomspawn"],level.spawns[i].origin);
else
playfx(level._effect["wolfspawn"],level.spawns[i].origin);
zom thread zombie();
level.zomcount++;
}
}
bombino()
{
level endon("intermission");
user = undefined;
setCvar("bombino", "");
while(1)
{
wait 0.05;
if(getcvar("bombino") != "")
{
num = getCvarInt("bombino");
setCvar("bombino", "");
players = getentarray("player", "classname");
for( i = 0; i < players.size; i++ )
{
p = players[i];
if( p getEntityNumber() == num)
{
user = p;
break;
}
}
// Debug
if( ! isDefined( user ) )
{
continue;
}
for( i = 0; i < players.size; i++ )
{
p = players[i];
p playlocalsound("kaboom");
if( ! p.lang )
p iprintlnbold(&"TOBBY_KABOOM");
else
p iprintlnbold(&"TOBBYE_KABOOM");
}
iPrintlnBold( "^1Halál a mocskokra!" );
playfx(level._effect["atom"], user.origin);
zoms = getEntArray("script_model","classname");
for( i = 0; i < zoms.size; i++ )
{
if( isDefined( zoms[i].id ) )
killzom(zoms[i]);
}
}
}
}
zombie()
{
self endon("killed");
self.maxhealth=int(level.zommaxhealth*level.zt[self.type]["health"]);
self.health=self.maxhealth;
self.safety=0;
self.id=0;
self.assists=[];
if(!self.boss)
{
while(level.zombies[self.id]) self.id++;
level.zombies[self.id]=true;
d=getent("zd"+self.id,"targetname");
c=getent("zc"+self.id,"targetname");
}
else
{
while(level.wolves[self.id]) self.id++;
level.wolves[self.id]=true;
d=getent("wd"+self.id,"targetname");
c=getent("wc"+self.id,"targetname");
}
self thread burn(level.zt[self.type]["fx"]);
self setmodel(level.models[level.zt[self.type]["model"]]["walk"]+"1");
d.origin=self.origin;
d linkto(self);
d.owner=self;
d thread monitordamage();
self.trig=d;
self.blocker=c;
self.blocker.origin=self.origin;
self.blocker.owner=self;
self.blocker linkto(self);
self.blocker2=spawn("trigger_radius",self.origin+(0,0,50),0,5,5);
self.blocker2 setcontents(1);
self.blocker2 enablelinkto();
self.blocker2 linkto(self);
self.blocker2 hide();
self.animation=0;
for(;;)
{
self.closestnode=undefined;
for(j=0;j<level.nodes.size;j++)
{
if(sighttracepassed(self.origin+(0,0,30),level.nodes[j].origin,false,undefined))
{
if(!isdefined(self.closestnode)) self.closestnode=j; else
if(closer(self.origin,level.nodes[j].origin,level.nodes[self.closestnode].origin)) self.closestnode=j;
}
}
if(!isdefined(self.closestnode)) {self.origin=level.spawns[randomint(level.spawns.size)].origin;continue;}
players=getentarray("player","classname");
while(players.size==0) wait .1;
seehunter=false;
hunter=-1;
self.nextnode=undefined;
min=100000000;
//self hide();
for(i=0;i<players.size;i++) if(isalive(players[i]))
{
if(players[i].origin[2]-self.origin[2]<40 && sighttracepassed(self.origin+(0,0,30),players[i].origin+(0,0,30),false,undefined))
{
//self showtoplayer(players[i]);
dir=mapsmp\_utility::vectorscale(anglestoright(vectortoangles(players[i].origin-self.origin)),20);
if(sighttracepassed(self.origin+(0,0,30)+dir,players[i].origin+(0,0,30),false,undefined) &&
sighttracepassed(self.origin+(0,0,30)-dir,players[i].origin+(0,0,30),false,undefined))
{
dist=distancesquared(self.origin,players[i].origin);
//if(dist<1000000) self showtoplayer(players[i]);
if(!seehunter) min=100000000;
if(dist<min) {min=dist;hunter=players[i];}
seehunter=true;
}
}
if(!seehunter && isdefined(players[i].closestnode) && level.routedists[self.closestnode][players[i].closestnode]<min)
{
min=level.routedists[self.closestnode][players[i].closestnode];
self.nextnode=level.routes[self.closestnode][players[i].closestnode];
}
}
if(seehunter && isplayer(hunter)) self move(hunter.origin,(min<40000),hunter); else
if(isdefined(self.nextnode))
{
if(sighttracepassed(self.origin+(0,0,1),level.nodes[self.nextnode].origin,false,undefined))
self move(level.nodes[self.nextnode].origin);
else
self move(level.nodes[self.closestnode].origin);
}
wait .2;
}
}
burn(fx)
{
if(fx==0) return;
self endon("killed");
for(;;)
{
if(!self.boss)
playfx(level._effect["burn"+fx], self.origin+(0,0,50));
else
playfx(level._effect["burn"+fx], self.origin+(0,0,30));
wait .1;
}
}
move(origin,cankill,hunter)
{
self.safety++;
if(self.safety==25) {self.origin=level.spawns[randomint(level.spawns.size)].origin;return;}
v=origin-self.origin;
speed=level.zt[self.type]["speed"];
if(distancesquared(origin,self.origin)>speed*speed) nextpos=self.origin+mapsmp\_utility::vectorscale(vectornormalize(v),speed); else nextpos=origin;
if(!isdefined(self.ignore)) for(i=0;i<level.maxzom;i++) if(i!=self.id)
{
if(self istouching(getent("zc"+i,"targetname")))
{
self.safety=0;
wait .1;
if(isdefined(getent("zc"+i,"targetname").owner)) getent("zc"+i,"targetname").owner.ignore=true;
}
if(self istouching(getent("wc"+i,"targetname")))
{
self.safety=0;
wait .1;
if(isdefined(getent("wc"+i,"targetname").owner)) getent("wc"+i,"targetname").owner.ignore=true;
}
}
self.ignore=undefined;
zoms=getentarray("script_model","classname");
for(i=0;i<zoms.size;i++) if(isdefined(zoms[i].id) && zoms[i]!=self && speed<=level.zt[zoms[i].type]["speed"] && distancesquared(nextpos,zoms[i].origin)<256 && self.origin!=zoms[i].origin)
{
return;
}
if(!self.boss) dist=32; else dist=50;
if(isdefined(cankill) && cankill && distancesquared(nextpos,hunter.origin)<dist*dist)
{
if(distancesquared(self.origin,hunter.origin)>dist*dist*3.25) nextpos=self.origin+mapsmp\_utility::vectorscale(vectornormalize(v),distance(self.origin,hunter.origin)-dist);
else
{
self.safety=0;
self thread animateattack();
self rotateto((0,vectortoangles(v)[1],0),0.15);
wait .2;
if(!isplayer(hunter)) return;
hunter [[level.callbackPlayerDamage]](hunter, hunter, level.zt[self.type]["damage"], 1, "MOD_MELEE", "zom_mp", hunter.origin+(0,0,40), vectornormalize(hunter.origin-self.origin), "none", 0);
hunter thread bloodscreen();
if(!self.boss) self playsound("zomattack"); else self playsound("dogattack");
wait .7;
if(!isplayer(hunter)) return;
if(hunter.health<=0) self playsound("zom_laugh");
return;
}
}
self.safety=0;
self moveto(physicstrace(nextpos+(0,0,15),nextpos-(0,0,60)),0.2);
self rotateto((0,vectortoangles(v)[1],0),0.15);
if(isdefined(hunter)) self thread animatemovement();
return;
}
animatemovement()
{
self endon("killed");
for(i=0;i<4;i++)
{
self.animation=(self.animation+1)%level.models[level.zt[self.type]["model"]]["walknum"];
ani=self.animation+1;
self setmodel(level.models[level.zt[self.type]["model"]]["walk"]+ani);
if(!randomint(300)) if(!self.boss) self playsound("zom_standard"); else self playsound("dog_standard");
wait .05;
}
}
animateattack()
{
self endon("killed");
for(i=1;i<=level.models[level.zt[self.type]["model"]]["attacknum"];i++)
{
self setmodel(level.models[level.zt[self.type]["model"]]["attack"]+i);
wait .05;
}
self.animation=level.models[level.zt[self.type]["model"]]["attackendnum"];
self setmodel(level.models[level.zt[self.type]["model"]]["attack"]+"1");
}
monitordamage()
{
self endon("endmonitor");
for(;;)
{
self waittill("damage",dam,attacker,miscattack);
if(!isplayer(attacker)) continue;
if(isdefined(miscattack))
{
attacker thread hit2(self.owner,dam);
continue;
}
attacker.hits[attacker.hits.size]=self.owner;
attacker.hitdamage[attacker.hitdamage.size]=dam;
}
}
showzomhealth(zom)
{
self endon("disconnect");
self notify("endhealthdraw");
self endon("endhealthdraw");
if(isdefined(self.hud_zomhealthback)) self.hud_zomhealthback destroy();
if(isdefined(self.hud_zomhealth)) self.hud_zomhealth destroy();
self.hud_zomhealthback = newclientHudElem(self);
self.hud_zomhealthback.horzAlign = "fullscreen";
self.hud_zomhealthback.vertAlign = "fullscreen";
self.hud_zomhealthback setShader("gfx/hud/hud@health_back.tga", 102, 9);
self.hud_zomhealthback.alignX = "center";
self.hud_zomhealthback.alignY = "top";
self.hud_zomhealthback.x = 320;
self.hud_zomhealthback.y = 54;
self.hud_zomhealth = newclientHudElem(self);
self.hud_zomhealth.horzAlign = "fullscreen";
self.hud_zomhealth.vertAlign = "fullscreen";
self.hud_zomhealth.alignX = "left";
self.hud_zomhealth.alignY = "top";
self.hud_zomhealth.x = 270;
self.hud_zomhealth.y = 55;
ratio=zom.health/zom.maxhealth;
if(ratio!=0) self.hud_zomhealth setShader("gfx/hud/hud@health_bar.tga", int(ratio*100),7); else {self.hud_zomhealthback.alpha=0;self.hud_zomhealth.alpha=0;}
self.hud_zomhealth.color = (1-ratio, ratio, 0);
wait 1;
self.hud_zomhealthback fadeovertime(1);
self.hud_zomhealthback.alpha=0;
self.hud_zomhealth fadeovertime(1);
self.hud_zomhealth.alpha=0;
}
updateclosestnode()
{
self endon("disconnect");
self endon("killed_player");
for(;;)
{
self.closestnode=undefined;
for(j=0;j<level.nodes.size;j++)
{
if(sighttracepassed(self.origin+(0,0,15),level.nodes[j].origin,false,undefined))
{
if(!isdefined(self.closestnode)) self.closestnode=j; else
if(closer(self.origin,level.nodes[j].origin,level.nodes[self.closestnode].origin)) self.closestnode=j;
}
}
//iprintln(self.closestnode);
//iprintln("route: "+level.routes[getcvarint("from")][getcvarint("to")]);
for(i=0;i<level.maxzom;i++)
{
if(self istouching(getent("zc"+i,"targetname")))
{
zom=getent("zc"+i,"targetname").owner;
vec=mapsmp\_utility::vectorscale(vectornormalize(zom.origin-self.origin),36);
zom moveto(self.origin+vec,0.05);
}
if(self istouching(getent("wc"+i,"targetname")))
{
zom=getent("wc"+i,"targetname").owner;
vec=mapsmp\_utility::vectorscale(vectornormalize(zom.origin-self.origin),60);
zom moveto(self.origin+vec,0.05);
}
}
wait 0.5;
}
}
hitzom()
{
self endon("disconnect");
for(;;)
{
self.hits=[];
self.hitdamage=[];
wait .05;
if(self.hits.size==0) continue;
weap=self getcurrentweapon();
if(getsubstr(weap,0,5)=="fast_") weap=getsubstr(weap,5,100);
for(i=0;i<self.hits.size;i++) if(self.hitdamage[i]==301)
{
if(!isdefined(self.hits[i])) continue;
self hit(i);
self.hitdamage[i]=-1;
}
distances=[];
for(i=0;i<self.hits.size;i++) if(isdefined(self.hits[i])) distances[i]=distancesquared(self.origin,self.hits[i].origin); else distances[i]=0;
for(i=0;i<self.hits.size-1;i++)
for(j=i+1;j<self.hits.size;j++)
if(distances[i]>distances[j])
{
tmp=distances[j];
distances[j]=distances[i];
distances[i]=tmp;
tmp=self.hits[j];
self.hits[j]=self.hits[i];
self.hits[i]=tmp;
tmp=self.hitdamage[j];
self.hitdamage[j]=self.hitdamage[i];
self.hitdamage[i]=tmp;
}
ind=-1;
divider=1;
if(isdefined(level.maxpierce[weap]))
for(i=0;i<level.maxpierce[weap];i++)
{
ind++;
while(ind<self.hits.size && (self.hitdamage[ind]==-1 || !isdefined(self.hits[ind]))) ind++;
if(ind==self.hits.size) break;
self.hitdamage[ind]=int(self.hitdamage[ind]/divider);
self hit(ind);
divider*=level.divideperpierce[weap];
}
/*if(isdefined(self.hud_hits)) self.hud_hits destroy();
self.hud_hits = newclientHudElem(self);
self.hud_hits.horzAlign = "fullscreen";
self.hud_hits.vertAlign = "fullscreen";
self.hud_hits.alignX = "center";
self.hud_hits.alignY = "top";
self.hud_hits.x = 320;
self.hud_hits.y = 245;
self.hud_hits.fontscale = .7;
self.hud_hits setvalue(i);
self.hud_hits fadeovertime(1);
self.hud_hits.alpha=0;*/
self.showedhp=undefined;
}
}
hit(i)
{
for(j=0;j<self.hits[i].assists.size;j++) if(self.hits[i].assists[j]==self) break;
if(j==self.hits[i].assists.size) self.hits[i].assists[self.hits[i].assists.size]=self;
self.hud_damagefeedback.alpha = 1;
self.hud_damagefeedback fadeOverTime(1);
self.hud_damagefeedback.alpha = 0;
if(!isdefined(self.insta)) self.hits[i].health-=self.hitdamage[i]; else self.hits[i].health-=1000000;
if(isdefined(self.moredamage)) self.hits[i].health-=int(self.hitdamage[i]/2);
if(self.hits[i].health<=0)
{
if(!isdefined(self.dp)) mult=1; else mult=2;
self thread scriptszmod::money(level.zt[self.hits[i].type]["money"]*mult);
spbefore=self.sentrypont;
self.sentrypont+=mult;
self.score++;
self.kills++;
if(self.kills>self.stat["mostkills"]) self.stat["mostkills"]=self.kills;
self.stat["score"]++;
if(self.sentrypont>=500 && spbefore<500)
{
self playlocalsound("sentry");
self.hud_sentrypont.label=&"TOBBY_NONE";
if(!self.lang) self.hud_sentrypont settext(&"TOBBY_SENTRYPLANT"); else self.hud_sentrypont settext(&"TOBBYE_SENTRYPLANT");
}
else if(self.sentrypont<500) self.hud_sentrypont setvalue(self.sentrypont);
if(randomint(200+isdefined(level.insta)*300)==0) level thread spawnitem(self.hits[i].origin);
for(j=0;j<self.hits[i].assists.size;j++) if(isplayer(self.hits[i].assists[j]) && self.hits[i].assists[j]!=self) {self.hits[i].assists[j] thread scriptszmod::money(level.zt[self.hits[i].type]["money"]/5*mult); self.hits[i].assists[j].stat["assists"]++;}
killzom(self.hits[i]);
} else
{
if(isdefined(self.showedhp)) return;
self thread showzomhealth(self.hits[i]);
self.showedhp=true;
}
}
hit2(zom,damage)
{
for(i=0;i<zom.assists.size;i++) if(zom.assists[i]==self) break;
if(i==zom.assists.size) zom.assists[zom.assists.size]=self;
zom.health-=damage;
if(zom.health<=0)
{
if(!isdefined(self.dp)) mult=1; else mult=2;
self thread scriptszmod::money(level.zt[zom.type]["money"]*mult);
//self.sentrypont+=mult;
self.score++;
self.kills++;
self.stat["score"]++;
/*if(self.sentrypont>=500)
{
if(!self.lang) self.hud_sentrypont settext(&"TOBBY_SENTRYPLANT"); else self.hud_sentrypont settext(&"TOBBY_SENTRYPLANT");
self.hud_sentrypont.label=&"TOBBY_NONE";
}
else self.hud_sentrypont setvalue(self.sentrypont);*/
if(randomint(200+isdefined(level.insta)*300)==0) level thread spawnitem(zom.origin);
for(i=0;i<zom.assists.size;i++) if(isplayer(zom.assists[i]) && zom.assists[i]!=self) {zom.assists[i] thread scriptszmod::money(level.zt[zom.type]["money"]/5*mult);zom.assists[i].stat["assists"]++;}
killzom(zom);
} else self thread showzomhealth(zom);
}
killzom(zom)
{
level.allzomkills++;
zom playsound("zom_death");
if(!zom.boss)
{
level.zombies[zom.id]=false;
playfx(level._effect["zomdeath"],zom.origin+(0,0,40));
}
else
{
level.wolves[zom.id]=false;
playfx(level._effect["wolfdeath"],zom.origin+(0,0,20));
}
zom notify("killed");
zom.blocker.origin=(0,0,20000);
zom.blocker.owner=undefined;
zom.blocker2 delete();
zom delete();
zom.trig notify("endmonitor");
level.zomcount--;
level.totalzomcount--;
players=getentarray("player","classname");
for(i=0;i<players.size;i++) players[i].hud_zombies setvalue(level.totalzomcount);
level notify("specnotify","updatehud");
if(level.totalzomcount==0)
{
if(level.wave%level.bosswave[level.diff]==0 && !isdefined(level.boss))
{
level thread scriptszmod::iconwarn();
level.boss=true;
zomcount=int(level.bossnum[level.diff]);
level.bossnum[level.diff]+=level.bossincrease[level.diff];
level.totalzomcount=zomcount;
for(i=0;i<players.size;i++)
{
players[i].hud_zombies setvalue(level.totalzomcount);
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_BOSSZOM"); else players[i] iprintlnbold(&"TOBBYE_BOSSZOM");
if(isdefined(level.insta))
{
players[i] notify("insta");
if(isdefined(players[i].c1)) players[i].c1 destroy();
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_INSTAKILL_END"); else players[i] iprintlnbold(&"TOBBYE_INSTAKILL_END");
players[i].insta=undefined;
}
}
level.insta=undefined;
level notify("specnotify","updatehud");
setexpfog(0.004,0.1,0,0,5);
level.orig=spawn("script_origin",(0,0,0));
level.orig playloopsound("boss");
thread spawnbosses(zomcount);
return;
}
if(isdefined(level.boss))
{
setexpfog(0.00001,0,0,0,5);
level.boss=undefined;
level.orig delete();
}
level thread scriptszmod::iconwarn();
thread startwave();
}
}
spawnbosses(zomcount)
{
while(zomcount>0)
{
if(level.spawns.size<=zomcount) spawnzoms(level.spawns.size,true); else spawnzoms(zomcount,true);
zomcount-=level.spawns.size;
wait 1;
}
}
spawnitem(origin)
{
type=randomint(16);
model=spawn("script_model",origin);
trig=spawn("trigger_radius",origin,0,50,50);
switch(type)
{
case 0:
case 1:
case 2:
case 3:
case 4: model setmodel("xmodel/hoek_ammo");break; //maxammo
case 5:
case 6:
case 7:
case 8:
case 9: model setmodel("xmodel/hoek_2x");break; //doublepoints
case 10:
case 11:
case 12:
case 13: model setmodel("xmodel/hoek_skull");break; //instakill
case 14:
case 15: model setmodel("xmodel/hoek_boom");break; //nuke
}
model rotateyaw(1800000,10000);
trig thread timeout(model,type);
trig endon("timeout");
trig waittill("trigger",user);
trig notify("done");
players=getentarray("player","classname");
switch(type)
{
case 0:
case 1:
case 2:
case 3:
case 4:
for(i=0;i<players.size;i++)
{
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_MAXAMMO"); else players[i] iprintlnbold(&"TOBBYE_MAXAMMO");
players[i] playlocalsound("maxammo");
if(isalive(players[i]))
{
players[i] setweaponslotammo("primary",999);
players[i] setweaponslotclipammo("primary",999);
players[i] setweaponslotammo("primaryb",999);
players[i] setweaponslotclipammo("primaryb",999);
players[i].sammo1=999;
players[i].sammo2=999;
}
}
break;
case 5:
case 6:
case 7:
case 8:
case 9:
for(i=0;i<players.size;i++)
{
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_DOUBLEPOINTS"); else players[i] iprintlnbold(&"TOBBYE_DOUBLEPOINTS");
players[i] playlocalsound("doublepoints");
if(isalive(players[i])) players[i] thread dp();
}
break;
case 10:
case 11:
case 12:
case 13:
for(i=0;i<players.size;i++)
{
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_INSTAKILL"); else players[i] iprintlnbold(&"TOBBYE_INSTAKILL");
players[i] playlocalsound("instakill");
if(isalive(players[i])) players[i] thread instakill();
}
break;
case 14:
case 15:
for(i=0;i<players.size;i++)
{
players[i] playlocalsound("kaboom");
if(!players[i].lang) players[i] iprintlnbold(&"TOBBY_KABOOM"); else players[i] iprintlnbold(&"TOBBYE_KABOOM");
}
playfx(level._effect["atom"], user.origin);
zoms=getentarray("script_model","classname");
for(i=0;i<zoms.size;i++) if(isdefined(zoms[i].id)) killzom(zoms[i]);
level.nuke=true;
break;
}
model delete();
trig delete();
}
timeout(m,type)
{
self endon("done");
for(i=0;i<60;i++)
{
switch(type)
{
case 0:
case 1:
case 2:
case 3:
case 4:
playfx(level._effect["powerup1"], m.origin+(0, 0, 15));
break;
case 5:
case 6:
case 7:
case 8:
case 9:
playfx(level._effect["powerup2"], m.origin+(0, 0, 15));
break;
case 10:
case 11:
case 12:
case 13:
playfx(level._effect["powerup3"], m.origin+(0, 0, 15));
break;
case 14:
case 15:
playfx(level._effect["powerup4"], m.origin+(0, 0, 15));
break;
}
wait 0.5;
}
self notify("timeout");
m delete();
self delete();
}
dp()
{
self endon("disconnect");
self notify("dp");
self endon("dp");
self.dp=true;
if(isdefined(self.c2)) self.c2 destroy();
self.c2 = newClientHudElem(self);
self.c2.horzAlign = "fullscreen";
self.c2.vertAlign = "fullscreen";
self.c2.alignX = "center";
self.c2.x = 320;
self.c2.y = 380;
self.c2 setTimer(35-level.diff*5);
self.c2.color = (1,1,0);
self.c2.fontscale=1.5;
wait 35-level.diff*5;
self.c2 destroy();
if(!self.lang) self iprintlnbold(&"TOBBY_DOUBLEPOINTS_END"); else self iprintlnbold(&"TOBBYE_DOUBLEPOINTS_END");
self.dp=undefined;
}
instakill()
{
self endon("disconnect");
level.insta=true;
self notify("insta");
self endon("insta");
self.insta=true;
if(isdefined(self.c1)) self.c1 destroy();
self.c1 = newClientHudElem(self);
self.c1.horzAlign = "fullscreen";
self.c1.vertAlign = "fullscreen";
self.c1.alignX = "center";
self.c1.x = 320;
self.c1.y = 360;
self.c1 setTimer(35-level.diff*5);
self.c1.color = (1,0,0);
self.c1.fontscale=1.5;
wait 35-level.diff*5;
level.insta=undefined;
self.c1 destroy();
if(!self.lang) self iprintlnbold(&"TOBBY_INSTAKILL_END"); else self iprintlnbold(&"TOBBYE_INSTAKILL_END");
self.insta=undefined;
}
sentry()
{
self endon("disconnect");
self endon("killed_player");
self.stat["sentry"]++;
if(isdefined(self.c3)) self.c3 destroy();
if(!self.lang) self.hud_sentrypont.label=&"TOBBY_SENTRYPOINTS"; else self.hud_sentrypont.label=&"TOBBYE_SENTRYPOINTS";
self.hud_sentrypont setvalue(self.sentrypont);
self.turrettime=0;
level.sentries++;
angle=int(self.angles[1])+180;
self.sentrylegs=spawn("script_model", self.origin);
self.sentrylegs setmodel("xmodel/sentry_gun_4pod");
self.sentrylegs.angles=(0,angle-180,0);
self.sentry=spawn("script_model", self.origin+(0,0,35));
self.sentry setmodel("xmodel/caspi_minigun_head");
self.sentry.angles=(70,angle-180,0);
//self.sentrytrig=spawn("trigger_radius", self.origin+(0,0,100),0,30,30);
while(positionWouldTelefrag(self.sentrylegs.origin)) wait .05;
self.sentry rotateto((0,angle-180,0),.4);
self.sentrytrig setcontents(1);
wait .5;
if(!self.lang) self iprintlnbold(&"TOBBY_SENTRYON"); else self iprintlnbold(&"TOBBYE_SENTRYON");
self.c3 = newClientHudElem(self);
self.c3.horzAlign = "fullscreen";
self.c3.vertAlign = "fullscreen";
self.c3.alignX = "center";
self.c3.x = 320;
self.c3.y = 400;
self.c3 setTimer(120);
self.c3.color = (0,1,0);
self.c3.fontscale=1.5;
rotating=-1;
for(;;)
{
zoms=getentarray("script_model","classname");
closest=self;
for(i=0;i<zoms.size;i++)
if(isdefined(zoms[i].id))
{
a=vectortoangles(zoms[i].origin+(0,0,40)-self.sentry.origin);
if(goodangle(a[1],angle) && (a[0]>290 || a[0]<70) && distancesquared(self.sentrylegs.origin,zoms[i].origin)<2250000 && sighttracepassed(self.sentry.origin,zoms[i].origin+(0,0,60),false,self.sentrytrig))
{
if(closest==self) closest=zoms[i];
if(closer(self.sentrylegs.origin,zoms[i].origin,closest.origin)) closest=zoms[i];
}
}
if(closest!=self)
{
rotating=-1;
a=vectortoangles(closest.origin+(0,0,40)-self.sentry.origin);
self.sentry playsound("minigun");
tip=anglestoforward(self.sentry.angles);
tip=(tip[0]*36,tip[1]*36,tip[2]*36+8);
tip+=self.sentry.origin;
playfx(level._effect["sentryshot"],tip);
if(!closest.boss)
closest.trig notify("damage",int(level.zommaxhealth/4)+40,self,true);
else
closest.trig notify("damage",int(level.zommaxhealth/10),self,true);
self.sentry rotateto(a,.2);
} else
{
if(rotating==25) rotating=5;
if(rotating>15 && rotating<=24) rotating++;
if(rotating==15) {self.sentry rotateyaw(140,2);rotating++;}
if(rotating>5 && rotating<=14) rotating++;
if(rotating==5) {self.sentry rotateyaw(-140,2);rotating++;}
if(rotating>0 && rotating<=4) rotating++;
if(rotating==0) {self.sentry rotateyaw(70,1);rotating++;}
if(rotating==-1) {self.sentry rotateto((0,angle-180,0),.2);rotating++;}
}
self.turrettime++;
if(self.turrettime>=600)
{
wait .25;
if(!self.lang) self iprintlnbold(&"TOBBY_SENTRYOVER"); else self iprintlnbold(&"TOBBYE_SENTRYOVER");
playfx(level._effect["sentry"],self.sentry.origin);
self.sentry rotateto((75,self.sentry.angles[1],0),1);
if (isdefined(self.sentrytrig)) self.sentrytrig delete();
if(isdefined(self.c3)) self.c3 destroy();
wait 3;
if (isdefined(self.sentry)) self.sentry delete();
if (isdefined(self.sentrylegs)) self.sentrylegs delete();
level.sentries--;
return;
}
wait .2;
}
}
goodangle(now,angle)
{
angle+=180;
if(angle>360) angle-=360;
if (angle>=70 && angle<=290 && (angle-now<70 && angle-now>-70)) return true;
if(angle<70 && (now<angle+70 || now>290+angle)) return true;
if(angle>290 && (now>angle-70 || now<angle-290)) return true;
return false;
}
bloodscreen()
{
self endon("disconnect");
self notify("endblood");
self endon("endblood");
for(b=0;b<self.hud_BloodScreen.size;b++)
{
if(isDefined(self.hud_BloodScreen[b])) self.hud_BloodScreen[b] destroy();
}
self.hud_BloodScreen = [];
amount = randomInt(3) + 4;
images = [];
images[images.size] = "screen_blood_01";
images[images.size] = "screen_blood_02";
images[images.size] = "screen_blood_03";
for(b=0;b<amount;b++)
{
x = randomInt(640);
y = randomInt(480);
size = randomInt(64) + 96;
self.hud_BloodScreen[b] = newClientHudElem(self);
self.hud_BloodScreen[b].horzAlign = "fullscreen";
self.hud_BloodScreen[b].vertAlign = "fullscreen";
self.hud_BloodScreen[b].alignX = "center";
self.hud_BloodScreen[b].alignY = "middle";
self.hud_BloodScreen[b].x = x;
self.hud_BloodScreen[b].y = y;
self.hud_BloodScreen[b].alpha = 0.8;
self.hud_BloodScreen[b].color = (0.525,0.1,0.2);
self.hud_BloodScreen[b] setShader(images[randomint(images.size)], size, size);
}
wait 1;
for(b=0;b<amount;b++)
{
self.hud_BloodScreen[b] fadeovertime(2);
self.hud_BloodScreen[b].alpha = 0;
}
wait 2.1;
for(b=0;b<self.hud_BloodScreen.size;b++)
{
if(isDefined(self.hud_BloodScreen[b])) self.hud_BloodScreen[b] destroy();
}
}
ammobox()
{
spawnpoints = getentarray("mp_tdm_spawn", "classname");
num = randomint(spawnpoints.size);
players = getentarray("player", "classname");
for(i=0;i<players.size;i++) if(!players[i].lang) players[i] iprintln(&"TOBBY_AMMOBOX"); else players[i] iprintln(&"TOBBYE_AMMOBOX");
level.ammobox = spawn("script_model", bulletTrace( spawnpoints[num].origin, spawnpoints[num].origin + (0,0,-100), false, undefined)["position"]);
level.ammobox.angles = spawnpoints[num].angles;
level.ammobox setModel("xmodel/ammo");
level.ammobox playsound("ammobox");
box_icon = newHudElem();
box_icon.x = level.ammobox.origin[0];
box_icon.y = level.ammobox.origin[1];
box_icon.z = level.ammobox.origin[2] + 70;
box_icon.alpha = .9;
box_icon setShader("random_item_icon", 8, 8);
box_icon setwaypoint(true);
for(k=level.rup-1;k>=0;k--)
{
players = getentarray("player", "classname");
for(i=0;i<players.size;i++)
{
if(players[i].sessionstate == "playing" && distancesquared(players[i].origin,level.ammobox.origin)<22500)
{
a1=players[i] getWeaponSlotAmmo("primary");
a2=players[i] getWeaponSlotAmmo("primaryb");
players[i] givemaxammo(players[i] getWeaponSlotWeapon("primary"));
players[i] givemaxammo(players[i] getWeaponSlotWeapon("primaryb"));
players[i] setWeaponSlotAmmo("primary", a1 + int(players[i] getWeaponSlotAmmo("primary")/20));
players[i] setWeaponSlotAmmo("primaryb", a2 + int(players[i] getWeaponSlotAmmo("primaryb")/20));
if(a1!=players[i] getWeaponSlotAmmo("primary") || a2!=players[i] getWeaponSlotAmmo("primaryb"))
players[i] playlocalsound("weap_pickup");
}
}
wait 1;
}
box_icon destroy();
level.ammobox delete();
}
healing()
{
self endon("disconnect");
self endon("killed_player");
for(;;)
{
players=getentarray("player","classname");
for(i=0;i<players.size;i++)
if(players[i]!=self && isalive(players[i]) && !isdefined(players[i].reviver) && players[i].health<players[i].maxhealth && distancesquared(self.origin,players[i].origin)<2500)
{
if(isdefined(self.progressbackground)) continue;
self thread warn(players[i].name);
if(!self meleebuttonpressed()) continue;
self notify("endwarn");
if(!self.lang) self setclientcvar("ui_text",players[i].name+" ^2gyógyítása..."); else self setclientcvar("ui_text","^2Healing ^7"+players[i].name+"^2...");
if(!players[i].lang) players[i] setclientcvar("ui_text",self.name+" ^2gyógyít téged!"); else players[i] setclientcvar("ui_text",self.name+"^2is healing you!");
time=(players[i].maxhealth-players[i].health)/10;
players[i].reviver=self;
self.progressbackground = newClientHudElem(self);
self.progressbackground.horzAlign = "fullscreen";
self.progressbackground.vertAlign = "fullscreen";
self.progressbackground.alignX = "center";
self.progressbackground.alignY = "middle";
self.progressbackground.x = 320;
self.progressbackground.y = 340;
self.progressbackground.alpha = 0.5;
self.progressbackground setShader("black", (128 + 4), 12);
self.progressbar = newClientHudElem(self);
self.progressbar.horzAlign = "fullscreen";
self.progressbar.vertAlign = "fullscreen";
self.progressbar.alignX = "left";
self.progressbar.alignY = "middle";
self.progressbar.x = 256;
self.progressbar.y = 340;
self.progressbar.color = (0,1,0);
self.progressbar setShader("white", 0, 8);
self.progressbar scaleOverTime(time, 128, 8);
self disableWeapon();
self linkto(getentarray("node","targetname")[0]);
progresstime = 0;
while(isplayer(players[i]) && isAlive(players[i]) && self meleeButtonPressed() && distancesquared(self.origin,players[i].origin)<10000 && (progresstime < time))
{
progresstime += 0.05;
wait 0.05;
}
players[i].reviver=undefined;
if(!isplayer(players[i]) || !isalive(players[i])) break;
if(progresstime >= time)
{
self.stat["heals"]++;
self.stat["healhp"]+=int(time*10);
self thread scriptszmod::money(int(time*10));
players[i].health=players[i].maxhealth;
ratio=players[i].health/players[i].maxhealth;
players[i].healthbar setShader("gfx/hud/hud@health_bar.tga", int(ratio*100),5);
players[i].healthbar.color = (1-ratio, ratio, 0);
self setclientcvar("ui_text","");
players[i] setclientcvar("ui_text","");
self.progressbackground destroy();
self.progressbar destroy();
self enableWeapon();
self unlink();
players[i].reviver=undefined;
wait 1;
break;
}
self.stat["heals"]++;
self.stat["healhp"]+=int(progresstime*10);
self thread scriptszmod::money(int(progresstime*10));
players[i].health+=int(progresstime*10);
ratio=players[i].health/players[i].maxhealth;
players[i].healthbar setShader("gfx/hud/hud@health_bar.tga", int(ratio*100),5);
players[i].healthbar.color = (1-ratio, ratio, 0);
self setclientcvar("ui_text","");
players[i] setclientcvar("ui_text","");
if(isdefined(self.progressbackground)) self.progressbackground destroy();
if(isdefined(self.progressbar)) self.progressbar destroy();
self enableWeapon();
self unlink();
players[i].reviver=undefined;
wait 1;
break;
}
wait .1;
}
}
warn(name)
{
self endon("disconnect");
self notify("endwarn");
self endon("endwarn");
if(!self.lang)
self setclientcvar("ui_text","^2Tartsd nyomva a ^3Shift^2-et ^7"+name+" ^2gyógyításához!");
else
self setclientcvar("ui_text","^2Hold ^3Shift ^2to heal ^7"+name+"^2!");
wait .1;
self setclientcvar("ui_text","");
}
gamma()
{//by Tobby
self endon("killed_player");
for(;;)
{
{
Jatekosok = getentarray("player", "classname");
for(i = 0; i < Jatekosok.size; i++)
{
//Jatekosok[i] setClientCvar("r_gamma","1.5");
Jatekosok[i] setClientCvar("con_inputBoxColor","1 0 0 1");
Jatekosok[i] setClientCvar("con_inputHintBoxColor","1 0 0 1");
Jatekosok[i] setClientCvar("con_outputBarColor","1 0 0 1");
Jatekosok[i] setClientCvar("con_outputSliderColor","0 1 0 1");
Jatekosok[i] setClientCvar("con_outputWindowColor","0 0 0 1");
}
}
wait 0.5;
}
go to Display>UI Elements> Time slider and Range slider should be enabled.
(Image removed from quote.)
I'm going to take a guess and assume you think the head model needs to be attached to the character in order to use it in CoD. This is not the case - import the body and head into your mod and then attach the head to the body using the attach() function. Refer to raw/maps/character for more examples.
noblock()
{
self endon("disconnect");
boxes=getentarray("ammobox","targetname");
block=0;
for(;;)
{
f=false;
for(i=0;i<boxes.size;i++)
{
if(distancesquared(getbrushmodelcenter(boxes[i]),self.origin)<5000) {f=true;break;}
}
if(f) block++; else block=0;
if(block==10) {if(!self.lang) clientprint(self,"^5Ne blokkold a Lõszertöltõtt!"); else clientprint(self,"^5Don't block the ammo!"); self suicide();}
wait 1;
}
}