查看完整版本: [-- LF2改檔教學(初階) --]

ibbs -> LF2改檔交流區 -> LF2改檔教學(初階) [打印本頁] 登入 -> 註冊 -> 回覆主題 -> 發表主題

ken736 2007-04-15 16:53

LF2改檔教學(初階)

是不是曾經有過即使看了改檔教學還是看不懂的經驗呢?

是不是問了「教我改招式」,結果別人不知如何回答你?

開了改檔器,卻不知從何改起?

如果你現在是個小學生的話……當然看不懂
因為改檔的程式需要邏輯、數學、英文的一些知識和經驗
尤其是邏輯性,比較重要

不過我是個大好人
就大發愛心從最開始的地方開始做…

如果你準備好以下的教材,就點下面的「開始教我吧」

教材:

LF2(小朋友齊打交2,別名:小鬥士2 )版本1.9 /1.9c
改檔器lf2_dc_v14以上(或lf2_dc_v15中文化)
一台電腦(誰沒電腦啊@@)
以上的費用====hk0$   找不到??快去找!

噢!對了…如果是改圖的話,另請高手吧

ken736 2007-04-15 16:53
data區


==改data==

在LF2(1.7)版以前,data控制的檔案在data\deep_chop.dat
在LF2(1.9)版,data控制的檔案改到data\data.txt
(改data方便許多了)

data的功能:
可以新增、刪除角色氣功等

通常下載別人修改的人物裡面會有說明
說明若有附id的話就複製到data裡即可
位置:<object>與<object_end>之間任一行
若是原版改造的話只要蓋掉原版人物即可

<object>
id: %d type: %d file: %s
...
<object_end>

☆%d是指數字,%s是指路徑

<object>與<object_end>之間的物件最好不要超過100個,
否則會造成選人時跳出遊戲

id:
物件的編號

type:
物件的屬性

file:
讀取檔案的路徑
(在LF2中通常是*.dat檔)

<background>
id: %d file: %s
<background_end>

id:
地圖編號

file:
讀取檔案的路徑

某些地圖正好用來做闖關的背景
第2個地圖是第一關的背景
第3個是第二關
第4個是第三關
第5個是第四關
第6個是第五關..

<file_editing>
data\nothing.txt
<file_editing_end>
這幾行原本是lf2的作者為了準備下一版,所新增的檔案
不過沒有功用

id: 100~199 drop weapon
這一行只是在說明:物件的id在 100 ~ 199 之間會從天空掉下來

# ←這相當於程式中的註解,程式執行時,在#後面的敘述將視而不見
(當然,前提下這個符號的前面要留有空白)

ken736 2007-04-15 16:54
人物bmp區


<bmp_begin>...<bmp_end>之間可以更改圖片路徑及一些人物的基本能力

<bmp_begin>
name: %s
head: %s
small: %s
file(%d-%d): %s
 w: %d
 h: %d
 row: %d
 col: %d
walking_frame_rate %d
walking_speed %lf
walking_speedz %lf
running_frame_rate %d
running_speed %lf
running_speedz %lf
heavy_walking_speed %lf
heavy_walking_speedz %lf
heavy_running_speed %lf
heavy_running_speedz %lf
jump_height %lf
jump_distance %lf
jump_distancez %lf
dash_distance %lf
dash_distancez %lf
rowing_height %lf
rowing_distance %lf
<bmp_end>

☆%d指一個整數值
 %s指一串禁用言語字,可能是路徑或單字
 %lf指浮點值,可用小數點以下
※圖片格式只能是*.bmp

name:
角色名稱,選角色時在Fighter(角色):那一欄會出現他的名子

head:
角色大頭照(路徑),選角色時可以看到角色最帥的圖片

small:
角色小圖示(路徑),在遊戲時,會出現在血條氣條旁邊

file(%d-%d):
角色的動作圖(路徑)

walking_frame_rate
走路動作圖延遲時間

walking_speed
走路速度

walking_speedz
走路速度(按↑↓鍵走路)(z軸)

running_frame_rate
跑步動作圖延遲時間

running_speed
跑步速度

running_speedz
跑步速度(跑步時按↑↓鍵)(z軸)

heavy_walking_speed
拿重物時的走路速度

heavy_walking_speedz
拿重物時的走路速度(按↑↓鍵移動)(z軸)

heavy_running_speed
拿重物時的跑步速度

heavy_running_speedz
拿重物時的跑步速度(按↑↓鍵移動)(z軸)

