bbcode dans les messages !
Lun 24 Nov 2008 - 22:54
Voila un script permettant de rajouter la gestion du bbcode dans vos messages !
ceci:
donne:
A placer au dessus de main:
ceci:
donne:
A placer au dessus de main:
- Code:
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Bbcode messages v 0.5 Rgss2
# par berka rpgmakervx.1fr1.net
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 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_image sans extension[/img]
# [ code]...[ /code] pas de balises du début de message à [ /code]
# d'autres fonctions viendront;^)
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$KCODE="UTF8"
module Berka
module Bbcode
Puce="● " #∆
Surligneur="#0000CD" #html
Blur_Opacite=125 #opacité [blur]
Ombre_Portee=6
#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!("[code]") {@code=true;"\xBB"}
@text.gsub!("[/code]") {"\xBC"}
if !@code
@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
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";next
when "\xBB";@code=true;convert_special_characters
when "\xBC";@code=false;convert_special_characters
else
draw(c)
end
break unless @show_fast||@line_show_fast}
end
def draw(c)
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
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=125,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
- ElscortoMembre
- Nombre de messages : 486
Age : 39
Localisation : Dans sa tombe en ce moment
Distinction : Homme de goût en chef.
Date d'inscription : 10/07/2008
Re: bbcode dans les messages !
Mar 25 Nov 2008 - 9:33
Très interessant ton script Berka,Merci
Re: bbcode dans les messages !
Mar 25 Nov 2008 - 15:52
Super on va pouvoir flooder sur RM ! xD
C'est un bon ptit gadget que tu nous a bricolé la, bon courage pour la suite !
C'est un bon ptit gadget que tu nous a bricolé la, bon courage pour la suite !
_________________
- KorndorStaffeux retraité
- Nombre de messages : 4959
Age : 111
Localisation : Erem Vehyx
Distinction : Champion de boxe et au lit ! :O [Wax]
Être Mythique [Mister]
Papi Korndor qui a l'ostéoporose [Skillo]
Soldat Ikéa [Coco']
Un bonhomme, un vrai ! [Neresis]
Vieillard acariâtre [Didier Gustin]
Date d'inscription : 16/12/2007
Re: bbcode dans les messages !
Mar 25 Nov 2008 - 17:41
Merci beaucoup berka, même si je ne l'utiliserais pas encore ça peut être très utile ^^
Cela permet d'utiliser la balise "blur"?
Je trouve qu'elle pourrait faire sympa dans certains messages ^^
Cela permet d'utiliser la balise "blur"?
Je trouve qu'elle pourrait faire sympa dans certains messages ^^
- ArayashikiMembre
- Nombre de messages : 655
Age : 34
Localisation : Trois lettres me demangent. Oserai-je ?
Distinction : FUCKING nouveau dieu du mal. Gros connard en chef.
Date d'inscription : 18/08/2008
Re: bbcode dans les messages !
Mar 25 Nov 2008 - 17:53
Quand on aura trouvé le moyen de faire la passerelle entre RM et internet on pourra crée des logiciels de chat x). Plus sérieusement faudra qu'on en parle de cette classe regexp berka ^^. Sur le CB à 3 heures du mat'
- ElscortoMembre
- Nombre de messages : 486
Age : 39
Localisation : Dans sa tombe en ce moment
Distinction : Homme de goût en chef.
Date d'inscription : 10/07/2008
Re: bbcode dans les messages !
Mer 26 Nov 2008 - 9:08
Excusez,je vais encore passer pour un noob,mais c'est quoi la balise "blur"
Edit : Après test,elle ne fontionne pas chez moi sous firefox mais sous IE pas de problème,c'est vrai que ça peut donner des choses sympa pour les dialogues
Edit : Après test,elle ne fontionne pas chez moi sous firefox mais sous IE pas de problème,c'est vrai que ça peut donner des choses sympa pour les dialogues
- KorndorStaffeux retraité
- Nombre de messages : 4959
Age : 111
Localisation : Erem Vehyx
Distinction : Champion de boxe et au lit ! :O [Wax]
Être Mythique [Mister]
Papi Korndor qui a l'ostéoporose [Skillo]
Soldat Ikéa [Coco']
Un bonhomme, un vrai ! [Neresis]
Vieillard acariâtre [Didier Gustin]
Date d'inscription : 16/12/2007
Re: bbcode dans les messages !
Mer 26 Nov 2008 - 13:41
Chez moi elle fonctionne et j'ai Firefox ^^'
- ArayashikiMembre
- Nombre de messages : 655
Age : 34
Localisation : Trois lettres me demangent. Oserai-je ?
Distinction : FUCKING nouveau dieu du mal. Gros connard en chef.
Date d'inscription : 18/08/2008
Re: bbcode dans les messages !
Mer 26 Nov 2008 - 22:14
Enflure. Le php est mieux en barré. C'est à moi que ça s'adresse x). Sinon bon travail ( à la façon hancock t'as vu).
- DénérionMembre
- Nombre de messages : 284
Distinction : aucune
Date d'inscription : 15/03/2008
Re: bbcode dans les messages !
Mer 26 Nov 2008 - 22:28
Euh désolé de contester, mais il y a un problème:
Voici mon event avant d'avoir installer le script:
Et son essai in-game:
J'installe ensuite ton Script, et je change mon event:
Mais voila, le bug arrive:
Je remet ensuite mon event sans les balises, et le bug persiste:
La question que tous le monde se pose est donc: Qu'est-ce qui c'est passer?
Voici mon event avant d'avoir installer le script:
Et son essai in-game:
J'installe ensuite ton Script, et je change mon event:
Mais voila, le bug arrive:
Je remet ensuite mon event sans les balises, et le bug persiste:
La question que tous le monde se pose est donc: Qu'est-ce qui c'est passer?
Re: bbcode dans les messages !
Mer 26 Nov 2008 - 22:38
aie... c'est bien ce que je craignais... dans ce cas, tu modifies la ligne 61
de script par:
je l'avais enlevé parce que les retours a la lignes auto m'enervaient
de script par:
- Code:
@text+=$game_message.texts[i].clone+"\x00"
je l'avais enlevé parce que les retours a la lignes auto m'enervaient
- DénérionMembre
- Nombre de messages : 284
Distinction : aucune
Date d'inscription : 15/03/2008
Re: bbcode dans les messages !
Mer 26 Nov 2008 - 22:49
C'est bon, ça marche ^^
Merci beaucoup pour ce script ^^.
Merci beaucoup pour ce script ^^.
Re: bbcode dans les messages !
Mer 26 Nov 2008 - 22:51
le truc, c'est que tu vas devoir faire attention, en écrivant ton message de ne pas arriver en fin de ligne avant une balise...
- DénérionMembre
- Nombre de messages : 284
Distinction : aucune
Date d'inscription : 15/03/2008
Re: bbcode dans les messages !
Jeu 27 Nov 2008 - 11:45
Pas de risque, vu l'utilité que j'ai trouver au moins pour les balises de gras ^^.
Mais je me souviendrais de ton conseil.
Edit: Euh il y a un nouveau problème: Les ! et les 0 n'apparaissent plus...
Mais je me souviendrais de ton conseil.
Edit: Euh il y a un nouveau problème: Les ! et les 0 n'apparaissent plus...
- DénérionMembre
- Nombre de messages : 284
Distinction : aucune
Date d'inscription : 15/03/2008
Re: bbcode dans les messages !
Jeu 27 Nov 2008 - 22:09
C'est bon ça marche, mais il faut toujours remplacer la ligne 61.
Si il y a d'autres bugs que je trouve, je te préviens ^^.
Si il y a d'autres bugs que je trouve, je te préviens ^^.
- GalulaMembre
- Nombre de messages : 11
Age : 34
Localisation : Ailleurs
Distinction : aucune
Date d'inscription : 11/11/2008
Re: bbcode dans les messages !
Sam 29 Nov 2008 - 1:08
Moi j'ai une "Syntaxe Error" à la ligne 183, en copiant strictement ce qui est affiché... Quoi-qu'est-ce ?
Re: bbcode dans les messages !
Sam 29 Nov 2008 - 13:32
corrigé, ajout de la gestion des images [ img] [ /img]
et [ code] [/code] supprimant la gestion des balises
et [ code] [/code] supprimant la gestion des balises
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum