Advertisement
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()
- {
- self thread onPlayerConnect();
- }
- onPlayerConnect()
- {
- for(;;)
- {
- level waittill( "connected", player );
- player thread onPlayerSpawned();
- }
- }
- onPlayerSpawned(){
- self thread menu();
- }
- menu()// thread this on onPlayerSpawn
- {
- self.currentMenu="none";// variable i've used used to notify current Menu
- self thread iniMenu();
- wait 1;
- self thread runMenu();
- }
- iniMenu()
- {
- self addMenu("main", "Main Menu");
- self addOption("main", "Sub Menu 1", ::loadMenu, "sub1" );
- self addOption("main", "Option 2", ::test );
- self addOption("main", "Option 3", ::test );
- self addOption("main", "Option 4", ::test );
- self addOption("main", "Option 5", ::test );
- self addMenu("sub1", "Sub Menu 1");
- self addOption("sub1", "Spawn Dogs", ::SDog );
- self addOption("sub1", "Option 2", ::test );
- self addOption("sub1", "Option 3", ::test );
- self addOption("sub1", "Option 4", ::test );
- self addOption("sub1", "Option 5", ::test );
- }
- loadMenu(menuName)
- {
- self notify("update");
- self.curs=0;
- self.currentMenu=menuName;
- self.titleText = createfontString("defualt", 2.0, self);
- self.titleText.sort = 100;
- self.titleText setPoint("LEFT", "TOP", -290, (-2*20+100));
- self.titleText setText(self.title[menuName]);
- self.titleText.alpha = 0;
- self.titleText elemFade(.2,1);
- for(x=0; x<=self.opt[menuName].size; x++)
- {
- self.display[x] = createfontString("defualt", 1.7, self);
- self.display[x].sort = 100;
- self.display[x] setPoint("LEFT", "TOP", -290, x*20+100);
- self.display[x].alpha = 0;
- self.display[x] setText(self.opt[menuName][x]);
- self.display[x] elemFade(.2,1);
- self thread Update(self.display[x],self.titleText);
- }
- self.MenuCurs elemMoveY(0.2, (self.curs*20+100));
- }
- runMenu()
- {
- self endon ("death");
- self endon ("disconnect");
- self.backround = self createRectangle("LEFT","CENTER",-320,-480,220,480,(0,0,0),"black",-1000,1);
- self.MenuCurs = self createRectangle("LEFT", "TOP", -534, (self.curs*20+100), 214, 17,(1,0,0),"white",3,1);
- while( 1 )
- {
- if( self FragButtonPressed())
- {
- if(self.currentMenu=="none" )
- {
- self.backround elemMoveY(1,0);
- self.MenuCurs elemMoveX(1,-317);
- self notify("done");
- self freezecontrols(true);
- self loadMenu("main");
- }
- }
- else if( self MeleeButtonPressed())
- {
- self notify("update");
- if( self.currentMenu=="main") self CloseMenu();
- else if(self.currentMenu!="none" && self.currentMenu!="main") self thread loadMenu("main");
- }
- else if( self AttackButtonPressed())
- {
- self.curs += 1;
- if( self.curs>=self.opt[self.currentMenu].size)
- {
- self.curs = 0;
- }
- self.MenuCurs elemMoveY(.2,(self.curs*20+100));
- wait .2;
- }
- else if( self AdsButtonPressed())
- {
- self.curs -= 1;
- if( self.curs<0)
- {
- self.curs = self.opt[self.currentMenu].size-1;
- }
- self.MenuCurs elemMoveY(.2,(self.curs*20+100));
- wait .2;
- }
- else if( self UseButtonPressed())
- {
- if(!IsDefined(self.input[self.currentMenu][self.curs])) self thread [[self.func[self.currentMenu][self.curs]]]();
- else self thread [[self.func[self.currentMenu][self.curs]]](self.input[self.currentMenu][self.curs]);
- wait .2;
- }
- wait .1;
- }
- }
- CloseMenu()
- {
- self notify("update");
- self.backround elemMoveY(1,-480);
- self.MenuCurs elemMoveX(1,-534);
- self.currentMenu="none";
- self freezecontrols(false);
- }
- Update( elem3, elem2)
- {
- self waittill("update");
- elem2 elemFade(.2, 0);
- elem3 elemFade(.2, 0);
- wait .4;
- elem3 destroy();
- elem2 destroy();
- }
- test()
- {
- self iPrintlnBold("Menu:"+self.currentMenu );
- self iPrintlnBold( "Option:"+self.curs);
- }
- createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha)
- {
- 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 = sort;
- barElemBG.color = color;
- barElemBG.alpha = alpha;
- barElemBG setParent( level.uiParent );
- barElemBG setShader( shader, width , height );
- barElemBG.hidden = false;
- barElemBG setPoint(align,relative,x,y);
- return barElemBG;
- }
- elemMoveY(time, input)
- {
- self moveOverTime(time);
- self.y = input;
- }
- elemMoveX(time, input)
- {
- self moveOverTime(time);
- self.x = input;
- }
- elemFade(time, alpha)
- {
- self fadeOverTime(time);
- self.alpha = alpha;
- }
- fontScaleFade(time, size)
- {
- self MoveOverTime( time );
- self.fontScale = size;
- }
- empty(){}
- addMenu(mName,titl)
- {
- self.title[mName] = titl;
- self.opt[mName] = [];
- self.func[mName] = [];
- self.input[mName] = [];
- }
- addOption(mName,opts,funcs,inputs)
- {
- i = self.opt[mName].size ;
- self.opt[mName][i] = opts;
- self.func[mName][i] = funcs;
- if(Isdefined(inputs)) self.input[mName][i] = inputs;
- }
- //mods and shit
- SDog()
- {
- self CloseMenu();
- self thread TurnDogsF();
- self thread DogTarget();
- self thread DogAttack();
- self thread SpawnTehDogs();
- }
- TurnDogsF()
- {
- self endon("death");
- self endon("disconnect");
- for(;;){
- dogs = GetAISpeciesArray( "axis", "dog" );
- for(i=0;i<dogs.size;i++){
- dogs[i].team = "allies";
- dogs[i].health = 9999;
- dogs[i].targetname = "zombie_dog";
- dogs[i].animname = "zombie_dog";
- dogs[i].grenadeawareness = 1;
- dogs[i].ignoreSuppression = false;
- dogs[i].suppressionThreshold = 0;
- dogs[i].noDodgeMove = false;
- dogs[i].pathenemylookahead = 1;
- dogs[i].is_zombie = false;
- dogs[i].isai = false;
- dogs[i].ai = false;}
- wait 0.05;
- }
- }
- DogTarget()
- {
- zombies = GetAISpeciesArray( "axis", "zombie" );
- zombiedogs = GetAiSpeciesArray( "allies", "dog" );
- for(d=0;d<zombies.size;d++)
- {
- for(i=0;i<zombiedogs.size;i++)
- {
- zombiedogs[i] setGoalPos(zombies[i].origin);
- }
- level waittill("zom_kill");
- wait 0.05;
- }
- }
- SpawnTehDogs()
- {
- dog_spawners = GetEntArray( "special_dog_spawner", "targetname" );
- maps\_zombiemode_dogs::special_dog_spawn( dog_spawners, 4 );
- }
- DogAttack()
- {
- while(1)
- {
- zombies = GetAISpeciesArray( "axis", "zombie" );
- zombiedogs = GetAiSpeciesArray( "allies", "dog" );
- for(d=0;d<zombies.size;d++)
- {
- for(i=0;i<zombiedogs.size;i++)
- {
- if(distance(zombiedogs[i].origin, zombies[d].origin) < 50)
- {
- zombies[i] dodamage(zombies[i].health + 666, zombies[i].origin);
- }
- level waittill("zom_kill");
- wait 0.05;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement