PDA

View Full Version : [APP] Optic



sehe
July 2nd, 2012, 07:15 PM
Optic is a extension for Halo which provides Halo Reach style Killstreak/Multikill medals and sounds.
It also has client-sided stats tracking.

Demo Videos:

http://www.xfire.com/video/5703d8/
(old version)

Current:
http://www.youtube.com/watch?v=_0FzmUcgGp8
(Sean's vid)

SS from Stats Tracking:
http://screenshot.xfire.com/s/123566345-4.jpg

Downloads:
http://www.xhalo.tk/downloads/Optic.7z
or
http://www.xhalo.tk/downloads/Optic.zip

It works with all versions of Halo and Halo CE, but its incompatible with "Open Sauce", because it loads two d3d9.dll's (I didn't even no its possible tbh lol), and I cba'd fix it yet.

Before you ask, read the included "Optic - Read Me.txt" !
I will be on holiday till Sunday, so if you have any problems, post here and wait, I'll check the feedbacks when I'm back at home again.
Warning! I can't help if you just say "This shit ain't workin!!!!!!!444négy", please read the Read Me txt first, and if you still have problems post here with some details and I'll contact to you via Xfire (lgbalazs).

Edit: If you're using my chat (http://www.modacity.net/forums/showthread.php?24285-Halo-Chat-V2-No-more-textlag!), don't forget to update it as well in order to make it compatible.

FORERUNNER
July 3rd, 2012, 02:49 AM
Nice Job'n Mate!

LoneWolf
July 3rd, 2012, 06:11 AM
Oh nice.

ausprime
July 3rd, 2012, 07:07 AM
Thanks Heaps! :iamafag:

EagerYoungSpaceCadet
July 3rd, 2012, 08:29 AM
What's with all these one post users?

Anyway, is this like Sean's app, but you can see the medals and everything ingame? That's neato.

Also, I think you can use OpenSauce with d3d9 hacks by renaming the d3d9.ddl into d3d9_proxy.dll or something, but I'm not so sure, can anyone confirm this?

FluffyDucky™
July 4th, 2012, 12:41 AM
Fail. Keeps crashing my game did everything you said to do.

Aer
July 4th, 2012, 09:54 PM
hello I think I have an error of incompatibility with enb-series :saddowns: now has a solution I can not play?
PS: I'm using google translator and it is my first post?:tinfoil:

Cloud
July 4th, 2012, 11:05 PM
Very nice.

ausprime
July 5th, 2012, 12:33 AM
I requested a link for this, to sehe, on xfire. So i thought it would be nice to say thank you.
Post number 2 compleate! xD

Evo
July 5th, 2012, 03:39 AM
hey, im getting a problem i cant even start halo after installing Optics. i installed it on Halo CE and Halo FV. On both of them i get stuck at loading screen. then it get hanged :(

Edit: i fixed it my antivirus was conflicting saying optics.dll a virus

ausprime
July 5th, 2012, 06:33 AM
OK,
You might have to go into your halo custom edition folder.
in there u will see the controls folder. In the controls folder, there should be 4 files.

Controls.dll
controls.ini
Haloalder.dll
Optic.dll

If you don't see the 4 files, you need to get them.
If your antivirus program stops you from downloading the files. You need to fix your antivirus program.

FluffyDucky™
July 5th, 2012, 12:39 PM
Gathering exception data..

staticchanger
July 7th, 2012, 10:54 AM
Sweet this is awesome

sehe
July 8th, 2012, 04:43 AM
No lol, you don't have to put Optic.dll to controls folder, thats causing the crashes. Put it only to Halo CE/Haloader folder.

thepro1998
July 9th, 2012, 04:28 AM
Hey Sehe,

Does this mod work on Halo PC? I've tried adding the mod into the Halo PC folder but it keeps crashing.

sehe
July 10th, 2012, 12:00 PM
Some incredibly bad luck with signatures caused Optic to hook into bad place in HPC, thats why its crashed.
Original signature: "6A 00 51 52 50"
Code supposed to be found:

6A 00 PUSH 0
51 PUSH ECX
52 PUSH EDX
50 PUSH EAX
E8 18000000 CALL 00460BE0
83C4 10 ADD ESP,10
...

Code found in HPC:

8B0D F8C86A00 MOV ECX,DWORD PTR DS:[6AC8F8]
51 PUSH ECX
52 PUSH EDX
50 PUSH EAX
E8 F97E1F00 CALL 00639800
...
Srsly what's the chance for this? lol
It should be fine now, re-download it and copy the new Optic.dll from Haloader folder to Halo\Haloader.

Links:
http://www.xgclan.com/sapp/downloads/Optic.7z
or
http://www.xgclan.com/sapp/downloads/Optic.zip

Patrickssj6
July 10th, 2012, 04:40 PM
Your signature is too short? ^^

Amit
July 10th, 2012, 09:33 PM
Doesn't work with OS? Okay...http://img543.imageshack.us/img543/1738/okay.gif

fallennn
July 10th, 2012, 11:40 PM
I was wondering if you could add an option to toggle the halo reach sounds/original sounds
because I prefer the original double kill etc sounds, or is there a way to change it from the reach sounds

other than that good app :D

thanks in advance

edit: extracted original sounds from HMT and replaced with the ones in the sounds folder

thepro1998
July 11th, 2012, 08:26 AM
Hey sehe,
I downloaded the new Optic for Halo PC.
I'm disappointed to say that it still doesn't work. Halo PC doesn't crash but Optic doesn't work.

Edit:
Tried again and it's working fine now.
Thanks! :)

ausprime
July 12th, 2012, 07:16 PM
No lol, you don't have to put Optic.dll to controls folder, thats causing the crashes. Put it only to Halo CE/Haloader folder.

OK,
I see the Optic.dll in the controls folder and the Haloader folder.
And mine doesn't crash. Maybe it just ignores the one in the controls folder.
Sorry for my mistake. I didn't see, that it was in the Haloader.

Cloud
September 11th, 2012, 04:15 PM
yo this is kinda messed up. If you close halo it doesn't close the instance and everytime you open and close halo it still keeps the instance of halo open.... So this could totally cause your pc to crash if you restart halo enough.

Don't believe me open and close halo a few times the start up your task manager and go to your process list...


.....yeah told you.

Sean Aero
September 13th, 2012, 03:57 PM
Bug reported by Cloud is on Halo PC/FV only.
HaloCE does close fine.

Cloud
September 14th, 2012, 01:47 AM
HPC fails again just another reason to play CE lol!

t3h m00kz
October 24th, 2012, 08:00 PM
you ought to post an in-game screenshot or a video of the medals in OP. They're actually pretty fucking cool

Also, has nobody successfully gotten this to work along side of Open Sauce?

Btcc22
October 24th, 2012, 08:34 PM
It's probably not going to happen unless somebody updates either OS or Optic. The problem with Halo modding is that almost every mod tries to use the same hooks and so you end up with a collision and broken mods. Same reason why OS doesn't work with Xfire's ingame overlay.

Cortexian
October 24th, 2012, 11:16 PM
Also, has nobody successfully gotten this to work along side of Open Sauce?


It works with all versions of Halo and Halo CE, but its incompatible with "Open Sauce", because it loads two d3d9.dll's (I didn't even no its possible tbh lol), and I cba'd fix it yet..

t3h m00kz
October 25th, 2012, 01:40 AM
No fuckin shit I didn't quote that post in the other thread or anything!!!


I heard it may work with DLL renaming. I'm wanting to verify whether or not that is the case.

Cortexian
October 25th, 2012, 01:41 AM
Tried renaming this to d3d9_proxy.dll so OS would load it like it loads SoftTH.

No luck.

Limited
October 25th, 2012, 11:17 AM
Hey sehe, perhaps we can talk about implementing something into Optic that does what mine and Skylines Score Indicator does?

LAIG6bMc2yA

Bonus kudos for those who notice my teleport command usage :D

sehe
October 27th, 2012, 05:27 AM
Sure, but atm. I'm busy with SAPP :p

Amit
January 21st, 2013, 06:27 AM
Now that OpenSauce V3.1.0 hooks through dinput8.dll instead of d3d9.dll, is it possible that Optic will no longer have compatibility issues with OS? I can test this myself, but I was just wondering if anyone knew already.

EDIT: I just tested OpenSauce V3.1.0 + Optic + Halo Chat V2 (also by Sehe) together. They all work together flawlessly :D

