• Anmelden

Ameny

Ankömmling

  • »Ameny« ist der Autor dieses Themas

Motto: "Ich bin wie ich bin, anders geht eh nicht!" :)

  • Nachricht senden

1

Samstag, 18. Dezember 2010, 21:27

Skills durch anlegen von Waffen/RÜstungen lernen

Hallo liebe Community,

ich habe eine Bitte: Ich habe nicht wirklich Ahnung von RGSS und benötige jetzt einen Script. Folgendes soll der Script ermöglichen:

Wenn eine Waffe bzw eine Rüstung angelegt wird, soll der Träge einen Skill lernen. Beim Ablegen der Waffe/Rüstung soll er diesen wieder vergessen. Ich weiß, man könnte die Sache über Common Events regeln, aber wenn ich bei 10 Actors zu jedem Rüstungsteil was einen Skill beibringt ein Parralel Common Event mache, das die ganze Zeit prüft ob die Rüstungen getragen werden oder nicht, dann frisst das, vorsichtig gesagt, enorm Systemressourcen.

Ich hab sogar schon einen Schript gefunden

Zitat



#============================================
# Equipment skills
#--------------------------------------------
# Scripted by: Krade
#============================================

module EQUIPMENT_SKILLS

# Initialize arrays
WEAPONS = []
ARMORS = []

# Weapon Skills
# Usage: WEAPONS[id] = skill_id
WEAPONS[1] = 57 # Bronze sword teaches Cross Cut
WEAPONS[2] = 58 # Iron sword teaches Feint Attack


# Armor Skills
# Usage: ARMORS[id] = skill_id
ARMORS[29] = 7 # Ring of Fire teaches Fire
ARMORS[30] = 10 # Ring of Ice teaches Ice

end

class Game_Actor

alias krade_es_setup setup
def setup(actor_id)
krade_es_setup(actor_id)
check_equipment_skills
end

alias krade_es_equip equip
def equip(equip_type, id)
krade_es_equip(equip_type, id)
# New weapon/armor equipped, recheck skills
check_equipment_skills
end

def check_equipment_skills
# Clear array
@equipment_skills = []
# Add the skills of the current equipment
@equipment_skills << EQUIPMENT_SKILLS::WEAPONS[@weapon_id] if EQUIPMENT_SKILLS::WEAPONS[@weapon_id] != nil
@equipment_skills << EQUIPMENT_SKILLS::ARMORS[@armor1_id] if EQUIPMENT_SKILLS::ARMORS[@armor1_id] != nil
@equipment_skills << EQUIPMENT_SKILLS::ARMORS[@armor2_id] if EQUIPMENT_SKILLS::ARMORS[@armor2_id] != nil
@equipment_skills << EQUIPMENT_SKILLS::ARMORS[@armor3_id] if EQUIPMENT_SKILLS::ARMORS[@armor3_id] != nil
@equipment_skills << EQUIPMENT_SKILLS::ARMORS[@armor4_id] if EQUIPMENT_SKILLS::ARMORS[@armor4_id] != nil
end

def skills
# Array containing all skills
all_skills = @skills.clone
# Add all equipment skills to the class skills if it doesn't have them yet
for s in @equipment_skills
all_skills << s if not all_skills.include? s
end
# Return all skills
return all_skills
end

end




So ungefähr stelle ich mir das vor. Wenn Waffe x getragen wird, lernt der Träger Skill y.

Das hat mit diesem Skript auch wunderbar funktioniert. Einziges Problem: Die Skills waren im Spiel dann auch im Menü und im Kampf unter "Skills" zu sehen, aber sie waren nicht benutzbar (dunkel). Der Charakter hatte den Skill also gelernt, konnte ihn aber nicht benutzen. Wäre schön wenn mir jemand helfen könnte.
  • :hammer: Fähigkeiten

    :rmxp:


    Mapping: :star: :star: :star-empty: :star-empty: :star-empty:
    Pixeln: :star: :star-empty: :star-empty: :star-empty: :star-empty:
    Scripten: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
    Storywriting: :star: :star-empty: :star-empty: :star-empty: :star-empty:
    Events: :star: :star: :star-empty: :star-empty: :star-empty:
  • :joystick: Aktuelles Projekt

    Das Vermächtnis des Eron



    Projektstatus:
    Story:
    Ungereimtheiten werden überarbeitet: 80%
    Maps:
    Die bestehenden werden gerade verbessert: 5%
    Musik:
    noch auf der Suche: 5%
    Database/System:
    Einiges fehlt noch: 20%





RedLink

Landsknecht

Motto: Faulheit ist Relativ

  • Nachricht senden

2

Samstag, 18. Dezember 2010, 21:46

Ich denke das liegt an der Datenbank.
Du musst jeden anlegbaren skill auch den Klassen zuordnen.
Schick mal ne Demo möchte mal schaun wie es in deiner DB aussieht.
  • Scripter

    Für den MV
  • Mitmacher

    nirgendswo

Ameny

Ankömmling

  • »Ameny« ist der Autor dieses Themas

Motto: "Ich bin wie ich bin, anders geht eh nicht!" :)

  • Nachricht senden

3

