|
在这里,我向你解释如何在源选择安装到创建工作中的字符。2 h# Z7 U4 i! b0 C% I8 ?5 \+ i
../NEUZ/Versioncommon.h/ T# u0 K+ V' F
. c! g$ D2 o" j( b" ?
在上范围进这里只是这一个:! }" K2 d: l9 u5 K, _: G" a( J
代码:/ W! w7 [! P% H% v; S
1 t: k7 N$ g; O
#define __JOB_CREATE_CHAR6 @" n) s8 g+ @# N' p! n
../_Interface/WndTitle.cpp. |- `5 \% F. l8 F
! g/ X1 c* N$ l1 ^! e6 [! A
在这里你进入功能
# k7 }* K4 k5 }代码:) a0 a2 O8 H' X$ p5 M
- L* W, n; h( K4 C. W2 l6 W
void CWndCreateChar::OnInitialUpdate()
' a' P6 [. v( G; ^- o并有助于! P3 u/ ^( o& M6 l7 r; B
代码:2 g% e' y$ X) E7 E
CWndNeuz::OnInitialUpdate();* O$ A9 n# D" |6 d5 `3 q
这样的代码:' {% S* t; ?& e8 r7 u7 `6 F) k
代码:
! [$ i3 L: @: H- X#ifdef __JOB_CREATE_CHAR
% }1 b- Y+ K% P# @3 k& @ m_Player.m_byJob = JOB_MERCENARY;
* d( m4 V# x1 U' e4 Z \ CWndComboBox* pWndJobBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );
* q- y1 l; Q" z) b p6 U4 Z pWndJobBox->AddString("Mercenary");//Edit by yannickmama
* S' G& c2 ^% u$ h* W# G pWndJobBox->AddString("Acrobat");* `1 @9 a6 h9 ]0 L2 ~) c/ F" o
pWndJobBox->AddString("Assist");
/ z0 m' k/ m( O( K8 R% ?7 ^, ] pWndJobBox->AddString("Magician");6 U; s( o1 M1 l) V1 I7 D% i3 s
pWndJobBox->AddWndStyle( EBS_READONLY );3 M- j Y% T# X# L2 c) Y; u3 N
pWndJobBox->SetCurSel( 0 );' o& m8 i0 M' y7 z# C! L0 g' w
#endif //__JOB_CREATE_CHAR
: @( x/ C: s. ^8 }% z9 H" a在同一文件中,我们跳到这个功能
3 f: v; ?( Z! ]; V; G! m/ n代码:7 @+ r* u' h. J% l+ |
BOOL CWndCreateChar::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )0 h( P* D9 c- [& X, ?! N
并查找这一行:3 E) P7 \+ s2 s
代码:
: J. }; T% X9 H: X% ^# I7 Q( ^ case WIDC_OK: // Create
. r! V- I4 N' t+ o. [1 l( U {
' q" c* O* s: W* j# Y7 o) S1 y下面我们就这一个:
3 ~ G4 B0 n8 t" X6 x% J3 L0 Q代码:
% g* V" r* s- d. T& ~. p+ X( C/ W
7 O+ }9 m. L5 \0 k& Y#ifdef __JOB_CREATE_CHAR$ n3 i" H6 U& c& x+ [
CWndComboBox* pWndJobBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );3 x8 l, S) ^; b
assert( pWndJobBox );
" ]. c9 e! _/ f% V# q! Y1 ~9 {
/ [# Q$ L+ Q4 L! v- ^2 L( x6 z( |9 L; @ if( pWndJobBox->GetCurSel() == -1 )$ S& a8 I4 ~$ y, l" } s9 e9 ~5 A
{
6 [2 P7 V$ W, M3 M% m5 e g_WndMng.OpenMessageBox( "Bitte w?hlen Sie einen Job" );
- i6 A* m6 L i4 X6 b1 h9 z& e return TRUE;/ ^( W3 G1 l. m
}4 @, ^' Q A& x: ~- w) ?
8 J7 U B+ h2 L2 m1 L
switch( pWndJobBox->GetCurSel() )
; n" w/ d; A) [8 ?0 {* s* b# C+ w, b {
7 P* R) U( Y- @6 H0 ~5 ?' }1 o case 0:
3 {1 X: A5 l& \8 f; H( X- Y m_Player.m_byJob = JOB_MERCENARY;# O4 {/ i; O+ G3 X5 G
break;9 Q5 u, e. Q. L4 c
case 1:8 H3 Y, p: O' Z- s5 e5 b
m_Player.m_byJob = JOB_ACROBAT;! s" b0 Q: l% k/ \0 k5 g* d3 V
break;. m z$ k$ n" `
case 2:
: p. B' L1 @" s) _ m_Player.m_byJob = JOB_ASSIST;
+ ?8 u( s! p9 L, }! n- _9 z break; l, q) E |( [" K8 T- }
case 3:
; W0 w* C) ^4 O9 Q4 f8 ] m_Player.m_byJob = JOB_MAGICIAN;( }* K; @, U+ U: Q
break;
4 o" h4 O; H: o& e# u default:
2 R, K4 f# @/ D S; e m_Player.m_byJob = JOB_MERCENARY;
8 d F% M+ I/ j; k4 s7 E$ V( I break;3 F0 a. ^# w: x
}5 o8 ]! V" ~' t4 a5 A+ X# `, Z- ?
#endif //__JOB_CREATE_CHAR* ^* o% m7 z. ?9 T) l
# Z7 D) E p! w' T4 T
../databaseserver/versioncommon.h
- U3 }; g3 H' M6 f: B5 p' c" t
在这里,我们这一个以上的地方进行! H, A! |/ g3 N. S
代码:
. {! |( B! @; C" K5 g" d0 {* n J, u+ h9 B8 ?, x
#define __JOB_CREATE_CHAR2 F3 J/ X z7 X1 w# H' z
../_Database/DbManager.cpp/ n( D6 Y$ h9 F5 e
) o) v) H8 M$ ~- I/ C
在那里,我们去的功能& K4 D6 ~" \5 ~4 b8 v
代码:+ t: K+ V, z$ [" r( Q& f
' d6 k u# W( a+ Y
void CDbManager::CreatePlayer( CQuery *qry, LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus )4 U5 f' `# z$ [3 i! |5 c
并搜索
8 H9 e5 k9 @2 w& N; ]代码:6 p' I' _/ t7 D4 d
pd.data.nJob = 0;
$ f `* o3 {; `$ U并替换为
' R# a Q/ P3 s: X4 k& z4 S代码:
% k% U, z0 G+ A9 H i O3 ^. |. Q#ifdef __JOB_CREATE_CHAR1 [* D1 u8 @% Y: P9 O }6 {' S$ g( G5 ?
pd.data.nJob = nJob;5 v3 f( o" J0 k, V9 _& }
#else //__JOB_CREATE_CHAR
% ]- c2 x9 @! H u: u2 G pd.data.nJob = 0;) y3 l1 q& Q6 _( K
#endif //__JOB_CREATE_CHAR9 Q y6 [ F4 G9 E- B5 e
; D, O6 o3 \- h/ w, d) U0 i+ E这将永远有一个来源的东西。4 ?$ m; S1 V5 E
3 ]3 ]) C; _5 i但我们现在必须修改数据库,所以我们走在存储过程CHARACTER_01_DBF CHARACTER_STR到数据库
7 k! R$ v( X& u) G3 {. V和搜索
& S1 e+ t" c5 ^: X代码:
( j" S9 N- h8 e1 r, X" P# S9 e D5 h
FROM BASE_VALUE_TBL! F- }' |, t/ p
WHERE g_nSex = @im_dwSex; ~$ p1 f6 W4 x4 z+ _
并替换为
/ Y% }" K9 t5 l# H, f5 Y代码:$ p0 `/ Y% B3 `/ X% v( x
FROM BASE_VALUE_TBL; i) _4 a5 P* }. [: |# Y" T
WHERE g_nSex = @im_dwSex AND$ Q1 J! A, P% i% Z! ]" r
m_nJob = @im_nJob! M- o) j/ P. A+ @4 k% p. ?
当你做的工作,以便更积极的条目BASE_VALUE_TBL CHARACTER_01_DBF都可以。/ A; L7 s1 s& K6 d
# P4 z7 `6 L9 i
你必须确保它仅适合和njob g_nSex。始终创建两个g_nSex g_nSex=0和=1项。3 I5 i& t, h! w$ a8 h
" r/ R, b; y: x" K d你必须,但是,仍然在Character_STR条目(刚下Selectierung BASE_VALUE_TBL)为补充SKILLINFLUENCE_TBL。$ w9 b& c9 d4 z2 N3 _0 t; \1 Y
这是那里告诉服务器哪些技能你的角色可以skillen。
2 F- N. a5 `1 I$ Y( O& _可惜我不再the'm懒得现在要做的话:'D0 j/ U. V/ b# i5 s, H, c6 n/ J, O
: d7 Q5 q2 i( Q0 [5 x8 P# { Y; ?- k5 t6 B& J3 o0 A9 y' T
5 t0 Q6 X' N' n. l& w; G
* i8 a2 b$ q: v! g9 d( R9 C% @
) e. ?8 Y9 K4 C) w5 T( l
5 B9 a/ l/ \4 Y* A3 E
3 E4 J; w/ U3 G j, }! A
; b4 c5 Q; ^4 `$ PQuote:$ X! X: x; B F5 t* T
Originally Posted by Divine. 0 Q# Z# @! f0 H* P
如果他发现我
) a) ]- q. ^8 w9 l# } _代码:* B9 L( x% o1 M8 Q- ~
pd.data.nJob = 0;5 s7 {9 B( D2 t+ x( u- E% }
并非如此:8 F5 t' C) \# K
所以,我只能看到
0 o& j. k C* m6 `/ \代码:1 Y t1 f# Z& d
// pd.nJob = 0;9 o, i+ n* l9 ]( S. q8 T& w
^^
# F- U. v% M6 H, |Hier, das mussu finden:% g2 q% u* D8 F% g* _: d# l6 k
Quote:3 F+ Y' u/ F) Z" P4 U4 o5 o6 |
#ifdef __CREATE_JOB2 ~- K# @; M i$ C3 L1 `! S
pd.data.nJob = nJob;
$ Z! t; { ~. ^1 l0 Q, `#endif // __CREATE_JOB
2 B/ ~, v/ [+ M6 S n( P// pd.nJob = 0;+ f( O% v0 W d+ o' n, {
// pd.dwState = 0;
1 Y0 p2 \7 y% [8 X8 M( qpd.data.nLevel = 1;" n9 M% B; R/ C) g
pd.data.nSex = nSex;/ G. s# l2 |% M J
pd.data.nVer = 1; 1 ~: @7 n5 S% A8 o: I& P3 ]# \
2 Y! v3 ?% Y; C: N0 G, r我仍然有一个问题(:
% d, Z% u9 s7 Z4 S* X下Character_STR DB, V3 j# D- w2 U; Z9 p4 n( j
这样做在这里4 Q6 Q- B! S }: H
代码:
' Y3 s' ~7 \( K' D G/ L3 `9 T FROM BASE_VALUE_TBL% R( B4 S3 n& z+ z$ [9 b
WHERE g_nSex = @im_dwSex
4 ]+ h' U9 Z$ j, Z' }6 L在这里改变0 J( C2 D% V8 h, A
代码:: b7 y, h. Q8 I# O: Q
FROM BASE_VALUE_TBL1 O# ^1 o( A6 x
WHERE g_nSex = @im_dwSex AND
1 Q9 C% b2 a- ]1 a m_nJob) D, M; D J9 K. L! X4 s) b
由于还需要什么?.?
$ Z- l6 z5 N* C4 T" ~在第一篇文章中,你可以阅读
C6 W8 w |* N# C代码:
' d8 ?* d0 e! B7 p) p) r FROM BASE_VALUE_TBL- H8 W6 L* W K) _
WHERE g_nSex = @im_dwSex AND
3 k, k' ?% ?) Z9 ?7 d m_nJob 8 v7 q3 k9 Q/ U6 }; l" V
' F. a6 \) g5 c" q5 W2 e' l. [5 k( ~0 A& ?
窗口是什么我忘了
4 | v" {5 u* ~5 S
0 U: A' ~! U% L; J/ ^: Z' U代码:
& @# N: d" [: }, RAPP_CREATE_CHAR "WndTile08.tga" 1 544 368 0x2410000 26+ h) {( N# K7 T# B. W
{
1 r2 m: o% c/ `* ^0 [" u7 j3 Y// Title String
7 |; A, y, E \0 S0 U3 [IDS_RESDATA_INC_003064
3 q- A2 f k5 R}% l( s4 d8 x! H. N
{2 Z+ s6 K" O# _$ Z. B, }8 k
// Help Key( e7 J. R: ~: ?% }5 J R
IDS_RESDATA_INC_003065, ~! Z4 L/ W/ Y* w
}6 j7 W3 \0 l3 ?1 q" p2 O: m
{/ w- v7 y2 U; O0 |- j/ k; e) |
WTYPE_BUTTON WIDC_OK "ButtOk.tga" -842150451 176 300 248 320 0x220000 0 0 0 0/ W- ~" s T- R/ V# m# a7 G
{9 d2 t$ l) V8 U- A5 b
// Title String& F4 S& q: d! C: ^4 Z5 `4 I
IDS_RESDATA_INC_003066
- o5 T8 Q4 m; t" _: e0 e7 w }% `; O6 b4 k' s2 a1 R/ R' t0 c
{6 ~8 M- p5 P6 a
// ToolTip
$ H3 k2 } o* c& u, V1 ^IDS_RESDATA_INC_003067" b" g6 v( _" d& o9 b) k4 I
}
; H3 H. b( l: \) `& R; W1 f- u WTYPE_BUTTON WIDC_CANCEL "ButtCancel.tga" -842150451 280 300 352 320 0x220000 0 0 0 09 Y, [2 c" _ U& R7 k
{: f) Y# m' j! P& ~! J
// Title String
0 q2 D- i* e# l; J5 h7 ?IDS_RESDATA_INC_003068 r: p) Y3 B( T( S0 u
}
/ Q* ]3 b+ [' `. `# Y {
1 W" q# f4 k9 D; b( Z // ToolTip
0 R2 c0 F1 a2 V3 }2 kIDS_RESDATA_INC_0030694 K2 Y& U* |/ g) A8 l2 v% e' ?
}. I1 Q# M7 I4 Z, x6 }# G% [( S
WTYPE_BUTTON WIDC_MALE "ButtMale.bmp" -842150451 118 128 190 148 0x220000 0 0 0 0- F, J* s& B* ]( d3 ?
{
- w) T! ~. e* }+ a, b // Title String% t2 D u+ H V' [2 ~/ b9 R# A9 C+ M
IDS_RESDATA_INC_0030700 j" n4 O! e* B- y5 {0 N) V4 |3 I- ~$ y
}
9 ?7 X! H7 j. Q. _- J) B- J6 M {6 R, V) U% X8 f
// ToolTip/ W2 e6 ?9 x+ T1 o6 {
IDS_RESDATA_INC_003071
/ s7 J) X W/ J! y) `, z8 h }3 M! [/ N! n$ ^" z, e
WTYPE_BUTTON WIDC_FEMALE "ButtFemale.bmp" -842150451 194 128 266 148 0x220000 0 0 0 0' V1 e' D* O+ I
{
7 r4 M5 U! Y3 u! S7 m1 S7 p+ T // Title String
/ G* A2 }: A0 D3 d0 C( MIDS_RESDATA_INC_0030729 U" ?: _0 O9 v$ ^
}6 O8 o B, d1 D0 i( M
{
" s6 g) _) q0 r4 B' b* l // ToolTip! _4 E w0 M' U$ Q" h. Y# L m
IDS_RESDATA_INC_003073
( T, `. l. f. g9 N }
: n. k) W% t } G) K! {- F7 A. u WTYPE_EDITCTRL WIDC_NAME "WndEditTile00.tga" 1 116 48 288 71 0x20000 0 0 0 0
& n d) b% Q W: m; ]: s2 b {9 J# N% T+ o. b8 W+ a4 w3 K F
// Title String
5 H2 H( Y7 v, g. sIDS_RESDATA_INC_003074
9 H8 O8 @8 g" B$ X }
! f, N' f! y6 _7 c( @1 P {
: {' M* b8 Q: a) `) y1 K // ToolTip
7 D7 B* d% Y& ZIDS_RESDATA_INC_003075- ^3 _% K% M- Z+ [8 H
}4 p4 m# z b8 r* A
WTYPE_BUTTON WIDC_HAIRSTYLE_LEFT "ButtLeft.bmp" -842150451 118 152 190 172 0x220000 0 0 0 0) L% t. |% ]3 l
{5 e7 @! X7 S% B% R
// Title String' Q" g" G5 J: N
IDS_RESDATA_INC_003076
}* V" y8 k6 I8 @4 X }
* d0 m) p* x6 e$ C( \ {
% b J3 M3 e$ a* e // ToolTip
) F; ~/ R1 `' {- g6 e) I+ `IDS_RESDATA_INC_003077
1 [2 c5 Z4 K* r! r5 g R }
0 r: R+ e% X- S WTYPE_BUTTON WIDC_HAIRSTYLE_RIGHT "ButtRight.bmp" -842150451 194 152 266 172 0x220000 0 0 0 0! l# w) H3 `+ T2 c4 Z# M
{1 H: C$ y" _$ S2 p# I9 Q2 k+ v7 n
// Title String5 [. N/ R1 j1 r# {5 p
IDS_RESDATA_INC_003078
' g. ]6 g. l ]# i. V8 O6 L }' H0 b5 K: r0 h, Y& `1 _
{0 M" ^1 q, m0 c
// ToolTip$ U S; e3 C7 ~ t( u
IDS_RESDATA_INC_003079% ?* v z; \0 ^( T1 A4 q
}+ |* E$ k9 R1 r
WTYPE_BUTTON WIDC_HAIRCOLOR_LEFT "ButtLeft.bmp" -842150451 118 176 190 196 0x220000 0 0 0 0' S/ l5 J& W1 ]1 E% I
{
: D1 d- ?! i6 I, t- p( H+ K+ l // Title String
4 \/ E# H f$ H$ a/ VIDS_RESDATA_INC_003080
5 X, m( R+ \, c% | }! l ?) G0 g$ x2 R+ U, n- x
{" Y+ X+ K, M3 Y ^4 M
// ToolTip/ Q, t5 l7 k8 M3 U/ ~9 X) D6 Q4 J
IDS_RESDATA_INC_0030815 Y7 w( b+ m- s9 {8 `6 k
}& b i& @ `, s. J
WTYPE_BUTTON WIDC_HAIRCOLOR_RIGHT "ButtRight.bmp" -842150451 194 176 266 196 0x220000 0 0 0 02 r: B- q3 [: j
{( ?; p9 g$ B; e
// Title String
* U; i; r1 u8 J. [$ O Z7 @% aIDS_RESDATA_INC_0030822 r6 P e' [" h. |( y1 C
}
$ Q/ F! |* B- E" m$ G {
! R. a8 O0 ^4 C" q4 B. [& S2 H // ToolTip0 C6 V0 O! Z- X* s! d1 k; `" A
IDS_RESDATA_INC_0030831 W% D2 T! d$ s. S* o4 f. h9 i
} @. n7 m, A7 X8 M
WTYPE_BUTTON WIDC_FACE_LEFT "ButtLeft.bmp" -842150451 118 200 190 220 0x220000 0 0 0 0
1 t8 l: F7 c9 V6 Y( F! @" E {
`9 C8 z0 u& N n // Title String, {! T" i9 a# s
IDS_RESDATA_INC_003084
( ^: `, D4 Z/ v4 G5 \8 N# E! {* K' g }. v8 H: ^, E9 G0 M3 h; {" p
{
. p% M% a2 R% w3 O // ToolTip
5 a8 k2 b$ I2 U& g+ L. pIDS_RESDATA_INC_003085
# X7 ]$ M/ a. U8 J" [) z }
# B# y3 i- l. }9 | `7 J+ e WTYPE_BUTTON WIDC_FACE_RIGHT "ButtRight.bmp" -842150451 194 200 266 220 0x220000 0 0 0 03 n5 j( Y% i% L! M4 @3 B
{
& R) Q: x4 H7 H5 v // Title String( F4 A) V1 p3 _. d! ]
IDS_RESDATA_INC_003086' e4 X& q6 O% h2 s
}- P6 b8 h8 N3 E! ]& `0 Z+ z
{& M% D2 x5 y# n( @# o
// ToolTip5 X) f& n, Q3 E! D" O- Z2 W
IDS_RESDATA_INC_003087% X# ~( } v5 M5 K3 E, [1 p) F
} I7 w! r. }: z2 y5 b9 c- g. L
WTYPE_STATIC WIDC_STATIC1 "" -842150451 16 48 116 68 0x2260000 0 0 0 0
$ D' F: }$ h% B% `5 f {
h# G( t6 B- a3 ^; \% V // Title String) i6 e; @: {; B! h/ H! H( d
IDS_RESDATA_INC_0030888 _; z- F4 f& B2 ~* d8 X" i2 |
}
; l. l) z: T" y. y {
) w9 v# @! s4 Q // ToolTip
$ T9 U) ]4 ^& cIDS_RESDATA_INC_003089 b; U' D* o& J- w% Q
}1 \0 U0 ]' ]% m+ x
WTYPE_STATIC WIDC_STATIC2 "" -842150451 -232 136 -132 152 0x2260000 0 0 0 0' P2 J& B, Y! @( {! ]8 \( x
{
. j9 T# T; y& u/ j: f // Title String
* U4 j" h) [" F& Y, B- L9 e' }1 XIDS_RESDATA_INC_003090
9 K" a2 ?2 U" t! U' ^ }
- ^/ q1 k# G4 ~) ^! b+ D {5 t I! z, h( G7 X) v
// ToolTip- j6 J6 R5 i$ j7 X/ }
IDS_RESDATA_INC_003091- ]) l- S6 H* l% `( H A; X) V
}
$ ?! ^4 i) @4 e% t WTYPE_STATIC WIDC_STATIC3 "" -842150451 16 152 108 172 0x2260000 0 0 0 04 _" M5 {1 W1 F& W: N
{
) c$ @5 _6 s9 T ~9 ?5 o9 s+ ~ // Title String
! r; i8 s" Y& I+ P2 q& m# Z! n! EIDS_RESDATA_INC_0030927 O0 C7 w. W) ]8 G
}* Z% b0 u, r6 x ^- g
{! a9 B! I$ N5 ^9 C& z9 t# a( y- b
// ToolTip
9 k) q' l! c. a. `IDS_RESDATA_INC_0030933 s( M, b6 I& w) i" E
}
7 D& m8 O6 a( b- C( t WTYPE_STATIC WIDC_STATIC4 "" -842150451 16 176 104 196 0x2260000 0 0 0 0& C" ]5 h: N9 @2 I
{. X/ V* v2 w' @( C4 l/ w: n( X/ ?
// Title String7 W5 g( E% z9 J* Y
IDS_RESDATA_INC_003094: b N8 ~) d4 \
}
t8 k5 _5 U6 y: }3 b, a: ] {
4 c8 _9 |- B. E' u/ v // ToolTip: e" @/ b3 h# L- m
IDS_RESDATA_INC_003095
) p3 U( |7 h2 C A }/ Z8 h$ K) _6 T3 A8 }
WTYPE_STATIC WIDC_STATIC5 "" -842150451 16 200 100 220 0x2260000 0 0 0 02 T( u1 K" b1 I" g
{
1 f/ m/ q3 O2 j7 t n* t // Title String& y( Z' S0 x$ j9 p
IDS_RESDATA_INC_003096) a! t3 x. ` `$ ~/ B3 _
}
5 t' k& U0 G! S' {5 @! v- u# @ {. n2 R# B. ?+ K7 c4 p6 E
// ToolTip; G. m$ D* i. O# {: Q2 d
IDS_RESDATA_INC_003097
( ?0 Q2 Q) E5 [4 {6 G a2 M }8 G( ?8 U6 H" V
WTYPE_STATIC WIDC_STATIC6 "" 0 16 128 104 148 0x2260000 0 0 0 0 O* w7 R8 e; Y
{7 @* J/ G! Q! I& l- l' ~- u" o' d
// Title String( s8 n$ k" [+ j! o! z
IDS_RESDATA_INC_0030981 M, B) w3 D( o6 { k1 U4 O" p
}# X8 |: L0 E @0 i+ S' I
{. R L- a" s! w$ y1 B
// ToolTip2 ^ z; U, j$ T6 w
IDS_RESDATA_INC_0030991 y6 A: C% s4 c" g/ t4 d# }7 L
}
) O3 m3 d9 C7 n WTYPE_STATIC WIDC_STATIC7 "" 0 11 76 281 92 0x2220000 0 0 0 0
% c5 d& }& u0 r* @! g {
! D( r6 o, `: w. F" @ // Title String
" N/ P7 N8 B9 N0 [ h" n" TIDS_RESDATA_INC_0050769 b0 O) r4 D4 i
}
3 Z2 D1 u; e: Q1 \0 A6 @ {
% S4 n4 |3 W8 k6 n+ V P9 q/ B // ToolTip% Y! G1 t9 w$ c {% i
IDS_RESDATA_INC_005077$ }# @, ~" u0 T5 b9 z6 o( t* k' V1 J
}* m. w7 e! r+ J6 o
WTYPE_STATIC WIDC_STATIC8 "" 0 11 97 281 113 0x2220000 0 0 0 0: L. S2 v" k5 _/ M; h, e, E1 K
{& X# J8 J, y$ J1 O/ r/ ]
// Title String6 ?' ~$ v8 D0 }. b
IDS_RESDATA_INC_005078
: x4 T% v" [7 A6 T }& ~0 F2 K% P! _& J0 @
{
% `5 T+ C4 ^( Z- \0 ]' p9 q // ToolTip# h% [3 U* [" i5 p* F
IDS_RESDATA_INC_005079
9 T, |3 i* Q- V1 j0 y% ~" W0 g( f0 `6 u }! o6 F. C9 z/ ~$ H9 Z, l
WTYPE_STATIC WIDC_2ND_PASSWORD "" 0 16 224 148 244 0x2220000 0 0 0 0$ v9 s0 D; V- J @
{0 y8 B: k! N2 a" w
// Title String S( I3 n: Q' [! K: a9 w7 U
IDS_RESDATA_INC_006874
& C# h: Y2 c+ M. V6 j0 d }; |' P e, j& e5 O8 F8 U W
{, a2 N" l! c8 j5 A* Z U9 b
// ToolTip; q+ ^- N8 n; N0 I Z
IDS_RESDATA_INC_006875
# ^/ l6 w# ?) D, t; u, z }3 u- _1 W5 y) R5 L; v& R1 R
WTYPE_EDITCTRL WIDC_EDIT_2ND_PASSWORD "WndEditTile00.tga" 1 172 224 268 244 0x20000 0 0 0 0
5 p, r7 V$ P2 [) r6 d2 W# }7 O {# Y- ?5 O, z' Y* I, \' y
// Title String
4 I: v- i) q+ q8 F" ?5 d8 tIDS_RESDATA_INC_0068780 Q b7 A4 S8 P
}
, q# v% U. f" ]8 m; U/ r$ f {" [4 H, C: {; `2 e* q
// ToolTip
0 n- Q, [3 E9 K1 zIDS_RESDATA_INC_006879
! ~* Z/ K2 d+ m& O4 ] }
0 X0 _# C% I! o. b WTYPE_EDITCTRL WIDC_EDIT_2ND_PASSWORD_CONFIRM "WndEditTile00.tga" 1 172 248 268 268 0x20000 0 0 0 0$ c! V4 j4 Q4 x* K A
{
k% {8 V4 X4 n' \ // Title String
( A7 S1 [ n) a/ cIDS_RESDATA_INC_0068800 b$ g6 P4 t: W i' C
}8 f6 d+ ^0 {' O9 T4 s5 k' @
{0 V- A0 u7 S `' Q2 i
// ToolTip
! ]) h! z$ s. P( m3 z6 z* C/ |IDS_RESDATA_INC_006881
3 V- y4 ^$ D* J- r0 j* ?% Q/ z }" Q) e$ I# f8 a2 d" e* r0 }# r
WTYPE_STATIC WIDC_STATIC_2ND_PASSWORD_TEXT "" 0 16 272 332 292 0x2220000 0 0 0 0* \( w( a: d! U0 L7 _; }
{ L( _% V: |- X) K
// Title String
, E' G+ z: b1 K4 x/ F4 |, q& hIDS_RESDATA_INC_006900
8 N; I4 d$ g U, x }
+ Z" I" R' ?% r4 T/ O$ {( H0 S {
+ W6 x; F2 ]1 r! v+ R/ y0 X8 ]) ` // ToolTip
- X9 ]# _* Y4 m. U+ O; {, [- hIDS_RESDATA_INC_006901
8 B. y' S0 C1 m }
3 o' k+ p9 E3 m4 B WTYPE_STATIC WIDC_2ND_PASSWORD_CONFIRM "" 0 16 248 148 268 0x2220000 0 0 0 0
( x( K) L! g0 N- d% f7 c {8 ]1 K" M# [7 M6 n8 g
// Title String: H6 n! W# b+ s# w4 R) F3 O& d
IDS_RESDATA_INC_006904
! y! o! u! @' H) n1 |; E! t) ?1 Y }
8 [% r* P5 J" l" ? {
. ^" _: D2 }; c' E9 S0 K // ToolTip
9 w/ ?* Q9 L2 f( X4 }IDS_RESDATA_INC_006905
* l: h& j5 c! U. C! \# b } }$ @' v+ X; N J4 y. E
WTYPE_COMBOBOX WIDC_COMBOBOX1 "WndEditTile00.tga" 1 118 80 286 102 0x20000 0 0 0 0
' v9 J' U; U; A0 b. C8 H {
6 K! h* U2 ?8 S" a6 K // Title String
" W- e- L0 J$ U( R8 d6 k9 {% w- [) dIDS_RESDATA_INC_007134
. N0 Y& i# t* P: w! @: N$ k8 @: G }
% \3 H8 E! O/ V; W: C2 @6 R {
7 S7 G1 `5 {& s3 u, U // ToolTip; T3 w0 _9 f0 e' i
IDS_RESDATA_INC_0071357 `5 W- v4 X6 Z* \, `( k
}
" F% z2 b* a" L3 K2 P, E+ @ WTYPE_STATIC WIDC_STATIC12 "" 0 18 82 114 98 0x2220000 0 0 0 0
2 z: P2 D2 Z# m' }+ Y+ X- Z) H {
8 R! z+ @" t/ i+ l // Title String
' d" _5 v G3 _/ H) g$ QIDS_RESDATA_INC_007136
& u: G) v6 p3 }& `- T! d6 s5 f5 ?5 K }
. O' F/ H+ i n9 T( I {
, e' {6 y5 K& b/ L- {9 Y // ToolTip
% P+ C3 b; }9 G+ z% G1 V4 J* _IDS_RESDATA_INC_007137! b& Z% L& ^4 ]8 h( P$ f
}
! z4 u: I, R% A/ z8 H" I
2 q0 v# Y$ e4 C8 f* \, r" I' |}- k: C" F8 M: Y
所以红色的!9 X, l, l% b* w# q9 x3 E
" Y4 D: Y% h3 O! Y$ l; t
这里还tblSkillPoint的条目:
8 N& }' Q" K$ x4 M- X& u- Y$ n0 w# S3 G* A# V
代码:
9 r$ i' j+ Q5 c$ l If (@im_nJob = 1)# [ ~# E7 k8 O/ \
Begin
! G5 H2 [/ P% k/ I3 I4 f, `/ R INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 9, 0, 3)5 S5 ~- a h* D* f8 E
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 4, 0, 4); Y5 C7 K c7 O' p
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 10, 0, 5), W4 f: @6 R3 v, Y
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 5, 0, 6)+ T) {/ u- s1 L% C
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 112, 0, 7)% s: `$ r! ~. R0 S3 S9 V, u. Y
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 13, 0, 8)
, _# I+ ?, {' H, l$ Y INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 111, 0, 9)5 M! y0 w6 u, q4 u" a7 n
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 6, 0, 10)* M( [) u5 ]8 `* m8 ^ H
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 108, 0, 11): l3 t) \" |' q( S% H6 A: a E# }
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 14, 0, 12)- d; y0 H- O' L7 ]5 z
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 109, 0, 13)9 C. ]; \5 s- W: O4 B
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 7, 0, 14)* J( x! n) ] W1 b' @0 S
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 12, 0, 15)9 [9 ~: a+ X! L E( r E$ K
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 11, 0, 16)
% [6 b. ~! w3 c) m7 Z$ @' h INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 8, 0, 17)
; I# h3 P* Z. j8 l* Q end
' {9 \( A8 G9 j& ~& Y& z If (@im_nJob = 2)
$ B8 f7 K; O& Y7 v Begin! U* I. U6 }- C6 Z: k; b
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 197, 0, 3) y( l* u8 `: p
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 194, 0, 4)
! R6 h# E% V0 F: b) Y INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 206, 0, 5)$ N3 ^6 k4 h& ^+ R
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 195, 0, 6)- Y: |) Y4 }/ H1 s8 `" A
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 191, 0, 7)
' Z ]" e& O$ L; M- } INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 192, 0, 8)
: ^* R+ s$ f- n- c INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 198, 0, 9)
9 y" B+ r0 M! t* I4 V# i; { Q INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 193, 0, 10)9 l9 Y' }* ?% B8 R' Q
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 201, 0, 11)- {/ y: w% p' l) A: c- e
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 203, 0, 12): s O: w8 @9 J. u. L8 m
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 196, 0, 13)
" L' P: g- |) o% D" b7 C INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 204, 0, 14)& {9 e3 d% A5 q; B
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 202, 0, 15)
7 }+ I% R; T5 ~3 ^' m3 p- k INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 199, 0, 16)
% Z5 Z) p! J4 k9 m5 t3 R9 p INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 205, 0, 17)
- _' H' n/ a1 \ J INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 200, 0, 18)5 J, H1 _2 T/ n: h1 U
end
4 s, K/ a) k4 l! S5 M4 g2 e) @ If (@im_nJob = 3)
% D! S% [! ]$ I3 \5 G: A0 ]: @ Begin
) E x5 A( \! U' G) | INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 44, 0, 3)
- t" V$ H, O( S- s: p INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 46, 0, 4): U7 h. d) c' ?
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 52, 0, 5)
) G8 c& O& r& W' P INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 45, 0, 6)4 Y8 w0 ~' {, o. J5 p
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 114, 0, 7)
2 O$ q! k. d) J/ o7 q INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 49, 0, 8)
$ s: s1 r" ~) } INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 104, 0, 9)$ i/ F: A9 O6 w1 }" l; [
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 20, 0, 10)1 |$ }9 L ?" F! { B1 H" w
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 53, 0, 11)1 E" o7 O, C, f$ v
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 51, 0, 12)$ V1 S3 b, {' S# ?
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 113, 0, 13)
: |- a1 [& L2 c7 r' k9 e4 B0 V! E' g INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 115, 0, 14)
: y0 U; \, [; g INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 105, 0, 15)
" @. \/ S; z# E+ C9 w INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 48, 0, 16)# i Q2 }0 m' v `
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 116, 0, 17)) w5 ?9 j% f+ C0 d# M5 k
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 117, 0, 18)
6 |( Z$ f1 @; J# \8 V INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 50, 0, 19)! I5 N" o: Y9 Y/ ~; n* [5 O) |! C4 Y2 W
end t0 E0 ]9 y4 m' z! o
If (@im_nJob = 4)$ r1 q h/ j! Q( r: [( m! g/ [( J
Begin
+ d2 y9 j2 s- H& [! @/ k INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 121, 0, 3)
4 W5 g; R: Y( s: S) g4 H INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 120, 0, 4)
0 V' \$ A/ m& ^% a) d INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 119, 0, 5)0 ]# r; B% N: u4 W" _; N
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 64, 0, 6)' W" e+ s; S2 X$ J) y% @
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 118, 0, 7)
5 C" b% t0 F `$ h$ F* u$ y INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 69, 0, 8)
9 J2 s: C' r' K INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 36, 0, 9)+ N" a8 P8 X$ V) R% A6 r
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 32, 0, 10)
( S& B; E- F8 j& C INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 70, 0, 11)1 Y; x1 K% x8 X# d; p: o7 K9 R
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 65, 0, 12)
- X2 m/ D6 T" W7 l INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 34, 0, 13)
. c4 T" l- b' `0 ^ U INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 107, 0, 14)9 m p. l+ a* _6 N4 ?- L: B3 r
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 37, 0, 15)
/ A1 T0 w9 E, _& V& \ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 35, 0, 16)( ?0 S) g5 w, A3 r4 N. s- g+ G* C
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 31, 0, 17)) M" K! i6 e1 d! G+ z, F9 n: k6 _2 [
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 30, 0, 18)
$ c) d; B7 C: a$ S INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 33, 0, 19)" b" Y( K) x+ \
end
2 t$ S8 `( x& Y% }3 j只需插入在此插入
* m8 p/ Q9 r# B! s( s% w( ]& y) f( u: e: Z代码:
. @' p' U# Q5 g' Z3 f4 @ INSERT BANK_EXT_TBL( t! y6 w5 j' z, E2 M- p( k
( 4 P% l+ b- v' q, s* t. g! s
m_idPlayer,
3 L" ~& h1 h" S4 ]/ h# e( ?3 K serverindex,
* y" I9 c- H8 m9 ] m_extBank," S" X: M, l) v7 |7 R/ G+ i. R
m_BankPiercing1 [! r* z8 k3 {# t
)
/ z: X+ w! i9 K0 B8 z2 j! X VALUES
' U# X1 J/ R% b, J (2 e E; G7 q2 [
@om_idPlayer,1 G$ x+ }( K, g L. p/ Y& R
@iserverindex,
; m( E* M# ?5 z ''$'',''$''# h1 q' k; A1 w
)
% I: A) S" Q2 r+ f% j L* ~$ _6 n# Y! E9 ~
, E5 ], T+ T( h) K, _% M, e" {8 l#define IDS_RESDATA_INC_007134 28816
$ Q/ {9 A# F, m5 }3 C' t3 w' l; h3 b4 h. V% |/ [
1 h7 E/ G" h, ^3 g3 K" q8 j
DBQryCharacter( szQuery, "I1", 0, g_appInfo.dwSys, lpDbOverlappedPlus->AccountInfo.szAccount, lpDbOverlappedPlus->AccountInfo.szPlayer, nSlot, dwWorldID,
# h, ?4 I( c; z dwIndex, vPos.x, vPos.y, vPos.z, '\0', nSkinSet, nHairMesh, dwHairColor, nHeadMesh, nSex
: ~, c0 @" z/ {3 G @" c#ifdef __NEW_JOB_SYS
' D& ]0 r2 g0 z$ T+ L" T6 G , 0.0f, 0, 0.0f,
/ O& u) g% _( |# [& R9 E5 _ 0, 0, 0, 0, 0,/ Z! T* d( ?, ]. z6 a, \! ]
nJob
) h% l. {" i& [; o l: C! \#endif: |9 Y& i$ ^9 F9 l( e6 r. \
6 W& S1 x% E' v0 c
: y3 U" U4 Q/ o* T% y
|
|