PDA

View Full Version : [APP] SAPP



Pages : 1 2 [3]

PaulusT
August 14th, 2013, 11:32 AM
I would LOVE it if you could add the following:
- The ability for clients to set the exact no lead amount e.g. in milliseconds. Perhaps to a maximum absolute value of 500ms. In this case, any automatic adjustment of the lead amount (e.g. based on client's ping) should be disabled and the specific value (set by the client) should be used instead.
- Make the no lead option enabled by default (for those servers that don't really get maintained, but will still get automatic SAPP updates). Not so important: Perhaps reduce the effect, so that clients still have to lead a bit (to avoid causing reverse-leading) and rely on clients to adjust their no lead amount manually if they wish.

sanni
August 17th, 2013, 05:17 AM
Here are two more ideas freshly out of my retard brain ;D

Option to disable collision detection between team mates on public servers
- often in a public server people walk very close to you and make you lag. My guess is it's because of the collision detection.
Also more than once I experienced team mates blocking ladders or pathways etc. Or hogs driving over you, when friendly fire is off making you fly and lag like 10 feet ahead.
Disabling it would basicly allow you to walk through them or close to them without interference. This is something already in place in a lot of other games and it works there great.

More options for friendly fire
- it would be nice if there was an additional option for friendly fire which would allow damage to team mates until their shields are depleted but not further, so you couldn't drop their health and kill them. Just the (over)shield.

Dangercanyon Glitch protection should be on by default because most server operators are to retard to figure out how sapp works.

Btcc22
August 18th, 2013, 10:50 AM
1) Not really possible without modding the client too.
2) Already exists. Teamplay options > friendly fire > shields only.

supersniper
August 21st, 2013, 08:27 PM
I still feel the no lead mod needs to be adjusted... It has major hit detection problems and seems to work better for higher pinged players than it does lower pinged players.

to me when I play in servers that give me 300 ping I have way better detection than in servers with 67 ping.

sanni
August 23rd, 2013, 12:05 PM
I think the nolead part of SAPP improved very much between 5.x and 6.x.
Right now with 6.1 I would say it is spot on. Shooting on a 25 ping server feels really good. Much less random as it was with 5.x.

So yeah, thumbs up from me. I have no clue what sehe did change but it works way better now.

sehe
August 31st, 2013, 05:48 AM
Thx Btcc to maintain this forum while I was away. ^^

So, to clarify some stuffs: There are no CE to PC map converter exists. Such converter would require almost changing Halo PC code to Halo CE.

Other:
Just like everything in sapp, no-lead is optional feature therefore it's disabled by default, and I don't want to change on this. There are plenty (http://xhalo.tk/serverlist/) servers on no-lead mode already.

Also, I did not edit anything in no-lead mode since I made it. As Btcc says, Halo had always bad, "random" reg, and no-lead mode just made it more obvious. It's not only about your ping but the quality of the connection between you and the server, such as jitter (http://en.wikipedia.org/wiki/Jitter#Packet_jitter_in_computer_networks). And no, no-lead is made for players with 200+ ping in the first place, so I wont exclude them from it, that's pathetic.

And finally; I was thinking about adjusting no-lead mode like set 33-66ms etc. for yourself since I created it. It's possible just no-one was requesting it so I forgot about it. I will try to add it to the next release if it really works as it supposed to be. Note that you still can't set higher ping than yours.

If you have other other feature request or bug report, post it ASAP, because uni starts soon. :P

sanni
September 1st, 2013, 06:37 AM
Quick feature request and bug report:

We have the /events command to display a list of the events. But if there are many events you only get shown the last few. So a "/events 1" to show the first page of events and "/events 2" to show the next page and so on would be nice. I don't know exactly how many lines Halo displays in the chat but i think its 7 or so. So a page should be 7 entries.

There is a bug that temporarily removes a players admin rights on a server. Changing your IP by reconnecting your router gives you admin again next time you join the server.

sehe
September 12th, 2013, 12:15 PM
Btw. 6.2 is out with custom lead and other stuff, and 6.3 is coming soon whit some fixes and built with VS 2013 RC.

PaulusT
September 14th, 2013, 09:44 AM
Wow this is fantastic. Excellent work.

It is so nearly perfect for me now. However, I found that I was still consistently needing to lead by an extra few ms (tested using my client-side tool). When and if you get time, please please please could you allow clead to be slightly higher than your "ping". I feel like a little leeway is needed. I am not sure what the value is. Perhaps 50ms? I know this technique could allow intentional reverse leading, but I think the benefit outweighs the small chance of exploitation. And anyway, even though the exploit would allow you to shoot someone a "long" time after they run behind a wall, it would also mean you have to wait longer before you can shoot when someone is running out from behind a wall (at least, they could start shooting you sooner). So I don't think there is a huge issue, especially if the leeway is not too big.

Thanks for your great work.

Edit: In fact, I think I would prefer it if clead was simply restricted to be between say, 0-500ms, or some suitable upper limit, instead of involving ping at all. Then a negative value could mean "use ping" or something like that.

sehe
September 17th, 2013, 10:17 AM
The extra lead can come from bullet speed, random factor, jitter or the unsync of the client and the server thread, or these together.

The clead command is restricted technically, not because I decided so. If you really want, you can hook the sendto function and delay packets on the client side.

Edit: 6.3 is out now.

PaulusT
September 19th, 2013, 07:02 AM
Ah sorry I think I misunderstood what the clead command does! I thought it was the amount that the hitboxes are moved "back in time" at the server, but I guess it is kind of the opposite.

So if I set clead to 0, does that mean I shouldn't have to lead? If this is the case, then I guess what I wanted was to be able to set clead to a negative value (but still fairly close to 0). *But*, I should test it again now that I (think I) understand it. Thanks again.

Edit:
Scratch that! I guess what I would like is for clead (or some other command) to be what I said first: the amount the hitboxes are "moved back in time" for this particular player at the server.

Thus, it is not affected by the player's ping at all, which is the entire reason I wanted this feature -- I wish to override the server's calculated value with a constant value that I (the player) believe is correct (within reason, of course). Thanks again.

Edit2: I just played on server "©". With nolead enabled, around 40 ping and without issuing /clead, I was having to consistently lead by a constant amount. Again, this was confirmed using my client-side tool. Hence my request for wanting to override the hitbox adjustment amount with a constant value that I can set. I do not believe it is possible for the server to calculate the correct value. This might be because the correct value is based on the one-way latency from the client to the server, which cannot be calculated from the ping (which I believe is the round-trip time), as the different directions may not have the same latency. Or it may be something else entirely. Either way, overriding it with a constant value ensures the best possible experience for those willing to adjust it. Thanks again.

sanni
September 20th, 2013, 10:37 AM
I got a small question too.

On some servers like "©" my ping in game is jumping from 18/19 to 27/28 and back and forth.
- Does this affect nolead calculations in any way?
- And why isn't it just settling for 24ms instead of the constant jumping?
(My actual ping is 18ms +-2ms jitter, on "RWG Scrimworld" it stays constant at 24, but on "©" it skips the 24ms step)

Also some suggestions:
- usually the first thing I do when I enter a server is to check if the opponent has Scrim Mode enabled and what version SAPP is. So /info and /about. Wouldn't it be better to display the version of SAPP with /info too? Then you would have all revelant information like maxplayers, scrim mode and sapp version on one sceen.
- could you add the custom_sleep value to the /info screen?
- if a player was banned kicked etc it should say the admins player name that did the banning/kicking.

sehe
September 21st, 2013, 01:50 PM
PaulusT: If you want to try custom lead, go to a server with 400 ms ping not 40 lol. It works perfectly, if you set /clead 66 you will have to lead like you had 66 ms ping, if you set it to 200 you will have to lead like 200 ms. It's nothing special changed in the no-lead code, just it sets the hitbox to [ping-clead] instead of only [ping] back.

sanni: It's not a big problem as long as it's not jumping on a "33 ms edge" (like 24-46, 54-70 etc.), otherwise no-lead can miss +- 33 ms.
Also, there are already too much info in that command, some more lines wouldn't fit into the original chat.

Make proper, reliable players as admin, not pathetic idiots like Gaymaster or the moron Storm. :) But yeah, guess I can add this as a feature.
Oh btw. this reminds me that ridicilus story when I entered to your "©" server and in 10 seconds Storm banned me for no reason then in 2min he crashed/ddos the server and then said to everyone it was me. xD I should laugh at this tho it's rather just sad lol.

