2 Prośby: Waga i Strzały
Aktualny czas: 28-04-26, 20:37 Witaj! Przejdź do zakładki Logowanie lub Rejestracja


Wątek zamknięty 
[VXAce] 2 Prośby: Waga i Strzały
Sharkingv2 Offline
*


Liczba postów: 79
Dołączył: 29-03-17

Pomógł: 0



Post: #1
wykrzyknik 2 Prośby: Waga i Strzały

Witam, miałbym 2 prośby do was.
1 Prośba jest taka, czy jest jakiś skrypt który dodaje system strzał. Chodzi mi o to, że np. nasz bohater ma w ekwipunku 50 strzał i jak wystrzeli z łuku 1 strzałę (np. we wroga) to się usuwa z ekwipunku 1 strzała.
A 2 Prośba jest taka, że chciałbym dodać do mojego projektu gry, system wagi. Mam nawet skrypt, ten skrypt jest przetłumaczony na polski. Ale dalej nie rozumiem jak go użyć. Podam teraz przykład jak chciałbym użyć tego skryptu i czy da się go tak użyć. Powiedzmy, że chciałbym żeby przedmiot ryba miał 0.5 udźwigu i, że z 200 udźwigu zostaje 199.5 udźwigu. Jak to zrobić. I, że jak udźwig jest powyżej 200 to postać porusza się wolniej powiedzmy o 80%.

Tutaj podaje skrypt:

#==============================================================================
# XaiL System - Inventory Weight
# Author: Nicke
# Stworzony: 02/05/2012
# Edytowany: 12/05/2012
# Tłumaczenie: Saskio
# Specjalnie dla Ultimateam.pl
# Wersja: 1.0b
#==============================================================================
# Instrukcja
# -----------------------------------------------------------------------------
# Aby zainstalować ten skrypt, należy otworzyć Edytor Skryptów i wkleić
# go w wolny slot poniżej 'Materials' ale nad 'Main'. Pamiętaj o zapisie!
#
# Ten skrypt umożliwia ustawienie wagi przedmiotów.
# Maksymalna waga ekwipunku wrasta wraz ze zdobyciem poziomu.
# Zobacz szczegóły i ustaw je, według własnych potrzeb!
#
# Domyślna waga przedmiotu to 0.0 jednak możesz to zmienić, wpisując w komentarz
# danej rzeczy:
# <WEIGHT|weight: numer>
#
# Przykłady:
# <weight: 15.5>
# <WEIGHT: 4.5>
#
# Maksymalny udźwig na początku wynosi 0.0. Aby odświeżyć udźwig należy wywołać
# skrypt:
# $game_party.refresh_weight
#
# Dużym minusem jest to, że musimy manualnie powiększyć obciążenie.
# Aby dodać/usunąć wagę przedmiotu musisz wywołać następujący skrypt:
# $game_party.weight_item(ID, ilość = 1, typ = :item, weight_type = :gain)
#
# Examples:
# $game_party.weight_item(1) # // Dodaje wagę jednego przedmiotu z ID_1
# $game_party.weight_item(1, 2, :weapon) # // Dodaje wagę 2 broni z ID_1
# $game_party.weight_item(1, 1, :armor, :lose)# // Usuwa wagę jednego pancerza z ID_1
#
# *** Jedynie na RPG Maker VX Ace. ***
#==============================================================================
($imported ||= {})["XAIL-INVENTORY-WEIGHT"] = true

module XAIL
module INV_WEIGHT
#--------------------------------------------------------------------------#
# * Ustawienia
#--------------------------------------------------------------------------#
# Czy masa zwiększa się, jeśli stackujesz przedmioty?
# i.e jeśli masz 2 lub więcej itemów [???]
# STACK_WEIGHT = true/false
STACK_WEIGHT = true

# Max MAX_WEIGHT_TYPE = :symbol
# :default = Maksymalny udźwig bazowany na poziomie.
# :str = Maksymalny udźwig bazowany na ataku.
# :custom = Maksymalny udźwig bazowany na własnej opcji
MAX_WEIGHT_TYPE = :default

# Formuła na maksymalny udźwig bazowany na poziomie.
def self.weight_level
case $game_party.leader.level
when 1..10 ; weight = 20.0
when 11..19 ; weight = 40.0
when 20..30 ; weight = 60.0
when 31..40 ; weight = 80.0
when 41..50 ; weight = 99.0
end
return weight
end

# Inna formuła. Obecnie bazuje na ataku i zręczności bohatera podzielonych
# przez 2
# Wybierz tu, co chcesz.
def self.weight_custom
$game_party.leader.atk.to_f + $game_party.leader.agi.to_f / 2.0
end

# Włącz tą opcję, jeśli chcesz aby postać mogła być obciążona.
# Na przykład: Kiedy jest 50% obciążenia bohater będzie biegał wolniej,
# dopóki nie sprzeda/wyrzuci kilku itemów.
# Kiedy jest 90% obciążenia wojowniczość nie jest zbyt świetna.
# USE_ENCUMBER = true/false
USE_ENCUMBER = true

