Page 1 sur 2 • 1, 2
Générateur d'événements.
Dim 8 Fév 2009 - 22:10
Bonsoir, après une bonne après-midi de recherches, je vous présente mon dernier script en date.
Désormais, avec ce script, vous pouvez créer tout un tas de PNJ (perso non jouables), totalement inutiles, mais qui donneront un peu de vie a votre jeu.
Si vous le souhaitez, vous pouvez générer des perso totalement aléatoires (apparence, faceset, message...)
les persos peuvent etre positionnés aléatoirement sur la map, là où c'est passable.
collez ce script au dessus de main:
ce script s'appelle depuis un event, autant de fois qu'il faut créer de persos.
exemple d'appel, dans un event, appel de script
et ne mettez pas l'event en processus parallèle... si non, votre héro se sentira comme dans le métro à l'heure de pointe !
si vous avez des questions....
berka
Désormais, avec ce script, vous pouvez créer tout un tas de PNJ (perso non jouables), totalement inutiles, mais qui donneront un peu de vie a votre jeu.
Si vous le souhaitez, vous pouvez générer des perso totalement aléatoires (apparence, faceset, message...)
les persos peuvent etre positionnés aléatoirement sur la map, là où c'est passable.
collez ce script au dessus de main:
- Code:
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Générateur d'événement
# par berka rgss2
# rpgmakervx.1fr1.net
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Rgss 2 v 2.1 sur les bases de mithos et pipo
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# -Utilisation-
# écrivez dans un event, commande insérer un script:
#
# minumum requis:
# [event] # obligatoire !
# chara : "Actor01" # nom du fichier du charset ou: chara:rand
#
# et les commandes optionnelles:
# x : 5 # position abscisses, pos aléatoire si rien
# y : 10 # position ordonnées, pos aléatoire si rien
# nom : "Event01" # nom de l'event ou nom: rand
# c_index : 0 # index sur la planche de chara
# face : "Actor01" # nom du fichier du faceset ou: face:true (==>chara)
# f_index : 0 # index sur la planche de chara
# dir : 2 # direction de l'event
# type_mov:0 # type de mouvement
# vit_mov:0 # vitesse de mouvement
# freq_mov:0 # frequence de mouvement
# texte:"bonjour" # dialogue ou texte:rand (cf. liste dessous)
# trigger:0 # declencheur de l'event
# prio_type:1 # type de priorité
# script: print @a=1 # lance une commande de script
# combat: 1,true,false # combat: id_monstre, fuite, continuer si defaite
# or: 0,0,1000 # or: 0/1 (aj/enl),0/1 (Const/var), montant (nbr/var_id)
# objet: 2,0,0,10 # objet: id,0/1 (aj/enl),0/1 (Const/var), montant (nbr/var_id)
# arme: 2,0,0,10 # arme: id,0/1 (aj/enl),0/1 (Const/var), montant (nbr/var_id)
# bouclier: 2,0,0,10 # bouclier: id,0/1 (aj/enl),0/1 (Const/var), montant (nbr/var_id)
# suppr : true # suppression de l'événement
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Exemple:
#
# [event]
# chara:rand
# texte:rand
# type_mov : 1
#
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
$characters="people" # série de charsets utilisés pour la création aléatoire
# people1, people2...
# modifiable en cours de jeu, les charas seront piochés dans
# les planches de ./Graphics/Characters
$chara_nbre=5 # nombre de fichiers people
# dialogues aleatoires
$dialogues=["Bonjour, il fait beau, nan ?","Comment allez vous ?","Partez d'ici !",
"Je n'ai pas de temps à vous accorder !","Vous m'ennuyez...","Encore vous ?",
"Ah! vous voilà, cher ami !","Tiens, vous semblez fatigué.","Grrrrr...",
"Hors de ma vue !","Quelle belle journée!","Je me promène.","Vous êtes de retour ?",
"Hihihi !","Rien.","Je ne veux plus vous parler.","Que faire ?","Mais c'est ¥N[1] !",
"Le temps change...","Vous êtes mon idole...","Dieu, que vous êtes laid !",
"Vous me rappelez quelqu'un...","Vous avez l'air sournois","Salut ¥N[1] !",
"Je ne vous fais pas confiance...","Ne m'approchez pas !","Je suis souffrant",
"Hé ! tu la connais celle là ?","Ahhahaharff...","Bonjour","Portez vous bien !",
"Ravi de vous revoir","...Tousse...","Coucou!","Encore un étranger ?","Bouh !",
"Je n'entends rien de ce que vous dites...","Articulez !","Parlez plus bas.",
"J'ai fait route toute la journée.","Je suis d'accord.","Dégage, mendiant !",
"Bonjour jeune homme","...snif...","Vous attirez le malheur ici !","Entendu.",
"Ne me regardez pas comme ça !","Il faut qu'on se parle...","Venez déjeuner !",
"Je suis content de vous connaitre."]
# in-game: $dialogues << "Tu es devenu un héro !"
$nom=[%w(Gw Ul Et Rh Ed Gr Dr Dw Tr Gh As Ar Ag Xor), # générateur de nom
%w(ai ia eo ui yn or ul ur a e i o u y yr ya yl),
%w(th rk dd gh z l mn lyr zar gor ryn nia lia )]
module Berka
module Pnj_Gen
Tag = "[event]" # Tag du générateur
Separateur = ":" # Separateur: cmd/valeut
Index_Chara = 8 # Nombre de poses
Commandes = {:face => "[101,[@_face,@_f_index,0,2]]", # Liste des commandes
:or => "[125,[*@_or]]",
:objet => "[126,[*@_objet]]",
:arme => "[127,[*@_arme]]",
:bouclier => "[128,[*@_bouclier]]",
:combat => "[301,[0,*@_combat])]",
:script => "[355,[@_script]]",
:suppr => "[214]",
:texte => "[401,[@_texte]]"
}
ProfCoord = 100 # profondeur du scan x/y
end
end
include Berka::Pnj_Gen
class Array
def arand
self[Kernel.rand(self.size)]
end
end
class Object
def rand?
self == "?"
end
end
class Game_Map
include RPG
def check_event(x,y)
for event in @events.values
return event.id if event.x==x&&event.y==y
end
return nil
end
def make_event(com)
self.instance_variables.each{|v|eval("#{v}=nil") if v.include?("@_")}
rand="?"
com.each_with_index{|c,i|eval("@_#{c.first.id2name}=#{c[1]}")}
set_rand
set_options
return if @_x.nil?||@_y.nil?
if check_event(@_x,@_y).nil?
@event=Event.new(@_x,@_y)
com.each{|c|c=c.first
ajout_cmd(*eval("#{Commandes[c]}"))if Commandes.has_key?(c)
}
@event.id=creerid
@event.name=@_nom
@event.pages.first.graphic.character_name=@_chara
@event.pages.first.graphic.character_index=@_c_index
@event.pages.first.graphic.direction=@_dir
@event.pages.first.move_type=@_type_mov
@event.pages.first.move_frequency=@_freq_mov
@event.pages.first.move_speed=@_vit_mov
@event.pages.first.through=@_trav
@event.pages.first.trigger=@_trigger
@event.pages.first.priority_type=@_prio_type
@events[@event.id]=Game_Event.new(@map_id,@event)
@need_refresh=true
$scene.refresh_spriteset
end
end
def set_rand
rand="?"
@_chara||=rand
@_nom=aleatoire_nom if @_nom.nil?
@_texte=$dialogues.arand if @_texte.rand?
@_x,@_y=*aleatoire_pos if @_x.nil?||@_y.nil?
@_pers=aleatoire_perso
if @_chara.rand?||@_c_index.rand?
@_face,@_f_index,@_chara,@_c_index=@_pers
end
end
def set_options
@_chara=@_pers.first if @chara.nil?
@_c_index=@_pers[1] if @_c_index.nil?
@_face,@_f_index = "",0 if @_face==false
@_dir||=3
@_type_mov||=0
@_freq_mov||=3
@_vit_mov||=3
@_trav||=false
@_trigger||=0
@_prio_type||=1
end
def aleatoire_pos
ProfCoord.times{
x,y=Kernel.rand(width).to_i,Kernel.rand(height).to_i
next if x==$game_player.x&&y==$game_player.y
(return x,y) if passable?(x,y)&&!check_event(x,y)
}
return nil,nil
end
def aleatoire_perso
i=Kernel.rand(Index_Chara-1)
res=$characters+(Kernel.rand($chara_nbre)+1).to_s
return [res,i,res,i]
end
def aleatoire_nom
n="#{$nom.first.arand}#{$nom[1].arand}#{$nom[2].arand}"
n<<$nom[1].arand if rand(4)==1
return n
end
def event_name(id)
@events[id].name if !@events[id].nil?
end
def creerid
id=1
id+=1 while @events.keys.include?(id)
return id
end
def ajout_cmd(code,param=[],i=0)
cmd=EventCommand.new
cmd.code,cmd.parameters,cmd.indent=code,param,i
@event.pages.first.list.insert(-2,cmd)
end
end
class Scene_Map<Scene_Base
def refresh_spriteset
@spriteset.dispose;@spriteset=Spriteset_Map.new
end
end
class Game_Interpreter
def eval(script)
if script.include?(Tag)
com=[];script.gsub!(Tag,'')
list=script.split("\n")
s=Separateur
list.each_with_index{|e,i|e.gsub!(' '+s,s);e.gsub!(s+' ',s);f=e.split(s)
com<<[f.first.to_sym,f[1]]if !f[1].nil?}
$game_map.make_event(com)
return
end
return Kernel.eval(script)
end
end
ce script s'appelle depuis un event, autant de fois qu'il faut créer de persos.
exemple d'appel, dans un event, appel de script
- Code:
[event]
chara:rand
texte: rand
type_mov : 1
et ne mettez pas l'event en processus parallèle... si non, votre héro se sentira comme dans le métro à l'heure de pointe !
si vous avez des questions....
berka
- XakuXMembre
- Nombre de messages : 1263
Age : 30
Localisation : là où tu n'auras jamais l'idée de chercher !
Distinction : * Bougre d'âne
Le bizu' à son Coco'
[Coco' ]
Membre aux désirs inassouvis de domination mondiale. [Maître du destin]
Date d'inscription : 13/12/2008
Re: Générateur d'événements.
Dim 8 Fév 2009 - 22:16
Pas possible , le paradis pour les membres du club des faineants (dont je suis adhérent et promu trois fois dirigeant!)
Je ne pensais meme pas que ca pouvait se faire, j'essaye tout de suite et merci Berka
EDIT: Non, GRAND MERCI Berka, c'est d'une simplicité, ca va vraiment me faire gagner du temps !
Je ne pensais meme pas que ca pouvait se faire, j'essaye tout de suite et merci Berka
EDIT: Non, GRAND MERCI Berka, c'est d'une simplicité, ca va vraiment me faire gagner du temps !
Re: Générateur d'événements.
Dim 8 Fév 2009 - 22:24
Il faut bien qu'il y en ait qui bossent pour les fainéants héhé
- 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: Générateur d'événements.
Dim 8 Fév 2009 - 22:25
Le but d'un programmeur est de simplifier la vie aux gens avec les programmes. Donc si ce script te simplifie la vie alors berka a fait son boulot et proprement bien. Merci beaucoup une fois de plus berka ^^.
- LightNoxMembre
- Nombre de messages : 1759
Age : 34
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: Générateur d'événements.
Dim 8 Fév 2009 - 22:29
Salut berka j'ai mis le script au dessus de main et quand dans aple de script je met
la commande que tu a mis plus haut il y a un problème avec l'Antilag
oh sinon exellent travail ! impressionnant
la commande que tu a mis plus haut il y a un problème avec l'Antilag
oh sinon exellent travail ! impressionnant
- LightNoxMembre
- Nombre de messages : 1759
Age : 34
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: Générateur d'événements.
Dim 8 Fév 2009 - 22:36
je peux pas te dire car il s'affiche une fraction de seconde !
- XakuXMembre
- Nombre de messages : 1263
Age : 30
Localisation : là où tu n'auras jamais l'idée de chercher !
Distinction : * Bougre d'âne
Le bizu' à son Coco'
[Coco' ]
Membre aux désirs inassouvis de domination mondiale. [Maître du destin]
Date d'inscription : 13/12/2008
Re: Générateur d'événements.
Lun 9 Fév 2009 - 13:33
Euh...
Juste un petit détail, que faut-il enlevez dans ce script pour que les visage n'apparaissent pas ? (j'ai essayez en vain... )
comme j'ai beaucoup de charas sans visage, j'aimerai enlever les faces des messages !
Voila, merci encore pour ce sublime script !
Juste un petit détail, que faut-il enlevez dans ce script pour que les visage n'apparaissent pas ? (j'ai essayez en vain... )
comme j'ai beaucoup de charas sans visage, j'aimerai enlever les faces des messages !
Voila, merci encore pour ce sublime script !
- InvitéInvité
Re: Générateur d'événements.
Mer 11 Fév 2009 - 18:38
Magnifique comme script! Mais pour une raison que j'ignore...quand je l'utilise mon jeu subit un ralentissement pas possible! Y aurais t'il un moyen d'arranger tout ca?
Re: Générateur d'événements.
Mer 11 Fév 2009 - 19:11
t'es sur de ne pas avoir mis le générateur d'event en processus parallèle ?
pour enlever les faces, il suffit de remplacer la ligne:
pour enlever les faces, il suffit de remplacer la ligne:
- Code:
(ajout_cmd(101,[face,f_index,0,2])
- Code:
(ajout_cmd(101,["",0,0,2])
- InvitéInvité
Re: Générateur d'événements.
Dim 15 Fév 2009 - 7:45
Non...il est en automatique....c'est bien ca la config requise?
Re: Générateur d'événements.
Dim 15 Fév 2009 - 15:24
dans ce cas, il faut que tu mettes la commande : effacer l'evénément, apres l'appel de script
- InvitéInvité
Re: Générateur d'événements.
Lun 23 Fév 2009 - 22:55
Merci ca fonctionne a merveille maintenant, super script!
- XakuXMembre
- Nombre de messages : 1263
Age : 30
Localisation : là où tu n'auras jamais l'idée de chercher !
Distinction : * Bougre d'âne
Le bizu' à son Coco'
[Coco' ]
Membre aux désirs inassouvis de domination mondiale. [Maître du destin]
Date d'inscription : 13/12/2008
Re: Générateur d'événements.
Ven 6 Mar 2009 - 20:06
Petit nécropost, ne valant peut-être pas un nouveau sujet !
Maintenant addicte a ce (sublime) script, j'ai donc tout naturellement éssayé de rajouter quelques personnages à la sélection "People".
J'ai, bien entendu, nommé mes nouveaux charas et faceset "People6", "People7"... parfaitement orthographié et aux bonnes endroits.
Pour plus de sureté, je les est même placé a coté des autres "people"s.
Mais en fin de compte, lorsque je fais appelle a ce script, il ne fait apparaitre que les anciens peoples (pourtant je n'ai commit aucune faute dans les noms des nouveaux charas, comm je te l'ai dit!).
une malchance incroyable, n'êtant jamis tombé sur mes nouveu charas après maintes tentatives (hypothèse peu probable), ou plutot une erreur de ma part, un nouveau paramêtre a régler?
Si tu pouvais m'expliquer comment regler ce problême (si bien entendu tu en as la solutons !). Je n'ai pas essayé de les renommé différement (et de changer le nom imposé dans le script par la même occasion), pour voir si le problême vient de l'appellation "People", je préferais te demander ton avis, mais si cette solution s'impose, ou que tu ne vois pas d'autres solutions, je renommerais les images conscerné !
Pour quelque précision, mes images ont bien le même format que les autres, et fonctionne, sauf dans ce script ^^!
Voila, encore merci de nous fournir tes superbes scripts!
Amicalement XakuX !
Maintenant addicte a ce (sublime) script, j'ai donc tout naturellement éssayé de rajouter quelques personnages à la sélection "People".
J'ai, bien entendu, nommé mes nouveaux charas et faceset "People6", "People7"... parfaitement orthographié et aux bonnes endroits.
Pour plus de sureté, je les est même placé a coté des autres "people"s.
Mais en fin de compte, lorsque je fais appelle a ce script, il ne fait apparaitre que les anciens peoples (pourtant je n'ai commit aucune faute dans les noms des nouveaux charas, comm je te l'ai dit!).
une malchance incroyable, n'êtant jamis tombé sur mes nouveu charas après maintes tentatives (hypothèse peu probable), ou plutot une erreur de ma part, un nouveau paramêtre a régler?
Si tu pouvais m'expliquer comment regler ce problême (si bien entendu tu en as la solutons !). Je n'ai pas essayé de les renommé différement (et de changer le nom imposé dans le script par la même occasion), pour voir si le problême vient de l'appellation "People", je préferais te demander ton avis, mais si cette solution s'impose, ou que tu ne vois pas d'autres solutions, je renommerais les images conscerné !
Pour quelque précision, mes images ont bien le même format que les autres, et fonctionne, sauf dans ce script ^^!
Voila, encore merci de nous fournir tes superbes scripts!
Amicalement XakuX !
Re: Générateur d'événements.
Ven 6 Mar 2009 - 21:00
il faut que tu modifies la ligne:
berka
- Code:
res=$characters+(rand(3)+1).to_s
- Code:
res=$characters+(rand(4)+1).to_s
berka
Re: Générateur d'événements.
Ven 6 Mar 2009 - 21:38
Je me suis empressé de corrigé, je pensais que ca allait passer inaperçu, mais nan !
Mist' a l'oeil !
sincères regrets ^^
berka()
Mist' : Héhé x)
@Mode_leche_bottes = true
Nope, mais, ce n'est rien hein, t'es toujours aussi bon ='P
@Mode_leche_bottes = false
Mist' a l'oeil !
sincères regrets ^^
berka()
Mist' : Héhé x)
@Mode_leche_bottes = true
Nope, mais, ce n'est rien hein, t'es toujours aussi bon ='P
@Mode_leche_bottes = false
- La MecheMembre
- Nombre de messages : 44
Age : 30
Localisation : Dans une contrée fort fort lointaine...
Distinction : aucune
Date d'inscription : 19/08/2008
Re: Générateur d'événements.
Sam 7 Mar 2009 - 10:49
Pour quand le script qui peut créer des events avec des commandes différentes de "Message" ?
- La MecheMembre
- Nombre de messages : 44
Age : 30
Localisation : Dans une contrée fort fort lointaine...
Distinction : aucune
Date d'inscription : 19/08/2008
Re: Générateur d'événements.
Jeu 19 Mar 2009 - 12:06
Eh...
Condition
Gestion de variable
Deplacement d'even
Interrupteur normaux/local
Page
Niveau des even (même niveau, au dessusn dessous)
Enfin...
Voilà a peu près les principales même la total est bien...
Je suis un client egisant ^^'
Condition
Gestion de variable
Deplacement d'even
Interrupteur normaux/local
Page
Niveau des even (même niveau, au dessusn dessous)
Enfin...
Voilà a peu près les principales même la total est bien...
Je suis un client egisant ^^'
Re: Générateur d'événements.
Jeu 19 Mar 2009 - 18:33
Je vais les ranger par ordre de facilité:
Gestion de variable
Niveau des even
Interrupteur normaux/local
Condition
Deplacement d'even
Page
je regarde ce que je peux faire !
(en revanche, j'ai pas mal de taf cette semaine...)
berka
Gestion de variable
Niveau des even
Interrupteur normaux/local
Condition
Deplacement d'even
Page
je regarde ce que je peux faire !
(en revanche, j'ai pas mal de taf cette semaine...)
berka
- La MecheMembre
- Nombre de messages : 44
Age : 30
Localisation : Dans une contrée fort fort lointaine...
Distinction : aucune
Date d'inscription : 19/08/2008
Re: Générateur d'événements.
Jeu 19 Mar 2009 - 18:34
T'inquiéte pas, je ne suis pas pressé !
Si tu veux, tu peux me donner quelque exemple de commande et j'essairais de faire les autres !
Si tu veux, tu peux me donner quelque exemple de commande et j'essairais de faire les autres !
Re: Générateur d'événements.
Jeu 16 Avr 2009 - 12:02
moi j'ai un problème j'ai mis le script au dessus de main,j'ai crée un évent qui se déplace aléatoirement é j'ai fais l'appel de script mais quand je lui parle il se retourne en une fraction de seconde et il ne se passe rien
- XakuXMembre
- Nombre de messages : 1263
Age : 30
Localisation : là où tu n'auras jamais l'idée de chercher !
Distinction : * Bougre d'âne
Le bizu' à son Coco'
[Coco' ]
Membre aux désirs inassouvis de domination mondiale. [Maître du destin]
Date d'inscription : 13/12/2008
Re: Générateur d'événements.
Jeu 16 Avr 2009 - 12:07
ce n'est pas comme ca qu'il fonctionne, il faut mettre un évenment en processus parralèle n'importe ou sur la carte, tu fait plusieurs appelle de script (en prenant exemple de celui proposé en haut du script ) et ensuit tu met "éffacer l'évenement" et voila tu aura des personnages aléatoire sur ta carte
Bonne continuation !
PS: évite les remonté de sujet, crées-en un autre dans entraide dans ce genre de cas !
Bonne continuation !
PS: évite les remonté de sujet, crées-en un autre dans entraide dans ce genre de cas !
Re: Générateur d'événements.
Jeu 16 Avr 2009 - 12:21
ça marche pas :j'ai mis mon évènement sur la carte, j'ai fais appel de script et j'ai fais effacer l'événement et quand je met en processus parallèle, l'événement ne s'affiche pas et quand je met touche action, il s'efface aidez mois s'il vous plaît
- XakuXMembre
- Nombre de messages : 1263
Age : 30
Localisation : là où tu n'auras jamais l'idée de chercher !
Distinction : * Bougre d'âne
Le bizu' à son Coco'
[Coco' ]
Membre aux désirs inassouvis de domination mondiale. [Maître du destin]
Date d'inscription : 13/12/2008
Re: Générateur d'événements.
Jeu 16 Avr 2009 - 13:03
bon je sais passi c'est que je m'exprime mal ces eps-ci ou si je tombe que sur des boulets, ais mes explication ne conviennent pas... alors je laisse parler les screens:
et si sa ne marche toujourspas, sois tu es vraiment un boulet et tu recopie mal mon screen... Sois tu as une incomptaibilité avec un script ou des ressources, a ce moment, crée un nouveau sujet, ca devient plus complexe !
et si sa ne marche toujourspas, sois tu es vraiment un boulet et tu recopie mal mon screen... Sois tu as une incomptaibilité avec un script ou des ressources, a ce moment, crée un nouveau sujet, ca devient plus complexe !
Page 1 sur 2 • 1, 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum