PDA

View Full Version : [APP] HAC 2 Release



Pages : 1 [2]

RadWolfie
February 15th, 2015, 01:07 PM
Afraid not. The best you can do is run the game as admin and it'll move the maps from hac\maps to your game's maps folder. It works the way it does because you can't write to Program Files without admin permissions, unless you want the maps to end up being saved somewhere where nobody can find them (Virtual Store folder, like OpenSauce does).

H-Ext from 0.5.2.3 and older too has this issue for Virtual Store when should be in Halo's installion directory.

Running the game as admin is NOT recommended unless you want users to easily allow malware to infest their machine into total destruction. However, there is a solution to fix is to patch halo's executable with a manifest as I posted (http://halo.dangerzonestudio.com/windows-vista-and-above-issue-with-legacy-app-virtualization/) awhile ago without the need to run as admin. Or to disable the UAC.

Cortexian
February 15th, 2015, 02:56 PM
LOL, first you recommend not running as admin, then you say "just disable UAC".

lmao.

Btcc22
February 15th, 2015, 03:05 PM
Running the game as admin is NOT recommended unless you want users to easily allow malware to infest their machine into total destruction.

Halo isn't a virus, so there's not much problem there, unless you're using untrusted extensions. Either way, both of your solutions run the game with elevated privileges.

Obviously I'm biased but the correct solution is the way HAC handles it, as-is.

RadWolfie
February 15th, 2015, 04:22 PM
LOL, first you recommend not running as admin, then you say "just disable UAC".

lmao.

I said or... which I do not recommend either.


Halo isn't a virus, so there's not much problem there, unless you're using untrusted extensions. Either way, both of your solutions run the game with elevated privileges.

Obviously I'm biased but the correct solution is the way HAC handles it, as-is.

I am well aware of Halo isn't a virus. However, the users aren't aware of modules, what you so called "extensions", can be easily infected right inside the Halo's directory at any time. So, once a user running Halo as admin then the whole machine will easily get infected either locally or through network. My apology for my recent incomplete post, I meant to say it was a suggestion except for what you suggest your HAC users to run as admin isn't recommended like all other people in antivirus companies would say. Your method for putting maps in "My Games\hac\maps" folder while under virtualized is just fine and easier to find than VirtualStore folder (UAC) method...


both of your solutions run the game with elevated privileges.

Patching a halo executable with a manifest WITH "asInvoker" defined does not elevated privileges at all unless the user decide to run as administrator via right-click's context menu. Plus will tell if the user have permission to write into the Halo's directory or not.

Cortexian
February 18th, 2015, 05:06 PM
btcc, thought...

In conjunction with sehe / SAPP, do you think it would be possible to have SAPP trigger audio that plays on client systems (custom files downloaded on connecting to server if required via HAC2). For example, you could define a zone in SAPP, if you walk into it an audio file would play.

Just a thought for expanding the features of SAPP / HAC.

Btcc22
February 19th, 2015, 04:14 AM
It'd be possible, I suppose.

Cortexian
February 19th, 2015, 02:27 PM
I could see it conflicting with kill-packs though. If you do implement something like that, HAC2 should have a toggle to switch between local or server sound pack options or something probably. Or a way to disable server sounds if clients don't want them at all.

I just think it would be cool to implement custom kill-streak messages that are done server-side. Ex: Could have the Unreal Tournament sounds play for certain things. Audio warnings for entering disallowed zones could be handy for certain things.

Honestly, I can see a lot of uses haha.

Btcc22
February 19th, 2015, 04:12 PM
I had thoughts of allowing servers to send (sandboxed) medal packs to players but I wanted to have a more complete API available first. That's easier said than done though.

stunt_man
February 19th, 2015, 06:00 PM
*cringes*

Just had a flashback of when I used to play CS 1.6 and every time I would launch it from a new PC it took forever to join servers because they all had a shitload of custom sounds and stuff that needed to be downloaded beforehand.

That being said, times have changed and internet speeds are (generally) much faster. If these server-side sound packages could be limited to a certain size, it could be interesting.

Btcc22
February 19th, 2015, 06:07 PM
*cringes*

Just had a flashback of when I used to play CS 1.6 and every time I would launch it from a new PC it took forever to join servers because they all had a shitload of custom sounds and stuff that needed to be downloaded beforehand.

That being said, times have changed and internet speeds are (generally) much faster. If these server-side sound packages could be limited to a certain size, it could be interesting.

There would be a size limit and it would be an optional thing. It'd just be nice to be able to do things like run zombie medals in zombie servers, for example.

Cortexian
February 20th, 2015, 01:57 AM
My thoughts exactly. I wouldn't mind showing / playing things for the custom game modes I'm running. Gungame, Warthog Slayer, etc.

RadWolfie
February 21st, 2015, 12:17 PM
I'm down for it, just long as there are restriction apply how much custom pack(s) download to client side with size limit like stunt_man said (including optional like you said, Btcc). Just wondering what others might think, have an option to keep the downloaded custom pack so don't have to re-download? Of course with checksum validation check to be sure the custom pack is up-to-date or is using the same as the server's.


*cringes*

Just had a flashback of when I used to play CS 1.6 and every time I would launch it from a new PC it took forever to join servers because they all had a shitload of custom sounds and stuff that needed to be downloaded beforehand.

