Czar prowokacji
Aktualny czas: 28-04-26, 18:52 Witaj! Przejdź do zakładki Logowanie lub Rejestracja


Wątek zamknięty 
[XP] Czar prowokacji
Dakla Offline
*


Liczba postów: 110
Dołączył: 23-12-15

Pomógł: 4



Post: #1
yyyy Czar prowokacji

Witam.
Wie ktoś, jak stworzyć czar prowokacji działający na takiej zasadzie:
Rzucasz czar prowokacja który ma ileś procent (do ustawienia) na sprowokowanie wroga który przez ileś (także do ustawienia) rund atakuje osobę używającą czar.
09-10-16 22:51
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Mateusz SSJ8 Offline
*


Liczba postów: 511
Dołączył: 10-05-13

Pomógł: 40



Post: #2
RE: Czar prowokacji

No to masz problem, bo standard RPG Makera XP nie przewiduje zależności między stanem i tym, który go wywołuje. Będziesz musiał zaprogramować klasę "Game_State" odpowiadającą za konkretny status i zaprogramować możliwość, żeby potraktowany tym stanem atakował tylko tego, kto ten stan rzucił. Trzeba będzie przerobić atak, skilla i item, bo te trzy akcje zadają jakieś stany.

Nienawidzony i nienawidzący. Przez nienawiść tego drugiego obaj będą martwi.
14-10-16 17:24
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
AlmostNoRuby Offline
*


Liczba postów: 174
Dołączył: 22-09-16

Pomógł: 33



Post: #3
RE: Czar prowokacji

Cytat:Napisane przez Mateusz SSJ8 - Dzisiaj 17:24
No to masz problem, bo standard RPG Makera XP nie przewiduje zależności między stanem i tym, który go wywołuje. Będziesz musiał zaprogramować klasę "Game_State" odpowiadającą za konkretny status i zaprogramować możliwość, żeby potraktowany tym stanem atakował tylko tego, kto ten stan rzucił. Trzeba będzie przerobić atak, skilla i item, bo te trzy akcje zadają jakieś stany.
Teoretycznie, tak. Nie trzeba by było aż tworzyć nowej klasy ani aliasować nie wiadomo czego. Wystarczy:
  1. Utworzyć umiejętność o nazwie "Prowokacja" i ustalić jego użycie jako typowe zdarzenie
  2. Zdobyć z Arrow_Enemy zdobytego przeciwnika i zapisać go np. do zmiennej $game_variables[x], gdzie x oznacza numer. Z tych fragmentów kodu:
    Spoiler: (Otwórz)
    Trzeba zapisać przy na końcu każdego if Input.repeat? zmienną @index do zmiennej
  3. Zapisać skądeś kto atakował również do której z zmiennych $game_variables[x]
  4. Włączyć przełącznik odpowiedzialny za jednego z 8 dostępnych podczas walki przeciwników.
  5. Ustalić warunek w przeciwniku: Jeżeli przełącznik [...]=PRAWDA to umiejętność, np. "Wkurzenie",
  6. Ustawić umiejętność przeciwnika, np. "Wkurzenie" jako kolejne zdarzenie typowe.
  7. Pokazać animację ataku na konkretnym bohaterze ustalonej wcześniej zmiennej i obliczyć obrażenia,
    Spoiler: (Otwórz)
  8. Zadać obrażenia
  9. Pomnożyć wszystkich przeciwników razy 8.

...i tyle, to wersja z najmniejszą liczbą kombinowania w Ruby i najmniej awaryjna.

[Obrazek: userbar1.png]
14-10-16 19:59
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Yoroiookami Offline
*


Liczba postów: 985
Dołączył: 01-05-13

Pomógł: 137



Post: #4
RE: Czar prowokacji

http://forum.chaos-project.com/index.php?topic=11614.0
Proszę, tutaj zrobili coś takiego. smiles