supersniper
March 3rd, 2013, 12:30 AM
so uh... all the links are dead to optic and the chat mod.

Btcc22
March 3rd, 2013, 03:59 AM
Halo Chat V2 attached. Optic here (http://www.mediafire.com/?5w7217j5b29fet9).

3163

sehe
March 3rd, 2013, 05:29 AM
Fixed both links =)

Pooky
March 3rd, 2013, 05:18 PM
I've never been able to get the chat mod to work, anyone have any advice?

Amit
March 10th, 2013, 03:29 AM
I know this sounds stupid, but are you sure that it install to the correct location?

Also, the readme needs to be updated for Optic to state that it is now compatible with Open Sauce due to OS v3.1 changing it's hooking dll to something other than what Optic uses. I love optic. I can track my stats and it's a nice flair for killstreaks when recording footage.

megajd16
May 16th, 2014, 11:38 PM
Optic is a extension for Halo which provides Halo Reach style Killstreak/Multikill medals and sounds.
It also has client-sided stats tracking.

Demo Videos:

http://www.xfire.com/video/5703d8/
(old version)

Current:
http://www.youtube.com/watch?v=_0FzmUcgGp8
(Sean's vid)

SS from Stats Tracking:
http://screenshot.xfire.com/s/123566345-4.jpg

Downloads:
http://www.xhalo.tk/downloads/Optic.7z
or
http://www.xhalo.tk/downloads/Optic.zip

It works with all versions of Halo and Halo CE, but its incompatible with "Open Sauce", because it loads two d3d9.dll's (I didn't even no its possible tbh lol), and I cba'd fix it yet.

Before you ask, read the included "Optic - Read Me.txt" !
I will be on holiday till Sunday, so if you have any problems, post here and wait, I'll check the feedbacks when I'm back at home again.
Warning! I can't help if you just say "This shit ain't workin!!!!!!!444négy", please read the Read Me txt first, and if you still have problems post here with some details and I'll contact to you via Xfire (lgbalazs).

Edit: If you're using my chat (http://www.modacity.net/forums/showthread.php?24285-Halo-Chat-V2-No-more-textlag!), don't forget to update it as well in order to make it compatible.

the optic isn't compatible with halo ce v 1.0.10

Amit
May 17th, 2014, 12:17 AM
the optic isn't compatible with halo ce v 1.0.10