That being said, times have changed and internet speeds are (generally) much faster. If these server-side sound packages could be limited to a certain size, it could be interesting.

Yeah, I hate when that happen. However, similar issue I have is with Garry's Mod servers downloading custom packs which is insanely too much of them.


P.S. Still seeing "Error establishing a database connection" on your blog.anticheat.com section, just a fyi.

mywarthog
February 23rd, 2015, 11:12 PM
Had a completely out of left field idea. :beer:

This would require some working with SAPP as well, however... what about an in-game reporting/admin calling system? A SAPP server owner can setup something where they put the XFire IDs of moderators/admins into a config file or something like that, and if you have HAC2 and XFire, you can type the /report command into the servers chat, which will then work both server and client side, where the server will send the XFire IDs of the listed moderators/admins to the clients HAC2, which will then communicate to the clients XFire to send a pre-written message to an online moderator via XFire to join the server at IP xxx.xxx.xxx.xxx:yyyy for a report against player New001 from player New002. Of course, a server can turn this feature on/off, but this may be something worth looking into. I've seen something similar to this before in different games, and I don't see why HAC2 couldn't make this possible with Halo and SAPP. Of course, you'd need flood protection as well, and maybe a server variable could be added where the message could only be sent after x amount of reports.

Also, is there eventually going to be something where a server owner can require players to have HAC2 when they join their server?

Cortexian
February 24th, 2015, 10:29 AM
Or better yet, notifications by email. That way we don't really need a specific IM client.

Btcc22
February 24th, 2015, 12:55 PM
The Xfire notifications is a nice idea but I think it'd be too time-consuming for it to be worth it. Aside from the technical issues, doesn't Xfire require you to be friends with somebody before you can message them? I'm using an old client where that's the case but perhaps something's changed that I'm not aware of.

Email notifications would be quite easy to implement in SAPP/Phasor but email probably isn't the best delivery mechanism.

Had a completely out of left field idea. :beer:
Also, is there eventually going to be something where a server owner can require players to have HAC2 when they join their server?

This would be really easy for Oxide and/or Sehe to implement in their mods. I'd add the needed stuff to HAC if they were willing to add such a feature.

mywarthog
February 24th, 2015, 04:02 PM
The Xfire notifications is a nice idea but I think it'd be too time-consuming for it to be worth it. Aside from the technical issues, doesn't Xfire require you to be friends with somebody before you can message them? I'm using an old client where that's the case but perhaps something's changed that I'm not aware of.

Email notifications would be quite easy to implement in SAPP/Phasor but email probably isn't the best delivery mechanism.


I don't know. I know that you can message friends of friends and people in rosters of groups that you're in even if they're not your friend, but I don't know to what extent it goes. There's also the option of an XFire chat room... IRC might not be an impossible venue either...



This would be really easy for Oxide and/or Sehe to implement in their mods. I'd add the needed stuff to HAC if they were willing to add such a feature.

Yeah, that'd be sweet.

RadWolfie
February 25th, 2015, 12:06 AM
Like mywarthog said about xfire. I would like to extend this a bit, I had heard one of the gaming company did that. However, didn't successfully connect to a game server for players to make the reports due to lack of mod support back then.

I'm sure Oxide will not implement this type of feature in his Phasor except possibility extend network part of API to lua script for network communication (which is already done for sender, just haven't work on receiver part last time I checked). So, it's pretty much up to Phasor's community add this feature directly from lua script.


Email notifications would be quite easy to implement in SAPP/Phasor but email probably isn't the best delivery mechanism.

Very true, although shouldn't be hard with gmail or yahoo accounts since they do allow external smtp. Just doesn't allow alter email address other than it's own account name, or unless is using paid account which is possible with their domain name.

SpamOP
February 26th, 2015, 07:02 AM
i keep getting exception error when i try to enable custom chat and medals.
any solutions to fix this?

Btcc22
February 26th, 2015, 08:55 AM
Install this: http://www.microsoft.com/en-us/download/details.aspx?id=8109

t3h m00kz
March 5th, 2015, 07:33 PM
can I make hitmarkers yet? :crylancer:

Btcc22
March 5th, 2015, 10:02 PM
can I make hitmarkers yet? :crylancer:

