Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Punkty Umiejętności XP
Autor Wiadomość
Lartarin 




Ranga RM:
4 gry

Pomogła: 3 razy
Dołączyła: 20 Wrz 2007
Posty: 233
Skąd: Ergard
Wysłany: Czw 22 Paź, 2009 10:07
Punkty Umiejętności XP
Aloha!

Pozwolę sobie dzisiaj dodać skrypt, który dodaje nam nową statystykę tzw. Punkty Umiejętności.
Wielokroć zastanawiałam się czemu w RPG-ach wojownicy używając jakieś specjalnej umiejętności a nie czaru płacili za to Punktami Magii?
Ten skrypt jest właśnie dla osób którym się to za bardzo nie podoba.
Ja doszłam do wniosku że ofkors odpowiadają i powinny odpowiadać za to PM-y.
Jest tak dlatego żeby zrównoważyć bohaterów silnych fizycznie z słabych w kwestii many.
Nigdy jednak nie będzie tak aby każdy się zawsze ze wszystkim zgadzał ^@^

Po przedstawieniu swojej opinii czas na screena!


Skrypcik wklejamy nad MAIN

Spoiler:

Kod:
# Edited by Lartarin the Super Pig ^@^         
#-------------------------------------------------------------------------------
# www.ultimateam.pl
#-------------------------------------------------------------------------------
module Lartarin
#-------------------------------------------------------------------------------
Nazwa = "PU"  # tutaj możesz zmienić wyświetlaną nazwę
#-------------------------------------------------------------------------------         
#a = ID bohatera
#b = bazowa wartość Punktów Umiejętności
BOHATER = {
1=>30,
2=>40,
3=>25,
4=>35
         }
# Minimalna ilość Bazowych Punktów Umiejętności to 1       
#-------------------------------------------------------------------------------                 
#a = ID umiejętności
#b = koszt w punktach umiejętności
KOSZT= {
57=>5,        #Cross Cut
58=>12,      #Feint Attack
59=>26,      #Hurricane
60=>40,      #Spiral Blade
61=>7,        #Leag Sweep
62=>15,      #Beast Slayer
63=>32,      #Thunder Pierce
64=>50,      #Screw Thrust
65=>6,        #Power Break
66=>13,      #Mind Break
67=>28,      #Aqua Buster
68=>32,      #Rolling Axe
73=>10,      #Bird Killer
74=>15       #Mute Arrow
          } 
#-------------------------------------------------------------------------------
#a = ID bohatera
#b = przyrost PU co poziom
PRZYROST = {
1=>5,
2=>10,
3=>15,
4=>20
         }
#-------------------------------------------------------------------------------
#a = ID przedmiotu
#b = ilość PU jaką ten przedmiot odnawia
PRZEDMIOT = {
1=>10,
2=>100
}   
#-------------------------------------------------------------------------------
end
 #-------------------------------------------------------------------------------

class Game_Actor < Game_Battler 
attr_accessor   :tp
attr_accessor   :maxtp
alias tagteam_setup setup
def setup(actor_id)
tagteam_setup(actor_id) 
@maxtp = 0
@maxtp_plus = 0
@tp_exp = Lartarin::PRZYROST[actor_id]
ini_tp = Lartarin::BOHATER[actor_id]
if ini_tp != nil
@base_tp = ini_tp
else
@base_tp = 0
end
if @tp_exp != nil
tpx = (@tp_exp * @level) - @tp_exp
else
tpx = 1
end
@tp = @base_tp + tpx
end
def maxtp_plus
if @tp_exp != nil and @level > 1 
cal =  @tp_exp * @level
return @maxtp_plus + cal - @tp_exp
else
return @maxtp_plus
end
end
def maxtp
n = [[@base_tp + maxtp_plus, 1].max, 9999].min
return n
end 
def tp=(tp)
@tp = [[tp, maxtp].min, 0].max
end
end
#-------------------------------------------------------------------------------
# www.ultimateam.pl
#-------------------------------------------------------------------------------
class Game_Battler
alias tagteam_skill_can_use? skill_can_use? 
def skill_can_use?(skill_id)
tp_cost = Lartarin::KOSZT[skill_id]
if tp_cost != nil and self.is_a?(Game_Actor)
if tp_cost > self.tp
return false
end
else
if $data_skills[skill_id].sp_cost > self.sp
return false
end
end
if dead?
return false
end
if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
return false
end
occasion = $data_skills[skill_id].occasion
if $game_temp.in_battle
return (occasion == 0 or occasion == 1)
else
return (occasion == 0 or occasion == 2)
end
return
tagteam_skill_can_use?(skill_id)   
end
end

