[lua] [yaml] Implement Get the Picture in IF - #11237
Open
Skold177 wants to merge 1 commit into
Open
Conversation
Skold177
force-pushed
the
Get-the-Picture
branch
3 times, most recently
from
August 24, 2026 05:39
99cf7d8 to
16cd373
Compare
Skold177
marked this pull request as draft
August 24, 2026 05:44
Skold177
force-pushed
the
Get-the-Picture
branch
2 times, most recently
from
August 24, 2026 05:49
8dd1dd8 to
2ac1070
Compare
Skold177
marked this pull request as ready for review
August 24, 2026 05:52
Skold177
force-pushed
the
Get-the-Picture
branch
5 times, most recently
from
August 24, 2026 15:20
de27f7a to
689dfbb
Compare
Frankie-hz
reviewed
Aug 31, 2026
Comment on lines
+530
to
+542
| local waiting = quest:getVar(player, 'Wait') == 1 or quest:getMustZone(player) | ||
|
|
||
| if waiting then | ||
| return quest:event(559) | ||
| elseif | ||
| quest:getVar(player, 'GoldSpot') > 0 or | ||
| quest:getVar(player, 'GoldFound') == 1 | ||
| then | ||
| return quest:event(560) | ||
| else | ||
| return quest:event(559) | ||
| end | ||
| end, |
Contributor
There was a problem hiding this comment.
You have two conditions triggering the same event.
Correct me if I'm wrong here (I hate quests) but maybe this instead?
onTrigger = function(player, npc)
if
quest:getVar(player, 'Wait') == 0 and
not quest:getMustZone(player) and
(quest:getVar(player, 'GoldSpot') > 0 or quest:getVar(player, 'GoldFound') == 1)
then
return quest:event(560)
end
return quest:event(559)
end,
Contributor
Author
There was a problem hiding this comment.
Yup, this works, swapped to it
Frankie-hz
reviewed
Aug 31, 2026
| end | ||
| end | ||
|
|
||
| local goldLocation = goldLocations[math.random(1, #goldLocations)] |
Contributor
There was a problem hiding this comment.
nitpick: local goldLocation = utils.randomEntry(goldLocations)
Frankie-hz
reviewed
Aug 31, 2026
| { | ||
| [561] = function(player, csid, option, npc) | ||
| quest:setVar(player, 'GoldFound', 0) | ||
| quest:setVar(player, 'Option', 1) |
Contributor
There was a problem hiding this comment.
Setting var Option but I don't see a getVar anywhere
Contributor
Author
There was a problem hiding this comment.
Reworked the post quest section, now uses 'Post' var which cleans once the last event is watched
Frankie-hz
suggested changes
Aug 31, 2026
| end | ||
| end | ||
|
|
||
| return picture.validWeather == nil or utils.contains(player:getWeather(true), picture.validWeather) |
Contributor
There was a problem hiding this comment.
Avoid using == nil checks you can just do not:
return not picture.validWeather or utils.contains(player:getWeather(true), picture.validWeather)
| local picture = getCurrentPictureRequest(player) | ||
|
|
||
| if | ||
| picture == nil or |
| end | ||
| end | ||
|
|
||
| if lightSource == nil then |
|
|
||
| if | ||
| picture == nil or | ||
| picture.acceptedItems[lightSource] == nil or |
| -- A photo is on the recorder, Balakaf checks it and decides if it is a good photo. | ||
| if photoChoice > 0 then | ||
| local lightSource = pictureRequested.acceptedItems[quest:getVar(player, 'LightSource')] | ||
| if lightSource == nil then |
| if | ||
| option == utils.EVENT_CANCELLED_OPTION or | ||
| choiceSelected == 0 or | ||
| lightSourceUsed == nil |
Skold177
force-pushed
the
Get-the-Picture
branch
2 times, most recently
from
August 31, 2026 23:32
6466dd5 to
43ccb8b
Compare
Implements "Get the Picture" in IF with captures from Siknoz Co-Authored-By: siknoz <78240569+siknoz@users.noreply.github.com>
Skold177
force-pushed
the
Get-the-Picture
branch
from
September 1, 2026 00:35
43ccb8b to
a4195c8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I affirm:
What does this pull request do?
Implements the quest "Get the Picture" in IF
This is a super long quest chain that takes about 10 real-life days to complete (because of JST Midnight waits in between each step)
The player is offered a Image Recorder and instructed to take a picture at various locations by trading a light crystal or light cluster depending on which area it is. Each location has special conditions that must be met before the trade is accepted, some are weather, some are time, and Mamook requires both (if you count clear weather)
Once you trade the crystal you will be offered 3 different vistas in the event you can choose for your picture, there is only 1 correct vista per location. (Denoted in the table as correctChoice)
Players can also trade a Aurora Crystals at some locations for a joke cutscene where the picture is evaluated but your name appears in the corner - and they can also trade Light Clusters after they complete picture number 3 where they will get a cutscene that the picture is completely white if the area does not require a Light Cluster. Areas that require a light cluster will trigger an event where the picture is too dark if a light crystal is used.
After taking a picture, you bring the image recorder back to Balakaf, if the picture is good he will thank you and reward you with an Imperial Silver Piece - if the picture is bad (wrong vista chosen, wrong crystal/cluster used) you will get the appropriate failure event and he will tell you that he needs a Ahriman Lens to repair the camera - after trading the Ahriman Lens a JST midnight starts until it's repaired.
After completing one picture, you must wait a JST Midnight to get the next request
After taking all 8 pictures the quest is completed which begins a post-quest section where after waiting a JST midnight you are told about something gold they dropped at one of the locations. After ANOTHER JST Midnight, you can pick up a Goldpiece at a random picture location (minus Mount Zhayolm) - turning in the Goldpiece finishes up the post-quest section and allows you to flag the next quest.
Captures
Quests - Toau - Get The Picture Ending Part 2
https://youtu.be/nOnwkO-oh-c
https://1drv.ms/u/c/87e665e10555c452/IQA0CtvBBcVNTauNHWXbdNv3AaoojMtOxe4zecUMbUDtxd4?e=4IHmNc
Quests - Toau - Get The Picture Ending Cs + Optional Gold Piece
https://youtu.be/xUo4A0TtPnA
https://1drv.ms/u/c/87e665e10555c452/IQCONSjj81VHR66pc-Z_xYZjAQu2CrqAadtodEVpdF3RZCA?e=W7Z3a9
Quests - Toau - Get The Picture Part 8 Caedarva Correct Picture
https://youtu.be/fERFxdowHKk
https://1drv.ms/u/c/87e665e10555c452/IQDU1MKmyr3pQad4LUQ54YP6AZXXYACmw4iR3Erp8pXtoc4?e=Za26X0
Quests - Toau - Get The Picture Part 8 Caedarva Mire Failure (Also confirmed 04:00 at least for end time)
https://youtu.be/r0zbBtG48p0
https://1drv.ms/u/c/87e665e10555c452/IQAvnJ_zf4X7TJL8EeGxrqwFAYdd4PKgCrCO29UC3SpMPe8?e=xPZQKO
Quests - Toau - Get The Picture Part 7 Mamook
https://youtu.be/YD4KD9FIhfk
https://1drv.ms/u/c/87e665e10555c452/IQBgfbTMRY_yTa5WH-qGEn_cAUrEPa3LG-2WdF7dvpKlI9g?e=fmXr9T
Quests - Toau - Get the Picture Part 6 Wajaom Woodlands
https://youtu.be/-gMxR6Ndg1Q
https://1drv.ms/u/c/87e665e10555c452/IQBvvrxNJKnuQY0QQU9bR5jJAciR67mNrRMtW0YJxfC0rsw?e=KWd1AB
Quests - Toau - Get The Picture Part 4 Mt Zhayolm Correct Picture
https://youtu.be/tAAMnpnRigk
https://1drv.ms/u/c/87e665e10555c452/IQASnjQ9qnD-RJq3E9E90MeFATv4OhxAmLBY5TtYDkDzBzQ?e=UeWPw9
Quests - Toau - Get The Picture Part 5 Halvung
https://youtu.be/lVY91idMF0o
https://1drv.ms/u/c/87e665e10555c452/IQDRx4i4KCSTQKXiMBOL4n8vAWUMREfSpDpsmJqgLX8k8WE?e=iBlMH1
Quests - Toau - Get The Picture Part 4 Mt Zhayolm Incorrect Picture
https://youtu.be/mFK-PqZTofo
https://1drv.ms/u/c/87e665e10555c452/IQAkJI8VxvHhTZFyrKqZa9apAcQUoFoeWeg4X2kfsqlhDKU?e=tpOkYZ
Quests - Toau - Get The Picture Part 4 Mt Zhayolm Test Incorrect Crystal
https://youtu.be/DxWIDXqE95Q
https://1drv.ms/u/c/87e665e10555c452/IQDkM1F53H69RbwUaiXVdO5qAV7639_8t9NJRvNf4Z50-1o?e=BXqAPh
Quests - Toau - Get The Picture Part 3 Arrapago Reef
https://youtu.be/ZQ62BEbWES4
https://1drv.ms/u/c/87e665e10555c452/IQDtZQbBF-ndQ7SgpFolzJLCAcqk2hwA8pUzjwQCjfS44kw?e=gU6gCq
Quests - Toau - Get The Picture Part 2 Arrapago Reef
https://youtu.be/zVpVkipegBM
https://1drv.ms/u/c/87e665e10555c452/IQAQrdFQDMRaQLRoMY7IRxt6AcYEScBv9JPKETGQa5ZpC5E?e=l9dJqz
Quests - Toau - Get The Picture Part 1 Wajaom
https://youtu.be/5IS1gTaF0xQ
https://1drv.ms/u/c/87e665e10555c452/IQCMP0RdXPwfTZ4j4wwzvNm3AbcIXXNXGqS2ryuf3JonAhA?e=vfLk9s
Thanks to @siknoz for the captures!
Steps to test these changes
!pos 25.505 -5.999 126.478 50 - Pick up the quest from Balakaf
!pos -450.597 -26.218 414.071 51 - Check the QM, it should read " takes in the surrounding scenery. ... The view is breathtaking"
Trade the QM a Light Crystal during Cloudy Weather (Can use !setweather)
Get the event where it shows you 3 vistas to pick from, choose option 1
!pos 25.505 -5.999 126.478 50 - Turn in the picture, get a Silver Piece
You can reset your variables with :
!setquestvar 6 4 Wait 0
!setplayervar Quest[6][4]mustZone 0
Follow the same remaining pattern for the other 7 picture requests.
-- Arrapago qm5 | Picture 2 | Light Crystal | Scene 2 | Time: Any Weather: Snow | !pos 326.021 -0.711 244.903 54
-- Arrapago qm5 | Picture 3 | Light Cluster | Scene 2 | Time: Any Weather: Snow | !pos 326.021 -0.711 244.903 54
-- Zhayolm qm11 | Picture 4 | Light Crystal | Scene 3 | Time: 16:00-20:00 Weather: Any | !pos -608.573 -10.474 -183.494 61
-- Halvung qm5 | Picture 5 | Light Crystal | Scene 1 | Time: 4:00-10:00 Weather: Any | !pos 103.016 13.999 20.867 62
-- Aydeewa qm4 | Picture 6 | Light Cluster | Scene 3 | Time: Any Weather: Wind | !pos -376.456 13.001 -424.754 68
-- Mamook qm3 | Picture 7 | Light Crystal | Scene 3 | Time: 7:00-11:00 Weather: Clear | !pos -184.948 12.547 -184.718 65
-- Caedarva qm5 | Picture 8 | Light Cluster | Scene 1 | Time: 20:00-4:00 Weather: Any | !pos -389.084 6.343 -597.228 79
Reset your wait again, get the event for the gold piece
Skip the goldpiece wait with !setquestvar 6 4 GoldWait 0
Go find the gold piece at one of the previous picture locations (Minus Mount Zhayolm)
Turn it in for the final event