Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

scroton

Members
  • Content count

    94
  • Joined

  • Last visited

About scroton

  • Rank
    Mini-Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. New regular version is up. Performance for it has been increased. Now pickups use clientside inventory jumps instead of running the script again every time a player runs over them to determine whether they should be seen or not. Global array has proper cleanup at map end. Spawner actors themselves now never check if a new player has entered the map in coop. Instead, in coop an open script runs and determines if any new players have entered the map, and if so sets all spawner actors to the state where they spawn items. This state setting has been set to take place over 8+(longer the more items there are) seconds so that any effects on server are minimized. OP has been updated.
  2. I just realized I forgot to have global array cleanup at map end in spec version and test version; non spec version in OP is okay. That will be in next version. Also delay during loop to spawn item during coop enter script will be added. Also inventory jumps where possible to reduce acs calls. Also in spec version track which items to which player since no need to state change all, and puked script will call client side acs for each state change item so fake console change only affects the player that requested it.
  3. Here is a test version which should have slightly better performance both in survival and coop, as it has items that should be doing nothing doing a better job of doing nothing, and items that check for new players (in coop) now only do so when new players connect rather than regularly. Not putting in OP yet because I don't have the time to test this yet other than in an offline skirmish. Regular version: https://drive.google.com/file/d/0BxbbtKR5bll_bGQ2NGRUZnhyeVU/view?usp=sharing It's also up on BestEver as "oppp_v0.03.pk3" http://www.best-ever.org/download?file=oppp_v0.03.pk3 Spectating version: https://drive.google.com/file/d/0BxbbtKR5bll_cW95d09GLWpveEk/view?usp=sharing It's also up on BestEver as "OPPP_spec_v0.03.pk3" http://www.best-ever.org/download?file=OPPP_spec_v0.03.pk3
  4. Updated with version that should work regardless of whether item respawn and weapon stay are on or off, with them not having any effect on it either way. Turn them off if you experience issues.
  5. Updated OP with version that allows you to use a puked script (default "L" key) while spectating to change what items you view to one of a player that is currently in the game, so that you can see the items that they see. The puked script does cause a slight bit of lag when used, however, so it has an 8 second timer global for all players. This version would probably be best to use when playing with friends, or in a passworded server, and not so much playing in a public server where people might try to use the puke to cause lag at an inopportune moment and kill you.
  6. Updated OP with the fact that this is on BestEver. Thinking about adding cvars for each category (health, ammo, armor) that control each category's pickup amount, and also thinking about adding a cvar that divides the pickup total by the number of players currently in game (not at start of game, but currently in game at time of pickup.) Thoughts/any other feature requests? Also updated OP with section for those wanting to adapt this to their favorite mod. Note that you only need to know decorate to do this, no acs knowledge required!
  7. Also, there's actually a server up now with this and Hell For Leather: :: [BE] Montreal :: Hell For Leather - One Pickup Per Player - 2 lives survival
  8. I'm not sure what you mean. Does each player get a copy of the item, and then those respawn, or does it act like normal except new players can always grab the item? I think I could do it though, the one that gets spawned would have to stick around and then keep track of the items it spawns.
  9. ONE PICKUP PER PLAYER (OPPP) aka "SERIOUS SAM STYLE PICKUPS (SSSP)" https://drive.google.com/file/d/0BxbbtKR5bll_U2NsX0pHM1QwVEE/view?usp=sharing It's also up on BestEver as "oppp_v0.04.pk3" http://www.best-ever.org/download?file=oppp_v0.04.pk3 This mod adds per-player pickups for all vanilla Doom items which only they can see for each and every vanilla pickup. Including ones dropped by enemies. Won't be compatible with weapon mods, but doesn't change monsters so should work with any monster replacements. Use with Coop or Coop Survival. Tested in Both. It should work regardless of whether item respawn and weapon stay are on or off, with them not having any effect on it either way. Turn them off if you experience issues. There is also now a version that allows you to use a puked script (default "L" key) while spectating to change what items you view to one of a player that is currently in the game, so that you can see the items that they see. The puked script does cause a slight bit of lag when used, however, so it has an 8 second timer global for all players. This version would probably be best to use when playing with friends, or in a passworded server, and not so much playing in a public server where people might try to use the puke to cause lag at an inopportune moment and kill you. https://drive.google.com/file/d/0BxbbtKR5bll_cl9yaGhIeWplUFk/view?usp=sharing It's also up on BestEver as "OPPP_spec_v0.02.pk3" http://www.best-ever.org/download?file=OPPP_spec_v0.02.pk3 Feel free to use the code for this for anything. For those wanting to use this to have similar pickups for their favorite mod: all you need to do is modify the ******_Pickup_00 actor at the top of each decorate file, for instance "Backpack_Pickup_00" to look the way it should in the "CanSee" state, and have the normal custominventory pickup checks starting from the "PickupSuccess", eg treat "PickupSuccess" as if it was the "Pickup" state in a normal pickup. You'd also need to edit the actor to have the pickup message and pickup sound you want. Note that you only need to know decorate to do this; no knowledge of acs is required! CREDITS: ijon tichy --Helped troubleshoot 2 years ago, when I didn't know what ConsolePlayerNumber() was or how playernumber persistence worked. --Helped troubleshoot recently when I was using acs_executewithresult instead of acs_executealways. --Made the Samsara slot pickups which intentionally desync, the method which these copy and which I wouldn't know was possible if not for them. Bloax --Testing Medicris --Testing BestEver --Hosting of test servers
  10. Also forgot to add: you can specify a distance for player proximity required before they activate, meaning you can set up fights the player will encounter throughout the map rather than having most infights done before the player comes across them. The other thing is the ability to specify either each individual monster targeting monsters closest to them or a random target out of the available targets it sees allows you to set up more chaotic fights between groups with monsters from one faction all targeting different monsters from the other faction. To use examples of how this can be used, from those that requested this ability before this project came about or commented in the zdoom thread: You could have a faction of zombies and a faction of looters on a map, and have the zombies target the first non-zombie (looter or player) they see, but switch targets if a different non-zombie gets closer than a certain distance, at which point they start shambling after the new target, until they either catch it or another target gets within that distance. You could have the looters never target zombies, until a zombie gets within a certain distance at which point they switch to the zombie (that particular zombie, not the whole faction) that has gotten too close. You could have zombies not target looters more than a certain distance away, but when one in a group gets hit, target a member of that far away group of looters (not necessarily the specific actor that shot a member of the group.) For a more vanilla example, you could have a group of barons and cacos that do not infight at first, but if one member of a group hits a member of the other group, the entire group with the member that was hit will turn on the other group, with monsters that were not hit targeting enemy factions members that did not hit anything themselves, the idea being that they are rushing to the aid of "their friend" who got hit by "one of those assholes over there." If there are other scenarios that this can be used for, or used for with a slight bit of modification I'd be happy to explain how to use the scripts to accomplish that or add additional functionality to the project if needed. The current "immediate infighting" version (the "gimmick version") is borked as of last update. I will fix this sometime this morning when I get back to my PC. Edit: In case I wasn't clear, fighting with enemy factions happens when the "faction_look" script is called, not at map start.
  11. The second version of the file causes immediate infighting between all monsters of different class names, it's more just a gimmick to show something you could do with the first version. The first is meant to be used for projects. It allows mappers/modders to easily assign monsters to faction. The factions are like having teams for monsters, and depending upon in what monster state you call the faction_look script and what arguments you use it with, you could have them seek out other monsters over a player, seek out players but attack different monsters when they get within a certain range, or vice versa, or one group of monsters attack a different group of monster en masse, but only when one from the one group hits another from the other group. Etc.
  12. Another minor update. Made factions (as far as args passed to scripts are concerned) start at 1 rather than 0. This is so that I can group the enemy faction setting in with the other flags, and not have to have it be negative and thus require users to input -100 for what was default behavior. I wanted to group them together to reduce the args from 4 to 3, so that if using the script via a function where a map would need to be specified, it wouldn't interfere. I might pack the two distance args together later, but since I don't need an extra arg right now I won't. OP has been updated.d
  13. Updated with added ability to specify an enemy faction to limit the search for targets to. First arg is now enemy faction to check when looking for targets. Needs to be set to -1 or less to check all factions, because factions start at 0. Like so: ACS_NamedExecuteWithResult("faction_look", -1, 0, 0, 128)
  14. Updated this. Changes are: Instead of having to actually enter arrays in manually to increase number of factions, all you need to do is increase 50 in #libdefine NUM_FACTIONS 50 which is line 7 in acs, to whatever you want. Also since I realized I was only using 2 functions from commonFuncs.h I copied them from commonFuncs.h into the main acs file to make it easier on people that aren't used to compiling acs. The functions are the two very first functions and are marked, so if you use commonFuncs.h it will be very easy to remove them before compiling. The monster infighting verision will also now cause monsters to continually search for new targets even after their first one is dead. Also deleted a bit of extraneous code, but nothing that will be noticed in-game. Also updated OP with both versions main acs file, in case you want to take a look but don't want to download.
  15. Factions for doom: https://drive.google.com/file/d/0BxbbtKR5bll_ZWNWS0ktN0RVS3M/view?usp=sharing Version which starts infighting between all monsters with different class names as soon as map opens, should work with all mods: https://drive.google.com/file/d/0BxbbtKR5bll_TVB4TGN6U0ZYX2M/view?usp=sharing Monsters in a faction will select targets to attack monsters in different factions. They will not attack monsters in their own factions or attack monsters that are not in a faction (unless they would otherwise infight normally, eg an imp hits a baron with an impball and they are both in faction 2 or one isn't in any faction; you could prevent this from happening if you didn't want it to with other decorate like +NOINFIGHTING, which won't interfere with the way this works.) The faction_look script can also include players in it's search for targets, though you can also just intersperse it with calls to A_Look to achieve the same effect. Pastebins for main acs file in both version, if you want to take a look without downloading: http://pastebin.com/bs8LwPAG http://pastebin.com/xXLM636b ===How to use in your own projects=== Set faction by running "faction_tid_start" script from decorate, so for instance ACS_NamedExecuteWithResult("faction_tid_start", 1) The only argument sent to the script is the faction number. Factions start at 1, go up to 50 right now or 50 total faction. Have to add more factions in acs, just increase 50 in #libdefine NUM_FACTIONS 50 which is line 7, to whatever you want. To have them look for memebers of enemy factions, use "faction_look" script from decorate, so for instance ACS_NamedExecuteWithResult("faction_look", 0, 0, 0, 128) Here are the arguments passed to the script: First arg is combination of enemy faction and the following flags, with player flags first. --enemy faction is sole to check when looking for targets. Set at 0 to check all enemy factions. --player flags 0 won't target players 1 process players like other targets 2 prioritize player targets --target processsing flags 0 pick first valid target 1 pick closest target 2 pick random target from valid targets So to have the monster target monsters only in faction 5, process players like other targets, and to pick random targets from valid targets, have "512" as the argument passed to the script. --max distance to look for target, in int. Will be ignored if 0 or less. --min distance for player, in order to target; it won't pick any targets unless a player is at least this close, in int. Will be ignored if 0 or less. Both distances are in int, not fixed, since I figured fixed precision isn't necessary and int will be easier for people to read. commonFuncs made by ijon tichy, updated by marrub. large radius radius give by Beed28 http://forum.zdoom.org/viewtopic.php?p=845858#p845858 All other code made by scroton, feel free to use for anything.
×