Cuztomizable Starting Equipment
Moderator: GZDoom Developers
- chaoscentral
- Posts: 677
- Joined: Sun Feb 27, 2005 4:32 pm
- Location: Revere, MA
- Contact:
Actually, in terms of firing speed, XP, and therefore level, does make a difference. Example, Dungeons and Dragons, Magic missile. At level one, you can fire one missile per round. At level nine, you can shoot five per round. To port this to doom, make it so at level nine your firing speed for magic missile is five times higher. Thus, your XP affects your firing speed.That doesn't fit with any kind of even semi-RPG environment.
Agility = speed.
More agility = more speed.
Also, in most RPG environments, you gain agility by gaining levels. Thus, XP = agility and agility = speed. Stick in the transitive property, and you get XP = speed.
Anyway...
So, there is no way to make a pwad that you, say, load up with doom2.wad and it will run the scripts in a script library?
- DoomRater
- Posts: 8265
- Joined: Wed Jul 28, 2004 8:21 am
- Preferred Pronouns: He/Him
- Location: WATR HQ
- Contact:
Actually a lot of the weapon changes could be done in DECORATE. I'm planning to use upgradable weapons as well, where you get a weapon and it gets better when you have different items in your inventory. Or even for example, making an item that makes a weapon behave in a certain way for a period of time (although THAT might require a script, since DECORATE items don't seem to have a concept of time in them)
This is how I did it in the Punisher TC along with added code for an RPG-like levelup system.
ACSLIB.acs
MAP01's SCRIPTS lump
MAP14's SCRIPTS lump
See the pattern here?
EDIT: As soon as I figure out something cool, it gets ignored. How ironic.
ACSLIB.acs
Code: Select all
#include "zcommon.acs"
int experience, level=0;
int agi,vit,stg,ntl,wis=50;
int oldstat;
//RPG-LIKE SHIT
function void LevelUpStats(void) //criminally inefficient level-up function
{
oldstat == agi;
oldstat / level;
agi += oldstat;
oldstat == vit;
oldstat / level;
vit += oldstat;
oldstat == stg;
oldstat / level;
stg += oldstat;
oldstat == ntl;
oldstat / level;
ntl += oldstat;
oldstat == wis;
oldstat / level;
wis += oldstat;
oldstat == 0;
}
Script 800 (int addexp)
{
if(experience >= 500)
{
level++;
LevelUpStats();
experience==0;
experience += addexp;
}
else
{
experience += addexp;
if(experience >= 500)
experience==0;
level++;
LevelUpStats();
}
//WEAPONS SHIT
Script 900 ENTER
{
ClearInventory();
GiveInventory("Fists", 1);
}
Script 901 RESPAWN
{
ClearInventory();
GiveInventory("Fists", 1);
}
Script 902 OPEN
{
ACS_Execute(900, MAPNUM, 0, 0, 0);
}
Code: Select all
#define MAPNUM 1
#import "ACSLIB.acs"
Code: Select all
#define MAPNUM 14
#import "ACSLIB.acs"
EDIT: As soon as I figure out something cool, it gets ignored. How ironic.
- Caligari87
- Admin
- Posts: 6174
- Joined: Thu Feb 26, 2004 3:02 pm
- Preferred Pronouns: He/Him
- Contact:
Hehehe... you wouldn't like my RealCombat mod. I've dropped player speed to an unheard-of level, because it's an RL combat simulation, and even Doomguy's walking seems to be about 25mph. He runs about 5mph in my mod and slows even more for healing purposes.HobbsTiger1 wrote:I agree with Belial. I'm well adjusted to playing Doom with the set player speeds (running and walking) and adjusting them either way would just throw me.