hello, need help , how can i disable this function. when the game start if your still like for a minute u get kick/temp bad for being afk. thanks
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; }