class Scene_Battle
alias tagteam_update_phase4_step5 update_phase4_step5
def update_phase4_step5
tagteam_update_phase4_step5
item_tp_recover_id = Lartarin::PRZEDMIOT[@item.id]
if @active_battler.is_a?(Game_Actor) and @active_battler.current_action.kind == 2 and @item =! nil
for target_tp in @target_battlers     
if target_tp.is_a?(Game_Actor) and item_tp_recover_id != nil 
target_tp.tp += item_tp_recover_id
target_tp.damage = Lartarin::Nazwa.to_s + item_tp_recover_id.to_s
target_tp.damage_pop = true
end 
end
end 
end
alias tagteam_make_skill_action_result make_skill_action_result
def make_skill_action_result
@skill = $data_skills[@active_battler.current_action.skill_id]
unless @active_battler.current_action.forcing
unless @active_battler.skill_can_use?(@skill.id)
$game_temp.forcing_battler = nil
@phase4_step = 1
return
end
end
tp_cost = Lartarin::KOSZT[@skill.id]
if tp_cost != nil and @active_battler.is_a?(Game_Actor)
@active_battler.tp -= tp_cost
else
@active_battler.sp -= @skill.sp_cost
end
@status_window.refresh
@help_window.set_text(@skill.name, 1)
@animation1_id = @skill.animation1_id
@animation2_id = @skill.animation2_id
@common_event_id = @skill.common_event_id
set_target_battlers(@skill.scope)
for target in @target_battlers
target.skill_effect(@active_battler, @skill)
end
return
tagteam_make_skill_action_result
end
end 
#-------------------------------------------------------------------------------
# www.ultimateam.pl
#-------------------------------------------------------------------------------
class Game_Battler
alias tagteam_item_effect item_effect
def item_effect(item)
if $game_temp.in_battle == false 
item_tp_recover = Lartarin::PRZEDMIOT[item.id]
if item_tp_recover != nil
if self.tp < self.maxtp
self.tp += item_tp_recover
return true
else 
return false
end
return false
end
end
tagteam_item_effect(item)
end
end

class Interpreter
alias tagteam_command_314 command_314
def command_314
tagteam_command_314
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
actor.tp = actor.maxtp
end
return true
end
end

class Window_Base < Window
def draw_actor_tp(actor, x, y,type)
self.contents.font.color = system_color 
self.contents.draw_text(x, y, 32, 32, Lartarin::Nazwa)
self.contents.font.color = normal_color
case type
when 0
self.contents.draw_text(x - 40, y, 198, 32, actor.tp.to_s + " / " + actor.maxtp.to_s, 2)
when 1
self.contents.draw_text(x - 70, y, 198, 32, actor.tp.to_s + " / " + actor.maxtp.to_s, 2)
when 2
self.contents.draw_text(x + 40, y, 80, 32, actor.tp.to_s,2)
when 3
self.contents.draw_text(x - 20, y, 150, 32, actor.tp.to_s + " / " + actor.maxtp.to_s, 2)
when 4
self.contents.font.name = "Comic Sans MS"
self.contents.font.bold = true
self.contents.draw_text(x - 55, y, 130, 32, actor.tp.to_s, 2)
end 
end
def draw_actor_tp2(actor, x, y)
self.contents.font.name = "Comic Sans MS"
self.contents.font.bold = true
self.contents.font.color = normal_color 
self.contents.draw_text(x - 40, y, 198, 32, Lartarin::Nazwa + actor.tp.to_s, 2)
end
end

class Window_Help < Window_Base
alias tagteam_set_actor set_actor
def set_actor(actor)
if actor != @actor
self.contents.clear
draw_actor_name(actor, 4, 0)
draw_actor_hp(actor, 110, 0)
draw_actor_sp(actor, 460, 0)
draw_actor_tp(actor, 284, 0,0)
@actor = actor
@text = nil
self.visible = true
end
return
tagteam_set_actor(actor)
end
end

class Window_SkillStatus < Window_Base
alias tagteam_refresh refresh
def refresh
self.contents.clear
draw_actor_name(@actor, 4, 0)
draw_actor_hp(@actor, 110, 0)
draw_actor_sp(@actor, 460, 0)
draw_actor_tp(@actor, 284, 0,0)
return
tagteam_refresh
end
end 

class Window_Status < Window_Base
alias tagteam_refresh refresh
def refresh
tagteam_refresh

 

draw_actor_tp(@actor, 96, 170,0) 
end 
end 

#-------------------------------------------------------------------------------
# www.ultimateam.pl
#-------------------------------------------------------------------------------
class Window_BattleStatus < Window_Base
alias tagteam_refresh refresh
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
actor_x = i * 160 + 4
draw_actor_name(actor, actor_x, 0)
draw_actor_hp(actor, actor_x, 24, 120)
draw_actor_sp(actor, actor_x, 48, 120)
draw_actor_tp(actor, actor_x, 72,2)
if @level_up_flags[i]
self.contents.font.color = normal_color
self.contents.draw_text(actor_x, 96, 120, 32,  "Awans!")
else
draw_actor_state(actor, actor_x, 96)
end
end
end 
end

class Window_MenuStatus < Window_Selectable
alias tagteam_refresh refresh
def refresh
self.contents.clear 
tagteam_refresh
for i in 0...$game_party.actors.size
x = 64
y = i * 116
actor = $game_party.actors[i]
draw_actor_tp(actor, x + 236, y,1 )
end
end
end

