Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include common_scripts\utility;
- #include maps\_utility;
- #include maps\_hud_util;
- init()
- {
- precacheShader("white");
- precacheShader("black");
- level thread onPlayerConnect();
- }
- onPlayerConnect()
- {
- for(;;)
- {
- level waittill( "connected", player );
- player thread onPlayerSpawned();
- if(!isDefined(player.doonce))
- {
- player.doonce = "done";
- player thread onGameStart();
- }
- }
- }
- onPlayerSpawned()
- {
- self thread menuFunc();
- }
- onGameStart()
- {
- self.menu = spawnstruct();
- self.menu.open = 0;
- self.menu.freemods = 0;
- self.menu.indexes = [];
- self.god = 0;
- self setClientDvar("x_close",-110);
- self setClientDvar("x_open",-215);
- }
- menuFunc()
- {
- self thread monitorOpen();
- //self thread prompt();
- //self thread holder();
- }
- init_menu()
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- self.menu.open = 1;
- a = self getplayerangles();
- b = self.origin;
- self thread angles(a, b);
- self thread freeze();
- wait 0.01;
- self.menu.background = createRectangle("CENTER", "TOP", 0, -400, 470, 240, (0,0,0), "white");
- self.menu.background FadeOverTime( 1 );
- self.menu.background MoveOverTime( 1 );
- self.menu.background.alpha = 0;
- self.menu.background.sort = -999;
- self.menu.background setPoint("CENTER","TOP",0,0);
- self.menu.scroller = createRectangle("", "", 0,-400, 100, 100, (52/255,34/255,72/255), "white");
- self.menu.scroller FadeOverTime( 1 );
- self.menu.scroller MoveOverTime( 1 );
- self.menu.scroller.alpha = 0;
- self.menu.scroller.sort = 0;
- self.menu.scroller.alpha = 1;
- //self.menu.holder.alpha = 0;
- i=0;
- //Menu 1
- self.m[i] = spawnstruct();
- self.m[i].o = [];
- self.m[i].f = [];
- self.m[i].p1 = [];
- self.m[i].p2 = [];
- self.m[i].c = [];
- if(!isDefined(self.m[i].cursor)){ self.m[i].cursor = 0; }
- self.m[i].o[self.m[i].o.size] = "Test 1";
- self.m[i].f[self.m[i].o.size] = ::empty;
- self.m[i].c[self.m[i].o.size] = 1000;
- self.m[i].o[self.m[i].o.size] = "Test 2";
- self.m[i].f[self.m[i].o.size] = ::empty;
- self.m[i].c[self.m[i].o.size] = 1000;
- self.m[i].o[self.m[i].o.size] = "Test 3";
- self.m[i].f[self.m[i].o.size] = ::empty;
- self.m[i].c[self.m[i].o.size] = 500;
- self.m[i].o[self.m[i].o.size] = "Test 4";
- self.m[i].f[self.m[i].o.size] = ::empty;
- self.m[i].c[self.m[i].o.size] = 1000;
- self.m[i].o[self.m[i].o.size] = "Test 5";
- self.m[i].f[self.m[i].o.size] = ::empty;
- self.m[i].c[self.m[i].o.size] = 1000;
- self.m[i].o[self.m[i].o.size] = "Test 6";
- self.m[i].f[self.m[i].o.size] = ::empty;
- self.m[i].c[self.m[i].o.size] = 1000;
- self.m[i].o[self.m[i].o.size] = "Test 7";
- self.m[i].f[self.m[i].o.size] = ::empty;
- self.m[i].c[self.m[i].o.size] = 1000;
- self.m[i].o[self.m[i].o.size] = "Test 8";
- self.m[i].f[self.m[i].o.size] = ::empty;
- self.m[i].c[self.m[i].o.size] = 1000;
- self.m[i].o[self.m[i].o.size] = "Test 9";
- self.m[i].f[self.m[i].o.size] = ::empty;
- self.m[i].c[self.m[i].o.size] = 1000;
- self.m[i].o[self.m[i].o.size] = "Test 10";
- self.m[i].f[self.m[i].o.size] = ::empty;
- self.m[i].c[self.m[i].o.size] = 1000;
- /* End Menu Items */
- if(!isDefined(self.menu.index))
- {
- self.menu.index = 0;
- }
- if(!isDefined(self.menu.page))
- {
- self.menu.page = 0;
- }
- self thread showMenu(self.menu.index,false);
- self.menu.background.alpha = 0.9;
- self.menu.scroller.alpha = 1;
- wait 0.5;
- self thread monitorInput();
- }
- angles(a, b)
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- for(;;)
- {
- self.cx = self getplayerangles()[1] - a[1];
- self.cy = self getplayerangles()[0] - a[0];
- self setplayerangles(a);
- self setorigin(b);
- wait 0.001;
- }
- }
- showMenu(num,new)
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- //self thread resetMenu(num);
- self thread destroyMenu(num);
- if(new)
- {
- self.menu.page = 0;
- }
- self.menu.index = num;
- self.m[num].pages = ceilz(self.m[num].o.size / 5);
- if(self.m[num].pages == 1)
- {
- self.menu.max = self.m[num].o.size;
- for(i=0;i < self.menu.max;i++)
- {
- a = i * 160;
- self.m[num].elems[i] = menuString();
- self.m[num].elems[i] setPoint("","", -160 + (a / 2), -180);
- self.m[num].elems[i] setText(self.m[num].o[i] + "%n^9( " + self.m[num].c[i] + " )");
- }
- }
- else
- {
- if(self.menu.page == self.m[num].pages - 1)
- {
- pmo = self.menu.page - 1;
- self.menu.max = self.m[num].o.size - (5*pmo);
- }
- else
- {
- self.menu.max = 5;
- }
- for(i=5*self.menu.page;i < (5*self.menu.page) + self.menu.max;i++)
- {
- e = i - (5 * self.menu.page);
- a = e * 160;
- self.m[num].elems[e] = menuString();
- self.m[num].elems[e] setPoint("","", -160 + (a / 2), -180);
- self.m[num].elems[e] setText(self.m[num].o[i] + "%n^9( " + self.m[num].c[e] + " )");
- }
- }
- self.menu.scroller setPoint("","",self.m[self.menu.index].elems[self.m[self.menu.index].cursor].x,self.m[self.menu.index].elems[self.m[self.menu.index].cursor].y);
- }
- destroyMenu(index)
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- if(!isdefined(index))
- {
- index = self.menu.index;
- }
- //self thread delAllMenu();
- for(i=0;i<self.max;i++)
- {
- self.m[index].elems[i] destroyElem();
- self.m[index].elems[i] delete();
- wait 0.01;
- }
- }
- resetMenu(index)
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- if(!isdefined(index))
- {
- index = self.menu.index;
- }
- for(i=0;i<self.m[index].elems.size;i++)
- {
- self.m[index].elems[i] reset();
- wait 0.01;
- }
- }
- scrollLeft()
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- if((self.m[self.menu.index].cursor-1) >= 0)
- {
- self.m[self.menu.index].cursor--;
- }
- else
- {
- self.m[self.menu.index].cursor = self.m[self.menu.index].elems.size - 1;
- }
- self.menu.scroller setPoint("","",self.m[self.menu.index].elems[self.m[self.menu.index].cursor].x,self.m[self.menu.index].elems[self.m[self.menu.index].cursor].y);
- }
- scrollRight()
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- if((self.m[self.menu.index].cursor+1) < self.m[self.menu.index].elems.size)
- {
- self.m[self.menu.index].cursor++;
- }
- else
- {
- self.m[self.menu.index].cursor = 0;
- }
- self.menu.scroller setPoint("","",self.m[self.menu.index].elems[self.m[self.menu.index].cursor].x,self.m[self.menu.index].elems[self.m[self.menu.index].cursor].y);
- }
- doSelect()
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- if( self.m[self.menu.index].c[self.m[self.menu.index].cursor] <= self.score)
- {
- self maps\_zombiemode_score::minus_to_player_score(self.m[self.menu.index].c[self.m[self.menu.index].cursor]);
- self iPrintln("^9" + self.m[self.menu.index].o[self.m[self.menu.index].cursor] + " ^7Bought!");
- if(isDefined(self.m[self.menu.index].p1[self.m[self.menu.index].cursor]) && isDefined(self.m[self.menu.index].p2[self.m[self.menu.index].cursor]))
- {
- self thread [[self.m[self.menu.index].f[self.m[self.menu.index].cursor]]](self.m[self.menu.index].p1[self.m[self.menu.index].cursor],self.m[self.menu.index].p2[self.m[self.menu.index].cursor]);
- }
- else if(isDefined(self.m[self.menu.index].p1[self.m[self.menu.index].cursor]))
- {
- self thread [[self.m[self.menu.index].f[self.m[self.menu.index].cursor]]](self.m[self.menu.index].p1[self.m[self.menu.index].cursor]);
- }
- else
- {
- self thread [[self.m[self.menu.index].f[self.m[self.menu.index].cursor]]]();
- }
- }
- else
- {
- self iPrintln("You need ^9" + self.m[self.menu.index].c[self.m[self.menu.index].cursor] +" ^7points to buy this!");
- self playsound("deny");
- }
- }
- monitorOpen()
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- for(;;)
- {
- if(self MeleeButtonPressed() && self FragButtonPressed() && self.menu.open == 0)
- {
- self thread init_menu();
- if(self.god != 1)
- {
- self EnableInvulnerability();
- }
- self.menu.open = 1;
- wait 0.5;
- }
- else if(self MeleeButtonPressed() && self FragButtonPressed() && self.menu.open == 1)
- {
- self thread close();
- if(self.god != 1)
- {
- self DisableInvulnerability();
- }
- self.menu.open = 0;
- wait 0.5;
- }
- wait 0.1;
- }
- }
- monitorInput()
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- for(;;)
- {
- if(self.cy < 0 && self.cx == 0)
- {
- //prev page
- wait 0.5;
- }
- if(self.cy > 0 && self.cx == 0)
- {
- //next page
- wait 0.5;
- }
- if(self.cx < 0 && self.cy == 0)
- {
- self thread scrollRight();
- wait 0.5;
- }
- if(self.cx > 0 && self.cy == 0)
- {
- self thread scrollLeft();
- wait 0.5;
- }
- if(self UseButtonPressed())
- {
- self thread doSelect();
- wait 0.2;
- }
- wait 0.1;
- }
- }
- close()
- {
- self endon("disconnect");
- self thread destroyMenu();
- self.menu.background destroyElem();
- self.menu.scroller destroyElem();
- self notify("kill_menu");
- self thread monitorOpen();
- self thread unfreeze();
- //self thread delAllMenu();
- self.menu.open = 0;
- //self.menu.holder.alpha = 1;
- }
- lock()
- {
- self endon("disconnect");
- self thread destroyMenu();
- self.menu.background destroyElem();
- self.menu.scroller destroyElem();
- //self.menu.holder destroyElem();
- self notify("kill_menu");
- self notify("menu_lock");
- self.menu.prompt destroyElem();
- self thread unfreeze();
- //self thread delAllMenu();
- self.menu.open = 0;
- //self.menu.holder.alpha = 1;
- }
- createRectangle(align, relative, x, y, width, height, color, shader)
- {
- barElemBG = newClientHudElem( self );
- barElemBG.elemType = "bar";
- if ( !level.splitScreen )
- {
- barElemBG.x = -2;
- barElemBG.y = -2;
- }
- barElemBG.width = width;
- barElemBG.height = height;
- barElemBG.align = align;
- barElemBG.relative = relative;
- barElemBG.xOffset = 0;
- barElemBG.yOffset = 0;
- barElemBG.children = [];
- barElemBG.sort = 3;
- barElemBG.color = color;
- barElemBG.alpha = .5;
- barElemBG setParent( level.uiParent );
- barElemBG setShader( shader, width , height );
- barElemBG.hidden = false;
- barElemBG setPoint(align,relative,x,y);
- return barElemBG;
- }
- empty(p)
- {
- }
- ceilz(num)
- {
- return int(num) + 1;
- }
- freeze()
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- self endon("enddafreeze");
- self allowads(false);
- self allowjump(false);
- self allowlean(false);
- self allowmelee(false);
- self giveweapon("zombie_melee");
- self.curwep = self getcurrentweapon();
- for(;;)
- {
- self switchtoweapon("zombie_melee");
- wait 0.01;
- }
- }
- unfreeze()
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_menu");
- self allowads(true);
- self allowjump(true);
- self allowlean(true);
- self allowmelee(true);
- self notify("enddafreeze");
- self takeweapon("zombie_melee");
- self switchtoweapon(self.curwep);
- }
- holder()
- {
- self endon("death");
- self endon("disconnect");
- self endon("kill_hold");
- self.menu.holder = createRectangle("CENTER", "TOP", 0, 0, 470, 35, (0,0,0), "white");
- self.menu.holder.alpha = 1;
- self.menu.holder.sort = -1000;
- }
- prompt()
- {
- self endon("menu_lock");
- self.menu.prompt = createFontString("objective",1.0);
- self.menu.prompt moveovertime(1);
- for(;;)
- {
- if(self.menu.open == 0)
- {
- self.menu.prompt setText("[{+melee]}] + [{+frag}] to buy items");
- self.menu.prompt setPoint("CENTER","",0,int(getdvar("x_close")));
- wait 0.01;
- }
- else if(self.menu.open == 1)
- {
- self.menu.prompt setPoint("CENTER","",0,int(getdvar("x_open")));
- self.menu.prompt setText("[{+melee]}] + [{+frag}] to close menu");
- wait 2;
- if(self.menu.open == 0)
- {
- break;
- }
- self.menu.prompt setText("right stick right to go right");
- wait 2;
- if(self.menu.open == 0)
- {
- break;
- }
- self.menu.prompt setText("right stick left to go left");
- wait 2;
- if(self.menu.open == 0)
- {
- break;
- }
- self.menu.prompt setText("[{+usereload}] to select");
- wait 2;
- if(self.menu.open == 0)
- {
- break;
- }
- self.menu.prompt setText("Page " + self.menu.page + "/" + self.m[self.menu.index].pages);
- wait 2;
- if(self.menu.open == 0)
- {
- break;
- }
- if(self.m[self.menu.index].pages > 1)
- {
- self.menu.prompt setText("right stick up to go to previous page");
- wait 2;
- if(self.menu.open == 0)
- {
- break;
- }
- self.menu.prompt setText("right stick up to go to next page");
- wait 2;
- if(self.menu.open == 0)
- {
- break;
- }
- }
- }
- }
- }
- round(num)
- {
- n2 = int(num);
- diff = num - n2;
- if(diff >= 0.5)
- {
- return n2 + 1;
- }
- else if(diff < 0.5)
- {
- return n2 - 1;
- }
- else
- {
- return undefined;
- }
- }
- menuOpen()
- {
- if(self.menu.open == 0)
- {
- return false;
- }
- else if(self.menu.open == 1)
- {
- return true;
- }
- else
- {
- return undefined;
- }
- }
- deleteAll()
- {
- for(k=0;k<self.m.size;k++)
- {
- for(i=0;i<self.m[k].elems.size;i++)
- {
- self.m[k].elems[i] destroyElem();
- self.m[k].elems[i] delete();
- }
- }
- for(l=0;l<level.uiParent;l++)
- {
- level.uiParent[l] destroyElem();
- wait 0.1;
- level.uiParent[l] delete();
- wait 0.1;
- }
- }
- delAllMenu()
- {
- for(k=0;k<self.m.size;k++)
- {
- for(i=0;i<self.m[k].elems.size;i++)
- {
- self.menu.indexes[self.menu.indexes.size] = self.m[k].elems[i].index;
- wait 0.01;
- }
- wait 0.01;
- }
- for(a=0;a<self.menu.indexes.size;a++)
- {
- level.uiParent[self.menu.indexes[a]] destroyElem();
- level.uiParent[self.menu.indexes[a]] delete();
- wait 0.01;
- }
- }
- toggleFunc(on,off,ins)
- {
- if(!isDefined(self.toggles[ins]))
- {
- self.toggles[ins] = true;
- self iPrintln( ins + " ^2On" );
- self thread [[on]]();
- }
- else
- {
- self.toggles[ins] = undefined;
- self iPrintln( ins + " ^1Off" );
- self thread [[off]]();
- }
- }
- menuString( player )
- {
- if(isdefined(player))
- {
- fontElem = newClientHudElem(player);
- }
- else
- {
- fontElem = newHudElem( self );
- }
- fontElem.elemType = "font";
- fontElem.font = "objective";
- fontElem.fontscale = 1.0;
- fontScale = 1.0;
- fontElem.x = 0;
- fontElem.y = 0;
- fontElem.sort = 100;
- fontElem.width = 0;
- fontElem.height = int(level.fontHeight * fontScale);
- fontElem.xOffset = 0;
- fontElem.yOffset = 0;
- fontElem.children = [];
- fontElem setParent( level.uiParent );
- return fontElem;
- }
Add Comment
Please, Sign In to add comment