quest_assignment_gzk: type: assignment debug: false actions: on assignment: - trigger name:click state:true cooldown:1s - trigger name:proximity state:true radius:5 - trigger name:chat state:true cooldown:0.2s - adjust lookclose:true interact scripts: - quest_interact_gzk quest_interact_gzk: type: interact debug: false data: trait: none quest_id: gzk dialogue: proximity_enter: Hello! proximity_exit: Goodbye. exit_dialogue: Goodbye. quest_complete: - <&7>1.<&f> Do you have a job for me? - <&7>2.<&f> What's going on? - <&7>3. Leave quest_incomplete: - <&7>1.<&[yellow]> Do you have a job for me? - <&7>2.<&f> What's going on? - <&7>3. Leave quest_learn: 1: text: Yeah I have a job for you. wait: 1.5s 2: text: There's an undead problem lately, real nasty stuff. wait: 1.5s 3: text: Help us out and get rid of <&a>].data_key[info.kill_amount]> ].data_key[info.kill_type]>].translated_name>'s<&f> for me. wait: 2s quest_prompt: - <&7>1. <&a>Accept Quest - <&7>2. <&c>Decline Quest subscripts: init_dialogue: - define S <&nl>]> - define S <&nl>]> if:].is_more_than_or_equal_to[]>]> - narrate <[S]> speed: 0 steps: 1: proximity trigger: entry: script: - narrate format:npc_format click trigger: script: - stop if:]> - define qid gzk - narrate "What do you need?" format:npc_format - inject .subscripts.init_dialogue - zap 2 2: proximity trigger: exit: script: - disengage if:]> - narrate format:npc_format - zap 1 chat trigger: 1: trigger: /*/ hide trigger message: true script: - define qid gzk - choose : - case 1: - choose ]>: - case -1: - engage - foreach as:idx: - inject npc_dialogue_validity - narrate .text]> format:npc_format - wait .wait]> - disengage - inject npc_dialogue_validity - narrate <&e><[qid].proc[quests_displayname]><&r><&nl>].parsed_key[info.description]> format:quests_format - narrate <&nl>]> - zap 3 - stop - case 0: - if .kill_amount].if_null[0]> < 10: - narrate "The undead problem is still occuring, please finish the job." format:npc_format - wait 2s - inject npc_dialogue_validity - inject .subscripts.init_dialogue - stop - narrate "You did it, you saved us from the horrible creatures." format:npc_format - wait 2s - run quests_complete def.qid:<[qid]> - wait 2s - inject .subscripts.init_dialogue - case 1: - narrate "Unfortunately, I don't have any jobs for you." format:npc_format - default: - narrate "<&c>Missing message for stage: <&e>]>" - case 2: - narrate "blah blah, social dialogue." format:npc_format - wait 1s - inject npc_dialogue_validity - inject .subscripts.init_dialogue - case 3: - disengage if:]> - narrate format:npc_format - zap 1 - default: - narrate "I didn't understand what you mean by <&[yellow]><&f>." format:npc_format 3: proximity trigger: exit: script: - disengage if:]> - narrate format:npc_format - zap 1 chat trigger: 1: trigger: /*/ hide trigger message: true script: - define qid gzk - choose : - case 1: - narrate "Thank you." format:npc_format - wait 1s - run quests_start def.qid:<[qid]> - wait 1s - inject npc_dialogue_validity - narrate "Is there anything else that you need?" format:npc_format - inject .subscripts.init_dialogue - zap 2 - case 2: - narrate "No? I see." format:npc_format - wait 1s - inject npc_dialogue_validity - narrate "Is there anything else that you need?" format:npc_format - inject .subscripts.init_dialogue - zap 2 - default: - narrate "I didn't understand what you mean by <&[yellow]><&f>." format:npc_format quest_data_gzk: type: data debug: false info: type: kill kill_amount: 10 kill_type: zombie name: Generic Zombie Kill stage_complete: 1 # This is necessary because you can't in a data container. description: <&e>Kill <&a> zombies. quest_events_gzk: type: world debug: false events: on flagged:quests_active.gzk player kills zombie: - define qid gzk - flag quests.<[qid]>.kill_amount:++ - define kamt .kill_amount]> - if <[kamt]> <= 10: - define S "<&e><[qid].proc[quests_displayname]><&nl><&7><[kamt]> / 10 Zombies killed." - narrate <[S]> format:quests_format