jump_height
跳躍的高度(負值才是向上跳)(y軸,初速)

jump_distance
跳躍時的移動速度

jump_distancez
跳躍時的移動速度(起跳時按↑↓鍵)(z軸)

dash_height
跑跳的高度(負值才是向上跳)(y軸,初速)

dash_distance
跑跳時的移動速度

dash_distancez
跑跳時的移動速度(起跳時按↑↓鍵)(z軸)

rowing_height
受身時的高度(負值才是向上)(y軸,初速)

rowing_distance
受身時的移動速度

ken736 2007-04-15 16:54
氣功bmp區


氣功和武器的bmp設定

<bmp_begin>
file(%d-%d): %s
  w: %d
  h: %d
  row: %d
  col: %d
weapon_hit_sound: %s
weapon_drop_sound: %s
weapon_broken_sound: %s
<bmp_end>


※由於氣功和武器不會在角色選單中出現,所以不需要大頭照

file(%d-%d):
動作圖,用法同上一篇所述

weapon_hit_sound:
物件被擊中的聲音

weapon_drop_sound:
物件掉落地面的聲音

weapon_broken_sound:
物件毀壞的聲音

ken736 2007-04-15 16:55
人物frame區


現在來說明<frame>...<frame_end>的其中的主要設定的部分

<frame> %d %s
pic: %d
state: %d
wait: %d
next: %d
dvx: %d
dvy: %d
dvz: %d
centerx: %d
centery: %d
hit_a: %d
hit_d: %d
hit_j: %d
hit_Fa: %d
hit_Ua: %d
hit_Da: %d
hit_Fj: %d
hit_Uj: %d
hit_Dj: %d
hit_ja: %d
mp: %d
sound: %s
(其他別張介紹: bpoint,cpoint,opoint,wpoint,itr,bdy)
<frame_end>


<frame> %d %s
%d是動作的編號(也可以說是第幾個動作)
%s是動作的名稱(註解用,可以亂打,就是不能不打
因為它會以為接在後面的pic:是動作名稱,導致pic:沒有功用)

pic:
圖片的編號(不可省略,原因不明)

state:
狀態

wait:
延遲時間

next:
下一個動作

dvx:
速度(x軸)

dvy:
速度(y軸,效果是加速度)

dvz:
速度(z軸,玩家按↑↓時才看得出來)

centerx:
圖片的中心位置x

centery:
圖片的中心位置y

hit_a:
按A(攻擊鍵),跳至下一個動作

hit_d:
按D(防禦鍵),跳至下一個動作

hit_j:
按J(跳躍鍵),跳至下一個動作

hit_Fa:
按D>A(防前攻),跳至下一個動作

hit_Ua:
按D^A(防上攻),跳至下一個動作

hit_Da:
按DvA(防下攻),跳至下一個動作

hit_Fj:
按D>J(防前跳),跳至下一個動作

hit_Uj:
按D^J(防上跳),跳至下一個動作

hit_Dj:
按DvJ(防下跳),跳至下一個動作

hit_ja:
按DJA(防跳攻),跳至下一個動作

mp:
氣用量

sound:
聲音(路徑,格式wav)


何謂動作(action)?每個人物都是用好幾百個動作完成的
一個<frame>...<frame_end>之間就是一個動作
要好幾個動作和動作之間的連繫才能完成簡單的動作
而為了連繫動作,故每個動作都要編號
不過能使用的動作數量好像有上限:0 ~ 399
所以在改檔時,除了基本動作,所新增的招術也只能使用還空著的編號

ken736 2007-04-15 16:56
itr:區


itr就是攻擊嘛~跟打擊、捉人有關

itr:
kind: %d
x: %d
y: %d
w: %d
h: %d
dvx: %d
dvy: %d
fall: %d
arest: %d
vrest: %d
bdefend: %d
zwidth: %d
effect: %d
catchingact: %d %d
caughtact: %d %d
itr_end:


kind:
攻擊的樣式

x: y: w: h:
攻擊範圍

dvx:
被攻擊的物件的速度(x方向)

dvy:
被攻擊的物件的速度(y方向)

fall:
被攻擊者的倒地值

arest:
擊中一人後,多少時間後才能再攻擊(此時vrest:無效)

vrest:
可攻擊多人,每個被攻擊者被擊中後多少時間才會又被同一人攻擊
(vrest:小於4會導致攻擊者的動作無法進行)

bdefend:
被攻擊者的破防值

