Ogłoszenie
Administracja Forum
BBcode w wiadomości
Autor
Wiadomość
tracersgta
Preferowany:
Pomógł: 45 razy Dołączył: 10 Sty 2011 Posty: 612 Skąd: mam wiedzieć?
Wysłany: Pią 28 Sty, 2011 11:28
BBcode w wiadomości
Opis
Umożliwia dodawanie BBcode w wiadomościach
Autor
Berka
Kompatybilność
Vx, niepowinno wchodzić w kolizję z innymi skryptami.
Skrypt
Spoiler:
Kod: #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Bbcode messages v 0.6 Rgss2
# par berka www.rpgmakervx-fr.com
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# permet l'utilisation de certaines balises bbcode dans les messages de rmvx
#
# [b]...[/b] gras == [strong]...[/strong]
# [i]...[/i] italique
# [o]...[/o] non ombré
# [size=i]...[/size] taille des caractères
# [color=#FFFFFF]...[/color] couleur hexadecimale
# [color=black]...[/color] couleur nominale html
# [list][*]...[*]...[/list] liste à puce
# [list=1][*]...[*]...[/list] liste à chiffres
# [list=a][*]...[*]...[/list] liste à lettre
# [u]...[/u] souligné
# [s]...[/s] barré == [strike]...[/strike]
# [font=arial]...[/font] police
# [sup]...[/sup] exposant
# [shadow=#FFFFFF]...[/shadow] ombre portée
# [shadow=black]...[/shadow] ombre portée
# [blur]...[/blur] flou
# [img]nom de l'image sans extention[/img] insertion image (placée dans Graphics/system)
# d'autres fonctions viendront;^)
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$KCODE="UTF8"
module Berka
module Bbcode
Puce="�—� " #�ˆ†
Surligneur="#0000CD" #html
Blur_Opacite=125 #opacité [blur]
Ombre_Portee=[6,6] #[x,y] nbr de pixels de décalage
#couleurs html <> hexadecimales
HTML={:aliceblue=>"#F0F8FF", :aqua=>"#00FFFF", :aquamarine=>"#7FFFD4", :azure=>"#F0FFFF", :beige=>"#F5F5DC", :bisque=>"#FFE4C4",
:black=>"#000000", :blanchedalmond=>"#FFEBCD", :blue=>"#0000FF", :blueviolet=>"#8A2BE2", :brown=>"#A52A2A", :burlywood=>"#DEB887",
:cadetblue=>"#5F9EA0", :chartreuse=>"#7FFF00", :chocolate=>"#D2691E", :coral=>"#FF7F50", :cornflowerblue=>"#6495ED", :cornsilk=>"#FFF8DC",
:crimson=>"#DC143C", :cyan=>"#00FFFF", :darkblue=>"#00008B", :darkcyan=>"#008B8B", :darkgoldenrod=>"#B8860B", :darkgray=>"#A9A9A9",
:darkgreen=>"#006400", :darkkhaki=>"#BDB76B", :darkmagenta=>"#8B008B", :darkolivegreen=>"#556B2F", :darkorange=>"#FF8C00",
:darkorchid=>"#9932CC", :darkred=>"#8B0000", :darksalmon=>"#E9967A", :darkseagreen=>"#8FBC8F", :darkslateblue=>"#483D8B",
:darkslategray=>"#2F4F4F", :darkturquoise=>"#00CED1", :darkviolet=>"#9400D3", :deeppink=>"#FF1493", :deepskyblue=>"#00BFFF",
:dimgray=>"#696969", :dodgerblue=>"#1E90FF", :firebrick=>"#B22222", :floralwhite=>"#FFFAF0", :forestgreen=>"#228B22", :fuchsia=>"#FF00FF",
:gainsboro=>"#DCDCDC", :ghostwhite=>"#F8F8FF", :gold=>"#FFD700", :goldenrod=>"#DAA520", :gray=>"#808080", :green=>"#008000",
:greenyellow=>"#ADFF2F", :honeydew=>"#F0FFF0", :hotpink=>"#FF69B4", :indianred=>"#CD5C5C", :indigo=>"#4B0082", :ivory=>"#FFFFF0",
:khaki=>"#F0E68C", :lavender=>"#E6E6FA", :lavenderblush=>"#FFF0F5", :lawngreen=>"#7CFC00", :lemonchiffon=>"#FFFACD", :lightblue=>"#ADD8E6",
:lightcoral=>"#F08080", :lightcyan=>"#E0FFFF", :lightgoldenrodyellow=>"#FAFAD2", :lightgreen=>"#90EE90", :lightgrey=>"#D3D3D3",
:lightpink=>"#FFB6C1", :lightsalmon=>"#FFA07A", :lightseagreen=>"#20B2AA", :lightskyblue=>"#87CEFA", :lightslategray=>"#778899",
:lightsteelblue =>"#B0C4DE", :lightyellow=>"#FFFFE0", :lime=>"#00FF00", :limegreen=>"#32CD32", :linen=>"#FAF0E6", :magenta=>"#FF00FF",
:maroon=>"#800000", :mediumaquamarine=>"#66CDAA", :mediumblue=>"#0000CD", :mediumorchid=>"#BA55D3", :mediumpurple=>"#9370DB",
:mediumseagreen=>"#3CB371", :mediumslateblue=>"#7B68EE", :mediumspringgreen=>"#00FA9A", :mediumturquoise=>"#48D1CC",
:mediumvioletred=>"#C71585", :midnightblue=>"#191970", :mintcream=>"#F5FFFA",:mistyrose=>"#FFE4E1", :moccasin=>"#FFE4B5",
:navajowhite=>"#FFDEAD", :navy=>"#000080", :oldlace=>"#FDF5E6", :olive=>"#808000", :olivedrab=>"#6B8E23",:orange=>"#FFA500",
:orangered=>"#FF4500", :orchid=>"#DA70D6", :palegoldenrod=>"#EEE8AA", :palegreen=>"#98FB98", :paleturquoise=>"#AFEEEE",
:palevioletred=>"#DB7093", :papayawhip=>"#FFEFD5", :peachpuff=>"#FFDAB9", :peru=>"#CD853F", :pink=>"#FFC0CB", :plum=>"#DDA0DD",
:powderblue=>"#B0E0E6", :purple=>"#800080", :red=>"#FF0000", :rosybrown=>"#BC8F8F", :royalblue=>"#4169E1", :saddlebrown=>"#8B4513",
:salmon=>"#FA8072", :sandybrown=>"#F4A460", :seagreen=>"#2E8B57", :seashell=>"#FFF5EE", :sienna=>"#A0522D", :silver=>"#C0C0C0",
:skyblue=>"#87CEEB", :slateblue=>"#6A5ACD", :slategray=>"#708090", :snow=>"#FFFAFA", :springgreen=>"#00FF7F", :steelblue=>"#4682B4",
:tan=>"#D2B48C", :teal=>"#008080", :thistle=>"#D8BFD8", :tomato=>"#FF6347", :turquoise=>"#40E0D0", :violet=>"#EE82EE", :wheat=>"#F5DEB3",
:white=>"#FFFFFF", :whitesmoke=>"#F5F5F5", :yellow=>"#FFFF00", :yellowgreen=>"#9ACD32"}
Alpha="abcdefghijklmnopqrstuvwxyz".scan(/./)
end
end
include Berka::Bbcode
class Window_Message < Window_Selectable
alias berka_bbcode_convert convert_special_characters
def start_message
@text=""
for i in 0...$game_message.texts.size
@text+=" " if i >= $game_message.choice_start
@text+=$game_message.texts[i].clone+"\x00"
end
@item_max=$game_message.choice_max
convert_special_characters
reset_window
new_page
end
def convert_special_characters
berka_bbcode_convert
@a=0
@text.gsub!('[b]') {"\xA1"}
@text.gsub!('[strong]') {"\xA1"}
@text.gsub!('[/b]') {"\xA2"}
@text.gsub!('[/strong]') {"\xA2"}
@text.gsub!('[i]') {"\xA3"}
@text.gsub!('[/i]') {"\xA4"}
@text.gsub!('[o]') {"\xA5"}
@text.gsub!('[/o]') {"\xA6"}
@text.gsub!(/\[size\=(\d+)\]/) {"\xA7[#{$1}]"}
@text.gsub!('[/size]') {"\xA8"}
@text.gsub!(/\[color\=\#([0-9A-Za-z]+?)\]/x){"\xA9\[#{$1}\]"}
@text.gsub!(/\[color\=([0-9A-Za-z]+?)\]/x){"\xA9\[#{$1}\]"}
@text.gsub!('[/color]') {"\xAA"}
@text.gsub!('[list]') { @a=nil;@t=nil;''}
@text.gsub!(/\[list\=(\d+)\]/) { @a=0;@t=0;'' }
@text.gsub!(/\[list\=([A-Za-z]+)\]/){ @a=0;@t=nil;'' }
@text.gsub!('[*]') {(@t.nil? ? (@a+=1;"\x00 #{Alpha[@a-1]}-"):(@a+=1;"\x00 #{@a+=1}-"))rescue "\x00 "+Puce }
@text.gsub!('[/list]') { @a=nil;@t=nil;""}
@text.gsub!('[u]') {"\xAB"}
@text.gsub!('[/u]') {"\xAV"}
@text.gsub!('[s]') {"\xAD"}
@text.gsub!('[strike]') {"\xAD"}
@text.gsub!('[/s]') {"\xAE"}
@text.gsub!('[/strike]') {"\xAE"}
@text.gsub!(/\[font\=([A-Za-z]+)\]/){ "\xAF[#{$1}]"}
@text.gsub!('[/font]') {"\xB0"}
@text.gsub!('[sup]') {"\xB1"}
@text.gsub!('[/sup]') {"\xB2"}
@text.gsub!('[fluo]') {"\xB3"}
@text.gsub!('[/fluo]') {"\xB4"}
@text.gsub!('[blur]') {"\xB5"}
@text.gsub!('[/blur]') {"\xB6"}
@text.gsub!(/\[shadow\=\#([0-9A-Za-z]+?)\]/x){"\xB7\[#{$1}\]"}
@text.gsub!(/\[shadow\=([0-9A-Za-z]+?)\]/x){"\xB7\[#{$1}\]"}
@text.gsub!('[/shadow]') {"\xB8"}
@text.gsub!('[img]') {"\xB9"}
@text.gsub!('[/img]') {"\xBA"}
end
def update_message
loop {
c=@text.slice!(/./m)
case c
when nil
finish_message
break
when "\x00"
new_line
if @line_count >= MAX_LINE
unless @text.empty?
self.pause=true
break
end
end
when "\x01";@text.sub!(/\[([0-9]+)\]/,""); contents.font.color=text_color($1.to_i); next
when "\x02";@gold_window.refresh;@gold_window.open
when "\x03";@wait_count=15;break
when "\x04";@wait_count=60;break
when "\x05";self.pause=true;break
when "\x06";@line_show_fast=true
when "\x07";@line_show_fast=false
when "\x08";@pause_skip=true
when "\xA1";self.contents.font.bold=true
when "\xA2";self.contents.font.bold=Font.default_bold
when "\xA3";self.contents.font.italic=true
when "\xA4";self.contents.font.italic=Font.default_italic
when "\xA5";self.contents.font.shadow=false
when "\xA6";self.contents.font.shadow=Font.default_shadow
when "\xA7";@text.sub!(/\[(\d+)\]/,'');self.contents.font.size=$1.to_i;next
when "\xA8";self.contents.font.size=Font.default_size
when "\xA9";@text.sub!(/\[([0-9A-Za-z]+)\]/ix,'');@bbcouleur=self.contents.font.color=hexa($1);next
when "\xAA";self.contents.font.color=Font.default_color
when "\xAB";@soul=true
when "\xAC";@soul=false
when "\xAD";@str=true
when "\xAE";@str=false
when "\xAF";@text.sub!(/\[([A-Za-z]+)\]/,"");self.contents.font.name=$1 if Font.exist?($1)
when "\xB0";self.contents.font.name=Font.default_name
when "\xB1";self.contents.font.size*=0.5
when "\xB2";self.contents.font.size=Font.default_size
when "\xB3";@fluo=true
when "\xB4";@fluo=false
when "\xB5";@flou=true
when "\xB6";@flou=false
when "\xB7";@text.sub!(/\[([0-9A-Za-z]+)\]/,'');@ombre=$1
when "\xB8";@ombre=nil
when "\xB9";@text.sub!(/([0-9A-Za-z]+)/,'');@img=Cache.system($1)
when "\xBA";
else
c_width=contents.text_size(c).width
(contents.blt(@contents_x,@contents_y,@img,@img.rect);@contents_x+=@img.width)if !@img.nil?
contents.fill_rect(@contents_x, @contents_y, c_width, self.contents.font.size, hexa(Surligneur)) if @fluo
contents.ombre_portee(c,@contents_x, @contents_y,[6,6], @ombre)if !@ombre.nil?
contents.draw_text(@contents_x,@contents_y,40,self.contents.font.size,c)
contents.flou([@contents_x,@contents_y, c_width,self.contents.font.size])if @flou
contents.draw_text(@contents_x,@contents_y+1,c_width, self.contents.font.size,"___") if @soul
contents.draw_text(@contents_x,@contents_y-self.contents.font.size/3,c_width,self.contents.font.size,"___") if @str
@contents_x+=c_width
@img=nil
end
break unless @show_fast||@line_show_fast}
end
def hexa(hex)
hex=HTML[hex.to_sym] if HTML.has_key?(hex.to_sym)
hex=hex.scan(/./)
(rgb=[hex[0]+hex[1],hex[2]+hex[3],hex[4]+hex[5]]) rescue (return normal_color)
return Color.new(rgb[0].to_i(16),rgb[1].to_i(16),rgb[2].to_i(16))
end
end
class Bitmap
def ombre_portee(string,x,y,d,col)
a,b,m,n=false,false,d[0],d[1]
loop do
self.font.color=Color.new(hexa(col)[0],hexa(col)[1],hexa(col)[2],255-255*m/d[0])
draw_text(Rect.new(x-m,y+n,text_size(string).width,self.font.size),string)
m>0 ? m-=1 :a=true;n>0 ? n-=1 :b=true
break if a&&b
end
end
def flou(rect,of=2,opacite=Blur_Opacite,spac=1)
x,y,w,h=rect[0],rect[1],rect[2],rect[3]
dummy = self.dup
of.times{|i|
src_rects=[]
src_rects<<Rect.new(x+i*spac,y+i*spac,w,h)
src_rects<<Rect.new(x-i*spac,y+i*spac,w,h)
src_rects<<Rect.new(x+i*spac,y-i*spac,w,h)
src_rects<<Rect.new(x-i*spac,y-i*spac,w,h)
o=Integer(opacite*(of-i)/of)
src_rects.each{|src_rect|blt(x,y,dummy,src_rect,o)}}
end
def hexa(hex)
hex=HTML[hex.to_sym] if HTML.has_key?(hex.to_sym) rescue return
hex=hex.scan(/./)
(rgb=[hex[0]+hex[1],hex[2]+hex[3],hex[4]+hex[5]]) rescue (return normal_color)
return rgb[0].to_i(16),rgb[1].to_i(16),rgb[2].to_i(16)
end
end
Demo
Nie potrzebne
ScreenShot
Instrukcja
Wklej skrypt nad "Main".
________________________ I'm a tiger! I roar. I hunt, I climb, I eat, I wash, I sleep!
Gość, jeżeli pomogłem daj "Pomógł"
Poster27
Preferowany:
Pomógł: 22 razy Dołączył: 27 Kwi 2010 Posty: 136 Skąd: że znowu
Wysłany: Pią 28 Sty, 2011 16:07
Ja to już CHYBA wszystkie skrypty VX widziałem :P Skrypt ten, jest jednym z najlepszych. Przydało by się spolszczyć instrukcję, bo z francuskiego w ogóle nie znam :P
tracersgta
Preferowany:
Pomógł: 45 razy Dołączył: 10 Sty 2011 Posty: 612 Skąd: mam wiedzieć?
Wysłany: Pią 28 Sty, 2011 16:16
Hmmm... jedyne co trzeba zrobić to wkleić skrypt nad "Main"!!! Jeżeli chodzi o komendy to przetestuj je na czystym projekcie co oznaczją ....
________________________ I'm a tiger! I roar. I hunt, I climb, I eat, I wash, I sleep!
Gość, jeżeli pomogłem daj "Pomógł"
Shlizer
Preferowany:
Pomógł: 11 razy Dołączył: 02 Sty 2011 Posty: 138 Skąd: /var/tmp
Wysłany: Pią 28 Sty, 2011 17:20
Na chłopski rozum co oznaczają komendy BBCode masz w pomocy każdego forum phpBB (np. tu )
________________________ Aversum Framework Demo
Aktualnie pracuję nad NSO =p
premek
Preferowany:
Dołączył: 30 Sty 2011 Posty: 13
Wysłany: Sob 05 Lut, 2011 07:25
Dzięki ten skrypt mi się napewno przyda
________________________ Kliknij http://grawbank.tk/876/nekome A coś zyskam :D
anemone
Preferowany:
Dołączył: 20 Mar 2011 Posty: 55 Skąd: Z brzuszka mamusi.
Wysłany: Pon 30 Maj, 2011 16:30
KOCHAM CIĘ!!! TEGO SZUKAŁEM!!!
Nie możesz pisać nowych tematówNie możesz odpowiadać w tematachNie możesz zmieniać swoich postówNie możesz usuwać swoich postówNie możesz głosować w ankietachNie możesz załączać plików na tym forumMożesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych Wersja do druku