Some suggestions?

Moderator: Graf Zahl

User avatar
Eriance
Posts: 150
Joined: Wed Mar 29, 2006 19:36
Location: Everywhere and nowhere
Contact:

Some suggestions?

Post by Eriance »

I finally gota GZdoom to work without causing my desktop icons to vanaish upon quitting. There are a few interesting functions I've seen in GZdoom not present in Zdoom 96x, so I might switch my project to over to GZdoom once I figure out how the stuff works.

I do have a few suggestions though, not sure if they've been mentioned yet. most of these are in Hexen and heretic in other doom ports, so maybe they should not be too hard to add?
-------------
Properties:
-------------

BounceAmount, value (# of bounces before death): Edge has this ability to dicated how many times a projectil bounces before it goes boom.

Lifetime, value (in tics): This is also in EDGE. The A_Countdown is relatively useful, but compaired to EDGE's "fuse" parameter, it's not as good. This would allow monsters or any actors to have a certain lifetime after spawn. Would make a lot of things easier.

DeathSummon, string (name of actor): This allows a projectile to summone a unit upon killing another unit. Such as a possession spell or a spell to raise a skeleton after killing an anctor. Would be useful or certain hellish weapons. The summoned actor should be summoned after the death sequence of the target is finished. Also, it should be summoned even if there are already another actor in the area. Just like how Doom2 summons monsters into each other and gets them stuck together. A Simple temporary A_NoBlocking on the summoned actor should keep the monsters from being stuck for too long.

LeechAmount, value (percent of leeched damage = 0.00-1.00): This tells gives a portion of the damage done by that projectile to the actor that fired it as health. Kinda like Hexen's melee serpent staff or the Reaver's melee attack.

DmgReduce, value (#of damage taken off): Kinda like armor, but permentant. Damage down to an actor with this property will be reduced by the percent of the DmdReduce value.

Weapon.AmmoRegenRate, value (in tics, time between ammo regeneration)

Distort(just another renderstyle): This rengerstyle distorts the BG behind the actor. This is present in StarCraft's non-friendly cloaked units. The brighter colors distorts more than the darker colors. Be cool to have another style that gives cloacked monsters more sci-fi-ness.
-------
Flags:
-------

ABSOLUTESPEED: This is like the powered up phoenix rod's flames and the Mace balls from heretic. They have a realistic speed function. Instead of always traveling at the designated speed, their speed is the designated + the speed of the actor when any fire missile command is executed. This allows for the more realistic flame throwers and and other stream type attacks.

COLDRESIST: Self explanatory

HEAL: Damage done by this actor is reversed and goes into the health of the target.

AMMOREGEN1: Regenerates ammo type1 for the weapon with this flag. Uses the Weapon.AmmoPerShot, and the weapon.AmmoRegenRate properties. Ammo is replenished at the ammo per shot amount at a rate dictated by weapon.AmmoRegenRate.

AMMOREGEN2: Same as above be regenerates the second ammo type.
------------------
Action Pointers:
------------------

A_Rain ("string" (actor name), radius, rain time (in tics)): Acts like the powered up hellstaff from Heretic. Drops the designated actor randomly within the designated area.

A_Leep (X-offset(Amount moved forwards(+)/backwards(-) per tic), Z-offset(amount moved up(+_/down(-) per tic), time (in tics, amount of time before this function is canceled))

A_SummonDrone ("string" (actor name), offset, pitch, direction(0,1,2)): Like the Heresiarch's cubes, the spawned actor maintains a distance (the offset) from the calling actor's center while orbiting. The pitch dictates the angle at which the orbit is tilted. The direction of 1 (clockwise) or 2 (counter-clockwise) dictates in which direction the actor orbits; 0 causes the actor not to orbit at all, instead, it justs stays at a certain distance from the calling actor.

A_KillDrone: Killes all drones spawned by the calling actor.
------------------------
New Powerup types:
------------------------

BlastSuit: Makes the actor with this powerup immune to splash damage. Basicaly just sets the +NoRadiusDmg flag for a certain amount of time.

Reflection: Reflects all projectiles without taking damage but takes damage from falling, damaging floors and hit-scan attacks.

Slow: Causes all other actors except the actor with this powerup to have their speed cut in half. Maybe it makes them fire twice as slow and have their projectile speed cut too?

Ghost: Makes the actor almost completely transparent and makes it unshootable for a given period of time. Actor still takes damage from floors and stuff.

LowGrav: Gives low grav to the actor with this powerup.

Regeneration: Adds 1 hp per every 7 tics for a period of time.

Nightmare: Actor with this powerup cannot be shot until it shoots or is injured. It will also remain invisable until it attacks. basically stealth + a small tweak.
-------------------------------------------------------------------------------------

These are just some ideas i had and is working on personally with the new Gzdoom source code. But since I'm new at programing (still learning C++ from a book I bought), I thought maybe other experts at programing would do it much faster and better. They are by no means demands.
User avatar
Paul
DRD Team Admin (Inactive)
Posts: 1058
Joined: Thu Jun 30, 2005 13:30
Location: Poland - Grojec / Radom
Contact:

Post by Paul »

HEAL
I strongly support this. Then just make a medic, who is NOT friendly-he follows you and uses his melee attack at you, like a normal enemy-except that attack is a heal ;) I once emulated such in EDGE with a medic spawning medkits when he executed his melee attack. Hmm.. A_Spawnitem maybe would be helpful?
Ammo regeneration
This could be done with Decorate /methinks
Ready:
PIST 4 A 0 A_Jumpifinventory("Pistolammo",50,3)
PIST 4 A 4 A_GiveInventory ("PistolAmmo")
PIST 4 A 4 A_Weaponready
Loop
PIST 4 A 4 A_WeaponReady
Loop
------------------------
New Powerup types:
------------------------
I'm pretty sure most can be either emulated with custom inventory or ACS
Regeneration: Adds 1 hp per every 7 tics for a period of time.
This is especially easy
Script 555 (void)
{
for (int a, a<50,a++)
{
healthing(1);
delay(7*35);
}
}
A_Rain
This can be done with ACS with spawning projectiles, randomly, from a TID.
User avatar
Eriance
Posts: 150
Joined: Wed Mar 29, 2006 19:36
Location: Everywhere and nowhere
Contact:

Post by Eriance »

Yeah, A lot of these things can be done with ACS. But it's a hassle to have to include a set of scripts with the wad. Especially for those who are no familiar with programing. These suggestions are so ht it would make it easier to do these effects. I've done the healing before, though there are minor bugs.
User avatar
solarsnowfall
Persecution Complex
Posts: 363
Joined: Fri Aug 05, 2005 8:51

Post by solarsnowfall »

Eriance wrote:Yeah, A lot of these things can be done with ACS. But it's a hassle to have to include a set of scripts with the wad.
I don't understand why there is this prevailing sentiment that including scripts is so difficult. If you want to use decorate actors, you have to include a decorate lump with your map, no? And you most likely had to go to the ZDoom Wiki to learn about the stuff, right? Is it really that much more difficult to include a library in your wad that will contain the scripts, which could be used on any map? I think not.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Post by Graf Zahl »

Indeed. DECORATE combined with ACS is incredibly powerful. Just look at the bosses in Simplicity.
User avatar
Eriance
Posts: 150
Joined: Wed Mar 29, 2006 19:36
Location: Everywhere and nowhere
Contact:

Post by Eriance »

solarsnowfall wrote:
Eriance wrote:Yeah, A lot of these things can be done with ACS. But it's a hassle to have to include a set of scripts with the wad.
I don't understand why there is this prevailing sentiment that including scripts is so difficult. If you want to use decorate actors, you have to include a decorate lump with your map, no? And you most likely had to go to the ZDoom Wiki to learn about the stuff, right? Is it really that much more difficult to include a library in your wad that will contain the scripts, which could be used on any map? I think not.
True, people can use ACS. However, I would like to answer your question with another question. What is wrong with wanting to make something easier than it is?

It's obvious that not everyone, infact most mappers don't know how to use ACS to the fullest extand because they are not programmers like you guys. Things that are easy for you are not so for most, especially newbs. It's just as simple as asking a non artist to sprite something. Also Decorate and ACS are VERY differnt things. Decorate is simple and to the point with 1 line having 1 action. It contains no variables. And Although ACS is a lot more powerful, ACS is also confusing with some of it's formatting, espcally to non-programmers. It's so concise that a lot of things don't make much sense.

Also, A lot of these things are not possible by ACS, as I was told be members on Zdoom forums. They might be wrong, but these are simple suggestions. (Like the leeching)
-------------------------------------------------------------------------------------
But on a side note. Looking at the source codes for Zdoom and Gzdoom, they look very similar to ACS scripts. Does this mean I can pretty much use ACS to similate the functions of the source code?

This probably sounds really stupid to you, but I've only recently picked up Zdoom. I managed to learn Decorate in a week, since it's very similar to EDGE's DDF. But ACS is totally confusing, especially with the variables. I'ave only managed to do the most rudimentry of ACS scripting with my maps.
NecroMage
Posts: 58
Joined: Sun Sep 11, 2005 20:31
Location: nj
Contact:

Post by NecroMage »

Eriance wrote:But on a side note. Looking at the source codes for Zdoom and Gzdoom, they look very similar to ACS scripts. Does this mean I can pretty much use ACS to similate the functions of the source code?

This probably sounds really stupid to you, but I've only recently picked up Zdoom. I managed to learn Decorate in a week, since it's very similar to EDGE's DDF. But ACS is totally confusing, especially with the variables. I'ave only managed to do the most rudimentry of ACS scripting with my maps.
ACS is a lot like C but its not C. ACS is missing a number of capabilities that C has. For example there are no pointers, no structs, no char, no string manipulation, etc... Knowing C/C++ will greatly help you in using ACS. I know a bit of C++ and less C and it has helped me understand ACS. Even if you do not totally understand it, most scripts will only require a minium amount of knowledge in the language anyway. ACS is a lot less annoying then people think it is, I just think that the whole idea of a programming language just scares people. Now the zdoom source code, I have no clue whats going on in there...
User avatar
Nash
Developer
Developer
Posts: 1226
Joined: Sun Sep 25, 2005 1:49
Location: Kuala Lumpur, Malaysia
Contact:

Post by Nash »

What you should do is, on a free weekend when you have plenty of time; make your favourite food, drinks and snacks, and take the time to sit down and learn ACS.

You won't regret it, trust me. It's VERY easy. I'm not a programmer (like you, I am more on the art side) but I picked it up on the same day I started to sit down and learn it.

It's really a lot easier than you think it is. And remember if you are EVER stuck with anything you don't understand about ACS, just post on the ZDoom forums (or even here, it doesn't matter). People will gladly help you out.
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Post by Enjay »

Indeed, and a lot of the time a lot of the stuff you will need will have little resemblance to actual programming because all you will be doing is little more than putting a bunch of line actions into a sequence to be executed in turn.

Of course, the more interesting stuff does require more involved scripting (though it is rarely particularly complex). As Nash said, there will always be someone knowledgable willing to help out when you get stuck anyway.

As the Dr Pepper commercials say... "What's the worst that can happen?" :D
User avatar
Eriance
Posts: 150
Joined: Wed Mar 29, 2006 19:36
Location: Everywhere and nowhere
Contact:

Post by Eriance »

Enjay wrote:Indeed, and a lot of the time a lot of the stuff you will need will have little resemblance to actual programming because all you will be doing is little more than putting a bunch of line actions into a sequence to be executed in turn.

Of course, the more interesting stuff does require more involved scripting (though it is rarely particularly complex). As Nash said, there will always be someone knowledgable willing to help out when you get stuck anyway.

As the Dr Pepper commercials say... "What's the worst that can happen?" :D
Does ACS support multiplayer and DM though? I thought that a script can only work for one person at a time. Or am I wrong. Like the ones with the variables, doesn't a script only keep 1 copy of the variable? So if, say player 1 uses a script, player two wont be able to.

From what I learned from War Craft III's mappting scripts, which is bsically C++ made a bit easier, I need something called an 'Array'? that keeps a bunch of the same variable but one for each player. Can you do this with ACS? I read something on DW that arrays were not supported or something. Maybe the guy was just drunk? That Leeching thing would sure help.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Post by Graf Zahl »

Eriance wrote:
Does ACS support multiplayer and DM though? I thought that a script can only work for one person at a time. Or am I wrong. Like the ones with the variables, doesn't a script only keep 1 copy of the variable? So if, say player 1 uses a script, player two wont be able to.
Your informations are many years out of date. All this is possible.
From what I learned from War Craft III's mappting scripts, which is bsically C++ made a bit easier, I need something called an 'Array'? that keeps a bunch of the same variable but one for each player. Can you do this with ACS? I read something on DW that arrays were not supported or something. Maybe the guy was just drunk? That Leeching thing would sure help.
Either he was drunk or he was talking about Hexen. ZDoom does support arrays.
Last edited by Graf Zahl on Fri Mar 31, 2006 9:03, edited 1 time in total.
User avatar
solarsnowfall
Persecution Complex
Posts: 363
Joined: Fri Aug 05, 2005 8:51

Post by solarsnowfall »

Eriance wrote:Does ACS support multiplayer and DM though? I thought that a script can only work for one person at a time. Or am I wrong. Like the ones with the variables, doesn't a script only keep 1 copy of the variable? So if, say player 1 uses a script, player two wont be able to.
What is it you're trying to do anyway? You can index an array with PlayerNumber() and store variables specific to each player with an ENTER or RESPAWN script.
User avatar
DoomRater
Posts: 397
Joined: Tue Jul 19, 2005 4:14
Location: Programmer's Room, talking to Will Harvey
Contact:

Post by DoomRater »

The only time ACS is not acceptable is when making weapon mods. Otherwise you have access to so much power in your map using these tools.
User avatar
Blade Nightflame
Posts: 31
Joined: Sun Dec 04, 2005 22:35

Post by Blade Nightflame »

DoomRater wrote:The only time ACS is not acceptable is when making weapon mods. Otherwise you have access to so much power in your map using these tools.
Or making mods that can be usable with other maps and other mods, by the way.
User avatar
Eriance
Posts: 150
Joined: Wed Mar 29, 2006 19:36
Location: Everywhere and nowhere
Contact:

Post by Eriance »

DoomRater wrote:The only time ACS is not acceptable is when making weapon mods. Otherwise you have access to so much power in your map using these tools.
Well, the project i'm doing, Demon Eclipse, is basically a large resource wad with all custom monsters and weapons that I made with a few episode of maps that displays them in real gameplay rather than just a big room. I want people to be able to just copy the decorate, the sounds, and the sprites so that can use it. I try to not use ACS other than for the maps because It's not a very good resource if you have to make people drag one of your maps (the one with the scripts of the weapons and poewrups) just to use a few weapons or mosnters.

I've asked my friend to add in some functions for me using the Gzdoom source code. I'll see how that works out. Some of these new coding are essential to the project (i.e. the Reflection powerup and regeneration powerup).
Locked

Return to “Closed Feature Suggestions”