|
|
在这里,我向你解释如何在源选择安装到创建工作中的字符。* E* }" d8 I+ V0 ?0 Z! K
../NEUZ/Versioncommon.h' M4 [' D# M# M: ]5 V; B: }
) u5 o% h- E0 q( \* S+ j在上范围进这里只是这一个:
9 U7 Z3 @* h1 m1 ?9 N2 |7 i; R代码:/ n4 k2 s0 G1 l( c/ `. J) C
2 K* l7 {$ p" F) V9 t% j+ E2 }& {1 B D
#define __JOB_CREATE_CHAR
6 _( I: @. X& ^../_Interface/WndTitle.cpp# M" t; b1 H5 K* @; C- W$ |
% f1 h7 a, y, M2 q& q f, W/ w% n在这里你进入功能9 O0 R6 S; D* Z) S, I9 @8 z* U- Q0 h$ B
代码:
1 \0 ?3 X$ h4 j* ]7 h: a. E
( e1 y L \% l3 l8 ~. ]void CWndCreateChar::OnInitialUpdate()) R# D% P8 i! _% _) p
并有助于' f7 t. ~2 A; `- ~
代码:) v3 o- x7 l, S3 w) `* o/ z* G
CWndNeuz::OnInitialUpdate();
/ g* P! v N( @+ e' P这样的代码:
' t9 c3 N) N0 T. A5 M- h: F7 D代码:; N: D7 j2 F q* b
#ifdef __JOB_CREATE_CHAR
2 f' [$ [* u' V/ J4 ~% M, @ m_Player.m_byJob = JOB_MERCENARY;
* C& C# F- L! V' g CWndComboBox* pWndJobBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );) `6 M# w, V& {/ g7 R$ H
pWndJobBox->AddString("Mercenary");//Edit by yannickmama' `+ A9 ~- ]7 u# J1 G
pWndJobBox->AddString("Acrobat");$ e e& I+ y7 F6 f3 n x
pWndJobBox->AddString("Assist");
/ `0 P- `& d& s/ H: Q% j0 z pWndJobBox->AddString("Magician");
4 v7 [2 {1 e" S2 ? pWndJobBox->AddWndStyle( EBS_READONLY );, P: Z9 \7 ]8 W* _3 d ^, p% z
pWndJobBox->SetCurSel( 0 );
6 K6 G* }. Q8 A! K" m3 N#endif //__JOB_CREATE_CHAR# V3 x* i. Y4 X0 D6 @5 d
在同一文件中,我们跳到这个功能
' p- d/ @, C- `& F! d代码:
; @+ G0 H4 h) pBOOL CWndCreateChar::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )5 p* T9 _2 z! o
并查找这一行:
! \) O' Z4 @7 H; n( E代码:; p5 c8 N7 `" D0 J, O3 z- z
case WIDC_OK: // Create3 z. W3 z: \9 s& D+ ~4 q
{0 X8 X5 v$ R/ g0 @8 Y6 V
下面我们就这一个:5 r1 q# t3 {- T+ m' u
代码:
0 ~ p! v [! x2 f+ Z1 @3 L5 S9 l* f; m
#ifdef __JOB_CREATE_CHAR( x, c H! t3 ]0 I# j, V# [
CWndComboBox* pWndJobBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );" T7 i2 Q5 P) h& c
assert( pWndJobBox );
! c& O) J* [. `; g
6 l r. w; @- K2 \& C if( pWndJobBox->GetCurSel() == -1 )
7 U6 P; C( `2 z9 h; j {& v8 X) c6 a& y/ a! e2 Q* w
g_WndMng.OpenMessageBox( "Bitte w?hlen Sie einen Job" );
' ~2 B3 T! f; t Z- R return TRUE;3 k7 O% ~% S7 I- g6 U
}: G% l2 d7 @4 V0 ?! K! c
. l8 [( J' b% G6 r
switch( pWndJobBox->GetCurSel() )( L5 @5 w7 I4 z* }' Z
{/ T" M- {9 e) e7 j! g
case 0:5 {( r$ D3 R6 k1 F1 J& F; g$ u/ R
m_Player.m_byJob = JOB_MERCENARY;+ ^ ]7 ?! }- E
break;- S$ V) T! g4 s5 c" ?8 F: |5 {
case 1:
t3 M; {8 F% ^: Z% m* p m_Player.m_byJob = JOB_ACROBAT;
% z' I) ], L! F4 p [) \! a break;
! h0 G2 {' s. C case 2:
3 _8 P+ v5 U" q7 N& x5 u: q m_Player.m_byJob = JOB_ASSIST;, t/ Y$ d( x& F$ _! e) ^/ A& D
break;/ K" ]6 ~4 Y+ C- E; A
case 3:
/ o. ?; R: v. Y7 {# u2 L+ h; q m_Player.m_byJob = JOB_MAGICIAN;8 k4 Z" c) {9 Y, O
break;7 \1 K$ `( r; p# x& _
default:5 P) ]' R5 J* e
m_Player.m_byJob = JOB_MERCENARY;
; A' s1 Y+ o1 l; R2 B break;
; p# J/ u8 T) e* W1 | }4 Z6 W, W% s9 i; k, ?- ?5 _/ q
#endif //__JOB_CREATE_CHAR4 H, o" I$ f+ f9 f* | Y3 y( Q1 c
# R4 t# Z9 K8 Q" k; W. H& h2 x) v../databaseserver/versioncommon.h
P4 f+ [3 S( h( P! n+ ?% _3 O) b! L8 l" I" Y9 Y; ?. Q
在这里,我们这一个以上的地方进行5 u! f* m. u! U: T0 g
代码:
" r+ w1 O7 i9 W1 m. T7 m k" |; P0 l
7 m9 m# q7 A6 v. X( G/ c#define __JOB_CREATE_CHAR: I0 h3 k) c0 K/ d- S; [ S3 u4 V
../_Database/DbManager.cpp
8 t: Q1 f7 ]/ e3 c3 |. D8 L: T
, T9 A$ Q, A) R在那里,我们去的功能- r/ P0 l; f) _
代码:0 c$ N2 X/ Q/ @1 Z: u# `- i
4 O1 {) `: \( T$ ?+ W; Qvoid CDbManager::CreatePlayer( CQuery *qry, LPDB_OVERLAPPED_PLUS lpDbOverlappedPlus ): D1 B! r/ w+ }1 [+ k4 _. E
并搜索* ]% R1 X+ L4 R. Q! O9 w7 g% Z. ^
代码:9 W/ U2 Z; @ _" N
pd.data.nJob = 0;( t" x& N1 V @( Y0 F4 J" Z" o! L
并替换为
8 u9 `7 e, p1 |9 P6 l代码:
\" f0 D% h! n& _. j( Q/ \#ifdef __JOB_CREATE_CHAR
/ g$ Y6 X6 L4 X/ W/ ?" \& r: B pd.data.nJob = nJob;
! B6 i g `7 H/ v e#else //__JOB_CREATE_CHAR
/ S, S, }. R# r* N pd.data.nJob = 0;
H$ r7 ]1 R0 T' d9 t! B/ ^0 c#endif //__JOB_CREATE_CHAR
, l7 A7 y) {& E4 ~& D& V. I# D
% K D2 h% i, n这将永远有一个来源的东西。
- P# V' O9 Z j) x9 z( v. ?2 u' K8 j9 J
( s5 N8 B6 }; R q但我们现在必须修改数据库,所以我们走在存储过程CHARACTER_01_DBF CHARACTER_STR到数据库# R( y+ q, }+ Q2 y* C1 W+ |
和搜索5 S4 f8 `) A; C
代码:1 D2 [, H" z* U
1 j `# T& F& A+ s' u FROM BASE_VALUE_TBL. ^- \0 H2 `# {0 a0 {
WHERE g_nSex = @im_dwSex5 G; p3 \" U8 C$ \ U) G- }
并替换为: V* b) Z* {- o! o) Y* _
代码:
+ ]1 T" b3 z$ M" y FROM BASE_VALUE_TBL
]# T, q1 q- K7 t+ X WHERE g_nSex = @im_dwSex AND
, j" k3 p, Y4 p. f4 G8 q, B# W m_nJob = @im_nJob
+ A3 K) {4 J4 I9 [4 o当你做的工作,以便更积极的条目BASE_VALUE_TBL CHARACTER_01_DBF都可以。3 ~8 F! O1 J- L1 p
" Y @" }% H* g$ S- z4 q你必须确保它仅适合和njob g_nSex。始终创建两个g_nSex g_nSex=0和=1项。$ {! a/ w* a# z& e0 d
; G! q9 j/ O+ O* D5 h" k3 r6 ^你必须,但是,仍然在Character_STR条目(刚下Selectierung BASE_VALUE_TBL)为补充SKILLINFLUENCE_TBL。
. Y, Q% n4 {% ]! ]& w这是那里告诉服务器哪些技能你的角色可以skillen。
- A2 n0 {3 n, A! ^可惜我不再the'm懒得现在要做的话:'D
. U9 c \) c2 a2 Q* ?% H& _2 i0 Q5 x& U+ c
& l! S# c! I- _1 m! p$ F, `7 \( r
o; V, s9 Q! B' S* e; Y
, ]* v+ L7 I- x7 q5 p% X5 t1 P/ O7 q1 {. a
/ z' T9 g, Q z
% d) T, O2 J) Y3 `1 d% e g2 U$ T) [ T% O& C
Quote:9 f) e* I I- r
Originally Posted by Divine.
9 `5 O5 E2 |, H8 b- e+ K G7 @如果他发现我5 s2 O2 _3 ~. z: K; c
代码:+ @% h0 B/ o( q
pd.data.nJob = 0;5 o8 ~( p/ a/ \/ R
并非如此:2 Q- y- H1 [; {& l* e8 K3 T
所以,我只能看到
6 u* h2 E; h1 N' C2 m代码:( u& C } f* ~5 p+ s
// pd.nJob = 0;
3 u. D3 ~8 V+ {, }^^
) }4 D# M4 y* v& @( M/ _% _( r5 f$ sHier, das mussu finden:
3 h ?# f8 x" w: OQuote:
3 @3 u6 T- a" R0 a#ifdef __CREATE_JOB
- \, b/ a5 \7 I" n( ]3 \% Epd.data.nJob = nJob;
! s, M( o9 R: Q9 Y5 U& C. u#endif // __CREATE_JOB
4 h+ _0 k+ m; ]3 i1 y5 \$ z' `# |// pd.nJob = 0;5 P6 c1 Z x1 l( m
// pd.dwState = 0;
$ C3 ]7 _: R# E/ I: zpd.data.nLevel = 1;
; @4 r8 Y. k/ ypd.data.nSex = nSex;
, I- T6 ^) O4 J8 ]pd.data.nVer = 1;
9 t2 \, l. o3 Y8 T/ _6 d% H
. U! m8 L( X) T8 F+ V. {' A我仍然有一个问题(:8 h) a0 R6 e/ m. x$ S" q
下Character_STR DB- @; j; k) O1 x3 N
这样做在这里
* ?, Y; @! Y ^' `1 k. Q: V& \代码:
2 M' o$ r; S0 A" x. X FROM BASE_VALUE_TBL. h0 n7 e% t3 y' i4 G0 o4 F7 ^; ^
WHERE g_nSex = @im_dwSex
$ z- G2 z. P9 t- X2 g' L, h5 p在这里改变, Y p* v0 a! i! o" R& w/ {2 Y) [* J
代码:
) J, @# B" r5 b6 a& ^2 H! g FROM BASE_VALUE_TBL3 f: v* n4 v* w+ k2 c
WHERE g_nSex = @im_dwSex AND
' T! r0 q8 ]' R5 _) j: a8 o m_nJob3 E( d/ v; v! r9 D3 k9 }/ p( L4 H
由于还需要什么?.?: Z, s8 W: h& ^* [# n- c
在第一篇文章中,你可以阅读: `4 o6 b ~( r* H) z; ^3 _! H
代码:
+ D6 \; u" Z p* D- B4 |1 y* } FROM BASE_VALUE_TBL
' B% B, j1 Z2 C2 w5 f. B7 h. x WHERE g_nSex = @im_dwSex AND' J# B( Q% {; o; l) e/ G+ o' y; ^9 ~
m_nJob $ i' }4 Y) p! S, I
6 w% C: p4 Y" ?* R; _5 G2 g/ a1 Y" M+ p
窗口是什么我忘了
9 j1 E/ K! o1 K- j& K* q! u& A; i$ N
代码:# A$ M) C; J2 A) s9 m3 j( L' R. `" F
APP_CREATE_CHAR "WndTile08.tga" 1 544 368 0x2410000 26# u7 A$ w* m1 J* L/ i
{
5 A% M. F' g7 o// Title String% l1 y: p& r/ y" M5 v. F( p
IDS_RESDATA_INC_003064
8 _ `4 s) f, ~. ^* N}# J' z. ]" m c# i3 @4 V' h
{, ~1 j% A. o. W0 P# ^5 Z2 k" m: N* {5 W
// Help Key$ t8 S, N$ c2 F* _
IDS_RESDATA_INC_003065# o1 {- k1 H% X# z9 n
}+ y' ~. l# @) G8 K2 a/ e3 y5 c
{
, W' K, q' o8 d8 |2 v) I; [ WTYPE_BUTTON WIDC_OK "ButtOk.tga" -842150451 176 300 248 320 0x220000 0 0 0 0) \: ? D2 P8 k
{
6 L9 c5 K2 `; O2 U! l. K4 f // Title String
; Y0 J, }/ m) B6 ?+ JIDS_RESDATA_INC_003066& x6 W1 {3 r( I3 h5 g+ J* P, r
}4 z5 z' }" o" H1 d/ ~
{# ^* h1 k5 I2 a6 A1 R: u
// ToolTip: y3 i B2 f! e1 i; x& i
IDS_RESDATA_INC_003067
& ?9 A$ c4 d6 [: Q( e. f }
3 i8 ^! b @7 Q" c( S9 O WTYPE_BUTTON WIDC_CANCEL "ButtCancel.tga" -842150451 280 300 352 320 0x220000 0 0 0 03 d% g j- d! u; T
{! j N8 v" z% r; j! w
// Title String: \) s* c& M% ]2 g3 h, C
IDS_RESDATA_INC_003068
# U( z+ E& d# u( p* Q }
9 l5 [) o1 \+ t& O$ k* b6 I" S' H {
- F4 w) [% e! t; ?* r& I // ToolTip' O- h+ Y# {' n, Z: @3 B4 [# j4 M, ^
IDS_RESDATA_INC_0030698 j9 S$ `% d- @4 r( }
}
l) l( |, F: m WTYPE_BUTTON WIDC_MALE "ButtMale.bmp" -842150451 118 128 190 148 0x220000 0 0 0 0; t- m# X& k: h: {
{
* \# Q6 i$ g1 H4 S // Title String
) v( G4 }% ]& H& r4 t* [2 OIDS_RESDATA_INC_003070
. d- k( ] ` Y# C. v }: C2 m) Y$ T4 p6 ]& Z1 h
{
# O. G& Z1 ^& `6 i* v' j# f8 @( P // ToolTip8 Z3 |& j' \0 t# t; R5 P
IDS_RESDATA_INC_003071
5 `+ z: ~9 u0 b) \. T" z }
( w# }5 T4 b& W6 e WTYPE_BUTTON WIDC_FEMALE "ButtFemale.bmp" -842150451 194 128 266 148 0x220000 0 0 0 05 E/ M. \- ^, M6 S; A6 W' G$ d5 c6 p+ W" x
{/ Z: x2 ^3 k, z1 o' e5 R4 u5 c
// Title String9 y, G: N1 K- v! u
IDS_RESDATA_INC_003072
' o4 Y5 T. `! z8 `+ } }
. y4 _! V$ U; J3 E% M {' S, L6 y7 U) `8 m f8 s
// ToolTip
% x1 N! }& ~! TIDS_RESDATA_INC_003073
9 w/ h) \ W3 w0 B/ U, D }! R: r t" Z: H$ o
WTYPE_EDITCTRL WIDC_NAME "WndEditTile00.tga" 1 116 48 288 71 0x20000 0 0 0 03 w- ]; o: N5 K- }" j! P
{
0 f8 @. [5 k& }& R // Title String' F' [( v& M2 ~* C/ _+ g6 V% {
IDS_RESDATA_INC_003074
4 h& l- a$ M o( | }
% M- D! `# f2 \, q+ t7 _( w) R7 M {
1 H4 Q6 ?, i; e: g // ToolTip
# j3 k6 h2 F* ~0 n3 _ P- cIDS_RESDATA_INC_003075
/ e* y; H; |+ Z9 u! i6 @+ t }( W. r$ |7 Z8 ^9 Y8 V
WTYPE_BUTTON WIDC_HAIRSTYLE_LEFT "ButtLeft.bmp" -842150451 118 152 190 172 0x220000 0 0 0 0
7 [* G2 H4 U% v/ m {
s) f+ z5 L) d) q8 X5 r* o0 o // Title String
. V$ H6 @0 H+ V4 x. Y) I. @IDS_RESDATA_INC_003076
# E |; T3 y* M9 r+ [: ]3 r }
4 ?# n) i4 z8 {9 Y1 r {
I. n, \- T* e. X // ToolTip
, ^$ F) T9 H& t& @7 YIDS_RESDATA_INC_003077- }/ M6 a: w; I8 V+ q! w, V
}
/ G4 y$ m% J) M! F. R; b WTYPE_BUTTON WIDC_HAIRSTYLE_RIGHT "ButtRight.bmp" -842150451 194 152 266 172 0x220000 0 0 0 0
& b( q# B1 r. U9 ?0 h! }" W {
% s* j, z$ G! K& @6 W* o // Title String
7 J2 h* y9 `2 D% t8 s' t$ t. SIDS_RESDATA_INC_003078
- C" K7 M+ ^0 @: a$ |7 O }5 V0 a5 G9 c% e1 N# [5 L
{
0 G/ r5 p4 Y, ^( j% F // ToolTip
6 A+ _% A% Y! s5 c" IIDS_RESDATA_INC_003079: W/ o; W5 f2 M
}: P( b6 m/ M6 x! R& k; y
WTYPE_BUTTON WIDC_HAIRCOLOR_LEFT "ButtLeft.bmp" -842150451 118 176 190 196 0x220000 0 0 0 07 ^7 P+ k( ]/ K7 M- u4 _
{
! c. s4 M* B# z9 O // Title String
( C7 b1 t- z* P2 m% t! uIDS_RESDATA_INC_003080" t+ Z, V, x h) \! v! `" X8 a
}
7 W& ^$ h( R: V) G {
% _) U" }% \; @# B- E* p K // ToolTip) w" Z5 f( p: y1 b
IDS_RESDATA_INC_003081
6 S! o' k% X S }
3 B6 ~5 _3 }8 ]% I WTYPE_BUTTON WIDC_HAIRCOLOR_RIGHT "ButtRight.bmp" -842150451 194 176 266 196 0x220000 0 0 0 0
& z0 e. X6 U: {7 a {; s6 b6 d5 s' e% B5 N
// Title String
2 w' h: D- `, M7 lIDS_RESDATA_INC_003082+ l/ u9 w; n0 ~6 U- i- V n3 t
}5 h7 B0 J' r6 q0 _
{6 j) [* k2 ^" v( w/ @' _) Z
// ToolTip
9 w# q* ^9 d$ f% N9 [IDS_RESDATA_INC_003083: y! t t$ N/ `5 o
}1 D: ?& ]8 q \+ f
WTYPE_BUTTON WIDC_FACE_LEFT "ButtLeft.bmp" -842150451 118 200 190 220 0x220000 0 0 0 05 r" O+ H' _0 j3 ~8 s
{0 z* N: W, Y) p; X
// Title String s. b( r$ Z/ `3 v% y' v
IDS_RESDATA_INC_003084
l" _( A' G' j }
! \+ q5 @2 c6 X. [) Y K, } {
9 {+ k: t7 r. |0 j& P" _! q // ToolTip
8 y: w, ^. U8 }( K5 |5 }/ \& vIDS_RESDATA_INC_0030853 S$ y1 p) ]7 M9 ^4 h8 N7 q
}
+ R9 [" e& g1 M3 K' ^2 u# ~/ j WTYPE_BUTTON WIDC_FACE_RIGHT "ButtRight.bmp" -842150451 194 200 266 220 0x220000 0 0 0 0
7 ~1 Y3 t1 x+ c; }3 c# ~ {! _" Y2 s, B6 `; r) O. W& C% M
// Title String
1 V' E9 i6 E7 h; {) kIDS_RESDATA_INC_0030868 F4 R1 c7 W1 h
}% m. |; f$ o2 T" U N
{
1 g, j' Q$ ^) L- R' @6 }8 J' K // ToolTip
& P" t2 e8 t8 d1 J. uIDS_RESDATA_INC_003087
9 h/ b- m! M$ o- @4 S }
6 _7 v$ `! B4 U! z WTYPE_STATIC WIDC_STATIC1 "" -842150451 16 48 116 68 0x2260000 0 0 0 0
% |- \) L/ Y; B7 m {3 i7 F7 _' z( c! r) S
// Title String
8 l$ P3 w* f: N# i. q4 YIDS_RESDATA_INC_003088& {+ a0 _' M$ I0 H$ H
}
4 F4 y7 O0 |" T, n$ S& a* k {
4 A2 t8 N5 M! c Z; [ // ToolTip
6 _; r0 {* q& A3 O/ }& eIDS_RESDATA_INC_0030891 n; Q9 z1 k6 ~! c: d
}4 H1 k% h8 I: |# n
WTYPE_STATIC WIDC_STATIC2 "" -842150451 -232 136 -132 152 0x2260000 0 0 0 0
6 ~% w2 E) F# K! C2 ~: ? {
5 |/ r4 _, @% z7 |. R" F // Title String# G* M; C3 K6 ?+ O
IDS_RESDATA_INC_0030902 ^( w" m" X; Y4 a( ^& C
}/ V! [9 T: I! {
{8 B9 S/ _$ u" V+ u" F0 p l
// ToolTip T6 _7 V" a0 x4 }% N1 q
IDS_RESDATA_INC_003091/ i! {* B& s8 l
}
# t$ n7 p' t7 y7 ^2 }% j WTYPE_STATIC WIDC_STATIC3 "" -842150451 16 152 108 172 0x2260000 0 0 0 08 W& Y t J* m) }' a( K
{
5 ^9 o2 V! F h // Title String
1 k3 K) V" l2 EIDS_RESDATA_INC_0030926 f6 J2 M: }" N6 X# T: H
}
+ o G4 S4 l" `5 r { }! p4 r8 X3 A0 |7 L! z- z
// ToolTip
7 i3 k. J2 O/ ]9 P% K1 w& bIDS_RESDATA_INC_003093
: P, I: P! z; @0 G$ Z }
* Y% {( G( `- W- Z WTYPE_STATIC WIDC_STATIC4 "" -842150451 16 176 104 196 0x2260000 0 0 0 0, i+ E% \5 y3 w. w0 W, K0 r
{
" H, c" H3 A/ h# V/ f // Title String
/ v+ k( b2 a" j+ _! j7 N9 _# q' _IDS_RESDATA_INC_003094+ a' j4 E0 L3 A: f) ^
}% r0 T6 x+ u! K/ W
{
2 Y2 V3 k6 F1 j4 I- a // ToolTip
2 i, e m5 u: k" d0 @3 D9 n" lIDS_RESDATA_INC_003095' S& v- c. K* @. x! l/ n
}
! U! g* u+ t: r2 {/ ] WTYPE_STATIC WIDC_STATIC5 "" -842150451 16 200 100 220 0x2260000 0 0 0 0
, M* Q) D8 b e# ` {
9 \+ p, z% g" M1 {& A) \3 Z // Title String
, s; S3 T! D: g, o0 ^4 [2 j. c- iIDS_RESDATA_INC_0030967 s _ m, h' I! Z- P! o
}
2 `$ u: P- U1 [5 g" r. A {
" v% G- h+ \, N& y1 G& K! X, X2 x // ToolTip# C2 z+ H/ A" v1 R6 V# t: z# j. o& V9 e
IDS_RESDATA_INC_003097- ^- |: c6 ^: _0 K+ v
}
8 ^* T9 t3 ^8 e: `# R7 I; ? WTYPE_STATIC WIDC_STATIC6 "" 0 16 128 104 148 0x2260000 0 0 0 0
5 A! {5 r$ c8 @ {. e( W8 F! [- K+ `- ^# y
// Title String- I' j- ~6 u! |7 r# P( _
IDS_RESDATA_INC_0030985 S0 e; D) W. h. q& }
}4 R% k. L8 ~- Q4 \+ `
{- |4 ]- s) u' g1 M6 O' [
// ToolTip: |+ I: m3 ]$ ?' K& O& Z: G, ^0 e
IDS_RESDATA_INC_003099
7 |9 _; p, i, k }
. V: g5 N U. S$ A" G4 H& `! n) P WTYPE_STATIC WIDC_STATIC7 "" 0 11 76 281 92 0x2220000 0 0 0 0
1 N$ X3 ^: ]1 c8 T2 o4 X {
7 c! o8 w' G7 _2 [" z! ]6 @ // Title String
8 o+ g2 R" D( [* w( K; g6 W; rIDS_RESDATA_INC_005076
4 o, _+ M/ y0 `! N4 l }: [' g' _- ~4 M7 B' [! r
{6 n1 f. S8 f; l! Y" S$ ]+ X
// ToolTip
$ {3 o& P. F9 {6 Y _IDS_RESDATA_INC_005077
! a- b9 Q9 p2 M }
! t/ t( A% \( M- a, d( Z WTYPE_STATIC WIDC_STATIC8 "" 0 11 97 281 113 0x2220000 0 0 0 09 p2 g; s9 N5 Z$ B s8 d" \
{
8 n2 z, \3 P6 Y0 `2 o; O/ g) a; t // Title String
5 m% Z6 ?& w9 e9 f; a! ?; H, kIDS_RESDATA_INC_005078" f0 [0 X1 S. V) S6 w s. r
}
h$ H* s% l3 n5 U | {4 t" r+ V$ K# B/ z# W' B! `( m
// ToolTip
3 `0 q; t p! i8 OIDS_RESDATA_INC_005079
( [" P B2 j: X$ Q2 S7 [- Y }
& Y4 n, H3 h% j* K5 T2 T& c WTYPE_STATIC WIDC_2ND_PASSWORD "" 0 16 224 148 244 0x2220000 0 0 0 0 x% t5 ]8 F2 J6 r- z
{
% S5 G. e2 R" Y6 C3 e( x& D" j" g // Title String2 J* b3 c; i5 T) e4 [) E* i, D. N3 l
IDS_RESDATA_INC_006874
n' {" u. W3 b- { }
I) ]" o. W' l5 T2 Z2 Q. Y {
6 @. Y" ^. d+ ^- D. n( s // ToolTip
1 D/ T0 V* P% \( z3 S6 P3 ~IDS_RESDATA_INC_006875! _5 B* c4 e+ [6 s" v+ i
}
) h3 K7 u: ~5 g$ [: y4 j9 w WTYPE_EDITCTRL WIDC_EDIT_2ND_PASSWORD "WndEditTile00.tga" 1 172 224 268 244 0x20000 0 0 0 0% k4 p' o6 S- V% S
{
6 `. F# [! N0 \' h+ V4 f& z y, ^8 `6 L // Title String( |* z3 g0 N' M9 _# V5 F$ |5 G
IDS_RESDATA_INC_006878
7 }+ q5 @+ d- f1 N8 [: ~2 j }8 t3 A8 G% E3 L/ a
{2 G+ Z- Y5 H) g
// ToolTip
( N0 o( K- v2 v3 C1 e: O! q/ AIDS_RESDATA_INC_006879
7 H$ p5 G1 l: p4 ]% @ }
; T: ]/ E' B0 n4 E WTYPE_EDITCTRL WIDC_EDIT_2ND_PASSWORD_CONFIRM "WndEditTile00.tga" 1 172 248 268 268 0x20000 0 0 0 0
3 V( ?2 d( o+ t {0 f V/ U, O0 _8 F, C0 }
// Title String
8 O6 U9 c3 d9 OIDS_RESDATA_INC_006880% T% Q; s" ^. Z7 N$ G- r; q0 W
}7 `2 j/ y8 h7 p7 r4 s
{7 C; v# t6 Z) j+ ~
// ToolTip
4 D- D a" A1 H! e0 sIDS_RESDATA_INC_006881
3 [1 m4 Z1 H" |( u9 ] }
+ e: T; W6 r. ^1 L( U4 }" n WTYPE_STATIC WIDC_STATIC_2ND_PASSWORD_TEXT "" 0 16 272 332 292 0x2220000 0 0 0 0/ @" D' ~" o, C w% Q/ ~; v- Y
{
3 ?: ?2 p. j5 E2 u0 W // Title String6 W8 c1 `0 m- ?0 y5 Y1 A0 K+ {
IDS_RESDATA_INC_006900) N& N; ?$ [5 L" p7 I' K
}
! d- C, W# @3 [2 E* d! ], K O0 d! A {: T0 A9 M( V. W( s! V2 B" o- d/ _
// ToolTip; @/ Y* ?, m# O+ e4 T* c, x4 S
IDS_RESDATA_INC_0069018 E) P' h( n/ ^9 q" T) w) U
}5 w8 D) U! @0 B! P5 \" {
WTYPE_STATIC WIDC_2ND_PASSWORD_CONFIRM "" 0 16 248 148 268 0x2220000 0 0 0 0
1 \& r+ E) d- W4 A, w {7 P4 E+ c" }7 X! Z
// Title String
1 J7 G/ u* T4 Q* L. eIDS_RESDATA_INC_006904; v$ X* E6 Q7 w8 w h7 K% r# v
}
]6 x1 |9 u$ f7 { {; k P! y! K7 Y2 l6 E6 y8 w
// ToolTip4 s/ E% Z F4 V
IDS_RESDATA_INC_0069052 `* a) G& P6 I) j- N
}
3 @) N" v0 y' q9 a# b. ` I3 E% n c WTYPE_COMBOBOX WIDC_COMBOBOX1 "WndEditTile00.tga" 1 118 80 286 102 0x20000 0 0 0 0
3 h9 x7 ?! u; I4 b- Z& U {1 V7 {& N+ q) T
// Title String& I! O5 Y+ h+ q* @1 t3 |
IDS_RESDATA_INC_0071340 W( j9 ^) W6 S4 f% j8 H; ?2 }4 y
}
R, f- c+ H$ r0 A7 S {" D o( T1 u3 y1 t
// ToolTip
& o T9 P) `* v- BIDS_RESDATA_INC_007135
' _3 [6 x$ m8 n }/ C! i3 q$ d. C- t }
WTYPE_STATIC WIDC_STATIC12 "" 0 18 82 114 98 0x2220000 0 0 0 0' g% G. d0 L* P) X# P
{
; G( R& f5 }7 G s; i // Title String
& Q3 n( I* [' a: KIDS_RESDATA_INC_007136
7 e0 z. }- a! D5 z }6 `) ]* }" _+ F% ~* j* C+ p; E' p
{
- ~: m- `9 f4 C" g // ToolTip4 e# V+ t% Q4 Q: D1 ^1 Q
IDS_RESDATA_INC_0071377 K) [2 i; G! x2 ^. A, B
}1 M5 `; C% v, W. X
; k, Q) T8 B$ J}
' l& \1 \( x' }+ Y# _6 }所以红色的!
( T. K# D1 n, ^& j5 a. |) [% n3 D0 n, K# k1 ~. I% G
这里还tblSkillPoint的条目:
A$ D4 p+ a; O$ X" Z, n& w' U | U5 t+ X
代码:. P G1 N [& q8 P
If (@im_nJob = 1)) D, }' O0 R" x. Y( E* _$ t
Begin' j, q# R+ W( A9 _
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 9, 0, 3)' i" ~, | |" Y, e$ c
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 4, 0, 4)
9 h K/ _+ A3 F/ J2 p INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 10, 0, 5)5 I2 k! m: a- ?. L
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 5, 0, 6)' r' d! D1 e4 v; @( A
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 112, 0, 7)- q% c; s# `0 U( t
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 13, 0, 8)
$ x- f" d. y k5 n p) c INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 111, 0, 9)( F, Z0 m0 T' \% H C7 c) p
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 6, 0, 10)
: N/ G9 n1 Q7 F. H$ D, D7 r9 R8 X- j INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 108, 0, 11)
. Z U* u3 F' d) u; x3 s INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 14, 0, 12)
2 I2 u S! k& W7 P! L; ^ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 109, 0, 13)
8 d9 I2 F8 n' _ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 7, 0, 14)
$ x- W' x, r; c& } INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 12, 0, 15)
% q/ y$ V( K1 `* Y INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 11, 0, 16)
: W7 \8 \2 L) t$ v INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 8, 0, 17)3 z' A! y/ d# t9 s1 O
end( x" r' q( r2 s8 `3 `- k
If (@im_nJob = 2)
! j* w X) N" _& g7 e6 @3 } Begin
- @/ j, a7 @! R( ]' S. `1 ? INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 197, 0, 3)) T9 ?. T) b& `0 I Q+ {* X
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 194, 0, 4)' Y4 }/ Z7 |' ~+ R3 G
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 206, 0, 5)* o3 ?2 `' O! a6 C6 g
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 195, 0, 6)
% Y! J3 |% J. r8 @/ Y INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 191, 0, 7)
~# v# `. S& ?+ J7 t- d" e# G6 J INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 192, 0, 8)
' l0 [: {4 n U* p) D INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 198, 0, 9). H+ Z# Z! t# W. e$ M
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 193, 0, 10)
( @- {7 b! Y( U3 ]3 g5 O INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 201, 0, 11)1 B8 M6 @5 l0 ~0 Z a2 h. ?
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 203, 0, 12)/ J% C9 Y. h0 F
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 196, 0, 13): N% d) x1 E2 S$ d- I3 X+ P
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 204, 0, 14)) h: U7 N4 S* r1 ]0 H" G
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 202, 0, 15)/ A; o/ W+ v1 k6 j: j( N$ ]; c
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 199, 0, 16)
: L9 P, C ^9 V4 q5 a INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 205, 0, 17)
- H# [, @5 ^" N8 e/ D5 w INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 200, 0, 18)
0 @% G6 V& S3 Y+ d* C end
4 U" T; T: v5 _$ h If (@im_nJob = 3). w* I0 t/ t6 e ?
Begin5 G) T$ c- z& j. q/ Z9 `2 F0 ?" v
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 44, 0, 3)* d6 Q @& M; |1 i M; T
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 46, 0, 4)8 ?" d5 U' C' ^5 U W
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 52, 0, 5)
n% u/ N- T) Z3 Y$ X8 x INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 45, 0, 6)
* b( D( P' j7 e0 A8 a4 I) | INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 114, 0, 7)9 a, G* Q. h6 L. j2 `# }! C \( |
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 49, 0, 8). N; p; q0 }8 ]
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 104, 0, 9)% K/ t( j _- C( v+ h8 e, J
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 20, 0, 10)9 R" ]0 K& V _5 {5 L
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 53, 0, 11)5 j7 c' Y1 g1 h
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 51, 0, 12)
7 b. t1 }: ]) J5 A INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 113, 0, 13)
' }" _8 v; W2 [8 V# P: N' M INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 115, 0, 14)! ]5 [: ^6 d5 [2 H# }& \. G
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 105, 0, 15) Y* m: H6 Y6 X) u% V6 T, e6 n0 W
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 48, 0, 16)
" P Q9 b a2 z' B3 @' v+ g INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 116, 0, 17)+ y0 H" O0 n& f c# C. d
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 117, 0, 18)
0 c0 M+ ?# |* `3 o9 |1 r4 [ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 50, 0, 19)+ L: d. C) N, Z1 M) D) Y
end9 C5 k g& R* A1 {* _/ D
If (@im_nJob = 4)
5 Q+ n6 e. \1 } Begin; w7 q9 U: o! T4 s4 a
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 121, 0, 3)
u* g' i& H* @ INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 120, 0, 4)! k- w d: o8 P4 K/ ]+ O' G1 n
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 119, 0, 5)
% m6 U% K- U, s- ^$ o) o' ?( G5 Q INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 64, 0, 6)
! e- R0 \9 F2 t INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 118, 0, 7)
. ^( @- e& m# t$ s3 z INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 69, 0, 8)3 { p% ~" ^6 A- @; _2 o
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 36, 0, 9)
3 r8 K$ _ \2 o8 N% B3 W0 ? INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 32, 0, 10)
7 Z2 M7 P+ L E& Q' k INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 70, 0, 11)" T; n% x9 I0 v/ E; a' I; f# }
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 65, 0, 12)# y+ y+ H" g% X
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 34, 0, 13)
: G8 l* d- s) G" k INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 107, 0, 14)
# X0 T4 a; x& H* E INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 37, 0, 15)- d! l: x4 m; E+ \5 `5 l4 _) }) I
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 35, 0, 16)4 ~# g$ u9 b) r
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 31, 0, 17)& ^1 t6 }7 z! G8 ~: _
INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 30, 0, 18)
. R, x! r7 }/ G9 i0 _8 B1 W8 t @- C INSERT INTO tblSkillPoint(serverindex, PlayerID, SkillID, SkillLv, SkillPosition) VALUES(@iserverindex, @om_idPlayer, 33, 0, 19)
; C$ @! H5 R7 V3 N end
5 m o# X% a+ f% a& T" k8 C只需插入在此插入1 Y" e7 {3 Q4 @8 D
代码:; P% F- ?. P2 u+ x- y# @
INSERT BANK_EXT_TBL' V1 H6 w3 y8 g- S
(
1 D- ]; X( K* l m_idPlayer,2 U7 N! S2 s% J* Y' I
serverindex,
5 p, t" s, i2 }+ k& o! e m_extBank,
$ V+ N. e4 }; T# _' E) f# F m_BankPiercing
# r# x. F: r+ \2 E8 h# h )
1 U6 S) Z- _' V+ @% w& ]8 ]; o VALUES
* @& E `; ?3 [5 i" D0 C# a& o6 R1 y (
9 n9 I; ~( T8 S1 _ @om_idPlayer," W% F3 o3 M+ B: |7 t: h9 x" v
@iserverindex,! u9 k4 S8 j. W( b
''$'',''$''3 I. m3 H0 k9 H( y0 ^ X8 ?
)
* p0 K% l$ @7 a$ j5 [
8 U5 i2 |/ F( c. l2 C: d
9 H1 h( l8 _1 s+ ^; Q#define IDS_RESDATA_INC_007134 28816; o1 L0 E) p& t+ @* [0 }
) q6 u! @( \ B1 i) o: z( J
7 T, U# ?* B6 @: J* A# s( d DBQryCharacter( szQuery, "I1", 0, g_appInfo.dwSys, lpDbOverlappedPlus->AccountInfo.szAccount, lpDbOverlappedPlus->AccountInfo.szPlayer, nSlot, dwWorldID,( B+ \, k/ b2 Q0 {! c+ A6 n
dwIndex, vPos.x, vPos.y, vPos.z, '\0', nSkinSet, nHairMesh, dwHairColor, nHeadMesh, nSex; \/ Y. L* f9 {0 {
#ifdef __NEW_JOB_SYS
% e4 F. S' U+ q$ J# ^! c , 0.0f, 0, 0.0f,* R6 z- u( N! E0 E: X* \ @5 D
0, 0, 0, 0, 0,/ n$ V! x: w9 W' }
nJob
" J" l$ Y/ V1 F \#endif) D5 A% r. ~: }$ P5 e) v. M7 k
- D# r0 x6 X# U/ D0 A7 r8 _
; J1 V! i( ?5 n! Z |
|