|
|
在这里,我向你解释如何在源选择安装到创建工作中的字符。
! P$ _# p$ U5 D5 }! R../NEUZ/Versioncommon.h
; E5 Y+ ~3 s7 h. U3 _
6 E3 z( X% {2 c; }8 r! I在上范围进这里只是这一个:' J9 U( l# ^7 x5 P; a. Z, J
代码:
' k6 i; t7 d9 M. k8 Z4 ^& [* L7 `3 D$ s4 ]8 `
#define __JOB_CREATE_CHAR
. x/ Y, O- c4 T+ k+ G8 w../_Interface/WndTitle.cpp8 b$ q: b; ]# I/ [( e/ c
X/ ^7 F* E" A) v
在这里你进入功能; w! J( O4 G, o1 j0 ^
代码:
v, |9 q; I3 n" k( f' }& C) Z; J5 O. q
void CWndCreateChar::OnInitialUpdate()9 A0 o# I. V1 L& x: D
并有助于- W) _6 O, q) {+ H) z
代码:
/ y1 a1 h/ N( m/ ECWndNeuz::OnInitialUpdate();7 w% C4 }# N/ c a, \( h$ W
这样的代码:# R6 u6 V* G8 k
代码:
8 _7 m3 V/ f: ?7 ]$ {#ifdef __JOB_CREATE_CHAR
; N: f1 f7 |( S" c% A4 U m_Player.m_byJob = JOB_MERCENARY;
& Y" A5 }1 u# S: S' G" s; c9 f7 m+ N CWndComboBox* pWndJobBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );
4 n4 X! l, T/ O1 ?7 q$ s! B3 @* [- R pWndJobBox->AddString("Mercenary");//Edit by yannickmama
. F) E& C0 R6 J5 W" v0 a pWndJobBox->AddString("Acrobat");
5 d P+ t* h1 T' w8 V6 i, f9 O pWndJobBox->AddString("Assist");: }* z$ w2 Q l" @, N2 \
pWndJobBox->AddString("Magician");, K- F/ p% G: n/ m4 r0 w
pWndJobBox->AddWndStyle( EBS_READONLY );
7 g. c5 H7 A; U% M7 b1 v pWndJobBox->SetCurSel( 0 );4 \+ }5 H/ x B% K% ]3 i
#endif //__JOB_CREATE_CHAR
! w* I$ d3 w$ ~3 `: o* g3 h在同一文件中,我们跳到这个功能+ M, R& i, T! n2 g" t
代码:$ \3 u' c4 d2 x6 \8 B6 P' ?
BOOL CWndCreateChar::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
8 p! [! `2 A( y2 i/ a9 ^并查找这一行:
# ^5 ] M! ^0 A4 J) C- s7 {3 l代码:$ M5 k" v4 e( t, L5 Z4 j; B: k( c
case WIDC_OK: // Create
' J0 q5 e# T4 Q6 `' r- D {
! A' Z2 W% m( L7 U, W8 S- L6 [% f3 B下面我们就这一个:6 }) n! F+ x* ?) k
代码:
0 d/ R/ ^/ `7 c, q& b1 F
1 h5 q6 B/ Q4 q8 J7 k; ^#ifdef __JOB_CREATE_CHAR
. D! }0 v# l2 s, f7 A7 S2 a; Q CWndComboBox* pWndJobBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );
# j3 y% x) v" T9 X assert( pWndJobBox );& ?7 s& Q9 v& I9 a
8 s% i' F# G4 t6 C- e if( pWndJobBox->GetCurSel() == -1 )$ z l- b& d- b
{
1 H( I, T/ t4 i( `9 t g_WndMng.OpenMessageBox( "Bitte w?hlen Sie einen Job" );
1 x3 Q4 s. d: e( _. @8 c return TRUE;, ?: m+ W% ~9 T* D: D; ~3 ^( C, G* D
}
! Y7 x4 M+ t" ]
1 x" [ f# p# }( @6 W1 B switch( pWndJobBox->GetCurSel() )
+ p2 a( p5 Z9 j) r: J' e {
( \% R5 r; y" j7 n6 k9 I* ~8 Z case 0:
: j; Z* {' P1 m/ F$ Q6 e m_Player.m_byJob = JOB_MERCENARY;' Y& G# C0 b* Y) o& p
break;* c% L# d& D0 V
case 1:1 j. h) d& X( n6 l# E
m_Player.m_byJob = JOB_ACROBAT;" y2 L/ K6 B$ L/ z E7 o' F
break;
1 v7 p$ |2 ?: |! k; t# d* j. }# ` case 2:
1 Y: N- F% {4 i3 I( U# w m_Player.m_byJob = JOB_ASSIST;' g8 N3 \8 p6 P" H8 q2 G
break;# ?* s; c2 f4 l
case 3:, U% g1 w7 T5 r+ \: X; o) r1 D C
m_Player.m_byJob = JOB_MAGICIAN;
; P, D3 @) G+ C) s' _- c- {& ] break;
" c2 q; C% B! h d% [# D- D" m8 b default:
6 o* H9 r- K& R% R4 _ m_Player.m_byJob = JOB_MERCENARY;9 {% h7 k. r+ X
break;1 A% P7 X8 G+ D: ^2 y
}
' b* V0 }; Z1 a3 I4 o! S#endif //__JOB_CREATE_CHAR# n: |$ `/ q+ s2 z+ |) H7 v
2 I$ J0 d" Q8 H$ x$ s0 G../databaseserver/versioncommon.h
4 [7 i% C0 t" P4 D$ [2 |! ~$ h" c E, c$ H+ }* }5 m
在这里,我们这一个以上的地方进行
( x$ b. v( p. S/ e# X1 m# ]9 b代码:$ p( H! n2 U5 C" e9 P5 F/ ^* W* j
7 Z4 Z* k( M0 n" k- S# \
#define __JOB_CREATE_CHAR7 i/ O, \: y$ d' v3 c( ~" p Q: {
../_Database/DbManager.cpp
, _3 G* p. x, T6 H' K ~8 o3 h# d6 R
在那里,我们去的功能6 d! \: Y! Z3 i- X) W4 V
代码:' A' I5 V+ N; O+ U7 v# F U
W, W) c: u y# t- S: }void CDbManager::CreatePlayer( CQuery *qry, LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus )$ K8 H9 E1 @+ h& s
并搜索
" d+ e( f# H- E) C* y0 g/ Z代码:
4 \3 G! W" K. v0 b" p( V5 ~! apd.data.nJob = 0;
- z7 r& u l7 A5 A! p0 u并替换为! K2 C( O [$ u( B9 B# L, }- n
代码:" R, v; O2 D' g
#ifdef __JOB_CREATE_CHAR+ F6 g( u* G; }0 a! L
pd.data.nJob = nJob;
: \) ?) ^, t+ [$ Z" F* m5 g#else //__JOB_CREATE_CHAR
7 C# d( S3 _7 l/ z4 T) D pd.data.nJob = 0;- b3 P- h3 Q; e+ p2 W
#endif //__JOB_CREATE_CHAR% f! o) P/ _) s2 |
' m+ o5 q' y' U
这将永远有一个来源的东西。, Z" h2 X. G5 {
/ }$ Z; E V$ l但我们现在必须修改数据库,所以我们走在存储过程CHARACTER_01_DBF CHARACTER_STR到数据库
; O" Y& c. S9 ~& G4 r# b和搜索
( c, ?# F% b; D4 `) E代码:1 h- U: j7 m2 K9 ~
) [) k# g: i7 z$ R; ?8 _
FROM BASE_VALUE_TBL2 K5 B8 F8 W& ]9 `- b! N
WHERE g_nSex = @im_dwSex
6 n4 ?8 n& q9 r* q并替换为
4 V# g1 K6 ~) c代码:
& @% v3 p# Q2 N9 G FROM BASE_VALUE_TBL
, T6 {% u$ u( R2 U/ D4 z7 A3 Q WHERE g_nSex = @im_dwSex AND; j. G( d1 i1 _
m_nJob = @im_nJob
) \1 R! _8 a+ ^: h( r ^当你做的工作,以便更积极的条目BASE_VALUE_TBL CHARACTER_01_DBF都可以。% E" h% I# F- z6 V
# g$ q2 C$ \( {; \你必须确保它仅适合和njob g_nSex。始终创建两个g_nSex g_nSex=0和=1项。" [# o- B- x; M- X, ? Y
# V, Y$ D; G3 ?你必须,但是,仍然在Character_STR条目(刚下Selectierung BASE_VALUE_TBL)为补充SKILLINFLUENCE_TBL。
0 z) f+ T. R* D. J+ @这是那里告诉服务器哪些技能你的角色可以skillen。
2 r, _" S. m) L* I可惜我不再the'm懒得现在要做的话:'D
# D! |- e$ U/ B& g
0 [' M! {4 ~ ?3 c$ Q% c- t9 q) E0 p6 L( t
2 \- E* X0 C7 \0 K0 H
5 F8 `# Y8 }0 \" \7 G9 c3 D- A8 m
6 S6 X: A9 _; f3 J. E9 e7 {; g! U- n" v% I9 ?
6 M* o8 \- y/ x7 U% P# c
! N) S, V7 p" g8 r: J
Quote:. |; @$ b" \: z- x* m3 w
Originally Posted by Divine. ( o, ?" @$ D! x- t4 X
如果他发现我9 Q: |; z, i5 c" S) S
代码:2 M' x- U1 O+ J& F
pd.data.nJob = 0;
* w, o: A. ]% P' K( T/ b并非如此:
- ?% g, ?- k9 n( R所以,我只能看到& N% R4 y% z7 i. U; B. {8 {
代码:
. D- B, a/ e9 a: ? // pd.nJob = 0;* W" _6 D: y. Z- g' b& P
^^: q2 H- j- @- e, L3 \* J" Q
Hier, das mussu finden:+ ^4 c/ ?4 y% B+ C# J7 G) q
Quote:2 V: ?4 j/ [6 ? V t: u. I* o* s
#ifdef __CREATE_JOB
; `1 _1 i) |5 u- D8 Fpd.data.nJob = nJob;: m: h6 N7 r' Q6 D& E! ]( v
#endif // __CREATE_JOB
' o; Y& O4 t% a; V- C- v// pd.nJob = 0;: j9 J' L2 c: M9 i
// pd.dwState = 0;+ j h' `6 r6 K1 S% I$ A& M
pd.data.nLevel = 1;$ U( F. _- k) \* U' m3 k7 Y
pd.data.nSex = nSex;
9 Z y6 V0 \1 j+ S: B1 D) Gpd.data.nVer = 1; 3 C- Q2 \/ y( A" u' j
|0 t4 R9 X7 X* W我仍然有一个问题(:
1 I; i% y' Z8 u ~3 N下Character_STR DB
3 q# Q$ V8 W8 Z. L$ l这样做在这里# F% t7 f; Z# i) t
代码:
% l; l; ~ Q, c. T FROM BASE_VALUE_TBL
0 I' i. s7 }: [ WHERE g_nSex = @im_dwSex0 j2 \$ D ^1 X5 @3 a
在这里改变3 f5 W* K- e0 ^$ j
代码:
3 r1 ]" S. k1 g3 r5 k4 X: P FROM BASE_VALUE_TBL
2 \& H* e4 S1 n! l) V6 \) W* T& s1 } WHERE g_nSex = @im_dwSex AND
+ B! w' N) Z4 \& E m_nJob
% u: R8 I0 C- w9 a由于还需要什么?.?
$ P- e# M' `8 t( p' L在第一篇文章中,你可以阅读% Z Y; e0 }5 E1 F+ U3 Q& b4 `; k' ^
代码:5 N) R+ Q/ k8 w& F# S' t' J
FROM BASE_VALUE_TBL5 b- s, ^ F6 c* b
WHERE g_nSex = @im_dwSex AND
* \, J& I: {/ O# l. K m_nJob
5 b7 e c P( N) `8 D1 _3 J
) ]# B1 A- `; i. ~ ?
6 {$ h2 P, [) u [5 ^# g! L7 l窗口是什么我忘了9 }; ?; p( Y, e2 v2 U: `! s) d
) Z- j ]" H; Z& g7 Q) K# G
代码:
' W- Y/ H6 o2 e5 CAPP_CREATE_CHAR "WndTile08.tga" 1 544 368 0x2410000 26
: T6 z6 A# _) Q/ w' @4 u+ b2 W! N5 y6 W5 f{
, j6 y9 \* i1 `$ ~% Y0 K7 E Q// Title String( b2 y) ^; Y. k, h# |
IDS_RESDATA_INC_003064/ y/ k# O/ t4 G2 z
}
% p; ~% W, T2 J5 y+ x# ]{
6 D* \" J# V2 Q; F/ u9 @0 W. q2 s// Help Key
' P ?, ?' y& i# GIDS_RESDATA_INC_0030651 |) E- R& U0 g$ g
}* p5 y, q9 o( c. ~8 f& R. v6 j6 a: e
{
8 t& R2 ]( P. c WTYPE_BUTTON WIDC_OK "ButtOk.tga" -842150451 176 300 248 320 0x220000 0 0 0 0
' R' R. j9 H' b) R s {" `3 U1 b/ G7 U" r7 L
// Title String# R/ p0 w% r8 R8 x- \( F" K
IDS_RESDATA_INC_003066
" T" ]( T2 O( y% a" o }
+ W8 O ~* U7 m( S# i; m {' R; r# c, }1 Z) ~" P" \
// ToolTip
; j/ H M1 ~- N' DIDS_RESDATA_INC_003067
5 D, t% f! s5 x) j0 t }
B" [$ Y" y5 |; |4 f WTYPE_BUTTON WIDC_CANCEL "ButtCancel.tga" -842150451 280 300 352 320 0x220000 0 0 0 0
' J, F; _8 _0 U! e {, U7 G8 {# m0 `% o# b( z( S% V
// Title String. Y# V- A9 D2 }, U
IDS_RESDATA_INC_003068" d, x4 s( C$ _( F
}# Z% ?# m6 J: N+ w
{
/ H( q9 r0 r* T" @: e! i9 R0 Q0 } // ToolTip
8 Y$ D: |% a5 u- w6 oIDS_RESDATA_INC_003069
! U# O p, @! _( \- U0 d }( `+ h9 k8 C. S" O) K' q9 x
WTYPE_BUTTON WIDC_MALE "ButtMale.bmp" -842150451 118 128 190 148 0x220000 0 0 0 0
; s2 \9 x q! t+ m {% a- Y( h9 I/ B6 C3 r9 ^9 m
// Title String) r+ l7 C* Q& E" z
IDS_RESDATA_INC_003070
6 A$ {- U( l1 f3 o1 T }
5 J2 ]/ g2 C! h, g' X {! ]' y: K# l5 ~$ B/ y. T8 M! ]1 a; {3 e3 }& E
// ToolTip
' _1 q. V }8 Z, p4 n$ iIDS_RESDATA_INC_003071
. }0 d' b# C4 E3 c9 M% z }0 a/ ?- q( U2 E' s' Q9 @
WTYPE_BUTTON WIDC_FEMALE "ButtFemale.bmp" -842150451 194 128 266 148 0x220000 0 0 0 0* d9 c: X! a5 ^5 T3 B
{" |0 f8 }( W9 e% k
// Title String
7 _4 X) J, Q- y' ]0 m' AIDS_RESDATA_INC_003072. a7 v1 E. M! x" @4 u
}
. Z2 K, S% n- Y {$ f% m# r# D4 X% h9 k+ h
// ToolTip
2 x4 G/ ?7 N) GIDS_RESDATA_INC_003073
/ i& g. T& y2 B, Y+ {: O, V }
' w) _) \9 ^: T$ L. L" F WTYPE_EDITCTRL WIDC_NAME "WndEditTile00.tga" 1 116 48 288 71 0x20000 0 0 0 0
( `0 p! l, ?0 C1 c- W: d {: C# x! v% K l! N% `- W$ P* K
// Title String
8 N& \% o! E% Z% I+ w* H' \3 k# K( |IDS_RESDATA_INC_003074
. I6 l0 y7 R+ V0 g- D: {1 c }1 C0 I6 Z2 R {0 f8 \9 K. @8 j9 Z
{
' J$ p# R. x2 Q3 ` // ToolTip' m! n9 d) D, |, V
IDS_RESDATA_INC_003075
* Y# f8 L4 s f) Y. a: l }
3 N, W. h1 ?- l0 A' X. } WTYPE_BUTTON WIDC_HAIRSTYLE_LEFT "ButtLeft.bmp" -842150451 118 152 190 172 0x220000 0 0 0 0
1 @+ Q# q% ?/ D4 o9 ? E {- E- P; r0 v" U' B: T, c% ~9 `& S# x8 t
// Title String3 w( h6 |- }) K) S" e% D4 l
IDS_RESDATA_INC_003076
[! h+ P8 I6 M3 }: r }
, u% D; K! s7 r& X; m8 S; R {8 `, I+ i9 q! r
// ToolTip
$ n, o8 ~, A) G% C' HIDS_RESDATA_INC_003077
$ M3 U2 @' \6 M4 f: } K6 u }6 q7 s. f7 D% l2 S0 J% [
WTYPE_BUTTON WIDC_HAIRSTYLE_RIGHT "ButtRight.bmp" -842150451 194 152 266 172 0x220000 0 0 0 0/ P& s0 ?7 W# f* D% M
{
V2 x) r! k; V, i // Title String
4 P- i/ H# _& e* V" F) F8 zIDS_RESDATA_INC_003078
7 M- d: c8 e3 q ? }
* s0 t W$ |- M9 R! }6 {* {! K {( b* Z5 b, y5 R" d( x
// ToolTip' d+ T: Z; K/ x
IDS_RESDATA_INC_003079) W7 Z6 W2 ~3 D5 X# w( F6 I; |; n
}. [" d) H+ M$ m3 s6 h4 C: c
WTYPE_BUTTON WIDC_HAIRCOLOR_LEFT "ButtLeft.bmp" -842150451 118 176 190 196 0x220000 0 0 0 08 |4 E; X, p- O5 y j! g
{
+ M* v: S# @7 U* ?9 G% N/ { // Title String
1 \6 z) m9 \" S @; ~# s/ kIDS_RESDATA_INC_003080, L8 K5 J Y( g- B2 |- F
}, C" j+ v& L5 n
{
9 a) C* T6 \6 ` // ToolTip! a+ X) y& c8 U* v
IDS_RESDATA_INC_003081
: x) Z h; f1 l& b }
' Q% t. S+ r7 R8 H6 |( J WTYPE_BUTTON WIDC_HAIRCOLOR_RIGHT "ButtRight.bmp" -842150451 194 176 266 196 0x220000 0 0 0 0
+ a# S( [1 g: h {2 E, A) i! N' Z5 g+ g* X5 p
// Title String
8 m! ~5 _4 s. q0 RIDS_RESDATA_INC_003082# v" F0 l5 Z, W6 T$ u* C7 r% i* b
}* Y6 {0 H7 A! X! X: N' Q% i
{7 ?) x" J$ {3 e9 n" N
// ToolTip1 ], J& l* H. g& e+ L5 o P4 v
IDS_RESDATA_INC_003083
) I# L$ \: k* d+ Z8 U5 F% W. W }
/ c$ x$ X$ S* n0 a WTYPE_BUTTON WIDC_FACE_LEFT "ButtLeft.bmp" -842150451 118 200 190 220 0x220000 0 0 0 0 \$ G4 y5 ]5 v
{, c9 z9 {% x' ]- t, D! g- n
// Title String% E J' j+ h$ ^# D {7 s3 Z2 s
IDS_RESDATA_INC_003084
- @4 K( a; J- f) V }0 y- C$ U4 t" r: X
{( ]: S/ T" A0 @8 T
// ToolTip
5 ], ]" \2 _( ^3 ~IDS_RESDATA_INC_003085
* T% _1 I' k7 r: l/ m$ y$ E# M }
: {* P/ `3 {% L) [( u* d2 [ WTYPE_BUTTON WIDC_FACE_RIGHT "ButtRight.bmp" -842150451 194 200 266 220 0x220000 0 0 0 0
2 i) {2 ^7 P# n8 v4 V5 | {
8 g" M3 c; _" o3 h [ // Title String5 ^6 [: S) J* D# v( H: A+ L8 o- }
IDS_RESDATA_INC_003086
7 S1 M" z! p* l: B9 G }
& M( K- R, E1 | { J( Z3 i7 ]/ R
// ToolTip% h$ Z0 ~" P" c
IDS_RESDATA_INC_003087( S8 S1 G9 _% [& C
}1 ^. }/ |% E5 @/ X
WTYPE_STATIC WIDC_STATIC1 "" -842150451 16 48 116 68 0x2260000 0 0 0 0; J6 R0 x8 r. K' k
{1 d+ p5 Q/ S! C- d
// Title String
h" v9 S- d( }5 Y8 V: N+ CIDS_RESDATA_INC_003088: M# J1 B& u A; X' t
}* b. S" v7 a) u+ {) g8 [" a# B( U
{' k0 G, H9 v8 Q( {( h0 r" e0 d2 i
// ToolTip# p+ P2 S; X0 Q. t+ g
IDS_RESDATA_INC_003089
- @% c5 U2 V, z4 P }# V/ D& Y f0 Q; @* o
WTYPE_STATIC WIDC_STATIC2 "" -842150451 -232 136 -132 152 0x2260000 0 0 0 04 O. J5 V# s' ~- Y, V. k3 a- I
{
% }/ u* p+ b- Q0 P // Title String- U+ V$ x2 J1 g3 P* U
IDS_RESDATA_INC_003090" D! `7 W+ K- |2 _
}
4 X# e8 r. j0 v% b {+ j: d; B' {9 `- o7 d1 |) ]) P
// ToolTip
8 q! c* ?, b" k$ _* m& ]IDS_RESDATA_INC_003091
& l6 w+ v- x3 g5 j6 q4 o }
) \6 e* r: O- y8 ] WTYPE_STATIC WIDC_STATIC3 "" -842150451 16 152 108 172 0x2260000 0 0 0 0+ M0 i* _! h( u
{; H, ^ f% Q1 v4 h7 A6 p
// Title String; ?' E. {9 m4 M0 F* W! d
IDS_RESDATA_INC_003092
, T5 K8 B5 M. R* N& a }
1 \% L3 h6 u& g; C( c7 G$ \: N {1 k7 e$ s% _4 g# \% l2 a
// ToolTip
* ]+ v- `: g* T A6 f1 I' f1 o5 @IDS_RESDATA_INC_003093# {/ |1 d i& b! C/ H4 Z2 C7 X
}# M2 R4 r( Q5 d2 ~/ \0 d3 e7 @. x( y8 k) f
WTYPE_STATIC WIDC_STATIC4 "" -842150451 16 176 104 196 0x2260000 0 0 0 0
2 v4 B7 Y- G, U% J) X {- u9 F @0 O- ^( L+ C q% q
// Title String' {7 D. ~8 f* m5 ^! S1 n' M* G( [
IDS_RESDATA_INC_003094
! I6 I, Q7 i% B, c( [ }
3 C) j6 Z7 V- d( \& M {
* Q6 s' R% e% s. {* x2 _ // ToolTip5 e# k+ n8 X" o+ K/ X% }2 \3 D
IDS_RESDATA_INC_003095
2 Z+ b0 C; n/ y9 y3 q' |. q2 P$ C9 q) c }
8 E- Z" _; n! c" q) R WTYPE_STATIC WIDC_STATIC5 "" -842150451 16 200 100 220 0x2260000 0 0 0 0 U+ G' l4 F2 l! b; e# w c
{% x. R6 q& ^' `: F
// Title String E- `$ z0 `; f! ]+ Q
IDS_RESDATA_INC_003096
, ?; {! P1 K% I, i. S/ U1 a }
9 p6 J) f; G. W" h7 E! H {* @1 J9 X5 z% T
// ToolTip
0 M$ e) [( n! L& aIDS_RESDATA_INC_003097- e, _& L3 t0 [
}. M* h* a" j: b& G& U
WTYPE_STATIC WIDC_STATIC6 "" 0 16 128 104 148 0x2260000 0 0 0 08 Y. y3 Z6 N' S8 e- E$ g
{) \0 o- p0 B) Y1 B; I
// Title String; Q1 d" X5 z9 Q$ @/ R8 \( e' l
IDS_RESDATA_INC_003098
' x" ^$ ]4 o3 p0 C l }( v, L: z1 [* i9 b* | F
{; P# C( W4 d4 C8 a7 Q
// ToolTip
, X$ N0 g7 h! {! wIDS_RESDATA_INC_003099! m' A* o8 T4 ^( Y" p
}
) k" Z- u- a B: I* n+ {" X8 B WTYPE_STATIC WIDC_STATIC7 "" 0 11 76 281 92 0x2220000 0 0 0 0
2 a" P& e5 e/ \6 F+ r+ v {# @6 I' P# M$ B. O# p/ B( j, Z" z ^
// Title String
. F5 h" n3 a% j1 N( _$ w0 K/ oIDS_RESDATA_INC_005076
" \7 A& L/ D* K4 g+ S, } }2 ]% ~7 G) \8 |5 p& `; F
{
& N$ y6 t3 F8 ~( w. J, ~ // ToolTip* X2 n' P, g, e, q+ r- P$ ^' v% P- B
IDS_RESDATA_INC_005077
9 e, A" w7 O+ G/ C( E) j8 U7 E } ~( s. f4 |3 V0 d- I# s
WTYPE_STATIC WIDC_STATIC8 "" 0 11 97 281 113 0x2220000 0 0 0 0
5 E6 e' L! U2 ^2 G, {. w1 y {) I/ q2 p. ]% [3 c0 E! C/ F
// Title String8 l) ^1 x) N1 A6 G7 X4 x" n
IDS_RESDATA_INC_0050780 r! V) K; G- t1 G" h
}
: {+ i' J d$ I% q0 d {
: c# C, s$ z+ E3 ~ // ToolTip
$ A/ W1 A2 C; L- k( hIDS_RESDATA_INC_005079
$ |2 M# Y) Z; d* T3 U1 Z" u }2 C# m1 o5 u; h4 N- _+ Z3 A0 ^
WTYPE_STATIC WIDC_2ND_PASSWORD "" 0 16 224 148 244 0x2220000 0 0 0 0
3 U9 W% s4 `& z0 c( \' U9 J {" B( c3 ~! v" x+ ?; m O# O
// Title String
( ^4 Y6 V9 X5 sIDS_RESDATA_INC_006874* k4 Q1 q, C7 p( c% M5 p: B, R
}8 X# u& o- x/ `" n. B) K6 @) C
{+ C/ E0 O) J' Z, p% @* y7 r
// ToolTip
- y; B/ k5 J) B) }" c* i/ nIDS_RESDATA_INC_0068750 O( n; `- m; u5 X
}& l1 @: C3 J; ]4 C2 [
WTYPE_EDITCTRL WIDC_EDIT_2ND_PASSWORD "WndEditTile00.tga" 1 172 224 268 244 0x20000 0 0 0 0
" L% k, |( `" [2 y+ {7 X- | { J' N, K, G( E' J, u# L3 ?
// Title String
/ S. m c( ~1 |2 uIDS_RESDATA_INC_0068788 i8 D7 i. M5 b- U( v8 V- ^
}- w0 ~! A" a; [3 U" Y1 X& T
{
, A4 O) {, z+ ^9 C // ToolTip6 S3 q* y d' L' U$ X
IDS_RESDATA_INC_006879
5 P1 t2 |! ]+ j$ ^6 f4 q }
- q* H4 Z- a2 r( l" g0 [ WTYPE_EDITCTRL WIDC_EDIT_2ND_PASSWORD_CONFIRM "WndEditTile00.tga" 1 172 248 268 268 0x20000 0 0 0 0
/ Y5 H( N$ c1 k" K. b {7 w$ i$ b* p+ a* t1 u1 Y) T
// Title String
# p2 V* s' t4 d- _% h9 hIDS_RESDATA_INC_006880- H% W6 D7 [3 ]+ d: E
}
1 B- F6 J d9 I/ w o7 f4 d {
. `7 j4 W) p9 E+ A2 S! R // ToolTip6 \# Q) H% m, `8 c' j% H3 V( K2 z* A
IDS_RESDATA_INC_006881$ z, Y! U, c: v7 U2 Z8 o
}
: z4 A. I# ]* Q2 s& R WTYPE_STATIC WIDC_STATIC_2ND_PASSWORD_TEXT "" 0 16 272 332 292 0x2220000 0 0 0 0
* |$ m! h. o% b9 a/ a& M {% _4 h$ C) v; w7 |3 Z, P A/ {
// Title String
w. m# `, r4 ?( b8 c9 RIDS_RESDATA_INC_006900% C4 l0 K. _# n9 h/ T5 A
}6 V' S) J" s, u7 J' ]
{: G% T0 _2 ?: ?. M& d
// ToolTip
8 f6 x1 d( D) m) b' ]4 N. r. D, ^IDS_RESDATA_INC_006901# k! C! f1 Z8 X& A5 R1 j4 H- h0 [
}
7 t2 I# }3 Y/ Y WTYPE_STATIC WIDC_2ND_PASSWORD_CONFIRM "" 0 16 248 148 268 0x2220000 0 0 0 0
" R) C3 F! f) g2 D" ^( e- z {* a7 L7 O G4 V
// Title String! Q2 Y) J+ B: a. h
IDS_RESDATA_INC_006904
; t3 R" B0 G* H9 X }
& e$ n/ w; n6 L) j1 ~ {
" w& K0 {) |1 ] // ToolTip; N( j) @/ {- `4 Q; e
IDS_RESDATA_INC_006905
* z p6 s3 J# N6 b" \5 ?# d; M }' V0 w! Z) C7 V2 k( G+ j; v
WTYPE_COMBOBOX WIDC_COMBOBOX1 "WndEditTile00.tga" 1 118 80 286 102 0x20000 0 0 0 0
% c Q1 k3 C. h6 D {
% t2 Q- ]) K. [ // Title String+ f% u. Y( Z4 ]4 j
IDS_RESDATA_INC_007134
1 f) u. C7 X% ]8 c$ w# \ }
8 |8 A3 K6 F$ M$ K4 N7 Y {* H) z/ q: f$ W% K& w6 d& H
// ToolTip
0 {; V" a/ C4 A" N7 c& r; A- CIDS_RESDATA_INC_007135
* L7 ?, w/ @* f$ i4 A }
" t4 V- `2 B: H R; c; n% ?7 G WTYPE_STATIC WIDC_STATIC12 "" 0 18 82 114 98 0x2220000 0 0 0 0
2 N! I9 E c/ y: `' N0 ]9 t$ w- n {
) m" H, E* H- n: @2 [ // Title String
& t& i5 ?6 q. hIDS_RESDATA_INC_007136& ^* f8 Y) d6 W( X" S
}& `0 D- z* F0 l6 ^3 q) l5 [( K
{
" K' j4 d3 K' p0 e4 E* { // ToolTip
; }7 d# O8 ]8 k1 iIDS_RESDATA_INC_0071371 t5 c5 k6 V" ~ L2 |* K
}
5 D7 i$ I% m" f3 x' T, H3 P1 @
% ` y8 \9 C8 v4 g" z1 Z. g& ~}3 @ @/ _: C# I6 k- C
所以红色的!
1 H, [% `7 N' y8 P; c2 C5 Y
4 R! y& |+ i/ r7 l3 r0 M1 [这里还tblSkillPoint的条目:4 S) q' {+ k, U! C6 r
. ~, e6 X, w- W& P+ L w代码:
q N# T% b- x- p3 @' c If (@im_nJob = 1)
( ]2 J, u# q5 } Begin
5 L. ^ u2 ^5 l* t9 j: ~* C( Y INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 9, 0, 3)4 s% Y; Y( \8 j3 A1 [
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 4, 0, 4)& z1 Z; b; { R/ I {! H
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 10, 0, 5)
- i- j/ }! K9 v: W. ` INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 5, 0, 6)6 D* W% d1 K& t3 |1 Q! \7 O
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 112, 0, 7)
6 r1 ?$ J* `: j INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 13, 0, 8)
: e! L5 ?9 x: T7 T/ z: A8 @3 ?! E INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 111, 0, 9)
" b \( K3 T$ \' s INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 6, 0, 10)
6 m& k# ~5 I# |( s2 F+ L1 x INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 108, 0, 11)* [+ z0 _ g+ ?4 m5 v3 _# w' ]8 V) B
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 14, 0, 12)
- Y8 y- l% |8 x) N5 N INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 109, 0, 13)' m- y, x/ q" h. |
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 7, 0, 14)0 O, y$ S8 @/ c/ |
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 12, 0, 15)0 P: b. b% K+ \1 f$ n4 m4 V) g
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 11, 0, 16)
& M/ U, X. @+ [6 X) J, B INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 8, 0, 17)
- M, U$ Z( n1 [ end
/ ~7 A; y1 y$ \* |$ a1 X( \ If (@im_nJob = 2)8 j6 n6 a- [& e" N# z) O
Begin, k" J, j' _; |: s9 t! h5 W
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 197, 0, 3)
" j5 W. \& E. l1 ~7 t, j# m1 N INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 194, 0, 4)' O4 ], K) f# d o2 O& B; U
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 206, 0, 5)
. v: q, {8 h. B7 _: \) I INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 195, 0, 6); Q7 N6 G! S. L. ]6 H4 A4 w, B
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 191, 0, 7)& F( y/ S ?+ _5 Y# X: a
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 192, 0, 8)
% g5 h( O+ H5 d* G/ k INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 198, 0, 9)
2 u% l7 d3 i" Q! O4 J, P# X INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 193, 0, 10)
$ d7 x1 H1 }; n$ Z* e INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 201, 0, 11)9 Q+ _' D: H- G
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 203, 0, 12)
0 z) p" q9 |3 t2 Y3 t6 e9 I. X# R INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 196, 0, 13)
& @' \# h- L7 T. J9 v- ^3 { INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 204, 0, 14)- G+ f6 H A) W9 d( x2 A ]
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 202, 0, 15)
% ~; ~+ \9 I# l1 {/ L INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 199, 0, 16)
( F1 k# i1 N K2 N* i j* G" B6 Z2 H INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 205, 0, 17)
* o% @" p5 K7 q' @* e INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 200, 0, 18)
# F) _; p# q3 ~ end
9 t+ g" T k5 z! A If (@im_nJob = 3)
. D# C" S8 D9 s) b, _2 G Begin% B8 b) l, B7 J& `; U
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 44, 0, 3)
3 M' k/ @$ o6 I6 _ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 46, 0, 4)) x0 H4 E. W8 E4 `) |, v
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 52, 0, 5)+ U9 |! m/ {4 |3 }
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 45, 0, 6)! J1 h- q* Y0 o% ~' y" H8 q
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 114, 0, 7)9 `, g, c, ^" G* M' W( Q
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 49, 0, 8)
- l: e' G2 B6 f0 s INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 104, 0, 9)+ Y! s" d7 T* F# k
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 20, 0, 10)/ f$ U; ` z+ ]- l" O' B/ J
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 53, 0, 11)7 K: Y6 l( X3 }4 U6 a& q
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 51, 0, 12)
' W; H* Y) u4 y# }6 ~ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 113, 0, 13)
$ a4 f+ t) Q: [9 b# X INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 115, 0, 14)& {6 j* h0 B5 H8 l2 A# h7 x/ l: ~
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 105, 0, 15)
: k0 K7 y$ f" W INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 48, 0, 16)
. V+ a7 E# T6 T/ n5 L INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 116, 0, 17)! ]; A8 A* F* o% k; e5 d: ~- v$ d
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 117, 0, 18)2 P' j& J Z, C' ~
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 50, 0, 19)
0 I* H; O( C) W4 e2 @ end+ x: z2 y+ ~: U( q6 P4 L) H
If (@im_nJob = 4)
1 l$ Q; L9 O2 k0 C& A, s Begin7 f3 s* D0 v8 H( Y; x# Q
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 121, 0, 3)
8 f6 h- L0 g3 C/ q8 M INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 120, 0, 4)* I: n& e) Z' n# [4 U. O& i
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 119, 0, 5)1 @; Y% J5 ^, P$ r6 \
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 64, 0, 6)
9 Z4 d1 h* P* J* v/ x INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 118, 0, 7)
, Z m* h6 o6 ]. ` INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 69, 0, 8)/ d. G( v9 ?7 T. b, A; Q
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 36, 0, 9)7 f& G; G& f: y( s% q, R
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 32, 0, 10). Z. t% v4 G @( B) ~& b4 w
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 70, 0, 11)1 O% u1 u0 T8 R& W
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 65, 0, 12), p/ N7 t) ]5 L9 P; A, d
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 34, 0, 13)
2 j$ S3 r N3 a6 h& P! N! [1 V/ y INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 107, 0, 14)
% S6 S% u$ g. H% h+ ~ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 37, 0, 15)" U: H# t5 t) `. {% W; ?: y
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 35, 0, 16)6 q6 E3 c% M ?5 x; G
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 31, 0, 17)
0 @& r" N7 w9 P+ o! n! Q) @& _ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 30, 0, 18)6 t: W( V d$ @& x: Z
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 33, 0, 19)
n8 [, J9 B! m end
5 s# |* o7 o+ O1 e只需插入在此插入
# ]# L3 h' X% F, G0 M( T代码:
7 F* _3 b F1 v0 I) ^) D INSERT BANK_EXT_TBL! Q/ b3 f, ? ^
( " Z8 G2 z5 _( w( \( x
m_idPlayer,* u, g0 R* l) n1 q) s8 i
serverindex,
( \* X* O! \" v$ y0 k+ i m_extBank,
0 J0 v( n: n; U( V m_BankPiercing8 U7 w% n- p: N* v
)$ r! ^' n _# o" |" n" X
VALUES 1 K8 A( _- e. S7 D$ g: \8 w n
(
/ O, n+ q* S* v/ x @om_idPlayer,6 n) Y+ S- m$ R$ A8 q1 k$ Z
@iserverindex,
% ~1 ?0 K# ~! B* R9 G" C ''$'',''$''7 I7 p) R. M& b( i
)6 i5 Y- D3 E+ L3 V0 Q3 L
7 T( V5 i& q ^
' j" K1 h2 C( O. D
#define IDS_RESDATA_INC_007134 28816
& J" \, Y$ y2 K4 Z& S4 U1 z' |9 j/ M0 q1 d6 n. \$ v
, I2 ]; E3 a9 q
DBQryCharacter( szQuery, "I1", 0, g_appInfo.dwSys, lpDbOverlappedPlus->AccountInfo.szAccount, lpDbOverlappedPlus->AccountInfo.szPlayer, nSlot, dwWorldID,
z+ k5 Y) V% x% A, V# y, p dwIndex, vPos.x, vPos.y, vPos.z, '\0', nSkinSet, nHairMesh, dwHairColor, nHeadMesh, nSex0 C' g1 p* G6 q# U/ y
#ifdef __NEW_JOB_SYS
' d; B R% }, Z , 0.0f, 0, 0.0f,
. c- g X a8 b 0, 0, 0, 0, 0,
& X) u% v6 {1 y( l nJob
$ C( s! t$ O8 n3 @) y#endif1 }: j7 a' L7 }$ }8 q4 i
6 h' G5 m% i! c1 L# T6 u$ @8 q
9 D6 B) I, t- R5 I' X& Q0 M( h |
|