CrimsonSeas Novice
Posts : 106 Thanked : 9 Engine : RMVX
| Subyek: Note field to Tankentai configs. 2009-12-17, 14:25 | |
| Read Tankentai Configs from Database note field Versi: 1.0 Tipe: Add On Tankentai PengenalanScript yang bertujuan untuk mempermudah configure weapon, skill, state etc di Tankentai. Biasanya kita harus buka script editor trus tambahin case condition buat configure action, extension etc. Nah dengan script ini semua itu bisa diconfigure via note field di database entry. Fitur
- Mempermudah bikin skill, weapon, state etc karena bisa di set dari database.
Cara PemakaianCek di thread script ini di rpgmakervx.net: http://www.rpgmakervx.net/index.php?showtopic=23966 Catatan: Script ini butuh script CrimsonSeas ReadNote v1.1 untuk bekerja dengan benar. ScriptsReadNote v1.1: Script untuk membaca note field dari database entry. Diperlukan untuk membuat script ini bekerja dengan baik. - Spoiler:
- Code:
-
################################################################################ #CrimsonSeas ReadNote v1.1 #by CrimsonSeas #Credits to Queex for his original TagNote script ################################################################################ #All my time scripting, I've used Queex's TagNote script to get values from #the note field. This time, I tried to take the most important features of the #TagNote,and made them a bit easier to use. #This script is very useful for all you scripters who wishes to make custom #properties of certain items in the database. This way you can just set it #at the note field of those items. #Credits goes mostly to Queex, since I took the base from his script, only made #it shorter and removes the less used features. ################################################################################ #How To Use: #Write lines in this format in the note box of anything in the database: # <tag_name value1 value2 value3> #tag_name: tag to be searched when looking up the note field #value1, 2, 3....: values assigned to that particular tag #You can set as many values as you want even if they exceed one line, #as long as they are enclosed by <>. # #Then call this method anywhere on your script: #read_note(note field, tag name, N) #note_field: the note to be read. #tag_name: name of tag to be searched #N: this is an integer that will determine which value to be returned. This #method returns the valueN of that particular tag. If you don't assign value for #N, it will return value1 (N=1 by default) #If tag is found but value is not found, returns true. #If tag is not found, returns false. # #Example: #Weapon with ID: 3 has a note field like this: #<test_tag 3 9 5 6> #<test_tag2> #In your script, call a method: #read_note($data_weapons[3].note, "test_tag") #read_note($data_weapons[3].note, "test_tag", 1) #both returns "3" #read_note($data_weapons[3].note, "test_tag", 3) #this returns "5" #read_note($data_weapons[3].note, "test_tag", 5) #read_note($data_weapons[3].note, "test_tag2") #both returns true #read_note($data_weapons[3].note, "test") #this returns false #Remember that other than the booleans, value will always be string. # #You can also incorporate this method in another class, by writing a line #include ReadNote # #Example of usage: #module RPG # class Weapon # include ReadNote # def test_read_note # return read_note(self.note, "test_tag", 2) # end # end #end ################################################################################
module ReadNote def read_note(note, tag, position = 1) note2 = note.dup lines = note2.scan(/<.+>/) for line in lines words = line.split(/[ <>]/) words.delete("") for word in words if word == tag result = words[words.index(word) + position] return true if result == nil return result end end end return false end end
Script untuk menginterpretasikan hasil bacaan note field dari ReadNote menjdai configuration values untuk Tankentai. Copy di bawah ReadNote - Spoiler:
- Code:
-
=begin ================================================================================ Read Tankentai configs through database notes field by CrimsonSeas ================================================================================ A little utility script I made because I find it too much of a hassle to write every configs for Weapons,States, Skills,and Items by editing it in the SBS config. With this script, you can set the configs in the database note field.
Details on how to use and screenshots of examples are on this script's threas on rpgmakervx.net
This script also needs my ReadNote script. ================================================================================ =end
module RPG class State include ReadNote alias readext_extension extension def extension if @ext == nil temp = [] temp.push(self.note[/AUTOLIFE\/[0-9]+/]) temp.push(self.note[/MAGREFLECT\/[0-9]+/]) temp.push(self.note[/MAGNULL\/[0-9]+/]) temp.push(self.note[/PHYREFLECT\/[0-9]+/]) temp.push(self.note[/PHYNULL\/[0-9]+/]) temp.push(self.note[/COSTABSORB/]) temp.push(self.note[/ZEROTURNLIFT/]) temp.push(self.note[/EXCEPTENEMY/]) temp.push(self.note[/NOPOP/]) temp.push(self.note[/HIDEICON/]) temp.push(self.note[/NOSTATEANIME/]) temp.push(self.note[/SLIPDAMAGE/]) @ext = temp @ext += readext_extension if self.note[/OVERRIDE/] == nil @ext.compact! @ext.uniq! @ext.delete("NONE") if @ext.size > 1 @ext.push("NONE") if @ext.size < 1 end return @ext end alias readext_slip_extension slip_extension def slip_extension if @slip == nil @slip = readext_slip_extension temphp = read_note(self.note, "sliphp") if temphp != true && temphp != false sliphp = [] sliphp.push(read_note(self.note, "sliphp")) sliphp.push(read_note(self.note, "sliphp", 2).to_i) sliphp.push(read_note(self.note, "sliphp", 3).to_i) sliphp.push(!(read_note(self.note, "sliphp", 4) == "false")) sliphp.push(!(read_note(self.note, "sliphp", 5) == "false")) end tempmp = read_note(self.note, "slipmp") if tempmp != true && tempmp != false slipmp = [] slipmp.push(read_note(self.note, "slipmp")) slipmp.push(read_note(self.note, "slipmp", 2).to_i) slipmp.push(read_note(self.note, "slipmp", 3).to_i) slipmp.push(!(read_note(self.note, "slipmp", 4) == "false")) slipmp.push(!(read_note(self.note, "slipmp", 5) == "false")) end if sliphp != nil || slipmp != nil @slip = [] @slip.push(sliphp) if sliphp != nil @slip.push(slipmp) if slipmp != nil end end return @slip end end
class Weapon include ReadNote alias readext_base_action base_action def base_action if @action == nil @action = readext_base_action temp = read_note(self.note, "action") if temp != true && temp != false @action = temp end end return @action end alias readext_graphic graphic def graphic if @graphic == nil @graphic = readext_graphic temp = read_note(self.note, "graphic") if temp != true && temp != false @graphic = temp end end return @graphic end alias readext_flying_graphic flying_graphic def flying_graphic if @flygraphic == nil @flygraphic = readext_flying_graphic temp = read_note(self.note, "flygraphic") if temp != true && temp != false @flygraphic = temp end end return @flygraphic end end
class Skill include ReadNote alias readext_base_action base_action def base_action if @action == nil @action = readext_base_action temp = read_note(self.note, "action") if temp != true && temp != false @action = temp end end return @action end alias readext_extension extension def extension if @ext == nil temp = [] temp.push(self.note[/NOEVADE/]) temp.push(self.note[/CONSUMEHP/]) temp.push(self.note[/%COSTMAX/]) temp.push(self.note[/%COSTNOW/]) temp.push(self.note[/IGNOREREFLECT/]) temp.push(self.note[/%DAMAGEMAX\/-{0,1}[0-9]+/]) temp.push(self.note[/COSTPOWER/]) temp.push(self.note[/HPNOWPOWER/]) temp.push(self.note[/MPNOWPOWER/]) temp.push(self.note[/NOHALFMPCOST/]) temp.push(self.note[/HELPHIDE/]) temp.push(self.note[/TARGETALL/]) temp.push(self.note[/RANDOMTARGET/]) temp.push(self.note[/OTHERS/]) temp.push(self.note[/NOOVERKILL/]) temp.push(self.note[/NOFLASH/]) @ext = temp @ext += readext_extension i self.note[/OVERRIDE/] == nil @ext.compact! @ext.uniq! @ext.delete("NONE") if @ext.size > 1 @ext.push("NONE") if @ext.size < 1 end return @ext end alias readext_flying_graphic flying_graphic def flying_graphic if @flygraphic == nil @flygraphic = readext_flying_graphic temp = read_note(self.note, "flygraphic") if temp != true && temp != false @flygraphic = temp end end return @flygraphic end end
class Item include ReadNote alias readext_base_action base_action def base_action if @action == nil @action = readext_base_action temp = read_note(self.note, "action") if temp != true && temp != false @action = temp end end return @action end alias readext_extension extension def extension if @ext == nil temp = [] temp.push(self.note[/NOEVADE/]) temp.push(self.note[/IGNOREREFLECT/]) temp.push(self.note[/HELPHIDE/]) temp.push(self.note[/TARGETALL/]) temp.push(self.note[/RANDOMTARGET/]) temp.push(self.note[/OTHERS/]) temp.push(self.note[/NOOVERKILL/]) temp.push(self.note[/NOFLASH/]) @ext = temp @ext += readext_extension if self.note[/OVERRIDE/] == nil @ext.compact! @ext.uniq! @ext.delete("NONE") if @ext.size > 1 @ext.push("NONE") if @ext.size < 1 end return @ext end end end
Credits
Terakhir diubah oleh CrimsonSeas tanggal 2009-12-17, 14:47, total 1 kali diubah | |
|
Tamu Tamu
| Subyek: Re: Note field to Tankentai configs. 2009-12-17, 14:38 | |
| wih thanks banget mas !!, ini berguna banget dan gag ruwet lagi |
|
Yugi_boy[RPL] Newbie
Posts : 32 Thanked : -7 Engine : RMVX Ace Skill : Advanced Type : Event Designer
| Subyek: Re: Note field to Tankentai configs. 2009-12-19, 11:53 | |
| Ahahahaha bagus banget, bisa buat bikin SKILL 'DAHSYAT!!' nEH!!! aHAHAHAHAHahaha!! | |
|
Atsavin Advance
Posts : 490 Thanked : 11 Engine : Multi-Engine User Skill : Beginner Type : Writer
| Subyek: Re: Note field to Tankentai configs. 2009-12-19, 12:11 | |
| wah2 keren jadi gak susah lagi neeh bikin skill tankentai... eh jadi animation juga diset di database ya?? wah mantab | |
|
shikami Member 1000 Konsep
Posts : 3744 Thanked : 31 Engine : Multi-Engine User Skill : Beginner Type : Developer
Trophies
Awards:
| Subyek: Re: Note field to Tankentai configs. 2009-12-19, 13:06 | |
| Jd "rival" reijuvb ni! Skali2 bkin script bwt XP dunk.. Langsung sedoot! | |
|
CrimsonSeas Novice
Posts : 106 Thanked : 9 Engine : RMVX
| Subyek: Re: Note field to Tankentai configs. 2009-12-19, 17:49 | |
| @Atsavin : Animation maksudnya action sequence? Kalo animation kan emg dari dulu di setnya di database Action sequence bisa diset via note field, tp cuma bisa ngeset nama action sequencenya apa, tp action sequencenya ya harus bikin dulu di script editor, soalnya ga mgkin bisa muat 1 action sequence + anime hash di note field. @shikami: Waduh gw kurang ahli klo XP, klo VX (trutama Tankentai) emang karena gw kerjaannya akhir2 ini ngutak ngatik disitu terus jd lumayan ngerti | |
|
Sponsored content
| Subyek: Re: Note field to Tankentai configs. | |
| |
|