zwidth:
與地面平行,上下的範圍(z方向)

effect:
效果( 當kind: 0 )

catchingact:
抓(捉)人後的動作( 當kind: 1,3 )

caughtact:
被抓(捉)者的動作( 當kind: 1,3 )

ken736 2007-04-15 16:56
bdy:區


bdy身體,是與itr互動的指令

bdy:
kind: %d
x: %d
y: %d
w: %d
h: %d
bdy_end:


kind:
樣式
沒有什麼重要的功能

x:  y:  w:  h:
身體範圍

ken736 2007-04-15 16:57
bpoint:區&cpoint:區


hp在1/3以下時就會出現一條紅色的東西,放在嘴角的位置
不過每個動作都有這個指令的話,會很占檔案,所以只有部分有而已

bpoint:
x: %d
y: %d
bpoint_end:

x:  y:
嘴角的位置

cpoint:區
cpoint 捉人與被捉者的互動

cpoint:
kind: %d
x: %d
y: %d
injury: %d
cover: %d
vaction: %d
aaction: %d
jaction: %d
taction: %d
throwvx: %d
throwvy: %d
throwvz: %d
hurtable: %d
throwinjury: %d
fronthurtact: %d
backhurtact: %d
decrease: %d
dircontrol: %d
cpoint_end:


kind:
樣式

x:  y:
( 當kind: 1 )被捉者的位置( 與被捉的人 kind: 2 的 x: y: 配合 )
( 當kind: 2 )被捉者自己的位置( 與捉的人 kind: 1 的 x: y: 配合 )

injury:
攻擊力

cover:
遮蓋( 10被抓者在後,11被抓者在前 )

vaction:
被捉者的動作

aaction:
按A,跳到哪個動作

jaction:
按J,跳到哪個動作

taction:
按→A (方向加攻擊),跳到哪個動作

throwvx:
丟出去的速度( x方向 )

throwvy:
丟出去的速度( y方向 )

throwvz:
丟出去的速度( z方向,要按上下才有 )

hurtable:
被捉的人會不會被其他的人打到?( 0不會,1會 )

throwinjury:
被捉的人被丟出去後著地的受傷量

fronthurtact: ( 當kind: 2 )
被捉的人的前面被其他的人打到的動作
用在 kind: 1 會變成與 injury: 同效果

backhurtact: ( 當kind: 2 )
被捉的人的背後被其他的人打到的動作

decrease:
(負值)捉者能夠捉多久的時間減少值( 值越小越久 )

dircontrol:
控制方向( 按著方向鍵進到此動作便會轉向,負數則相反 )

ken736 2007-04-15 16:58
opoint:區


這是一個超好用的功能,它能召喚一個物件到場地上來協助戰鬥
不過這個指令要放在next之後的一個動作裡,才會發生功用

opoint:
kind: %d
x: %d
y: %d
dvx: %d
dvy: %d
action: %d
oid: %d
facing: %d
opoint_end:

kind:
樣式 ( 1造出,2造在手上 )

x:  y:
位置( 配合該物件的centerx和centery )

dvx:
速度( x方向 )

dvy:
速度( y方向 )

action:
動作(被造出該物件的第一個動作)

oid:
id號碼

facing:
方向、數量

ken736 2007-04-15 16:58
wpoint:區


設定武器在人物手上的狀態

wpoint:
kind: %d
x: %d
y: %d
weaponact: %d
attacking: %d
cover: %d
dvx: %d
dvy: %d
dvz: %d
wpoint_end:


kind:
樣式( 1人物在用的,2武器在用的 )

x: y:
位置( 配合物件的 wpoint: 的x和y的位置 )

weaponact:
武器的動作

attacking:
攻擊狀態( 可查閱武器的<weapon_strength_list> )

cover:
遮蓋( 0武器在前,1武器在後 )

dvx:
丟出去的速度( x方向 )( 武器的動作跳到40 )

dvy:
丟出去的速度( y方向 )

dvz:
丟出去的速度( z方向 )

ken736 2007-04-15 16:59
氣功篇


type: 3 跟其他類型的物件的hit用法有很大的差別,所以特別分開來介紹

hit_a: %d
每經過一段時間的損血量( 由於造出來的氣功一般hp為500,hp扣完時就會跳到hit_d所指定的動作 )

hit_d: %d
當使用hit_a將hp扣完時,就會跳到hit_d所指定的動作

hit_j: %d
z方向的移動速度
值49以下是向上移( 50和0和負數無效 )
值51以上是向下移