Most mods are broken until they are updated. Keep an eye on this thread (http://halo-fixes.findforum.net/t14-mods-will-need-to-be-updated-for-110-map-mods-are-not-affected) to see which mods are updated to work and which are still broken.

I have just tested Optic in v1.10, though, and it works as normal.

sehe
May 17th, 2014, 08:25 AM
It might be in conflict with HAC 2, I gave the source code to Btcc22 (among whit the chat) and he reimplemented it in HAC 2 in a much flexible way with Lua etc., you will see, I'd recommend you to use that (when it will be officially released), tho it won't have stats tracking unless you write one in Lua...

Amit
May 18th, 2014, 02:45 PM
Hmm. Well what does the HAC 2 version of Optic have if not stats tracking? I really don't care about the medals in-game. I just want to know my stats and I don't know how to write lua scripts so I'd be shit out of luck?

Btcc22
May 18th, 2014, 05:03 PM
Well what does the HAC 2 version of Optic have if not stats tracking?

It's more about customisation for the players. Everything is done through Lua scripts so players can make their own medals/achievements/whatever they can come up with and distribute them to other players to use. The bad news is that it makes stat tracking tricky to the point where it's probably not worth trying to add it as a feature tied to Optic*. The good news is that you should be able to continue using Sehe's Optic, pending update, if you wish.

Some Halo 3/Reach/4 examples scripted entirely (including animation) through the Lua API. 56k beware:


http://touringnet.co.uk/misc/optic2.gif
http://touringnet.co.uk/misc/optich3.gif
http://touringnet.co.uk/misc/opticreach.gif


*it's not actually Optic. It's a completely brand new system from the ground up. It's just the players know what Optic is so the name has been adopted for maximum confusion.

Rentafence
May 18th, 2014, 07:53 PM
The new chat looks great. Is that part of the new version of HAC2? Also would there be a way to offset text about players killing each other to like the top right of the screen so the chat doesnt get clogged with stuff that isnt actually player chat?

Btcc22
May 18th, 2014, 08:09 PM
There's a test version available if you use the "custom_chat 1" console command.

The plan is to enable the customisation options (like splitting kill and chat messages up) once the medals are ready to be released for testing. I just didn't want to enable them too early on and end up with players having to remember a whole slew of extra console commands to be able to configure things.

Since the chat uses the same system as the medals, I may add the ability to hook Lua scripts up to it so you'd be able to customise it any which way (within reason).

http://touringnet.co.uk/misc/h2s2.jpg

Rentafence
May 18th, 2014, 08:12 PM
Oh wow. And you're able to hook it into its own menu like that without a custom mainmenu.map?

Btcc22
May 18th, 2014, 08:14 PM
Yep. How well it'll work with drastically custom UIs remains to be seen though.

Kornman00
May 18th, 2014, 09:09 PM
Excuse me good sir, but isn't there a master server you should be slaving away on fixing :saggy:?

Btcc22
May 18th, 2014, 09:18 PM
Excuse me good sir, but isn't there a master server you should be slaving away on fixing :saggy:?

Everything's good, if you know what I mean.

http://www.ancient-symbols.com/images/symbol-directory/infinity.jpg

Rentafence
May 18th, 2014, 09:21 PM
http://nikon.bungie.org/images/SuperintendentWallpaper.jpg

Amit
May 19th, 2014, 12:26 AM
It's more about customisation for the players. Everything is done through Lua scripts so players can make their own medals/achievements/whatever they can come up with and distribute them to other players to use. The bad news is that it makes stat tracking tricky to the point where it's probably not worth trying to add it as a feature tied to Optic*. The good news is that you should be able to continue using Sehe's Optic, pending update, if you wish.

Some Halo 3/Reach/4 examples scripted entirely (including animation) through the Lua API. 56k beware:


http://touringnet.co.uk/misc/optic2.gif
http://touringnet.co.uk/misc/optich3.gif
http://touringnet.co.uk/misc/opticreach.gif


*it's not actually Optic. It's a completely brand new system from the ground up. It's just the players know what Optic is so the name has been adopted for maximum confusion.

Well now that you show me shit like that, I'm reluctant to let the medals go. And I'd start calling it something else if I were you. Maybe just call it the "award system." I think HAC 2 will replace Halo Chat V2 as well? Does it prevent the no-text glitch from occurring? I really hope OS v3.1.1 stable works with this.

Sehe, would it be possible for you release an "Optic Lite" version that removes the medals from Optic so I can continue using Optic for stat-tracking, but use HAC 2 for the medals?

Btcc22
May 19th, 2014, 12:32 AM
I think HAC 2 will replace Halo Chat V2 as well? Does it prevent the no-text glitch from occurring?

The idea was to offer similar functionality, so I suppose so. You'd still be able to use Halo Chat V2 if you had a preference for it though. There's no text lag/glitching with this system, thankfully. :ohdear:


I really hope OS v3.1.1 stable works with this.

Yeah, I'd like to see this happen too. There are a couple of issues to sort out but fingers crossed.

t3h m00kz
May 22nd, 2014, 12:32 AM
I'm looking forward to this.

I know some lua, and I've some ideas for rewards that I'd like to whip up.

As far as the stats tracking is concerned, all I really give a shit about is k/d, and games won/lost/quit out of.

Rentafence
May 22nd, 2014, 12:10 PM
Is there a way to detect when damage is dealt by you to another player so I can add COD hitmarkers

t3h m00kz
May 22nd, 2014, 12:23 PM
that'd be a sick script to implement, assuming yeah as you said, there's a way to listen for damage dealt

Every weapon would need their own custom hit marker, considering the reticule sizes

Rentafence
May 22nd, 2014, 12:25 PM
Would be wonky with the no load fix because shots don't always get detected on client side even though the server recognizes a player taking damage. There could be instances where you get a valid hit on a player but the client doesn't see it and a hit marker doesn't come up.

Btcc22
May 22nd, 2014, 02:39 PM
Is there a way to detect when damage is dealt by you to another player so I can add COD hitmarkers

The API in the first release will be fairly basic since I haven't come to a final decision on how I'll be gathering events from the game to pass them to Lua. It's a tricky problem since the client is fairly stupid compared to the server.

Rentafence
May 22nd, 2014, 02:45 PM
Not really a programmer nor familiar with how the fuck you're even doing this but I'd imagine the ghetto option would be to detect whenever the game plays the "ding" noise when you hit someone.

Btcc22
May 22nd, 2014, 03:07 PM
Detecting hits is certainly doable, it's just something I haven't added yet because I'd likely end up having to redo it when I've settled on a solution for the other events I'd like to get working.

megajd16
May 22nd, 2014, 10:11 PM
Most mods are broken until they are updated. Keep an eye on this thread (http://halo-fixes.findforum.net/t14-mods-will-need-to-be-updated-for-110-map-mods-are-not-affected) to see which mods are updated to work and which are still broken.

I have just tested Optic in v1.10, though, and it works as normal.

i sayed it because i am doing a lot of kill streaks that saap's servers detect but in the game does'n appears any medal or sound, and when i press F2 it show medals that i got before halo 1.0.10

it stop working when i actualized my game
:shake:

t3h m00kz
May 23rd, 2014, 04:39 PM
Detecting hits is certainly doable, it's just something I haven't added yet because I'd likely end up having to redo it when I've settled on a solution for the other events I'd like to get working.

I'd be fine with having it called with the "ding" noise if nothing else.

So, are there going to be lua scripts shipping with the updated HAC2 that I'll be able to use for reference for the medals? And perhaps a library I can look at of the available functions?

Ideally, the idea I have is as follows:

When the "ding" noise plays, a .wav and an X-texture are called. The texture is based on whatever weapon the player is holding (wider bitmap for wider reticules). A pure white "X" texture that recolors based on whatever HUD color the player is using. On a killshot, the hit sound called could be a bit meatier to communicate a kill.

I'm not much of a coder/scripter.. but I can get around. the logic would be something like (whipped this up in like 5-10 minutes, it's sketchy as fuck):


global HitMarkerImage = "smallasshitmarker.png"

function hitmarkervisuals() -- this sets the texture called based on weapon held and changes the color
SleepUntil([|
weapon is switched or user's set hud color is updated
|]);

TextureColors = user's set HUD color

if (WeaponReadied = "Shotgun");
or (WeaponReadied = "Assault Rifle");
or (WeaponReadied = "Rocket Launcher");
or (WeaponReadied = "anything else with a big ass reticule") then
HitMarkerImage = bighitmarker.png;

elseif (WeaponReadied = Sniper Rifle)
or (WeaponReadied = Pistol)
or (WeaponReadied = blah blah small shit) then
HitMarkerImage = smallasshitmarker.png;

else
return;
end
end

function displayhitmarker() -- this displays the hitmarker in the center of the screen
SleepUntil([| ping sound is hit |])
DisplayTexture ("HitMarkerImage");
TextureCoordinates = middle of the fucking screen;
playhitmarkersound();
end

function playhitmarkersound() -- this plays the hitmarker sound based on damage or kill
if (enemydamaged) then
playsound HitSound.wav;
elseif (enemykilled) then
playsound KillSound.wav;
end

e:
Ideally there'd be a way to listen for headshots as well, could add headshot-specific hitsounds. not certain how feasable that would be.

Btcc22
May 23rd, 2014, 04:58 PM
I'd be fine with having it called with the "ding" noise if nothing else.

So, are there going to be lua scripts shipping with the updated HAC2 that I'll be able to use for reference for the medals? And perhaps a library I can look at of the available functions?

There will be a few example scripts and tutorials on how things work.

t3h m00kz
May 23rd, 2014, 04:59 PM
baller

t3h m00kz
May 23rd, 2014, 07:23 PM
got a .psd with two hitmarker types. big and small. also have some sound effects readied up using the cod4 hitmarker sound.

here's how they'll look (with reticule reference)

http://i.imgur.com/sBgtqox.png
http://i.imgur.com/8aw9GVJ.png
http://i.imgur.com/tSXlElX.png

here are the sound effects
default (http://www.tunescoop.com/play/323834363330/hitmarker_default-wav)
killshot (http://www.tunescoop.com/play/323834363331/hitmarker_killshot-wav)
headshot (http://www.tunescoop.com/play/323834363332/hitmarker_headshot-wav)

Btcc22
May 23rd, 2014, 07:40 PM
You could even animate them if you used a spritesheet! ;)

Edit: I guess a scaling animation would achieve a similar effect.

t3h m00kz
May 23rd, 2014, 07:43 PM
Yep. The plan was to animate them similarly to how the medals are done.

megajd16
May 23rd, 2014, 10:51 PM
i dont know why mappers say thet do this models is impossible, but it only was 1047 objets to attach, and there is only 930 objets left to attach, and i'd like that the optic of hac2 be developed before i finish this, (the map it's battle canyon, remake of beaver creek in halo cea), please just make this unfrigginbelievabe :D , im oing to do my best

3301

t3h m00kz
May 25th, 2014, 04:07 PM
so to clear up any concerns i may also attempt to write some kind of universal stats tracking in Lua when this is released. I'll do what I can to keep it simple - and only count towards medals/rewards that exist in vanilla Halo 1. kill/death ratio, double kill, triple kill, killtacular, killing spree, running riot etc. so all the other medals that will be scripted in will not be tracked.

the benefit of this is, it should be failry universal, and function regardless of the medal mods users have, as it counts toward Halo 1 rewards. the downside is.. well, Halo 1's rewards are very few. so it won't be ridiculously flashy. BUT HEY (http://i.imgur.com/pv2NfFy.png)!!!! at least you'll be able to see your k/d ratio.

also btcc22, when can we expect to see these new luascript features?

no pressure man. but the longer I wait the longer you're killing me here :toughguy:

Amit
May 25th, 2014, 05:17 PM
I feel the same way about medals in later Halo games as I do with weapons in later halo games. There are too god damn many of them. I never saw the point of having more than up to Running Riot and maybe one more ultimate one. Look at this (http://halo.wikia.com/wiki/Medals) page. It's absolutely disgusting what happens to the medals after Halo 2. It's like what CoD did with killstreaks.

Btcc22
May 28th, 2014, 03:53 AM
Initial release, see http://blog.haloanticheat.com/?p=204.

No documentation until next week, sorry. :(

megajd16
May 28th, 2014, 01:30 PM
Initial release, see http://blog.haloanticheat.com/?p=204.

No documentation until next week, sorry. :(

it doesn't work on my halo:

3302

megajd16
May 28th, 2014, 02:13 PM
it was only delete the old optic, but a friend had gathering ecxeption data when he load a pack

Btcc22
May 28th, 2014, 02:23 PM
it was only delete the old optic, but a friend had gathering ecxeption data when he load a pack

Download http://www.microsoft.com/en-gb/download/details.aspx?id=35.

t3h m00kz
May 28th, 2014, 06:00 PM
I'll need to mess with this when I get home. The lua scripts look pretty straight forward.

Is it possible to load multiple packs at once? Say, for example, I were to use the Reach medals pack, but I also wanted to run a pack with, say, some custom medals, stats tracking or like some hacky hitmarkers.

Amit
May 28th, 2014, 07:22 PM
It automatically unloads the current pack when you load up another, so no. You can combine the packs, but only if you customize the lua file yourself and place the audio/images in the correct folders.

megajd16
May 28th, 2014, 08:44 PM
they are incredible but...
What about stats tracking??

Btcc22
May 29th, 2014, 12:22 AM
I'll need to mess with this when I get home. The lua scripts look pretty straight forward.

Is it possible to load multiple packs at once? Say, for example, I were to use the Reach medals pack, but I also wanted to run a pack with, say, some custom medals, stats tracking or like some hacky hitmarkers.

Amit is on the money there. I debated it but figured it'd become too much of a headache for users. I could add a second load command that didn't unload the first pack pretty easily if you really want the option but it's not something I want to support when users can't figure it out or run clashing scripts.

t3h m00kz
May 29th, 2014, 02:50 AM
I do like the idea of at least having the option to force-enable multiple packs if the user knows what they're doing. I feel it would allow more flexibility with adding on small, very specific scripts, kind of similar to Mutators in Unreal Tournament as you can tack on all sorts of little modifications to mix and match.

For example, a user could have the default medals scripts currently available, but could also add in a pack that simply displays a "You SUCK!!!" medal after dying 5 times, or the hit markers that I've got planned.

In a perfect world, packs would never interfere with one another, but of course there's going to be some user out there who tries to load all of the medal scripts together and wonder why everything's breaking. I've not really much idea as to what would cause interference as my scripting knowledge is fairly basic, but I'd imagine that as long as functions and variables maintain unique names between packs, it shouldn't cause too much of a problem.

But perhaps I haven't the slightest as to what I'm talking about, that's always a possibirrity

Amit
May 29th, 2014, 04:03 AM
That's a slippery slope, but it could work so long as the packs don't interfere with each other. It makes me think of the way a mod manager I use for Lord of the Rings Online works. The manager itself is a mod that can be loaded up and used to enable/disable other mods using a GUI interface. Obviously, that's not necessary for this since a force load command would basically do the same thing. Specific instructions to force-enable it could be included in the ReadMe/Install file.

It seems that what you want is a very tailored experience. You'd be better off building it yourself since once you get it just right, you're not likely to change it. At least, that's what my line of thinking is. Maybe I'm too much of a purist, though, who wants to have a no-nonsense set of medals that becomes the standard. A way show off the new system as professionally enhancing the experience while still being inline with what Halo PC/CE is: a seriously solid multiplayer experience.

t3h m00kz
May 29th, 2014, 04:43 AM
That's a slippery slope, but it could work so long as the packs don't interfere with each other. It makes me think of the way a mod manager I use for Lord of the Rings Online works. The manager itself is a mod that can be loaded up and used to enable/disable other mods using a GUI interface. Obviously, that's not necessary for this since a force load command would basically do the same thing. Specific instructions to force-enable it could be included in the ReadMe/Install file.

It seems that what you want is a very tailored experience. You'd be better off building it yourself since once you get it just right, you're not likely to change it. At least, that's what my line of thinking is. Maybe I'm too much of a purist, though, who wants to have a no-nonsense set of medals that becomes the standard. A way show off the new system as professionally enhancing the experience while still being inline with what Halo PC/CE is: a seriously solid multiplayer experience.

The purpose of these packs is not to hard-code in a solid experience. It's to allow users to create their own experience as they see fit. If the user wants to have a no-nonsense set of medals, they can stick to what works for them, be that just one well-made pack. On the other hand, some users will want to expand on top of that solid foundation.

To quote BTCC22,


It's more about customisation for the players. Everything is done through Lua scripts so players can make their own medals/achievements/whatever they can come up with and distribute them to other players to use.

Only supporting one pack at a time will result in multiple big, bulky packs with tons of overlap, when the same result could be acheived by simply loading multiple packs on top of one another.

Conflicts are going to be a problem, yes. Like I said before, some nerd is going to attempt to load all 3 of the medals packs together, which I doubt will end well. What would ideally happen is, conflicts would be communicated to the user in a user-friendly way, but also with enough information for pack developers to debug the problem.

It seems very limiting to add the functionality of packs for the purpose of allowing and promoting the creation and distribution of user-created content, then limit the user to a single pack. Everybody's just going to stick with the stock packs. user-created packs designed to add a tiny additional bits of functionality will rarely be used, as users will need to sacrifice one for the other.

What user would ever load a pack with a single "You SUCK" medal at the expense of all of the other medals? And what scripter is going to want to build off of the packs that already exist, rather than having a small, very specific pack streamlined for the functionality they want?

If I were to add hitmarkers as it is now and distribute it, I'd have to create 3 separate packs (one for H3, Reach, and H4), all with every asset and line of code from the 3 stock packs, PLUS my own assets and lines of code. The end user would then have three new packs for one new bit of functionality, rather than tacking it on top. It would be more efficient, less bulky and less cluttered to allow a single additional pack to be loaded on top.

Skilled scripters who understand how the system works will be able to avoid pack conflicts if they test their work appropriately. And if their packs are done well enough, their packs just may be used.

... Not that I'm a skilled scripter in any sense (I'm working on it!!)


... I think my QA may be showing.. ultimately this is up to BTCC22. I can only offer suggestions.

E:
Here's a visual example.

http://i.imgur.com/zfxckrV.png

t3h m00kz
May 30th, 2014, 02:48 AM
I've been messing with this tonight. I don't entirely have the hang of it, but until documentation is released with more info, I'm doing something simple - attempting to bring back the missing death sounds when the player is killed.

I want to isolate it to just the player, as it's flat, and there's no way to scale with distance. As it is right now, I've got death sounds that queue up whenever ANYBODY is killed.

.. Not entirely certain how to isolate it to just the player just yet (again I'm kind of bad at this)!! I'll mess with it more later


api_version = "1.0.0"

deathVoiceTable={
"audio/death1.mp3",
"audio/death2.mp3",
--"audio/death3.mp3", -- doesn't exist
"audio/death4.mp3",
-- "audio/death5.mp3", -- doesn't exist
"audio/death6.mp3",
"audio/death7.mp3",
"audio/death8.mp3",
"audio/death9.mp3",
"audio/death10.mp3",
"audio/death11.mp3",
"audio/death12.mp3",
"audio/death13.mp3",
--"audio/death14.mp3", -- doesn't exist
"audio/death15.mp3",
"audio/death16.mp3",
"audio/death17.mp3",
"audio/death18.mp3",
"audio/death19.mp3",
"audio/death20.mp3",
"audio/death21.mp3",
"audio/death22.mp3",
"audio/death23.mp3",
"audio/death24.mp3",
"audio/death25.mp3",
"audio/death26.mp3",
--"audio/death27.mp3", -- doesn't exist
"audio/death28.mp3"
}


function register_callbacks(event, victim, player, timestamp)
register_callback(cb['PLAYER_KILLS'], "playDeathVoice")
register_callback(cb['PLAYER_ENVIRONMENTAL_DEATHS'], "playDeathVoice")
end


function playDeathVoice()
if(killer ~= player) then
queue_audio(deathVoiceTable[math.random(#deathVoiceTable)])
elseif(victim == player) then
queue_audio(deathVoiceTable[math.random(#deathVoiceTable)])
end
end

Btcc22
May 30th, 2014, 03:19 AM
You make a compelling argument so I'll see what I can do to make it a reality. If all of the combined packs use the default animations (the Halo 4 one doesn't but would probably work fine regardless), there probably wouldn't be much of a problem. The issues would begin when you have a bunch of packs that use custom animations that don't play nicely with each other. The animation system has the concepts of grouping and priority where you can have multiple sets of sprites/medals on the screen at once and make sure they play nicely, which could help in this situation if packs were coded with a bit of thought. It'll be explained in the documentation.

The main reason I haven't initially allowed for multiple packs to be loaded is because I wanted to ensure a smooth experience for the users and to avoid the complaints when users try to do something that the system wasn't designed for and not because I haven't considered these problems, more because there's no perfect solution that's going to work in every case.

Anyway, with your test script, you're missing the arguments for the callbacks. Try this (untested):


...sound table stuff...

function register_callbacks()
register_callback(cb['PLAYER_KILLS'], "playDeathVoiceKill")
register_callback(cb['PLAYER_ENVIRONMENTAL_DEATHS'], "playDeathVoiceEnv")
end

function playDeathVoiceEnv(event, victim, player, timestamp)
if(victim == player) then
queue_audio(deathVoiceTable[math.random(#deathVoiceTable)])
end
end

function playDeathVoiceEnv(event, killer, victim, player, timestamp)
if(victim == player) then
queue_audio(deathVoiceTable[math.random(#deathVoiceTable)])
end
end


I could add channel volume controls to the queue_audio function if that'd be useful. You could calculate player/object distances (when the full API is available, will be making a short post about the situation shortly) and then adjust as required. It wouldn't be great since you wouldn't be able to deal with geometry but perhaps better than nothing at all.

t3h m00kz
May 30th, 2014, 04:40 AM
Got it working.

Here's the pack. (https://mega.co.nz/#!vUVkxIhA!wYk0TyYWeJfk8Io15S_Tagq6Jb4-wz0uNiBcksMuh_4) Video will come later.

The function "playDeathVoiceEnv" appears twice in your code, I've changed the second one to playDeathVoiceKill upon noticing the additional argument it and it works perfectly!! Thanks a ton for the assistance. I'm still getting used to the concept of function arguments... I KIND OF understand them at this point but not entirely, and I'm kind of going in blind working with these callbacks.

Channel volume controls based on distance would be great! I'm not too concerned about geometry - in Halo 3, the death noises seemed VERY loud, regardless of location/geometry, which I was actually fond of. Though, I can't really think of much use for it outside of kill sounds... I'm sure somebody out there would come up with something fancy.
(https://mega.co.nz/#!vUVkxIhA!wYk0TyYWeJfk8Io15S_Tagq6Jb4-wz0uNiBcksMuh_4)
I've a few more pack ideas I'd like to try out, that I'm fairly certain I can get working.

May I ask, is there any way to detect when damage is delt, or is that still in the works and hush-hush for now?

Btcc22
May 30th, 2014, 04:56 AM
May I ask, is there any way to detect when damage is delt, or is that still in the works and hush-hush for now?

There's a callback for hit detection but I'm not completely sure if it'll be enabled in the next release. I'll have a post with more information up later today (I'm lazy).

t3h m00kz
May 30th, 2014, 05:37 AM
I'm lazier u fuck ;} <3

t3h m00kz
May 30th, 2014, 01:18 PM
Video of death voices:

gZ0phvO7xQU

t3h m00kz
May 31st, 2014, 03:51 AM
I found a potential bug with optic. I noticed that if the audio files have an underscore in their name the game exceptions on launch.

I attemped to create a table with the audio file name "audio/hitmarkers_killshot.mp3" which exceptioned every time. after removing the underscore from the audio file and re-referencing it in the table I was able to launch successfully. if this is a lua script limitation I'm not terribly concerned, but it could be something worth warning users about.

Have not tested with images.

Amit
May 31st, 2014, 04:46 AM
Triple post alert. Someone give him an infraction!

Kornman00
May 31st, 2014, 12:54 PM
Are you sure it's not just a file name length problem? Have you tried naming it "hitmarkerskillshotpoop.mp3" to see if it still exceptions?

Btcc22
May 31st, 2014, 03:21 PM
Thanks for the report, I'll take a look.

t3h m00kz
May 31st, 2014, 10:24 PM
disregard, could not repro.. likely user error.

fuck my anus

Amit
May 31st, 2014, 10:46 PM
fuck my anus

:realsmug:

t3h m00kz
May 31st, 2014, 11:54 PM
:realsmug:

:mech:

hitmarker prototype. Doing what I can with what I've got. Can only detect player kills at the moment. Calling the png as a medal with default animations.

Hoping I'll be able to work network_hit_sound_volume 0 into the script. Haven't found a way.

0kbJxZQP1jU

Btcc22
June 1st, 2014, 07:28 AM
I found a potential bug with optic. I noticed that if the audio files have an underscore in their name the game exceptions on launch.

I attemped to create a table with the audio file name "audio/hitmarkers_killshot.mp3" which exceptioned every time..

I wasn't able to reproduce this. Could you send me the pack that has the problem?

Edit: Nevermind, saw you couldn't reproduce (edit: the crash, that is). Missed that post since the thread skipped to the next page.

Crenshaw
June 1st, 2014, 04:38 PM
t3h m00ks how do u get ur in game chat txt like that? btw will the deathvoice be release wit next hac2 update?

t3h m00kz
June 1st, 2014, 04:52 PM
"custom_chat 1" in the console

deathvoices has been released on the last page.

megajd16
June 1st, 2014, 07:28 PM
"custom_chat 1" in the console

deathvoices has been released on the last page.

do you can add it to the medal packss??

t3h m00kz
June 1st, 2014, 08:01 PM
as it is right now, one would need to combine the code/assets from the model packs into one pack.

read my post on page 8 (http://www.modacity.net/forums/showthread.php?24627-Optic&p=652931&viewfull=1#post652931).

megajd16
June 1st, 2014, 08:09 PM
as it is right now, one would need to combine the code/assets from the model packs into one pack.

read my post on page 8 (http://www.modacity.net/forums/showthread.php?24627-Optic&p=652931&viewfull=1#post652931).

I tried it, and the deads sounds are great, but the medals stop working ._.

t3h m00kz
June 1st, 2014, 08:16 PM
You copied the code into a single lua file and combined the audio packs?

megajd16
June 1st, 2014, 08:27 PM
i combined the lua and the audio, when i delete the code of the lua it works

Look next page ._.

megajd16
June 1st, 2014, 08:32 PM
code looks like this:



api_version = "1.0.0"

lastKilledBy = -1
timedSpree = 0
lastKillTime = 0
spree = 0
lastDeath = 0
spreeCounters = {}
lastKillTimes = {}
captures = 0
deathSpree = 0
queued = 0


deathVoiceTable={
"audio/death1.mp3",
"audio/death2.mp3",
--"audio/death3.mp3", -- doesn't exist
"audio/death4.mp3",
-- "audio/death5.mp3", -- doesn't exist
"audio/death6.mp3",
"audio/death7.mp3",
"audio/death8.mp3",
"audio/death9.mp3",
"audio/death10.mp3",
"audio/death11.mp3",
"audio/death12.mp3",
"audio/death13.mp3",
--"audio/death14.mp3", -- doesn't exist
"audio/death15.mp3",
"audio/death16.mp3",
"audio/death17.mp3",
"audio/death18.mp3",
"audio/death19.mp3",
"audio/death20.mp3",
"audio/death21.mp3",
"audio/death22.mp3",
"audio/death23.mp3",
"audio/death24.mp3",
"audio/death25.mp3",
"audio/death26.mp3",
--"audio/death27.mp3", -- doesn't exist
"audio/death28.mp3"
}


function register_callbacks()
register_callback(cb['PLAYER_KILLS'], "playDeathVoiceKill")
register_callback(cb['PLAYER_ENVIRONMENTAL_DEATHS'], "playDeathVoiceEnv")
end


function playDeathVoiceEnv(event, victim, player, timestamp)
if(victim == player) then
queue_audio(deathVoiceTable[math.random(#deathVoiceTable)])
end
end


function playDeathVoiceKill(event, killer, victim, player, timestamp)
if(victim == player) then
queue_audio(deathVoiceTable[math.random(#deathVoiceTable)])
end
end


function register_callbacks()
create_animations()
mute_announcer()
register_callback(cb['PLAYER_KILLS'], "player_kills")
register_callback(cb['PLAYER_ENVIRONMENTAL_DEATHS'], "player_environmental_death")
register_callback(cb['CTF_EVENTS'], "ctf_events")
register_callback(cb['POST_MAP_LOAD'], "map_load")
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)
queued = queued + 1
end


function map_load()
lastKilledBy = -1
timedSpree = 0
lastKillTime = 0
spree = 0
lastDeath = 0
spreeCounters = {}
lastKillTimes = {}
captures = 0
deathSpree = 0
end


function player_environmental_death(event, victim, player, timestamp)
if(victim == player) then
if(event == 6) then
queue_audio("audio/suicide.mp3")
end
spree = 0
lastDeath = timestamp
else
spreeCounters[victim] = 0
end
end


function ctf_events(event, killer, victim, player, timestamp)
if(event == 33) then
captures = captures + 1
if(captures == 1) then
display("Flag Captured!", "flag_capture_medal", "audio/flag_captured.mp3")
elseif(captures == 2) then
display("Flag Runner!", "flag_runner_medal", "audio/flag_runner.mp3")
elseif(captures >= 3) then
display("Flag Champion!", "flag_champion_medal", "audio/flag_champion.mp3")
end
end
end


function player_kills(event, killer, victim, player, timestamp)
if(killer == player) then
queued = 0
spree = spree + 1

if(deathSpree >= 3) then
display("Comeback!", "comeback_medal", "audio/comeback_kill.mp3")
else
killDisplay = false
end


deathSpree = 0


if(spreeCounters[victim] ~= nil and spreeCounters[victim] >= 5) then
display("Killjoy!", "killjoy_medal", "audio/killjoy.mp3")
else
killDisplay = false
end

if((timestamp - lastKillTime) <= 4500) then
timedSpree = timedSpree + 1
else
timedSpree = 1
end


lastKillTime = timestamp


if(timedSpree == 2) then
display("Double Kill!", "double_kill_medal", "audio/double_kill.mp3")
elseif(timedSpree == 3) then
display("Triple Kill!", "triple_kill_medal", "audio/triple_kill.mp3")
elseif(timedSpree == 4) then
display("Overkill!", "overkill_medal", "audio/overkill.mp3")
elseif(timedSpree == 5) then
display("Killtacular!", "killtacular_medal", "audio/killtacular.mp3")
elseif(timedSpree == 6) then
display("Killtrocity!", "killtrocity_medal", "audio/killtrocity.mp3")
elseif(timedSpree == 7) then
display("Killimanjaro!", "killimanjaro_medal", "audio/killimanjaro.mp3")
elseif(timedSpree == 8) then
display("Killtastrophe!", "killtastrophe_medal", "audio/killtastrophe.mp3")
elseif(timedSpree == 9) then
display("Killpocalypse!", "killpocalypse_medal", "audio/killpocalypse.mp3")
elseif(timedSpree == 10) then
display("Killionaire!", "killionaire_medal", "audio/killionaire.mp3")
end


if(spree == 5) then
display("Killing Spree!", "killing_spree_medal", "audio/killing_spree.mp3")
elseif(spree == 10) then
display("Killing Frenzy!", "killing_frenzy_medal", "audio/killing_frenzy.mp3")
elseif(spree == 15) then
display("Running Riot!", "running_riot_medal", "audio/running_riot.mp3")
elseif(spree == 20) then
display("Rampage!", "rampage_medal", "audio/rampage.mp3")
elseif(spree == 25) then
display("Untouchable!", "untouchable_medal", "audio/untouchable.mp3")
elseif(spree == 30) then
display("Invincible!", "invincible_medal", "audio/invincible.mp3")
elseif(spree == 35) then
display("Inconceivable!", "inconceivable_medal", "audio/inconceivable.mp3")
elseif(spree == 40) then
display("Unfriggenbelievable!", "unfriggenbelievable_medal", "audio/unfrigginbelievable.mp3")
end


if((timestamp - lastDeath) <= 3000) then
display("From the Grave!", "from_the_grave_medal", "audio/beam.mp3", true)
end


if(lastKilledBy == victim) then
display("Revenge!", "revenge_medal", "audio/hologram.mp3", true)
lastKilledBy = -1
end


if(lastKillTimes[victim] ~= nil and timestamp - lastKillTimes[victim] <= 700 and victim ~= player) then
display("Avenger!", "avenger_medal", "audio/hologram.mp3", true)
end


if(queued == 0) then
display_medal("kill_medal")
end
else
if(spreeCounters[killer] == nil) then
spreeCounters[killer] = 1
else
spreeCounters[killer] = spreeCounters[killer] + 1
end


lastKillTimes[killer] = timestamp
end


if(victim == player) then
lastKilledBy = killer
lastDeath = timestamp
spree = 0
deathSpree = deathSpree + 1
else
spreeCounters[victim] = 0
end
end


function create_animations()
--Spritesheet animation
create_animation("blue_flash")
add_keyframe("blue_flash", 0, 0.7, 4)
add_keyframe("blue_flash", 0, 1.5, 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)


--H4 medal animation
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)
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)


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


--Main animation
create_animation("main")
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)

--Kill medal
create_sprite("kill", "images/kill.png", "h4_ani")
create_medal("kill_medal", "main")
attach_sprite("kill_medal", "kill")
attach_sprite("kill_medal", "blue_flash")
medal_slide_animation("kill_medal", "slide")


--Double kill
create_sprite("double_kill", "images/double_kill.png", "h4_ani")
create_medal("double_kill_medal", "main")
attach_sprite("double_kill_medal", "double_kill")
attach_sprite("double_kill_medal", "blue_flash")
medal_slide_animation("double_kill_medal", "slide")


--From the grave
create_sprite("from_the_grave", "images/from_the_grave.png", "h4_ani")
create_medal("from_the_grave_medal", "main")
attach_sprite("from_the_grave_medal", "from_the_grave")
attach_sprite("from_the_grave_medal", "blue_flash")
medal_slide_animation("from_the_grave_medal", "slide")


--Revenge
create_sprite("revenge", "images/revenge.png", "h4_ani")
create_medal("revenge_medal", "main")
attach_sprite("revenge_medal", "revenge")
attach_sprite("revenge_medal", "blue_flash")
medal_slide_animation("revenge_medal", "slide")


--Triple kill
create_sprite("triple_kill", "images/triple_kill.png", "h4_ani")
create_medal("triple_kill_medal", "main")
attach_sprite("triple_kill_medal", "triple_kill")
attach_sprite("triple_kill_medal", "blue_flash")
medal_slide_animation("triple_kill_medal", "slide")

--Flag capture
create_sprite("flag_capture", "images/flag_capture.png", "h4_ani")
create_medal("flag_capture_medal", "main")
attach_sprite("flag_capture_medal", "flag_capture")
attach_sprite("flag_capture_medal", "blue_flash")
medal_slide_animation("flag_capture_medal", "slide")

--Flag runner
create_sprite("flag_runner", "images/flag_runner.png", "h4_ani")
create_medal("flag_runner_medal", "main")
attach_sprite("flag_runner_medal", "flag_runner")
attach_sprite("flag_runner_medal", "blue_flash")
medal_slide_animation("flag_runner_medal", "slide")

--Flag champion
create_sprite("flag_champion", "images/flag_champion.png", "h4_ani")
create_medal("flag_champion_medal", "main")
attach_sprite("flag_champion_medal", "flag_champion")
attach_sprite("flag_champion_medal", "blue_flash")
medal_slide_animation("flag_champion_medal", "slide")

--Avenger
create_sprite("avenger", "images/avenger.png", "h4_ani")
create_medal("avenger_medal", "main")
attach_sprite("avenger_medal", "avenger")
attach_sprite("avenger_medal", "blue_flash")
medal_slide_animation("avenger_medal", "slide")

--Comeback
create_sprite("comeback", "images/comeback_kill.png", "h4_ani")
create_medal("comeback_medal", "main")
attach_sprite("comeback_medal", "comeback")
attach_sprite("comeback_medal", "blue_flash")
medal_slide_animation("comeback_medal", "slide")

--Killjoy
create_sprite("killjoy", "images/killjoy.png", "h4_ani")
create_medal("killjoy_medal", "main")
attach_sprite("killjoy_medal", "killjoy")
attach_sprite("killjoy_medal", "blue_flash")
medal_slide_animation("killjoy_medal", "slide")

--Overkill
create_sprite("overkill", "images/overkill.png", "h4_ani")
create_medal("overkill_medal", "main")
attach_sprite("overkill_medal", "overkill")
attach_sprite("overkill_medal", "blue_flash")
medal_slide_animation("overkill_medal", "slide")

--Killtacular
create_sprite("killtacular", "images/killtacular.png", "h4_ani")
create_medal("killtacular_medal", "main")
attach_sprite("killtacular_medal", "killtacular")
attach_sprite("killtacular_medal", "blue_flash")
medal_slide_animation("killtacular_medal", "slide")

--Killtrocity
create_sprite("killtrocity", "images/killtrocity.png", "h4_ani")
create_medal("killtrocity_medal", "main")
attach_sprite("killtrocity_medal", "killtrocity")
attach_sprite("killtrocity_medal", "blue_flash")
medal_slide_animation("killtrocity_medal", "slide")

--Killimanjaro
create_sprite("killimanjaro", "images/killimanjaro.png", "h4_ani")
create_medal("killimanjaro_medal", "main")
attach_sprite("killimanjaro_medal", "killimanjaro")
attach_sprite("killimanjaro_medal", "blue_flash")
medal_slide_animation("killimanjaro_medal", "slide")

--Killtastrophe
create_sprite("killtastrophe", "images/killtastrophe.png", "h4_ani")
create_medal("killtastrophe_medal", "main")
attach_sprite("killtastrophe_medal", "killtastrophe")
attach_sprite("killtastrophe_medal", "blue_flash")
medal_slide_animation("killtastrophe_medal", "slide")

--Killpocalypse
create_sprite("killpocalypse", "images/killpocalypse.png", "h4_ani")
create_medal("killpocalypse_medal", "main")
attach_sprite("killpocalypse_medal", "killpocalypse")
attach_sprite("killpocalypse_medal", "blue_flash")
medal_slide_animation("killpocalypse_medal", "slide")

--Killionaire
create_sprite("killionaire", "images/killionaire.png", "h4_ani")
create_medal("killionaire_medal", "main")
attach_sprite("killionaire_medal", "killionaire")
attach_sprite("killionaire_medal", "blue_flash")
medal_slide_animation("killionaire_medal", "slide")

--Killing spree
create_sprite("killing_spree", "images/killing_spree.png", "h4_ani")
create_medal("killing_spree_medal", "main")
attach_sprite("killing_spree_medal", "killing_spree")
attach_sprite("killing_spree_medal", "blue_flash")
medal_slide_animation("killing_spree_medal", "slide")

--Killing frenzy
create_sprite("killing_frenzy", "images/killing_frenzy.png", "h4_ani")
create_medal("killing_frenzy_medal", "main")
attach_sprite("killing_frenzy_medal", "killing_frenzy")
attach_sprite("killing_frenzy_medal", "blue_flash")
medal_slide_animation("killing_frenzy_medal", "slide")

--Running riot
create_sprite("running_riot", "images/running_riot.png", "h4_ani")
create_medal("running_riot_medal", "main")
attach_sprite("running_riot_medal", "running_riot")
attach_sprite("running_riot_medal", "blue_flash")
medal_slide_animation("running_riot_medal", "slide")

--Rampage
create_sprite("rampage", "images/rampage.png", "h4_ani")
create_medal("rampage_medal", "main")
attach_sprite("rampage_medal", "rampage")
attach_sprite("rampage_medal", "blue_flash")
medal_slide_animation("rampage_medal", "slide")

--Untouchable
create_sprite("untouchable", "images/untouchable.png", "h4_ani")
create_medal("untouchable_medal", "main")
attach_sprite("untouchable_medal", "untouchable")
attach_sprite("untouchable_medal", "blue_flash")
medal_slide_animation("untouchable_medal", "slide")

--Invincible
create_sprite("invincible", "images/invincible.png", "h4_ani")
create_medal("invincible_medal", "main")
attach_sprite("invincible_medal", "invincible")
attach_sprite("invincible_medal", "blue_flash")
medal_slide_animation("invincible_medal", "slide")

--Inconceivable
create_sprite("inconceivable", "images/inconceivable.png", "h4_ani")
create_medal("inconceivable_medal", "main")
attach_sprite("inconceivable_medal", "inconceivable")
attach_sprite("inconceivable_medal", "blue_flash")
medal_slide_animation("inconceivable_medal", "slide")

--Unfriggenbelievable
create_sprite("unfriggenbelievable", "images/unfriggenbelievable.png", "h4_ani")
create_medal("unfriggenbelievable_medal", "main")
attach_sprite("unfriggenbelievable_medal", "unfriggenbelievable")
attach_sprite("unfriggenbelievable_medal", "blue_flash")
medal_slide_animation("unfriggenbelievable_medal", "slide")
end

t3h m00kz
June 1st, 2014, 09:05 PM
function register_callbacks() appears twice. I neglected to rename mine to something that wouldn't interfere with other scripts. Try renaming one of them.

function register_callbacks2() or something.

Btcc22
June 1st, 2014, 09:54 PM
It'll probably be easier to wait until documentation day.

Crenshaw
June 2nd, 2014, 11:54 AM
"custom_chat 1" in the console

deathvoices has been released on the last page.

ok thanks. but will the chat work even though i have sehe's multichatv2? just a noob qestion.

t3h m00kz
June 2nd, 2014, 12:00 PM
no

Crenshaw
June 2nd, 2014, 12:04 PM
wow quick response. btw ive come to the realization that my halopc nor ce doesnt connect to the server anymore. and ys iv already updated to 1.10. what you think could be the prob? and oh when my game loads hac2 loader it always minimizes and say the loader is taking longer than usually to connect to the server and then it spouts an error trying to cnnect to network, or something like that. then i would have to manually maximize to my game. any clue? and am really sorry to be a bother if i am.

megajd16
June 2nd, 2014, 12:20 PM
function register_callbacks() appears twice. I neglected to rename mine to something that wouldn't interfere with other scripts. Try renaming one of them.

function register_callbacks2() or something.

i tried it but don't works yet

megajd16
June 2nd, 2014, 12:41 PM
It'll probably be easier to wait until documentation day.

jmmm it's so much hard wait, but...

you can do the heashot medal?? :D

Btcc22
June 2nd, 2014, 12:57 PM
jmmm it's so much hard wait, but...

you can do the heashot medal?? :D

No.

Crenshaw
June 2nd, 2014, 01:14 PM
why cant i go online today? on halo servers?

t3h m00kz
June 2nd, 2014, 01:28 PM
i tried it but don't works yet

I'll try to have a look at it when I get home and see if I can't whip up a functioning script in the mean time.


wow quick response. btw ive come to the realization that my halopc nor ce doesnt connect to the server anymore. and ys iv already updated to 1.10. what you think could be the prob? and oh when my game loads hac2 loader it always minimizes and say the loader is taking longer than usually to connect to the server and then it spouts an error trying to cnnect to network, or something like that. then i would have to manually maximize to my game. any clue? and am really sorry to be a bother if i am.

I don't know what to tell you. The servers went down on the 31st, so anybody on 1.10 should be seeing the new servers.

Try removing any modifications you have (HAC2, OpenSauce, Sehe's optic, anything that's not vanilla halo) and seeing if you have better luck?

A valid key and the 1.10 patch should get you in fine.

Btcc22
June 2nd, 2014, 01:55 PM
Sounds like he has a firewall that's blocking Halo.

Crenshaw
June 2nd, 2014, 02:09 PM
it worked fine up until yesterday afternoon. i was already connected the new servers. dont know what happened. and it was possible with all mods including hac2 and sehe multichatv2 :saddowns:


EDIT: what kind of shit is this? now miraculously its working! i opened up my laptop bam. that got in the server list almost automatically. then i hurried over to my computer and bam my desktop halo is working. wtf? weird! any ways thanks for all your concerns and help guys.

t3h m00kz
June 2nd, 2014, 11:49 PM
medals for being a loser (https://mega.co.nz/#!yZET3ZTb!aVClWasE5ZZCU7FkaJ1ArAYNoR3bfI7-i8WbpJdKQd0)

(https://mega.co.nz/#!yNNjBBIT!giH2FZpQFfauvfXGWkgHLSTEWeBTBzFRt1tv2q0 MF1s)5 deaths = suck it :nsmug:
spawnkill = cool spawn bro:realsmug:
10 + deaths = you SUCK:mech2:

6TT1Js9sA6o

Amit
June 3rd, 2014, 12:21 AM
Lol where did those modified voiceovers come from?

t3h m00kz
June 3rd, 2014, 12:22 AM
"You SUCK!" and "Cool Spawn, Bro" were cut from reach I believe,

"Suck it!" I'm not entirely sure where the source is from. I found it on some web site a long ass time ago. http://samussucksmasterchief.ytmnd.com/

Btcc22
June 3rd, 2014, 03:41 AM
Bungie released a bunch of announcer lines (http://forums.bungie.org/halo/archive27.pl?read=794673) as an April Fools joke. Might want to add this one (http://nikon.bungie.org/misc/h2dialogue/bungie_eggs/turn_down_the_suck.mp3).

stunt_man
June 3rd, 2014, 07:28 AM
"You SUCK!" and "Cool Spawn, Bro" were cut from reach I believe,

"Suck it!" I'm not entirely sure where the source is from. I found it on some web site a long ass time ago. http://samussucksmasterchief.ytmnd.com/

Suck it is from the April Fools lines that Btcc posted. There are some good ones in there :D

t3h m00kz
June 3rd, 2014, 01:25 PM
Bungie released a bunch of announcer lines (http://forums.bungie.org/halo/archive27.pl?read=794673) as an April Fools joke. Might want to add this one (http://nikon.bungie.org/misc/h2dialogue/bungie_eggs/turn_down_the_suck.mp3).

I'll do that when I get home and update the links :}}}

ty~

megajd16
June 3rd, 2014, 01:39 PM
I don't know, justt imagine it :v XD


https://www.youtube.com/watch?v=_iCzCkfkwfA

t3h m00kz
June 4th, 2014, 12:12 AM
Added:
10 kills - "Turn Down the Suck" :crylancer: (Moved "You SUCK" to 15)


Voice used:
http://nikon.bungie.org/misc/h2dialogue/bungie_eggs/turn_down_the_suck.mp3


Updated link:
https://mega.co.nz/#!yZET3ZTb!aVClWasE5ZZCU7FkaJ1ArAYNoR3bfI7-i8WbpJdKQd0


Also set foundation for "Stop Shooting your Team Mates" from:
http://youtu.be/B08BLEKv3zk?t=17s

Cortexian
June 4th, 2014, 03:19 PM
lol did you actually use the crylancer emote? haha

Zeph
June 4th, 2014, 03:43 PM
:crylancer::crylancer::crylancer::crylancer::cryla ncer::crylancer::crylancer::crylancer::crylancer:: crylancer::crylancer::crylancer::crylancer::crylan cer::crylancer::crylancer::crylancer::crylancer::c rylancer::crylancer::crylancer::crylancer::crylanc er::crylancer::crylancer::crylancer::crylancer::cr ylancer::crylancer::crylancer::crylancer::crylance r::crylancer::crylancer::crylancer::crylancer::cry lancer::crylancer::crylancer::crylancer::crylancer ::crylancer::crylancer::crylancer::crylancer::cryl ancer::crylancer::crylancer::crylancer::crylancer: :crylancer::crylancer::crylancer::crylancer::cryla ncer::crylancer::crylancer::crylancer::crylancer:: crylancer::crylancer::crylancer::crylancer::crylan cer::crylancer::crylancer::crylancer::crylancer::c rylancer::crylancer::crylancer::crylancer::crylanc er::crylancer::crylancer::crylancer::crylancer::cr ylancer::crylancer::crylancer::crylancer::crylance r::crylancer::crylancer::crylancer::crylancer::cry lancer::crylancer::crylancer::crylancer::crylancer ::crylancer::crylancer::crylancer::crylancer::cryl ancer::crylancer::crylancer::crylancer::crylancer: :crylancer::crylancer::crylancer::crylancer::cryla ncer::crylancer::crylancer::crylancer::crylancer:: crylancer::crylancer::crylancer::crylancer::crylan cer::crylancer::crylancer::crylancer::crylancer::c rylancer::crylancer::crylancer::crylancer::crylanc er::crylancer::crylancer::crylancer::crylancer::cr ylancer::crylancer::crylancer::crylancer::crylance r::crylancer::crylancer::crylancer::crylancer::cry lancer::crylancer::crylancer::crylancer::crylancer ::crylancer::crylancer::crylancer::crylancer::cryl ancer::crylancer::crylancer::crylancer::crylancer: :crylancer::crylancer::crylancer::crylancer::cryla ncer::crylancer::crylancer::crylancer::crylancer:: crylancer::crylancer::crylancer::crylancer::crylan cer::crylancer::crylancer::crylancer::crylancer::c rylancer::crylancer::crylancer::crylancer::crylanc er::crylancer::crylancer::crylancer::crylancer::cr ylancer::crylancer::crylancer::crylancer::crylance r::crylancer::crylancer::crylancer::crylancer::cry lancer::crylancer::crylancer::crylancer::crylancer ::crylancer::crylancer::crylancer::crylancer::cryl ancer::crylancer::crylancer::crylancer::crylancer: :crylancer::crylancer::crylancer::crylancer::cryla ncer::crylancer::crylancer::crylancer::crylancer:: crylancer::crylancer::crylancer::crylancer::crylan cer::crylancer::crylancer::crylancer::crylancer::c rylancer::crylancer::crylancer::crylancer::crylanc er::crylancer::crylancer::crylancer::crylancer::cr ylancer::crylancer::crylancer::crylancer::crylance r::crylancer::crylancer::crylancer::crylancer::cry lancer::crylancer::crylancer::crylancer::crylancer ::crylancer::crylancer::crylancer::crylancer::cryl ancer::crylancer::crylancer::crylancer::crylancer: :crylancer::crylancer::crylancer::crylancer::cryla ncer::crylancer::crylancer::crylancer::crylancer:: crylancer::crylancer::crylancer::crylancer::crylan cer::crylancer::crylancer::crylancer::crylancer::c rylancer::crylancer::crylancer::crylancer::crylanc er::crylancer::crylancer::crylancer::crylancer::cr ylancer::crylancer::crylancer::crylancer::crylance r::crylancer::crylancer::crylancer::crylancer::cry lancer::crylancer::crylancer::crylancer::crylancer ::crylancer::crylancer::crylancer::crylancer::cryl ancer::crylancer::crylancer::crylancer::crylancer: :crylancer::crylancer::crylancer::crylancer::cryla ncer::crylancer::crylancer::crylancer::crylancer:: crylancer::crylancer::crylancer::crylancer::crylan cer::crylancer::crylancer::crylancer::crylancer::c rylancer::crylancer::crylancer::crylancer::crylanc er::crylancer::crylancer::crylancer::crylancer::cr ylancer::crylancer::crylancer::crylancer::crylance r::crylancer::crylancer::crylancer::crylancer::cry lancer::crylancer::crylancer::crylancer::crylancer ::crylancer::crylancer::crylancer::crylancer::cryl ancer::crylancer::crylancer::crylancer::crylancer: :crylancer::crylancer::crylancer::crylancer::cryla ncer::crylancer::crylancer::crylancer::crylancer:: crylancer::crylancer::crylancer::crylancer::crylan cer::crylancer::crylancer::crylancer::crylancer::c rylancer::crylancer::crylancer::crylancer::crylanc er::crylancer::crylancer::crylancer::crylancer::cr ylancer::crylancer::crylancer::crylancer::crylance r::crylancer::crylancer::crylancer::crylancer::cry lancer::crylancer::crylancer::crylancer::crylancer ::crylancer::crylancer::crylancer::crylancer::cryl ancer::crylancer::crylancer::crylancer::crylancer: :crylancer::crylancer::crylancer::crylancer::cryla ncer::crylancer::crylancer::crylancer::crylancer:: crylancer::crylancer::crylancer::crylancer::crylan cer::crylancer::crylancer::crylancer::crylancer::c rylancer::crylancer::crylancer::crylancer::crylanc er::crylancer::crylancer::crylancer::crylancer::cr ylancer::crylancer::crylancer::crylancer::crylance r::crylancer::crylancer::crylancer::crylancer::cry lancer::crylancer::crylancer::crylancer::crylancer :

t3h m00kz
June 4th, 2014, 05:54 PM
lol did you actually use the crylancer emote? haha

well i mean if you want to see just jump in load it up and play like you normally would.

i'm implying that ur bad LOL

megajd16
June 7th, 2014, 08:38 PM
WTH all forgot this thresd D: :v

t3h m00kz
June 16th, 2014, 05:28 PM
soooo how's this comin along may I ask

Btcc22
June 16th, 2014, 11:17 PM
soooo how's this comin along may I ask

Hasn't been much progress in the past couple of weeks. :(

dexter
July 4th, 2014, 03:25 PM
Loving the medals and HAC's custom chat. Thanks t3h m00kz for the suck medal audio :D It was hilarious addition. This one would be pretty funny too if we could only detect t-bag somehow: http://youtu.be/B08BLEKv3zk?t=22s

Anyway, I have few questions about optic. They are mainly directed to Btcc22 but if anyone has a clue, feel free to answer. First of all, I'm curious to know whether it's possible to script in betrays somehow. For example, I've been looking at the lua scripts and there's a function "player_kills" that has a variable called "event". Is there a value for the 'event' that indicates betrayal?

Secondly, I was testing out the suck medals by doing deathsprees on purpose. It works with suicides and when you are killed by another player. However, I noticed that falling to death and being killed by a vehicle did not increase the value of my deathspree variable. This is not a problem but is it true that those two death types do not count in environmental_death function?

Then slightly off-topic: Btcc22, I know you have a life :) BUT if you consider at some point adding customization options to the custom chat then I would love to see a console command like "chat_incline 1/0" or something like that. Basically an option to decide wether you want the medals and custom chat to be aligned perfectly horizontal or slighty inclined like in Reach (the way it currently is). I have absolutely no problem with the way it is now but that's an option I'd enjoy. However, I have no experience in modding so I don't know how much work that would require. If it takes considerably many work hours, then don't bother because I might be the only one interested in that option :D But I will give you free cake if you implement it.

supersniper
August 1st, 2015, 11:32 PM
FYI if anyone is interested, because of the change in OS structure, this is compatible with OS. And because HAC 2 is incompatible with OS this will let you track medals again.