|
Je suis dans le game ! | Domaine concerné: RGSS
Logiciel utilisé: RMXP
COUCHE DE DONNEES STATIQUES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
| class RPG::Equipementvaisseau
def initialize
@id = 0
@type = ""
@name = ""
@description = ""
@solidite = 0
@capacite = 0
@consomationNRJ = 0
end
attr_accessor :id
attr_accessor :name
attr_accessor :description
attr_accessor :solidite
attr_accessor :usure
attr_accessor :capacite
attr_accessor :consomationNRJ
end
class Scene_Title
alias equipementvaisseau_main main
def main
# Au début de l'écran titre
# si le jeu n'est pas crypté
if $DEBUG
# on crée le dossier "lesequipementsvaisseau Data" si il n'existe pas déjà
begin
Dir.mkdir("lesequipementsvaisseau Data")
rescue
end
# on crée le fichier Data/lesequipementsvaisseau.rxdata
create_lesequipementsvaisseau_rxdata
end
# on charge la base de données des quêtes
$data_equipementvaisseau = load_data("Data/lesequipementsvaisseau.rxdata")
# on execute le reste de l'écran titre
equipementvaisseau_main
end
# Méthode de création du fichier Data/lesequipementsvaisseau.rxdata
def create_lesequipementsvaisseau_rxdata
# Le tableau qui contiendra les objets RPG::Equipementvaisseau
lesequipementsvaisseau_data = []
# Pour chaque fichier texte dans le dossier "lesequipementsvaisseau Data"
for file_name in Dir["lesequipementsvaisseau Data/*.txt"]
# on crée un nouvel objet RPG::Equipementvaisseau
equipementvaisseau = RPG::Equipementvaisseau.new
# on ouvre le fichier en mode lecture
File.open(file_name, 'r') do |txt_file|
# on initialise les propriétés de l'equipement
# en lisant le fichier ligne par ligne
equipementvaisseau.id = txt_file.readline.gsub("id : ", "").to_i
equipementvaisseau.name = txt_file.readline.gsub("name : ", "").to_s
equipementvaisseau.description = txt_file.readline.gsub("description : ", "").to_s
equipementvaisseau.solidite = txt_file.readline.gsub("solidite : ", "").to_i
equipementvaisseau.capacite = txt_file.readline.gsub("capacite : ", "").to_i
equipementvaisseau.consomationNRJ = txt_file.readline.gsub("consomationNRJ : ", "").to_i
end
# on stocke l'objet RPG::Equipementvaisseau à son index dans le tableau
equipementsvaisseau_data[equipementvaisseau.id] = equipementvaisseau
end
# On ouvre le fichier Data/equipementsvaisseau.rxdata en mode écriture binaire
File.open("Data/equipementsvaisseau.rxdata", 'wb') do |rxdata_file|
# on stocke le tableau des equipements du vaisseau dans le fichier Data/lesequipementsvaisseau.rxdata
Marshal.dump(lesequipementsvaisseau_data, rxdata_file)
end
end
end
|
COUCHE DE DONNEES DYNAMIQUES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
class Game_Equipementvaisseau
attr_accessor :id
attr_accessor :type
attr_accessor :name
attr_accessor :description
attr_accessor :solidite
attr_accessor :usure
attr_accessor :capacite
attr_accessor :consomationNRJ
def initialize(equipementvaisseau_id)
# On récupère tout d'abord l'objet RPG::equipementvaisseau pour l'initialisation
equipementvaisseau = $data_lesequipementsvaisseau[equipementvaisseau_id]
# et on initialise les données
@id = equipementvaisseau.id
@name = equipementvaisseau.name
@description = equipementvaisseau.descriptioon
@solidite = equipementvaisseau.solidite
@capacite = equipementvaisseau.capacite
@consomationNRJ = equipementvaisseau.consomationNRJ
# L'equipement n'est pas use au départ
@usure = 0
@fonctionne = 3 #0=detruit, 1=panne, 2=avarie, 3=plein regime
end
# Méthode qui renvoie si l'equipement l'etat de fonction de l'equipement
def fonctionne?
return @fonctionne
end
# Méthode qui permet de definir si l equipement fonctionne
def verif_etat
if @solidite<=0
elsif @usure>=@solidite
@usure==@solidite
#ICI il y aura l option d' assignement automatique si un mechanicien est libre
@fonctionne == 0
elsif usure>(solidite/3*2)
#ICI il y aura l option d'assignement automatique si un Mechanicien est libre
@fonctionne == 2
elsif @usure<=0
@usure==0
@fonctionne == 3
elsif @usure<(solidite/3*2)
@fonctionne == 3
end
end
end |
partie2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
| class Game_Party
attr_reader :lesequipementsvaisseau
@prodNRJ =0
@vitesse =0
@Champ =0
@blindage =0
@puissance =0
# On rajoute dans Game_Party un tableau qui contient les equipements recus
# et les caracteritique actuel
alias equipementvaissau_initialize initialize
def initialize
equipementvaissau_initialize
@equipement du vaisseau = [@noyauduvaisseau, @moteurduvaisseau, @generateurchampsduvaisseau, @blindageduvaisseau, @armementduvaisseau]
@caracteristiquesduvaisseau = [@prodNRJ, @consomationNRJ, @vitesse, @blindage, @puissancefeu, @champ]
refresh
end
# Méthode qui pemet de recevoir un equipement
def get_equipementvaisseau(equipementvaisseau_id, equipementvaisseau_type)
if |equipementvaisseau|(equipementvaisseau_type) =="noyaux"
# On ajoute à la liste des equipements un nouvel objet Game_equipementvaisseau
@noyauxduvaisseau << Game_equipementvaisseau.new(equipementvaisseau_id)
elseif |equipementvaisseau|(equipementvaisseau_type) =="moteur"
# On ajoute à la liste des equipements un nouvel objet Game_equipementvaisseau
@moteurduvaisseau << Game_equipementvaisseau.new(equipementvaisseau_id)
elseif |equipementvaisseau|(equipementvaisseau_type) =="generateur de champ"
# On ajoute à la liste des equipements un nouvel objet Game_equipementvaisseau
@generateurchampsduvaisseau << Game_equipementvaisseau.new(equipementvaisseau_id)
elseif |equipementvaisseau|(equipementvaisseau_type) =="blindage"
# On ajoute à la liste des equipements un nouvel objet Game_equipementvaisseau
@blindageduvaisseau << Game_equipementvaisseau.new(equipementvaisseau_id)
elseif |equipementvaisseau|(equipementvaisseau_type) =="armement"
# On ajoute à la liste des equipements un nouvel objet Game_equipementvaisseau
@armementduvaisseau << Game_equipementvaisseau.new(equipementvaisseau_id)
end
# Méthode qui permet modifier l'usure d'un equipement
def usure_equipementvaisseau(equipementvaisseau_id)
# On récupère une equipementvaisseau d'id equipementvaisseau_id
equipementvaisseau = @equipementvaisseau.find { |equipementvaisseau|
equipementvaisseau.id == equipementvaisseau_id}
# Si un tel equipement existe, on lui augmente usure
equipementvaisseau.usure=+1 if equipementvaisseau != nil
end
#Methode qui renvoi de caracteristique refresh
def refresh
#On renvoi le blindage en fonction du typ de blindage et de son etat
@blindage == @blindageduvaisseau(solidite)-|@blindageduvaisseau|(usure)
#on calcul le blindage enfonction de la solidite et de son etat d'usure
#on renvoi la production d'energie du noyau en fonction de l equipement et de son etat
if |@noyauduvaisseau|(fonctionne)=3 #si il fonctionne a plein regime
@prodNRJ == @noyauduvaisseau(capacite) #il renvoi sa capacite de prod d NRJ
elsif @noyauduvaisseau(fonctionne)=2#sinon si il fonctionne en mode avarie
@prodNRJ == @noyauduvaisseau(capacite)/2# il ne renvoi que la moitie
else
@prodNRJ == 0#sinon il ne produit pas d'energie
end
#on renvoi la vitesse en fonction du moteur, de son etat et de son alimentation en NRJ
if @moteurduvaisseau(fonctionne)=3#si il fonctionne a plein regime
if prodNRJ >@moteurduvaisseau(consomationNRJ)#si il y a assez dNRJ pour l'alimenter
vitesse == @moteurduvaisseau(capacite)#il renvoi sa capacite
else
vitesse == 0#si il n' y a pas assez dNRJ pour l'alimenter le vaisseau n'avance pas
end
elsif |@moteurduvaisseau|(fonctionne)=2#sinon si il fonctionne en mode avarie
if prodNRJ >@moteurduvaisseau(consomationNRJ)#si il y a assez dNRJ pour l'alimenter
vitesse == @moteuruduvaisseau(capacite)/2# il ne renvoi aue la moitie de sa capacite
else
vitesse == 0#si il n' y a pas assez dNRJ pour l'alimenter le vaisseau n'avance pas
end
else
vitesse == 0#si le moteur est trop endomage le vaisseau n'avance pas
end
#on renvoi la puissance de l'amement, en fonctionde son etat et de son alimentation en NRJ
if |@armementduvaisseau|(fonctionne)=3#si il fonctionne a plein regime
if @prodNRJ-@moteurduvaisseau(consomationNRJ)>@armementduvaisseau(consomationNRJ)#si il y a assez dNRJ pour l'alimenter en plus du moteur
@puissance == @armementduvaisseau(capacite)#il renvoi sa capacite
else
@puissance == 0#si il n' y a pas assez dNRJ pour l'alimenter le vaisseau ne tir pas
end
elseif @armementduvaisseau|fonctionne)=2#sinon si il fonctionne en mode avarie
if @prodNRJ-@moteurduvaisseau(consomationNRJ)>|@armementduvaisseau|(consomationNRJ)#si il y a assez dNRJ pour l'alimenter en plus du moteur
@puissance == @armementduvaisseau(capacite)/2# il ne renvoi aue la moitie de sa capacite
else
@puissance == 0#si il n' y a pas assez dNRJ pour l'alimenter le vaisseau ne tir pas
end
else
@puissance == 0#si lesarmes sont trop endomagees le vaisseau ne tir pas
end
#on renvoi la puissance du champ de force en fonctionde son etat et de son alimentation en NRJ
if @champduvaisseau(fonctionne)=3#si il fonctionne a plein regime
if @prodNRJ-@moteurduvaisseau(consomationNRJ)>@champduvaisseau(consomationNRJ)#si il y a assez dNRJ pour l'alimenter en plus du reste
@champ == @champduvaisseau(capacite)#il renvoi sa capacite
else
@champ == 0#si il n' y a pas assez dNRJ pour l'alimenter le champ
end
elsif @champduvaisseau(fonctionne)=2#sinon si il fonctionne en mode avarie
if @prodNRJ-@moteurduvaisseau(consomationNRJ)>|@champduvaisseau|(consomationNRJ)#si il y a assez dNRJ pour l'alimenter en plus du reste
@champ == @champduvaisseau(capacite)/2# il ne renvoi aue la moitie de sa capacite
else
@champ == 0#si il n' y a pas assez dNRJ pour l'alimenter le champ
end
else
@champ == 0#si le champest trop endomage
end
end |
Pour modifier l usure d'un equipement
$game_party.usure_equipementvaisseau(equipementvaisseau_id)
Pour recevoir un equipement d'id XXXX, on utilisera le script
Code Ruby
$game_party.get_equipementvaisseau(XXX)")
LA SCENE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
class Window_vitesse < Window_Base
attr_reader = vitesse
attr_reader = champ
attr_reader = blindage
attr_reader = puissance
attr_reader = prodNRJ
def initialize
# Dimension de la fenêtre
super(0, 0, 160, 64)
# Création du Bitmap
self.contents = Bitmap.new(width - 32, height - 32)
# Police et taille du texte.
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
# Appelle la méthode "Refresh" pour initialiser le texte
refresh
end
def refresh
# Effacement du contenu de la fenêtre
self.contents.clear
# Affichage du texte
self.contents.draw_text(0, 0, 120, 32, "NRJ : "+ProdNRJ.to_s+" "+"Vtsse : "+vitesse.to_s+" "+"blind. : "+blindage.to_s+" "+"Chp : "+Champ.to_s+" "+"PdF : "+puissance.to_s)
end
end |
¦/spoiler]
|
Projet en cours: INRAL / En pause :NEOTORI /// Pause : L'ANKH DE KINBRA /// Pause : GRASS SHOPPER /// GALERIE |
Grimimi -
posté le 13/12/2012 à 14:46:29 (251 messages postés)
|
| Citation: attr_reader = Game_Party.vitesse
attr_reader = Game_Party.champ
attr_reader = Game_Party.blindage
attr_reader = Game_Party.puissance
attr_reader = Game_party.prodNRJ |
wtf?
|
http://funkywork.github.io/ |
arttroy -
posté le 13/12/2012 à 19:35:41 (2394 messages postés)
|
Just working | attr_reader :vitesse
attr_reader :champ
attr_reader :blindage
....
je pense que ce sera mieux...
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
|
Je suis dans le game ! | ok merci je corrige
A part ca le reste parait normal ?
Je vais programmer le reste de mon code mais je voulais savoir si je me plantais pas avant de continuer et de tester le rendu. Escusez moi j'ai un peu de mal avec les tutos et les cours pour apprendre donc je risque de poser pas mal de questions un peu chiante. desole.
|
Projet en cours: INRAL / En pause :NEOTORI /// Pause : L'ANKH DE KINBRA /// Pause : GRASS SHOPPER /// GALERIE |