I modified your example so the npc follows two routes, one for each agenda.
[code]#charset “us-ascii”
#include <adv3.h>
#include <en_us.h>
versionInfo: GameID
IFID = ‘64633ec6-ae02-509a-26a4-b76b69540da8’
name = ‘Your New Game Title’
byline = ‘by Your Name’
htmlByline = ‘by
Your Name’
version = ‘1’
authorEmail = ‘Your Name your-email@host.com’
desc = ‘Put a brief “blurb” about your game here.’
htmlDesc = ‘Put a brief “blurb” about your game here.’
;
gameMain: GameMainDef
initialPlayerChar = me
;
houseBarrier : TravelBarrier
canTravelerPass(traveler) {return housePass.isIn(traveler); }
explainTravelBarrier(traveler) { "You can’t go into other peoples houses. "; }
;
roomZero: Room ‘room zero’
east = roomOne
;
roomOne : Room ‘room one’
east = roomTwo
;
- peters : Person ‘sir richard peters’ ‘peters’
isHim = true
isProperName = true
wander1 = true
wander2 = nil
;
++ housePass : Component
;
// first peters route from edenbridge to mod, modify rooms as required
// second peters will be the same but a different route to clanricade gardens
++ petersWanderAgenda1: AgendaItem
isReady = peters.wander1
initiallyActive = true
wanderDirection = 1
petersRoute1 = 1
routeList = [roomOne, roomTwo, roomThree, roomFour, roomFive, roomSix, roomSeven]
invokeItem()
{
local idx = routeList.indexOf(peters.getOutermostRoom);
if (idx == 1) wanderDirection = 1;
else if (idx == 7) wanderDirection = -1;
idx = idx + wanderDirection;
local dest = routeList[idx];
peters.scriptedTravelTo(dest);
petersRoute1 ++;
if(petersRoute1 == 13)
{
petersRoute1 = 1;
peters.wander1 = nil;
peters.wander2 = true;
}
}
;
++ petersWanderAgenda2: AgendaItem
isReady = peters.wander2
initiallyActive = true
wanderDirection = 1
petersRoute2 = 1
routeList = [roomOne, roomTwo, roomThree, roomFour, roomFive, roomSix, roomSeven, roomEight, roomNine, roomTen]
invokeItem()
{
if(peters.isIn(roomOne)) newsPaper.moveInto(peters);
local idx = routeList.indexOf(peters.getOutermostRoom);
if (idx == 1) wanderDirection = 1;
else if (idx == 10) wanderDirection = -1;
idx = idx + wanderDirection;
local dest = routeList[idx];
peters.scriptedTravelTo(dest);
petersRoute2 ++;
if(petersRoute2 == 19)
{
petersRoute2 = 1;
peters.wander1 = true;
peters.wander2 = nil;
}
}
;
roomTwo : Room ‘room two’
west = roomOne
east = roomThree
;
roomThree : Room ‘room three’
east = roomFour
west = roomTwo
;
roomFour : Room ‘room four’
west : OneWayRoomConnector { -> roomThree travelBarrier = houseBarrier }
east = roomFive
;
roomFive : Room ‘room five’
west = roomFour
east = roomSix
;
roomSix : Room ‘room six’
east = roomSeven
west = roomFive
;
roomSeven : Room ‘room seven’
west = roomSix
east = roomEight
;
roomEight : Room ‘room eight’
west = roomSeven
east = roomNine
;
roomNine : Room ‘room nin’
east = roomTen
west = roomEight
;
roomTen : Room ‘room ten’
west = roomNine
;
[/code]