|
在这里,我向你解释如何在源选择安装到创建工作中的字符。- b2 c z# p) g9 u$ i: r7 `
../NEUZ/Versioncommon.h$ }1 X- S3 ?1 g4 M. N
2 c' k0 _1 Y: O4 L4 G在上范围进这里只是这一个:5 C9 A- @2 h# a) `
代码:0 W) e0 }+ n7 h/ Q6 f
4 e3 M* D0 c& N* ? {$ o
#define __JOB_CREATE_CHAR
$ M, P) v7 e+ Y5 S N: I/ [* ?# A8 e../_Interface/WndTitle.cpp% w& n7 x% ]( a3 N( `
# Y6 W- J. F q9 p7 Z, m" |在这里你进入功能
, Y; @) ~6 u5 ~+ h1 L7 A2 _2 J代码:6 d0 ]1 ^8 v! E% W
2 G3 `- B3 D2 X1 N& |
void CWndCreateChar::OnInitialUpdate()( S7 r) j' t8 ^. T/ H u
并有助于" l$ I; l8 }' ]# |" d
代码:
: [# q0 D" d, t( _1 C' x( W+ ]CWndNeuz::OnInitialUpdate();
" N6 E9 @; }0 R3 b. I" q% k* E这样的代码:$ w8 K9 H' l8 H _" J8 ?9 U3 P
代码:
. N" U3 K, W# p6 t#ifdef __JOB_CREATE_CHAR
( m) L" I3 W& Y2 q m_Player.m_byJob = JOB_MERCENARY;
7 z |7 [: w6 @* O0 c CWndComboBox* pWndJobBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );* J/ ?0 B, a3 m9 C2 z# l4 ]
pWndJobBox->AddString("Mercenary");//Edit by yannickmama# x$ @! L3 r* G" y) B* b# M
pWndJobBox->AddString("Acrobat");9 B! w7 F, _6 ]* c
pWndJobBox->AddString("Assist");1 E. D$ \7 R* ^
pWndJobBox->AddString("Magician");
$ { s) Z5 n4 U pWndJobBox->AddWndStyle( EBS_READONLY );* E9 j* O, ]& H( W; T- l0 r
pWndJobBox->SetCurSel( 0 );# Z) X, c. v3 N% ~4 B$ ?! R, u6 ]
#endif //__JOB_CREATE_CHAR
8 t" A$ ^% s9 t0 s1 g! i; h B, g在同一文件中,我们跳到这个功能
+ t" }9 V2 p$ l' k) \代码:) o3 c0 `, A; e
BOOL CWndCreateChar::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
( R% F0 A4 O+ s' W) S并查找这一行:# h+ c" O5 M# C9 `# |
代码:
o/ \ F+ _- J* y2 x$ t3 j+ H8 ^) J case WIDC_OK: // Create& N K M: q/ t# `# M4 v: [: d
{
( l+ O7 M6 x0 F( M下面我们就这一个:
0 ]/ V o3 U4 S代码:
. @4 w9 L3 t2 t& E3 I
( P, k$ a4 p4 _3 Z$ d#ifdef __JOB_CREATE_CHAR
7 s& s* K# g% B2 H0 }1 Y5 @3 ] CWndComboBox* pWndJobBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );' L+ t; ^: x2 ^9 ~
assert( pWndJobBox );
6 w- H5 ]$ d7 A4 h. u- r: ^- M9 T/ n6 T
9 N& D7 o/ s5 c' w if( pWndJobBox->GetCurSel() == -1 )4 f' I3 p: ]3 A3 q
{" ^- L5 I( q+ J' @( x" f7 v
g_WndMng.OpenMessageBox( "Bitte w?hlen Sie einen Job" ); A% u# F" j# p
return TRUE;0 l" j3 T1 @6 J m! B
}
/ M$ ]" S5 p- B" `; j; i
. M) Y( E c0 y* c& H; [ switch( pWndJobBox->GetCurSel() )* k6 I [! p+ w1 G2 y% u
{+ N& E; q% f Y. t
case 0:, \5 b L7 T- J
m_Player.m_byJob = JOB_MERCENARY;
: Y3 U8 Y. @9 q% S3 R break;
) A% d3 x, b- _! ~6 P: \ case 1:( }9 G5 ~7 [- G0 r9 c
m_Player.m_byJob = JOB_ACROBAT;
, x5 v2 J; _, J3 f, s, r break;
3 Q9 p: u3 p+ H. L k0 @ case 2:
2 K3 ?5 P- j6 C4 N1 ~+ k m_Player.m_byJob = JOB_ASSIST;
6 l, M, o; ^/ d& \2 H break;
/ `4 V% H5 e% g0 j& b case 3:: G$ E" f, t1 L7 l* k4 E
m_Player.m_byJob = JOB_MAGICIAN;
: E z$ N- p7 T& ]4 t" ~. P4 r& b break;
6 {2 V. R: U7 r& ?7 B4 R default:2 G! ^5 x: N2 x3 ]& v& j
m_Player.m_byJob = JOB_MERCENARY;
5 w g. v9 i% E& k break;$ s7 r4 ^/ V5 m" _
}
, E3 K( C9 x9 a6 F& K#endif //__JOB_CREATE_CHAR6 R* v8 ~( G6 C$ ~
; J* K( r. I E+ N" H../databaseserver/versioncommon.h
9 C3 T* G. d; r. B1 m- ~1 D) r$ d9 K7 J, L
在这里,我们这一个以上的地方进行
4 m! k8 J6 f J: m$ {, f6 p" C代码:
1 q2 [" |; ~9 `/ ]% X0 K5 b
& ^$ ]; c% L6 L- K X* H1 W" C \# M#define __JOB_CREATE_CHAR
; I6 e! q; m% N: V9 U../_Database/DbManager.cpp
" F+ i( j* a' Z1 [7 j! t6 @ J1 C, f
在那里,我们去的功能5 _4 u* g9 r- \/ |
代码:- {& t n( N3 B: |& _+ Q$ M/ M# d
# q6 |9 j: i0 @2 f7 C
void CDbManager::CreatePlayer( CQuery *qry, LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus )
4 s$ |6 K& S# ] T& c并搜索
/ y) D8 k6 ?: W/ ]' D: V代码:
, T: v) e! m2 qpd.data.nJob = 0;3 q; }' h$ N+ |0 _
并替换为/ E0 q. p* x/ ^7 o$ w* P; C$ p' M
代码:
8 \4 X$ q1 H5 r' }#ifdef __JOB_CREATE_CHAR+ v. E+ B* V. l# L
pd.data.nJob = nJob;2 c7 Y5 s, y4 L8 |
#else //__JOB_CREATE_CHAR" i @1 z: i% _: F' @
pd.data.nJob = 0;+ w5 [: ]* w8 k: ^( z; }1 g
#endif //__JOB_CREATE_CHAR: Z: W$ |, e I4 f" A
$ v9 w+ {- j6 y" ]( {/ A% ]
这将永远有一个来源的东西。
' y$ v( V3 J6 D3 w9 s* \
) i, j1 w# R; R! [2 y但我们现在必须修改数据库,所以我们走在存储过程CHARACTER_01_DBF CHARACTER_STR到数据库
5 M& T6 s/ E$ l; W和搜索# I) E2 B( p* h
代码:
0 }; F: i, \& a4 S6 N/ v% A: A- A, ?$ w
FROM BASE_VALUE_TBL9 p( @" ~& W0 {/ c7 h9 C) R
WHERE g_nSex = @im_dwSex
7 I# _2 g3 I+ ?/ G并替换为
' b, y' ]0 a" o2 X代码:
& b9 p/ `; w/ \( \+ W FROM BASE_VALUE_TBL
- L% w2 g9 z' q {" e7 {- ^ WHERE g_nSex = @im_dwSex AND6 y$ R! {% L0 c' M6 L2 }; E& E
m_nJob = @im_nJob
( D# c( H4 d( ]6 n! S6 ]3 a$ q当你做的工作,以便更积极的条目BASE_VALUE_TBL CHARACTER_01_DBF都可以。
! I3 c' \2 W/ M, I
7 f, L1 i: V8 f% \2 E你必须确保它仅适合和njob g_nSex。始终创建两个g_nSex g_nSex=0和=1项。- f# T& P. ~5 j# Y) X
" Q4 w0 C$ c( I6 @7 v& p你必须,但是,仍然在Character_STR条目(刚下Selectierung BASE_VALUE_TBL)为补充SKILLINFLUENCE_TBL。
5 i; g" }0 H+ ~9 B8 u ^. t# N6 O这是那里告诉服务器哪些技能你的角色可以skillen。' M8 c$ w+ n2 L" f" {3 C
可惜我不再the'm懒得现在要做的话:'D
3 j! j2 }+ T$ R
: c+ K! g, ?0 A' |: w( F1 C% z! A! M O% \+ ^: \) V2 W
7 N. i- _: |4 Q
0 H- n7 |$ T' `% B- J1 n+ o
$ q# [/ E6 o" G6 N' Q3 s- @0 V# ?) g! M" F7 v/ [
D. d8 X) p5 p& }2 D3 ?
$ R& `1 }" f2 I; a
Quote:7 ~ Z! d2 Y$ J$ t
Originally Posted by Divine.
4 J. L# S! W' z Q如果他发现我7 H. D; |$ x; X8 q' K R2 O( M, s
代码:
U W& o4 e& X! h' k# W pd.data.nJob = 0;
% B) w" |/ _" X- c9 X/ l3 z并非如此:8 _8 T/ G7 y% E, {5 q; t
所以,我只能看到; X$ ~1 i+ B+ L9 N! ?
代码:
) K( Q1 x6 j$ P& I s7 B8 g // pd.nJob = 0;
" l( Q o' }3 s^^
" n6 C6 K1 `8 ?! |Hier, das mussu finden:
. L8 J& B: e3 z# P7 jQuote:& `/ N8 r0 c: c5 l% ]
#ifdef __CREATE_JOB
% k* z% M0 i) |pd.data.nJob = nJob;# X7 e z7 V7 H5 @% l7 `8 ^
#endif // __CREATE_JOB
6 ^) A: x& L u2 X k// pd.nJob = 0;3 p2 I" ^1 G1 `) g3 n; k' d. }
// pd.dwState = 0;
9 J$ n& k4 |% L3 cpd.data.nLevel = 1;
' ~8 ~ }. A" w9 o! Ppd.data.nSex = nSex;2 B0 P1 @% [2 ~; w- b+ G. P
pd.data.nVer = 1; $ S1 X b3 p/ z& n$ v6 k
& K/ H3 a8 K3 I7 P% T0 c
我仍然有一个问题(:
9 w8 Y6 x1 M8 F. ^下Character_STR DB3 l5 y& J0 o7 T# h5 N0 |
这样做在这里$ Z" y0 @5 U) f# G' O1 `. {9 g
代码:
, E+ s! k: [5 A% W2 v6 g FROM BASE_VALUE_TBL! q9 R$ U9 n( d% \: |: o
WHERE g_nSex = @im_dwSex
8 U& r3 Y' j3 g1 s; \6 u在这里改变
! B {4 x0 n- r+ ~/ h) ?( M代码:; t: _+ }. `9 `+ \$ g
FROM BASE_VALUE_TBL0 N/ x: I& Y! D8 a) `
WHERE g_nSex = @im_dwSex AND' o6 z9 a" A' I; C
m_nJob' U2 ?( H- o( T, p8 ~
由于还需要什么?.?
# n/ \5 e5 t0 | Q: Q在第一篇文章中,你可以阅读2 ^7 V% [& k5 P; G
代码:
- B8 S5 R: M: _$ y FROM BASE_VALUE_TBL- c$ T+ x) U. r; p7 @
WHERE g_nSex = @im_dwSex AND
: ]6 S- f" C. k+ I {% R9 y! K' \ m_nJob
* w* d; D! s: J/ b, w+ U' M
' h& z0 h' }' y0 j' Y3 Z6 R
8 K. A4 c9 ^: m" o* }! M. y! |窗口是什么我忘了
7 n' r0 D: k& I# }. G
2 \" j' M( H0 v代码:/ l& v" o- k( ^! `/ y
APP_CREATE_CHAR "WndTile08.tga" 1 544 368 0x2410000 26
! K- @* W, |4 A{
. j3 C! N7 @: q Z" G' {// Title String
9 x# s9 }& ]) R2 q) Z4 [* p8 QIDS_RESDATA_INC_003064+ M+ Q. ?/ G7 O n3 f) F1 {1 ]9 ]
}' w4 d+ d5 r! }# g h9 A
{
u- n! u5 m$ n* V- d# y// Help Key; d2 X" h5 J: d1 U
IDS_RESDATA_INC_003065' m/ \ m5 u, D* q+ s3 r
}9 F4 E: P" o) x1 R N
{
0 P+ |7 {( ~6 [5 s! L WTYPE_BUTTON WIDC_OK "ButtOk.tga" -842150451 176 300 248 320 0x220000 0 0 0 01 Z7 L6 _- E4 ?( J; f2 {
{& C; s" ~+ h( m; M; p" e! y
// Title String
* R, q/ T$ i2 t8 I5 DIDS_RESDATA_INC_003066% d% W/ [$ p% {) p9 ~6 X
}
/ R( ^2 ~! B* ]# M, x) w0 Z7 R {7 Y* O; Q8 N) u* J
// ToolTip, g. ]# ^$ e( b! v" C) B2 B/ m
IDS_RESDATA_INC_003067
7 M& [" P: P9 X* b1 e4 D+ W6 P- z! s }
7 f/ H# k# F B) r8 `! W& b" @ WTYPE_BUTTON WIDC_CANCEL "ButtCancel.tga" -842150451 280 300 352 320 0x220000 0 0 0 0
8 I+ T6 w0 g, ~2 d. B- i {
% r. R3 D9 o1 u6 i7 m" } // Title String+ n/ U, @4 _7 f
IDS_RESDATA_INC_0030686 A: D( j6 B2 i4 _$ g
}: G7 }9 V# S8 n* R
{
/ ?. ~) A# c0 x( \- _8 ?$ ` // ToolTip
: B% U' A1 a+ Q6 J, nIDS_RESDATA_INC_003069- o# I( H# V' \& \/ `: J
}
j& D u3 r* e# S2 V# ~, R WTYPE_BUTTON WIDC_MALE "ButtMale.bmp" -842150451 118 128 190 148 0x220000 0 0 0 07 X' S; B: v) ]: D9 a
{5 t) _) g( [: ?8 g+ |3 c
// Title String
* L T2 g7 S6 S3 M" KIDS_RESDATA_INC_0030704 U* U2 I/ Y( D+ I$ i2 s# E3 y( C
}
. o1 R0 L- E3 Q. K, a+ L {
6 S' D7 f/ J _ j3 F0 q2 a, c- c* ^ // ToolTip
9 X7 s; E7 W: g/ CIDS_RESDATA_INC_003071
7 M$ u- z/ R- g1 ~5 b+ a }! v X4 x; ~ {1 n. f; ^
WTYPE_BUTTON WIDC_FEMALE "ButtFemale.bmp" -842150451 194 128 266 148 0x220000 0 0 0 0
! N- h! z* @6 o) G! z9 R {9 o: V) A8 @* M' l/ p3 `% U# _
// Title String6 f( A1 [; j* g# ~$ w6 b" Q
IDS_RESDATA_INC_0030722 z. D& c* A' K# ~3 `
}* L! R- o& _ ]; s$ X: i% v3 r4 Q
{& T1 s6 h! l& y) m
// ToolTip
/ B9 ^# z9 U& j* c0 t- \% wIDS_RESDATA_INC_0030736 b: x T9 h* e2 z
}
$ S1 @/ g, k' J7 f9 K+ { WTYPE_EDITCTRL WIDC_NAME "WndEditTile00.tga" 1 116 48 288 71 0x20000 0 0 0 0
' g( Q' p$ y5 c! u B \" H& l% L {, g0 D5 W1 j" ~4 M' `1 d
// Title String% G# j$ p1 h: r& u6 e( S
IDS_RESDATA_INC_003074! f* _- b; Y: _! X* z4 |
}" w% n7 _. F# e6 _5 l0 k6 {
{
8 H! `! v. S1 _ // ToolTip
; ?: L# ] b( b* o$ C5 n% P' ~IDS_RESDATA_INC_003075
T9 ?# A& g5 Z9 l* ?7 h% R }
2 g5 A3 h6 E6 b" @& N9 ]0 I WTYPE_BUTTON WIDC_HAIRSTYLE_LEFT "ButtLeft.bmp" -842150451 118 152 190 172 0x220000 0 0 0 0
7 g" e8 V8 c- w0 N {
7 [0 x9 g" |0 n6 ^; o: s6 S // Title String
, Y" {/ Z% B, h/ y) ?& w9 pIDS_RESDATA_INC_003076
; j7 M2 [2 E& d5 o }% [) P9 W$ Y! P
{1 F2 g1 w2 g6 e6 y* r3 i# @
// ToolTip* T/ Z3 n: v1 }6 g" w' A
IDS_RESDATA_INC_003077
* ?/ x8 Y5 a8 W1 J5 p0 L }4 H7 W# e6 n! L- n( Z9 I8 o1 Y
WTYPE_BUTTON WIDC_HAIRSTYLE_RIGHT "ButtRight.bmp" -842150451 194 152 266 172 0x220000 0 0 0 0+ A; ?, q; M4 |3 q& i4 r. b/ V" [
{
4 [9 p1 t: c) t7 f- V // Title String
( T* r3 K& ] R. \: XIDS_RESDATA_INC_0030785 ? B- P/ S3 z8 H
}
4 T7 q* o0 O5 q/ p' {3 N/ S {
; \& ^5 J- K7 E4 y // ToolTip3 m4 p7 ]( P# ^* F/ v
IDS_RESDATA_INC_003079
5 \# Y6 y% |- `: a6 w- G& D- g }
6 B4 {! @6 w4 [4 c& o5 l) U: H WTYPE_BUTTON WIDC_HAIRCOLOR_LEFT "ButtLeft.bmp" -842150451 118 176 190 196 0x220000 0 0 0 0) f7 v. F7 D$ @" h
{% C; D& e2 c% L
// Title String
2 M: ]% _( [% z/ tIDS_RESDATA_INC_003080
- R. h& g5 @0 c }6 C6 J3 y, n4 t( \1 B, S$ W( U# W
{# a& Y9 a: }+ I: ^
// ToolTip: D5 Q) a* Q" q
IDS_RESDATA_INC_003081
7 l. S) N* }5 r8 q% y' L' Q' _+ e }
$ I! f7 F- T, w WTYPE_BUTTON WIDC_HAIRCOLOR_RIGHT "ButtRight.bmp" -842150451 194 176 266 196 0x220000 0 0 0 0
7 L" e, `7 Z. h& v: x {3 G% ]; C( B7 I& {, ]( X
// Title String
$ l$ r2 t- n2 F. B5 S! IIDS_RESDATA_INC_0030824 i# u9 ^8 I4 y8 x/ y$ h
}
4 O8 K& p+ T8 u {/ p8 X4 d: E$ r& D/ q. ]& w) ]/ L
// ToolTip; {: R+ M$ t. G# E. M6 D
IDS_RESDATA_INC_003083% l0 e4 s; Z9 s' a2 q7 {" o
} m6 Y& e& B% u( z, x
WTYPE_BUTTON WIDC_FACE_LEFT "ButtLeft.bmp" -842150451 118 200 190 220 0x220000 0 0 0 0
; S6 v h4 l$ j {
1 u/ v6 O* F# m- F& S! h' J // Title String
5 f+ ?& y9 K, l1 R$ X4 aIDS_RESDATA_INC_003084 @. m$ X; P) C! j& l; g8 ~( y
}+ p; A* p' r# s% c! f
{! e3 a; M, Z! S" w! y: i0 O( u
// ToolTip
+ b, F- k6 m8 }2 YIDS_RESDATA_INC_003085
& A" \1 h' T& G* v2 n$ U }' @9 J5 v5 O, J
WTYPE_BUTTON WIDC_FACE_RIGHT "ButtRight.bmp" -842150451 194 200 266 220 0x220000 0 0 0 0
# b3 @8 R ] ?+ G {
: Q/ |* P' e. ` // Title String. R/ l9 ?0 m% P
IDS_RESDATA_INC_003086
5 Q7 |0 F+ H. {" z4 _: g7 b }
8 F" @0 [. u+ n3 o5 S$ ^4 T {& I9 y4 [. T" q( a( K, C/ X
// ToolTip
+ w, ]: t8 b' c+ D# B N+ u% g9 \' ?IDS_RESDATA_INC_003087
- z6 s& w: ~4 a5 ?' {5 P }
$ Z' g/ A( m/ {& m, O+ } k WTYPE_STATIC WIDC_STATIC1 "" -842150451 16 48 116 68 0x2260000 0 0 0 0
' N) Z7 u9 m9 p {
0 y: y m% _: f* x4 F# i2 |+ L // Title String8 J. \, h2 d5 k: k' ?+ @0 @
IDS_RESDATA_INC_003088
* ^4 d% S7 ~4 W& p, x: \7 ` l2 ^- {( M }! P5 v( r5 P2 @
{
w2 z4 Q4 F" N# E // ToolTip5 z7 A2 d4 \6 A' R4 U2 N0 m* H
IDS_RESDATA_INC_003089
3 I5 y2 Y' D$ C& W }
r! p1 x8 l2 G* A; V. {9 z5 s WTYPE_STATIC WIDC_STATIC2 "" -842150451 -232 136 -132 152 0x2260000 0 0 0 0
! U$ t+ Z6 S" d& _6 |! ] {# S, }& e$ H" g8 p! R
// Title String
3 Z. Q/ x v. U5 rIDS_RESDATA_INC_003090
+ X: Q! C) t$ ? }" v5 X9 O% g- c# r- L Z( O
{4 ]/ _% z/ H" D7 l& f' e
// ToolTip
# X. T S& M* \3 T: e/ [IDS_RESDATA_INC_003091
3 n8 f" [' l G8 G }
% q( L6 A) s& X9 m8 j" h WTYPE_STATIC WIDC_STATIC3 "" -842150451 16 152 108 172 0x2260000 0 0 0 0 h' @# F C; @
{
9 K0 l0 i- c7 \. H1 d9 u& U // Title String$ K2 y; ^" D0 W" q/ u8 X* a
IDS_RESDATA_INC_003092
7 ]% H; m( i% Y% j6 T. k* g }! H# A* O0 O1 S' A( L+ \7 x
{- J7 ]# J8 v( n* f; t5 t( c% S
// ToolTip
, k" a. ~: ?( k7 M. `7 I/ _9 o( F. F* `IDS_RESDATA_INC_003093
) f) A1 {' U% R }' t% n$ v0 G" q( {7 o
WTYPE_STATIC WIDC_STATIC4 "" -842150451 16 176 104 196 0x2260000 0 0 0 0
4 J; i, [( ]3 s% v {( j; {* `/ s$ l+ i q
// Title String
+ \2 i) ]3 Q" C8 h4 H' v* EIDS_RESDATA_INC_003094
6 y& G/ F7 _" i, U }
( n4 m+ t! M: q6 ^5 m {/ F; w( Z% r. k1 A1 T { ?" L1 q
// ToolTip7 }' s3 ~+ ?4 U- `& Z4 n; D
IDS_RESDATA_INC_003095 ]5 j/ x1 A1 b" E Q, E5 m
}, }0 V) r+ c- v! J. S
WTYPE_STATIC WIDC_STATIC5 "" -842150451 16 200 100 220 0x2260000 0 0 0 0
2 K: ~/ [( b* d: N! V$ T {
8 \ W% o7 ]( u3 b // Title String
/ B9 q2 F' n6 _2 V/ N cIDS_RESDATA_INC_003096
5 e# _7 c, }# S, S3 }( {" C y( v9 z }8 _: ^6 Z i3 x3 P6 U* a1 h
{
9 I7 W0 f5 L# K, F! \" B; t9 q // ToolTip; c3 o$ r! Y, ~6 [! q" L
IDS_RESDATA_INC_003097
' H3 s" c, Q$ A0 V7 W- \: h }7 W3 G Z" l1 e
WTYPE_STATIC WIDC_STATIC6 "" 0 16 128 104 148 0x2260000 0 0 0 0
" f; O: y& D; y h; ^6 w {# Q- I+ p0 B& G) b5 P0 h
// Title String
- D' q7 l2 M9 gIDS_RESDATA_INC_003098% ?' Z; z5 R$ q" g: ^2 Q4 U
}+ V: z& F; r; D8 E v7 A: G
{# |9 ?. b: I; g* J0 d" K: X0 z
// ToolTip. ?: k3 i" S+ R' I; P9 g$ m
IDS_RESDATA_INC_003099
4 O; ]' `) u. g7 O$ G4 N+ t7 ]( R }/ L ]/ c: y/ c K
WTYPE_STATIC WIDC_STATIC7 "" 0 11 76 281 92 0x2220000 0 0 0 0( \: S$ F0 k" n0 ]9 u
{
% c) |7 I& Z! v: T4 o3 { // Title String
" _$ m0 [6 i- u I eIDS_RESDATA_INC_005076( a" X) R6 l8 O2 f5 I" F% r/ w
}3 J2 C# ~- y- X
{( |+ y U( z: a: U5 k
// ToolTip
/ N& E' A1 K& e) \IDS_RESDATA_INC_005077' g# `; P+ ?1 M
}
' v: @. D4 Z) y8 z. T WTYPE_STATIC WIDC_STATIC8 "" 0 11 97 281 113 0x2220000 0 0 0 0# |* i( Q/ k5 o8 I2 d' D
{
$ ^8 y; j( T" O {; _9 x8 C // Title String
. K1 Y' G# J& U& \$ `5 NIDS_RESDATA_INC_0050789 ?- x8 V2 P# d
}3 w$ T# U) \% F
{$ X& M& Z: m- p: |* B5 l- O
// ToolTip0 ]- ?$ i" \6 c# }* A% d6 ~1 K$ j0 H* A" {
IDS_RESDATA_INC_005079
, m/ t6 J3 S+ u# I, O# {) k' \, L6 g }. \& d( Z- j0 f% j2 f
WTYPE_STATIC WIDC_2ND_PASSWORD "" 0 16 224 148 244 0x2220000 0 0 0 07 ^& z" k% S5 |9 d8 N, j& n) }
{
! \; l+ F; t$ T$ M // Title String# S% G8 M- J/ L5 @$ e9 {* {
IDS_RESDATA_INC_006874: ?" s% { n( {. w2 ]: T& q
}
: R4 z& J; p: W {' d j# l7 R1 W4 b" E3 A3 e1 {+ L! U
// ToolTip0 ~* n# a( ^7 A0 l9 d' C1 R. g
IDS_RESDATA_INC_0068753 x F3 W# Z# ~0 J z; Y% Q
}& U. v8 l0 l$ l9 y" D/ S! {
WTYPE_EDITCTRL WIDC_EDIT_2ND_PASSWORD "WndEditTile00.tga" 1 172 224 268 244 0x20000 0 0 0 05 [2 x# b/ _# I8 A
{$ ?" o5 R, D/ g( {3 @; i
// Title String+ d' Y- r0 t" o- m
IDS_RESDATA_INC_006878
- [/ ?1 O# e4 v6 p* j% o: m# o) w. d! y }( S" ~0 }+ ]1 v l) G
{$ ]5 d, O+ {# D3 D
// ToolTip
* E" [1 a7 i5 O' wIDS_RESDATA_INC_0068790 f0 U4 \$ H0 Q# {
}
# X$ E6 b' f% |- A) O8 N WTYPE_EDITCTRL WIDC_EDIT_2ND_PASSWORD_CONFIRM "WndEditTile00.tga" 1 172 248 268 268 0x20000 0 0 0 0
0 W# E- ?4 W _! i( o- K5 V {5 D7 n8 E) L$ w5 b
// Title String
4 I& Q4 n" ~9 w3 DIDS_RESDATA_INC_006880
% `, A' S; r" D& _9 i3 ^ }7 ~+ c* O5 z, z- l" f/ `. I% u
{4 [& r0 `) A1 f
// ToolTip
8 S2 A$ Y! f$ X% q. r {) Q) xIDS_RESDATA_INC_0068814 Z; x0 F6 O; S2 H0 _- P) S/ |
}8 t( p9 t3 d" S
WTYPE_STATIC WIDC_STATIC_2ND_PASSWORD_TEXT "" 0 16 272 332 292 0x2220000 0 0 0 0
" A1 ~) \" f2 J9 b$ y! _ {" u6 Z/ ]- e5 |3 d! `; ~ ^3 z
// Title String, l# p1 O, d c* l
IDS_RESDATA_INC_006900
& T2 T8 |7 ~+ Q( l }
+ t2 c, L1 l7 L+ Q) q- x {
$ h7 U$ C' i) |- A- g3 ~ // ToolTip3 s5 c& [! Z4 |0 |
IDS_RESDATA_INC_006901" d1 n' Q: N: f/ X" @, D0 t: K" Y
}
5 T+ H2 N. b1 v C1 U; x WTYPE_STATIC WIDC_2ND_PASSWORD_CONFIRM "" 0 16 248 148 268 0x2220000 0 0 0 0
! B6 h. O( G' U( } {
& ~; }! b: G+ W // Title String5 t, {; L. {# E7 }/ U1 [
IDS_RESDATA_INC_006904
. W) x+ C+ r2 J ?$ [$ @ }! @/ O7 ^+ i8 @5 ?- i$ L. s% G( J
{
& K. r3 D0 v8 u$ n. I // ToolTip1 o& z* \: ]: w! l2 s* k3 n
IDS_RESDATA_INC_006905
1 v s/ G# m, m7 K) C/ v9 f. t" e }
0 M, p) E& l8 d6 W4 i4 C( A WTYPE_COMBOBOX WIDC_COMBOBOX1 "WndEditTile00.tga" 1 118 80 286 102 0x20000 0 0 0 0
! s! L! n) l$ s4 s3 s2 Q+ u& D$ D- P {0 {7 Z. w2 ^5 ~) V
// Title String
* A' y2 q( ?5 ?IDS_RESDATA_INC_007134
9 C) f: c+ b4 W7 t) {4 B+ s$ b }- \3 J' }" [- v& L
{" \- x- h0 v0 ~3 }
// ToolTip
: c* s) u+ i% e) lIDS_RESDATA_INC_007135 v$ t1 k& ? K8 ]( E
}
; E) s- J1 G2 I x WTYPE_STATIC WIDC_STATIC12 "" 0 18 82 114 98 0x2220000 0 0 0 0# q2 R, h: M# s& p3 }" i' h* C
{; T3 U6 m( Q0 I9 }8 x
// Title String
5 P( B+ H% p2 @; o2 f$ {IDS_RESDATA_INC_0071369 X7 O2 w2 \2 D S1 F5 w
}
7 J) e( e3 C7 ^1 m3 q- \$ z2 Z: e {
6 V. Y8 w0 e# S // ToolTip
+ j7 |4 a9 T& C4 j2 DIDS_RESDATA_INC_0071370 R' p% x# w1 U! |4 i
}
- u) b, N: K$ Q
1 P1 T, w6 r- b- W0 }- k}2 x' M% ~6 q$ D" a3 H: c% Y; X0 Q
所以红色的!* W- c6 X8 R$ y S
! K& j' o/ G3 A, A6 q# h% { _
这里还tblSkillPoint的条目:
4 s+ I0 e6 ^# z( H& h1 |" N, w- u( U% C4 J1 k: b) ]* R
代码:3 i L, j1 f0 }
If (@im_nJob = 1)
F1 e. ]& y' B3 T8 ` Begin
4 ]- w# A( E6 W INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 9, 0, 3)
( d" p% l3 N& C, B C% Y1 P INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 4, 0, 4)
. m) q9 J$ s6 V, R0 `) z INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 10, 0, 5)
* j9 B3 E( {# C INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 5, 0, 6). f! Q( {6 i7 a+ v; d! P
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 112, 0, 7)
2 B+ x" \, ^ B/ ?. ^" d( D2 b INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 13, 0, 8)3 q1 ?" f7 ~( v1 t
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 111, 0, 9)
; W# D! ^, E* @3 X, k4 P& s INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 6, 0, 10)+ z! g' Z5 H }+ p; `/ w& {
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 108, 0, 11)
( [, B: o. W0 b/ ]! }& M4 } INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 14, 0, 12)
5 s5 z1 k' S+ n) C INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 109, 0, 13)0 t) q! t" e2 T2 k- l$ U1 {% f
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 7, 0, 14)
6 t; `: h8 m* B: R$ k INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 12, 0, 15)1 A7 _3 s6 m- A* j
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 11, 0, 16)
4 _* N! P% b v+ K7 q+ T. l INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 8, 0, 17)
! g6 c! `8 R' |/ Q% x. l end1 a9 K' C& f5 E, P2 G
If (@im_nJob = 2)
, B" R0 s) _0 y; |- ^. s Begin, a h5 i3 w+ [) c! ~: w
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 197, 0, 3)
& Z8 b- O# E# y; a: H INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 194, 0, 4)
. P* J0 t0 F$ i0 a' x7 t1 Q& e INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 206, 0, 5)
# g2 ]( f" D, e8 ] INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 195, 0, 6)/ ?1 l4 C0 |1 S7 J& I1 x
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 191, 0, 7)8 N8 T+ b g) i- i
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 192, 0, 8)
, G4 c+ o! ]- p INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 198, 0, 9)
) k; t! K; Q6 W C( [ r+ C9 T INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 193, 0, 10)
( S4 Y* D/ ?; m INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 201, 0, 11)
! b5 x! X0 h# ` INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 203, 0, 12)/ y/ i) u! g1 K
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 196, 0, 13)
7 {; S# {) T5 w0 H INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 204, 0, 14)+ d+ p+ x7 n" T$ V
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 202, 0, 15)
7 a4 m, j% S. {) c& n INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 199, 0, 16)& x% b: f7 w, p4 Y- U
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 205, 0, 17)
' b c6 i: {3 {" ~/ G# E: `2 e INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 200, 0, 18)
% M7 _( f K4 F* q( G end
) O2 m) `& N2 q+ ?3 u# e/ h If (@im_nJob = 3)2 d& n# t1 g7 i/ d- j7 Y
Begin1 c; E- [1 @+ t2 k& T1 o) m
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 44, 0, 3)
; P" H8 f2 {. C; ?( X# ^1 A, _ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 46, 0, 4)7 [0 q$ m* h9 k; ?5 g' a
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 52, 0, 5)) T: h/ S" k; A
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 45, 0, 6)
. X, C* P1 D) S7 x% R! l y INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 114, 0, 7)
" P0 ^2 N+ T3 l; X$ n! ? INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 49, 0, 8)" S+ {, L7 h1 z. ^
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 104, 0, 9), O9 ^5 A. s1 N' C& u4 O
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 20, 0, 10)
8 H2 q6 s; n3 { P INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 53, 0, 11)
" w5 H% a+ c/ g( \' h INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 51, 0, 12)
8 s, L# Q4 M- Z0 k$ l' w; Q( y INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 113, 0, 13)5 H) l! {+ p+ v( K8 G. ]
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 115, 0, 14), }* T/ X% ]; T, j9 X
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 105, 0, 15)- q/ r& c' V7 ?% F3 _$ U
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 48, 0, 16)
$ c) a1 m$ V2 W' N% k! O INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 116, 0, 17)
5 g6 M0 Z" \7 D. x, ^ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 117, 0, 18)
- p# V3 i7 t5 c8 j. B INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 50, 0, 19)( u+ R/ A3 M" f: P' L3 Q
end
/ S |( Z1 ?( F# e, c7 p9 i4 M$ R If (@im_nJob = 4)
1 [" z! ~* W+ L2 z/ p* { Begin+ w" ]1 E8 |0 Q- X3 A" c
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 121, 0, 3)
% ]) @+ T) V- o1 O$ k: g INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 120, 0, 4)
$ G+ x% D. P: U, @3 i+ v INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 119, 0, 5)
0 o: t6 Y- R, K9 G/ w, i INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 64, 0, 6)
x* i1 i& S5 I+ e+ n2 \ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 118, 0, 7)
& h! D1 A! H( B+ z- U J" K" c- L INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 69, 0, 8)
q4 b1 O) \9 W, z+ X W1 l( z& ^ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 36, 0, 9)
X. b! l6 U$ L) n m3 f: Z INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 32, 0, 10)
* Z1 n7 ]6 s! ]) A INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 70, 0, 11)7 F4 n5 A8 Z' N- B
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 65, 0, 12)0 c3 f+ o( w6 J; _% _
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 34, 0, 13)0 Z: `* G @7 q) g2 N" S0 v
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 107, 0, 14)2 S0 I U& @3 s2 K: O* S/ f* o
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 37, 0, 15)+ \) Q! z$ h/ y. e
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 35, 0, 16)
" M# W' [8 t7 V! B+ c& W INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 31, 0, 17)% m( D/ P# C) l$ l; S
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 30, 0, 18)9 r; ?3 Y8 `8 z0 v# k
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 33, 0, 19)
$ c- J& R2 V8 ^/ {5 a/ J' A end
" h! Z5 R! G2 e只需插入在此插入
1 A @) z' ]8 U5 t, X1 Y代码:
: z" g8 @1 Y5 Z INSERT BANK_EXT_TBL
* N* k) {: ^4 O) }+ c! G ( " J9 b: T* m! Y& r- y! l
m_idPlayer,& d' ^* |) U) O' e
serverindex,0 }! W% {1 I) g/ k! h& P3 U# H4 C/ m
m_extBank,
; v% g/ P- t9 r& U8 r; y m_BankPiercing
) h% k) Z' ?6 l7 u0 B8 C )
! A1 B% I3 } @9 i$ U" Y6 J VALUES
* n U6 L5 R9 v* y( C7 Y4 R (
' A; ]; |# h' i$ H @om_idPlayer,# I+ s+ q* _5 c& j
@iserverindex,
9 c! t5 _$ P7 b- J! Y% s" l9 w ''$'',''$''2 W( u Y: ^# k" v8 L
)' R9 n; t- R5 N' n
/ Q0 {1 }# I* C) h& c. O9 } X2 P
" D# r8 s; R: ^1 l#define IDS_RESDATA_INC_007134 28816
- H0 ~; D" E6 T% S/ V2 a/ D* O: j/ W" Q# J; `: R) K: e
, N7 p) n9 P. p l DBQryCharacter( szQuery, "I1", 0, g_appInfo.dwSys, lpDbOverlappedPlus->AccountInfo.szAccount, lpDbOverlappedPlus->AccountInfo.szPlayer, nSlot, dwWorldID,
' Z; S/ _8 S& F dwIndex, vPos.x, vPos.y, vPos.z, '\0', nSkinSet, nHairMesh, dwHairColor, nHeadMesh, nSex
! q; W- a; r" c- x* g#ifdef __NEW_JOB_SYS4 f6 r% ]$ l5 e) H8 O
, 0.0f, 0, 0.0f,+ }- X8 }$ w/ d. F+ l* w+ B
0, 0, 0, 0, 0,) |6 R5 M: k5 F- r, w) e8 q
nJob * U2 I, n5 _+ Z1 g) ~3 f+ v
#endif
' F; Z ^' q1 `0 E- G
! A" h3 ^6 G, K) J; x3 B5 n J" V7 z* x4 A
|
|