Sam skrypt
#===============================================================================​
# Taunt States
# Version 1.0
# Author game_guy
#-------------------------------------------------------------------------------
# Intro:
# When Taunting an enemy, the taunter has a higher chance of being attacked
# by all enemies. This script, rather than using skills, it uses states to
# control the taunt levels.
#
# Features:
# Customizable Taunt States
# Can Even Be Used to Avoid Attacks
#
# Instructions:
# Hop down to the CONFIGURE STATES area and you'll add your state and taunt
# configurations there. Taunt can be reversed to also Avoid attacks. To do
# this, simply set the taunt level to a negative number. The number you assign
# to the state, is the number of times it'll add/remove the member to the
# roullette when being attacked by enemies.
#
# Now to have an actor "taunt" the enemies, all you need to do is give him a
# taunt state, which can easily be done through skills or items.
#
# Credits:
# game_guy ~ Creation of this fine script.
# GrimTrigger ~ For requesting it.
#===============================================================================​
module TauntStates
  STATES = {
  #=========================
  # CONFIGURE STATES
  # -Add new lines.
  # state_id => taunt_level,
  #=========================
    17 => 1,
    18 => 2,
    19 => 4,
    20 => -4,
  }
end

class Game_Actor < Game_Battler
  def calculate_taunt
    taunt = 0
    TauntStates::STATES.each {|key, value|
      taunt += value if @states.include(key)}
    return taunt
  end
end

class Game_Party
  def random_target_actor(hp0 = false)
    roulette = []
    for actor in @actors
      if (not hp0 and actor.exist?) or (hp0 and actor.hp0?)
        position = $data_classes[actor.class_id].position
        n = [4 - position + actor.calculate_taunt, 1].max
        n.times do
          roulette.push(actor)
        end
      end
    end
    if roulette.size == 0
      return nil
    end
    return roulette[rand(roulette.size)]
  end
end

[Obrazek: mt4dzY7.png]
[Obrazek: k5KQGOe.png]
14-10-16 20:07
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a): Dakla
AlmostNoRuby Offline
*


Liczba postów: 174
Dołączył: 22-09-16

Pomógł: 33



Post: #5
eeee RE: Czar prowokacji

Gdy ja wpisywałem w Google to wyskakiwało wszystko inne niż RMXP...

[Obrazek: userbar1.png]
15-10-16 10:01
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a): Dakla
Dakla Offline
*


Liczba postów: 110
Dołączył: 23-12-15

Pomógł: 4



Post: #6
RE: Czar prowokacji

Yoroiookami wielkie dzięki za skrypt :) na pewno się przyda.

AlmostNoRuby dzięki za próbę rozwiązania problemu (choć w ruby jestem zielony, i i tak nic bym nie zrobił)

Ogólnie skrypt mi działa, nie widzę żadnych błędów (jeśli będą w razie czego się odezwę).
15-10-16 21:36
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
AlmostNoRuby Offline
*


Liczba postów: 174
Dołączył: 22-09-16

Pomógł: 33



Post: #7
RE: Czar prowokacji

Ja tam Ruby uczyłem się z włączonym co chwilę poradnikiem, dużo czasu, i coś czuję, że JavaScript pójdźcie mi jeszcze gorzej. Ja kiedyś głównie zajmowałem się zdarzeniami, może jakieś zostały na starym laptopie... ale mniejsza. Wiem, że "RM level hard" nie jest dla każdego ;) gdybyś nie dał rady, i tak bym ci jakoś pomógł, i tak. A że niektórzy są bardziej obeznani bo wciągnęło ich do forum WIELKIE UT i pomagają na potęgę bo umią to inna bajki...
Często gdy piszę odpowiedzi to wpada coś co ślina na język przyniesie.

[Obrazek: userbar1.png]
15-10-16 22:23
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Wątek zamknięty 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Ultima Forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS
Powered By MyBB. © 2013 MyBB Group. All Rights Reserved.
Skórka by Ayene.