Easy Questing Interface

Resource Easy Questing Interface

Marin

( ͡° ͜ʖ ͡°)
Member
Posts
285
#21
Sure. Here it is.

QUESTS = [

Code:
# 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),
]


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

Jephed

Trainer
Member
Posts
98
#22
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?)
 

Marin

( ͡° ͜ʖ ͡°)
Member
Posts
285
#23
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.
 

candyman

Rookie
Member
Posts
1
#26
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:

Marin

( ͡° ͜ʖ ͡°)
Member
Posts
285
#27
Sorry for the delay, but I've finally updated the map's download link. I updated it on a different platform, and forgot that I hadn't done so on Relic.
 

DerxwnaKapsyla

Dr. Nitpick von Shitpost
Member
Posts
37
#30
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.



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:
	  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:
	@sprites["bg0"].setBitmap("Graphics/Pictures/pokegearbg")
Replace it with this, at least for the time being:
Code:
	@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..

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

ArchyArc

Lead Developer of Pokemon Sacred Johto
Member
Posts
14
#31
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


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:

Marin

( ͡° ͜ʖ ͡°)
Member
Posts
285
#32
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


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
Posts
14
#33
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

Trainer
Member
Posts
79
#34
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
 
Top