If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Re: SAPP

is this the only forum/website for SAPP?? i need more info/help with the app on a whole.

ive been following the new releases from 3.0 upwards and ive manage to setup my server on my own and now im on version 4.5 i know how to use the events and whats not but in my own way. what i want to see is if there is other ways to use the events other than the examples given on the developers website. plz reply and thank.

i have alot of ideas i want to put into my server but im stuck. if you like i can state someways ive managed to use/make the server broadcast messages and customize gameplay.

Re: SAPP

I got an idea that I wanted to post here, because of it's length. It's a three part idea, and has to do with the server files.

For the first part, what about a feature that allows admins to specify a specific location for the main server files, such as the maps folder, the ipbans.txt file, the locations.txt file, the admins.txt file, etc?

This could be useful for those who have servers hosted by companies that require each instance to have it's own .exe file rather than a shortcut, which makes it so that each server would normally have to have its own set of these files, or for people that do this anyways and want to save hard drive sapce, especially in the case of the maps folder. The files could be accessed from another place on the same hard drive, on a FTP server, or on a network drive.

The second part of this idea would be the ability to integrate multiple files within each other, such as the init file, the events file, and the commands file. On some servers, these files can get pretty big and unmanageable, and if someone has multiple servers that use the same set of events or commands, or init file settings across them, it can get really tedious to maintain and update them.

For example, this could be an init file:

Init File A - Used by the user for setcmd options - C:\HaloFiles\setcmdinit.txt

Code:

setcmd afk -1
setcmd b 4
setcmd unban -1

Init File B - Used by the user for map settings - C:\HaloFiles\votinginit.txt

Re: SAPP

SAPP 5.0 Is out, by now every1 should got it by auto-update.

There are 1 main change in the engine, that hooking is now totally rewritten, code is more clear and hooking is faster. This means Sapp is some step closer to port to HPC.
Sapp also got 2 new feature: arguments for custom commands and The no-lead mod. =)

Arguments for custom commands:
Between the command name and the command, you can put arguments starting with the '#' character. Example:
You add to the commands.txt the max #n 'sv_maxplayers #n' line and you execute the max 4 command, sapp will execute the sv_maxplayers 4 command.
Orspawnw #n #weap 'spawn weap "weapons\#weap\#weap" #n; wadd #n' and you execute the spawnw 4 "sniper rifle" it will execute the spawn weap "weapons\sniper rifle\sniper rifle" 4 and the wadd 4 command, and gives a sniper for player 4.
Here I had to note that lately kids using sapp to cheat on scrims. There is a feature to fix this already:Scrim Mode:
"scrim_mode [enabled]: If enabled, no one can execute any naughty commands.
Server sends a message to every player if this status is changed.You can also check it's status with the info command."
Ask the admins to turn this function ON with scrim_mode 1 command if it's not enabled. If they try to turn it off during the game, server will alert the players.
If they reject to enable it or change it meanwhile just leave them there cuz they prolly only want to cheat.