No. :(

t3h m00kz
April 6th, 2015, 12:36 PM
http://freelancer.modacity.net/pics/crylancer.gif

Btcc22
April 8th, 2015, 09:48 PM
Actually, I was wrong (ish). I did add a hacky way for you to add hitmarkers but I didn't enable it in the release version. Here's a test build (http://maps.haloanticheat.com/client/hac_test.dll) with it enabled; rename it to hac.dll and drop it into your Halo folder. To use it, have your Lua script register for the 'HIT_DETECT' event.

If you want your hitmarkers to be animated, you'll have to use a spritesheet. Since I haven't documented that function anywhere, here's the signature:



const std::string& name,
bool loop,
int rows,
int columns,
int fps, // framerate for playback
int blanks, // number of blank frames at the end of the spritesheet
int loopBegin // frame # to begin loop playback from


There's an example of using them in the Halo 4 medal script.



create_animation("blue_flash")
add_keyframe("blue_flash", 0, 0.85, 4)
add_keyframe("blue_flash", 0, 1.3, 0)
add_keyframe("blue_flash", 150, 1.0, 0)
create_sprite("blue_flash", "images/h4glowsprite.png", "blue_flash")
sprite_properties("blue_flash", false, 1, 4, 30, 0, 0)

t3h m00kz
April 9th, 2015, 03:23 PM
!

Dude you're the best. I'll check this out.

t3h m00kz
August 3rd, 2015, 07:48 PM
I'm not seeing a way to reposition the sprites to the center of the screen. Is this possible?

Tnnaas
August 3rd, 2015, 09:27 PM
Also can we change the font on the custom chat?

Rentafence
August 3rd, 2015, 09:40 PM
Can you make this an app in the windows store

Btcc22
August 4th, 2015, 01:12 PM
I'm not seeing a way to reposition the sprites to the center of the screen. Is this possible?

You should be able to just set the coords to 0.5, 0.5.


Also can we change the font on the custom chat?

In the current version, no. In the next version, whenever it's released, yes.


Can you make this an app in the windows store

Don't spoil Microsoft's Gamescom reveals.

t3h m00kz
August 4th, 2015, 02:55 PM
Silly me, I seem to have forgotten how to load packs. Seems the blog has been down for a while.

E:
Found a decent resource.

http://halosources.blogspot.com/2015/05/halo-anticheat-2-hac-ultimate-guide.html

supersniper
August 9th, 2015, 09:45 PM
Here's a list that I have compiled over the years.

Key shortcuts (will be configurable in the near future):

Bookmark controls:

F4 – Add current server to bookmarks.
F5 – View bookmarks.
Alt + bookmark number - Join bookmarked server.
Delete + bookmark number – Delete a bookmark.
Ctrl + Alt/Delete + bookmark number – Selects bookmarks in the range 11-20 (example, ctrl + alt + 4 will join bookmark 14).

Field of view controls:

F6 – Change field of view. Move the mouse up/down to control it. Press F6 again when you’re done.
Left shift + F6 – Reset field of view to the default (70).

HUD colour controls:

F9 – Set the HUD colour.
Shift + F9 – Reset the HUD colour

Sightjacker controls:

F7 – Enable/disable the sightjacker.

Console Commands:

hac_widescreen 0/1 Turn HAC 2’s HUD scaling fix on/off. The default is on.
scope_blur 0/1 Toggle between the blur effect when using scopes in scoped weapons.
play_during_queue 0/1 Allows you to remain in the current game until a free slot is available in the bookmarked server you attempted to join.
draw distance Distance is the number of world units to draw. The default is 1024 and HAC uses 4096 for maps that benefit from increased draw distances.
recalculate “map name” Recalculates the checksum for the given map. This is aimed at map makers that don’t want to use the cached checksum during development, given that the checksum will change with each compile. Use quotation marks for map names with spaces.
budget_show 0/1 Displays the current number of BSP polygons being drawn and the remaining default/HAC budget. Once the limit is hit, any polygons that’d push the budger over the limit will appear has gaps in the geometry.
fov value in degrees Can be used as an alternative to F6 for setting your field of view.
hac_flush_cache Clear the entire checksum cache. There’s no real reason to use this but it’s there anyway.
copy Copies the information for the current server to clipboard. This is useful for pasting the connect ip:port password information over Xfire/Steam etc.
copy bookmark number Same as above except it copies the information for a bookmarked server instead of the current server.
devmode 0/1 Toggles devmode on Halo CE.
custom_chat 0/1 Toggles custom chat.
font_size Changes font size for custom chat.
optic Display all available medal packs.
optic load <pack name> Load a medal pack. For example, optic load halo4.
optic unload Stop the medal system. You do not need to use unload to simply load
visible_objects <number> Control the number of objects drawn. Most users will have no need for this command.


I have no idea why the horizontal scrolling isn't showing up in the post, but in post preview it does. Sorry about that.

stunt_man
August 12th, 2015, 07:51 AM
In the current version, no. In the next version, whenever it's released, yes.


Would be great if you included a command to disable chat completely :)

Jaedog11
September 22nd, 2015, 11:13 PM
Hey Btcc22, created an account just to ask if or when will Halo anticheat 2 get offline support? I keep getting "Update error! Invalid network address" when trying to boot Halo PC offline.

Btcc22
September 23rd, 2015, 01:56 AM
Hey Btcc22, created an account just to ask if or when will Halo anticheat 2 get offline support? I keep getting "Update error! Invalid network address" when trying to boot Halo PC offline.

Try this (http://maps.haloanticheat.com/release.zip).

Jaedog11
September 23rd, 2015, 04:17 PM
Thank you so much! I''ll make sure to bookmark this page in case for the future!

t3h m00kz
September 29th, 2015, 05:31 PM
You should be able to just set the coords to 0.5, 0.5.

I've tried experimenting with the coords, and I'm not certain which value does what. I'm hitting situations where messing with the values and removing keyframes causes absolutely nothing to appear on screen.

"add_keyframe("h4_ani", x, y, z)"

What do X Y and Z equate to?

Btcc22
September 29th, 2015, 06:03 PM
"add_keyframe("h4_ani", x, y, z)"

What do X Y and Z equate to?

The name of the animation that the keyframe belongs to, the time (e.g. 1000 for 1 second into the animation), the value for the transform and the transform type.

For example, from the Halo 4 script:


add_keyframe("h4_ani", 0, 2.0, 0)
add_keyframe("h4_ani", 30, 2.0, 0)
add_keyframe("h4_ani", 90, 1.0, 0)


This animates the size of the medal over the first 90ms of the animation. It starts off at 200% size and stays that way for the first 30ms. It then shrinks to normal size (1.0) over the subsequent 60ms.

The transform types are:


KEYFRAME_SCALE, (0, does this X and Y at the same time)
KEYFRAME_SCALE_X, (1)
KEYFRAME_SCALE_Y, (2)
KEYFRAME_ROTATION, (3)
KEYFRAME_OPACITY, (4)
KEYFRAME_RED, (5)
KEYFRAME_GREEN, (6)
KEYFRAME_BLUE, (7)
KEYFRAME_POSITION_X, (8)
KEYFRAME_POSITION_Y (9)
};


There are two other versions of add_keyframe that you'll see elsewhere in the other scripts that take more arguments.

add_keyframe(same, same, same, same, tween type)

The tween type allows you to control the interpolation between keyframes and the accepted values are:


LINEAR, (0)
EASE_IN, (1)
EASE_OUT, (2)
EASE_IN_OUT (3)


If none of the provided tween types given you the animation that you want, you can provide your own bezier curve values. You can find a nice little tool over at http://cubic-bezier.com. Just mess around with the curve there, find something you like and then plug the values in.

add_keyframe(same, same, same, same, curve value #1, curve value #2, curve value #3, curve value #4)

t3h m00kz
September 29th, 2015, 06:15 PM
Surprisingly speedy reply. This system is far more intricate than I thought! All of this info is exactly what I was looking for, thanks so much for the clarification

Btcc22
September 29th, 2015, 06:33 PM
Surprisingly speedy reply. This system is far more intricate than I thought! All of this info is exactly what I was looking for, thanks so much for the clarification

No problem. Let me know if it does/doesn't work out.

t3h m00kz
September 29th, 2015, 09:36 PM
Quick mockup. Lots of unnecessary lines.

https://dl.dropboxusercontent.com/u/50590573/hitmarkers_1.0.zip

I don't have HCE installed on my PC at home hilariously enough, but it functions!! Though my game exceptions every now and then... Not certain if it's caused by the pack or what



api_version = "1.0.0"


--[[
I did add a hacky way for you to add hms but I didn't enable it in the release version.
Here's a test build with it enabled; rename it to hac.dll and drop it into your Halo folder.
To use it, have your Lua script register for the 'HIT_DETECT' event.


If you want your hms to be animated, you'll have to use a spritesheet. Since I haven't documented that function anywhere, here's the signature:


const std::string& name,
bool loop,
int rows,
int columns,
int fps, // framerate for playback
int blanks, // number of blank frames at the end of the spritesheet
int loopBegin // frame # to begin loop playback from

There's an example of using them in the Halo 4 medal script.

create_animation("blue_flash")
add_keyframe("blue_flash", 0, 0.85, 4)
add_keyframe("blue_flash", 0, 1.3, 0)
add_keyframe("blue_flash", 150, 1.0, 0)
create_sprite("blue_flash", "images/h4glowsprite.png", "blue_flash")
sprite_properties("blue_flash", false, 1, 4, 30, 0, 0)
]]--


function register_callbacks()
create_animations()
register_callback(cb['HIT_DETECT'], "hit_detect")
--register_callback(cb['PLAYER_KILLS'], "player_kills")
end

function display(message, name, sound, low_priority)
low_priority = low_priority or false
hud_message(message)
queue_audio(sound, low_priority)
display_medal(name)
end

function hit_detect(event, killer, victim, player, timestamp)
if(killer == player) then


--if weapon has small ret
--display("Hit!", "hm_Small", "audio/hm_default.wav")

--if weapon has large ret
display("Hit!", "hitmarker_small_medal", "audio/hm_default.wav")
end
end

--[[function player_kills(event, killer, victim, player, timestamp)
if(killer == player) then
display("Kill!", "hitmarker_large_medal", "audio/hm_killshot.wav")
end
end]]--

function create_animations ()


create_animation("h4_ani")
--add_keyframe("h4_ani", 0, 2.0, 0)
--add_keyframe("h4_ani", 30, 2.0, 0)
--add_keyframe("h4_ani", 60, 1.5, 0)
----add_keyframe("h4_ani", 90, 1.3, 0) --originally commented
--add_keyframe("h4_ani", 90, 1.0, 0)


--add_keyframe("h4_ani", 0, 0.2, 4)
--add_keyframe("h4_ani", 30, 0.2, 4)
--add_keyframe("h4_ani", 90, 0.75, 4)
--add_keyframe("h4_ani", 1620, 0.75, 4)
--add_keyframe("h4_ani", 1710, 0.0, 4)

--add_keyframe("h4_ani", 1710, 0.5, 0.5)

add_keyframe("h4_ani", 0, 0.49, 8)
add_keyframe("h4_ani", 0, 0.52, 9)

add_keyframe("h4_ani", 0, 1.5, 0)
add_keyframe("h4_ani", 100, 2, 0)

add_keyframe("h4_ani", 0, 1, 4)


--Main animation

create_animation("main")
add_keyframe("main", 100, 1, 4)
--add_keyframe("main", 0, 0.010, 8)
--add_keyframe("main", 0, 0.49, 9)
add_keyframe("main", 0, 1.0, 0)
add_keyframe("main", 1710, 1.0, 0)

--Slide animation

--create_animation("slide")
--add_keyframe("slide", 0, 0.0, 8)

--HitMarker Large

create_sprite("hitmarker_large", "images/hm_large.png", "h4_ani")
create_medal("hitmarker_large_medal", "main")
attach_sprite("hitmarker_large_medal", "hitmarker_large")
--attach_sprite("hitmarker_large_medal", "blue_flash")
--medal_slide_animation("hitmarker_large_medal", "slide")

--HitMarker Small

create_sprite("hitmarker_small", "images/hm_test2.png", "h4_ani")
create_medal("hitmarker_small_medal", "main")
attach_sprite("hitmarker_small_medal", "hitmarker_small")
-- attach_sprite("hitmarker_small_medal", "blue_flash")
-- medal_slide_animation("hitmarker_small_medal", "slide")


end

t3h m00kz
October 5th, 2015, 05:36 PM
Updated Hitmarkers. Got Kill Markers working!!! Cleaned up the code a ton

I'm still running into occasional exceptions. Like one every two to four games. I wouldn't really feel safe releasing this to too many people in this state.. Uncertain if it's Optic or my script

http://i.imgur.com/OFC69RG.png
http://i.imgur.com/9nynoR5.png

https://dl.dropboxusercontent.com/u/50590573/hitmarkers1.1.zip

js3frEQc5Bc



api_version = "1.0.0"


kills = 0;


function register_callbacks()
create_animations()
register_callback(cb['HIT_DETECT'], "hit_detect")
register_callback(cb['PLAYER_KILLS'], "player_kills")
end

function display(message, name, sound, low_priority)
low_priority = low_priority or false
hud_message(message)
queue_audio(sound, low_priority)
display_medal(name)
end

function hit_detect(event, killer, victim, player, timestamp)
if(killer == player) then
if(kills == 1) then
display("Kill!", "killmarker_medal", "audio/hm_kill.wav")
kills = 0;
else
display("Hit!", "hitmarker_medal", "audio/hm_hit.wav")
end
end
end

function player_kills(event, killer, victim, player, timestamp)
if(killer == player) then
kills = 1;
end
end

function create_animations ()


--Hitmarker Ani

create_animation("hitmarker_ani")

add_keyframe("hitmarker_ani", 0, 0.49, 8) -- x pos
add_keyframe("hitmarker_ani", 0, 0.52, 9) -- y pos

add_keyframe("hitmarker_ani", 0, 1.5, 0) -- scale
add_keyframe("hitmarker_ani", 100, 2, 0) -- scale

add_keyframe("hitmarker_ani", 0, 1, 4) -- opacity


--Main Hitmarker

create_animation("main_hitmarker")


add_keyframe("main_hitmarker", 0, 1.0, 0) -- scale
add_keyframe("main_hitmarker", 1710, 1.0, 0) -- scale


add_keyframe("main_hitmarker", 100, 1, 4) -- opacity

--HitMarker

create_sprite("hitmarker", "images/hm_hit.png", "hitmarker_ani")
create_medal("hitmarker_medal", "main_hitmarker")
attach_sprite("hitmarker_medal", "hitmarker")


--killmarker Ani

create_animation("killmarker_ani")

add_keyframe("killmarker_ani", 0, 0.49, 8) -- x pos
add_keyframe("killmarker_ani", 0, 0.52, 9) -- y pos

add_keyframe("killmarker_ani", 0, 1.5, 0) -- scale
add_keyframe("killmarker_ani", 100, 2, 0) -- scale

add_keyframe("killmarker_ani", 0, 1, 4) -- opacity


--Main killmarker

create_animation("main_killmarker")


add_keyframe("main_killmarker", 0, 1.0, 0) -- scale
add_keyframe("main_killmarker", 1710, 1.0, 0) -- scale


add_keyframe("main_killmarker", 100, 1, 4) -- opacity

--killMarker

create_sprite("killmarker", "images/hm_kill.png", "killmarker_ani")
create_medal("killmarker_medal", "main_killmarker")
attach_sprite("killmarker_medal", "killmarker")
end


You like that shit Rent?

E: Fixed video..

E2: Pix

Btcc22
October 6th, 2015, 05:06 PM
I'm still running into occasional exceptions.

It shouldn't be possible to crash the game with an Optic script but I'll give your script a smoke test to see if I can reproduce it. You should check to see if your game still crashes with one of the provided Optic packs.

t3h m00kz
October 6th, 2015, 05:14 PM
I should note it seems to occur most with things like an SMG or something with a high ROF. I haven't hit it in, say, a sniper server

Btcc22
October 6th, 2015, 05:35 PM
I should note it seems to occur most with things like an SMG or something with a high ROF. I haven't hit it in, say, a sniper server

Thanks. That'd actually make sense if there's a bug in the event code used for the markers.

t3h m00kz
October 6th, 2015, 06:34 PM
oh, also.. I have since changed the code in the download link tie the killmarker directly to the kill detect, rather than setting 'kills = 1' and running it from the hit detect if kills == 1.

I haven't tested it much since I updated it, couldn't tell you if it still exceptions. has it been working fine for you?

Oh also, side question: When multiple medals are called, is it possible to prevent the medal from sliding to the side?

Btcc22
October 6th, 2015, 08:10 PM
Oh also, side question: When multiple medals are called, is it possible to prevent the medal from sliding to the side?

Yes but I'll have to check the code to figure out how. I'll post again with the details after further testing of your script.

t3h m00kz
October 8th, 2015, 07:34 PM
So I've narrowed down what was crashing, it was something on my end.

I was attempting to replace the hitmarker with a kill marker when a shot kills, which resulted in strange inconsistencies, as the hit/kill can come before and after one another.

This code was crasing:



function hit_detect(event, killer, victim, player, timestamp)
if(killer == player) then
if (kill == 1) then
display("Kill!", "killmarker_medal", "audio/hm_kill.mp3");
kill = 0;
else
display("Hit!", "hitmarker_medal", "audio/hm_hit.mp3");
end
end

function player_kills(event, killer, victim, player, timestamp)
if(killer == player) then
kill = 1;
end
end

This, more straight forward although a bit grosser causing two medals to call simultaneously, is not crashing.



function hit_detect(event, killer, victim, player, timestamp)
if(killer == player) then
display("Hit!", "hitmarker_medal", "audio/hm_hit.mp3")
end
end

function player_kills(event, killer, victim, player, timestamp)
if(killer == player) then
display("Kill!", "killmarker_medal", "audio/hm_kill.mp3")
end
end

Btcc22
October 10th, 2015, 06:57 PM
That shouldn't cause a crash (not possible, in theory) and I wasn't able to reproduce it but I'll run a few tests with that snippet of code to be sure.

t3h m00kz
October 14th, 2015, 11:29 PM
Not certain if this is anything you can fix on your end, but it appears as if running "multiplayer_hit_sound_volume 0" completely disables hit detection. Seems more like something built into the CE engine

Btcc22
October 15th, 2015, 02:57 PM
Not certain if this is anything you can fix on your end, but it appears as if running "multiplayer_hit_sound_volume 0" completely disables hit detection. Seems more like something built into the CE engine

HAC's hit event relies on Halo triggering its own hit sound event - it was the quickest way to hack it in for testing. I can fix it without too much of a problem.

t3h m00kz
October 15th, 2015, 03:36 PM
cool bro cool~

any idea when this update is going to be pushed out to everyone?

Btcc22
October 15th, 2015, 04:06 PM
No ETA, I'm afraid! There's some other stuff I'd like to finish up before it's updated.

Patxi
October 16th, 2015, 01:51 PM
No ETA, I'm afraid! There's some other stuff I'd like to finish up before it's updated.

Will the next HAC2 work together with OS on W10 and W8?

Just that simple question, I know I can have 2 halo installs one with HAC2 and another with OS,but you know If i can get them to work on W10...

t3h m00kz
October 16th, 2015, 02:10 PM
I know I can have 2 halo installs one with HAC2 and another with OS

elaborate. this sounds sick

Btcc22
October 17th, 2015, 02:46 AM
Will the next HAC2 work together with OS on W10 and W8?

Just that simple question, I know I can have 2 halo installs one with HAC2 and another with OS,but you know If i can get them to work on W10...

No guarantees but it's on my list of things to look into.

Tnnaas
October 17th, 2015, 09:27 AM
Any chance we'll see a fix for scaling with .ui_widget_definition and .hud_globals tags?

Btcc22
October 18th, 2015, 03:06 AM
Any chance we'll see a fix for scaling with .ui_widget_definition and .hud_globals tags?

Could you expand on that? The current scaling fix works by modifying those tags in memory.

Tnnaas
October 18th, 2015, 07:16 AM
34143415
At 4:3, everything works perfectly, as it should. It's the aspect ratio the game was designed to use.

34163417
As we increase the width, we see stretching occur on menus and the motion sensor mask.

34183419
The motion sensor overlay (the static image) is part of cyborg.unit_hud_interface, but the mask isn't.
Both the mask and the blips are referenced in default.hud_globals. Text also gets stretched, I just remembered.
The menus, pause, loading, postgame, etc. are all made from .ui_widget_definition tags. (You knew all of that, I'm just laying out all the cards here)
Open Sauce had a fix for most, if not all, of that; I'm not exactly sure how, but it seemed to simulate 4:3 regardless of resolution.

34203421
This stretching can be extremely problematic as you further increase the ratio.
There's actually a point where text no longer gets rendered.

I also asked about scopes earlier, but I thought about a workaround using crosshairs (Innergoat asked me if that's how I did it and I misunderstood the question, whoops) instead of using masks. The only issue with that is convolution now goes to the center of the screen (used mask alpha, so a workaround might be black RGB with an alpha for the mask, but it will still stretch) and night vision won't work (not sure how that worked yet, probably used any black RGB for masking).
That's not relevant to this issue though.

I was also glancing around at other things exclusively referenced in default.hud_globals - just to be sure, I don't know everything you've modified to make work in HAC 2 - and noticed waypoint arrows and damage arrows don't get stretched.

Btcc22
October 18th, 2015, 09:14 AM
Sadly, scaling the masks through the tags doesn't work. The game just ignores any scaling values in those tags.

In regards to the UI, scaling the HUD through tags is fairly straightforward thanks to the elements being positioned relative to anchor points (top/left/bottom/right) but with the UI, I'd assume everything is placed with absolute screen co-ordinates, which makes things slightly more problematic, especially if custom UIs need to be handled.

OpenSauce went about things a different way which gave them a scaled UI but squished the HUD in the middle. I'm not sure what technique they're using these days (perhaps a hybrid of their previous technique and modifying the tags) but I think the only difference between the two programs is the motion sensor blip.

To have a scaled UI in HAC, I'd likely have to implement something similar to OS and ultimately, I didn't feel that the stretched UI was worth fixing relative to the time it'd take to do so and I don't think the end result, aside from the main menu, looks particularly great either.

msalerno
December 9th, 2015, 07:28 PM
The HAC2 website is down, domain name haloanticheat.com seems to have expired.

This makes HAC2 crash Halo on startup. The "fix" for now is to copy hac.dll from your local temp folder, to the main directory where Halo is installed.

You can do this for now, to fix this:

Press the windows key, hold, and press "R" (Windows-R) - this will bring up the "Run" dialog.

For Windows Vista, 7, 8, and 10, enter:

%USERPROFILE%\appdata\local\temp

For Windows XP, enter:

%USERPROFILE%\Local Settings\temp

This will open a window where you can find your copy of hac.dll

Right-click on the file, and select Copy

Then, Windows+R again.

For 64-bit versions of windows, enter this for Halo CE:

C:\Program Files (x86)\Microsoft Games\Halo Custom Edition

For 32-bit versions:

C:\Program Files\Microsoft Games\Halo Custom Edition

Another window will open with the contents of your Halo install directory.

Right-click anywhere in the file list, and select Paste

Windows will probably ask you if you want to do this with administrator privileges, say Yes

Once the file is copied into the Halo install directory, it will (should) no longer crash on startup if it cannot contact haloanticheat.com

If Btcc22 doesn't come up with a fix for this quickly, we at Realworld® will come up with a permanent fix for this. Stay tuned.

:haw:

Any questions, feel free to talk to me on Evolve at msalerno or email me directly at msalerno@kilonet.net and we'll figure out something.

Tnnaas
December 9th, 2015, 08:29 PM
The HAC2 website is down, domain name haloanticheat.com seems to have expired.Old. Not news.


This makes HAC2 crash Halo on startup.lmao


The "fix" for now is to copy hac.dll from your local temp folder, to the main directory where Halo is installed.Did you not follow the installation instructions (http://www.modacity.net/forums/showthread.php?24960-HAC-2-Release&highlight=Installation)?


If Btcc22 doesn't come up with a fix for this quickly, we at Realworld® will come up with a permanent fix for this. Stay tuned.Can't wait. best of luck. Have fun accomplishing this task. I certainly expect outstanding results from you in the future.
Keep us posted and show us what you got, man.


Any questions, feel free to talk to me on Evolve at msalerno or email me directly at msalerno@kilonet.net and we'll figure out something.I'll be sure to come directly to you for any assistance I need with Btcc22's Halo Anticheat 2.

Vaporeon
December 9th, 2015, 11:00 PM
Is there an archive of all HAC 2 hosted maps that can be downloaded on one hit now that the automatic map downloading is dead?

supersniper
December 10th, 2015, 02:04 AM
it's called halomaps.org bruh

And Tnass, he's not wrong. hac2 does make haloce crash on start up you can't even download the program from the download link on the main page, because of this there's like only 80 players playing halo ce. However his work around didn't make sense to me because there was no hac.dll file in the location he described just a hac.tag file?

Vaporeon
December 10th, 2015, 04:34 AM
I don't think halomaps lets you dwonlaod large numbers of maps at once.

Anyway here is a mirror of the HAC 2 2.2.0.7a test dll that was posted here a while back. 3429
I don't have 2.2.0.6.

Tnnaas
December 10th, 2015, 05:34 AM
And Tnass, he's not wrong. hac2 does make haloce crash on start up you can't even download the program from the download link on the main page, because of this there's like only 80 players playing halo ce.I stopped paying attention to Halo and Halo related things on November 15th, 2015, at around 06:49 PM my local time, so my previous post was based 100% on any information or misinformation I had prior to then.



The HAC2 website is down, domain name haloanticheat.com seems to have expired.Old. Not news.I was wrong, the domain expiration is new.



This makes HAC2 crash Halo on startup.lmaoI didn't try to run Halo to check this because of my aforementioned lack of caring about it.



The "fix" for now is to copy hac.dll from your local temp folder, to the main directory where Halo is installed.Did you not follow the installation instructions (http://www.modacity.net/forums/showthread.php?24960-HAC-2-Release&highlight=Installation)?I recall a few months ago there was a hac.dll fix or something of that sort on Halomaps.org forums that Btcc22 was testing. My mistake for thinking that was loader.dll



If Btcc22 doesn't come up with a fix for this quickly, we at Realworld® will come up with a permanent fix for this. Stay tuned.Can't wait. best of luck. Have fun accomplishing this task. I certainly expect outstanding results from you in the future.
Keep us posted and show us what you got, man.


Any questions, feel free to talk to me on Evolve at msalerno or email me directly at msalerno@kilonet.net and we'll figure out something.I'll be sure to come directly to you for any assistance I need with Btcc22's Halo Anticheat 2.In all seriousness, try to contact Btcc22 directly.


However his work around didn't make sense to me because there was no hac.dll file in the location he described just a hac.tag file?I took a look into my temp folder and found it.

If there's a need for this version, info below, I can attach it right here: 3431
3430

Harbinger
December 10th, 2015, 12:34 PM
The design of HAC 2 was such that it could be easily updated by "Phoning Home", something which Dennis (of Halomaps) wasn't happy about (and as it appears, quite rightly so) since it depends on a single privately registered domain: haloanticheat.com being available 24/7, and which now it seems that this domain registration has now expired, leaving literally 100's of HAC 2 users potentially up the Creek and without a Paddle.

In order for HAC 2 to work, a loader.dll (placed in the controls folder) is responsible for initiating the process, with the most recently updated hac.dll downloaded to the temp directory to get around Administrative Rights issues on Limited User Accounts. However it's entirely possible to override the update check by simply placing the hac.dll in the game root directory. Doing so prevents further updates occurring, but allows HAC 2 basic functionality to operate independently of haloanticheat.com and more importantly, without crashing the game upon launch. This fix alone though, wont permit any In-game Map Downloading, since this precess currently depends on haloanticheat.com being operational.

For those users who have a functional hac.dll located in their temp folder, then the process of copying it over to the game root directory is fairly painless, but not every player (or new user) will have hac.dll downloaded.

Fortunately you can download the most recent version of hac.dll (courtesy of Realworld Guild) here: http://realworldce.com/apps/Hac2/hac.zip

loader.dll is available (again, courtesy of Realworld Guild) here: http://realworldce.com/apps/Hac2/loader.zip

The Full Original Topic and ALL associated HAC 2 files are available here: http://www.realworldce.com/viewtopic.php?f=21&t=4481

Harb.
Admin Core: Realworld Guild

Harbinger
December 10th, 2015, 06:52 PM
Sorry to double post.

It appears that haloanticheat.com is back, and registered to the correct nameservers once again. It must just have been a case of Btcc22 having a long TTL (time to live) on his DNS records.

Realworld Guild acts as an Official HAC 2 Map Download Mirror... and although the Map Download process is automated, it's a one-way process. My concerns were that if haloanticheat.com disappears, then under the current methodology HAC 2 functionality ceases. It's never has been concerning distrusting Btcc22 or his efforts, but it still doesn't solve the problem of the game now having so much reliance on just Btcc22 or how it reacts when it loses connectivity to it's site.

It shouldn't crash the Halo client.

Vaporeon
December 10th, 2015, 11:48 PM
Is Btcc22 still working on this? The development blog has been dead for ages. There was going to be an update that addressed this problem.

Harbinger
December 11th, 2015, 06:03 AM
Btcc22 has posted (today):
The intention was to switch to signed updates to ensure that the updater will only accept files that I've produced. Admittedly, development of HAC2 has stagnated thanks to a combination of other projects, life and (mostly) needing a break from Halo-related development. With that said, I'll do what I can to replace the ailing loader.dll by the end of the month. Exacted from this thread (Halomaps) here: http://forum.halomaps.org/index.cfm?page=topic&topicID=48885 So judging from that reply, HAC 2 development work has not ceased, but only stagnated due to other pressures. This is good news, and which hopefully lessons will be learnt by all.

t3h m00kz
December 25th, 2015, 12:40 PM
BTCC22,

A bit of a scrub-tier question regarding hitmarkers.

With each hit detect, I'm wanting to script to wait 0.1 seconds while the Kill thread runs before determining if a hit detect was a killing shot (right now there's some gross overlap). However it seems Lua does not come stock with a sleep or wait command.

I've done some research, and I haven't found a reliable way to implement a sub-second sleep command that works without other libraries. This is what I stumbled across:
http://lua-users.org/wiki/SleepFunction

I was wondering if there's a way to get this working with your API based on the game's tick rate.

I'm trying to get this working:



function player_kills(event, killer, victim, player, timestamp)
if(killer == player) then
kills = kills + 1
end
end

function hit_detect(event, killer, victim, player, timestamp)
Sleep(0.1)
if(killer == player) then
if (kills == 1) then
display("Kill!", "killmarker_medal", "audio/hm_kill.mp3")
kills = 0
else
display("Hit!", "hitmarker_medal", "audio/hm_hit.mp3")
end
end
end


THANKS HOPE YOU'RE STILL AROUND

Btcc22
December 25th, 2015, 05:24 PM
Can confirm as still around. I'm afraid there's nothing in the API that'd allow you to use the engine's ticks to sleep.

t3h m00kz
December 26th, 2015, 01:56 PM
fuuuu a'ight :}

t3h m00kz
February 17th, 2016, 03:38 AM
BUMP

BTCC22 have you considered adding 3rd person/viewmodel support? I'd love to see these features

http://hce.halomaps.org/images/files/lg/i6jj0m.jpg

Tnnaas
September 15th, 2016, 08:25 PM
Bump

Also
Fixed dude, thanks.

kendsie
December 18th, 2016, 10:46 AM
So is the server side ANTICHEAT part of this not working now?
thanks
BMF