hit_Fa: %d
使用的追縱方式

1  追敵人的center(因為敵人站在地面,所以會下飄)
2  dennis_chase(追縱效果)
3  加速法追敵(追縱力較差)(敵人倒地後轉移攻擊目標)
4  jan_chaseh(用了會出錯,必須改用5)
5  天使賜福
6  惡魔的審判
7  jan_chase,firzen_chasef,firzen_chasei(用了會出錯,必須改用6, 9)
8  吸血蝙蝠
9  殃殞天降
10 john_biscuit(漸漸加速)
11 極地火山
12 bat_chase(追縱效果)
13 連環重炮
14 連環重炮(追縱效果)(高度不變)
※hit_Fa: 2,3,12,14當hp扣完時,就會失去效用
※hit_Fa 武器也適用

john_biscuit說明
由於id: 214和state: 3006的關係,打到人後會跳到hit_d

dennis_chase說明
由於hit_Fa: 2的關係,轉向時act: 1,追人時act: 3,飛走時(hp扣完)act: 5

julian_ball說明
由於hit_Fa: 14的關係
轉向時act: 50,追人時act: 0
轉向時act: 51,追人時act: 1
轉向時act: 52,追人時act: 2
轉向時act: 53,追人時act: 3
轉向時act: 54,追人時act: 4
轉向時act: 55,追人時act: 5
轉向時act: 56,追人時act: 6
轉向時act: 57,追人時act: 7
轉向時act: 58,追人時act: 8
轉向時act: 59,追人時act: 9
(轉向共有50 ~ 59,追人共有0 ~ 9,依此類推)
※但若動作中加入itr,此規則似乎不存在…

ken736 2007-04-15 16:59
武器強度表


<weapon_strength_list>(武器_強度_表)這禁用言語只在輕型武器檔出現的指令,可說一目就了

<weapon_strength_list>
  entry: 1 normal
    dvx: %d  dvy: %d  fall: %d  vrest: %d  bdefend: %d  injury: %d  effect: %d
  entry: 2 jump
    ...(省略)
  entry: 3 run
    ...(省略)
  entry: 4 dash
    ...(省略)
<weapon_strength_list_end>


我想有關類似 itr: 的指令功能可以在itr:區可以找到
請注意!它不像itr能使用那麼多的功能。

問題就是這整體功能是在做什麼的↓

首先,當一個角色撿到輕型武器
如果角色 wpoint: 中設定 attacking: 1
就會使用該武器的 entry: 1 normal 裡設定的狀態來攻擊

當然,不只這四組,您還可以增設許多組
只要在 attacking: 設定對應的組別即可
  entry: 5 other321
    ...
  entry: 6 ccc
    ...

武器 on_hand 動作中的 itr: 設了 kind: 5 ,有一些指令可說是形同虛設…

ken736 2007-04-15 17:00
stage區


闖關,故名思意就是給人破關用的,如果改檔改得不錯,還可以加入故事等劇情喔

<stage>
id:

<phase>
bound:

id:
  hp:
  act:
  x:
  y:
  ratio:
  reserve:
  <soldier>
  <boss>
  times:
  join:
  join_reserve:

...
<phase_end>

...
<stage_end>


<end>
功能未知

<stage> ~ <stage_end>
一小關,比如說1-1就是一關,1-2也是一關
據說打到4-10會跳到神奇的第六關

id:
關卡
0 是1-1
1 是1-2
2 是1-3
十位數是大關
11 是2-2
45 就是5-6了…依此類推

<phase> ~ <phase_end>
一小關裡的一小階段,當殺完敵人才能到下一階段
( 放置超過10個phase會出問題 )

bound:
一小階段的場地寬度,每殺完敵人bound加大會有向前推進(闖關)的感覺
( 超過地圖的width會造成無法進入下一關 )
( bound與前一個相同會造成無法進入下一關 )

id:
物件的id碼(可至data.txt查得)
1000 是隨機出現id 1, 2, 4, 5, 6, 7, 8, 9, 10, 11的角色
3000 是隨機出現id 30, 31的角色
( 一個phase中放置超過20個id會有小問題 )

hp:
血量
比如說bandit血設為50就比較容易打死,魔王血設2500就要打很久
難度easy,闖關敵人血量 × 75%
難度crazy,闖關敵人血量 × 150%

act:
一開始的動作( 只有對type 0,5有效 )
一般人物的開始動作預設為running(5)
(*原版主要是為了用在crimianl上的)