No Lead Mode:
Story (for advanced players):
At 2012. July 25. Btcc22 added me that he has some questions about "Halo's inner-workings", soon he told me that he has some idea to reduce/fix leading. The idea was collecting the player's state on each tick and storing it in a buffer of historical data and restore the old positions for the collision check function, using the players' ping as an index.
Since I already had the collision-check function, (THX to Skyline, he gave me the address, originally for the boost command, but I'm using it for Aimbot-detection and now for this!), and I was very curious + already had the necessary hooks in SAPP. Only had to add 2 more CC, and since it worth that few hours to try, I decided to code it. Surprising (after few fixes) it worked pretty fine, I wasn't really expecting such improvements, although it still had problems. One was the crashing. It always crashed after few hours of uptime, especially with vehicles. I couldn't figure out the problem + summer was coming so I abandon the project. Also because I though it divides the community, cuz there will be always ppl who hate it and say things like "It's not Halo anymore" etc.

I didn't bother with it anymore until PaulusT posted his mod and every1 was like "wow this is so awesome" etc. I checked his code and liked his idea, but I though mine works fine too, and seeing the positive reactions I migh cold improve mine even more and fix the crashes. It was about 2 weeks ago.
So then, I started to work on it again. First, I wanted to fix the crashes, but couldn't find the problem. Long hours of debugging with olly, tried many places for hooking and collecting history etc. but couldn't find the bug.
Meanwhile Btcc found where Halo's thread sleeps. I couldn't find it before, since its in call esi format, and olly doesn't reference it, and also cuz for some reason Halo CE calls SleepEx. Well, here I was playing a bit with the code, and now it was clear why Halo dedi uses so many CPU. I managed to run Halo thread in 120 times / sec while the CPU usage is reduced to about half and pings staid stable. This is the part of Sapp 5.0 too, thats why pings go by about 8,333 instead of 33,333 in Sapp servers. Note that this doesn't affects physic or amount of packet's sent. The "only" benefit is that pings are more realistic now and packets are processed faster, which improves reg. One day later I searched for where Halo updates pings, and changed it from every 3 second to every 1. Unfortunately this causes a little bug that I didn't bother fixing yet: player's ping higher than 1000ms "goes crazy" and looks like their ping changing from 1-1000. It's because Halo process the previous ping packet as it was the latest one.

Anyways, I also set Halo's thread priority to "Time Critical" for more stable pings and for the better reg. By then it worked so well (apart from crashes) that I realized another problem (that Btcc knew from the first day tbh. lol); the reg was very bad at high pings. He told me that this is prolly cause bullet-magnetism, since Halo "corrects" the bullet's vectors based on the original positions, not on the restored one.
By adding 1 more CC to fix this, crashes and lags made the whole mod useless, even if it's worked fine, server couldn't run more than few hours.
After long hours of debugging and headaches, figured out that the problem is that the player-object's structure's place in the memory is not only change after die, but sometimes when the player is still alive. I used the pointers that I "extracted" at the spawning, to evade calculating it every time when I want to read/write from/to the player's structure.
Like have to use this code every time to get the current pointer: "Dynamic_Player *Player = (Dynamic_Player*)ObjectTableArray[PlayerTable.ObjectIndexNum]->Offset;"

So, I just removed this kind of "caching" and it was stable finally. Some other days of testing and improving code, and it was done, and released!
As you can see, this project wouldn't come true without Btcc22 and his help.
I also would like to thank his time testing it, just like for Sean Aero, Ausprime, Persistent, Kadem, Osmo and the others who played in our server and told us their opinion/impression about the mod. ^^
Also, Thanks for Gijs, Ausprime and Persistent for hosting me the servers where we could test it, without them I couldn't really test in other servers, and for high pings.
Btw. Btcc would did this too later, but he's working on HAC 2 atm, which has many awesome features that you will see soon. :P

Edit: I forgot an important part. This fix works with any pings (as long as you don't lag), and also works with animations like melee, jumping, crouching, falling etc, but doesn't work with vehicles, yet.

Usage:
This one is very simple.
This mod is disabled by default, you can enable/disable it with theno_lead [enabled] command, (so just put no_lead 1 to sapp's init.txt to enable it.)
You can check and change the state of leading with the lead command.If the admins didn't enable no-lead mod, you can't turn it on for yourself, but if they enabled it, everyone can disable this mod for themselves by typing /lead 1 to the chat. Also, you can re-enable it ofc with the /lead 0 command).

Hehe, such a long post ^^
I hope you'll enjoy it as much as I enjoy creating SAPP =)

Re: SAPP

Thanks for the long post ^^
I really like reading some indeep stuff about Halo. Hopefully you can find out how vehicle no-lead works too. I always found leading vehicles very difficulty, even with low ping.

Hope you don't mind me asking you a question about lead in general:

Lets say we have two situations. In the first picture both players have a low ping of 33ms and in the second the targeted player(red) has a high ping of 300ms.

In both situations the blue player leads the same very small amount in front of red.
- And if he shoots at a person that has a low ping he will hit.
- But if he shoots at a person with high ping his shot won't reg.

Is there any explanation why this happens on a stock/unmodded server? And does the no lead fix considerate the ping of the targeted player or only of the shooter for the calculation?

In essence does the no-lead fix mean that high pingers will have it easier to hit others but they themself will still stay the unhitable laggers they are right now or will they also be easier to hit?

Also can you find out why lead is so much more consistant/better in Halo PC/FV than it is in Halo CE?

Re: SAPP

Originally Posted by sanni

Is there any explanation why this happens on a stock/unmodded server?

I think it's likely down to packet loss/slower update rate that perhaps leads to inaccurate position prediction/interpolation. Even 'microwarp' as I like to call it is enough to throw the reg out of whack. Throw in Halo's poor netcode and that's probably all there is to it.

Originally Posted by sanni

And does the no lead fix considerate the ping of the targeted player or only of the shooter for the calculation?

Only the shooter's. Other players' ping aren't relevant/required for the calculations.

Originally Posted by sanni

In essence does the no-lead fix mean that high pingers will have it easier to hit others but they themself will still stay the unhitable laggers they are right now or will they also be easier to hit?

The former. I've noticed already that they have a fairly easy time of getting shots to reg against you without leading but it can be quite difficult to hit them. Irritating but I don't know how much can be done about it without knowing the exact cause.

Originally Posted by sanni

Also can you find out why lead is so much more consistant/better in Halo PC/FV than it is in Halo CE?

The netcode is the 'same' minus a couple of new packet types that I can't see being related to this. Perhaps they tweaked a few variables here and there and accidentally made things worse in the process. I don't think anybody has looked into it.

Re: SAPP

Yep!
Also, you don't reg at these players, cuz what you see as the player's movement is just a prediction based on their moving vector. If their packet late or lose, their moving vector won't get updated, and you shoot this "ghost" player. When the packet (or the next) arrives, Halo correct their position, and since u didn't shot to the "correct" direction, it won't hit.

Soz for slow answer, I'm a bit busy lately, but atm I'm working on the vehicles, and looks like I can manage no-lead to work with vehicles too.
Beta tests in 1-2 days! =)