Kingdom maker : Le royaume du Making

Le site du making avec les meilleurs ressources, scripts, download et tutoriels
 
AccueilLe sitePortailFAQRechercherS'enregistrerGroupesMembresConnexion

Partagez | 
 

 Monstre adapté a vos héros

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Invité
Invité



MessageSujet: Monstre adapté a vos héros   Mar 30 Oct - 23:55

Auteur:SunMat

Remarque:Non testé, dit fonctionnel. Lire la présentation.

Presentation: Voilà les choses qui changeront : dans la création d'un monstre vous aviez :

PV max
PM max*
Force
Defence*
Agilité *
Intelligence*
Attaque
Def physique
Def magique
Esquive *

Les données qui ont un * devant restent inchangées, vous choisissez ce que vous voulez, elles resteront stables tout au long au jeu.

Maintenant voilà ce que deviennent les autres valeurs :

PV max : c'est le pourcentage de la somme des PV max de l'équipe.

Je m'explique : vous avez 2 héros de PV maximums 450 et 500. La somme est 950. Si vous mettez 10 dans les champ "PV max" du monstre" ça donnera :
950*10/100 (10% de la somme) = 95

Rien de vous empèche de mettre des grands nombres comme 200% pour un boss, mais je vous préviens : 80% cest déjà du gros monstre dure à battre !

Force : cette fois c'est le pourcentage de la moyenne des forces de l'équipe.

Exemple : 2 héros de forces 30 et 50. Moyenne : 40 Vous placez par exemple 50 dans le champ "Force" du monstre, vous obtenez 40*50/100 = 20

L'attaque, la défence physique et la défence magique fonctionnent sur le même principe que la force, avec une moyenne des données de l'équipe, et non pas une somme comme pour les PVmax.


Precision:Précision : Pour l'expérience donnée par le monstre, elle est égale au produit de l'expérience que vous avez inscrit dans le champs "expérience" du monstre, et du niveau du héros n°1 (uniquement).
Mais cette relation est modifiable, si elle ne vous plait pas, demandez moi je vous la modifierai.
Exemple : un héros de level 34 combat un monstre censé donner 10 d'Exp, ça donne un total de 10*34 = 340 pts d'expérience.

Ne mettez donc pas de trop grand nombre, de toute façon, puisqu'il s'adapte :
Au niveau 1 : le héros tue le monstre et gagne 10 pts
Au niveau 34 : le héros tue le monstre et gagne 340 pts
ça parait normal, puisque plus le niveau monte, plus il faut de points pour passer au suivant.

Code :

1. #------------------------------------------------------------------------------
2. # ■ Game_Enemy
3. #------------------------------------------------------------------------------
4. # scrîpt créé par SunMat, les monstres s'adaptent aux données du héros
5. # #====================================================
6.
7. class Game_Enemy < Game_Battler
8. #--------------------------------------------------------------------------
9. # fonction d'initialisation
10. #--------------------------------------------------------------------------
11. def initialize(troop_id, member_index)
12. super()
13. @troop_id = troop_id
14. @member_index = member_index
15. troop = $data_troops[@troop_id]
16. @enemy_id = troop.members[@member_index].enemy_id
17. enemy = $data_enemies[@enemy_id]
18. @battler_name = enemy.battler_name
19. @battler_hue = enemy.battler_hue
20. @hp = maxhp
21. @sp = maxsp
22. @hidden = troop.members[@member_index].hidden
23. @immortal = troop.members[@member_index].immortal
24. end
25. #--------------------------------------------------------------------------
26. # ID
27. #--------------------------------------------------------------------------
28. def id
29. return @enemy_id
30. end
31. #--------------------------------------------------------------------------
32. # Index
33. #--------------------------------------------------------------------------
34. def index
35. return @member_index
36. end
37. #--------------------------------------------------------------------------
38. # Nom du monstre
39. #--------------------------------------------------------------------------
40. def name
41. return $data_enemies[@enemy_id].name
42. end
43. #--------------------------------------------------------------------------
44. # Max Hp = somme des maxHp des héros dans l'équipe
45. # multiplié par le pourcentage défini
46. #--------------------------------------------------------------------------
47. def base_maxhp
48. hp = $game_actors[1].maxhp
49. if $game_actors[2].hp != 0
50. hp += $game_actors[2].maxhp
51. end
52. if $game_actors[3].hp != 0
53. hp += $game_actors[3].maxhp
54. end
55. if $game_actors[4].hp != 0
56. hp += $game_actors[4].maxhp
57. end
58. hp *= $data_enemies[@enemy_id].maxhp
59. hp /= 100
60. return hp
61. end
62. #--------------------------------------------------------------------------
63. # Max Sp définis dans l'absolue
64. #--------------------------------------------------------------------------
65. def base_maxsp
66. return $data_enemies[@enemy_id].maxsp
67. end
68. #--------------------------------------------------------------------------
69. # Force en fonction du pourcentage de la somme de la force de l'équipe
70. #--------------------------------------------------------------------------
71. def base_str
72. a = 1
73. frc = $game_actors[1].str
74. if $game_actors[2].hp != 0
75. frc += $game_actors[2].str
76. a +=1
77. end
78. if $game_actors[3].hp != 0
79. frc += $game_actors[3].str
80. a += 1
81. end
82. if $game_actors[4].hp != 0
83. frc += $game_actors[4].str
84. a += 1
85. end
86. frc *= $data_enemies[@enemy_id].str
87. frc /= (100*a)
88. return frc
89. end
90. #--------------------------------------------------------------------------
91. # dextérité définie dans l'absolue
92. #--------------------------------------------------------------------------
93. def base_dex
94. return $data_enemies[@enemy_id].dex
95. end
96. #--------------------------------------------------------------------------
97. # agilité définie dans l'absolue
98. #--------------------------------------------------------------------------
99. def base_agi
100. return $data_enemies[@enemy_id].agi
Revenir en haut Aller en bas
Invité
Invité



