PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zur Datenbank



Don Pedro
10.11.2010, 16:01
Im RMXP ist ja der Schaden für Gift und ähnliche Effekte festgelegt. Ich möchte aber den Grundschaden selber bestimmen. Gibt es ne Möglichkeit die Datenbak so zu erweitern wei im 2003er?

Nebenbei noch was anders. Ich will nen Skill einstellen, dass er erst nutzbar wird, wenn der Char einen bestimmten Status hat.
So solls aussehen: Ich hab nen Jäger in der Gruppe, der "gezielter Schuss" beherrscht. Dieser soll jedoch erst verfügbar sein, wenn der Zustadn "Konzentration" auf dem Jäger liegt. Er muss also erst Konzentration wirken, damit er den gezielten Schuss einsetzen darf.
Ich meine wenns mit stumm klappt, dass keine zaber genutzt werden können, müsste es auch umgekehrt gehen.

Dann wäre da noch die sache mit den Skills. Ist es einstellbar was nur eine Technik und was ein Zauber ist? Denn wenn die Gruppe stumm ist, kann ein krieger ja weiterhin seine physischen techniken einsetzen (Rundumschlag, Kehlenschlag, u.ä.), da er keine Formeln sprechen muss wie ein Zauberer, der einen feuerball einsetzen will.

SMWma
13.11.2010, 17:25
Das erste ist nicht machbar, da man am Maker selber rumschrauben müsstest. Allerdings könntest du das mit Ruby bestimmt hinkriegen,

Die zweite Sache machst du so:
Erstelle den Skill zweimal. Ein mal so, dass er immer nutzbar ist und ein zweites mal so, dass er nie Nutzbar ist. Und immer wenn X passiert, tauscht du die Skills aus.

Die dritte Sache kapiere ich nicht genau.

-KD-
13.11.2010, 17:44
Im RMXP ist ja der Schaden für Gift und ähnliche Effekte festgelegt. Ich möchte aber den Grundschaden selber bestimmen. Gibt es ne Möglichkeit die Datenbak so zu erweitern wei im 2003er?Die Datenbank kannst du nicht erweitern. Über den Scripteditor kannst du aber ihre Interpretation verändern.
Im Scripteditor findest du im Script Game_Battler folgende Methode:


def slip_damage_effect
# Set damage
self.damage = self.maxhp / 10
# Dispersion
if self.damage.abs > 0
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# Subtract damage from HP
self.hp -= self.damage
# End Method
return true
end

Diese Methode gibt den Schaden beim Gift-Zustand an. Standardmäßig ist er 10% Schaden mit 15% Abweichung. Du kannst den Schaden in dieser Zeile

self.damage = self.maxhp / 10
auch anders setzen. z.B. auf 20%.

self.damage = self.maxhp / 5


Nebenbei noch was anders. Ich will nen Skill einstellen, dass er erst nutzbar wird, wenn der Char einen bestimmten Status hat.
So solls aussehen: Ich hab nen Jäger in der Gruppe, der "gezielter Schuss" beherrscht. Dieser soll jedoch erst verfügbar sein, wenn der Zustadn "Konzentration" auf dem Jäger liegt. Er muss also erst Konzentration wirken, damit er den gezielten Schuss einsetzen darf.
Im Scripteditor, wieder bei Game_Battler, findest du eine Methode skill_can_use? die prüft ob ein Skill einsetzbar ist. Du musst diese Methode nur so erweitern, dass du eigene Prüfbedingungen einfügen kannst.

module SpecialSkillUsingConditions
def skill_can_use?(skill_id)
return false if not super(skill_id)
return false if skill_id == 89 && !state?(20)
true
end
end
class Game_Actor < Game_Battler
include SpecialSkillUsingConditions
end
class Game_Enemy < Game_Battler
include SpecialSkillUsingConditions
end
Dieser Code macht folgendes: Ein Skill ist genau dann nutzbar, wenn die normalen Bedingungen erfüllt sind (genügend SP, Skill erlernt etc.) und wenn die zusätzliche Bedingung erfüllt ist. Die zusätzliche Bedingung ist die Zeile

return false if skill_id == 89 && !state?(20)
Also: Der Skill ist nicht nutzbar, wenn die Skill-ID gleich 89 ist und der Held nicht den Zustand 20 innehat. Die beiden Zahlen kannst du natürlich beliebig austauschen, sowie auch weitere Bedingungen einfügen. Setz als erste Zahl die ID deines Skills ein, als zweite Zahl die ID deines Zustands.



Dann wäre da noch die sache mit den Skills. Ist es einstellbar was nur eine Technik und was ein Zauber ist?Wenn der ATK-F (Attack-Influence) Wert deines Skills 0 ist, handelt es sich um einen Zauber, andernfalls um einen physischen Angriff.