Git Product home page Git Product logo

reachvarianteditor's People

Contributors

davidjcobb avatar unfunkable avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

reachvarianteditor's Issues

trouble contributing

hello im trying to help contribute to the project but whenever run debug i get error QtRunWork error

New 'infinity' gametype icon

There's a new 'infinity' gametype icon that 343 just added in the previous update for their pre-game mode used in the Custom Games Browser. It's not saved as a local or recent gametype (at least in the usual locations) so I wasn't able to grab the .bin to determine the integer index.

Icon can be found here: ui\chud\bitmaps\variant_items\gametypes.bitmap

pre-game-mcc

Useful information about fancy symbols in strings.

There are many fancy symbols that you can use in strings in a modded gametype. You might want to include these instructions in the documentation. This will allow script authors to take advantage of them.
Capture
Halo_ The Master Chief Collection   1_20_2020 9_11_05 PM

Here are the steps to get all these symbols:

  1. Download lord zedd's font packager.
  2. Open the file font_package.bin in the halo reach font directory. (haloreach\maps\fonts)
  3. Select tv_nord_hud-15
    Simply double click a symbol and paste them into a string and they will show up on waypoint text.
    Some of these symbols don't show up on hud widgets. Most symbols in eurostile_It_demi-13 show up in hud widgets.

Update unknown opcode arguments and names.

After reviewing your simple-opcodes.js file, I noticed some actions are named unknown. Kornman has updated the megalo db.xml file since the old ksoft release. It has new descriptions on some action arguments and names that were previously unknown. You might want to take a look at it so you don't have to do vigorous testing to figure out what some things do. https://github.com/KornnerStudios/KSoft.Blam/blob/master/KSoft.Blam/Games/HaloReach/Megalo/Proto/HaloReach_MegaloDb_Xbox.xml#L21

g'day, weird bug i ran into today

while playing with some absurd bits of code i came across a random exception

if you try and nest a player and their biped in an if var reference it will compile that player to player[0]
eg. if global.object[1].player[3].biped == global.object[1].player[3].biped then
will compile to if global.object[1].player[0].biped == global.object[1].player[0].biped then
RVT is fully capable of decompiling the correct player[] though as i was able to manually save a gamemode with the first bit of code applied and RVT would read it correctly (git wouldn't let me upload the .bin so heres the link instead: https://cdn.discordapp.com/attachments/831007456749551628/855449418052665424/HR_Slayer_fix.bin)

theres also a couple of other interesting things i've run into and since im here why not share them?
RVT doesn't seem to have a character limit for team name strings, so saving a gamemode with an extra large team name string will cause the gamemode to become corrupt and screw up a fair amount of data, oh and also if you try and add another label past the limit in some modes it will cause RVT to crash. (happens with the mode i have linked)
not really an RVT bug theres one that will cause mcc to be unable to read a gamemode, i can't quite remember what it is but i think it may be related to having more than one of the exact same string

anyhow thats all. add me back on discord :)

Questions About Megalo Capabilities

  1. Is it currently possible to set the physics of an item using megalo script? I am trying to spawn in hill markers, 4 each on either side of the player and I need the physics to be set to normal. The reason I am using hill markers is because they are invisible during gameplay. The idea is to prevent fly hacking by reading the speed of 4 items placed on all sides of the player (front, back, left, right) and if the speed of all 4 items is above a certain threshold, the player is airborne. It is 4 items because you can get a false positive if the player is standing on a ledge and the item falls off said ledge. If they are airborne for too long, they are flying and I can handle them (e.g. kill them, take their weapons etc). In order for it to be practical, I need the objects not to be visible. In writing this, I realize I can set the scale of an item so small it is not visible, but nonetheless it might be useful in the future in case I need to modify item physics at all.

  2. Is it possible to get the angle the player is looking relative to another player? What I wish to accomplish with this is to detect and handle the use of aimbots. According to the wiki, the two function calls I saw for this that I thought I might use were get_orientation and get_crosshair_target. If I used get_crosshair_target then it would trigger the detection if they killed the player but their crosshair was not red, so I would rather it be based on the angle that the player is facing/looking. In reading get_orientation, I can see that it always indicates which "face" is facing upward, but if I called that function on a player biped, it would always return the same result (top is up) unless the player biped was dead and I was checking all bipeds in the game.

  3. Is it possible to detect and react to awarded medals? I absolutely hate yoinkers and I would like to be able to subtract score from those players and add score to the person performing the assassination instead if they yoink an assassination and possibly do other things to them also. The tags I saw were assisted_kill_of (to detect the assist) and the ability to actually send the incident "yoink". The first function would detect ALL assists, which is not what I want and the second one simply is able to send the yoink medal.

  4. Is there any other way to detect the death of a spartan biped other than using the on object death event? The idea is that I want to create an in game "menu" that spawns in spartans with various weapons and on their death, will change some aspect of the game (such as setting player scale or applying traits) based on the weapon they were wielding. It would be very useful to change some of the settings in game without having to return to the main menu and setup the game again. If it will be too complex, I will probably just end up spawning objects in forge with shapes that you can stand in to select various options.

  5. Is it possible to detect a specific gamertag? The idea is to initially only allow me to do certain things from within the game variant, such as the menu thing until I can get things tweaked correctly. I will create another issue about the following, but basically if you type in the script "if current_player == "DutifulLake" then the entire program will crash if you attempt to compile the code. Detecting specific gamertags might be useful in a few other situations too, such as using the "menu" feature to apply traits to a specific player whose gamertag matches a specific value (to apply traits/do stuff to players who quit and rejoin).

  6. Is it possible to detect who the host of a match is? Again, the "menu" feature should only allow the host of a match to change settings. It would be pure chaos if everyone in game could just change settings willy nilly. Detecting the host would be extremely useful in various applications such as this.

