Jump to content

Simomarchi

Members
  • Posts

    226
  • Joined

  • Last visited

About Simomarchi

  • Rank
    Junior Member
    Junior Member

Recent Profile Visitors

1060 profile views
  1. I'm not all that informed about decorate and new actors, I can only do some basic editing with inheritance. So if you want you can post your code here but I can't guarantee that I will be able to help you or even understand how does your weapon work. Regarding the blast radius there is a weapon on Realm667 that is free to download and is called "Nuclear Missile Launcher". If you have any doubts I suggest to download it and look how does it works since it is very similar to your own idea.
  2. The sprite is awsome, but I've a couple of question regardinig it's behaviour. Is the splash damage area bigger? I'm asking this because if this is not the case what's the point of using it and not the RL having that it uses 25 ammo for a 20 rockets damage output (other than the highest DPS)? How long is the charging animation? I think that you should think really carefully about using this weapon, so I hope that it has a really slow charge time to make the player think before pressing the fire button. I've also some doubts regarding the damage. A BFG shot is capable of one-shotting a spider mastermind at point blank. Will this weapon be able to do the same but as a ranged alternative? If this is the case, have you developed this weapon with the intention for it to be used along with an even higher tier of custom enemies? Other than that I'm waiting for the final result because I'm searching exactly for this kind of weapon (maybe with a custom ammo because I don't won't to worry about the balancing of normal rockets).
  3. Yeah that flesh texture doesn't look good on a flat wall. Try to use more sectors with different heights and also mix it up with normal wall segments, so that you don't have that "man-made" effect. The idea is to convey an effect similar to a"propagating plague" or some sort of corruption from hell inside that building, so maybe it's a good idea to use some "tentacles-like" sectors protruding from the wall to the ceiling/floor of the room to give an interesting effect to the wall and merge it with the rest of the space (just like your second screenahot but a little bit more thin and long). On the other hand an equally cool effect can be obtained by just removing a couple of bricks from the wall and replacing them with that texture (with proper indentation) and, if you want to make it even more realistic, add those fallen bricks to the floor near the broken section of the wall.
  4. I'm right handed but if I try to strafe counter-clockwise I really lose coordination between every part of my body and die painfully after a couple of seconds.
  5. Just a couple of questions to clarify the problem: Is your map in doom-in-hexen or UDMF map format? Is the first line of your code #include "zcommon.acs" ?
  6. Final doom uses locked switches as far as I know. It has been a lot of time since my last journey towards TNT and Plutonia, but I can remember that there is at least one map in TNT that uses them.
  7. Maybe it is a known thing, but I've Just found out that Doom2 not only added new monsters and a weapon, but also fast doors and locked switches. Interestingly, however, there is no locked switch in the entirety of Doom2.
  8. The top Wad editors nowadays are Ultimate Doom Builder for map making and SLADE3 for wad editing. Just to be clear, you have to use Ultimate Doom Builder to create the maps, and SLADE3 to add some modifications to them (change the sky, music, import new enemies in your wad etc. etc.). You can use SLADE3 to create the maps, since it comes with an integrated map editor but UDB is a better choice, at least for me. If you don't have a strong PC you can also try GZDoom Builder, that's basically an earlier version of UDB that requires less graphical resources to run. Keep in mind that despite the name you can map for any port with this editor and in any map format. Regarding how difficult is to use them I think that any instance of Doom Builder is very user friendly. The commands are very easy to learn (as long as you know how to make things work in a doom map) and they all come with an incredibly useful visual mode that can help you with some height adjustments or with some texturing work, other than the fact that it provides an immediate preview of your map. SLADE3 is also very easy to use but you can mess up the structure of your wad with it, so be sure to learn how does it works and what's the correct way to do stuff with it before trying something brave and fancy (and of course keep a backup of your data).
  9. That was the problem. Just in case that someone else will have the same problem in the future I've calculated the x and y coordinates of the player as integers, then I converted the distance in fixed point and lastly the fade variable was calculated with this code fade = 1.0 - FixedDiv (distance, (1000 << 16)); The entire code was then placed inside a while (TRUE) to "refresh" the opacity of the screen every tick. Thanks boris for your help.
  10. I'm making a script that is supposed to gradually fade the player's screen to black as he approaches a specific spot on the map. The distance between the player and the spot is calculated with the following code (where 96 and 912 are the x and y coordinates of the spot, that is static of course): Int x, y, distance, fade; x = (GetActorX (0) >>16) - 96; y = (GetActorY (0) >>16) - 912; distance = start (x*x + y*y); That code works well and returns exactly the value that I'm expecting as an integer (since the GetActor functions are converted to that format for simplicity). The problem is that I use the following code to define the fade effect: fade = 1 - (distance/1000); Fadeto (0, 0, 0, fade, 0.0); This code should start the fading effect when the player is 1000 map units from the spot but it just doesn't work because Fadeto requires a decimal number comprised between 0.0 and 1.0 to define the opacity of the screen and the variable fade returns an approximated integer value that is 0 or 1 (so no fade or pitch black). ACS handles decimal numbers as fixed point values, so I tried to convert the fade variable in fixed point using: fade = (1 - (distance/1000) <<16); but again the number that is converted is an integer (so 0 or 1). Lastly, if everything is calculated in fixed point there is still the problem that the int variable stores an integer, so FadeTo handles it in that way and set the opacity to 1.0 recieving 65000 and something as the value of fade. Is there a way to store a decimal number in a variable? Or anything that can solve this problem?
  11. Well, at least for the first time in my life (probably not but I really can't remember the last time that I played habitat, or TNT in general) I visited the underground section of the level. You have solved the problem that the map could be finished in like 30 seconds without firing a single shot, but there is still that nonsensical underground maze full of random secret zones that I probably will never understand what exactly do. I appreciated also the fact that the wall in the first open area is no longer here, but if the blue key is needed for the completion of the level I don't think that it's a good idea to leave it inside that secret zone. Just delete that section and place the key and the monsters right behind the door . The new zone behind the yellow door is strange. At least to me. The fact that you have to go upstairs to open the closet, and then enter in the closet for no reason to reveal the switch is not the best way to handle the situation. A simple switch at the end of the new zone would have been better. Overall this map is no longer a joke, but is still a very badly designed level. I'm not saying that it is your fault, just that the original level is so poorly designed that I doubt that something can be done to fix it if you try to maintain the original layout at the same time. Other than that be careful with this kind of modifications. You can't just open an IWAD, copy-paste a map and then add a few sectors to it, probably this violate the copyright of the original material. A completely new map made by you, maybe even called habitat2 and with the same concept, but with more details and a better general design will be a much more appreciated work, specially if it plays well (just look at almost every MAP07 of every megawad. They use the same mancubus-arachnotrons principle but are all different in their own way). Lastly, if you want to change the name and the sky of your map you have to use a lump editor like SLADE3, that is free to download from its site. With this software you can add and remove "entries" from you wad (such as textures, maps, music...). You can also create simple text files that control the behaviour of your level. This files are called MAPINFO (or ZMAPINFO if you want your map to be Zdoom-exclusive). Just open your map in SLADE, go to "archive-new-entry" to create a new lump, then view it as text and write the following code: map MAP01 "nice name" { Sky1 = "your sky name" } Replace "nice name" and "your sky name" with the names of your map and sky and it is done. Remember to copy-paste inside your wad your custom sky from the source of your choice (a texture pack for example). Further information can be read here: https://zdoom.org/wiki/MAPINFO/Map_definition And more generally here: https://zdoom.org/wiki/MAPINFO
  12. I suppose that you want your players to be able to walk also over that monster closet in a second moment. If this is the case you simply have to use a 3D floor above the monster closet. First you have to lower at the level of the lowest floor the highlighted sector in your screenshot (I mean, the sector that contains the highlighted linedef). After that give to it a tag. Now create a control sector (a small unreachable sector outside of the playable area). Choose a random linedef of that sector and give to that linedef the action number 160. Give to that action the tag of your highlighted sector as a parameter. This procedures allows you to create a 3D floor with the shape of the highlighted sector. The characteristics of this 3D floor depend on the control sector. In particular: The height of the control sector will be the thickness of the 3D floor The floor texture of the control sector will be the texture rendered on the bottom part of the 3D floor (the one that you see when you look up and you are under it) The ceiling texture of the control sector will be the texture rendered on the top surface of the 3D floor (the one that you can step on when you are at the high level of your room) The middle texture of the linedef that has action 160 will be the texture of the sides of the 3D floor The brightness of the control sector will be the brightness of the space under the 3D floor (in your case the monster closet). If you want to raise/lower the 3D floor to a specific height you have to raise/lower both the floor and the ceiling of the control sector at the same time (without touching the highlighted sector at all). Now, to complete your ambush you simply have to create a barrier between the player and the monster that are placed under the 3D floor. Instead of lowering the entire floor you just have to create an 8 map units-thick sector under the 3D floor and raise its floor at the same height of the bottom part of the 3D structure (to give the illusion of a continuous wall). Then you can lower that floor with the method that you prefer to free the monster behind it and start the ambush. Remember that 3D floors need an advanced map format to function, like Doom-in-Hexen or UDMF.
  13. Just some random thoughts on your ideas: At least to me the concept of doom is a really fast placed gameplay, so it's probably better to avoid shielded enemies that can slow your game experience. Think about the baron of hell. It is a fantastic boss in E1, but other than that it is pointless to use it, specially after the release of DOOM2 with its hell knight that it's a far better enemy. The main problem of the baron is his incredibly high health compared to its threat level (he is basically a mid tier monster with too much health). It is just boring to fight him. There's a monster on realm 667 called "cyberbaron" that gives to the baron the ability to shoot a powerful cyberdemon rocket. I think that that monster can change at least a bit the way that you use to approach a fight. It is not as powerful as a cyberdemon, nor as threatening but you should keep an eye on him because a rocket deals incredible damage if hits. So, first of all, I would replace the baron with a slightly modified version of the cyberbaron. Regarding the melee aspects of the game Eviternity gives a good twist to the thing by introducing the nightmare demon (and has also a cyberbaron-like enemy) that is basically a faster demon with double health. It's fun to see how a melee monster that survives a SSG blast can change your game experience entirely. A monster with the ability to teleport can be interesting, but has to be used really carefully to avoid any problems. Just imagine if you put him in the middle of other enemies. You can say goodbye to his teleport ability because there is no space for him to use it, and the same applies for small hallways or cramped space in general. The stronger melee attack point is fulfilled perfectly by the berserk pack, maybe the only thing to change is a better balancing of its damage output, since as of today you can both one-shot demons or 5-shot them. The final boss is probably the point where the entire doom community agrees with you. Basically anything is better than that wall. So yeah, in the end I would just like to see a modified version of the baron, another type of demon and a reliable berserkpack-style item. Other than that I find basically any other modification of the gameplay forced (the afrit, for example, is overpowered and I hate the fact that a single rocket pushes him/her miles away).
  14. If your problem is to be sure that only one of those two scripts runs at any given time you can proceed as follows: First you have to declare a general variable, outside of any script (you can write it just under the zcommon.acs line), and give to it a boolean value. This variable will check if script 4 is running or not. For example: Int check4 = TRUE; After that you have to add another "if" that contains the entirety of your script 5 code. This if will check the current status of script 4. Script 5 (void) { If != check4 { your script 5 code } } Now script 5 will only execute if check4 is FALSE (since the previous if works with "not check4"), therefore when script 4 is not active. The last thing that you have to do to make this thing work is to add a line at the end of your script 4 code that changes the value of check4: Script 4 (void) { your script 4 code delay (35*2); check4 = FALSE; } This way you can control the behaviour of script 5 using a variable that changes its value in script 4 after 2 seconds (you have said that the player has to wait 2 seconds to make everything work properly, so that's the reason of the delay). However this works only one time and only for script 4. Now that the process is (hopefully) clear I will write in the spoiler below the complete procedure.
×
×
  • Create New...