• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
Easy Questing Interface

Resource Easy Questing Interface 1.0

Sure. Here it is.

QUESTS = [

Code:
Expand Collapse Copy
# Make sure you take into account all the information given at the top of this script.
# You don't have to give the Quest a color - :SUPERLIGHTBLUE in this example. It will default to White.
 
# This is the format they have to follow (every word that has a '=' after it is OPTIONAL)
# Quest.new(id, name, desc, npc, sprite, location, color = :WHITE, time = Time.now, completed = false),
 
	Quest.new(0, "Floral Gift", "This is sidequest two", "Mr. Vainma", "trchar039", "Furawari Cemetery", :LIGHTRED),
	Quest.new(1, "Under the house", "This is sidequest one", "Schoolboy Kevin", "trchar039", "New-Unawa City", :LIGHTRED),
]


23u7xpu.jpg
Were you trying to switch back up there or did it occur when you moved down initially?
 

Jephed

Trainer
Member
Joined
Apr 1, 2017
Posts
70
Were you trying to switch back up there or did it occur when you moved down initially?

The error report shows up when I scroll up from the second quest to the first one.
I gave it some thought myself and tested out some things.

This error only comes up when you have multiple quests in your questlist and only when you move back to quest number 1.
Regular up and down scrolling between quests isn't a problem as long as quest number 1 remains untouched. ( I tested this with three quests and scrolling between Quest 2 and 3 wasn't an issue. The error shows itself when you move down from quest 1 to another quest and then immediately try to scroll back to quest 1.

EDIT: I also noticed that as soon as you return from one of the quest pages the cursor always returns to quest one, instead of the quest you chose. (Perhaps this might have something to do with it?)
 
The error report shows up when I scroll up from the second quest to the first one.
I gave it some thought myself and tested out some things.

This error only comes up when you have multiple quests in your questlist and only when you move back to quest number 1.
Regular up and down scrolling between quests isn't a problem as long as quest number 1 remains untouched. ( I tested this with three quests and scrolling between Quest 2 and 3 wasn't an issue. The error shows itself when you move down from quest 1 to another quest and then immediately try to scroll back to quest 1.

EDIT: I also noticed that as soon as you return from one of the quest pages the cursor always returns to quest one, instead of the quest you chose. (Perhaps this might have something to do with it?)
Your edit was actually intended. And you've given me good insight on where the error is. I'll check when I have time somewhere late tomorrow.
 

MadDeodorant

Insert internet reference here
Member
Joined
Apr 1, 2017
Posts
52
Yo, Dropbox link for the test map wasn't found. Is there any way to have access to it?
 

candyman

Rookie
Member
Joined
Jul 31, 2017
Posts
1
Hi, I really liked your Quest Interface functionality.

I did extend it a little bit. Maybe you find it useful.

Script

I added a "progress" and "experience" attribute.

I used "progress" simply as a string, which can be modified via events e.g.

I also added the "pbGainQuestExperience" method to add experience to all party-members, which I executed via events. This method adds the experience level by level like when ending a battle and executes evolving, when a pokemon is able to.

Please forgive me for translating everything into german :D

However I just tested it in combination with Elite Battle System's Evolution Screen. I hope it's also working without it. I just started a few days ago working with RPG Maker XP and Ruby, I have to figure some things out yet. Maybe some parts of the script could be written much shorter :)

Edit: Oh, and yeah, I didn't finish it to show the EV changes on level ups... That's something on my todo-list...
 
Last edited:

DerxwnaKapsyla

Overseer of the Abyss
Member
Joined
Apr 24, 2017
Posts
152
I managed to get it working with Version 17. I haven't done extensive testing but, it seems to work. There were only a few changes I had to make to get it compatible.

tpNIZQp.png


This segment here had to have a few small changes. In Version 17, they removed the "@" from things in the Pokegear. So, you should do the same here for this. "@cmdQuestlog=-1" becomes just "cmdQuestlog=-1". The if statement also was slightly changed as of Version 17, it now would look like this:
Code:
Expand Collapse Copy
	  elsif cmdQuestlog>=0 && cmd==cmdQuestlog
		pbPlayDecisionSE
		pbQuestlog

There is one other important change you need to make. Because Pokegear graphics were moved to their own, unique folder in Version 17, the UI has no background as a result on the first screen. You'll want to look for the following line:
Code:
Expand Collapse Copy
	@sprites["bg0"].setBitmap("Graphics/Pictures/pokegearbg")
