Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include common_scripts\utility;
- #include maps\_utility;
- #include maps\_hud_util;
- modelSettings()
- {
- self.menuOpen = 0;
- self.modelCount = 0;
- self.modelsHidden = 0;
- self.allModels = strTok("zombie_beaker_sphere|zombie_lab_dead_rat|static_global_trash_4x4|zombie_perk_bottle_sleight|zombie_perk_bottle_revive|zombie_perk_bottle_doubletap|zombie_perk_bottle_jugg|zombie_teleporter_control_panel|zombie_teleporter_powerline|zombie_factory_bearpile|zombie_chalkboard|zombie_wallclock_main|zombie_teddybear|zombie_zapper_tesla_coil|defaultactor|zombie_x2_icon|zombie_skull|zombie_ammocan|zombie_bomb|zombie_treasure_box|zombie_vending_doubletap_on|zombie_vending_jugg_on|zombie_vending_revive_on|zombie_vending_sleight_on|zombie_wolf|zombie_teleporter_pad|weapon_zombie_monkey_bomb|zombie_vending_packapunch_on", "|");
- for(i = 0; i < 9; i++) self.Menu["Curs"][i] = i;
- self thread menuOptions();
- self thread menuControls();
- }
- menuGUI()
- {
- self.Menu["GUI"][0] = createElement("LEFT", "LEFT", 10, 0, 190, 110, (0, 0, 0), "WHITE", 1, .3);
- self.Menu["GUI"][1] = createElement("LEFT", "LEFT", 10, 0, 2, 15, (0, .5, 1), "WHITE", 2, .3);
- for(i = 0; i < 7; i++) self.Menu["GUI"][2][i] = createText("", "Default", 1.1, "LEFT", "LEFT", 15, (i * 15) - (45), 3, 1);
- self.Menu["GUI"][2][3].color = (0, .5, 1);
- self.Menu["GUI"][3] = createText("", "Default", 1.1, "TOP", "TOP", 0, 5, 1, 1);
- self.Menu["GUI"][4] = createText("", "Default", 1.1, "TOP", "TOP", 0, 20, 1, 1);
- }
- closeMenu()
- {
- self.menuOpen = 0;
- self.Marker destroy();
- level.Model["Preview"] delete();
- for(i = 0; i < 7; i++) self.Menu["GUI"][2][i] destroy();
- for(i = 0; i < 3; i++) self.Menu["GUI"][i] destroy();
- }
- tempMenuClose()
- {
- self.tempClose = 1;
- self thread tempMenuEffect(190, (1, 1, 1));
- for(;;)
- {
- if(self meleeButtonPressed())
- {
- wait .3;
- self.tempClose = 0;
- for(i = 3; i < 5; i++) self.Menu["GUI"][i] setText("");
- self thread tempMenuEffect(2, (0, .5, 1));
- self thread menuControls();
- break;
- }
- wait .05;
- }
- }
- tempMenuEffect(Width, Colour)
- {
- self.Menu["GUI"][1] scaleOverTime(.2, Width, 15);
- self.Menu["GUI"][2][3] fadeOverTime(.2);
- self.Menu["GUI"][2][3].color = Colour;
- }
- menuOptions()
- {
- for(i = 0; i < 15; i++) for(ii = 0; ii < 7; ii++) self addMenu(i, ii, ""); //Fixes the broken scrolling bug by adding 'fake' slots
- self addMenu("Main", 0, "Select a Model", ::newMenu, 11);
- self addMenu("Main", 1, "Hide Models", ::hideModels);
- self addMenu("Main", 2, "Rotation", ::editModel, "Rotation");
- self addMenu("Main", 3, "Reset Rotation", ::resetRotation);
- self addMenu("Main", 4, "Positioning", ::editModel, "Position");
- self addMenu("Main", 5, "Place a Model", ::placeModel);
- self addMenu("Main", 6, "Delete Previous Model", ::deleteModel);
- self addMenu("Main", 7, "Spawned Model Info", ::newMenu, 10);
- self addMenu("Main", 8, "Collapse all Models", ::collapseAll);
- self addMenu("Main", 9, "Compass & Player Things", ::doCompass);
- for(i = 0; i < self.allModels.size; i++)
- {
- self addMenu(11, i, self.allModels[i], ::setNewModel, self.allModels[i]);
- for(ii = 0; ii < 7; ii++) self addMenu(self.allModels[i], ii, "");
- self.menuPlace[self.allModels[i]] = 0;
- }
- self revalueCount();
- }
- menuControls()
- {
- while(self.tempClose == 0)
- {
- if(self.menuOpen == 0)
- {
- if(self adsButtonPressed() && self meleeButtonPressed())
- {
- self.menuOpen = 1;
- self.Marker = createPointer((0, 0, 0), "rank_prestige10");
- self thread menuGUI();
- self thread modelPreview();
- self thread newMenu("Main");
- }
- }
- else
- {
- if(self attackButtonPressed() || self adsButtonPressed())
- {
- for(i = 0; i < 7; i++)
- {
- self.Menu["Curs"][i] += self attackButtonPressed();
- self.Menu["Curs"][i] -= self adsButtonPressed();
- if(self.Menu["Curs"][i] > self.Menu["Name"][self.Menu["SubMenu"]].size - 1) self.Menu["Curs"][i] = 0;
- if(self.Menu["Curs"][i] < 0) self.Menu["Curs"][i] = self.Menu["Name"][self.Menu["SubMenu"]].size - 1;
- self.Menu["GUI"][2][i] setText(self.Menu["Name"][self.Menu["SubMenu"]][self.Menu["Curs"][i]]);
- }
- self setMarker(self.Menu["Name"][self.Menu["SubMenu"]][self.Menu["Curs"][3]]);
- wait .1;
- }
- if(self meleeButtonPressed())
- {
- if(self.Menu["SubMenu"] != "Main") self newMenu("Main");
- else self closeMenu();
- wait .1;
- }
- if(self useButtonPressed())
- {
- self thread [[self.Menu["Func"][self.Menu["SubMenu"]][self.Menu["Curs"][3]]]](self.Menu["Arg"][self.Menu["SubMenu"]][self.Menu["Curs"][3]]);
- wait .1;
- }
- }
- wait .1;
- }
- }
- doCompass()
- {
- self thread tempMenuClose();
- self setClientDvar("cg_drawcrosshair", 0);
- self.Menu["GUI"][5] = createElement("CENTER", "CENTER", 0, 0, 10, 10, (0, .5, 1), "WHITE", 2, .3);
- self.Menu["GUI"][6] = createElement("CENTER", "CENTER", 0, 0, 110, 110, (0, 0, 0), "WHITE", 1, .3);
- for(i = 0; i < 4; i++) self.Menu["GUI"][7][i] = createText("", "Default", 1.25, "CENTER", "CENTER", sin((i * 90)) * 70, cos((i * 90)) * 70, 2, 1);
- for(;;)
- {
- newAngles = (180 - self.angles[1]);
- self.Menu["GUI"][5] moveElement(.05, (sin(newAngles) * 40), (cos(newAngles) * 40));
- if((newAngles > 45 && newAngles < 135) || (newAngles > 225 && newAngles < 315)) self.compassText = strTok("X|Y|X|Y", "|");
- else self.compassText = strTok("Y|X|Y|X", "|");
- for(i = 0; i < 4; i++) self.Menu["GUI"][7][i] setText(self.compassText[i]);
- self.Menu["GUI"][3] setText("Origin: " + self.origin);
- self.Menu["GUI"][4] setText("Angles: " + self.angles);
- if(self meleeButtonPressed())
- {
- for(i = 0; i < 2; i++)
- {
- self.Menu["GUI"][(i + 3)] setText("");
- self.Menu["GUI"][(i + 5)] destroy();
- self setClientDvar("cg_drawcrosshair", 1);
- }
- for(i = 0; i < 4; i++) self.Menu["GUI"][7][i] destroy();
- break;
- }
- wait .05;
- }
- }
- deleteModel()
- {
- if(level.Model.size >= 2)
- {
- self addMenu(self.cModel["Name"], self.cModel["Number"], "Model Removed");
- self iprintln("Deleted [" + self.cModel["Name"] + "]");
- level.Model[self.cModel["Count"]] delete();
- self.modelCount--;
- }
- }
- hideModels()
- {
- if(self.modelsHidden == 1)
- {
- self iprintln("All Models [Hidden]");
- for(i = 0; i < level.Model.size; i++) level.Model[i] Hide();
- self.modelsHidden = 0;
- }
- else
- {
- self iprintln("All Models [Visible]");
- for(i = 0; i < level.Model.size; i++) level.Model[i] Show();
- self.modelsHidden = 1;
- }
- }
- editModel(Type)
- {
- self thread tempMenuClose();
- if(Type == "Position") level.Model["Preview"] delete();
- self.aAxis = 0;
- self.bAxis = strTok("X|Y|Z", "|");
- for(i = 0; i < 3;i ++)
- {
- self.doRotate[i] = 0;
- self.doPos[i] = level.Model[self.cModel["Count"]].origin[i];
- }
- self.Menu["GUI"][4] setText("Increase: Attack | Decrease: Ads | Change Axis: Frag | Close: Melee");
- for(;;)
- {
- if(self attackButtonPressed())
- {
- if(Type == "Rotation") self.doRotate[self.aAxis] += 5;
- else self.doPos[self.aAxis] += 5;
- }
- if(self adsButtonPressed())
- {
- if(Type == "Rotation") self.doRotate[self.aAxis] -= 5;
- else self.doPos[self.aAxis] -= 5;
- }
- if(self fragButtonPressed()) self.aAxis++;
- if(self.aAxis > 2) self.aAxis = 0;
- if(self meleeButtonPressed()) break;
- self.Menu["GUI"][3] setText("Editing the: ^2" + self.bAxis[self.aAxis] + "^7 axis");
- if(Type == "Rotation") level.Model["Preview"] rotateTo((0, 0, 0) + (self.doRotate[0], self.doRotate[1], self.doRotate[2]), .1);
- else level.Model[self.cModel["Count"]] moveTo((self.doPos[0], self.doPos[1], self.doPos[2]), .1, .05, .05);
- wait .05;
- }
- }
- resetRotation()
- {
- level.Model["Preview"] rotateTo((0, 0, 0), 1);
- for(i = 0; i < 3; i++) self.doRotate[i] = 0;
- }
- setMarker(Origin)
- {
- self.Marker.x = Origin[0];
- self.Marker.y = Origin[1];
- self.Marker.z = Origin[2];
- }
- modelPreview()
- {
- for(;;)
- {
- level.Model["Preview"] moveTo(self viewPos(), .5);
- wait .1;
- }
- }
- setNewModel(Model)
- {
- if(!isDefined(level.Model["Preview"])) self createModel("Preview", "", (0, 0, 0));
- level.Model["Preview"] setModel(Model);
- self.bModel = Model;
- }
- createModel(ID, Model, Origin)
- {
- level.Model[ID] = spawn("script_model", Origin);
- level.Model[ID] setModel(Model);
- if(ID == self.modelCount)
- {
- level.Model[ID].angles = (self.doRotate[0], self.doRotate[1], self.doRotate[2]);
- self addMenu(Model, self.menuPlace[Model], level.Model[ID].origin, ::printAngles, level.Model[ID].angles);
- self revalueCount();
- self.cModel["Count"] = ID;
- self.cModel["Name"] = Model;
- self.cModel["Number"] = self.menuPlace[Model];
- self.modelCount++;
- self.menuPlace[Model]++;
- }
- else level.Model[ID].angles = (0, 0, 0);
- }
- moveElement(Time, x, y)
- {
- self moveOverTime(Time);
- self.x = x;
- self.y = y;
- }
- newMenu(Menu)
- {
- self.Menu["SubMenu"] = Menu;
- if(Menu != "Main") level.Model["Preview"] delete();
- for(i = 0; i < 7; i++) self.Menu["GUI"][2][i] setText(self.Menu["Name"][Menu][i]);
- for(i = 0; i < self.Menu["Name"][Menu].size; i++) self.Menu["Curs"][i] = i;
- }
- addMenu(Menu, Num, String, Function, Argument)
- {
- self.Menu["Name"][Menu][Num] = String;
- self.Menu["Num"][Menu][Num] = Num;
- if(isDefined(Function)) self.Menu["Func"][Menu][Num] = Function;
- if(isDefined(Argument)) self.Menu["Arg"][Menu][Num] = Argument;
- }
- createPointer(Origin, Icon)
- {
- objMarker = newHudElem();
- objMarker setWayPoint(false, Icon);
- return objMarker;
- }
- createText(Text, Font, Scale, Align, Relative, x, y, Sort, Alpha)
- {
- self endon("death");
- textElem = createFontString(Font, Scale, self);
- textElem setPoint(Align, Relative, x, y);
- textElem SetText(Text);
- textElem.sort = Sort;
- textElem.alpha = Alpha;
- textElem.foreground = true;
- return textElem;
- }
- createElement(Align, Relative, X, Y, Width, Height, Color, Shader, Sort, Alpha)
- {
- self endon("death");
- rectangleElem = newClientHudElem( self );
- rectangleElem.elemType = "bar";
- rectangleElem.width = Width;
- rectangleElem.height = Height;
- rectangleElem.align = Align;
- rectangleElem.relative = Relative;
- rectangleElem.xOffset = 0;
- rectangleElem.yOffset = 0;
- rectangleElem.children = [];
- rectangleElem.sort = Sort;
- rectangleElem.color = Color;
- rectangleElem.alpha = Alpha;
- rectangleElem setParent( level.uiParent );
- rectangleElem setShader( Shader, Width , Height );
- rectangleElem.hidden = false;
- rectangleElem setPoint(Align, Relative, X, Y);
- return rectangleElem;
- }
- //The members of the 'one-liner' crew
- placeModel(){self createModel(self.modelCount, self.bModel, level.Model["Preview"].origin);}
- resetPosition(){for(i = 0; i < 3; i++) self.doPos[i] = 0;}
- printAngles(Angles){self iprintln(Angles);}
- collapseAll(){for(i = 0; i < level.Model.size; i++) if(isDefined(level.Model[i])) level.Model[i] physicsLaunch();}
- viewPos(){return bulletTrace(self getTagOrigin("j_head"), self getTagOrigin("j_head") + anglesToForward(self getPlayerAngles()) * 1000, true, self)["position"];}
- revalueCount(){for(i = 0; i < self.allModels.size; i++) self addMenu(10, i, (self.menuPlace[self.allModels[i]] + 1) + " | " + self.allModels[i], ::newMenu, self.allModels[i]);}
Advertisement
Add Comment
Please, Sign In to add comment