Crenshaw
September 22nd, 2013, 05:18 PM
namehack download prob bro here (http://prntscr.com/1sw87k)

sehe
September 23rd, 2013, 02:05 AM
Oh thx, I forgot the "/downloads/" path from the link, it's fixed now.

Anyways, atm. I'm working on a basic client side anticheat that would work with SAPP, and ßéta testers are wanted in three category:
Generic Player: For reporting bugs and crashes.
Cheater: You have to try as much as cheat you know, and report me if you could use any, even just partly.
Cracker: You have to try bypass the anticheat and make a working cheat. If you succeed (you won't) you have to give me the details how you managed it.
Please contact me on Xfire (lgbalazs) or here in a PM if you're interested.

liquidspark
October 22nd, 2013, 04:08 PM
I was able to finally figure out how to get custom maps to work on the Halo PC server.
However, I cannot get any EVENTS to work on the Halo PC server. Am I to assume that events do not work on Halo PC, but only on Halo Custom Edition? I tried every which way, but they are not working at all. Commands work fine, init stuff works fine. Events do not work at all, no matter what. Nothing happens.

Also, here you can read what I wrote about how to set up a server with custom map files:

http://unsc.galaxyverge.com/viewtopic.php?f=13&t=34
As you can read, the two files you must modify when adding a new map are the SAPP's init.txt file, by adding a map_load statement, and the mapcycle.txt and/or mapvotes.txt files by adding the map name.

WAIT!!!! I GOT IT TO WORK!!! I had to change the events.txt file's format to "Unicode (UTF-8, with BOM)" and using Unix (LF) line format. I'm using that also with commands.txt and the other files now.

FINALLY!!! I'M SO HAPPY!!!

Wait, now I have a question: how do you get map voting to work? It seems to only choose a random map. How do I get the voting list to show up so players can vote on the next map?

derpderp
October 23rd, 2013, 12:56 AM
hello,

I noticed that when I change a players speed it slowly degenerates back to 1.0

(example) set players X speed to 1.4, a few seconds later 1.39...1.38.... after about 120 seconds the players speed stops at the normal 1.0

I cannont find the reason for this , i think that it could be a sapp problem.


 

Could any of these be possible with sapp? ive played in servers with these mods although clients need to have the modified map, client/serverside stuff

Using the default Halo Ce maps everyone has-

-Client use of the control key makes the player invisible while the key is held.

-Sniper riffles that shoot tank shells, other weapons/vehicles that shot various combonations of projectiles.

-Warthogs that have 2x top speed and 10x acceleration

Anytime I modify the bloodgulch map for Halo CE with HHT, HMT, exct... I change them with Halo Map Version Converter and make my modifacations. With the changes made I put the server up but others cant join unless they have the exact map with my modifacations.

ive played in servers where the client can has the unmoded bloodgulch and the 3 things i listed above work for them. Could anyone explain how? Or what programs are used?


 

Possible idea? Conquest GameType

A Slayer game where the game starts FFA or with 4 teams, example - red, blue, white, black or every slayer person has there color as there own team. When you kill a player that player joins your team, and color. The game ends when all players are on the same team, in a match of conquest.

needed stuff be like

Multiple players allowed as the same color at once

A way to stop players from killing gained teamates in a betray

No team switching or leaving the game and coming back to TS

4 team colors example, teams have differnt starting weapons, or advantages like camo, speed, hp, ammo and stuff


~That be sweet, Thx for the readnig, hope the speed glitch is fixed soon and that some of the ideas are possible :downs:

sehe
October 23rd, 2013, 05:26 AM
I noticed that when I change a players speed it slowly degenerates back to 1.0
(example) set players X speed to 1.4, a few seconds later 1.39...1.38.... after about 120 seconds the players speed stops at the normal 1.0
I cannont find the reason for this , i think that it could be a sapp problem.

Me either, it's some Halo bug feature.


Using the default Halo Ce maps everyone has-
-Client use of the control key makes the player invisible while the key is held.
-Sniper riffles that shoot tank shells, other weapons/vehicles that shot various combonations of projectiles.
-Warthogs that have 2x top speed and 10x acceleration

For the control key stuff they using some Phasor script, as for the others they are modded maps. First you have to load the server then replace the maps for Halo CE. But if you use the strings.dll which is included in the archive, then it should cache the checksum of the maps. Delete the cache.hac from the Halo CE folder, put back the original maps, start haloceded and wait till it loads. Then you can put modded maps but the original checksum will be loaded from this file, thus the clients will be able to join.
Btw. If the warthog stuff is modified in the server side only, aren't the clients simply lag in hogs?


Possible idea? Conquest GameType
Cool but no atm, tho 4 team game was already requested, but it's not this simple to make. Also cuz the scoreboard is client-sided.

derpderp
October 25th, 2013, 01:34 AM
Hii,

When warthog speed/acceleration are modified the clients do experience lag while driving. If you set values very high and tap w and s to move backwards and forwards you can control it a lot better. Wheelies, stopies and tight donuts (or just haul ass across the map). If u set the hogs reverse speed to a controllable level you can adjust yourself on a hill to get big air.

 

I have explored the speed degeneration issue-

Its a problem with slayer/team slayer games, under edit game types -> game options -> slayer -> "Kill penalty"

if set off/no- a players speed will degenerate -0.01 every 3 seconds (If set above 1.0)

If a players speed is 0 or negative there is no change to speed in such intervals

 

If turned yes/on -> a player speed will stay at the set value until they get a kill, the killers speed will decrease whilst the killed players speed will increase.

 

 

---Easy solutions---

Have a CTF gametype with disable_object "weapons\flag\flag" in your init (LOL)

or have event_alive $team:blue 's $n 1.6' or

event_alive $team:red 's $n 1.6' or

event_alive 's $n 1.6' in your events

 

I first noticed this speed degeneration problem in my friends DangerCanyon ZOMBIES server. The humans would camp on the portal side of the bridges and as a zombie it was often quite a walk to get to the humans. By the time I did I was going 1.2-1.4 instead of 1.6. The event_alive for blueteams speed seems to work well, although in a full server its a lot commands, changing often 10+ players speed every second they are alive.


Any spoilers to what your working on? #keep up the good work ^^

homebrued
November 2nd, 2013, 01:50 PM
Feature Suggestion:

Remote console. Remote meaning not in the server or at the console. Using a third party software client. Example: Qtracker client http://QTracker.com
Personal note: I really do enjoy this client.

sanni
November 4th, 2013, 04:33 AM
Feature suggestions(just some random ideas, most likely nothing new):

- /teamup
SAPP sorts teams based on tag

- /concede
If all the players from one team /concede they forfeit the map.

Both commands should be only available when in scrim mode ofc.

sehe
December 16th, 2013, 02:18 PM
I'm back, I was working on Anticheat then exams attacked, and also was more interested playing PlanetSide2, which looks to be a very promising game.
I cba making remote console as 95% of the admins would just use it to kick some1 when there is no more spot left in the server.

Now as I have some tome before the finals I eliminated some memory leaks at unload and one with object spawning. (thx to Visual Leak Detector (https://vld.codeplex.com/))

I'll add this teamup thing as I always wanted it but in the end got forgotten.
Also, could you explain this concede thing as my native language is not english and even whit google translate i still don't get wtf you mean. :/

Expect 7.1 around the end of this week.

Crenshaw
December 16th, 2013, 05:58 PM
CONCEDE : admit that something is true or valid after first denying or resisting it.

If u really are from Hungary then here CONCEDE : Elismerem, hogy valami igaz vagy érvényes, miután előbb tagadják, vagy ellenállunk neki.

sehe
December 16th, 2013, 07:55 PM
Still makes no sense lol, what would it do ingame as a command???

YetiSnak
December 16th, 2013, 08:12 PM
I think he is suggesting a forfeit command

sanni
December 17th, 2013, 09:46 AM
Concede means surrender or yield. So basicly if the opponent has total map control and your team is already about to rage quit anyway you can start a vote to give up. So instead of wasting 10 minutes on a boring game you can go on with the next map. It's like /skip but limited to the losing team in scrims.
Now that I am thinking about it a second time it's probably not worth the effort to code something like this. Probably will get abused anyway.

There is one more thing, not sure if it's a bug or I'm just doing it wrong:
If I do:


sv_mapcycle_timeout 0

in the init.txt then players get disconnected when the map is supposed to change. It happens while everyone sees the post carnage report.
At least with the gameservers.com UK server I setup right now.

sehe
December 17th, 2013, 02:20 PM
Yes, that's how halo works, minimum is 1, otherwise it's like you executed the sv_end_game command and server goes idle.

sehe
December 17th, 2013, 07:04 PM
Anyways, teamup command is done, it's much more complex to code as it seems for the 1st time if u want it to be a bit more "intelligent".

sanni
December 21st, 2013, 04:28 AM
Suggestion to improve vehicle spawn system:



spawn <type> <name> <x> <y> <z> <team>

Examples:

spawn vehi "vehicles\banshee\banshee_mp" 4 5 8 red
Will spawn a banshee that after the vehicle wasn't used for whatever the respawn time of the gametype is will respawn at a red vehicle respawn point.


spawn vehi "vehicles\banshee\banshee_mp" 4 5 8 none
Will spawn a banshee that after the vehicle wasn't used for whatever the respawn time of the gametype is won't respawn at all, instead it just gets deleted.


spawn vehi "vehicles\banshee\banshee_mp" 4 5 8 coord
Will spawn a banshee that after the vehicle wasn't used for whatever the respawn time of the gametype is will respawn at the coordinates it was spawned into the level in the first place. So in this case it will respawn at 4 5 8 instead of one of the vehicle respawns on the map.

sehe
December 27th, 2013, 12:52 PM
Yes, I was too lazy implementing a proper respawning system, maybe once. Anyways, 7.1 is out, you can download it from the site, servers will be auto-updated tomorrow when they are empty.

liquidspark
January 17th, 2014, 04:29 PM
How do I add player commands?

liquidspark
January 17th, 2014, 05:41 PM
hello,

I noticed that when I change a players speed it slowly degenerates back to 1.0

(example) set players X speed to 1.4, a few seconds later 1.39...1.38.... after about 120 seconds the players speed stops at the normal 1.0

I cannont find the reason for this , i think that it could be a sapp problem.


event_alive 's $n +0.00333'
seems to fix it, at least for an extended period of time

sanni
February 6th, 2014, 11:47 AM
Suggestion: Allow SAPP to set spawn times of weapons and individual players.

Examples:
- Lets say I want the sniper in Bloodgulch to spawn every 30s instead of every ~126s. I could just use the event system to change the sniper spawn time. Would be very nice.
- Or the red team leads 2-0 on a 3 cap map. Would be cool if you could use the event system to adjust the spawn time of just the red team from e.g. 5s to 10s until they cap at least once.

Just things to make public games more fun/balanced/enjoyable/noobfriendly

SonicXP
February 9th, 2014, 08:47 PM
I think custom variables could accomplish a lot of things.
With the addition of other things like $v and vehicle teleporting, you could effectively solve both the spawned vehicle respawn and weapons respawn issue. Whether fixing up a custom respawner or doing that is more work is debatable.

I came up with a couple other useful things you could do with just custom variables, however. This is assuming a lot of things, particularly the order of parsing the variables: $ -> # -> commands (as opposed to $ -> commands as is normal), and # being the prefix to custom commands

Psuedo code for keeping track of an alternative scoring method:


event_start 'addvar gamenum 1;setvar endgame 0'

event_join #$hash_gamenum!=#gamenum 'varset $hash_gamenum #gamenum;varset $hash_score 0'

event_kill 'addvar $hash_score 100'
event_score 'addvar $hash_score 4000'
event_assist 'addvar $hash_score 40'

event_join #$hash_score>0 'w8 3;say $n "Welcome back! Your current score is #$hash_score"'

event_end 'w8 4;setvar endgame 1;w8 6;say * "#redmvp was the Red Team's MVP for this round;say * "#bluemvp was the Blue Team's MVP for this round"'

event_alive #endgame=1 #$hash_endgame!=1 'ctf_score $n #$hash_score;varset $hash_endgame 1;varset testmvpscore #$hash_score;varset testmvpteam $team; varset testmvpplayer $n; cevent test_mvp'

event_custom cname:test_mvp #testmvpteam:red #testmvpscore>#redmvpscore 'varset redmvp #testmvpplayer;varset redmvpscore #testmvpscore'

event_custom cname:test_mvp #testmvpteam:blue #testmvpscore>#bluemvpscore 'varset bluemvp #testmvpplayer;varset bluemvpscore #testmvpscore'

event_alive #endgame=0 #$hash_endgame=1 'varset $hash_endgame 0'

I used $hash so that they could persist for each player the rest of the game session (storing variables to a file would be a huge plus, otherwise using the event commands, the could be written to set, but there's no good way to remove the old ones so it'll accumulate in the events file.)

Some other examples of things that would be possible with custom variables:

Keeping track of kills while using a vehicle
Multi-team games
Tracking death streaks
Any kind of timer
Player/Team currency (buying vehicles etc)
So it's pretty significant for custom "gametypes"

Overall, I'd like quite a few things:

Custom variables (varset, varadd, uses #)
$v variable for vehicle events (and player events for if the player is in a vehicle?)
Tp commands for any objects
Having some kind of return value from functions like spawn
As an interim for custom variables, being able to pass values through cevent (like cevent fishes Apple 3 Fish) would sort of work, then you could have event variables like $1 $2 and $3 ($1:Apple, $2=3, $3:Fish)
I understand you're often busy, but custom events sort of inspired new hope that one day we can have these nice things.

I also think being able to set spawn times for players would be really awesome, that was a feature from the old days that I really missed.

mywarthog
February 17th, 2014, 11:16 AM
I like the idea of an argument to check what vehicle they are in, as well as if they even are in a vehicle. Would be VERY useful for certain antiglitch area events.


Also... had some more ideas as well...



event_collision: Runs if a player hits another player or a vehicle that a player is in, or if the vehicle the player is in hits a player or another vehicle. Again, this could be useful for some antiglitch things, for example... Danger Canyon... have the server kill the person that got pushed, but kick or ban the person that did the pushing. It could also maybe make for some cool things such as trading weapons to individual players (would probably need some variables for this one, or at least new commands), add an interesting twist to Zombies games, run some special events for those vehicle killing noobs (Noob? Who said that?)... interesting things like that.



A command to delete admins by player number. This could have a few uses as well... in events, if a logged in admin is glitching, teamkilling, or things like that, and is below a certain level (checked using the $lvl argument), you could automatically have their admin status revoked. Also, if a V2 Admin logs in, leaves, and then comes in with a different name and starts abusing their powers, you can delete the admin powers assigned to them by using the player number, as opposed to checking logs, cross checking IPs, and then looking through the admin index. Obviously, both ways of deleting admins should be kept... but this would be very beneficial in certain cases.



A new part to the "d" command... if a V2 Admin logs in, leaves, and then changes their profile... they stay logged in, even with a different name. Having something in the player information to display who that player is logged in as could be useful... as well as a variable/argument for events and commands (so, for example... I could have something like:

event_join $lvl&gt;0 $name!:$loggedinas 'sv_log_note "$name has joined the server, logged in as $loggedinas with level $lvl."'



A new event that runs every time an admin runs a command... including RCON if sapp_rcon is enabled. Multiple purposes, including displaying to the other admins if an admin ran a command on somebody, or is running a command on somebody, as well as writing sv_log_notes as per my last suggestion. Maybe include a $command variable or something to check the command.



For commands... it'd be nice to implement a way to also say something to admins of a certain level... maybe things like 'lvl0' 'lvl1' 'lvl2' 'lvl3' 'lvl4'... so like for example...

event_snap $botscore>8000 $lvl=0 'say lvl1 "$name (Level $lvl) has a botscore of $botscore. Sightjacking is advised.";say lvl2 "$name (Level $lvl) has a botscore of $botscore. Sightjacking is advised.";say lvl3 "$name (Level $lvl) has a botscore of $botscore. Sightjacking is advised.";say lvl4 "$name (Level $lvl) has a botscore of $botscore. Sightjacking is advised."'<br>And again, this could incorporate the previous suggestion of using the $loggedinas variable and argument... write a sv_log_note about it, and display it to logged in admins... so something like this:<br>
event_snap $botscore>8000 $lvl=0 'say lvl1 "$name (Level $lvl) has a botscore of $botscore. Sightjacking is advised.";say lvl2 "$name (Level $lvl) has a botscore of $botscore. Sightjacking is advised.";say lvl3 "$name (Level $lvl - Logged in as $loggedinas) has a botscore of $botscore. Sightjacking is advised.";say lvl4 "$name (Level $lvl - Logged in as $loggedinas) has a botscore of $botscore. Sightjacking is advised."'
Maybe in a case like that, you could also have variables like lvl1up lvl2up lvl3up lvl4up (lvl0up would just be the equivallent of admin) to say to admins that are, obviously, that level and higher. But having something to say something to specific admin levels at the least would be very useful.


Another command target for players except the one executing the command or triggering the event. Kind of like the @me in SourceMod commands.


A way to remove and respawn vehicles that were already spawned... either by the id of the player using them, or by doing it to all vehicles. The use I was thinking of for this was for situations like attempted base cramming on Death Island, where when the player enters an area in a tank (see earlier suggestions for checking this), not only would it kill/kick/ipban the player, but it would also delete the vehicle that they were in just in case it got far enough to be crammed. It could also help to remove other glitched vehicles on other maps... the admin gets into them and runs the delete vehicle command. Yes, there's vdel, but that only works on vehicles that were spawned/created by the administrator. I'm thinking this would be for the vehicles that were already spawned on the map. It would work the exact same way... just with different vehicles.


Wildcards in event arguments. So, for example... $name:WTF* would be triggered if the players name has WTF in it. Maybe allow the ? to be used as well when triggering it. There could be multiple uses for this... but the one that I'm thinking of is to prevent fake administrators/admins/things like that. So, for example... say there's a tagset «AB». I would be able to write an event like this...

event_join $name:«AB»* $name!:«AB»Test $name!:«AB»Admin $name!:«AB»Awesome 'k $n "FAKE_ADMIN"'
and it would automatically kick any players coming in with the tagset «AB» that didn't have a name matching one of the listed ones.

And actually, that example gave me another idea, too... what about a file that lists tagsets and who's allowed to be using them? Like, an entire Tagset system?

The way it could work could be like this:

In the init file:

tags_protection 1/0

In the events file:


event_badtags $tagset:[whatever_tagset] 'say $n "$nontagname - Please remove $tagset from your Profile Name."'
event_join $badtags=1 'say admin "$name is a fake member. $nontagname is not listed under $tagset in members.txt or tags.txt."'

A new txt file would be created called members.txt or tags.txt. It could be formatted like this:


Tagset:[Tagset]
Name
Name
Name
Name

where any name underneath that one, up until the next tagset line, would be authorized to use that tagset. So, as a working example...

tags.txt or members.txt:


Tagset:-AB-
PlayerName
Noob
Vehicle
Epic
Tagset:=AB=
Warthog
Banshee
Tagset:AB*
IAmBoss
Tagset:«AB»
Test
Admin
Awesome


In console:

refresh_tags or refresh_members

tagset add [tags] [name]

tagset del [index]

tagset list [tags]

tagset listall

tagset search [name]

The search would output something like this:


tagset search mywarthog
ID Tagset Name
# -AB- mywarthog
# =AB= mywarthog
# AB* mywarthog
# «AB» mywarthog


And then every time a player joined using a tagset without a matching player name, event_badtags would be ran on the user, and the argument $badtags would be set to 1 (if the admin writing the events didn't make use of the kick or ipban, they could use this to limit their experience on the server, or do other things).

Obviously, this won't help to prevent imposters (unless an optional option (just like minplayers:maxplayers in the mapcycle file) for adding IP Address or CD Hashes is added? In which case, more severe punishments through a seperate event like event_imposter, along with a seperate argument like $imposter=1/0), but it will at least help to limit fake members)



A minplayers:maxplayers option for map voting too... allows you to set how many players there needs to be in the server at the time for the voting option to even show up. Also... in the event that no one votes, would it be possible to have SAPP follow the mapcycle for the next round through a new setting like novote_followmapcycle 1/0? Maybe like the first failed voting attempt goes to Map ID 1, the next one goes to Map ID 2, and so on.



Hopefully you'll consider these ideas. I used the quote tags to try and better organize the ideas. If I can think of anything else, I'll let you know.

EDIT:

Had another idea, and also a bug report. Both relating to the admins.

Idea:


Some advanced possibillities for handling admins, especially v2 Admins. Some things I had thought of:

- Revoking accounts, rather than deleting them altogether. Some clans use a suspension thing for moderators that violated policies... revoking their accounts and reinstating them could save a lot of the hassle involved with deleting and readding them. A command would have to be added such as admin_revoke for v1 and admin revoke for v2... as well as admin_reinstate and admin reinstate. A custom message could also be shown to them stating that their account has been revoked should they try logging in.

- Events for failed logins and failed RCON attempts. Have a variable increasing with each failed attempt within a certain grace period (much like the way tk counts work I guess), and allow servers to have more flexibillity over rules for failed RCON attempts and failed SAPP Login events, such as revoking the account (above suggestion) after x tries, IP Banning the user, or kicking the user. Maybe something like event_badlogin and event_badrcon as well as $failedrcons and $failedlogins.

- This is probably a stupid idea, but it never hurts to ask/mention it. More control over passwords would be a nice thing to have... such as length (I know that stock SAPP is 4-15, but it'd be nice to have the flexibillity to change this), characters allowed/not allowed, making admins reset their passwords every so often, and rules such as "Must not have been a previously used password" "Can not be the last used password" "Can not contain username" and "Must be mixed case." Most forum softwares and other modern things have these features for security, so why not SAPP?

- A command to flag a user to force them to change their password at the next successful login. Something like admin force_pwchange that would display a prompt to the user to use the change_password command to set a new password before using any of their commands. A couple of reasons that this could be used are if an admin expects someone is tampering with their account, or for the failed logins event (see above suggestion).

- A command to view a list of who is logged in. Something like admins_online that could output something like this:


Name: Logged In As: Lvl: Type:
Admin1 Admin1 4 v2
APlayer Admin2 1 v1



And the Bug Report...

You can't kick a V1 Admin at Level 4 or ipban a V1 Admin at Level 4 from the console. It returns an error about kicking admins that are a higher or equal level to you... but the console should be above all of the admin levels, right? Also, if you delete the admin, you still can not kick or ipban them until they leave the server on their own terms. Same goes for V2 Admins.

Hopefully I'm making some sense with these ideas I'm posting here.

sehe
February 20th, 2014, 06:33 AM
Eh... so english speaking ppl still playing this game. :O

Well, I should release 7.2 first that I don't remember half the changes I made. I already tried custom variables 2-3 times but it has some problems, it's not that easy as it seems for the first, but I'll try.

...and meh, I'd rather add lua as Btcc22 suggested, these funcs are too specific etc...

So I guess I'll release 7.2 then annoy me on Xfire about the new bugs or changes/commands I forgot to note.

Didn't code anything in the last month or so, and kinda lost interest in Halo, would like to work on some other project, just have no idea what. :D

Dwood
February 20th, 2014, 05:43 PM
Before you give up on halo, i had an idea for someone to integrate a dogecoin payout system to the winner/winning team.

sehe
February 20th, 2014, 06:07 PM
Ask Btcc22, he will do it for sure, he's the fan of dogecoin. :)

mywarthog
February 20th, 2014, 06:09 PM
Eh... so english speaking ppl still playing this game. :O

Well, I should release 7.2 first that I don't remember half the changes I made. I already tried custom variables 2-3 times but it has some problems, it's not that easy as it seems for the first, but I'll try.

...and meh, I'd rather add lua as Btcc22 suggested, these funcs are too specific etc...

So I guess I'll release 7.2 then annoy me on Xfire about the new bugs or changes/commands I forgot to note.

Didn't code anything in the last month or so, and kinda lost interest in Halo, would like to work on some other project, just have no idea what. :D

So... I guess I'll be the guy to ask the question in everyone's head now... what does that mean for SAPP? Are you going to make it Open Source, give it to somebody else, or still keep working on it?

Also, I'd like to share my thoughts about adding Lua. I don't think that that would be a good idea... you'd just be turning it into Phasor, essentially. Anyone that has an idea for something will be forced to learn Lua, pay someone to write it, or hope that there's a script out there already for what they want at the price of it becoming outdated/conflicting/unsupported/malicious/poorly written/whatever. And not everyone has the time and/or resources to do that. Plus, there'd be so many problems that came up from people that didn't know what they were doing, and it'd create a mess. We already have Phasor for Lua... people like SAPP because it's not Phasor, and people like Phasor because it's not SAPP. What's the need in having two Phasors?

sehe
February 20th, 2014, 06:33 PM
lol, silly.

I don't abandom it yet, but if I ever will, I'll prolly make it open source.
And I won't turn it into Phasor, nothing will change, I'll just might add lua as an extra feature.

mywarthog
February 20th, 2014, 06:55 PM
Having it as an extra feature wouldn't hurt. That'd be kind of cool. I was just nervous about it being a replacement for future updates/a start to SAPP becoming feature locked. There'd be both advantages and disadvantages/risks.

Also, about the ideas being too specific, that's why I posted them as ideas instead of requests. Just thought I'd give you some more ideas just in case you were looking for some things to add to SAPP one day. ;)

And yeah, English players still play Halo. In fact, I think there's still more English players than Spanish players. You just have to play on servers other than {XG}s. xD

Alexgodcool
February 22nd, 2014, 03:11 PM
Hello,

Can anyone give me a command/event to shuffle the team into random new team every match start. I mean it's will be suck to have overpowered team every match. Shuffle in start of match will be sufficient. If you know any command/event to make it possible.

Thanks in Advance,
Alex

mywarthog
February 22nd, 2014, 05:30 PM
Hello,

Can anyone give me a command/event to shuffle the team into random new team every match start. I mean it's will be suck to have overpowered team every match. Shuffle in start of match will be sufficient. If you know any command/event to make it possible.

Thanks in Advance,
Alex

I don't know. The best way for SAPP v7.2 that I know of is doing events with multiple arguments running switch team commands targeting random players at the start of the match. But even then, it might not work, because not all players might have rejoined the match/server when event_join would run, so the arguments may not pick everyone up. balance_teams wouldn't be too reliable, since a new game would have no stats in it yet and balance_teams works off of player stats... and there's no scramble command to just randomly scramble the players that I know of (but it would be nice to have one).



Another thing that I thought about... what about implementing an "overtime" system into SAPP for when games are tied? Maybe have options for different types of overtime rules as well.

liquidspark
February 26th, 2014, 07:37 PM
Does SAPP use assembly code overrides, or does it use the Blam! Scripting Engine with LUA language?

sehe
March 2nd, 2014, 10:41 AM
I don't know what "assembly code override" is (but it sounds cool). SAPP is not using Blam nor Lua. I don't understand your question tho, you mean how it's working "inside" or that how can you use the features? For the second check the site, xhalo.tk (http://xhalo.tk)

mywarthog
March 13th, 2014, 07:31 PM
Would it be possible to implement a way to view how many demerits a player has, as well as a way to set the number of demerits? Something like this could be used for a warning type system... Teamkills get you an amount points, camping gets you another amount of points, an admin can give you points for flaming in chat, glitching gives you a number of points, and when you reach x points, you get either a ban, kick, or whatever... maybe through either events or a setting?

Cortexian
May 3rd, 2014, 02:12 PM
Hey sehe,

I recently started hosting a server again. Based it off my old servers using the backups I had. Successfully updated to the latest SAPP version automatically but I'm getting a weird deplayer position desync issue when I connect to the server from the same local network.

It seems to happen a lot with vehicles, I'll be playing fine and then hop in a vehcile. After existing the vehicle it seems like the game loses track of my player position, grenades originate from outside of my body and I can't hit people. Other players in the server see me in a completely different location.

Is this related to that old "really low ping" bug? I remember there was something similar back in the day. Any chance you could get a fix for this implemented?

sehe
May 8th, 2014, 08:46 AM
Can be yes, no fix other than setting back the old "custom_sleep 0"

Cortexian
May 8th, 2014, 04:13 PM
What is affected when setting "custom_sleep 0"?

sanni
May 8th, 2014, 05:13 PM
I got the same desync issue with 16ms ping on a german dedicated server but not on 19ms NL servers, so if you can increase your local ping to about 24 you should be fine and no longer desyncing.

custom_sleep 0 puts Halo back on it's default thread cycle which results in the pings incrementing in bigger steps than the normal SAPP setting. So no more 8/16/24/33 pings but bigger steps like 33/66/100.
Your players will also complain about worse reg. So unless you want whinning players all the time this isn't a valid option even though I personally prefer custom_sleep 0 over the normal Sapp setting, feels more like the original Halo.

Would a "help me server I am desync" command be possible? Because resyncing takes like 1 minute or longer or sometimes even until I die. And yes vehicles are the main culprit. Just get in a vehicle and drive against a wall and chances are you get desynced.

SonicXP
May 8th, 2014, 07:44 PM
Because I've written this three times now, I'm pasting this here so I don't lose it again. It's a banshee dogfight game script, best played on gephyrophobia with reverse tag.

events.txt:

event_start $mode:Dogfight $map:Gephyrophobia 'cheat_jetpack 1'event_spawn $mode:Dogfight 't $n spawn$rand;w8 1;spawn vehi vehicles\banshee\banshee_mp $n;venter $n'
event_die $mode:Dogfight 'w8 3;vdel $n'
event_alive $mode:Dogfight $z<=-32 'say $n "Out of Bounds, penalized 50% health";m $n 0 0 10;hp $n /2;spawn vehi vehicles\banshee\banshee_mp $n;venter $n'

locations.txt:

gephyrophobia:spawn1:58 -120 -6
gephyrophobia:spawn2:58 -90 -6
gephyrophobia:spawn3:58 -60 -6
gephyrophobia:spawn4:58 -30 -6
gephyrophobia:spawn5:58 -120 -5
gephyrophobia:spawn6:58 -90 -5
gephyrophobia:spawn7:58 -60 -5
gephyrophobia:spawn8:58 -30 -5
gephyrophobia:spawn9:-5 -120 -6
gephyrophobia:spawn10:-5 -90 -6
gephyrophobia:spawn11:-5 -60 -6
gephyrophobia:spawn12:-5 -30 -6
gephyrophobia:spawn13:-5 -120 -5
gephyrophobia:spawn14:-5 -90 -5
gephyrophobia:spawn15:-5 -60 -5
gephyrophobia:spawn16:-5 -30 -5

Edit:
Also, pleeaase look into custom variables so I don't have to do things with opensauce like this

event_spawn $team:red 'if (not (and (!= (runtime_integer_get 20) 0) (!= (runtime_integer_get 21) 0) (!= (runtime_integer_get 22) 0) true)) (begin (runtime_integer_set 20 (* (object_data_get_real (unit (list_get (players) (- $n 1))) "position" "x") 100)) (runtime_integer_set 21 (* (object_data_get_real (unit (list_get (players) (- $n 1))) "position" "y") 100)) (runtime_integer_set 22 (* (object_data_get_real (unit (list_get (players) (- $n 1))) "position" "z") 100)));object_data_set_real (unit (list_get (players) (- $n 1))) "position" "x" (/ (runtime_integer_get 20) 100);object_data_set_real (unit (list_get (players) (- $n 1))) "position" "y" (/ (runtime_integer_get 21) 100);object_data_set_real (unit (list_get (players) (- $n 1))) "position" "z" (/ (runtime_integer_get 22) 100)'
Didn't actually work, but certain operations do, as long as they take integers. I tried at one point to use players' shields as temporary storage, which actually almost worked, but the runtime_integer commands don't like receiving floats back. Also opensauce breaks the start event, so it renders most things useless anyways.

Kornman00
May 8th, 2014, 10:16 PM
If you need float support, Halo has 7 unused "f0" to "f6" globals. However, they're literally global. Their values will persist from one game to the next. OS's runtime values are based entirely within the game state, which means they're reset on a new map (but they're also saved when the game is saved, unlike "f0" etc).

You also use the runtime_vector stuff (http://code.google.com/p/open-sauce/wiki/Doc_Halo1_NewScriptInterfaces#runtime_vectors_rese t), which operates on floats

sehe
May 9th, 2014, 07:02 AM
I tried to add "custom variables" like two times, but including it to the event system isn't that easy as it seems for the first time, so it ended up as "commented out" code as I cba'd to mess with this, and also because I tough I (or Btcc22) will rather add Lua, but it would be again lot of work. I think I wanted it to work like for ex. you could add variables like v1, v2, ... v16, and then using them as event_die v$n<3 '...'
Guess I can give it a try again.

SonicXP
May 9th, 2014, 05:45 PM
If you need float support, Halo has 7 unused "f0" to "f6" globals. However, they're literally global. Their values will persist from one game to the next. OS's runtime values are based entirely within the game state, which means they're reset on a new map (but they're also saved when the game is saved, unlike "f0" etc).

You also use the runtime_vector stuff (http://code.google.com/p/open-sauce/wiki/Doc_Halo1_NewScriptInterfaces#runtime_vectors_rese t), which operates on floats

i love you

I think I tried to use vectors at one point, but I also didn't quite understand blam at the time. Maybe I can get it to work now.


I tried to add "custom variables" like two times, but including it to the event system isn't that easy as it seems for the first time, so it ended up as "commented out" code as I cba'd to mess with this, and also because I tough I (or Btcc22) will rather add Lua, but it would be again lot of work. I think I wanted it to work like for ex. you could add variables like v1, v2, ... v16, and then using them as event_die v$n<3 '...'
Guess I can give it a try again.

even having something like $v1-16 and commands like setv1-16 would help

edit:
Now I remember why I didn't use f0-6, it won't set on the server console.

edit 2:
Is it possible to make commands like assists accept a float? Not that I want to display a decimal in the scoreboard, but if I were insane enough to try and show somebody's health * 100 and rounded for instance

Kornman00
May 10th, 2014, 02:20 AM
Were you doing "(set f0 <value>)"?

Doing "f0 <value>" only works when it is the only expression being entered. IE, "halo(f0 <value>". If you were evaluating a (begin) expression in the server console, you'd have to use (set)

sehe
May 10th, 2014, 08:45 AM
Well yesterday I was working on this till 3am but I think it worth it in the end... You will be able to add 2*3 types of variables, string, int, float both for global and player. They are working just like the generic sapp variables.
var_add <name> <type>, where type 0 - global string, 1 - global int, 2 - global float, 3 - player string, 4 - player int, 5 - player float

Some bad examples for usage for globals:
var_add time 1
var_add min 1
var_add sec 1

events.txt:
event_start 'var_set time 0'
commands.txt:
timeloop 'w8 1;var_set time +1;timeloop'
time 'var_set min $time;var_set min /60;var_set sec $time; var_set sec `;say $n "Current game is running since $min minutes and $sec seconds!"' -1
init.txt:
timeloop


and for player:
var_add warnings 4
events.txt:
event_tk 'var_set warnings +1 $n;cevent warn'
event_custom $ename:warn $warnings=3 'say $n "One more warn and you will be kicked, $name!"'
event_custom $ename:warn $warnings=4 'k $n "Too many warnings."'
commands.txt:
warn #n 'var_set warnings +1 #n;say #n "You got a warning from admin $name!";cevent warn #n' 3

A bit hacky but works fine, the rest is up to your fantasy... :P



edit 2:
Is it possible to make commands like assists accept a float? Not that I want to display a decimal in the scoreboard, but if I were insane enough to try and show somebody's health * 100 and rounded for instanc

Crazy and cool idea, but it's not possible atm, I will might add a converting function tho for custom variables.

SonicXP
May 10th, 2014, 12:39 PM
Were you doing "(set f0 <value>)"?

Doing "f0 <value>" only works when it is the only expression being entered. IE, "halo(f0 <value>". If you were evaluating a (begin) expression in the server console, you'd have to use (set)

I had some wildly different results with that
I could not set f0 doing 'f0 <value>' in any case, but I could use 'set f0 <value>' on the client console. Neither method worked on the server.
I also just tried wrapping it in a begin, no luck. It's like something on the server is preventing me from changing the value through the console.

SonicXP
May 10th, 2014, 02:50 PM
Well yesterday I was working on this till 3am but I think it worth it in the end... You will be able to add 2*3 types of variables, string, int, float both for global and player. They are working just like the generic sapp variables.

<magic>

This is amazing, I can write a fully featured drop-in-able and configurable script to buy vehicles

In regards to the custom events, I haven't had any success using variables like $assists or $hp there, but $n (and supposedly the new variables) work. Is this intentional or a bug? With the custom variables, I can actually work around it now, but still.

Kornman00
May 11th, 2014, 02:21 AM
It sounds as if the server you're using isn't properly modified to allow any hs function execute from the console. If you were using OS in a client, then you'd be able to as we kill any code that inhibits hs function access.

Amit
May 11th, 2014, 04:09 AM
Bascially: use OpenSauce. It taste good. Nice program. You like.

sehe
May 11th, 2014, 07:03 AM
Yes, and have 0 players in your server. :)

Anyways, 7.3 is out with these var commands and other stuff, so you can try and tell me if you were able to make your mod with this.
Also, I made this assists-as-hp thing and works fine:

init.txt:
var_add health 2
(As a global variable, since it's only used as temporary, no need one for every player)

events.txt:
event_alive 'var_set health $hp;var_set health *100;var_conv health;cevent hpassists $n;var_conv health'
event_custom $ename:hpassists 'assists $n $health'
event_die 'assists $n 0'

SonicXP
May 11th, 2014, 01:02 PM
Here's what I have of a hunt mode so far

I am having a problem with it though, the player variable 'playerhunted' is never 1, even when i explicitly set it to 1 and remove any case where it's set to 0.\



;;Game Logic
event_start $mode:Hunt 'var_add Hunt 1;var_set Hunt 1;cevent InitHunt'
event_custom $ename:InitHunt $mode:Hunt 'cheat_jetpack 1;timelimit $pn*3;sv_name " XVS.Arcadium(() => new Hunt(DeathIsland))"'
event_custom $ename:InitHunt $mode:Hunt 'var_add Round 1;var_add RoundTime 1;var_set RoundTime 10;var_add Hunter 1;var_add chkReported 1;var_add chkHunted 1'
event_custom $ename:InitHunt $mode:Hunt 'var_add Debug 1;var_set Debug 1;var_add playerhunted 4;var_add plyReported 4'
event_custom $ename:InitHunt $mode:Hunt 'cevent EndRound;cevent clk;cevent InitPlayer'
event_custom $ename:InitPlayer $n=0 $pn>0 'var_add iply 1;var_set iply 1;cevent InitPlayer $iply;w8 1;var_del iply'
event_custom $ename:InitPlayer $n>0 $pn>=$iply 'var_set iply +1;st $n blue;wait 100;cevent InitPlayer $iply'


event_end $mode:Hunt 'cevent EndHunt'
event_custom $ename:EndHunt $mode:Hunt 'cheat_jetpack 0;sv_name " XVS.Arcadium( > Game Over < )"'
event_custom $ename:EndHunt $mode:Hunt 'var_del Round;var_del RoundTime;var_del Hunter;var_del chkReported;var_del chkHunted'
event_custom $ename:EndHunt $mode:Hunt 'var_del Debug;var_del playerhunted;var_del plyReported'
event_join $mode:Hunt 'var_set playerhunted 0;st $n blue;timelimit +2'
event_leave $mode:Hunt 'timelimit -1'
event_leave $mode:Hunt $playerhunted=1 'timelimit -1;var_set playerhunted 0'
event_custom $ename:clk $Round<3 'w8 1;cevent clk'
event_custom $ename:clk $RoundTime>0 'var_set RoundTime -1'


;; Debugger
event_custom $ename:HuntDebug $mode:Hunt $Debug=0 'sv_say "Debug mode enabled";var_add debugRound 1;var_add debugHunter 1;wait 500;var_set Debug 1;var_add dply 1'
event_custom $ename:HuntDebug $mode:Hunt $Debug=1 'sv_say "Debug mode disabled";var_set Debug 0;var_del debugRound;var_del debugHunter'


event_custom $ename:DebugDump $n=0 $mode:Hunt 'sv_say "Round: $Round, Hunter: $Hunter, Round Time: $RoundTime"'
event_custom $ename:DebugDump $n!=0 $mode:Hunt 'sv_say "$name: Hunted: $playerhunted Health: $hp Shield: $sh"'


event_custom $ename:clk 'cevent DebugDump'
event_custom $ename:InitPlayer $n=0 'sv_say "Initializing Players..."'
event_custom $ename:InitPlayer $n>0 'sv_say "Setting $name to hunt";cevent DebugDump $n'


event_custom $Debug=1 $ename:StartRound $mode:Hunt 'sv_say "The Hunting Round begins.";cevent DebugDump;cevent DebugDump $Hunter'
event_alive $Debug=1 $mode:Hunt $Round=0 $n=$Hunter $RoundTime<=0 'sv_say "Hunter has survived and will get another turn"'
event_custom $Debug=1 $ename:EndRound $mode:Hunt 'sv_say "The Post Round begins";cevent DebugDump'
event_spawn $Debug=1 $mode:Hunt $Round=1 $playerhunted=0 $Hunter=0 'sv_say "$name qualifies to be the hunter";cevent DebugDump $n'
event_alive $Debug=1 $mode:Hunt $Round=1 $playerhunted=0 $Hunter=0 'sv_say "$name qualifies to be the hunter";cevent DebugDump $n'
event_alive $Debug=1 $Round=1 $RoundTime<=0 $mode:Hunt 'sv_say "Post Round is over, continue to selection."'
event_alive $Debug=1 $mode:Hunt $Round=2 $Hunter!=0 'sv_say "The hunter has already been chosen, skip selection."'
event_alive $Debug=1 $mode:Hunt $Round=2 $plyReported=0 'sv_say "$name reporting... $chkReported+1"'
event_alive $Debug=1 $mode:Hunt $Round=2 $playerhunted=1 'sv_say "$name has hunted before -- will not hunt again.";cevent DebugDump;cevent DebugDump $n'
event_alive $Debug=1 $mode:Hunt $Round=2 $chkHunted=$pn 'sv_say "All players reporting and hunt limit is reached, the game will not continue.";cevent DebugDump'
event_alive $Debug=1 $mode:Hunt $Round=2 $chkReported=$pn 'sv_say "All players reporting and hunt limit not reached, the game will continue.";cevent DebugDump'


;;;;;;;;;;;;;;;;;;


;; Hunting Round
event_custom $ename:StartRound $mode:Hunt 'var_set Round 0;var_set RoundTime 120;cheat_deathless_player 0;slayer_score_team red $RoundTime;t $Hunter hunterspawn;w8 1;spawn vehi vehicles\banshee\banshee_mp $Hunter;venter $Hunter'
event_alive $mode:Hunt $Round=0 $n=$Hunter $RoundTime<=0 'say * "$name lives to hunt again!";var_set playerhunted 0;cevent EndRound'
event_alive $mode:Hunt $Round=0 $plyReported=1 'var_set plyReported 0'


event_kill $mode:Hunt $Round=0 $n=$Hunter $combo=1 'wait 200;say * "+3 seconds";var_set RoundTime +3'
event_kill $mode:Hunt $Round=0 $n=$Hunter $combo=2 'wait 200;say * "Double Kill! +5 seconds";var_set RoundTime +5'
event_kill $mode:Hunt $Round=0 $n=$Hunter $combo=3 'wait 200;say * "Triple Kill! +10 seconds";var_set RoundTime +10'
event_kill $mode:Hunt $Round=0 $n=$Hunter $combo>=4 'wait 200;say * "Multi Kill! +15 seconds";var_set RoundTime +15'


event_die $mode:Hunt $Round=0 $n=$Hunter 'say * "The hunt is over!";cevent EndRound'


event_teamswitch $n=$Hunter $team:blue 'wait 200;st $n red'
event_die $n=$Hunter $team:blue 'wait 200;st $n red'
event_teamswitch $n!=$Hunter $team:red 'wait 200;st $n blue'
event_die $n!=$Hunter $team:red 'wait 200;st $n blue'


;; Post Round
event_custom $ename:EndRound $mode:Hunt 'var_set Hunter 0;var_set Round 1;wait 200;say * "Next round begins in 10 seconds.";cheat_deathless_player 1;mag * 3200 5;battery * 3200 5'
event_alive $mode:Hunt $Round=1 's * $RoundTime/10'
event_spawn $mode:Hunt $Round=1 $playerhunted=0 $Hunter=0 'var_set Hunter $n;var_set playerhunted 1;wait 200;st $n red;w8 2;say * "$name is the next Hunter"'
event_alive $mode:Hunt $Round=1 $playerhunted=0 $Hunter=0 'var_set Hunter $n;var_set playerhunted 1;kill $n;wait 500;st $n red;w8 1;say * "$name is the next Hunter"'
event_alive $Round=1 $RoundTime<=0 $mode:Hunt 'kill *;wait 100;vdel *;wait 200;st * blue;var_set Round 2;var_set PostRound 10'


;; Selection Round
event_alive $mode:Hunt $Round=2 $Hunter!=0 'cevent StartRound'
event_alive $mode:Hunt $Round=2 $plyReported=0 $playerhunted=1 'var_set chkHunted +1'
event_alive $mode:Hunt $Round=2 $plyReported=0 'var_set chkReported +1;var_set plyReported 1'
event_alive $mode:Hunt $Round=2 $chkHunted=$pn 'god *;s * 0;say * "Everyone has hunted... The game is over!";var_set Round 3;sv_map_next'
event_alive $mode:Hunt $Round=2 $chkReported=$pn 'var_set Round 0'


;; Kill messages
event_kill $mode:Hunt $Round=0 $n!=$Hunter 'var_add Randomchat;var_set Randomchat $rand'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=1 'say * "$name killed the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=2 'say * "$name ended the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=3 'say * "$name stopped the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=4 'say * "$name cancelled the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=5 'say * "$name terminated the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=6 'say * "$name hunted the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=7 'say * "$name wrecked the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=8 'say * "$name denied the hunter!";var_set Randomchat 0'


event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=9 'say * "$name killed the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=10 'say * "$name ended the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=11 'say * "$name stopped the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=12 'say * "$name cancelled the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=13 'say * "$name terminated the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=14 'say * "$name hunted the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=15 'say * "$name wrecked the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter $Randomchat=16 'say * "$name denied the hunter!";var_set Randomchat 0'
event_kill $mode:Hunt $Round=0 $n!=$Hunter 'var_del Randomchat'

Also, can you add an event_load event? event_start doesn't fire when I run reload, which is quite often when trying to debug this behemoth.

sehe
May 11th, 2014, 01:38 PM
Use Sapp's init.txt for that?

And it's because you have to specify which player's variable you want to set, like 'var_set playerhunted 1 $n'
Perhaps I forgot to mention it, hehe.

SonicXP
May 11th, 2014, 03:40 PM
Use Sapp's init.txt for that?

And it's because you have to specify which player's variable you want to set, like 'var_set playerhunted 1 $n'
Perhaps I forgot to mention it, hehe.

I forgot sapp had its own init :v

Also, I've encountered some strange bug pertaining to maths.
Using what you wrote, when the player is near 0 health (under 0.1 or 0.01), it becomes some absurd number like 200. That is, the converted variable, not the actual $hp.

Also also, will it be possible to perform arithmetic between two variables and not just a variable and a number? I've found myself trying to calculate the difference in health when a player's health changes, but the result is always 0. I could use a counter variable, but I'm not sure I want to write an event loop every time somebody takes damage.

sehe
May 12th, 2014, 01:02 PM
That might be just the bug in cevent, try with the new version 7.3.1...

I don't exactly understand what you mean, you can do like var_set oldhp -$hp $n
But if you want to write such complex scripts just use Phasor or wait till I add Lua (if ever) :D

Also, do you have Skype/Xfire where we can talk easier abt these modding stuff?

Cortexian
May 16th, 2014, 12:30 AM
Hey sehe, the desync things is still happening for me with custom_sleep 8 (which is apparently Halo's default according to xhalo.tk). Any other suggested values?

sanni
May 16th, 2014, 01:12 PM
You need to set it to custom_sleep 0

Cortexian
May 16th, 2014, 03:54 PM
Oh OK, I assumed that I wanted what default Halo used instead of what SAPP used since I've never ever had this problem with a default Halo CE dedicated server. Only happens with SAPP.

I'll try 0 this weekend and see what happens.

sehe
May 26th, 2014, 07:05 PM
Sapp 8.0 with basic Lua is out: http://xhalo.tk/changelog/

bolt_URSS
May 26th, 2014, 07:43 PM
thank you very much, but why have not my servers with the 8.0 update?

sehe
May 27th, 2014, 04:01 AM
You really registered this account just to ask this stupid question for what you would have got the answer if you just clicked on my link and read the first two sentences?

bolt_URSS
May 27th, 2014, 09:19 AM
lol excuse me overlook that, is I have a bad English: c

Rentafence
May 27th, 2014, 11:00 AM
You really registered this account just to ask this stupid question for what you would have got the answer if you just clicked on my link and read the first two sentences?

I bet you feel like a dick now that he said his English is bad.

sehe
May 27th, 2014, 01:26 PM
No. He prolly doesn't even speak english only google translate, and "overlook" means didn't even bother to read.

bolt_URSS
May 27th, 2014, 02:50 PM
excuse me, I do what I can :c

Alexgodcool
May 27th, 2014, 03:33 PM
Sapp 8.0 with basic Lua is out: http://xhalo.tk/changelog/

Cool, thanks for hard work as usual. How about create website page under xhalo.tk or else that where we can submit scripts to share. So those scripts have rating system where will tell it is safe to load or not. Also where we can request the script function and someone will make it. Somewhere similar to this (http://phasor.proboards.com/board/13/releases). (Don't load Phasor script into SAPP)

Cheers,
Alex

Amit
May 27th, 2014, 11:59 PM
Uh oh! Asshole dev alert! :iamafag:

no offence
May 28th, 2014, 05:39 AM
hello sehe :downs:
1) is there any private massage system that i can contact you?
or do i need to post all the question here?
i was looking for an email address but didn't find one.
because i don't use skype or xfire...
and finally i had to come here to visit u.....



2) hmmm, i can post a problem that may also happened to others who uses Zombie servers...

after the automatic update of the SAPPs 8.1, the zombie settings got a problem...
probebly by the 'event_wpickup' event that you modified....

original setting was like this....
event_wpickup $mode:cvzombie1 $team:blue $type=1 'wdel $n;spawn weap "weapons\plasma rifle\plasma rifle" $n;wadd $n;battery $n 0 5'

the weapon of the zombie was gone.
and when zombi tries to pickup a weapon, a plasma rifle will respwn, but fails to add the plasma rifle to the hand... is keeps dropping to the floor...

then i read that there is a new option called '$index'
then i have put it in various ways fot test :S (because no proper example was given at the 'Changelog' )
like this,
event_wpickup $mode:cvzombie1 $team:blue $type=1 'w8 4;wdel $n;spawn weap "weapons\plasma rifle\plasma rifle" $n;$index=1;battery $n 0 5;say $n "test 1"'
event_wpickup $mode:cvzombie1 $team:blue $type=1 $index=1 'w8 6;wdel $n;spawn weap "weapons\plasma rifle\plasma rifle" $n;wadd $n;battery $n 0 5;say $n "test 2"'

then when a zombie tried to pickup a weapon, it started to pickup a plasma rifle but, it was repeating infinite times....

so, as a temporary solution i did this :S
event_wpickup $mode:cvzombie1 $team:blue $type=1 $index=1 'w8 1;kill $n;say * "Zombie $name tried to pickup another weapon. and died" '

:S


can you fix this original command i cannot test anymore :ugh:
event_wpickup $mode:cvzombie1 $team:blue $type=1 'wdel $n;spawn weap "weapons\plasma rifle\plasma rifle" $n;wadd $n;battery $n 0 5'



3) HAC2 says "map not found"
but the map is available at halomaps.org. i got it from there.

http://hce.halomaps.org/index.cfm?fid=2890









4) this map downloads by HAC2, but this error comes as soon as it downloads..
http://i.imgur.com/uXf9VbW.png (it also happened to other players)

map: http://hce.halomaps.org/index.cfm?fid=6777 (http://hce.halomaps.org/index.cfm?fid=6777)



.



other maps downloads fine. both to my PC and other players PCs.
and also im using your update 1.10. and other players too.


https://mail.google.com/mail/images/cleardot.gif
that "map not found" problem is my main problem...
not the Zombie.
because i really want others to download 'strategy_gulch_beta6' map by HAC2 to join my server.......... :D
i temporally removed the map from mapcycle due to "map not found" issue...

LEXM
May 28th, 2014, 03:06 PM
.

Cortexian
May 28th, 2014, 11:42 PM
@no offense, what are you doing? Set your zombie team up with:

disable_all_objects 2 1

That makes blue team unable to interact with ANYTHING. Can't pickup weapons, can't get in vehicles, can't use power ups (health, over shield, active camo)... That should be your basis for denying zombies access to things, not event_wpickup -> replace weapon.

All the zombies servers I've joined recently have really bad configurations. I should make a proper one and release it.

no offence
May 29th, 2014, 06:16 AM
@no offense, what are you doing? Set your zombie team up with:

disable_all_objects 2 1

That makes blue team unable to interact with ANYTHING. Can't pickup weapons, can't get in vehicles, can't use power ups (health, over shield, active camo)... That should be your basis for denying zombies access to things, not event_wpickup -> replace weapon.

All the zombies servers I've joined recently have really bad configurations. I should make a proper one and release it.


my server is mainly not a zombie server :P
it has other types..... like CTF
so, blue team should pickup things in other gametypes....
so if put 'disable_all_object' it also effects to other game types.... (it happend at the days when i put that)


for example, lets say i have put it like this:

event_start $mode:zombie 'disable_all_object 2 1'

then,
lets say i played the CTF first. no prolem. blue team will pickup anything....
then if i go to zombie game. ok blue cannot pickup anything..
then, again if i go to CTF, blue cannot pickup anything :P
blue will unable to pickup things untill i restart the server ^^
so, even if i put that '$mode:zombie' argument, it registers to all team game modes just after the zombie mode started.., :D

hey i really need is that, that map to download, zombie is ok, i can kill the zombie for picking up weapons ^^


not just 'disable_all_object' command, 'block_tc' (blocking the players changing teams) also affects to other team gametypes.
same way... it registers to all the team gametypes just after the first gametypes it used...

so what i did to prevent zombies to become humans again? :p,
event_teamswitch $mode:zombie $team:red $deaths>=1 'st $n blue;say $n "You cannot become a human again ^_^"'

hahahahahahahahaha!!! oh sorry :(

so , no 'block_tc' command :p

sehe
May 29th, 2014, 07:39 AM
Uhm... you can enable/disable it like:

event_start $map:bloodgulch $mode:zombies 'disable_all_objects 2 1;block_tc 1'
event_end $map:bloodgulch $mode:zombies 'disable_all_objects 2 0;block_tc 0'

LEXM
May 29th, 2014, 11:02 AM
My server is completely broken by this .and i cant figure out how to fix it ,in my server depending on kills it will give you a weapon and you wouldn't be able to use another until some amount of kills, that means that if you get a shotgun even if you pick up another weapon you still get a shotgun plus i will give some ammo till you get to another amount of kills.i cant use disable_objects since power ups will not work .this is just my opinion but, updates shouldn't take some functionality away ,if is deprecated something with the same use or function should take it place, and this update will make the event wpickup one of the only events i know that has some compatibility issues with other commands.

sapp 8 all commands are in harmony
ofter update
sapp 8.1+ command loops -solution disable-all < - a command shouldnt loop the event that trigger it

please fix it

sehe
May 29th, 2014, 11:23 AM
It's not a bug so nothing to fix. Disable every weapon 1 by 1 whit the disable_object command. Actually the event_wpickup was the "buggy" with the old design that it did not trigger event_wpickup again.

no offence
May 29th, 2014, 01:34 PM
Uhm... you can enable/disable it like:

event_start $map:bloodgulch $mode:zombies 'disable_all_objects 2 1;block_tc 1'
event_end $map:bloodgulch $mode:zombies 'disable_all_objects 2 0;block_tc 0'

thanks, this works :D
and i have lot to talk later,
but for now, can you looking to that, map downloading issues?
that were on my first post.....

is it a HAC2 issue?
oh wait, you are not the HAC2 creator sahe?

stunt_man
May 29th, 2014, 02:22 PM
Not sure if it's a problem with HAC2 or SAPP (or both), but when my server is on scrim_mode, HAC2's sightjacker still works.

I feel like I'm taking crazy pills - I could have sworn it used to block the sightjacker in older versions...

sehe
May 29th, 2014, 02:38 PM
No I'm not.

And you need to wait until new game till that takes effect. Just tested, works fine.

Cortexian
May 29th, 2014, 02:42 PM
Not sure if it's a problem with HAC2 or SAPP (or both), but when my server is on scrim_mode, HAC2's sightjacker still works.

I feel like I'm taking crazy pills - I could have sworn it used to block the sightjacker in older versions...
It's supposed to.



disable_sj [enabled]

Disables the usage of SightJacker for HAC users like in ScrimMode.


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.

stunt_man
May 30th, 2014, 11:03 AM
No I'm not.

And you need to wait until new game till that takes effect. Just tested, works fine.

Thanks for clearing that up

sehe
June 2nd, 2014, 08:19 AM
Check out the new forum:

http://xhalo.tk/forum/index.php

Please post everything about Sapp there in the future!

Crenshaw
June 2nd, 2014, 05:40 PM
SEHE I CANT PING YOUR SITE NOW SINCE YOU'VE UPDATED IT. I dont know if you have it down for upgrades/maintainance or what but this was from yesterday it started acting up. and it not pingable from none of my 3 computers nor from my friends house. (had him do it as i yhought it was something with my ip).

EDIT: never mind. it was my isp. they were the ones doing upgrades. :realsmug:

Btcc22
June 2nd, 2014, 07:19 PM
He said to post any problems on the new SAPP forum. :v:

Crenshaw
June 2nd, 2014, 07:59 PM
He said to post any problems on the new SAPP forum. :v:

how could i have post it to his site when i cant even load his web page. :allears:
anyways I've already posting on his site. btw when will you be implementing the split chat version of sehe multichatv2? your "custom_chat 1" would be perfect with that as all i see when im killing people is my name just going up on the screen and barely have time to read as im mostly killing spree-ing. also is there any way to make the text a little smaller and have about 7 rows of txt displaying at a time?

Btcc22
June 2nd, 2014, 08:28 PM
how could i have post it to his site when i cant even load his web page. :allears:

Yeah, that was a joke.


your "custom_chat 1" would be perfect with that as all i see when im killing people is my name just going up on the screen and barely have time to read as im mostly killing spree-ing. also is there any way to make the text a little smaller and have about 7 rows of txt displaying at a time?

You can use the font_size command for now. Not sure when I'll have the additional options added.

Crenshaw
June 3rd, 2014, 03:07 PM
ok thanks man will try it see if its ok, if not then i will be reverting back to multichatv2, which i was already using, until you implement the double side chat feature on to it.

Tucker933
August 1st, 2014, 06:14 PM
Improved and greatly expanded upon documentation for SAPP: http://opencarnage.net/index.php?/topic/3806-comprehensive-sapp-documentation/

sehe
August 21st, 2014, 06:59 AM
That's great, you could have posted this on the Sapp forum as I asked.
And please next time if you make false assumptions, at least don't do it with HUGE RED LETTERS, as you did for this:
"HUGE NOTE: CD key validation is automatically disabled in SAPP. Without
validation, there is no way to determine if the player's CD hash has been
stolen or not. If you are going to use CD hash validation, you should use IP
address validation as well."

This is FALSE, Sapp DO validates* if the hash is stolen or not (even tho there are like 5 people in whole Halo by now who could send fake hash).

Please next time just ask me instead of assuming false things.

At least now I know from where people getting this stupid thing lately.

*unlike Gandanur

Tucker933
August 21st, 2014, 08:21 PM
That's great, you could have posted this on the Sapp forum as I asked.
I don't see where you've mentioned this, and unfortunately your forum is quite inactive. Additionally, 002 is the author of this documentation, as shown in the topic linked.

sehe
August 22nd, 2014, 05:14 AM
Read a bit above here, I said post everything on the Sapp forum, it's still more active than this, if you check, 2 months elapsed between your post and the previous one.

Anyways, nice documentation tho.

I'll close this thread as I should have already.

Please post everything on my forum in the future >> xhalo.tk/forum/ (http://xhalo.tk/forum/)