You are on page 1of 1

// patrolnpc.

txt// Creature attacks anything it hates nearby, and spends the rest
of its time patrolling a path.// Once it has won, it returns to its home.// Memory
Cells: // Cell 0 - Number of path to follow.// Cell 1 - If 0, just loops around
path. If 1, walks to end of path, waits a little, and returns home.// If 2,
goes to end of path and just stops.// Cell 2 - Node if talked to. 0 means no
conversation// Cell 3,4 - Stuff done flag. If both 0, nothing. Otherwise when
this is killed, set to 1.begincreaturescript; variables; short i,target; body;
beginstate INIT_STATE; break; beginstate DEAD_STATE; if ((get_memory_cell(3) != 0)
|| (get_memory_cell(4) != 0))
inc_flag(get_memory_cell(3),get_memory_cell(4),1); break; beginstate
START_STATE; if (get_foe_target(ME,TARGET_RANGE,0)) { do_attack();
set_state(3); } if (who_shot_me() >= 0) {
set_foe_target(ME,who_shot_me()); do_attack();
set_state(3); } if (get_memory_cell(1) == 0)
follow_path(ME,get_memory_cell(0),1); else { if
((my_dist_from_start() >= 2) && (get_memory_cell(1) != 2)) {
if (get_ran(1,1,100) < 40) return_to_start(ME,1);
} if ((get_ran(1,1,100) < 15) ||
(get_memory_cell(1) == 2)) {
follow_path(ME,get_memory_cell(0),0); set_state(4);
} } if (am_i_doing_action() == FALSE)
end_combat_turn(); break; beginstate 3; // attacking if (target_ok() ==
FALSE) set_state(START_STATE); do_attack(); break; beginstate 4; // patrol
if (get_foe_target(ME,TARGET_RANGE,0)) { do_attack();
set_state(3); } if (who_shot_me() >= 0) {
set_foe_target(ME,who_shot_me()); do_attack();
set_state(3); } if (follow_path(ME,get_memory_cell(0),0) ==
TRUE) set_state(START_STATE); break; beginstate TALKING_STATE; if
(get_memory_cell(2) == 0) { print_str("Talking: It doesn't respond.");
} else begin_talk_mode(get_memory_cell(2)); break;

You might also like