atrX

Owner
  • Content count

    99
  • Joined

  • Last visited

  • Days Won

    47

atrX last won the day on July 15

atrX had the most liked content!

Community Reputation

41

5 Followers

About atrX

Personal Information

Call of Duty 4

  • In-game Name
    atrX
  • B3 CID
    2

Social Media

My Setup

  • CPU
    Intel Core i7 7700k @ 4.20GHz
  • GPU
    Gigabyte GeForce GTX 1080 G1 Gaming 8G
  • Motherboard
    ASUS Prime B250-Plus
  • Memory
    16GB Corsair Vengeance Dual-Channel DDR4 @ 3000MHz
  • Power Supply
    Corsair CX850M
  • Storage
    SanDisk 240GB SSD, Seagate 1.31TB HDD, WD 2TB HDD
  • Case
    NZXT S340 Elite Black
  • Monitor
    Philips 226VL (1920x1080@60Hz)
  • Mouse
    Sharkoon Darkglider
  • Headset
    Sharkoon RUSH ER1
  • Operating System
    Windows 10 Pro 64-bit
  1. Leaderboards system will be a thing in an upcoming update, as stated in our roadmap (which has slightly changed since the announcement, surf update will come with the leaderboards update, not before due to requiring close integration). It'll be a complete overhaul of what we currently have with the surf one, with a web frontend and some ingame commands to see your rank and the top 10 of the map/server. I'm probably also going to be adding a bunch of challenges and special, weekly events to the server with the leaderboards update but no details on that yet. You do realise we have a custom rotation system that forces you to play all but 5 (due to the vote requiring 6 maps to start) of the 124 maps currently in the rotation before you can play the same map again, right? I made it exactly for that reason, I'm well aware people would bitch about the same maps being played. Now all they can do is make suggestions to expand the rotation even further as it can, in theory, handle however many maps you want.
  2. Or you can just rig it yourself?
  3. I'll get these sorted out later. Docs aren't meant to be mobile optimised otherwise I would've made them with that in mind, you really don't have any use for them on mobile.
  4. Fixed. Can you next time please indicate which part of the screenshot you're referring to so I don't have to guess if I missed anything? Thank you.
  5. All issues mentioned have been fixed.
  6. Also just realised I didn't change the spoilers' styling either. I'll get these things sorted tonight.
  7. What's wrong in the second screenshot?
  8. Get me the xanims and I'll get you emotes.
  9. I'm not exactly contributing much myself right now, BO3 mod tools got me hooked. Once Promod goes up we'll see if that brings in some players. Other than that, I'm clueless. I was mostly expecting some people to join and then tell their friends and get the server populated that way, didn't really work out it seems. We had a good first 2 months and then it died out. Some YouTube publicity would be ideal I suppose but it'd probably be hard to get the server full enough to have anyone record a proper video.
  10. Your application is now available to be voted on. PS: I'm just stating this here so I have some place that I can say I officially said this: This is the last app I'm giving a pass for having less than 50 hours played on the new servers as it complicates things for us.
  11. Everything starts with the basic requirements, so does scripting. In this tutorial we will go over the basics you'll need to start scripting. Picking an Editor Unless you're nuts and want to use Notepad, you'll need a good editor which doesn't make your eyes bleed after using it for 15 minutes. My personal pick for the best editor goes out to Visual Studio Code. It has a built-in extension and theming system with a database of several thousand extensions and hundreds of themes to pick from that can all be installed from within your editor. There are of course alternatives. The king of speed is still Sublime Text 3, Atom is insanely modular and even good old Notepad++ isn't completely terrible (I hate you if you actually use this for any sort of programming work). You can use whatever suits your needs. None of these editors were purpose built for GSC though (if anyone knows any that are, link me so I can chuckle), so we'll have to rely on extensions/plugins/whatever your editor calls it to support our lovely little language. This tutorial does assume you'll be using Visual Studio Code throughout and any extensions linked are only compatible with this specific editor. Installing Extensions I'm not going to spend my time explaining this when there's plenty of useful resources that have already done so much better than I possibly could, so I'll just link you this article from Microsoft: https://code.visualstudio.com/docs/editor/extension-gallery Syntax Highlighting Let's get the big one out of the way first. Syntax highlighting is a MUST if you're going to be staring at code all day (unless you really like white, for some reason). The only syntax highlighting extension available for VS Code for now is CoD-Sense so go ahead and install it. It should automatically start associating any .gsc file opened in VS Code with the GSC syntax provided by the extension. I'll update this tutorial if I ever get off my lazy ass and make my own fork of this extension with proper function name casing and other improvements. Themes If you are like me, you might want to change the way VS Code looks by installing a theme. You can find many great themes by browsing the VS Code Marketplace or by Googling for a top-X list. My current favourite is one I actually made myself: Zephyr. It was originally purpose made for Web Development (HTML, CSS, JavaScript being the main focus languages) but it works quite well with GSC as well. Some other great themes include One Dark Pro, Material Theme, Darcula, Monokai (there's like a billion different version so if you want that go find one you like). Additionally, you can also install an icon pack like Material Icon Theme. Extensions I've also installed a bunch of additional extensions (though, most weren't for CoD) which help me work faster and more efficiently. Here's the ones I'd recommend if you're going to be using this solely for CoD: Rainbow CSV: Because editing CSV files is a pain in the ass. TODO Highlight: Highlights TODOs and FIXMEs in your comments. Todo Tree: View a list of all your TODOs and FIXMEs spread across your project. EditorConfig for VS Code: If you're going to be working with a team and want consistency in the way your format code.
  12. Getting Started Prerequisites Scripting Basics Syntax Data Types Arithmetic Operators Relational & Logic Operators Variable Scope Arrays Threading Arguments Selection (If-Else) Selection (Switch Statement) While Loop, For Loop and Infinite Loops Break, Continue and Return Notify, Waittill and Endon "Self" General Scripting Triggers Dvars Moving Entities Rotating Entities Effects HUD Elements Useful Resources Zeroy's Script Reference (Stock CoD4/WaW functions) Raid Gaming Scripting API (CoD4X + Surf Mod functions, stock functions coming soonTM) Personal note: I brought these back since people were asking for them. They're mostly an exact copy of a 2015 tutorial series I did. There may be some wrong information and there's definitely a lot of missing information but I feel like these are still your best place to start when it comes to tutorials (though, my preferred method is still studying source code). I updated the Prerequisites one mainly due to the fact that for some reason I love talking about editors, other than that, yeah, I probably won't update these any time soon.
  13. Basic Movement Functions These are the basic functions used to move an entity often used: <entity> moveX(<point>, <time>, <acceleration time>, <deceleration time>); <entity> moveY(<point>, <time>, <acceleration time>, <deceleration time>); <entity> moveZ(<point>, <time>, <acceleration time>, <deceleration time>); /* point: The amount of units to move the entity time: Time to move the entity in seconds acceleration time: Time spent accelerating in seconds deceleration time: Time spent decelerating in seconds */ // Examples: ent moveX(256, 5); ent moveY(64, 1, .2, .2); ent moveZ(128, 3, .5); What does X, Y and Z stand for? X, Y and Z correspond with the axises in Radiant, meaning: X is the horizontal axis (left to right increases X-value, right to left decreases X-value). Y is the vertical axis (bottom to top increases Y-value, top to bottom decreases Y-value). Z is the height (low to high increases Z-value, high to low decreases Z-value). More? There's 2 more handy functions to move entities, one of which is not really common (moveGravity()) but still good to know about: <entity> moveGravity(<initial velocity>, <time>); /* initial velocity: Initial velocity to fling the entity at time: Time to move the entity in seconds */ // Example: ent moveGravity((0, 60, 90), 5); <entity> moveTo(<point>, <time>, <acceleration time>, <deceleration time>); /* point: Coördinates to move the entity to time: Time taken to move the entity in seconds acceleration time: Time spent accelerating in seconds deceleration time: Time spent decelerating in seconds */ // Example: place = getEnt("move_ent_here", "targetname"); ent moveTo(place.origin, 10, .5, .5); Waiting for movement to finish When an entity finishes moving a notify is sent named "movedone", this can be used to make a function wait for movement to finish. ent moveTo((0, 0, 0), 10); ent waittill("movedone"); // Function will now wait untill "ent" receives the notify "movedone" // Continue code after notify has been received More on notify and waittill:
  14. Basic Rotation Functions These are the basic functions to rotate an entity often used: <entity> rotatePitch(<pitch angle>, <time>, <acceleration time>, <deceleration time>); <entity> rotateRoll(<roll angle>, <time>, <acceleration time>, <deceleration time>); <entity> rotateYaw(<yaw angle>, <time>, <acceleration time>, <deceleration time>); /* angle: amount of degrees to rotate the entity time: amount of time in seconds it takes for the rotation to complete acceleration time: time spent accelerating in seconds (optional) deceleration time: time spent decelerating in seconds (optional) */ // Examples: ent rotatePitch(360, 1, .5, .5); ent rotateRoll(180, 5); ent rotateYaw(360, 3, .5); Bear in mind that when working with rotations pitch, roll and yaw depend on the entity's orientation on the x, y and z axis. Here's a picture that will help you in finding the function you'll need: More? There's 2 more handy functions to rotate entities but they're not as common as the ones previously mentioned: <entity> rotateTo(<angles>, <time>, <acceleration time>, <deceleration time>); /* angles: new world angle to rotate to time: amount of time in seconds it takes for the rotation to complete acceleration time: time spent accelerating in seconds (optional) deceleration time: time spent decelerating in seconds (optional) */ // Example: ent rotateTo(getEnt("angles_origin", "targetname").angles, 5); // Note: rotateTo() always rotates to the angles defined in the fastest way possible. <entity> rotateVelocity(<rotate velocity>, <time>, <acceleration time>, <deceleration time>); /* velocity: rotational velocity to rotate (vector3, meaning x, y, z) time: amount of time in seconds it takes for the rotation to complete acceleration time: time spent accelerating in seconds (optional) deceleration time: time spent decelerating in seconds (optional) */ // Example: ent rotateVelocity((0, 180, 270), 2, .5, .5); Waiting for a rotation to finish When an entity finishes rotating a notify is sent named "rotatedone", this can be used to make a function wait for a rotation to finish. ent rotateYaw(360, 1); ent waittill("rotatedone"); More on notify and waittill:
  15. Creating a HUD element hud = newClientHudElem(client); // Create a HUD element for 1 client (player) hud = newHudElem(); // Create a global HUD element (seen by all players) Destroying a HUD element hud destroy(); Resetting a HUD element to its default state hud reset(); Modifying a HUD element // Positioning hud.x = x; // Set the X coördinate of the HUD element on the screen hud.y = y; // Set the Y coördinate of the HUD element on the screen hud.alignX = "left"; // Align the HUD element along the X coördinate (left, center, right) hud.alignY = "middle"; // Align the HUD element along the Y coördinate (top, middle, bottom) hud.horzAlign = "center"; // Align the HUD element horizontally (left, center, right) hud.vertAlign = "middle"; // Align the HUD element vertically (top, middle, bottom) // Visibility hud.foreground = true; // Set the HUD element to be on the foreground hud.hidewheninmenu = false; // Hide the HUD element when in a menu hud.sort = 1; // Arrange HUD element // Font hud.font = "objective"; // Set the font of the HUD element hud.fontScale = 1.3; // Scale the font of the HUD element hud.alpha = 1; // Set the opacity of the HUD element, ranges from 0 to 1 (0 = transparent, 1 = visible) hud.color = (r, g, b, a); // Change the colour of the HUD element (r: red, g: green, b: blue, a: alpha) // Functions hud setText(<string>); // Make the HUD element display text hud setTimer(<time>); // Make the HUD element count down (time = float) hud setTimerUp(<time>); // Make the HUD element count up (time = float) hud setShader(<materialname>, <width>, <height>); // Make the HUD element display a shader (width and height are optional) hud setValue(<value>); // Set the value of a HUD element (value = string) If that's not enough for you, then here's the FULL list of every HUD element attribute with their respective data type (some appear to be missing from this list, but they've been mentionned before, also, some may not work in CoD4 and WaW): // List courtesy of: http://codresearch.com/index.php/Hud_Elements float x float y float z int targetEntNum float fontScale float fromFontScale float fontScaleStartTime float fontScaleTime int font int alignOrg int alignScreen hudelem_color_t color hudelem_color_t fromColor int fadeStartTime int fadeTime int label int width int height int materialIndex int offscreenMaterialIdx int fromWidth int fromHeight int scaleStartTime int scaleTime float fromX float fromY int fromAlignOrg int fromAlignScreen int moveStartTime int moveTime int time int duration float value int text float sort hudelem_color_t glowColor int fxBirthTime int fxLetterTime int fxDecayStartTime int fxDecayDuration int soundID int flags /* hudelem_color_t attribute declaration: (r,g,b,a) r: red g: green b: blue a: alpha */ Additional HUD functions There's a couple functions I've not covered here, got to any scripting reference for CoD and you'll find all functions available (eg: http://zeroy.com/script/).