x:
一開始的位置,通常會有往右400的隨機位置
預設的話位置可能是x: -300或比bound多300的位置

y:
一開始的高度,這要看物件的type
type為1,2,3,4,6會從高空300的地方出現,無法由y:改變位置
type為0,5會在地面出現,可以由y:改變位置

ratio:
敵人的比率,可以用小數
敵人出現的數量=玩家數量 × ratio
敵人總共出現的數量=玩家數量 × ratio × times
( 放置一個id,場上能同時出現的上限是40個 )

reserve:
復活次數
( 只能用在人質criminal,用在敵人身上的話可能會跳出遊戲 )

<soldier>
士兵(無值)
當設為<boss>的角色沒被打死,則士兵被殺後還會再出現
註:預設次數為50次
若同時設下times:
則boss被殺完時,設為soldier的敵人就不會再出現
times同時也會限制soldier出現的次數

<boss>
魔王(無值)
功能如上所述

times:
出現次數
被殺掉之後還會再出現,直到times用完

join:
加入我方後的血量
敵人被殺掉後會加入我方

join_reserve:
加入我方後的復活次數

ken736 2007-04-15 17:00
背景區


戰鬥時如果沒有背景那就太無趣了;一個好的背景說不定還可以增加戰力呢

name: %s
width: %d
zboundary: %d %d
shadow: %s  shadowsize: %d %d


name:
名稱

width:
地圖左右的活動範圍寬度

zboundary:
地圖上下的寬度
有兩個值,前面的是活動範圍上限,後面的是下限
由於y: 0 ~120 的區域被人物狀態表遮著,所以通常上限要設在200之後

shadow:
所選用的影子圖片( 路徑 )

shadowsize:
影子的大小
有兩個值,請使用影子圖片的寬與高


第一組用法(背景為圖片)
layer:
%s(圖片路徑)
transparency: %d
width: %d
x: %d
y: %d
loop: %d
cc: %d
c1: %d
c2: %d
layer_end


transparency:
透明度
0 不透明,圖片的黑色部分使用不透明處理
1 透明,圖片的黑色部分會透明

width:

這是用來做立體效果的
一般若場地大於794的話,想要做出立體效果,這個值一定會大於794,且小於地圖的寬
舉例:獅子山森林的寬3200,而forestt背景width: 設2900
(2900-800)/(3200-800) = 7/8,約活動畫面向右8格時,forestt背景就要向左移7格
再舉個例:forests背景width: 設800
(800-800)/(3200-800) = 0,也就是畫面怎麼動,這個背景是固定不動的

x:  y:
起始位置
為了達到立體效果,width: 與x: 之間是不得不去研究的
像是獅子山森林放在最右邊才出現的forestm4背景
forestm4圖寬184,x: 1216,width: 1400
1216 + 184 = 1400,活動畫面向右約1664後就可以看到這張圖…(計算內容省略)

loop:
迴圈
當一水平線上圖片需要重複放置時會比較方便

接下來是用來做動態背景的指令,就是動畫啦
cc:
這個動畫的全部時間( 時間間格應該跟wait一樣 )
動畫是重複播放的

c1:  c2:
起始時間與結束時間
譬如hkc的
cc: 16  c1: 0  c2: 7
cc: 16  c1: 8  c2: 15
先放第一張圖0 ~7,然後再換第二張圖8 ~15,之後重複播放


第二組用法(背景用色彩填滿)
layer:
%s(圖片路徑,隨便一張圖就可以啦)
rect: %d
x: %d
y: %d
width: %d
height: %d
layer_end


rect:
16色下所使用的色碼
至於小熊為什麼不要在32色用,這是個謎…

x:  y:
起始點

width:  height:
寬與高

每個顏色對應的rect值
HTML標準色(16色下只能取接近色)
name rect 
black 65536 
navy 16 
green 1024 
maroon 32768 
teal 1040 
purple 32784 
olive 33792 
gray 33808 
blue 31 
lime 2016 
red 63488 
silver 50712 
aqua2047 
fuchsia 63519 
yellow 65504 
white 65535

kenbilly 2007-04-15 18:07
可post圖嗎? [s:44]

oacldsrx 2007-04-15 19:04
引用第14樓kenbilly於2007-04-15 18:07發表的  :
可post圖嗎? [表情]

有.....
http://lf2-land.idv.st/


查看完整版本: [-- LF2改檔教學(初階) --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.033067 second(s),query:2 Gzip enabled