Back to the Vavoom Forum Archives
Crimson Wizard
Firebrand
prestep = 4.0 + 3.0 * (Radius + newSkull.Radius) / 2.0; // Check for movements. if (!newSkull.TryMove(newSkull.Origin + vector( prestep * cos(angle), prestep * sin(angle), 8.0))) { // kill it immediately newSkull.Damage(self, self, 10000); return; }So, basically you check if the monster can move, if the monster it's unable to move you simply kill it or remove it from the map, I don't think there's any other way to do this. EDIT: Forgot to put the prestep variable.
Crimson Wizard
Alex-bomber_Man
Janis Legzdinsh
Alex-bomber_Man
Janis Legzdinsh
May you tell me more detaily, which of the files - "Vavoom progs 120" or "Vavoom 120 source" - i have both of them.Progs package has Window binary of the compiler so it will be more usefull.
And tell me please the directory of the file, that i need.progs/doom/game2/ChaingunGuy.vc
Oh, will it work if i write the name of the changed file in Vavoom launcher, in the "files" string ?No, you must compile it.
Firebrand
Janis Legzdinsh
b0rsuk
May you tell me more detaily, which of the files - "Vavoom progs 120" or "Vavoom 120 source" - i have both of them.Progs package has Window binary of the compiler so it will be more usefull.
And tell me please the directory of the file, that i need.progs/doom/game2/ChaingunGuy.vc I'm confused. I'm interesting in modding monsters for Hexen, but I can't find any code describing monsters. In vavoom-prog-1.31.zip there's no progs/doom/game2/ChainGuy.vc file. I can't find such a file anywhere. The package has directories like this: progs/doom/cgame progs/doom/game progs/doom2 (this dir contains only two files, cgame.vc, and CMakeLists.txt) I even looked inside most of the files and found nothing.
Crimson Wizard
b0rsuk
b0rsuk
Missile: FDMN K 3 Bright A_FaceTarget FDMN KKK 5 Bright A_FiredAttack Goto See+9 (...) actor FireDemonMissile { Radius 10 Height 6 Mass 15 Speed 10 Damage 1 DamageType "Fire" RenderStyle Add Projectile DeathSound "FireDemonMissileHit" states { Spawn: FDMB A 5 Bright Loop Death: FDMB BCDE 5 Bright Stop } } (...)[/spoiler:kpno89pf] From \vavoom-1.31\progs\common\linespec : [spoiler:kpno89pf]
//============================================================================ // // A_FiredAttack // //============================================================================ final void A_FiredAttack() { EntityEx mo; mo = SpawnMissile(Target, FireDemonMissile); if (mo) { PlaySound('FireDemonAttack', CHAN_WEAPON); } }[/spoiler:kpno89pf] Basically I'm trying to modify the number of missiles an afrit shoots. I have the same problem with Dark Bishop - I can't figure out why it shoots out 12 missiles (according to DooM wiki). Figuring out doom chaingun (2) and Korax (6) is much easier.
Crimson Wizard
Missile: FDMN K 3 Bright A_FaceTarget FDMN KKK 5 Bright A_FiredAttack Goto See+9In the line "FDMN KKK 5 Bright A_FiredAttack" first 4 letters are sprite name, second part is frames, third is frame delay. Three K-s means 3 repeated frames FDMNK; each of these frames trigger action A_FiredAttack, thus 3 shots are produced. If you want it shoot 5 missiles, you can make so:
Missile: FDMN K 3 Bright A_FaceTarget FDMN KKKKK 5 Bright A_FiredAttack Goto See+9
Firebrand
b0rsuk
myhexgame/ |-- base.txt |-- config.cfg |-- progs | |-- CMakeLists.txt | |-- cgame | | |-- ClientGame.vc | | |-- IntermissionScreen.vc | | |-- MenuScreenControls2.vc | | |-- MenuScreenGameplayOptions.vc | | |-- MenuScreenHelp.vc | | |-- MenuScreenMain.vc | | |-- MenuScreenMultiplayer.vc | | |-- MenuScreenNewNetGame.vc | | |-- MenuScreenOptions.vc | | |-- MenuScreenPlayerSetup.vc | | |-- StatusBarScreen.vc | | |-- TitleScreen.vc | | `-- classes.vc | |-- common | | |-- CMakeLists.txt | | |-- engine | | | |-- ActorDisplayWindow.vc | | | |-- BasePlayer.vc | | | |-- ClientGameBase.vc | | | |-- Entity.vc | | | |-- GameInfo.vc | | | |-- GameObject.vc | | | |-- Level.vc | | | |-- LevelInfo.vc | | | |-- Object.vc | | | |-- PlayerReplicationInfo.vc | | | |-- RootWidget.vc | | | |-- ScriptsParser.vc | | | |-- Thinker.vc | | | |-- Widget.vc | | | |-- WorldInfo.vc | | | `-- classes.vc | | |-- linespec | | | |-- Actor.DoomAttack.vc | | | |-- Actor.DoomSpecific.vc | | | |-- Actor.FlagsAndAppearance.vc | | | |-- Actor.FreezeDeath.vc | | | |-- Actor.GenericAttacks.vc | | | |-- Actor.Heretic.vc | | | |-- Actor.Hexen.vc | | | |-- Actor.HexenWeapons.vc | | | |-- Actor.Inventory.vc | | | |-- Actor.Misc.vc | | | |-- Actor.MissileMovement.vc | | | |-- Actor.MonsterAi.vc | | | |-- Actor.Sound.vc | | | |-- Actor.Spawn.vc | | | |-- Actor.Special.vc | | | |-- Actor.StateJump.vc | | | |-- Actor.States.vc | | | |-- Actor.Strife.vc | | | |-- ActorMover.vc | | | |-- AimingCamera.vc | | | |-- AmbientSound.vc | | | |-- Ammo.vc | | | |-- AmmoFillup.vc | | | |-- Armor.vc | | | |-- ArtiBlastRadius.vc | | | |-- ArtiBoostArmor.vc | | | |-- ArtiDarkServant.vc | | | |-- ArtiHealingRadius.vc | | | |-- ArtiPoisonBag.vc | | | |-- ArtiTeleport.vc | | | |-- ArtiTeleportOther.vc | | | |-- ArtiTimeBomb.vc | | | |-- ArtiTomeOfPower.vc | | | |-- BackpackItem.vc | | | |-- BasicArmor.vc | | | |-- BasicArmorBonus.vc | | | |-- BasicArmorPickup.vc | | | |-- BlasterFX1.vc | | | |-- BossSpot.vc | | | |-- BrainState.vc | | | |-- Bridge.vc | | | |-- BridgeBall.vc | | | |-- CFlameMissile.vc | | | |-- CWeapWraithverge.vc | | | |-- CeilingMover.vc | | | |-- CeilingWaggle.vc | | | |-- ChickenPlayer.vc | | | |-- ClericWeapon.vc | | | |-- ClericWeaponPiece.vc | | | |-- CloseDoor222.vc | | | |-- Coin.vc | | | |-- CustomInventory.vc | | | |-- DegninOre.vc | | | |-- DoomBuilderCamera.vc | | | |-- DummyStrifeItem.vc | | | |-- DynamicLight.vc | | | |-- Elevator.vc | | | |-- EntityEx.AiUtils.vc | | | |-- EntityEx.Damage.vc | | | |-- EntityEx.Defaults.vc | | | |-- EntityEx.Head.vc | | | |-- EntityEx.Inventory.vc | | | |-- EntityEx.LineAttack.vc | | | |-- EntityEx.Misc.vc | | | |-- EntityEx.Morph.vc | | | |-- EntityEx.Physics.vc | | | |-- EntityEx.SpawnMissile.vc | | | |-- FSwordMissile.vc | | | |-- FWeapAxe.vc | | | |-- FakeInventory.vc | | | |-- FastProjectile.vc | | | |-- FighterWeapon.vc | | | |-- FighterWeaponPiece.vc | | | |-- FireFlicker.vc | | | |-- FlashFader.vc | | | |-- FloorMover.vc | | | |-- FloorWaggle.vc | | | |-- ForceFieldGuard.vc | | | |-- FourthWeaponHolder.vc | | | |-- FourthWeaponPiece.vc | | | |-- FrostMissile.vc | | | |-- GlassShard.vc | | | |-- GlowingLight.vc | | | |-- HateTarget.vc | | | |-- Health.vc | | | |-- HealthFillup.vc | | | |-- HealthPickup.vc | | | |-- HealthTraining.vc | | | |-- Heresiarch.vc | | | |-- HereticWeapon.vc | | | |-- HexenArmor.vc | | | |-- HexenWeapon.vc | | | |-- HolySpirit.vc | | | |-- HornRodFX2.vc | | | |-- IceChunk.vc | | | |-- IceChunkHead.vc | | | |-- InterpolationPoint.vc | | | |-- InterpolationSpecial.vc | | | |-- Inventory.vc | | | |-- InvisibleBridge.vc | | | |-- InvisibleBridge16.vc | | | |-- InvisibleBridge32.vc | | | |-- InvisibleBridge8.vc | | | |-- Key.vc | | | |-- LightEffect.vc | | | |-- LightFlash.vc | | | |-- Lighting.vc | | | |-- Lightning.vc | | | |-- LightningThinker.vc | | | |-- LightningZap.vc | | | |-- LineSpecialClientGame.vc | | | |-- LineSpecialGameInfo.vc | | | |-- LineSpecialLevelInfo.vc | | | |-- LookAtCamera.vc | | | |-- LoreShot.vc | | | |-- LowerStackLookOnly.vc | | | |-- MWeapBloodscourge.vc | | | |-- Mace.vc | | | |-- MaceFX4.vc | | | |-- Macil1.vc | | | |-- MageStaffFX2.vc | | | |-- MageWandMissile.vc | | | |-- MageWeapon.vc | | | |-- MageWeaponPiece.vc | | | |-- MapRevealer.vc | | | |-- Meat.vc | | | |-- Minotaur.vc | | | |-- MinotaurFriend.vc | | | |-- MorphProjectile.vc | | | |-- MorphedMonster.vc | | | |-- OpenDoor222.vc | | | |-- OpenDoor224.vc | | | |-- Oracle.vc | | | |-- ParticleFountain.vc | | | |-- PathFollower.vc | | | |-- PatrolSpecial.vc | | | |-- PhasedLight.vc | | | |-- PhoenixFX1.vc | | | |-- PhoenixFX2.vc | | | |-- PhoenixRod.vc | | | |-- PhoenixRodPowered.vc | | | |-- PhosphorousFire.vc | | | |-- PickupFlash.vc | | | |-- PigPlayer.vc | | | |-- Pillar.vc | | | |-- PlaneWatcher.vc | | | |-- Platform.vc | | | |-- PlayerChunk.vc | | | |-- PlayerEx.vc | | | |-- PlayerPawn.vc | | | |-- PointLight.vc | | | |-- PointLightFlicker.vc | | | |-- PointLightFlickerRandom.vc | | | |-- PointLightPulse.vc | | | |-- PointPuller.vc | | | |-- PointPusher.vc | | | |-- PoisonBolt.vc | | | |-- PoisonCloud.vc | | | |-- PolyobjDoor.vc | | | |-- PolyobjMover.vc | | | |-- PolyobjRotator.vc | | | |-- PolyobjThinker.vc | | | |-- Pottery1.vc | | | |-- PowerCoupling.vc | | | |-- PowerDamage.vc | | | |-- PowerFlight.vc | | | |-- PowerGhost.vc | | | |-- PowerInfiniteAmmo.vc | | | |-- PowerInvisibility.vc | | | |-- PowerInvulnerable.vc | | | |-- PowerIronFeet.vc | | | |-- PowerLightAmp.vc | | | |-- PowerMask.vc | | | |-- PowerMinotaur.vc | | | |-- PowerMorph.vc | | | |-- PowerProtection.vc | | | |-- PowerRegeneration.vc | | | |-- PowerScanner.vc | | | |-- PowerShadow.vc | | | |-- PowerSpeed.vc | | | |-- PowerStrength.vc | | | |-- PowerTargeter.vc | | | |-- PowerTorch.vc | | | |-- PowerWeaponLevel2.vc | | | |-- Powerup.vc | | | |-- PowerupGiver.vc | | | |-- PrisonPass.vc | | | |-- Pusher.vc | | | |-- PuzzleItem.vc | | | |-- QuakeFocus.vc | | | |-- RainPillar.vc | | | |-- RainPlayer2.vc | | | |-- RainPlayer3.vc | | | |-- RainPlayer4.vc | | | |-- RaiseAlarm.vc | | | |-- RandomSpawner.vc | | | |-- Ripper.vc | | | |-- Scanner.vc | | | |-- ScriptedMarine.vc | | | |-- Scroller.vc | | | |-- SecActEnter.vc | | | |-- SecActExit.vc | | | |-- SecActEyesAboveC.vc | | | |-- SecActEyesBelowC.vc | | | |-- SecActEyesDive.vc | | | |-- SecActEyesSurface.vc | | | |-- SecActHitCeiling.vc | | | |-- SecActHitFakeFloor.vc | | | |-- SecActHitFloor.vc | | | |-- SecActUse.vc | | | |-- SecActUseWall.vc | | | |-- SecretTrigger.vc | | | |-- SectorAction.vc | | | |-- SectorMover.vc | | | |-- SectorPointLight.vc | | | |-- SectorSilencer.vc | | | |-- SectorThinker.vc | | | |-- SecurityCamera.vc | | | |-- Sigil.vc | | | |-- SkyPicker.vc | | | |-- SkyViewpoint.vc | | | |-- SlideshowStarter.vc | | | |-- SorcBall.vc | | | |-- SorcBall1.vc | | | |-- SorcBall2.vc | | | |-- SorcBall3.vc | | | |-- Sorcerer2.vc | | | |-- SoundEnvironment.vc | | | |-- SoundSequence.vc | | | |-- SoundSequenceSlot.vc | | | |-- Spark.vc | | | |-- SpecialSpot.vc | | | |-- SpectralMonster.vc | | | |-- StackPoint.vc | | | |-- StairStepMover.vc | | | |-- StaticLightSource.vc | | | |-- StaticRGBLightSource.vc | | | |-- Strobe.vc | | | |-- SwitchableDecoration.vc | | | |-- SwitchingDecoration.vc | | | |-- TelOtherFX1.vc | | | |-- TeleportDest.vc | | | |-- TeleportDest2.vc | | | |-- TeleportDest3.vc | | | |-- TeleportFog.vc | | | |-- TeleporterBeacon.vc | | | |-- TextureChangeDoor.vc | | | |-- ThrustFloorDown.vc | | | |-- UpgradeAccuracy.vc | | | |-- UpgradeStamina.vc | | | |-- UpperStackLookOnly.vc | | | |-- VerticalDoor.vc | | | |-- WallLightTransfer.vc | | | |-- WaterZone.vc | | | |-- Weapon.vc | | | |-- WeaponGiver.vc | | | |-- WeaponHolder.vc | | | |-- WeaponPiece.vc | | | |-- Whirlwind.vc | | | |-- WorldInfoEx.vc | | | |-- ZBell.vc | | | |-- ZBridge.vc | | | |-- ZCorpseLynchedNoHeart.vc | | | `-- classes.vc | | `-- uibase | | |-- ClientGameShared.vc | | |-- ConDialog.vc | | |-- ConDlgChoice.vc | | |-- FinaleBackground.vc | | |-- FinaleScreen.vc | | |-- HUDMessage.vc | | |-- HUDMessageFadeInOut.vc | | |-- HUDMessageFadeOut.vc | | |-- HUDMessageTypeOnFadeOut.vc | | |-- IntermissionBackground.vc | | |-- MenuBigTextButton.vc | | |-- MenuChoice.vc | | |-- MenuChoiceEnum.vc | | |-- MenuChoiceEpisode.vc | | |-- MenuChoicePClass.vc | | |-- MenuChoiceSkill.vc | | |-- MenuChoiceSlider.vc | | |-- MenuChoiceSlot.vc | | |-- MenuChoice_LoadSlot.vc | | |-- MenuChoice_OnOff.vc | | |-- MenuChoice_SaveSlot.vc | | |-- MenuControlKey.vc | | |-- MenuInputLine.vc | | |-- MenuModel.vc | | |-- MenuSList.vc | | |-- MenuSaveSlot.vc | | |-- MenuScreen.vc | | |-- MenuScreenAdvancedVideoOptions.vc | | |-- MenuScreenClass.vc | | |-- MenuScreenControls.vc | | |-- MenuScreenEpisode.vc | | |-- MenuScreenJoinGame.vc | | |-- MenuScreenLoadGame.vc | | |-- MenuScreenMasterList.vc | | |-- MenuScreenMouseOptions.vc | | |-- MenuScreenSList.vc | | |-- MenuScreenSaveGame.vc | | |-- MenuScreenScreenResolution.vc | | |-- MenuScreenSinglePlayer.vc | | |-- MenuScreenSkill.vc | | |-- MenuScreenSoundOptions.vc | | |-- MenuScreenVideoOptions.vc | | |-- MenuSelector_Big.vc | | |-- MenuSelector_SmallLeft.vc | | |-- MenuSelector_SmallRight.vc | | |-- MenuSmallTextButton.vc | | |-- MenuSpriteAnim.vc | | |-- MenuStaticAnim.vc | | |-- MenuStaticBitmap.vc | | |-- MenuTextButton.vc | | |-- MenuTitleText.vc | | |-- StatusBarShared.vc | | `-- classes.vc | `-- game | |-- BotPlayer.vc | |-- HexenDefs.vc | |-- HexenLevelInfo.vc | |-- MainGameInfo.vc | |-- Player.vc | |-- PlayerSpeed.vc | `-- classes.vc `-- saves `-- save9.vsg[/spoiler:327y0keu] Is this correct ? I'm trying to launch my modified game, I specify "myhexgame" as custom game in vavoom launcher. The same way I used for others mods with a separate directory. The game runs, but I get no indication that my mod affects the game. It's just progs, so I commented out afrit's sound and removed 'ripping' effect from mage's wand. No effect. I thought vavoom no longer requires progs to be compiled ? By the way, where should 'actors' directory be located in my mod ? Currently, "DECORATE files" are used from basepak.pk3, from basev ( I know this because Afrit shoots more fireballs than 3). I would like to mod using DECORATE, while having "myhexgame" as a custom game. If you can answer my questions it would be best to update the wiki: <!-- m --><a class="postlink" href="http://www.vavoom-engine.com/wiki/index.php?title=Editing#File_system">http://www.vavoom-engine.com/wiki/index ... ile_system</a><!-- m --> edit[:/b] I got "actors" directory to work from "myhexgame" directory, but "progs" are still taken from basev, not from "myhexgame".
b0rsuk
randangle = P_Random() % 15; if (P_Random() % 2 == 0) { randangle *= -1; } // launch a missile, 60.0 is tmp -b0rsuk SpawnMissileAngle(DoomImpBall, Angles.yaw + itof(randangle), 60.0);I don't know a good way to find the angle to target. I just took Angles.yaw, but because imps don't look up or down I can only make them shoot horizontally. I can't just use SpawnMissile, because the function requires a target entity.
Firebrand
Janis Legzdinsh
b0rsuk
final void A_Borsuk() // temporary !! { A_TroopAttack() // DooM Imp attack }Then I added this line to ettin.txt in Actors:
ETTN E 1 A_BorsukI launch the mod, it doesn't crash (yay !) but no effect when an ettin attacks. If I just use A_TroopAttack directly in ettin.txt, it works, and it's easy to see because DooM Imps do instant damage in melee. If I modify one of existing attacks in Actors.Hexen.vc, the effect is visible in game. It's just the my new attack that produces no effect. What am I missing ? By the way, I tried just using VavoomC function (Thrust(angle, power)) directly in Decorate, but I guess it's not possible - it crashed. Can I only call functions which take no arguments in decorate ? What determines which functions can be used in Decorate ?
Firebrand
// launch a missile SpawnMissile(Target, DoomImpBall);It spawns a Projectile of class DoomImpBall, did you add it to your MOD? If you didn't then the game isn't spawning it because the class doesn't exists or it doesn't has any sprites <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->, DoomImpBall uses sprites named BAL1A0 and BAL1B0, hope this helps you out <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->.
b0rsuk
Firebrand
Janis Legzdinsh