Welcome to Open Carnage

A resource for Halo 1 modding and tech, with unique means of rewarding individual content creation and support. Have a wander to see why we're worth the time! EST. 2012


  • Content count

  • Joined

  • Last visited

  • Raffle Tickets


Everything posted by Devieth

  1. This script will keep a more advanced record of your stats in a server. You have to press and hold Action (E) and Crouch (Ctrl) for it to be brought up. This is highly untested, sorry if it has bugs but, I scripted it in 2 hours so... yea. This will keep track of: - Time spent in server - Total points/score earned - Kills - Deaths - Assists - Suicides - Betrays - CTF Stats - Race Stats - Oddball Stats - Koth Stats - KDR Download = stats.lua NOTE: I updated the grammar in the note (uses 'will only update' instead of 'is only update.')
  2. That would be a yes, hence this:
  3. I AM NOT ASKING FOR THIS FOR 60 FPS ANIMATIONS. With that out of the way, the reason I am asking for this is to be able to run server and client at 60hz tick-rate. HAC2's recent update allows for the server to sync multiple things with the client, two of which are gravity and tick-rate. The idea is that with the 60hz tick-rate/animations SAPP's nolead will be (in theory) be twice as accurate as it is now. I am willing to put up $50 of my own money at the time to the person that does this, but you must have a PayPal account for me to send money to in order to get it. Requirements of this request are: - Works with chimera_tps 60 (or with HAC2, time 60) - Weapons function as they would in 30hz (so fire rate, reload time, bullet velocity. In my experience, projectile velocity for weapons that use bullets, so sniper, pistol, assault rifle, and ect does not need to be changed.) - Movement is scaled properly - Fall damage stun is corrected - Anything else that is needed to make the game look and feel the way it does in 30hz tick-rate. Things you should not need to do: - Correct tag weights/gravity scale, HAC2/SAPP should manually set these for HAC2 users with the use of the gravity command server side. (In the case that you do correct object gravity scale and weights, please make it known in your post, and don't use the gravity command below when testing. Also if the gravity setting below doesnt work, try cutting it in half again, its bee a while since I tested this.) Optional: - Refined tags Bugs I can forgive: - Inactive vehicles floating after being hit with a melee or explosive (60hz does break some physics checks, I can probably fix this server side with a Lua script.) How would I ask of you to test this? Well first you will need a SAPP 10.2.1 server and HAC2 on your client. HAC2/SAPP should sync the settings below if you have the latest HAC2 from: In SAPP's init.txt you will want these commands: speed_hack_detection 0 gamespeed 60 gravity 0.001782589592 Note: You may need to use 25% gravity ( ‭0.000891294796‬ ), the setting above is 50%. It depends on how you make the maps, not sure but that is the case with this map by Kirby: http://maps.halonet.net/maps/bloodgulch_60fps.zip, but this map used his custom tags are very screwy. SAPP 10.2.1 Halo CE Server Download If you do this please DM me to your finished post with an email I should send the $50 to after I have tested them, thank you.
  4. Took a look at giraffe's geolocation script and though, hey I can make a map downloader that uses the HAC2 Repo with that. This does require the use of wget as well as 7zip. Just like giraffe's script, this one requires that they need to be in the same folder as the dedicated server executable. Pastebin: https://pastebin.com/kdEH3nyB Github: https://github.com/it300/Halo-Lua/blob/master/map_download.lua 7zip_and_wget.zip Search for available maps @ http://maps.halonet.net/maplist.php Commands: map_download <map_name> map_download.map <URL> <map_name.map> map_download.zip <URL> <map_name> repo <url or legacy> Oh yeah since I just added map_download.zip <URL> <map_name>, a side note is that you can use .7z, .rar, or any format 7zip supports for decompression, I think? Also the map_name is only required to also have SAPP load map into the game.
  5. Do you have any errors from the halocded console? That's the only way I can help. Otherwise it will do that if the command is not used right or map repo is being blocked by EGS.
  6. Here is a little global script for Chimera -572 (and its derivatives) that removes the Flag nav/distance indicator from CTF game modes. Made it because the distance indicator is always in front and can block your view of players or entire bases in the case of using the semi-refined maps by Vaporeon.) remove_ctf_nav.lua
  7. This script will make servers register about 10-30% more of your shots if your cross-hair is red. This script is intended to be used server side only. How the script works: Well what it does is loop through all the bipd tags and change something called the autoaim_width, this is the effective range of the auto_aim in Halo (also known as bullet magnetism.) By reducing the auto_aim width, when you aim correctly the bullets will tend to curve stronger into the bipd, making them more likely to hit, and making the servers simulation more likely to give you the hit. hit_reg_fix.lua
  8. The combination will: --------------------------------------------------------------------------------------------------------- The client does not need the script, but its not recommended because in other servers it will alter your perception even more of what you think shoudl have hit. But once again: because The script is only useful ON THE CLIENT IF the server has the script as well. Once again, why its NOT RECOMMENDED to be used on the client side.
  9. This script does as it says, it spoof's scrim_mode being on. This is because scrim_mode is flawed for many reasons, one of which made this script possible. The idea of scrim_mode was to disable SAPP's cheat commands from being used by server admins in, scrims/competitive matches, but many people have found many ways around this in the past. The bonus of scrim_mode being on is it blocks all other Lua scripts from running, including ones that fix issues in the game, allow new game modes, and more. But with this script, if you type `/info` in chat, it will say scrim_mode is on, even when its not. That is as long as you do not enable scrim_mode within the init or sapp's init. spoof_scrimmode.lua
  10. What this script will do is change a players spawn point if the spawn point picked by the game is under "suppression" (by a friendly player taking damage.) In the case it is suppressed, the script will then force a random ctf spawn (from your team) for you to spawn on. Spawns that are also under suppression or blocked will not be picked as well. This script borrows from Kavawavi's ralliedteams.lua, it was very useful in the making of this script. spawn_point_suppression.lua
  11. Looking for a script that would allow me to make Halo's spawning system always random in large team games (mainly ctf), so that spawns are not death traps.
  12. Well not that random, instead of breaking the spawn system, I just over-wrote it using Kavawavi's ralliedteams as a resource. What I wanted was to have the game not force a teammate to spawn close to another teammate, but still use team-sided spawns. Which the script I wrote does. random_team_spawns.lua
  13. You can only re-name people when they join the server, doing this to a player who is already present will not show on the scoreboard (as there is no way to send packet forcing clients to update the names they see on the scoreboard.) Hence my OnNameRequest script. Changing colors is already a thing, I think? Maybe that was for Phasor but its 100% possible on SAPP.
  14. It no longer does since he killed off his website, guess he was hosting his own repo or a mirror that fed off of hac2's? map_query snow Sapp is not connected to the global server! Please try again later. or map_query snow Map query request sent. Select an ID from below: No map matches this expression!
  15. So it was brought to my attention about a month ago that people were using HAC2 and Chimera (-572 and its derivatives, including mine) to cheat by setting their tickrate to 31-35 (30 = default, 36 and above and Halo's built in speed_hack_detection kicks in and ignores packets.) Today an idea popped in my head about a memory location I abused in the past to freeze players, checked the area around and sure enough, a counter that well, counts the number of updates it gets from the client, and my anti-speedhack was born. https://github.com/it300/Halo-Lua/blob/master/anti-speedhack.lua
  16. Nice, I'm signed up. And yeah, can't wait for the "3rd party EULA" to be added to the Steam store...
  17. Hey, I am having trouble reading your script the way you wrote it (not sure how you have everything working, its just confusing to look at in general, how your matching a server bipd to something the client sees I cant warp my head around.) Anyway I'm thinking this might help you out instead of guessing the size of the object table? If not that's cool. Also instead of calling `get_object(i)` a tone of times you could just do a `local object = get_object(i)` local object_table = 0x400506B4 -- 1.10 Client address (Not for use on dedicated server.) local object_count = read_word(object_table + 0x2E) local object_base = read_dword(object_table + 0x34) for i = 0,object_count-1 do local m_object = read_dword(object_base + i * 0xC + 0x8) local m_ObjectID = read_word(object_base + i * 12) * 0x10000 + i if read_word(mobject + 0xB4) == 0 then -- bipd end end -- For the server (sapp) is mostly the same except for the object_table address which is: local object_table = read_dword(read_dword(sig_scan("8B0D????????8B513425FFFF00008D") + 2))
  18. Trying to get matte screen protectors (for glossy devices) could cut the glare (but may also cut the brightness for all devices.) For PC, next time you get something new, try to go for matte finish screens. For your laptop, there is a chance you could get a comparable matte finish screen for it off Ebay or something (but that requires some disassembly to do. More or less depending on the brand of laptop.)
  19. You can do NPC's by looping though the tags when the map loads and save friendly MetaID's to a table. The just do a `if friendly_metaIds[MetaID] then` style check to see if that MetaID is in the friendly_metaIds table.
  20. Yeah that't about it, I went in and make a much bigger change though myself which will make the crosshair color change be a bit more sensitive and accurate. ally_retical_modified_by_devieth.lua Video: Note: I did't add a distance limit here but it would be easy enough to add. Note2: This will also work through walls. IceCrow14, if you would like to look at the changes and officially add this to your script that would be cool.
  21. I was just thinking about righting this, but kept thing "haha ha, I'm to lazy hell no." Really cice, it is a little sensitive though. Update: You could do this btw. local obj_ID = read_dword(dl_player + 0x2F8 + (unit_weap_slot * 0x4)) Instead of what your doing currently with this: local obj_ID = 0 if unit_weap_slot == 0 then obj_ID = read_dword(dl_player + 0x2F8) -- Primary elseif unit_weap_slot == 1 then obj_ID = read_dword(dl_player + 0x2FC) -- Secondary elseif unit_weap_slot == 2 then obj_ID = read_dword(dl_player + 0x300) -- Tertiary elseif unit_weap_slot == 3 then obj_ID = read_dword(dl_player + 0x304) -- Quaternary end
  22. Try again, changed something, you cant use "get_var()" the way i did.
  23. Try it now (updated to api_version = "")
  24. Here: -- Don't touch these. api_version = "" display = {} lines = {} -- Command to trigger text. cmd = "!info" -- line[number] = "text" .. get_var(1, "$global event variable") -- or -- line[number] = "text" lines[1] = "This is line 1" lines[2] = "This is line 2" -- Add more lines as needed function OnScriptLoad() register_callback(cb['EVENT_COMMAND'], "OnEventCommand") register_callback(cb['EVENT_JOIN'], "OnPlayerJoin") register_callback(cb['EVENT_TICK'], "OnEventTick") end function OnEventCommand(PlayerIndex, Command, Enviroment, Password) -- Lets get quotation marks out of our commands. local Command = string.lower(string.gsub(Command, '"', "")) if Command == cmd then -- If they are already set to true then set to false. if display[tonumber(PlayerIndex)] then display[tonumber(PlayerIndex)] = false else -- If they are not true then set to true display[tonumber(PlayerIndex)] = true end return false end end function OnPlayerJoin(PlayerIndex) -- Make sure the default is for this to be truned off. -- Also makes it so the last player in this slot's setting does not carry over. display[tonumber(PlayerIndex)] = false end function OnEventTick() for i = 1,16 do -- Check if the player is in the server. if player_present(i) then -- If they want the display then. if display[i] then -- Spam 26 blank lines (to clear console for ENG and ESP clients.) for j = 0,25 do rprint(i, " ") end -- Print info from all the lines (in order) to the player. for x = 1,#lines do rprint(i, lines[x]) end end end end end function OnScriptUnload() end