Page 2 of 2 FirstFirst 1 2
Results 11 to 16 of 16

Thread: Manipulating the AI keepers.

  
  1. #11

    Default Re: Manipulating the AI keepers.

    Is it possible to list a creature in a Resurrect Special without the player actually owning it and losing it? I'm mulling over the idea for a possession-style campaign where you choose your fighter from a list in a resurrect special. I could just have them spawn on top of a boulder, but maybe there's a cleaner way.

    Also, how do you go about using the PLAY_MESSAGE command. Where would I need to dump the .wav file?

  2. #12

    Default Re: Manipulating the AI keepers.

    Instead of the boulder you could use the KILL_CREATURE command to kill the creatures straight away.

  3. #13

    Default Re: Manipulating the AI keepers.

    Guys, I stopped working on my maps a while back because I got stuck on some code and the site was down.
    Trying to get back into it but I honestly can't remember what I was doing.

    RANDOM

    It's not a command, but may be used instead of most parameters. If used instead of a number, then should look like:

    RANDOM(min,max)

    but may also be used instead of any other value. Examples:

    REM Human player will have random creature limit between 12 and 19
    MAX_CREATURES(PLAYER0,RANDOM(12,19))
    REM Random creature will be added to pool
    ADD_CREATURE_TO_POOL(RANDOM,20)

    Note that when used instead of player name, RANDOM may return ALL_PLAYERS. Also, the command shouldn't be used in multiplayer maps, as it will lead to synchronization problems. Value represented by RANDOM is selected at start of a map, and never changes during the gameplay.
    Alright so i'm trying to do a hero campaign and I wanted to take things a step further by removing imps for tunnelers and removing portals in favour of "reinforcements" from a Hero gate.
    Turns out tunnelers are completely worthless as workers so i've thrown that half of the idea in the bin. Now the "ADD_CREATURE_TO_POOL(RANDOM,20)" of the above implies the RANDOM function works on creatures and not just numbers. I cooked up this;

    Code:
    REM		SETUP PLAYER CREATURE SPAWNING
    
    IF(PLAYER0,TOTAL_CREATURES >= 1)
    	SET_TIMER(PLAYER0,TIMER1)
    ENDIF
    
    IF(PLAYER0,TOTAL_CREATURES < 25)
    	IF(PLAYER0,TIMER1 >= 50)
    		NEXT_COMMAND_REUSABLE
    		ADD_CREATURE_TO_LEVEL(PLAYER0,RANDOM,-4,1,1,0)
    		NEXT_COMMAND_REUSABLE
    		SET_TIMER(PLAYER0,TIMER1)
    	ENDIF
    ENDIF
    But it just flat out doesn't work. Either i've scripted it incorrectly or it's not even possible and i'm wasting my time. The Hero Gates being random spawns are hugely important to get a good emulation of how portals regularly work.

    Bear in mind the player starts with a .

  4. #14

    Default Re: Manipulating the AI keepers.

    Does the log give an error message?

    Edit: I checked for myself, and indeed it does:
    Code:
    Error: script_scan_line(line 40): Not enough parameters for "ADD_CREATURE_TO_LEVEL"
    Funnily enough, when I replace Random with Random(min,max) the command is accepted, but instead mentions that the number returned is not a creature, so no help there.

    In any case, even if it would work, this script would not have the effect you want: Random is determined at the start of the game, and stays the same. So, it would pick a random creature and give you that creature every 2.5 seconds (when you have the timer on 50).

    I think the game script needs a true random command, also for example for action points. So for example you can continuously spawn a party from a random action point.
    Last edited by YourMaster; October 4th, 2014 at 17:18.

  5. #15

    Default Re: Manipulating the AI keepers.

    Well that sucks. So any ideas or will I have to stick with portals?

    You should take a look at Tunnelers and their digging, they'll dig out one tile and then just stop. Not sure if it's worth putting up on the issues board or not.

  6. #16

    Default Re: Manipulating the AI keepers.

    Well, if you want it to work like normal dungeon keeper, portals are the way to go. I don't see a working alternative to simulate it using the script, as it really isn't a powerful script at all. On top of that you are very limited by the 48 if statements. If you look at the good campaign included, that's the way Lquiz went about it, using imps and portals. This was before KeeperFX even, you have the possibility to expand on that by including your own creature folder with attraction conditions for the heroes.

    If I were to design a heroes campaign, I would stay away from the standard dungeon keeper conventions, and look at it more like a hero invasion of dark keepers. So don't mine gold, but conquer treasuries. And don't attract heroes in a trickle at random through a portal, but by conquering hero doors have certain heroes (a group of low level heroes of a single type) drop in all at once to join you. Perhaps have a loop that states if you have too few of that creature type, get reinforcements of that type. This works different, but still very well I think.

    So something like this:
    Code:
    IF_ACTION_POINT(1,PLAYER0)
    	QUICK_INFORMATION(1,"Well done. With this hero door liberated, these barbarians will join you")
    	ADD_CREATURE_TO_LEVEL(PLAYER0,BARBARIAN,-1,5,1,0)
    	SET_TIMER(PLAYER0,TIMER1)
    ENDIF
    
    REM Every minute add a barbarian until the player is back up to 4 out of 5 barbarians.
    IF(PLAYER0,TIMER1 >= 1200)
    	IF(PLAYER0, BARBARIAN <= 3)
    		NEXT_COMMAND_REUSABLE
    		ADD_CREATURE_TO_LEVEL(PLAYER0,BARBARIAN,-1,1,1,0)
    	ENDIF
    	NEXT_COMMAND_REUSABLE
    	SET_TIMER(PLAYER0,TIMER1)
    ENDIF
    
    IF_AVAILABLE(PLAYER_GOOD,SORCEROR <= 0)
    	QUICK_INFORMATION(1,"Good, with the Warlocks defeated, we can get the help of our wizards and sorceresses.")
    	ADD_CREATURE_TO_LEVEL(PLAYER0,WIZARD,-2,2,1,0)
    	ADD_CREATURE_TO_LEVEL(PLAYER0,WITCH,-2,2,1,0)
    	SET_TIMER(PLAYER0,TIMER2)
    ENDIF
    
    REM Every three minutes add a Wizard and Witch until the player has 2 wizards and 3 witches.
    IF(PLAYER0,TIMER2 >= 3600)
    	IF(PLAYER0, WIZARD <= 2)
    		NEXT_COMMAND_REUSABLE
    		ADD_CREATURE_TO_LEVEL(PLAYER0,WIZARD,-2,1,1,0)
    	ENDIF
    	IF(PLAYER0, WITCH <= 3)
    		NEXT_COMMAND_REUSABLE
    		ADD_CREATURE_TO_LEVEL(PLAYER0,WITCH,-2,1,1,0)
    	ENDIF
    	NEXT_COMMAND_REUSABLE
    	SET_TIMER(PLAYER0,TIMER2)
    ENDIF
    If you run out of if statements, you can be a more efficient by using flags.

    I've tried a level with the tunneler, and indeed it is more useless then it used to be. It keeps going idle. You can report this.

Similar Threads

  1. The Twin Keepers
    By Hades in forum KeeperFX
    Replies: 13
    Last Post: September 21st, 2013, 18:35
  2. Keepers and traps
    By Hades in forum KeeperFX
    Replies: 4
    Last Post: December 24th, 2012, 01:44
  3. twin keepers map 1
    By Endrix in forum KeeperFX
    Replies: 1
    Last Post: March 20th, 2012, 15:54
  4. Ventrilo ABOUND KEEPERS
    By laudrano in forum General Discussion
    Replies: 9
    Last Post: February 23rd, 2011, 12:06
  5. Manipulating Creature.txt
    By Zhampir in forum Dungeon Keeper 1
    Replies: 1
    Last Post: April 8th, 2010, 07:48

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •