Page 1 of 2
Hexen's DECORATE!
Posted: Wed Nov 15, 2006 11:06 pm
by Logan MTM
I was looking for that weapon 3 of the Cleric on ZDoom wiki and i doesn't found!
I've tryed in zdoom.pk3 file and nothing!
Somebody can tell me where can i find that script?
Thanks!
Posted: Thu Nov 16, 2006 1:28 am
by Grubber
Nowhere. Look inside the source code.
Posted: Thu Nov 16, 2006 3:51 pm
by DoomRater
What he wants is the codepointer that will allow him to fire this cleric weapon. The names ofthose codepointers will come in handy to me later on, should I decide to convert a certain 63a weapons mod...
Posted: Fri Nov 17, 2006 1:59 pm
by Anakin S.
Is this code pointer even included in decorate? Or you could just fire the CFlameMissile or whatever it's called with A_FireMissile.
Posted: Fri Nov 17, 2006 2:42 pm
by DoomRater
Oooh, that too, assuming all that's needed is to fire a projectile. That would simplify things radically.
Posted: Fri Nov 17, 2006 3:06 pm
by HotWax
Nearly all the weapons in Doom games fire one of two things -- Hitscan or projectiles. Even "melee" attacks are just short-range hitscan.
I'm pretty sure this is a case of just firing multiple projectiles.
Posted: Fri Nov 17, 2006 3:55 pm
by DoomRater
A projectile that behaves so differently from other projectiles that I assumed it was handled by a seperate codepointer. Apparently Logan thought so too.
Posted: Fri Nov 17, 2006 5:04 pm
by randi
This is the code for the player:
Code: Select all
void A_CHolyAttack (AActor *actor)
{
player_t *player;
if (NULL == (player = actor->player))
{
return;
}
ACWeapWraithverge *weapon = static_cast<ACWeapWraithverge> (actor->player->ReadyWeapon);
if (weapon != NULL)
{
if (!weapon->DepleteAmmo (weapon->bAltFire))
return;
}
AActor * missile = P_SpawnPlayerMissile (actor, RUNTIME_CLASS(AHolyMissile));
if (missile != NULL) missile->tracer = linetarget;
weapon->CHolyCount = 3;
S_Sound (actor, CHAN_WEAPON, "HolySymbolFire", 1, ATTN_NORM);
}
And this is the code for a monster:
Code: Select all
void A_CHolyAttack3 (AActor *actor)
{
AActor * missile = P_SpawnMissileZ (actor, actor->z + 40*FRACUNIT, actor->target, RUNTIME_CLASS(AHolyMissile));
if (missile != NULL) missile->tracer = NULL; // No initial target
S_Sound (actor, CHAN_WEAPON, "HolySymbolFire", 1, ATTN_NORM);
}
Posted: Fri Nov 17, 2006 5:07 pm
by DoomRater
Oh, by weapon three I think he meant the Cleric Hands, not the asembled superweapon.
Posted: Fri Nov 17, 2006 5:22 pm
by randi
Oh, right. Here it is, very easy to replicate:
Code: Select all
void A_CFlameAttack (AActor *actor)
{
player_t *player;
if (NULL == (player = actor->player))
{
return;
}
AWeapon *weapon = actor->player->ReadyWeapon;
if (weapon != NULL)
{
if (!weapon->DepleteAmmo (weapon->bAltFire))
return;
}
P_SpawnPlayerMissile (actor, RUNTIME_CLASS(ACFlameMissile));
S_Sound (actor, CHAN_WEAPON, "ClericFlameFire", 1, ATTN_NORM);
}
Posted: Sat Nov 18, 2006 1:59 am
by Logan MTM
Oh! I'm really happy with you atention Randy and all you too.
But, i mean the DECORATE code. I doesn't be enought clear. =/
Posted: Sat Nov 18, 2006 8:14 am
by Ryan Cordell
If you know ACS and Decorate, that's very easy to read.
Posted: Sat Nov 18, 2006 9:37 am
by Graf Zahl
There isn't much in it: Launch a missile and play a sound. Although, it is not possible to do it 100% accurate because you wouldn't be able to do the sound precisely like it's in the original.
Posted: Sat Nov 18, 2006 2:39 pm
by DoomRater
Okay, for those who don't know what to look for: the codepointer for the weapon would be A_CFlameAttack. I doubt you can call that in this version of DECORATE, so instead fire the projectile (corrected, see below) CFLameMissile or perhaps a missile that inherits from it?
Posted: Sat Nov 18, 2006 4:23 pm
by Ryan Cordell
Rater, it's just CFlameMissile, as the class itself. I'm guessing the A there would denote the ACTOR segment for that.