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