Heloes. Here I like to post a Ruby script i made. I do not claim is perfect, but in my playtest it seems to do the job. I don't know if there is similar script already made. In the past I needed one like this, but didn't found.
So now, playing with Ruby, decided to make one.
The Script:
Spoiler Code:
- =begin
- Script Name - Variable Description V1.0
- Author: GGZiron
- Terms to use: This script is simple, that's why crediting
- me is only optional. Feel free to use both for comercial and
- non-comercial projects.
- Version: 1.0 That is initial version, and possibly, it's final. But who knows.
- Version 1.1 Date: 1.June.2016
- Changelog: Fixing this monster of script I once made.
- The initial script not only were written horribly, but it also wasn't doing
- what I said it do. In initial version it were only displaying the new
- description in the status window, but whenever something else calls
- the actor's description, it would return the default value.
- With this fix, whatever scene calls actor.description, will recieve the desired
- one(unless something else overwrite the description method in actor's class).
- Also, in initial version the way to change the description I provided was
- not only unfriendly, it was bad. Here I tried to work up better and more friendly
- options
- Script summary: It gives the developers the option to change the actor's
- description midgame. None of the new assigned description is transfered
- to the save file. They are part of this script, and are linked to key value,
- which on their turn, are linked to Game Variables (the variables we use from
- the Event editor)
- This is my first script to publish, and second to make.
- Possible compability issues - I overwrite the draw_description.
- If there is other script that does this, probably it won't go well with mine.
- =end
- module GGZiron #do not touch this
- module Var_des #do not touch this
-
- DESCRIPTION_LIST= { # DO NOT TOUCH THIS!
-
- #==========================Settings==================================
- #You can edit the initial entries, and add more bellow, following the
- #syntax patern.
-
- 1 =>
- "Isabelle regained her memory!
- God save us all!!!",
- 2 =>
- "Write something here",
- 3 =>
- "And here too!",
- #Add more descriptions entries here.
- } # Do not touch this, and do not add more description entries bellow this line!
- #====================End of Settings==================================
- =begin
- Replace actor_id with the actual ID of the actor, which you can
- check at the database.
- Replace the description_key_value with the key value from the
- description list.
- =end
- GAME_VARIABLES = { # DO NOT TOUCH THIS!
-
-
- 1 => 101, #Variable 101 holds the key value for actor 1.
- 2 => 102, #Variable 102 holds the key value for actor 2.
- 3 => 103, #Variable 103 holds the key value for actor 3.
- #Edit the existing entries if you need, and add more entries bellow
- } # Do not touch this, and do not add more entries bellow this line!!
- # Once setting which variable will represent which actor's variable description
- # key, you can change their values from the event editor.
- # For example, if variable 9 is set to hold the key for actor here, in the
- # settings, all you need to do is change the value of variable 1
- # to be equal to 1,
- # and the displayed description for Actor 9 will be the first entry from
- # the variable description's, that are set above.
- # If the variable value is 0, or the displayed description will be the
- # default one. If it links to incorect entry, it description method will
- # return the string "Incorrect description entry".
- #==============================================================================
- # Do not touch anything bellow, unless you know what you do.
- #==============================================================================
- end
- end
- class Game_Actor < Game_Battler
- #=================Editing original methods=====================================
- alias_method :description_original, :description
- def description
- key_value = 0
- variable_id = GGZiron::Var_des::GAME_VARIABLES[self.id]
- key_value = $game_variables[variable_id] if variable_id
- return description_original if key_value == 0
- new_description = GGZiron::Var_des::DESCRIPTION_LIST[key_value]
- new_description ? new_description : "Incorrect description entry"
- end
- #==============================================================================
- end
- #============================END OF THE SCRIPT=================================
复制代码
Script Name: Variable Description
Terms: Free for commercial and non-commercial projects, crediting me is only optional.
Script summary: It gives the developers the option to change the actors'
description mid game. None of the new assigned description is transfered
to the save file. Instead, to the save file is added only the key value,
witch links with the coresponding description.
Usage: You make new description entries in the settings of this script, as each is linked to key value.
You can assign new description to the actor via script call. For more info read my script opening.
Possible compability issues - I overwrite the draw_description only one I can imagine
is if something overwrite the Game Actor's description method.
For issues, you can report to me here or via pm, but I do not promise to fix.
EDIT: It seems there is no big interest in such script, but even so, I had to edit it, because it was just terrible. Not only it was poorly writen, but it wasn't doing what I said it do. Back them my whole concept of description was what the status window display, which is why I did so decieving work. Still cannot say is perfect(I am still learning), but now it should do what it is supposed to do. And now is much more friendlier to use, as you can assign the key value to the variable from the event's editor.
You only have to set which variable will be linked to which actors's description.
本贴来自国际rpgmaker官方论坛作者:GGZiron处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:
https://forums.rpgmakerweb.com/threads/variable-description-script.88116/