# Ta opcja decyduje o szybkości biegu, jeśli USE_ENCUMBER jest 'true'
# Objaśnienie:
# Kiedy bohater ma 50% obciążenia prędkość poruszania się to 3.8.
# Kiedy bohater ma 75% obciążenia prędkość poruszania się to 3.4.
# Kiedy bohater ma 90% obciążenia prędkość poruszania się to 3.2.
# Kiedy bohater ma 95% obciążenia prędkość poruszania się to 3.0
# Poniżej 50% obciążenia- prędkość biegu domyślna
def self.encumber_speed(weight, max, default)
$game_player.move_speed = 3.8 if weight >= max * 0.50
$game_player.move_speed = 3.4 if weight >= max * 0.75
$game_player.move_speed = 3.2 if weight >= max * 0.90
$game_player.move_speed = 3.0 if weight >= max * 0.95
$game_player.move_speed = default if weight <= max * 0.50
end
end
end
# *** Nie edytuj poniżej, chyba, że wiesz co robisz. ***
#==============================================================================#​
# ** RPG::BaseItem
#==============================================================================#​
class RPG::BaseItem

def weight
# // Method to set a item weight.
@note.scan(/<(?:WEIGHT|weight):\s(\d+.\d+)>/i)
return ($1.to_f > 0.0 ? $1.to_f : 0.0)
end

end
#==============================================================================#​
# ** Game_Party
#==============================================================================#​
class Game_Party < Game_Unit

attr_reader :weight
attr_reader :max_weight

alias xail_item_weight_sys_init initialize
def initialize(*args, &block)
# // Method to initialize.
xail_item_weight_sys_init(*args, &block)
@weight = 0.0
@max_weight = 0.0
end

def refresh_weight
# // Method to refresh the max weight.
@max_weight = max_weight? unless leader.nil?
end

def max_weight?
# // Method to check the max weight.
case XAIL::INV_WEIGHT::MAX_WEIGHT_TYPE
when :default ; return @max_weight = XAIL::INV_WEIGHT.weight_level
when :str ; return @max_weight = leader.atk.to_f
when :custom ; return @max_weight = XAIL::INV_WEIGHT.weight_custom
end
end

def weight_item(item, amount = 1, type = :item, weight_type = :gain)
# // Method to gain an item with weight.
case type
when :item ; type = $data_items
when :weapon ; type = $data_weapons
when :armor ; type = $data_armors
end
item = type[item]
case weight_type
when :gain
# // Gain: Increase the current weight.
unless item.nil?
unless XAIL::INV_WEIGHT::STACK_WEIGHT
unless has_item?(type[item.id])
@weight += item.weight
end
else
@weight += item.weight
end
if @weight > max_weight?
return @weight -= item.weight
end
gain_item(item, amount, false)
end
when :lose
# // Lose: Decrease the current weight.
return unless has_item?(type[item.id])
unless item.nil?
unless XAIL::INV_WEIGHT::STACK_WEIGHT
unless has_item?(type[item.id])
@weight -= item.weight unless @weight <= 0.0
end
if item_number(item) < 2
@weight -= item.weight unless @weight <= 0.0
end
else
@weight -= item.weight unless @weight <= 0.0
end
gain_item(item, -amount, false)
end
end
end

end
#==============================================================================#​
# ** Game_Player
#==============================================================================#​
class Game_Player < Game_Character

attr_accessor :move_speed

alias xail_item_weight_game_player_init initialize
def initialize
# // Method to initialize game player.
@weight = $game_party.weight
@max_weight = $game_party.max_weight
xail_item_weight_game_player_init
@default_move_speed = @move_speed.to_f
end

alias xail_item_weight_game_player_dash? dash?
def dash?
# // Method to check if player can dash.
return false if $game_party.weight >= $game_party.max_weight * 0.90 if XAIL::INV_WEIGHT::USE_ENCUMBER
xail_item_weight_game_player_dash?
end

alias xail_item_weight_game_player_update update
def update
# // Method to refresh game player.
if XAIL::INV_WEIGHT::USE_ENCUMBER
if @weight != $game_party.weight
@weight = $game_party.weight
@max_weight = $game_party.max_weight
XAIL::INV_WEIGHT.encumber_speed(@weight, @max_weight, @default_move_speed)
end
end
xail_item_weight_game_player_update
end

end
#==============================================================================#​
# ** Game_Interpreter
#==============================================================================#​
class Game_Interpreter

def w_item(item, amount = 1, type = :item, weight_type = :gain)
# // Quick method to add/remove an item with weight.
$game_party.weight_item(item, amount, type, weight_type)
end

end # END OF FILE

#=*==========================================================================*=#​
# ** END OF FILE
#=*==========================================================================*=#​
(Ten post był ostatnio modyfikowany: 15-05-17 22:14 przez Sharkingv2.)
15-05-17 19:32
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Wątek zamknięty 


Wiadomości w tym wątku
2 Prośby: Waga i Strzały - Sharkingv2 - 15-05-17 19:32

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.