Oniromancie: Scripts - Générateur d'events aléatoires


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

Alex d'Or 2017-18: règlement / News: MegaMaker : créez votre propre (...) / News: Test de Tinker Quarry / Sorties: Leave the Room / Jeux: Leave the Room /

Chat  (13 connectés)

Bienvenue
visiteur !






publicité RPG Maker!

Statistiques

Liste des
membres


Contact

70 connectés actuellement

9170552 visiteurs
depuis l'ouverture

804 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

Pixelandgame

CrazyCollec RPG Maker

La maison des Makers

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





Générateur d'events aléatoires
Script pour RPG Maker VX
Ecrit par berka

Générateur de PNJ

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.

J'ai volontairement pas inclu certaines fonctions d'events. Je pense que ce script est fait pour creer des pnj, donc toutes les commandes complexes comme les conditions, gestions de variables sont inutiles.

collez ce script au dessus de main:



Portion de code:





#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

# Générateur d'événement
# par berka rgss2
# www.rpgmakervx-fr.com
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# 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 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



Portion de 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 ! votre map sera remplie de gus.


si vous avez des questions....

berka


Zeus81 - posté le 21/05/2009 à 00:49:00. (11072 messages postés) - bocauxharam

Citation:

return Kernel.eval(script)


eval retourne le résultat de l'opération qu'on lui donne.
Par exemple quand on fait eval(var = 1 + 1) ça retourne 2.
Donc quand on fait insérer un script et qu'on met un truc du genre var = false
Le eval retourne false.
Et quand l'interpreteur reçois un false, il croit qu'il y eu une erreur et il recommence.
Autrement dit ça bug !
Donc vaut mieux mettre un return true.
Je sais que sur XP c'est comme ça par défaut mais c'est une erreur, la preuve dans VX ils ont mis un return true :D


Minusc - posté le 21/05/2009 à 10:46:40. (239 messages postés)

Citoyen de Rapture

Excelent !
Ca permet plein des trucs super ça !
Ceci dit, sur quel version marche ce script ? Vx ou/et Xp ?

(par contre, j'ai du mal à piger la remarque de Zeus81 >.<)

http://www.hordes.fr?ref=Minusc


Monos - posté le 21/05/2009 à 11:28:44. (56267 messages postés) - admin

Vive le making libre

Lisez les scripts.

Citation:

Générateur d'événement

# par berka rgss2

# www.rpgmakervx-fr.com

#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

# Rgss 2 v 2.1 sur les bases de mithos et pipo



RGSS 2 dont 99% chance que cela soit VX.

Plus
www.rpgmakervx-fr.com
si on a pas fait gaffe au RGSS2.

Pixner|Offgame | Le comptoire des clikeurs


berka - posté le 21/05/2009 à 13:18:43. (493 messages postés)

planchant sur un script

Exact, Zeus !
J'ai zappé ça... et vu que je ne me sers quasiment jamais des events...

berka

Twitter: Pensées politiques et juridiques. Réflexions informatiques


Rorito - posté le 06/06/2009 à 11:55:00. (43 messages postés)

Ils ont fait chier le mauvais mexicain...

Petite question de débutant:D
si on met pas l'event en processus parallèle, on met quoi?

Pourquoi dans ce magnifique film qu'est Massacre à la tronçonneuse les personnages ne vont jamais aux toilettes et ne se lavent jamais les mains? No reason. Pourquoi certains aiment les saucisses et d'autres pas? No fucking reason.


zehytos - posté le 10/06/2009 à 20:35:59. (5 messages postés)

J'ai un tout petit problème ... :'(
sa bug (chez moi) à la ligne 194 :

class Scene_Map def refresh_spriteset

j'ai testé sur un projet vierge sa bug quand même ...

donc :help

la vie ne vaut rien et rien ne vaut la vie.


fou de rpg - posté le 04/08/2009 à 21:55:54. (17 messages postés)

Gamer

Ouai salut c'est pareille que toi Zehytos
je ne trouve pas de solution quelqu'un pourait nous aider
s'il vous plait.:sriden

rpg


sherkan95 - posté le 19/09/2009 à 16:50:32. (3 messages postés)

salut jai un peu besoin daide jai mit le cripte au dessus de main comme vous le dite mais quand je jou il ny a aucun png ajouter jai du mal ^^ aidé moi svp merci


dramar - posté le 24/02/2010 à 18:20:50. (33 messages postés)

Pas processus paralele > Automatique ou contact... ou encore (Si event commun)Appel

Maker de RMXP,0Jeux postés,0Telechargements,0Images,1Jeu a héberger


Distor - posté le 28/04/2010 à 18:13:29. (3 messages postés)

Finir son projet ou ne pas le finir, telle est la question!

J'ai la solution pour la ligne 194 qui bug, faites Entrée devant "def" pour le remettre en place!


--ayoub-- - posté le 24/05/2010 à 17:41:18. (96 messages postés)

C'est moi la meileur

:sonic

78


Khradil - posté le 29/10/2010 à 10:20:16. (96 messages postés)

Bon,moi le script marche,mais les PNJ ne parles pas,dommage...
Autre choses,pour certains qui disent,si on ne pas en processus parallele,mettez-le sur une dalle en contact avec le heros =)


Lord Lagiacrus - posté le 12/04/2011 à 21:41:48. (4 messages postés)

Jhhiirooo... Luke... Je suis ton père! NON!

Désolé d'up le poste :s mais j'ai le même problème que Khradil... Y aurait-il quelqu'un pour y remedier?:susp

Ha, et pour une pose facile des pnjs, processus parallèle dans un event ac l(es)'appelle(s) du script puis en bas de la liste "effacer cet évènement":biere

Luttons contre le réchauffement climatique... ouvrons nos frigos!


Magik - posté le 06/10/2011 à 22:42:42. (3 messages postés)

Fan de jeu RPG

marche pas :'(


mauderich - posté le 09/03/2012 à 02:53:11. (63 messages postés)

•Ƹ̵̡Ӝ̵̨̄Ʒ•

moi cest la ligne 387 qui marche pas ... je ne suis pas vraiment habituer avec les script ... es ce que je dois changer quelque chose dedans ou cest juste copier collé et aussi je comprend pas le '' 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


Portion de 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 ! votre map sera remplie de gus. ''

merci de m'aider je suis débutent :doute5

La vie est courte, alors profite en !!!

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis