Project1
标题:
如何做双倍金钱和隐身攻击技能?
[打印本页]
作者:
Enfa
时间:
2010-11-21 10:39
提示:
作者被禁止或删除 内容自动屏蔽
作者:
捣蛋
时间:
2010-11-21 11:20
Q1:我就知道某物件装备后战斗有双倍经验
Q2 and Q3:不知道
作者:
408647499
时间:
2010-11-21 11:22
没用VX表示道歉 帮不了LZ
作者:
黑白旋律
时间:
2010-11-21 11:52
额,我是脚本新手,也不怎么知道
作者:
874609281
时间:
2010-11-21 12:00
第三个用事件可能做到
作者:
Rion幻音
时间:
2010-11-21 12:17
1和2得写脚本……
3的话制作个公共事件,并行处理,当角色等级为XX时,某开关打开,
然后会遇敌的地方放些明雷,设置开关搞定~
作者:
cnchen0708
时间:
2010-11-21 13:14
1,2用事件确实可以解决..不过比较麻烦~我简单说一下你看看能不能理解?
第一个:
1.设置公共事件,变量1代入道具使用之前的金钱
2.设置一个战斗结束后打开的开关(条件就是敌人HP小于等于0%时),符合条件时变量2代入此时的金钱数量
3.变量操作2-1,此值代入变量3
4.金钱减少变量3的值,然后变量3操作,值乘以2,金钱加上变量3的值..
结束...
第二个:
1.设置一个新状态,附加行动不能这一项,持续时间一回合
2.设置技能,使用后附加此状态
大概就这样吧?具体我也不知道行不行,您自己试试吧~
第三个照楼上的方法可以完美解决...
作者:
企鹅达达
时间:
2010-11-21 15:39
本帖最后由 企鹅达达 于 2010-11-21 19:55 编辑
1.装备了某物件战斗后可以得到双倍金钱.
kgc中有一个KGC_VariableExpGold,可以设置经验或者金钱双倍的状态,配合装备扩张脚本的自动状态可以实现。
2.战斗中装备某物件.可以实行隐身攻击敌人没有特别装备不能发现和攻击我方.
kgc中有个KGC_PassiveSkill(被动技能),可以设置odds,也就是受到攻击的概率,配合装备习得技能可以使用(odds设置为0可能会出错,反正我没试过)。另外也可以使用KGC_Invincible(无敌状态),受到什么攻击都不会有损害……
3.还有个 就是达到一定级别后敌人会远离我方.(明雷模式)
这个,个人觉得事件处理就好,不过的确有一个脚本,不过没有研究过使用方法……
=begin
★シンボルエンカウント補助★
イベントでのシンボルエンカウントの動作を補助します。
● 仕様 ●==========================================================
指定したキャラクターは、基本ランダム移動を行い、
プレイヤーが一定距離内に近づくと、プレイヤーを追跡、
またプレイヤーレベルによっては逃走をするようになります。
====================================================================
● 使い方 ●========================================================
イベント>自律移動>カスタム>移動ルート>スクリプトに
@symbol_encount = [true, n]
と記述してください。nはシンボルが逃げるプレイヤーのレベルです。
シンボルを逃がしたくない場合は、nにnilを入れてください。
====================================================================
● 注意 ●==========================================================
ニューゲームから始めないとエラーを吐きます。
====================================================================
ver1.31
Last Update : 2010/03/05
03/05 : イベントページ切り替えごとにシンボルエンカウント判定をリセットするようにした
: シンボルイベントの一時削除が正常に機能しなくなる不具合修正
02/27 : クラスをGame_CharacterからGame_Eventに変更
: 一度見つかったら反応するプレイヤーとの距離が増加するようになりました
: 見つかった際にフキダシアイコンとSEを再生する機能の追加
: ダッシュボタンを押していても移動していなければ反応距離が増加しないようになりました
08/08 : プレイヤーレベルによって、シンボルが逃げる機能を追加
: 追跡の挙動を少し変更
05/17 : プレイヤーがダッシュしていると発見されやすくなる機能を追加
05/06 : 新規
ろかん http://kaisouryouiki.web.fc2.com/
=end
#===========================================
# 設定箇所
#===========================================
module Rokan
module Symbol_Encount
# シンボルが反応するプレイヤーとの距離(プレイヤー徒歩時)
DISTANCE_SYMBOL = 3
# シンボルが反応するプレイヤーとの距離(プレイヤーダッシュ時)
DISTANCE_SYMBOL_DASH = 5
# 反応後上昇する移動速度値(変化させたくない場合は 0 にしてください)
SPEED_SYMBOL = 2
# プレイヤーレベルの判定タイプ
# 0 => メンバーの平均レベル
# 1 => メンバーの最大レベル
# 2 => 主人公(先頭キャラ)のレベル
ESCAPE_SYMBOL_TYPE = 0
# シンボル反応時にフキダシアイコンエフェクトをかけるかどうか
SE_EFFECT = true
end
end
#===========================================
# ここまで
#===========================================
$rsi = {} if $rsi == nil
$rsi["シンボルエンカウント補助"] = true
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# ● インクルード Rokan::Symbol_Encount
#--------------------------------------------------------------------------
include Rokan::Symbol_Encount
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_encount? initialize
def initialize(map_id, event)
initialize_encount?(map_id, event)
@forming = false # 追跡中判定
@symbol_encount = [false, false]
end
#--------------------------------------------------------------------------
# ● イベントページのセットアップ
#--------------------------------------------------------------------------
alias se_reset_setup setup
def setup(new_page)
# シンボルエンカウント判定初期化
@forming = false
@symbol_encount = [false, false]
se_reset_setup(new_page)
end
#--------------------------------------------------------------------------
# ● プレイヤーレベルの取得
#--------------------------------------------------------------------------
def player_level?
n, a = 0, []
case ESCAPE_SYMBOL_TYPE
when 0
for i in $game_party.members do n += i.level end
n /= $game_party.members.size
when 1
for i in $game_party.members do a << i.level end
n = a.max
when 2
n = $game_party.members[0].level
end
return n
end
#--------------------------------------------------------------------------
# ● プレイヤーが指定距離内にいるか
#--------------------------------------------------------------------------
def distance_symbol
# イベント中?一時削除中は追跡を行わない
if $game_map.interpreter.running?
return false
elsif @erased
@forming = false
return false
end
if @forming
# 一度見つかったら追跡される距離が増加
d = DISTANCE_SYMBOL_DASH + 1
result = ((distance_x_from_player.abs + distance_y_from_player.abs) <= d)
else
# ダッシュボタンを押していても移動中でなければ判定を拡張しない
d = ($game_player.dash? && $game_player.moving?) ?
DISTANCE_SYMBOL_DASH : DISTANCE_SYMBOL
result = ((distance_x_from_player.abs + distance_y_from_player.abs) <= d)
if SE_EFFECT && result
unless $rsi["フキダシSE"]
se = RPG::SE.new("Decision1", 50, 150)
se.play
end
@balloon_id = 1
end
end
@forming = result
return result
end
#--------------------------------------------------------------------------
# ● 追うか逃げるか
#--------------------------------------------------------------------------
def toward_or_away?
@symbol_encount[1] == nil || player_level? <= @symbol_encount[1] ?
move_toward_player : move_away_from_player
end
#--------------------------------------------------------------------------
# ● 自律移動の更新 ※再定義
#--------------------------------------------------------------------------
def update_self_movement
if @stop_count > 30 * (5 - @move_frequency) && @symbol_encount[0]
distance_symbol ? toward_or_away? : move_type_random
elsif @stop_count > 30 * (5 - @move_frequency)
case @move_type
when 1; move_type_random
when 2; move_type_toward_player
when 3; move_type_custom
end
end
end
#--------------------------------------------------------------------------
# ● 移動時の更新 ※再定義
#--------------------------------------------------------------------------
def update_move
distance = (@symbol_encount[0] && distance_symbol) ?
2 ** (@move_speed + SPEED_SYMBOL) : 2 ** @move_speed
distance *= 2 if dash? # ダッシュ状態ならさらに倍
@real_x = [@real_x - distance, @x * 256].max if @x * 256 < @real_x
@real_x = [@real_x + distance, @x * 256].min if @x * 256 > @real_x
@real_y = [@real_y - distance, @y * 256].max if @y * 256 < @real_y
@real_y = [@real_y + distance, @y * 256].min if @y * 256 > @real_y
update_bush_depth unless moving?
if @walk_anime
@anime_count += 1.5
elsif @step_anime
@anime_count += 1
end
end
end
复制代码
明知道我怕麻烦还让我做范例,存心找抽是不是 =.=
ARPG敌人逃跑.rar
(241.65 KB, 下载次数: 30)
2010-11-21 19:55 上传
点击文件名下载附件
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1