Suche Kampfschaden-Berechnungs-Skript
Hi,
erstmal vorweg gesagt: Ich bin hier zwar neu, kenne mich mit dem Maker XP ganz gut aus, doch Ruby macht mir echt noch Probleme... Warum eigentlich?
Nun zu meinem Problem:
Ich möchte ein Skript, das den Kampfschaden abhängig von der getragenen Waffe berechnet (auf jeden Fall anders als dieses blöde "ATK minus PDEF durch 2 ..." bla-und-blub).
Also beispielsweise für alle schweren Nahkampfwaffen mit Stärke, für alle Dolche mit Stärke und Geschick, für alle Bögen mit Geschick und Stärke, für Zauberstäbe aber mit Intelligenz?
Lange Rede, kurzer Sinn. Ich suche ein Skript, in dem nach verschiedenen Waffen-IDs abgefragt wird und diese jeweils verschiedene Schadensberechnungen erhalten.
Hoffe, das war verständlich und jemand kann mir helfen. Danke im Voraus!
erstmal vorweg gesagt: Ich bin hier zwar neu, kenne mich mit dem Maker XP ganz gut aus, doch Ruby macht mir echt noch Probleme... Warum eigentlich?
Nun zu meinem Problem:
Ich möchte ein Skript, das den Kampfschaden abhängig von der getragenen Waffe berechnet (auf jeden Fall anders als dieses blöde "ATK minus PDEF durch 2 ..." bla-und-blub).
Also beispielsweise für alle schweren Nahkampfwaffen mit Stärke, für alle Dolche mit Stärke und Geschick, für alle Bögen mit Geschick und Stärke, für Zauberstäbe aber mit Intelligenz?
Lange Rede, kurzer Sinn. Ich suche ein Skript, in dem nach verschiedenen Waffen-IDs abgefragt wird und diese jeweils verschiedene Schadensberechnungen erhalten.
Hoffe, das war verständlich und jemand kann mir helfen. Danke im Voraus!
Benutzerinformationen überspringen
Motto: Was zählt ist nicht das eigene Leben, sondern es aufs Spiel zusetzen.
Hier ist mal ein script das du einfach über Main einfügst.
Du musst den aufrufs code irgendwann im spiel benutzten nachdem $game_actors, $data_weapons und $data_enemies definiert wurde.
Verwendung steht zwar im Kopf aber ich gebe dir hier noch einmal ein beispiel:
output als .htm im hauptordner:
Um den Waffen nun einer Bestimmten schadens berechnung zu zuordnen benutzt du:
Beispiel:
Damit wird die waffe mit der id 1 der 'Sword' schadensberechnung zugeordned.
Ob du nun die schreib weise mit den String ('Sword') oder die mit der ID (0) nimmst ist egal.
Die IDs der Berechnungsmethoden sind im Kopf erklärt.
Bei Bugs oder sonstige Missverständnisse bitte melden.
mfg. Anemone~
|
|
Quellcode |
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 116 117 118 119 120 121 122 123 124 125 |
=begin
===========================================
Calculate Damage for each Weapon and Enemy
-----------------------------------------------------------------
Autor: Anemone
Date: 20/01/2009
===========================================
Usage:
-----------------------------------------------------------------
CalcDMG.analyze actor_id, enemy_id[, weapon_id];
to calculate the damage what each enemy will take.
enemy_id=Array/Integer
actor_id=Integer
>>additional:
weapon_id=Array/Integer, Standart=Array#[0..weapon_data_size]
-----------------------------------------------------------------
CalcDMG.add_weapon_type weapon_id, type
to add a weapon type
weapon_id=Integer
type=Integer/String
0='Sword'
1='Staff'
2='Axe'
3='Dagger'
...
(to edit effeckt: L.67 upto L.83)
-----------------------------------------------------------------
=end
class Game_Actor
attr_accessor :weapon_id
end
module CalcDMG
def self.add_weapon_type id, type
case type
when 0
str='Sword'
when 1
str='Staff'
when 2
str='Axe'
when 3
str='Dagger'
else
str=type
end
@weapon_type[id]=str
end
def self.start
@weapon_type=[]
end
def self.setup actor_id, enemy_id, weapon_id=nil
@result=[]
@actor_id=actor_id
@enemy_id=enemy_id
@enemy_id=[@enemy_id] unless @enemy_id.is_a? Array
if weapon_id.nil?
@weapon_id=[0..$data_weapons.size-1]
else
@weapon_id=weapon_id
@weapon_id=[@weapon_id] unless @weapon_id.is_a? Array
end
self.calc_all
end
def self.calc_single enemy, actor, weapon_id
actor.weapon_id=weapon_id
case @weapon_type[id]
when 'Sword'
power=actor.dex-enemy.pdef/2
multiplikator=20+actor.str
when 'Staff'
power=actor.int-enemy.pdef/2
multiplikator=20+actor.dex
when 'Axe'
power=actor.atk-enemy.pdef/2
multiplikator=20+actor.str
when 'Dagger'
power=actor.atk-enemy.pdef/2
multiplikator=20+actor.agi
else
power=actor.atk-enemy.pdef/2
multiplikator=20+actor.str
end
damage=power*multiplikator/20
damage=0 if damage < 0
return damage
end
def self.calc_all
for wid in @weapon_id
@result[wid]=[] if @result[wid].nil?
for eid in @enemy_id
@result[wid][eid]=self.calc_single $data_enemies[eid], $game_actors[@actor_id], wid
end
end
end
def self.output
p @result
end
def self.output_htm
string="<html><head><title>Result for #{$game_actors[@actor_id].name}/#{@actor_id}</title></head><body>"
@result.each_index do |wid|
next if wid.nil? or @result[wid].nil?
string+="<br><br><b>#{$data_weapons[wid].name}(#{wid})</b><br><ul>"
@result[wid].each_index do |eid|
if eid.nil?
string+="ERROR<br>"
else
if $data_enemies[eid].nil?
next
else
name=$data_enemies[eid].name
end
string+="#{name}(#{eid})=#{@result[wid][eid]}<br>"
end
end
string+="</ul>"
end
string+="</body></html>"
save_data(string,'CalcDMGfor'+sprintf("%03d",@actor_id)+'.htm')
end
def self.analyze actor_id, enemy_id, weapon_id=nil
self.setup actor_id, enemy_id, weapon_id
self.output_htm
end
end
CalcDMG.start |
zum Lesen den Text mit der Maus markieren
Du musst den aufrufs code irgendwann im spiel benutzten nachdem $game_actors, $data_weapons und $data_enemies definiert wurde.
Verwendung steht zwar im Kopf aber ich gebe dir hier noch einmal ein beispiel:
|
|
Quellcode |
1 |
CalcDMG.analyze 1, [1,2], [1,2,3] |
output als .htm im hauptordner:
Um den Waffen nun einer Bestimmten schadens berechnung zu zuordnen benutzt du:
|
|
Quellcode |
1 |
CalcDMG.add_weapon_type weapon_id, type |
Beispiel:
|
|
Quellcode |
1 2 |
CalcDMG.add_weapon_type 1, 0 CalcDMG.add_weapon_type 1, 'Sword' |
Damit wird die waffe mit der id 1 der 'Sword' schadensberechnung zugeordned.
Ob du nun die schreib weise mit den String ('Sword') oder die mit der ID (0) nimmst ist egal.
Die IDs der Berechnungsmethoden sind im Kopf erklärt.
Bei Bugs oder sonstige Missverständnisse bitte melden.
mfg. Anemone~
Ähnliche Themen
-
RGSS 1 Probleme & Talk »-
Suche Kampfschaden-Berechnungs-Skript
(19. Januar 2009, 08:25)
-
Einsteigerhilfe »-
Suche Tag & Nacht Script
(27. Oktober 2008, 20:03)
-
RGSS 1 Probleme & Talk »-
Time on Map Skript
(29. Oktober 2008, 13:26)
-
Einsteigerhilfe »-
Suche Skripte
(29. November 2008, 23:58)
-
Skript-Anfragen »-
Suche Monsterlexikon/-buch
(10. September 2008, 18:56)