Replace it with this, at least for the time being:
Code:
Expand Collapse Copy
	@sprites["bg0"].setBitmap("Graphics/Pictures/Pokegear/bg")
That should be everything to get it working? Again, I didn't do extensive testing beyond this point. I plan to fiddle a bit more later on, but I would assume it all still works.

Edit: Not sure if this is a quirk of the system, or perhaps an issue when porting to V17, but..
5oSoISN.png

It looks like the words on the far right are clipping the border.
 
Last edited:

ArchyArc

Lead Developer of Pokemon Sacred Johto
Member
Joined
May 10, 2017
Posts
38
hey marin, had used the quest system when i was working on my game but after converting it over to my new pc (im still on 16.2 rn) there seems to be an error, that the quests script messed with sprite resizer? i dunno, just if i delete the quests script that error goes away (despite the tons of ones freaking out that the quest script is gone but thats understandable) any ideas? thanks for any help with this

2F9bHIWxTe6UXM49aco2Ug.png

Edit: i tried redownloading the data folder i had and replacing it but it still happens (yet when i freshly downloaded it after fixing the pbs' the game ran)
 
Last edited:
hey marin, had used the quest system when i was working on my game but after converting it over to my new pc (im still on 16.2 rn) there seems to be an error, that the quests script messed with sprite resizer? i dunno, just if i delete the quests script that error goes away (despite the tons of ones freaking out that the quest script is gone but thats understandable) any ideas? thanks for any help with this

2F9bHIWxTe6UXM49aco2Ug.png

Edit: i tried redownloading the data folder i had and replacing it but it still happens (yet when i freshly downloaded it after fixing the pbs' the game ran)
Restart your save file. I think it has to do with the screensize you're playing the game on (which doesn't have anything to do with this resource, fyi)
 

ArchyArc

Lead Developer of Pokemon Sacred Johto
Member
Joined
May 10, 2017
Posts
38
oh okay, thank you, was having a semi panic attack about it! also that was a quick reply xP let me check if that fixes it...

right yea that's all fixed, thank you for making me realise what was wrong, ^^
 

Marina

Cooltrainer
Member
Joined
Mar 10, 2018
Posts
125
I'm trying to implement this into the PScreen_PauseMenu
but I'm having a tough time to get it working....
I get this error am using v16.2:

---------------------------
Pokemon Essentials
---------------------------
Script 'PScreen_PauseMenu' line 217: SyntaxError occurred.
---------------------------
OK
---------------------------

and on line 217 you read:
elsif cmdQuit>=0 && command==cmdQuit

the whole Pause Menu script:
class PokemonMenu_Scene
def pbShowCommands(commands)
ret=-1
cmdwindow=@sprites["cmdwindow"]
cmdwindow.viewport=@viewport
cmdwindow.index=$PokemonTemp.menuLastChoice
cmdwindow.resizeToFit(commands)
cmdwindow.commands=commands
cmdwindow.x=Graphics.width-cmdwindow.width
cmdwindow.y=0
cmdwindow.visible=true
loop do
cmdwindow.update
Graphics.update
Input.update
pbUpdateSceneMap
if Input.trigger?(Input::B)
ret=-1
break
end
if Input.trigger?(Input::C)
ret=cmdwindow.index
$PokemonTemp.menuLastChoice=ret
break
end
end
return ret
end
def pbShowInfo(text)
@sprites["infowindow"].resizeToFit(text,Graphics.height)
@sprites["infowindow"].text=text
@sprites["infowindow"].visible=true
@infostate=true
end
def pbShowHelp(text)
@sprites["helpwindow"].resizeToFit(text,Graphics.height)
@sprites["helpwindow"].text=text
@sprites["helpwindow"].visible=true
@helpstate=true
pbBottomLeft(@sprites["helpwindow"])
end
def pbStartScene
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
@sprites={}
@sprites["cmdwindow"]=Window_CommandPokemon.new([])
@sprites["infowindow"]=Window_UnformattedTextPokemon.newWithSize("",0,0,32,32,@viewport)
@sprites["infowindow"].visible=false
@sprites["helpwindow"]=Window_UnformattedTextPokemon.newWithSize("",0,0,32,32,@viewport)
@sprites["helpwindow"].visible=false
@sprites["cmdwindow"].visible=false
@infostate=false
@helpstate=false
pbSEPlay("menu")
end
def pbHideMenu
@sprites["cmdwindow"].visible=false
@sprites["infowindow"].visible=false
@sprites["helpwindow"].visible=false
end
def pbShowMenu
@sprites["cmdwindow"].visible=true
@sprites["infowindow"].visible=@infostate
@sprites["helpwindow"].visible=@helpstate
end
def pbEndScene
pbDisposeSpriteHash(@sprites)
@viewport.dispose
end
def pbRefresh
end
end

class PokemonMenu
def initialize(scene)
@scene=scene
end
def pbShowMenu
@scene.pbRefresh
@scene.pbShowMenu
end
def pbStartPokemonMenu
@scene.pbStartScene
endscene=true
pbSetViableDexes
commands=[]
cmdPokedex = -1
cmdPokemon = -1
cmdBag = -1
cmdTrainer = -1
cmdQuestlog = -1
cmdSave = -1
cmdOption = -1
cmdPokegear = -1
cmdDebug = -1
cmdQuit = -1
cmdEndGame = -1
if !$Trainer
if $DEBUG
Kernel.pbMessage(_INTL("The player trainer was not defined, so the menu can't be displayed."))
Kernel.pbMessage(_INTL("Please see the documentation to learn how to set up the trainer player."))
end
return
end
commands[cmdPokedex=commands.length]=_INTL("Pokédex") if $Trainer.pokedex && $PokemonGlobal.pokedexViable.length>0
commands[cmdPokemon=commands.length]=_INTL("Pokémon") if $Trainer.party.length>0
commands[cmdBag=commands.length]=_INTL("Bag") if !pbInBugContest?
commands[cmdPokegear=commands.length]=_INTL("Holocaster") if $Trainer.pokegear
commands[cmdTrainer=commands.length]=$Trainer.name
commands[cmdQuestlog=commands.length]=_INTL("Questlog")
if pbInSafari?
if SAFARISTEPS<=0
@scene.pbShowInfo(_INTL("Balls: {1}",pbSafariState.ballcount))
else
@scene.pbShowInfo(_INTL("Steps: {1}/{2}\nBalls: {3}",pbSafariState.steps,SAFARISTEPS,pbSafariState.ballcount))
end
commands[cmdQuit=commands.length]=_INTL("Quit")
elsif pbInBugContest?
if pbBugContestState.lastPokemon
@scene.pbShowInfo(_INTL("Caught: {1}\nLevel: {2}\nBalls: {3}",
PBSpecies.getName(pbBugContestState.lastPokemon.species),
pbBugContestState.lastPokemon.level,
pbBugContestState.ballcount))
else
@scene.pbShowInfo(_INTL("Caught: None\nBalls: {1}",pbBugContestState.ballcount))
end
commands[cmdQuit=commands.length]=_INTL("Quit Contest")
else
commands[cmdSave=commands.length]=_INTL("Save") if !$game_system || !$game_system.save_disabled
end
commands[cmdOption=commands.length]=_INTL("Options")
commands[cmdDebug=commands.length]=_INTL("Debug") if $DEBUG
commands[cmdEndGame=commands.length]=_INTL("Quit Game")
loop do
command=@scene.pbShowCommands(commands)
if cmdPokedex>=0 && command==cmdPokedex
if DEXDEPENDSONLOCATION
pbFadeOutIn(99999) {
scene=PokemonPokedexScene.new
screen=PokemonPokedex.new(scene)
screen.pbStartScreen
@scene.pbRefresh
}
else
if $PokemonGlobal.pokedexViable.length==1
$PokemonGlobal.pokedexDex=$PokemonGlobal.pokedexViable[0]
$PokemonGlobal.pokedexDex=-1 if $PokemonGlobal.pokedexDex==$PokemonGlobal.pokedexUnlocked.length-1
pbFadeOutIn(99999) {
scene=PokemonPokedexScene.new
screen=PokemonPokedex.new(scene)
screen.pbStartScreen
@scene.pbRefresh
}
else
pbLoadRpgxpScene(Scene_PokedexMenu.new)
end
end
elsif cmdPokegear>=0 && command==cmdPokegear
pbLoadRpgxpScene(Scene_Pokegear.new)
elsif cmdPokemon>=0 && command==cmdPokemon
sscene=PokemonScreen_Scene.new
sscreen=PokemonScreen.new(sscene,$Trainer.party)
hiddenmove=nil
pbFadeOutIn(99999) {
hiddenmove=sscreen.pbPokemonScreen
if hiddenmove
@scene.pbEndScene
else
@scene.pbRefresh
end
}
if hiddenmove
Kernel.pbUseHiddenMove(hiddenmove[0],hiddenmove[1])
return
end
elsif cmdBag>=0 && command==cmdBag
item=0
scene=PokemonBag_Scene.new
screen=PokemonBagScreen.new(scene,$PokemonBag)
pbFadeOutIn(99999) {
item=screen.pbStartScreen
if item>0
@scene.pbEndScene
else
@scene.pbRefresh
end
}
if item>0
Kernel.pbUseKeyItemInField(item)
return
end
elsif cmdTrainer>=0 && command==cmdTrainer
scene=PokemonTrainerCardScene.new
screen=PokemonTrainerCard.new(scene)
pbFadeOutIn(99999) {
screen.pbStartScreen
@scene.pbRefresh
}
##########################################################
elsif cmdQuestlog>=0 && command==cmdQuestlog
@scene.pbQuestlog
else
pbShowMenu
end
##############################################################
elsif cmdQuit>=0 && command==cmdQuit
@scene.pbHideMenu
if pbInSafari?
if Kernel.pbConfirmMessage(_INTL("Would you like to leave the Safari Game right now?"))
@scene.pbEndScene
pbSafariState.decision=1
pbSafariState.pbGoToStart
return
else
pbShowMenu
end
else
if Kernel.pbConfirmMessage(_INTL("Would you like to end the Contest now?"))
@scene.pbEndScene
pbBugContestState.pbStartJudging
return
else
pbShowMenu
end
end
elsif cmdSave>=0 && command==cmdSave
@scene.pbHideMenu
scene=PokemonSaveScene.new
screen=PokemonSave.new(scene)
if screen.pbSaveScreen
@scene.pbEndScene
endscene=false
break
else
pbShowMenu
end
elsif cmdDebug>=0 && command==cmdDebug
pbFadeOutIn(99999) {
pbDebugMenu
@scene.pbRefresh
}
elsif cmdOption>=0 && command==cmdOption
scene=PokemonOptionScene.new
screen=PokemonOption.new(scene)
pbFadeOutIn(99999) {
screen.pbStartScreen
pbUpdateSceneMap
@scene.pbRefresh
}
elsif cmdEndGame>=0 && command==cmdEndGame
@scene.pbHideMenu
if Kernel.pbConfirmMessage(_INTL("Are you sure you want to quit the game?"))
scene=PokemonSaveScene.new
screen=PokemonSave.new(scene)
if screen.pbSaveScreen
@scene.pbEndScene
end
@scene.pbEndScene
$scene=nil
return
else
pbShowMenu
end
else
break
end
end
@scene.pbEndScene if endscene
end
end
 

DjayDamageLord

Rookie
Member
Joined
Jun 6, 2019
Posts
8
I have no idea how to add this. I have been using the instructions here at: https://www.pokecommunity.com/showthread.php?t=301310
I keep on receiving the following error:
[Pokémon Essentials version 17.1]

Exception: NoMethodError

Message: undefined method `[]' for nil:NilClass

PScreen_Pokegear:126:in `pbStartScreen'

Radial Menu:214:in `selected'

Radial Menu:211:in `pbFadeOutIn'

Radial Menu:211:in `selected'

Radial Menu:444:in `update'

Radial Menu:560:in `update'

Radial Menu:547:in `loop'

Radial Menu:569:in `update'

Radial Menu:608:in `pbStartPokemonMenu'

Scene_Map:127:in `call_menu'


Can you be more specific as to where to place commands[@cmdQuestlog=commands.length]=_INTL("Questlog") and
if @cmdQuestlog>=0 && @sprites["command_window"].index==@cmdQuestlog
pbQuestlog
end
because I have placed them "underneath" just as you said but it hasn't worked at all.
 

-FL-

Pokémon Island Creator
Member
Joined
Aug 28, 2022
Posts
306
This is apparently working on v18.1, but there is a small text width issue on some cases (screen attached). To solve this issue, in the script, change both 318 to 310 (on drawTextExMulti calls).
 

Attachments

  • Marin Quest Issue.png
    Marin Quest Issue.png
    3.1 KB · Views: 88
Back
Top