MessageSujet: Re: Monstre adapté a vos héros   Mer 31 Oct - 0:00

101. end
102. #--------------------------------------------------------------------------
103. # intelligence définie dans l'absolue
104. #--------------------------------------------------------------------------
105. def base_int
106. return $data_enemies[@enemy_id].int
107. end
108. #--------------------------------------------------------------------------
109. # attaque définie en fonction de l'attaque de l'équipe et du pourcentage
110. #--------------------------------------------------------------------------
111. def base_atk
112. at = $game_actors[1].atk
113. a = 1
114. if $game_actors[2].hp != 0
115. at += $game_actors[2].atk
116. a += 1
117. end
118. if $game_actors[3].hp != 0
119. at += $game_actors[3].atk
120. a += 1
121. end
122. if $game_actors[4].hp != 0
123. a += 1
124. at += $game_actors[4].atk
125. end
126. at *= $data_enemies[@enemy_id].atk
127. at /= (100*a )
128. return at
129. end
130. #--------------------------------------------------------------------------
131. # défence définie en fonction du pourcentage moyen de la défence de l'équipe
132. #--------------------------------------------------------------------------
133. def base_pdef
134. df = $game_actors[1].pdef
135. a = 1
136. if $game_actors[2].hp != 0
137. df += $game_actors[2].pdef
138. a += 1
139. end
140. if $game_actors[3].hp != 0
141. df += $game_actors[3].pdef
142. a += 1
143. end
144. if $game_actors[4].hp != 0
145. df += $game_actors[4].pdef
146. a += 1
147. end
148. df *= $data_enemies[@enemy_id].pdef
149. df /= (100*a)
150. return df
151. end
152. #--------------------------------------------------------------------------
153. # défence magique en fonction de la défence de l'équipe
154. #--------------------------------------------------------------------------
155. def base_mdef
156. mdf = $game_actors[1].mdef
157. a = 1
158. if $game_actors[2].hp != 0
159. mdf += $game_actors[2].mdef
160. a += 1
161. end
162. if $game_actors[3].hp != 0
163. mdf += $game_actors[3].mdef
164. a += 1
165. end
166. if $game_actors[4].hp != 0
167. mdf += $game_actors[4].mdef
168. a += 1
169. end
170. mdf *= $data_enemies[@enemy_id].mdef
171. mdf /= (100*a)
172. return mdf
173. end
174. #--------------------------------------------------------------------------
175. # evasion non changée
176. #--------------------------------------------------------------------------
177. def base_eva
178. return $data_enemies[@enemy_id].eva
179. end
180. #--------------------------------------------------------------------------
181. #animation non changée
182. #--------------------------------------------------------------------------
183. def animation1_id
184. return $data_enemies[@enemy_id].animation1_id
185. end
186. #--------------------------------------------------------------------------
187. # animation non changée
188. #--------------------------------------------------------------------------
189. def animation2_id
190. return $data_enemies[@enemy_id].animation2_id
191. end
192. #--------------------------------------------------------------------------
193. # element_rate non changé
194. #--------------------------------------------------------------------------
195. def element_rate(element_id)
196. # 属性有効度に対応する数値を取得
197. table = [0,200,150,100,50,0,-100]
198. result = table[$data_enemies[@enemy_id].element_ranks[element_id]]
199. # ステートでこの属性が防御されている場合は半減
200. for i in @states
201. if $data_states.guard_element_set.include?(element_id)
202. result /= 2
203. end
204. end
205. # メソッド終了
206. return result
207. end
208. #--------------------------------------------------------------------------
209. # state_rank non changé
210. #--------------------------------------------------------------------------
211. def state_ranks
212. return $data_enemies[@enemy_id].state_ranks
213. end
214. #--------------------------------------------------------------------------
215. #state_guard non changé
216. #--------------------------------------------------------------------------
217. def state_guard?(state_id)
218. return false
219. end
220. #--------------------------------------------------------------------------
221. # element_set non changé
222. #--------------------------------------------------------------------------
223. def element_set
224. return []
225. end
226. #--------------------------------------------------------------------------
227. #
228. #--------------------------------------------------------------------------
229. def plus_state_set
230. return []
231. end
232. #--------------------------------------------------------------------------
233. #
234. #--------------------------------------------------------------------------
235. def minus_state_set
236. return []
237. end
238. #--------------------------------------------------------------------------
239. # action non changé
240. #--------------------------------------------------------------------------
241. def actions
242. return $data_enemies[@enemy_id].actions
243. end
244. #--------------------------------------------------------------------------
245. # expérience donnée par une formule modifiable au gré du Maker
246. # ici la formule est le produit de l'exp du monstre par le niveau du joueur 1
247. #--------------------------------------------------------------------------
248. def exp
249. expe = $game_actors[1].level * $data_enemies[@enemy_id].exp
250. return expe
251. end
252. #--------------------------------------------------------------------------
253. # ● ゴールドの取得
254. #--------------------------------------------------------------------------
255. def gold
256. return $data_enemies[@enemy_id].gold
257. end
258. #--------------------------------------------------------------------------
259. # ● アイテム ID の取得
260. #--------------------------------------------------------------------------
261. def item_id
262. return $data_enemies[@enemy_id].item_id
263. end
264. #--------------------------------------------------------------------------
265. # ● 武器 ID の取得
266. #--------------------------------------------------------------------------
267. def weapon_id
268. return $data_enemies[@enemy_id].weapon_id
269. end
270. #--------------------------------------------------------------------------
271. # ● 防具 ID の取得
272. #--------------------------------------------------------------------------
273. def armor_id
274. return $data_enemies[@enemy_id].armor_id
275. end
276. #--------------------------------------------------------------------------
277. # ● トレジャー出現率の取得
278. #--------------------------------------------------------------------------
279. def treasure_prob
280. return $data_enemies[@enemy_id].treasure_prob
281. end
282. #--------------------------------------------------------------------------
283. # ● バトル画面 X 座標の取得
284. #--------------------------------------------------------------------------
285. def screen_x
286. return $data_troops[@troop_id].members[@member_index].x
287. end
288. #--------------------------------------------------------------------------
289. # ● バトル画面 Y 座標の取得
290. #--------------------------------------------------------------------------
291. def screen_y
292. return $data_troops[@troop_id].members[@member_index].y
293. end
294. #--------------------------------------------------------------------------
295. # ● バトル画面 Z 座標の取得
296. #--------------------------------------------------------------------------
297. def screen_z
298. return screen_y
299. end
300. #--------------------------------------------------------------------------
301. #
302. #--------------------------------------------------------------------------
303. def escape
304. # ヒドゥンフラグをセット
305. @hidden = true
306. # カレントアクションをクリア
307. self.current_action.clear
308. end
309. #--------------------------------------------------------------------------
310. #
311. #--------------------------------------------------------------------------
312. def transform(enemy_id)
313. # エネミー ID を変更
314. @enemy_id = enemy_id
315. # バトラー グラフィックを変更
316. @battler_name = $data_enemies[@enemy_id].battler_name
317. @battler_hue = $data_enemies[@enemy_id].battler_hue
318. # アクション再作成
319. make_action
320. end
321. #--------------------------------------------------------------------------
322. #
323. #--------------------------------------------------------------------------
324. #scrîpt amélioré par RPG Advocate
325.
326. def make_action
327. self.current_action.clear
328. unless self.movable?
329. return
330. end
331. available_actions = []
332. rating_max = 0
333. for action in self.actions
334. n = $game_temp.battle_turn
335. a = action.condition_turn_a
336. b = action.condition_turn_b
337. if (b == 0 and n != a) or
338. (b > 0 and (n < 1 or n < a or n % b != a % b))
339. next
340. end
341. if self.hp * 100.0 / self.maxhp > action.condition_hp
342. next
343. end
344. if $game_party.max_level < action.condition_level
345. next
346. end
347. switch_id = action.condition_switch_id
348. if switch_id > 0 and $game_switches[switch_id] == false
349. next
350. end
351. if exclude_pointless_actions(action)
352. next
353. end
354. available_actions.push(action)
355. if action.rating > rating_max
356. rating_max = action.rating
357. end
358. end
359. ratings_total = 0
360. for action in available_actions
361. ratings_total += action.rating
362. end
363. if ratings_total > 0
364. choose_action = []
365. for action in available_actions
366. for j in 1..action.rating
367. choose_action.push(action)
368. end
369. end
370. enemy_action = choose_action[rand(choose_action.size - 1)]
371. self.current_action.kind = enemy_action.kind
372. self.current_action.basic = enemy_action.basic
373. self.current_action.skill_id = enemy_action.skill_id
374. self.current_action.decide_random_target_for_enemy
375. end
376. end
377. # --------------------------------
378. def exclude_pointless_actions(action)
379. if action.kind == 0
380. return false
381. end
382. if action.kind == 1
383. s = action.skill_id
384. if self.sp < $data_skills.sp_cost
385. return true
386. end
387. if $data_skills.common_event_id > 0
388. return false
389. end
390. if $data_skills.scope == 0 || $data_skills.scope == 1 ||
391. $data_skills.scope == 2
392. return false
393. end
394. if $data_skills.scope == 3 || $data_skills.scope == 4
395. if $game_troop != nil
396. fullhpflag = true
397. statusflag = true
398. for i in $game_troop.enemies
399. if i.hp < i.maxhp && i.exist?
400. fullhpflag = false
401. end
402. for j in $data_skills.plus_state_set
403. if not i.state?(j) && i.exist?
404. statusflag = false
405. end
406. end
407. for j in $data_skills.minus_state_set
408. if i.state?(j) && i.exist?
409. statusflag = false
410. end
411. end
412. end
413. end
414. if $data_skills.power == 0 && statusflag
415. return true
416. end
417. if $data_skills.power < 0 && statusflag && fullhpflag
418. return true
419. end
420. end
421. if $data_skills.scope == 5 || $data_skills.scope == 6
422. nonedeadflag = true
423. if $game_troop != nil
424. for i in $game_troop.enemies
425. if i.dead? and not i.hidden
426. nonedeadflag = false
427. end
428. end
429. end
430. if nonedeadflag
431. return true
432. end
433. end
434. if $data_skills.scope == 7
435. if $game_troop != nil
436. fullhpflag = true
437. statusflag = true
438. if self.hp < self.maxhp
439. fullhpflag = false
440. end
441. for j in $data_skills.plus_state_set
442. if not self.state?(j)
443. statusflag = false
444. end
445. end
446. for j in $data_skills.minus_state_set
447. if self.state?(j)
448. statusflag = false
449. end
450. end
451. end
452. if $data_skills.power == 0 && statusflag
453. return true
454. end
455. if $data_skills.power < 0 && statusflag && fullhpflag
456. return true
457. end
458. end
459. end
460. return false
461. end
462. end
463.
Revenir en haut Aller en bas
Sirmaiden
Adminsitrateur Principal
Adminsitrateur Principal
avatar

