Welcome to Open Carnage

A resource for gamers and technology enthusiasts, with unique means of rewarding content creation and support. Have a wander to see why we're worth the time!

IceCrow14

Member
  • Content count

    10
  • Joined

  • Last visited

  1. "Cprint" only prints the message to the server's console. I guess what you want to do is displaying the messages in the chat but without the server's prefix, if that's the case I think you could change the server's prefix to an empty string every time a death message is about to be displayed and then change it back to its default value. Something like this: elseif last_damage[PlayerIndex] == tank_shell then msg_prefix("") -- If not possible, you could try using " " instead, or a small character. say_all("$name was killed by $kname\'s Scorpion"), PlayerIndex)) msg_prefix("[Your default server's prefix]") Anyway, I only mod CE so I may be missing something. Hope this helps!
  2. As far as I know, there isn't a known offset/address for such variable, it probably exists in the engine, but I don't know its location and unfortunately I don't know how to find memory addresses on my own (yet), I've been working only with the ones that are on the memory addresses and offsets document. The addresses I've used are for the object's X, Y, Z, Pitch, Yaw and Animation state (I haven't messed with the ones for the biped's body parts' data because that would mean sending a lot of information to the client, that should be read as substrings and consequently end up reducing the performance of the game) and I've achieved nice results, like this: At the ending of the video you can see the glitch I mentioned before, some bipeds disappear when they play certain animations and still I haven't figured out what causes them to do such thing, it's almost senseless that they just go away like that because their coordinates are supposed to be updated on every tick, but strangely, if I erase/deactivate the code that updates the animations everything runs fine, just like it should... I'm actually thinking on using another method that involves using some client-side stuff instead of this, but I'm not sure if it would work.
  3. Awesome! Glad to see more people working on syncing AI, I just have a little question. Are you using client-side AI? I mean, something like using the server to send its bipeds' data to the clients so they can spawn their own local bipeds and move, rotate or animate them the way the server tells them to do instead of using the braindead bipeds spawned by the server on the client-side? (Sounds quite strange, but maybe you know what I mean), anyway, I could share the scripts from my last post if you think you could find something useful in them.
  4. Fortunately there are memory addresses for the object's rotations and animations, actually, I've already managed to update them too in a previous test but it was very resource consuming because the server had to send a message for every piece of data on every tick (For example, one for the biped's X, another one for the Y, for the Z, for the animation state, etc...) and as the amount of bipeds increased, the amount of messages did as well and at some point the server wouldn't be able to send all those messages to the client (about 7 per biped, multiply that by the amount of bipeds and then by the amount of players) or the client wouldn't receive all the messages it should, honestly I don't know but the result was that the client was disconnected from the server after a few seconds if you had about a dozen of bipeds. So what I'm doing currently is pure optimization, I made some changes to reduce the amount of messages per biped to 1 (That's why in the video you can see all the coordinates' data sent into one message. Much of the client's job is based on reading sub-strings). About the bones... I think there are offsets for their location and rotations too, but I'm only focused on the main object's properties to make this script somehow "universal" for every type of biped you include in the map. Finally, the animations... I've found very weird glitches that cause the bipeds to suddenly disappear when they play specific animations and I suspect it's something related with the "frame info type" setting of such animations. Currently I'm not able to upload a video, but in a few hours I will so you can see the advances I've made.
  5. Well, first of all, I haven't given an actual name to this thread (I'll do later) because there are two "projects" (if you want to call them that way) on which I've been working on. I'm not so good with explaining this kind of stuff without getting into details, so... Let's take a better approach: Biped / AI synchronization Recently I've been playing with both SAPP and Chimera's Lua scripts to achieve this, and I have managed to get a somehow "more authentic" way to sync client-side stuff like bipeds, scenery and even vehicle custom animations (in theory we should be able to sync even object permutations, which could allow any server manager to set different model permutations for every team's vehicles and players in a CTF game, for example) using remote console messages. By now, I've made a pair of scripts, one for SAPP (which sends the data to the clients) and another one for Chimera that modifies anything that the server tells the clients to change. In comparison with other AI sync methods I've seen before (like the one that uses map scripts to attach and detach vehicles to AI bipeds, or the SAPP one where the server spawns a vehicle for every biped depending on it's current animation state to then assign it the current biped's location, rotation, etc.) with this one the client updates the actual properties of the server's biped, so you can see aditional stuff that is missing within those methods such as their effects and the crosshair's flash when you aim at an enemy. Also, another incredibly good new about this is that you won't need to modify the map files in which you use these scripts as long as the AI encounters' data and tags are there. Another great feature of this is that you don't need to modify lots of code or do massive tag witchcraft to get different types of bipeds simultaneously, however there is a long way to get this working smooth and pretty at the same time. End of the speech, watch with your own eyes what I'm talking about: Flood survival (PvE and PvP) Something I wanted to work on since a long time ago, basically what I'll try to do, at least by now is a multiplayer map that supports all the gametypes but also allows the players to summon Flood hordes to bring a somewhat new and strategic approach to Halo CE and also spawns them automatically in certain areas of the map. I plan to use the default tagset but with some balance changes (No more OP pistol and useless automatic weapons), add upgraded variants of certain vehicles and weapons and if possible, an option to choose your battlefield's spawn point (I'll set the spawn points for team based game types inside a pair of ships, part of the BSP). I'll be posting updates on this thread, currently, the scripts are a bit unstable and the BSP isn't finished so... I guess I won't be able to release anything yet.
  6. Something I made in minutes a pair of days ago (A rounds script, and some changes to my previous AI sync one). I'll make a proper thread for this when I have enough time and fix some of its worst bugs that currently make it unstable.
  7. I think the default directory for Lua scripts is "C:\Users\[your user name]\Documents\My Games\Halo CE\sapp\lua". Once you drop the script there you'll have to load it either writing in your init.txt "lua_load ai_sync_1" (without the quotes) or typing that same command through the server console.
  8. Thanks, and about how I started doing this... Well, it was like a gradual process before I knew anything about modding, I used to ocasionally watch videos about PC or console mods but at that time I could only be amazed by them because I used to think that such stuff could be added/changed only through the use of tools that my lack of knowledge wouldn't allow me to use at that time, such as Hex editors or anything that involved "breaking" (you know what I mean) the game, but when I knew the HEK was a thing and finally got it in my hands, everything changed. Now, about 5 months later I've done more than I thought would be possible with the engine and do not regret a single second. And yes, I hope to be helpful when possible during my stay, would love to see new and fresh content, just like the one you guys have been making through these years.
  9. I know that AI sync has been done before with a method similar to this, however, I haven't seen any stuff released, so... I made my own attempt and it seemed to work. I thought that not sharing it would be a waste, so, here it is. To test it you just need to load the script with SAPP and start a match in the sync_test_2 map, give it a try, take a look at the script if you want to test it with your own tags or understand how it works, I don't know. Feel free to ask me any questions about it or to let me know if you find a glitch on it, maybe I'll upload an improved version that fixes some of the bugs that it currently has. The sync_test_2.rar contains the map and the Lua script.
  10. Hello! I'm new to the community (This, and maybe to the whole Halo CE one too), now you may have already guessed the reason why I've come, I've been making content (some tags, scripts, and maps, obviously) for the Custom Edition. I've learned a lot from this forum and halomaps.org, and I thought that it would be time to return the favor (even though I might have come a "little" too late for it, lol). Maybe in a few hours/tomorrow I'll post my first release. Things you should know about me? Maybe that english isn't my main language, so, if I write something wrong (grammar or orthographic errors) please let me know (if possible by PM, otherwise it'd be pretty embarrassing). I'd be thankful about that. PS: I love the dark grey scheme of the site, congratulations to whoever thought of making it that way!