At the end of it all, I wish to be able to create a game variant that can handle speed hacks, fly hacks, and aimbots, handle afk players, and allows the host to change settings in game. Currently, I have a game variant that is able to detect speed hacks and kills the player biped if they go too fast, and will also detect afk players and set their scale and traits to make them invisible to other players. Flying is what I will be working on next, and if I can reduce false positives, I might possibly incorporate an assassination minigame of sorts where I teleport all players to a central location with the hacker in the middle for somebody to assassinate them until they rage quit.

Using object types outside of current list

From my understanding the compiler checks objects in the script to a predefined list to grab it's tag location.

Is there any way for users to add on to this list or place other types of items that are not already predefined such as street_cone or even ff_plat_2x1_flat?

If not I wouldn't getting a list together of some objects and their tags if I could provide those to be added.

Limited Access To Sounds From !snd Tag

The current documentation only lists a portion of the sounds actually available in the list of sounds in the !snd tag. I have also been browsing the fsb, though not all of those sounds are likely accessible via Megalo. I was wondering if it were at all possible to access sounds, such as the "better_luck_next_time" and similar ones that are not listed in the current documentation. There are a few unused sounds that are included in the !snd tag of every .map file, many of which would be fun to use in a modified game type.

Feature request: Save/load gametype as .json or .xml?

Just an idea, maybe not worth the effort. I don't use C++ so wouldn't be much help.

Currently, if I want to make a gametype open source, I must host the .bin file as well as the .lua script. It would be good if we could edit the gametype settings (e.g. traits, etc) in a serializable text format instead of the UI. Then, these could be hosted on and read on github.

Cannot force team change if teams are enabled

Not so much of an issue but something I figured would be worth noting in case anyone else tries it. It appears that if teams are enabled on the variant's general settings then you cannot force players to a different team.

ie:

for each player do
    if current_player.team != team[4] then
        current_player.team = team[4]
    end
end

I ran across this limitation when I was adding in scripts to set up and balance a multi-team gamemode (since Reach's custom game browser on MCC does not have options for multiple teams at this time).

Enabling team changing also has no effect on this.

Is it possible to fix objective round card title icons in FFA modes?

When using a custom icon with a round card title (ex: invasion shows spartan or elite icon) in a FFA variant, it seems to overlap with the normal blue round card. This will cause an undesirable weird round card appearance. If this is done in a team mode the blue card seems to not be there. I know its probably unlikely, but is there any way to stop this in FFA modes?

Generate Random Numbers And Pass As Arguments

I am trying to do a game type that can generate a random map each time the game is loaded by using several "origin" points of reference. I would like to be able to pass a random number as an argument for the place_at_me() parameter for either x, y, or z. The formula I have for that that might work other than using rand(X) is "X = (a * X + c) % m" where a is the multiplier, c is the increment, and m is the modulus. Functionally speaking, I should be able to return a random number using that formula and show it as a message or something, but I would like to be able to pass it as an argument to a function. Using alias X *= a, alias X+= c, and alias X %= m gives an error saying I cannot assign to a constant variable, and global.number[0] *=a, global.number[0] += c, and global.number[0] %= m when a, b and c have been declared as aliases storing respective constant integer values succeeds, but global.number[0] cannot be passed as an argument to the function because it gives an error that it is of type Vector3. Is there any practical way to generate the random number to allow me to, for example, place an object in front of a vehicle with a random angle to create an ever changing game type where a race track always generates differently? Basically I want to place a 1x1 block in front of a mongoose and have the next block placed in front of that one, but at a slightly random angle and slope that could make the track go up, down, left, or right depending on the random number selected. Hopefully this all makes sense.

Some infromation you might want to mention with the HUD widget action.

"Modifies the text for a HUD widget. You can stitch values together dynamically.",

If you attempt to display a player name in a hud widget the player variable network state must be High Priority or non-hosts cannot see the player name. I believe this applies to player names in waypoints also but I have not tested that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.