Samstag, 18. Dezember 2010, 22:03

Wie ordnet man denn die Skills den Klassen zu? Doch nur bei "Classes" unter "Skills to learn" oder?
  • :hammer: Fähigkeiten

    :rmxp:


    Mapping: :star: :star: :star-empty: :star-empty: :star-empty:
    Pixeln: :star: :star-empty: :star-empty: :star-empty: :star-empty:
    Scripten: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
    Storywriting: :star: :star-empty: :star-empty: :star-empty: :star-empty:
    Events: :star: :star: :star-empty: :star-empty: :star-empty:
  • :joystick: Aktuelles Projekt

    Das Vermächtnis des Eron



    Projektstatus:
    Story:
    Ungereimtheiten werden überarbeitet: 80%
    Maps:
    Die bestehenden werden gerade verbessert: 5%
    Musik:
    noch auf der Suche: 5%
    Database/System:
    Einiges fehlt noch: 20%





Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

4

Samstag, 18. Dezember 2010, 23:06

@ BloodyMoon: Das ist Quatsch.

@ Ameny: Du bist sicher, dass alle nötigen Bedingungen erfüllt sind?
Das sind:
- genug SP vorhanden
- der Actor ist nicht tot
- der Actor hat keinen Statuseffekt mit "Can't use magic"
- der Skill ist in der Datenbank auch so eingestellt, dass du ihn im Menü/Kampf nutzen kannst

Wenn dem so ist, dann hast du vielleicht andere Skripte, die das Problem auslösen?
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Ameny

Ankömmling

  • »Ameny« ist der Autor dieses Themas

Motto: "Ich bin wie ich bin, anders geht eh nicht!" :)

  • Nachricht senden

5

Samstag, 18. Dezember 2010, 23:22

Ich verwende im aktuellen Projekt auch noch andere Skripte. Wenn ich den Script aber in einem neuen Projekt einfüge, ohne andere Scripts, hab ich das gleiche Problem. Daran kanns also nicht liegen.
- Genug SP sind vorhanden
- Spieler sind nicht KO
- Wenn ich den jeweiligen Skill über ein Event mit "Change Skill" lernen lasse, dann funktioniert er auch und ist benutzbar. Nur wenn er über den Script gelernt wird gehts nicht...
  • :hammer: Fähigkeiten

    :rmxp:


    Mapping: :star: :star: :star-empty: :star-empty: :star-empty:
    Pixeln: :star: :star-empty: :star-empty: :star-empty: :star-empty:
    Scripten: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
    Storywriting: :star: :star-empty: :star-empty: :star-empty: :star-empty:
    Events: :star: :star: :star-empty: :star-empty: :star-empty:
  • :joystick: Aktuelles Projekt

    Das Vermächtnis des Eron



    Projektstatus:
    Story:
    Ungereimtheiten werden überarbeitet: 80%
    Maps:
    Die bestehenden werden gerade verbessert: 5%
    Musik:
    noch auf der Suche: 5%
    Database/System:
    Einiges fehlt noch: 20%





Irrlicht

Leuchtendes Irgendwas

Motto: Keep shining!

  • Nachricht senden

6

Samstag, 18. Dezember 2010, 23:47

Das Problem ist offenbar dass die Abfrage, ob der Held den Skill überhaupt gelernt hat, in dem Fall die Benutzung blockiert (die scriptinterne Korrektur ging wohl verloren)

Ansich sollte es aber mit diesem Zusatz wieder funktionieren:
(diesmal wirklich)

Spoiler

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
class Game_Actor
  #--------------------------------------------------------------------------
  # * Determine if Skill can be Used
  #     skill_id : skill ID
  #--------------------------------------------------------------------------
  def skill_can_use?(skill_id)
    unless skill_learn?(skill_id) or @equipment_skills.include?(skill_id)
      return false
    end
    return super
  end
end
zum Lesen den Text mit der Maus markieren

Ameny

Ankömmling

  • »Ameny« ist der Autor dieses Themas

Motto: "Ich bin wie ich bin, anders geht eh nicht!" :)

  • Nachricht senden

7

Sonntag, 19. Dezember 2010, 00:46

Hey Irrlicht, das war die Ursache.

Musste zwar die Klassen in der Database neu schreiben, weil er irgend eine Methode in deinem Teilscript nicht gefunden hatte, aber jetzt sind die Skills auch benutzbar! Vielen vielen Dank!
  • :hammer: Fähigkeiten

    :rmxp:


    Mapping: :star: :star: :star-empty: :star-empty: :star-empty:
    Pixeln: :star: :star-empty: :star-empty: :star-empty: :star-empty:
    Scripten: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
    Storywriting: :star: :star-empty: :star-empty: :star-empty: :star-empty:
    Events: :star: :star: :star-empty: :star-empty: :star-empty:
  • :joystick: Aktuelles Projekt

    Das Vermächtnis des Eron



    Projektstatus:
    Story:
    Ungereimtheiten werden überarbeitet: 80%
    Maps:
    Die bestehenden werden gerade verbessert: 5%
    Musik:
    noch auf der Suche: 5%
    Database/System:
    Einiges fehlt noch: 20%





Social Bookmarks