class Window_Target < Window_Selectable
alias tagteam_refresh refresh
def refresh
self.contents.clear
for i in 0...$game_party.actors.size
x = 4
y = i * 116
actor = $game_party.actors[i]
draw_actor_name(actor, x, y)
draw_actor_level(actor, x + 8, y + 32)
draw_actor_state(actor, x + 8, y + 64)
draw_actor_hp(actor, x + 152, y + 0)
draw_actor_tp(actor, x + 152, y + 32,3)
draw_actor_sp(actor, x + 152, y + 64)
end
return
tagteam_refresh 
end
end

class Window_Skill < Window_Selectable
alias tagteam_draw_item draw_item
def draw_item(index)
skill = @data[index]
if @actor.skill_can_use?(skill.id)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
x = 4 + index % 2 * (288 + 32)
y = index / 2 * 32
rect = Rect.new(x, y, self.width / @column_max - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(skill.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
tp_cost = Lartarin::KOSZT[skill.id]
if tp_cost != nil
self.contents.font.color = system_color
self.contents.draw_text(x + 180, y, 48, 32,Lartarin::Nazwa, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 232, y, 48, 32,tp_cost.to_s, 2)
else
self.contents.font.color = system_color
self.contents.draw_text(x + 180, y, 48, 32,$data_system.words.sp, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2) 
end
return
tagteam_draw_item(index)
end
end

class Scene_Skill
alias tagteam_update_target update_target
def update_target
if Input.trigger?(Input::C)
unless @actor.skill_can_use?(@skill.id)
$game_system.se_play($data_system.buzzer_se)
return
end
if @target_window.index == -1
used = false
for i in $game_party.actors
used |= i.skill_effect(@actor, @skill)
end
end
if @target_window.index <= -2
target = $game_party.actors[@target_window.index + 10]
used = target.skill_effect(@actor, @skill)
end
if @target_window.index >= 0
target = $game_party.actors[@target_window.index]
used = target.skill_effect(@actor, @skill)
end
if used
$game_system.se_play(@skill.menu_se)
tp_cost = Lartarin::KOSZT[@skill.id]
if tp_cost != nil 
@actor.tp -= tp_cost
else
@actor.sp -= @skill.sp_cost
end       
@status_window.refresh
@skill_window.refresh
@target_window.refresh
if $game_party.all_dead?
$scene = Scene_Gameover.new
return
end
if @skill.common_event_id > 0
$game_temp.common_event_id = @skill.common_event_id
$scene = Scene_Map.new
return
end
end
unless used
$game_system.se_play($data_system.buzzer_se)
end
return
end
tagteam_update_target   
end
end
#-------------------------------------------------------------------------------
# www.ultimateam.pl
#-------------------------------------------------------------------------------



:lartarin:
________________________

 
 
 
4Garbi 




Preferowany:
RPG Maker XP

Dołączył: 19 Mar 2010
Posty: 8
Skąd: z wiiem.pl ,z gamer9
Wysłany: Nie 18 Kwi, 2010 14:18
....hmmm... Coś jak druga mana ;]....
Może się przydać ....
________________________
Super Nintendo Fanboy!
 
 
Gandahor 



Preferowany:
RPG Maker XP

Dołączył: 06 Cze 2010
Posty: 5
Wysłany: Nie 06 Cze, 2010 20:51
całkiem fajny ale niestety nie dla mnie ;/
Kiedyś widziałem prostszy, był napis w menu:
Punkty Nauki: x
x - Ilość
nie było 30/30 tylko normalnie 30 i co lvl dodawało się 10, to była zmienna i łatwiej się robiło Nauczycieli itp..
Ma ktoś może linka do tego albo podobnego skryta?
 
 
xamieno 




Preferowany:
RPG Maker XP

Dołączył: 07 Mar 2010
Posty: 47
Wysłany: Wto 15 Cze, 2010 07:29
Lartarin jak tylko zobaczyłem ten temat odrazu zajrzałem. Na prace adminów i Junior Adminów patrze odrazu... A zwłaszcza dziewczyn ;-)
Fajne bardzzo napewno sie przyda...
P.S.
Sory na błędy ale piszę na szybko... :papa:
________________________


C.S.
To DNO !!!

WarRock to jedyna:

-Fajna
-Logiczna
-Moralna

Strzelanina online...
 
 
CreeperCrisis 



Preferowany:
RPG Maker VXAce

Pomógł: 32 razy
Dołączył: 01 Maj 2010
Posty: 395
Wysłany: Pią 18 Cze, 2010 21:39
Hmm... Bardzo przydatne. Ciekawe czy jest takie coś na VX.

A co do tematu:
Dobre... :-)
 
 
RedCode12 



Dołączył: 02 Lis 2011
Posty: 50
Skąd: Z Fabryki Skilla
Wysłany: Czw 03 Lis, 2011 22:25
Fajne Fajne .. :D mi się podoba . ;]
 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene