Wskrzeszenie na zdarzeniach - Helseth - 06-10-14 23:05
Witam, po bardzo długiej przerwie postanowiłem powrócić do swojego przerwanego projektu.
Mój problem polega na tym, że nie potrafię ustawić sobie czaru, który będzie przywracać do "żywych" wybranego bohatera podczas walki.
Dajmy na to ustawiam sobie czar "wskrzeszenie" zaznaczam mu, żeby cofał stan śmierć i nic się nie dzieje :P
z tego co wyczytałem trzeba to zrobić na zdarzeniach ale z powodu mojej długiej przerwy w ogóle nie mam pojęcia jak się za to zabrać (poprawność działania wskrzeszenia z pewnością zmotywuje mnie do dalszego tworzenia :P)
podsumowując chodzi mi o to że :
dany bohater A. posiada czar wskrzeszenie, którym adekwatnie do nazwy będzie potrafił wskrzesić wybranego jednego martwego członka drużyny (standardowy tryb walki)
Mam nadzieje, że przedstawiłem mój problem w czytelny sposób :P
Jeżeli ktoś potrafi mi pomóc w zrobieniu tego i opisaniu mi krok po kroku co i gdzie trzeba ustawić w zdarzeniach będę wdzięczny :)
RE: Wskrzeszenie na zdarzeniach - Kosmik123 - 06-10-14 23:11
Zwyczajnie ustawiasz w bazie danych, żeby umiejętność miała jako cel martwego sojusznika i żeby w zmianie stanu był minus przy śmierci. Nie potrzeba dodatkowego zdarzenia.
RE: Wskrzeszenie na zdarzeniach - Yoroiookami - 06-10-14 23:16
![[Obrazek: 2py1bhx.jpg]](http://i58.tinypic.com/2py1bhx.jpg)
Masz nawet w przykładowym skillu. To na czerwono jest najważniejsze.
RE: Wskrzeszenie na zdarzeniach - Helseth - 06-10-14 23:29
To już nie mam pojęcia czemu mi to nie działa :D może jakiś skrypt mi to blokuje :(
no nic idę się pomęczyć jeszcze :P
RE: Wskrzeszenie na zdarzeniach - Deuce - 07-10-14 10:38
Nie wiem czy to coś pomoże ale:
Cel - Jedna osoba martwa/cała drużyna martwa
Używalne - Podczas walki i w menu
Zmień stan - musi być minus obok stanu Śmierć
#Kiedy korzystałem z ABS to normalne wskrzeszenie nie działało, więc musiałem używać polecenia "Wylecz", jeżeli nadal ci nie działa to spróbuj z typowym zdarzeniem.
RE: Wskrzeszenie na zdarzeniach - Mateusz SSJ8 - 07-10-14 20:43
Niestety, urok ABSów polega na tym, że nie możesz walczyć dwiema postaciami w tym samym czasie, a co dopiero mówić o całej drużynie. Po prostu przełączanie między kolejnymi członkami drużyny i jednoczesna walka nimi byłaby koszmarnie ciężka. Dlatego, dopbrą praktyką jest, jeśli w ABSie ataki i przedmioty używane na jednym towarzyszu zachowują się tak samo, jak używane na użytkowniku. Autopauza na czas wybierania towarzysza do uleczenia nie wchodzi w grę (żeby nie wybijać gracza z rytmu). Dobrą praktyką jest pozwolenie graczowi nawalkęw ABSie tylko jedną postacią, która, jak padnie zostanie zastąpiona kolejną, a jak wszystkie ci padły, to koniec gry.
A skoro już przy tym jesteśmy, Helseth, to o jakim systemie walki tu mowa?
RE: Wskrzeszenie na zdarzeniach - Helseth - 08-10-14 00:03
standardowy system lekko przebudowany ale to raczej bez znaczenia ;)
Po wielu bardzo męczących próbach udało mi się odszukać skrypt który w niewiadomy dla mnie
sposób blokował mi "wskrzeszanie..." mianowicie chodzi o to
Kod:
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=::=:=
# Rain of Add-ons by Xelias
# Version: 1.00
# Type: Add-on Collection Control Script
# Date v1.00b: 26.11.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
#
#
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
#
# This work is protected by the following license:
# #----------------------------------------------------------------------------
# #
# # Creative Commons - Attribution-NonCommercial-ShareAlike 3.0 Unported
# # ( http://creativecommons.org/licenses/by-nc-sa/3.0/ )
# #
# # You are free:
# #
# # to Share - to copy, distribute and transmit the work
# # to Remix - to adapt the work
# #
# # Under the following conditions:
# #
# # Attribution. You must attribute the work in the manner specified by the
# # author or licensor (but not in any way that suggests that they endorse you
# # or your use of the work).
# #
# # Noncommercial. You may not use this work for commercial purposes.
# #
# # Share alike. If you alter, transform, or build upon this work, you may
# # distribute the resulting work only under the same or similar license to
# # this one.
# #
# # - For any reuse or distribution, you must make clear to others the license
# # terms of this work. The best way to do this is with a link to this web
# # page.
# #
# # - Any of the above conditions can be waived if you get permission from the
# # copyright holder.
# #
# # - Nothing in this license impairs or restricts the author's moral rights.
# #
# #----------------------------------------------------------------------------
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
class Game_System
alias init_rain_of_addons_later initialize
def initialize
init_rain_of_addons_later
@VIRUS_STATUS = false
@MP_SHIELD_STATUS = false
@SPIKES_STATUS = false
end
attr_accessor :VIRUS_STATUS
attr_accessor :MP_SHIELD_STATUS
attr_accessor :SPIKES_STATUS
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
# Virus Status Effect by Xelias
# Version: 1.00
# Type: Game Experience Improvement
# Date: 26.9.2006
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
#
# Allows to create a status preventing healing.
#
#
# Configuration:
#
# VIRUS_IDS - the IDs of the Virus status effects
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
VIRUS_IDS = [30]
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#===============================================
# Game_Battler
#===============================================
class Game_Battler
alias skill_effect_virus_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = skill_effect_virus_later(user, skill)
virus_effect(last_hp, last_sr, skill) if self.damage.is_a?(Numeric)
return result
end
alias item_effect_virus_later item_effect
def item_effect(item, battler = nil)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
if battler == nil
result = item_effect_virus_later(item)
else
result = item_effect_virus_later(item, battler)
end
virus_effect(last_hp, last_sr, item) if self.damage.is_a?(Numeric)
return result
end
def virus_effect(last_hp, last_sr, object)
if $game_system.VIRUS_STATUS && VIRUS_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
if self.damage < 0
self.damage = (self.damage*0).to_i
end
self.hp -= self.damage
end
end
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# MP Shield Status Effect by Xelias
# Version: 1.00
# Type: Game Experience Improvement
# Date: 26.9.2006
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
#
# When under this status, you never lose HP. However, you lose SP instead. When
# your SP reach 0, this status becomes ineffective.
#
# Configuration:
#
# MP_SHIELD_IDS - the IDs of the MP Shield status effects
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
MP_SHIELD_IDS = [29]
MP_SHIELD_ANIMATION_ID = 8
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#================================================
# Game_Battler
#================================================
class Game_Battler
alias attack_effect_mpshield_later attack_effect
def attack_effect(attacker)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = attack_effect_mpshield_later(attacker)
mpshield_effect(last_hp, last_sr, attacker) if self.damage.is_a?(Numeric)
return result
end
alias skill_effect_mpshield_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = skill_effect_mpshield_later(user, skill)
mpshield_effect(last_hp, last_sr, skill) if self.damage.is_a?(Numeric)
return result
end
alias item_effect_mpshield_later item_effect
def item_effect(item, battler = nil)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
if battler == nil
result = item_effect_mpshield_later(item)
else
result = item_effect_mpshield_later(item, battler)
end
mpshield_effect(last_hp, last_sr, item) if self.damage.is_a?(Numeric)
return result
end
def mpshield_effect(last_hp, last_sr, object)
if $game_system.MP_SHIELD_STATUS && MP_SHIELD_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
if self.sp > 0 && self.damage > 0
self.animation_id = MP_SHIELD_ANIMATION_ID
self.sp -= self.damage
else
self.hp -= self.damage
end
end
end
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Spike Status by Xelias
# Version: 1.00
# Type: Enhanced Status
# Date: 26.11.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
#
# Compatibility:
#
# 99% compatible with SDK v1.x. 90% compatible with SDK v2.x. Could cause
# problems with exotic CBS-es.
#
#
# Instructions:
#
# - Explanation:
#
# This allows to create a Spike Status. It inflicts damage to your opponent every time
# he or she attacks or uses a special skill. You can also set a special animation to hit
# the opponent
# - Configuration
#
# SPIKES_IDS - include any IDs of Spikes Statuses and separate them with
# commas (i.e. [29])
# SPIKES_ANIMATION_ID - Put the animation id. If you don't want any, make it 0.
# SPIKES_PROTECTION - Set to true if you want to lower the damage taken by the
# damage inflected by the spikes. Set false if you don't.
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
SPIKES_IDS = [994]
SPIKES_ANIMATION_ID =0
SPIKES_PROTECTION = false
#==============================================
# Game_Battler
#==============================================
class Game_Battler
alias skill_effect_spikes_skill_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = self.sr if $crls && self.is_a?(Game_Actor)
result = skill_effect_spikes_skill_later(user, skill)
if $game_system.SPIKES_STATUS
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if $crls && self.is_a?(Game_Actor)
if self.damage.is_a?(Numeric)
if skill.int_f == 0 && SPIKES_IDS.any? {|i| @states.include?(i)}
user.damage = ( ( [self.pdef - user.pdef / 2, 0].max )* (20 + self.str) / 20 ) /10
user.hp -= user.damage
user.animation_id = SPIKES_ANIMATION_ID
if SPIKES_PROTECTION
self.damage -= user.damage
end
end
self.hp -= self.damage
end
end
return result
end
alias attack_effect_spikes_later attack_effect
def attack_effect(attacker)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = attack_effect_spikes_later(attacker)
spikes_effect(last_hp, last_sr, attacker) if self.damage.is_a?(Numeric)
return result
end
def spikes_effect(last_hp, last_sr, object)
if $game_system.SPIKES_STATUS && SPIKES_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
object.damage = ( ( [self.pdef - object.pdef / 2, 0].max )* (20 + self.str) / 20 ) /10
object.hp -= object.damage
object.animation_id = SPIKES_ANIMATION_ID
if SPIKES_PROTECTION
self.damage -= object.damage
end
self.hp -= self.damage
end
end
end
a ściślej mówiąc zaraz na początku kodu są 3 specjalne właściwości/efekty jakie on daje
i wartością false można je wyłączyć i wszkrzeszanie działa no ale... jednak chciałbym mieć
te 3 statusy w swoim projekcie :P więc ktoś kto się zna na kodowaniu mógłby przerobić
ten skrypt tak aby nie gryzł się ze wskrzeszaniem :D ?
czy to jest w ogóle możliwe?
RE: Wskrzeszenie na zdarzeniach - Ayene - 08-11-14 12:16
Czy problem jest nadal aktualny?
|