Masculin Nombre de messages : 410
Date d'inscription : 09/06/2007

Mon niveau de Making
Niveau Script:
3/20  (3/20)
Niveau construction de MAP:
13/20  (13/20)
Niveau Base de donnée:
7/20  (7/20)

MessageSujet: Re: Monstre adapté a vos héros   Sam 3 Nov - 18:59

je comprends pas a quoi ca nous sert tout ca !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Delevna
Administrateur Jeux & Consoles
Administrateur Jeux & Consoles
avatar

Masculin Nombre de messages : 361
Age : 25
Localisation : Sur la mer, à la recherche du One Piece
Date d'inscription : 11/06/2007

Mon niveau de Making
Niveau Script:
1/20  (1/20)
Niveau construction de MAP:
16/20  (16/20)
Niveau Base de donnée:
18/20  (18/20)

MessageSujet: Re: Monstre adapté a vos héros   Dim 4 Nov - 13:48

A ce que tes héros combattent des monstres adaptés à leurs niveaux et caractéristiques !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://legendsofrpg.azurforum.com
Contenu sponsorisé




MessageSujet: Re: Monstre adapté a vos héros   

Revenir en haut Aller en bas
 
Monstre adapté a vos héros
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [VX] Tankentai et transformation d'un monstre (résolu)
» Nouvelle version V5.8.D3
» Nouveau sur le forum et train controller
» Générateur / editeur de donjon (les débuts)
» Cherche conseils trouvez moi un monstre avec gros debit de fumée??

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Kingdom maker : Le royaume du Making :: A propos de RPG Maker :: Les scripts-
Sauter vers: