|
在这里,我向你解释如何在源选择安装到创建工作中的字符。
6 G" k% W2 s7 s../NEUZ/Versioncommon.h( i3 k7 m% h+ v G: ?" z
& m( u3 w: `9 w在上范围进这里只是这一个:
0 i8 m5 I! J+ y: V% }4 ~代码:6 E) W" Z# u% {& v5 R
5 {- G& P* ]3 l \& P+ y1 z
#define __JOB_CREATE_CHAR
- c& q1 l" ?( u: G- t../_Interface/WndTitle.cpp- z, a ` a* x8 [
) T5 J! N0 O4 Q在这里你进入功能
$ H/ w9 E1 e9 J) l ?. s5 x5 G! j代码:
' E, h; \ P$ ^
9 j( Z5 f7 |6 d, z. Dvoid CWndCreateChar::OnInitialUpdate()
9 a- q$ G* l3 u* P! A6 Q并有助于
; P5 q C j$ i ~/ D/ x: E0 u代码:3 n4 ^! y/ h2 c4 J1 y
CWndNeuz::OnInitialUpdate();) g! N2 B* |3 f0 M3 f
这样的代码:
2 h7 L, @& n Q代码:
2 s, C6 |& s7 ?, K# J/ H#ifdef __JOB_CREATE_CHAR6 R' r2 E$ }+ s. v! s
m_Player.m_byJob = JOB_MERCENARY;
' h5 Y, \: s4 D% t- h1 l CWndComboBox* pWndJobBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );
$ {) A0 c* a8 X pWndJobBox->AddString("Mercenary");//Edit by yannickmama l/ s. l, p7 |: l# \
pWndJobBox->AddString("Acrobat");
' k7 k) k$ U0 S* Y( |. q pWndJobBox->AddString("Assist");
2 d. W( G- S: }% s; @* V$ Z pWndJobBox->AddString("Magician");8 G ~- k0 b; E0 s% A: |# `6 Z- {
pWndJobBox->AddWndStyle( EBS_READONLY );, Y$ |+ M( a8 f( a$ R1 [
pWndJobBox->SetCurSel( 0 );
5 g) b4 Z# \4 q9 @' X#endif //__JOB_CREATE_CHAR
1 P1 D$ r$ P+ q; f在同一文件中,我们跳到这个功能# @- G) H- b! [2 M
代码:
" L1 c/ r8 J) s! ~0 hBOOL CWndCreateChar::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )" O7 E- U/ L, y4 q2 v5 b
并查找这一行:
4 D( {: J( z% Q+ H b. Y1 B代码:
* u! T7 u. c! R" R9 U case WIDC_OK: // Create
1 a/ }* b/ t( X' |, K {+ S$ I% [& O P9 Z3 h. V5 o9 U6 ~
下面我们就这一个:
6 g2 @# }; G) z' }代码:
" r# ^$ `( n% a+ S( D% {6 O% u8 E' Y& b2 k2 R. V
#ifdef __JOB_CREATE_CHAR. q5 t$ j; I* c3 Q
CWndComboBox* pWndJobBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );
9 Z; S7 J: C$ M, g1 m2 `5 v# B assert( pWndJobBox );4 ]6 F# w! x* }/ E) D: b8 V3 @
. L3 i+ o- @8 ?4 w' k if( pWndJobBox->GetCurSel() == -1 )
" r! i l6 s, m8 ^) ?5 t {, G: @ Y0 Y) m% o* j2 K
g_WndMng.OpenMessageBox( "Bitte w?hlen Sie einen Job" );
" v( S, E8 S/ f) G6 ]) _" Z return TRUE;
. {$ R5 D, ^: |$ Z( `1 C }
: z; J8 l- N+ J! a4 B
- ~* V9 A. R. Z6 @5 E! s ~; u2 j switch( pWndJobBox->GetCurSel() )
* V! W2 y, }7 i: c4 H( j {2 k& l) H1 ?! G7 |% c
case 0:
1 O+ H+ E: f0 s2 k4 a+ | m_Player.m_byJob = JOB_MERCENARY;% U2 ~, h1 g6 O+ Y5 F
break;
" p9 x1 n% w% t+ m& c6 l9 Q: ~ a case 1:4 l+ T. ?3 [1 h! N
m_Player.m_byJob = JOB_ACROBAT;
8 \& b+ M7 D% {% [ break;
, ~* [# A0 B T9 e# o/ p case 2:
; R8 c" n& T! I) X m_Player.m_byJob = JOB_ASSIST;
) y8 `9 c: t( v break;( V; M# S8 P) j& u8 \
case 3:
, ?/ b& W( x6 ]6 F1 {3 C m_Player.m_byJob = JOB_MAGICIAN;) K4 w! j% [, k( Q T- I
break;3 W( O+ V" F+ k6 c" D
default:
; k) Z9 ?. q5 `+ S m_Player.m_byJob = JOB_MERCENARY;" k) y& D+ e7 h0 t8 u: L
break;
3 l I5 J6 c' K+ w3 V4 m9 _ }# `/ R, I, K1 b4 |
#endif //__JOB_CREATE_CHAR5 Q7 f; B4 F0 g
- m& X/ v- y1 [( _$ K0 i5 D5 y../databaseserver/versioncommon.h4 n: K% i7 A7 d @) b
7 j& w D1 ~: d9 V& s9 R
在这里,我们这一个以上的地方进行; D1 t: ^4 h, @! H
代码:
5 ]0 j1 k, c5 }* E
+ V# l+ ` M4 T; b/ b1 M: a4 i#define __JOB_CREATE_CHAR$ L% `1 g: i7 o- b2 S. g7 L4 R
../_Database/DbManager.cpp
# k2 u, ^; g9 [: c" p5 U r/ t9 D1 l/ h( n- p+ @
在那里,我们去的功能( T& b$ l# s( i" h
代码:
" N' t. z: t* X+ Z) [. p/ @' b% c+ B0 o; u1 a' ~$ _& J8 t
void CDbManager::CreatePlayer( CQuery *qry, LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus )! w$ s7 o2 [& R6 J! y5 O: ^# i. a
并搜索
/ L7 n) ~+ R# o7 m) r% I代码:
5 r8 j$ p4 f8 g8 h' T2 f1 dpd.data.nJob = 0;2 i' u8 ]0 q: `$ I
并替换为9 c9 k' m/ W* G/ `2 f) u
代码:2 g Y7 o( [8 I" r, G
#ifdef __JOB_CREATE_CHAR! Z- ~. w: t8 n6 X$ B
pd.data.nJob = nJob; Q' G2 R$ v" F+ I5 }# }
#else //__JOB_CREATE_CHAR5 I, p- `5 i" y( J
pd.data.nJob = 0;7 M4 E2 b+ ^& p1 K
#endif //__JOB_CREATE_CHAR# X" o1 h# {( Q+ n3 |
1 g( V+ M# d: z" ?. `. _# k+ w
这将永远有一个来源的东西。
5 O- d% |5 x2 z7 e% I2 G- y, j [* m, `8 X6 [5 S
但我们现在必须修改数据库,所以我们走在存储过程CHARACTER_01_DBF CHARACTER_STR到数据库6 D' @. N9 }. Q& T7 v9 {& Y
和搜索/ [' q1 \% y; P3 n( ]- F9 B& Y
代码:
9 h) L" s$ P. v& @( W
' |4 ~; i1 M( [ FROM BASE_VALUE_TBL& |! q" M7 u* w5 F+ z; j7 H. o1 H
WHERE g_nSex = @im_dwSex
- h4 N/ a. ^7 j/ M8 u* i并替换为9 n' z, f% q5 Z& G9 T9 U7 J5 e# w
代码:
( N6 s C$ q) Y0 x6 W& G1 s FROM BASE_VALUE_TBL% W7 D2 O9 k+ l, D
WHERE g_nSex = @im_dwSex AND* r/ ~% H/ ^3 [! j% d0 v, _
m_nJob = @im_nJob3 s* h6 |5 Z+ k+ W* R1 h
当你做的工作,以便更积极的条目BASE_VALUE_TBL CHARACTER_01_DBF都可以。" D$ F9 G2 E/ p8 _
$ ?% u0 ^1 N3 m4 q4 f! f) ^: x你必须确保它仅适合和njob g_nSex。始终创建两个g_nSex g_nSex=0和=1项。) m: n, N/ |8 D5 S+ T
( o/ ]2 @% j! u ~ ~6 g, X
你必须,但是,仍然在Character_STR条目(刚下Selectierung BASE_VALUE_TBL)为补充SKILLINFLUENCE_TBL。" H5 y4 W+ k' A1 W' B* _$ Q% f
这是那里告诉服务器哪些技能你的角色可以skillen。
/ D4 A+ H! X1 |) @$ {- a可惜我不再the'm懒得现在要做的话:'D9 F4 p6 n, D* u
; G5 Z; r* v8 c; x; ]
9 u0 O! u% z" ]) u- |
3 A! z5 @9 }4 Z! E; }' v6 K& w" O
. T5 b- R: a8 a( C1 v5 F$ ?, U
2 K5 x+ ^0 h5 }, u. _8 O9 W+ I; F& _* t1 m
' b; l/ k9 I! Q \' c5 T& G. [4 `' Z. G4 o
Quote:
: d3 Q6 U4 o$ Q \! r/ @* Z/ VOriginally Posted by Divine.
% Z& O, }! G; p1 s! t* h如果他发现我& N5 E* A! ~8 @: l; G6 r
代码:
, v4 O8 T4 H2 X2 O pd.data.nJob = 0;$ k- r' |/ o+ j+ k
并非如此:
4 |: |/ i% c7 \( {) X所以,我只能看到# D" n8 Z6 `( V) X9 Y
代码:
1 P0 n2 M+ Z6 y3 l0 _1 Q // pd.nJob = 0;
; G3 p' B1 C9 y, z7 s^^! e* i5 ?' T1 a7 X
Hier, das mussu finden:
# C+ q) s8 B: cQuote:: r& e: V+ J/ ^' x0 W: d
#ifdef __CREATE_JOB
3 ]1 e" i! ]3 g2 I" J3 ^pd.data.nJob = nJob;
# k! }0 t7 I. J# Q3 Z) @7 {#endif // __CREATE_JOB
3 B. V- F6 H5 u |* L// pd.nJob = 0; l- ]$ n$ T# J# C; E: Q2 I% L# N' \
// pd.dwState = 0;3 i2 r% S& c% p4 ~7 W+ @( N
pd.data.nLevel = 1;
' ~: y* {. F8 }( spd.data.nSex = nSex;! ?3 m3 o% S% g( H. \) s( Q
pd.data.nVer = 1; * D6 [) o8 E: ]$ t W
3 Z: f* ?6 h( Q5 N% @
我仍然有一个问题(:; O0 {1 {0 N& W; S! j; b
下Character_STR DB
5 r0 H+ Z% E6 g' ~& [- F这样做在这里
: g( s X5 U2 w7 A( G3 K; X代码:7 |5 k7 b$ o+ b# |
FROM BASE_VALUE_TBL
* h; K' t! ^- @7 B WHERE g_nSex = @im_dwSex
7 P \+ Z5 i0 r在这里改变6 X6 t. M5 p; p4 k1 y( ^2 U) l
代码:
& u! d9 j) U) M$ G) r FROM BASE_VALUE_TBL& F" T9 h1 y6 [. L
WHERE g_nSex = @im_dwSex AND* F6 t- |, e1 p. y/ H) c; b n; k
m_nJob+ W9 P( K8 Y. X1 \) e& [& V% W
由于还需要什么?.?4 v: }3 r$ z. {1 @, w, T
在第一篇文章中,你可以阅读! r4 k% c8 q5 L
代码:# s7 X, e- }! `( K0 L
FROM BASE_VALUE_TBL; q& ? ] m2 e5 \: a, s" X
WHERE g_nSex = @im_dwSex AND. z: e& o+ c0 x
m_nJob ' L) S8 B8 t2 [4 L5 E, B9 ~
; _" c! l1 {8 Z4 e# C& e
, x/ q ^ {7 Q7 A7 }窗口是什么我忘了
& \/ J* N; g1 R1 |1 J$ h4 m& C" _( r7 {; j9 h' K* i
代码:
/ P; Z4 @0 j2 ~7 k) `3 W$ FAPP_CREATE_CHAR "WndTile08.tga" 1 544 368 0x2410000 26
- I( y/ g8 A, R% }{! s" }& @& {6 V; ^$ a7 e) P: r4 t' A
// Title String7 }7 v1 g3 c3 y; j
IDS_RESDATA_INC_003064
* i& K& E9 D4 v) r" F2 O& o9 a}
/ C3 z" k! G: h' q, e{
% y( g+ ~0 f! J( t8 l0 R// Help Key
8 O. Q- f- H. S$ Y$ h( a* wIDS_RESDATA_INC_003065
' F! M4 I2 X, h( W" _8 C}& `; B9 o' S- i; |
{* N$ T" ~- W$ h& T8 F: A+ j
WTYPE_BUTTON WIDC_OK "ButtOk.tga" -842150451 176 300 248 320 0x220000 0 0 0 05 H3 V/ M# y6 i& [# k2 a g
{
2 D' z: \& T' a2 O+ M( o // Title String
+ p% @+ e, k9 {% a9 f' s8 t: yIDS_RESDATA_INC_003066# y O% p% H' T* k* U
}1 z, P4 ]& H- c' x
{
2 a% r( B+ s. ` // ToolTip( ?& M4 y* H; J# M! | k# W7 w
IDS_RESDATA_INC_003067
9 |8 z, x/ d" g2 l7 R R }
' {( i. U, Q/ r, s7 m0 I$ r" t WTYPE_BUTTON WIDC_CANCEL "ButtCancel.tga" -842150451 280 300 352 320 0x220000 0 0 0 0! t% l, x9 B! V4 G) m' m( W
{
- w- |* Q9 e9 G# T0 N4 m* n // Title String! A- \/ x- e- m! i2 d% N
IDS_RESDATA_INC_003068
W* O/ s8 X$ n; \) t }
& K1 W3 Y% \4 d4 \ {% g3 t; z6 y3 [, C6 d" r) k
// ToolTip
# I8 ?+ b1 U6 t( Y' S) YIDS_RESDATA_INC_003069
' Y; A# ~7 e# R }- \( }% H+ a! v5 j. |9 Z1 a2 b0 U+ V
WTYPE_BUTTON WIDC_MALE "ButtMale.bmp" -842150451 118 128 190 148 0x220000 0 0 0 0. f" H& I2 F( a: D
{+ ^2 L; q) T# E4 Q! G; b8 W- F. l) H
// Title String
, ^. Y) d) n, m5 |+ I7 j3 P dIDS_RESDATA_INC_003070
# P% D) @. w# G8 z! W [5 [/ w( M @ }: A+ r P) }9 K8 y7 n! H
{
- N$ X# l5 ^5 F" j5 A/ M+ V+ ~1 M // ToolTip
$ R2 ]: i9 d9 h. CIDS_RESDATA_INC_003071
1 S& R8 \6 a1 e }/ | D: a& S8 ?- H* \: X& Z
WTYPE_BUTTON WIDC_FEMALE "ButtFemale.bmp" -842150451 194 128 266 148 0x220000 0 0 0 0
9 ^$ V0 q7 P6 J1 Q0 }7 n- _ {( X. o5 Y8 Q% }6 F! x' B
// Title String
6 K# V/ n/ {0 ^. V6 IIDS_RESDATA_INC_003072
% T. L( ]' a0 S0 d }1 }' @1 b ~2 Y1 r5 c5 t$ }
{0 Q; E+ i. c2 _$ O) h" L }9 M
// ToolTip
+ c, E) z( ~1 C( ]& l5 BIDS_RESDATA_INC_003073
1 o! O: X o. V; ^1 E }
+ `3 D8 p& x" U; V. m& W WTYPE_EDITCTRL WIDC_NAME "WndEditTile00.tga" 1 116 48 288 71 0x20000 0 0 0 0" P/ F/ ]4 @& h% D# `* Y
{
# C* p2 c+ X( |& V // Title String
' x7 O4 x" \& TIDS_RESDATA_INC_003074
Y/ k$ l8 }3 a* i# H }& E8 P5 `$ I# q* Q
{
& `* b. ?7 i6 e; ^ // ToolTip7 l7 B* l+ K) `3 ~- a
IDS_RESDATA_INC_003075
5 B0 q% ]; ^, M4 U# O) Z' g+ ]8 k }
3 m N. G3 F/ ]' B6 h0 b) d WTYPE_BUTTON WIDC_HAIRSTYLE_LEFT "ButtLeft.bmp" -842150451 118 152 190 172 0x220000 0 0 0 0( Q8 ]5 N; u0 I8 S
{
1 Q( d* h0 P: N8 T* t1 { // Title String
6 S; P" g( c; U* Y" f. V6 W; g% \IDS_RESDATA_INC_0030768 S) q* Z' C( y; k8 O+ e
}! {# N b3 h7 j# y. ]* G) b- |, A* r
{) Z" T( { y' B- l a F
// ToolTip; d- w* J |" ^6 L8 R; w. S/ Y
IDS_RESDATA_INC_003077
: d, d: b9 n7 h; I9 H" U' k+ j }) \) E4 U5 H7 V; p$ y! ]
WTYPE_BUTTON WIDC_HAIRSTYLE_RIGHT "ButtRight.bmp" -842150451 194 152 266 172 0x220000 0 0 0 0
) G [& c; A. `* i- w& z {, e( [8 Z0 R$ n# }
// Title String
& E8 y2 i3 h0 \- CIDS_RESDATA_INC_003078
. B% H' d l+ S, p" P; E4 S4 D }+ Y! _ }1 l& C
{
' _1 I: b {4 O" y# G3 X" A9 F5 V6 g- ?5 y // ToolTip
- e& _! l* e7 JIDS_RESDATA_INC_0030797 ~7 p f& B2 S! t- R; w- y
}& K7 b1 h8 J) y1 C
WTYPE_BUTTON WIDC_HAIRCOLOR_LEFT "ButtLeft.bmp" -842150451 118 176 190 196 0x220000 0 0 0 03 I% V, N7 o: E$ |
{6 {# G- D5 V2 v& s1 S: J6 J
// Title String
% r7 |1 g8 X2 p; h" SIDS_RESDATA_INC_003080
5 v. [. `/ k r- k7 ] L) n }
) V9 g7 A0 m+ P/ q- I/ q {
- x' B, c* D( r1 i // ToolTip
3 Y( f |& v( q+ eIDS_RESDATA_INC_003081
# y' L |$ ?, |3 f3 y }0 ^7 _1 _( x% o0 A X: o- c1 R& Q. p
WTYPE_BUTTON WIDC_HAIRCOLOR_RIGHT "ButtRight.bmp" -842150451 194 176 266 196 0x220000 0 0 0 00 e2 K0 f8 F1 C; e$ } c+ ]
{
; o/ ]# G; c- l // Title String
3 E( E2 Z+ K0 P7 O, BIDS_RESDATA_INC_003082
) d7 g1 ^0 a& Y* Z& t# W' T- ~ }
. r" T& }) l2 I8 e* X+ ~ {1 }4 d. F. U' }' U, {
// ToolTip% c6 _8 i& t8 S' U9 ^4 l
IDS_RESDATA_INC_003083( E3 v+ P) R% z& b. ^$ D
}2 M6 U* h0 u- b+ q. O3 F
WTYPE_BUTTON WIDC_FACE_LEFT "ButtLeft.bmp" -842150451 118 200 190 220 0x220000 0 0 0 02 j9 K3 a, P7 D
{
& Q, J7 x- i4 e) s3 t! i // Title String! |' R" ~8 w* g" f0 J! |
IDS_RESDATA_INC_003084" w" u* r' W# |( u& _9 N& @
}9 A) y! c4 j# Z# h
{% X @$ e2 \/ n) {4 e6 a
// ToolTip
0 {. X! V7 m0 H; M/ Z! x9 ^IDS_RESDATA_INC_003085
+ i" E+ |9 X! T& u0 p+ M2 j }
) \1 N/ r. ^: A WTYPE_BUTTON WIDC_FACE_RIGHT "ButtRight.bmp" -842150451 194 200 266 220 0x220000 0 0 0 0
+ b# @" J7 U5 g5 X$ x8 y {2 k8 i: A$ I, Q4 P
// Title String
; Q; A0 g- t, Y4 N# R) D6 nIDS_RESDATA_INC_003086# u9 }) c. e3 n q
}; l3 D) ~7 D8 |1 P# N. V- d
{, k* p/ d/ H. R$ A1 \
// ToolTip5 z) G3 l/ | V6 ]1 W# E
IDS_RESDATA_INC_003087' o' Y* h7 H: ^+ d* @
}
- b4 C" _7 F0 m7 ` WTYPE_STATIC WIDC_STATIC1 "" -842150451 16 48 116 68 0x2260000 0 0 0 0$ \' | [5 l9 L& y" \
{
# f4 U5 b0 N$ V' P/ Q- f1 r! m% H // Title String
# C+ V( n7 P) y! ?+ E& K4 lIDS_RESDATA_INC_003088
& V8 Y0 {. F9 r# h* B' @& D }
2 M7 h7 D% F$ D! B# J {3 F8 U- ?" v8 ?6 |6 E4 }9 Z$ p
// ToolTip/ c, l/ Q! ]. Y
IDS_RESDATA_INC_003089' I. ?" [! U1 Y1 `
}
) M9 T( K1 P$ U/ S WTYPE_STATIC WIDC_STATIC2 "" -842150451 -232 136 -132 152 0x2260000 0 0 0 0
- H: t, T( T* ]: U+ ] {
# l5 [5 F/ r, r! U3 v+ p% V8 B // Title String
~! N: t/ n) E& U/ Z) dIDS_RESDATA_INC_003090
7 A! v" y; a! U: x# U) a/ U( v$ y }
+ P% T) y) G) y, N9 u% X$ }$ u0 @ {5 \6 H" B: l# m# i5 N! a
// ToolTip
8 v& f: t( \3 `IDS_RESDATA_INC_003091
; s% }8 \1 d! J% n8 J }. t! i# I- P1 f
WTYPE_STATIC WIDC_STATIC3 "" -842150451 16 152 108 172 0x2260000 0 0 0 0" e; y& z" k8 w6 y
{( b( S- y- U- ]6 b" I
// Title String- O; R. |$ {! J' l& V& @9 n
IDS_RESDATA_INC_003092
6 k3 A+ J; M' J2 b! m0 X }
* @! p( }: }- ]& k0 N9 ` {; ~7 Q! l8 W j7 O
// ToolTip1 K4 k0 m% O i9 h( a
IDS_RESDATA_INC_003093
' F: T: s& P0 ]- O }9 g4 j' N' p! S' J9 F$ H
WTYPE_STATIC WIDC_STATIC4 "" -842150451 16 176 104 196 0x2260000 0 0 0 0 _$ v' R9 Q- U) j
{
8 n& m+ }9 u7 W( Y8 D8 y2 P' u // Title String
; O2 Y7 W, `7 F# @5 A# J) }' NIDS_RESDATA_INC_003094( K, d7 O [+ R/ A
}" A& Q h( b5 b
{
2 Q3 f) F$ q; }$ h$ B2 x // ToolTip8 z# M2 @5 i% R4 k! H! C, ~
IDS_RESDATA_INC_003095) N% X8 M- M2 r
}
6 \! m: C, Q0 e1 V1 n7 ?# L WTYPE_STATIC WIDC_STATIC5 "" -842150451 16 200 100 220 0x2260000 0 0 0 0$ a5 W' b, A' Y1 F% a
{7 w! Z r7 L* ?1 I
// Title String
2 l% M0 b8 x0 \; B. m* Z7 iIDS_RESDATA_INC_003096
8 r* }$ N7 z& g8 Q }& K8 K7 `: R5 j# U5 q
{
5 C' \7 i! s8 H1 L1 f k // ToolTip
: R7 i' B3 K+ d+ }' IIDS_RESDATA_INC_003097
) H/ l# J% W- X2 ^! D/ Z }
, Q5 }* w$ P6 t: Y5 ~8 I WTYPE_STATIC WIDC_STATIC6 "" 0 16 128 104 148 0x2260000 0 0 0 0
, F6 W6 u1 e2 e1 c; U$ o {" Q3 e; ?: g( ]7 ]8 s; k7 L/ U
// Title String. d' q; d7 V) C' u: V
IDS_RESDATA_INC_003098& E+ R2 T2 ]" N* z8 X- d0 _
}0 p6 [* ]6 X; |2 s: o# }4 S
{
" h9 m$ u g T // ToolTip4 v2 E; ~0 l7 b' X' i: W
IDS_RESDATA_INC_003099
. R7 b5 g" V* Q$ b }5 q% c5 D0 b2 `5 M1 M: F- x# Y; y5 D
WTYPE_STATIC WIDC_STATIC7 "" 0 11 76 281 92 0x2220000 0 0 0 0
- n" B ~$ I: k- {$ i {
/ a8 B& w" n9 s2 ]9 x J1 k // Title String' J k6 P& j3 e4 C) \: C
IDS_RESDATA_INC_005076
; g! Q3 [% F" C, E- B2 G0 k }
$ |$ I6 }5 i1 m# j {1 l5 C7 U/ e9 ~) J8 a/ ~5 F
// ToolTip
, |7 n, `: z& q$ D- nIDS_RESDATA_INC_0050774 d4 p: d9 z( Z1 W& g4 k
}: y- D5 h' J2 F) I7 }
WTYPE_STATIC WIDC_STATIC8 "" 0 11 97 281 113 0x2220000 0 0 0 0
" H) U: m: E0 t) W {/ o1 l( \& L l; w& c) r$ s
// Title String
/ P( K t$ D* E" ]% {" rIDS_RESDATA_INC_005078
1 X2 q7 q; q3 C) ^5 d3 Q }* m" t8 g+ o$ S+ P( \
{% L" M' g `# K
// ToolTip
9 O! l- f" O2 u9 d+ D, yIDS_RESDATA_INC_005079
+ V0 E' ~2 [2 W% O, [0 U: [! V6 Y! r }
* R1 ?3 \! N \* J WTYPE_STATIC WIDC_2ND_PASSWORD "" 0 16 224 148 244 0x2220000 0 0 0 08 M! V. S4 E$ @) O$ ]3 D
{# J0 {& G2 m; e$ p6 A5 y
// Title String6 p: J; F8 o( W- a6 V8 ?* ~% n
IDS_RESDATA_INC_0068748 a* A& J7 A* i' U1 W& t: i
}/ q. K& c) l: [
{
# k! d. ?6 i: w. i8 y' Z" { // ToolTip1 L7 [7 O( N. A3 f% g( f# v+ \4 {
IDS_RESDATA_INC_0068759 W, K; S) Q6 }8 j8 B, Z
}
/ v; Q! x# F' x2 |6 z, l WTYPE_EDITCTRL WIDC_EDIT_2ND_PASSWORD "WndEditTile00.tga" 1 172 224 268 244 0x20000 0 0 0 0( G+ L4 y" z$ G5 Z7 X/ D) C
{
! P8 Y% e C' u2 c4 R) R // Title String: C# t% {7 c# V4 \' `; v
IDS_RESDATA_INC_0068781 i/ ]( ~9 i# i) |4 L! {- ^
}" f. r. b% }2 ~, v8 T" H L1 ?$ \
{
+ f; H1 V: E$ X2 b1 o // ToolTip. M; g5 E: i3 [$ F
IDS_RESDATA_INC_006879
; Z0 b$ p$ C8 t. h& A }
& N2 a% {+ ^6 c l6 w$ c WTYPE_EDITCTRL WIDC_EDIT_2ND_PASSWORD_CONFIRM "WndEditTile00.tga" 1 172 248 268 268 0x20000 0 0 0 0
! T- I4 _" x, w# n* ?& B {# X J" `0 A; c: T9 Y- H% S5 h
// Title String- K1 E& U" x9 ^5 ^
IDS_RESDATA_INC_006880
& X6 o9 J/ a1 m' T, G }
9 d6 R) f, W* }" c9 i/ Q {/ s7 H( `. |" g
// ToolTip# d, G5 S4 S) c. n( L; F
IDS_RESDATA_INC_006881
3 G+ k5 l+ l. F! S0 K; H7 u }
! U4 r5 z* @, u, N WTYPE_STATIC WIDC_STATIC_2ND_PASSWORD_TEXT "" 0 16 272 332 292 0x2220000 0 0 0 01 K7 a8 S4 v' Q( U
{
/ v! ?; h& n- N {; P6 c- ^1 m // Title String
& M; L! g0 |6 c5 L3 DIDS_RESDATA_INC_0069007 @8 z. U3 T% n+ g$ q
}0 M+ |- u+ l* b5 b
{
- z7 T) t; o% Y5 Q. @7 m4 i // ToolTip3 w- a( ~( i; P
IDS_RESDATA_INC_006901
! M0 l, L3 M. i. X/ t J/ e4 ]! e }, @3 S$ P J$ E* O) r. M3 b
WTYPE_STATIC WIDC_2ND_PASSWORD_CONFIRM "" 0 16 248 148 268 0x2220000 0 0 0 0: J9 p6 q% w2 [' p# V, `
{
/ Q2 K% O; f- b; j8 a // Title String
3 ~/ I3 O" O% A/ H/ K0 O* NIDS_RESDATA_INC_006904+ D! S. G) {' u4 s
}
( R7 o0 ^0 F8 m/ Y! ~ {
- G1 I2 Y1 q* l8 i, Q$ p9 f // ToolTip( P6 A$ L0 e, @% z g& v' Y
IDS_RESDATA_INC_006905
, `# o/ e2 {( Z9 s* B; l+ l } w1 `' I' ]3 n7 _* U' n3 q. [. F
WTYPE_COMBOBOX WIDC_COMBOBOX1 "WndEditTile00.tga" 1 118 80 286 102 0x20000 0 0 0 0
" M2 x( |6 \& N1 m {% Y6 L: L- @) z3 H! `/ v
// Title String3 J8 j# U/ H* ? f$ R( a$ r
IDS_RESDATA_INC_007134# M2 L( [2 `" N; ]. Q9 z
}2 |' D: X/ U& k! ^" B- D4 G
{# g! q, f2 `0 A+ ^+ z5 b: H! f' N: S
// ToolTip7 R% V( X2 U: D; h1 G6 q% s
IDS_RESDATA_INC_007135% J5 m7 y; Q* H: A
}
T7 I) b( f; C/ H j WTYPE_STATIC WIDC_STATIC12 "" 0 18 82 114 98 0x2220000 0 0 0 0* z4 l; Q0 _; R i( X* y+ Q7 D
{
( Q7 N, O5 {( e // Title String
2 e+ y8 I0 D/ Q$ {2 Z' G) J: eIDS_RESDATA_INC_007136
) O# o) A7 O& }3 { R- c2 | }
/ V1 m5 ~ N' A( I9 n {
) Q( J9 s6 d5 Q2 b7 @ // ToolTip8 C- b! R' a: s6 y3 U: |
IDS_RESDATA_INC_007137
& M* ?& P- U( g t }5 \) B. m3 Z) r1 k! w4 {) q
+ N" B0 q2 h/ L6 I
}$ R: o# b: M- }$ m4 a/ B' V5 i( U M
所以红色的!: b- f1 x3 a% |- q. h8 J+ n+ r5 O
0 {# e' N; H5 J
这里还tblSkillPoint的条目:9 j3 V+ [" P4 w, L# d( T$ O
' Z+ ~" B, W- }1 @0 f: ~$ A代码:
2 N' M. |. z2 g If (@im_nJob = 1)
1 {# ~. z; A) c- r& W, { Begin/ J5 G5 r) {" V1 Q
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 9, 0, 3)
4 V$ b6 f0 R2 o" O, `3 E INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 4, 0, 4)3 J; N! |" @) E& a$ l, s
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 10, 0, 5)6 V; _! f* p+ A, D- i- X! M) V+ ]2 k
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 5, 0, 6)
- S& |( u/ b. \8 ^: |" N$ k INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 112, 0, 7)8 o$ ^: v$ V) G1 }
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 13, 0, 8)
9 [* _' W) _% G+ Z INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 111, 0, 9)# ~7 Z T( [3 ?' N' [0 u- T
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 6, 0, 10)
5 ~1 s1 O+ q9 R n INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 108, 0, 11)' u1 t! u+ D4 n2 }8 V6 U2 O
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 14, 0, 12)8 J1 H! ]6 M+ \9 O U+ E' Y; \
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 109, 0, 13)
* v- `3 r# K$ Z7 F. | INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 7, 0, 14)* U* }$ u. e% Y4 [
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 12, 0, 15); f0 @7 z- w; s* q% [
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 11, 0, 16)
' n3 Y! z8 J A" x INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 8, 0, 17)
K) F, }2 n7 m( r/ G x2 i) C& e end
( ~, H% I$ X+ z6 J If (@im_nJob = 2)0 g3 h: t1 `4 n" u8 W/ S# o
Begin
# D" P/ v9 q& y5 U6 [ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 197, 0, 3)6 v8 ^- p% U. R, u6 J7 u- q
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 194, 0, 4) ` a& D" w& o( O$ D/ Q7 W/ m$ P) n
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 206, 0, 5)
' ]- K) H ?1 \# x2 F- g INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 195, 0, 6)
4 Z9 m; f5 |- h! \5 p INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 191, 0, 7). l! j2 ^ F0 T' G* {! m8 F
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 192, 0, 8)
1 v8 e* O: m* V" N INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 198, 0, 9)
1 ^! M+ v, A# m/ ^) ~+ q INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 193, 0, 10)- Z7 h! N! |% v
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 201, 0, 11)
X5 j+ m4 l' J( V1 [ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 203, 0, 12)
% R3 K0 Q( [1 `4 C) j' R INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 196, 0, 13)1 v2 u0 l, ~$ x w5 @ U, u
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 204, 0, 14)
5 A9 I5 T+ a2 V. ~ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 202, 0, 15)
% @- J3 R# b4 X$ d INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 199, 0, 16)
, p; h# }$ c2 c+ F INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 205, 0, 17)
+ `, M$ H d; o6 V- c INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 200, 0, 18); E; q/ \8 Y% L& k4 C
end
6 l* @& u' b: [, r6 G- K1 M If (@im_nJob = 3)
' M( s7 p4 C% A3 L0 H1 d Begin
( D; o$ v2 }% V5 C) I. c INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 44, 0, 3)% R1 u7 `! s `+ a7 x9 y/ U
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 46, 0, 4)
+ L6 ~* x1 @. f h4 B INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 52, 0, 5); v( d# f/ g0 s% L# } t3 ^4 H
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 45, 0, 6)* E) J6 N4 v$ W) j) L% j
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 114, 0, 7)
) i0 Y9 J- }+ f* T* x- n7 R INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 49, 0, 8)
$ s6 i/ y h3 c2 c INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 104, 0, 9)- E$ `+ ^2 Y l4 P |; E' L) y
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 20, 0, 10); b: M# J( i$ ^! o% d+ g5 @9 ~
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 53, 0, 11)
) j, t) h& ]4 ]" C INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 51, 0, 12) G* K2 H, _ I
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 113, 0, 13)
+ ~% n7 j6 V$ V G t INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 115, 0, 14); S2 M" v t D j d# b
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 105, 0, 15)- O# z. U6 J3 y# K3 K% F& Q
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 48, 0, 16) n+ Z) }+ c% h C
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 116, 0, 17). Z5 }. O2 F, g. q
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 117, 0, 18)
+ p0 W1 u! h; k! U1 F+ U4 L INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 50, 0, 19)2 d+ _* |3 i, F. i" {4 X
end
3 H$ k7 f3 n2 | If (@im_nJob = 4)
2 [; w" d$ \3 s' {% M Begin
' u. a* }( p7 W) K9 ]1 F INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 121, 0, 3)$ |$ Z8 K: \) c8 [5 _( s# L2 V
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 120, 0, 4)! `5 U9 g$ d6 A5 G' v/ R
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 119, 0, 5)% T7 G2 |* q$ O$ t5 L: ~8 E
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 64, 0, 6)1 i- E& n; [1 D1 I7 E3 h' W
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 118, 0, 7)
5 X8 k, N5 G" ?/ M. m; C- J( S INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 69, 0, 8)4 C9 ^3 q) B- v% i& A3 x
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 36, 0, 9)
7 l# z2 M2 s8 u6 Z# | INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 32, 0, 10)
! z: u/ R' M) W7 g INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 70, 0, 11)
& |4 x! e+ m9 L. [& E7 D4 x INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 65, 0, 12) t3 ?" U3 A/ u8 v7 Q" U
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 34, 0, 13)7 Y+ |) j1 f1 z+ v: S3 X- L' I- w
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 107, 0, 14)
/ L/ Z1 Q+ K2 @! l: b9 w% y INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 37, 0, 15)
/ v% R$ u0 a. U2 E7 _ ] INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 35, 0, 16)
6 [1 y: t; s! [( v1 H; ^ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 31, 0, 17)
0 L# i" f# k. W+ X INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 30, 0, 18)
$ K* Q, N5 t- R2 C- i3 ]- h( M INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 33, 0, 19): J* W7 t7 y9 S# x3 m# J m/ ]
end
0 k5 N% R2 x" ~只需插入在此插入; n: U# G" v8 ]: ]5 x
代码:
$ R, Q3 R/ P" y8 W2 o INSERT BANK_EXT_TBL
: Z; I$ t8 P# T4 K ( / ?0 w- b0 g, _! ]1 b
m_idPlayer,
+ R4 D/ N7 }" x! X serverindex,& I/ e- z; |* I4 I* S
m_extBank,
* A4 A) \3 c$ a; U) k m_BankPiercing" v3 B7 l9 Z, `5 @1 f1 n3 O
)
8 g8 h L8 G% d- K' s9 [. G# n VALUES 1 c" V" S, S1 G( f3 f* ~ A8 y
(
/ v y/ g% ^2 d0 L2 b* Y9 [% M @om_idPlayer,
% E' k1 Y- v% N @iserverindex,& a' x$ E' Z* g Z
''$'',''$''
0 A8 J) B9 N' ^; a4 l# \8 u# j/ ] )
; f! g" ~% }( ~5 d" K( Q
0 B7 p8 K$ [6 \) ^- g2 r5 P7 c+ S% z0 b1 C, W4 G' q7 E+ P, C
#define IDS_RESDATA_INC_007134 28816
7 Y0 {3 }& c" h) m: s( C
m( X1 U7 E) \3 A! Z2 m0 j
2 l% N, p" z% K& _* E0 |/ z DBQryCharacter( szQuery, "I1", 0, g_appInfo.dwSys, lpDbOverlappedPlus->AccountInfo.szAccount, lpDbOverlappedPlus->AccountInfo.szPlayer, nSlot, dwWorldID,+ t. q F2 L; @7 a7 v
dwIndex, vPos.x, vPos.y, vPos.z, '\0', nSkinSet, nHairMesh, dwHairColor, nHeadMesh, nSex
( L, q" h0 Z4 v3 Q4 Q+ x$ k#ifdef __NEW_JOB_SYS4 k" n2 u8 }" A" V
, 0.0f, 0, 0.0f,
8 p: }. U- T( T+ V& ] 0, 0, 0, 0, 0,
9 f4 S9 } L* n nJob
* G& l$ o7 @: L& e! ?7 A9 v#endif
& E I. `7 I6 H3 A
- U) ]6 {& R2 m* t9 t0 T( |
7 B* I1 C! j, L3 R( w0 c+ [2 d |
|