8 C* y) }* Y4 N9 G+ K5 V第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝! M, v6 a4 A. \$ @6 p/ D! c) |- J; a4 [7 O' l$ H
在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua* B$ ?* K! u" C$ x1 T/ i
0 u" b+ Q4 L( O; R/ d' K
$ @: ?( y, Q7 g% E! G2 h0 p- z$ N4 a
function PlayerEvent:OnLevelUp(nNewLevel) / v @/ r) | Y. D$ l9 n' n & d7 Z* O9 r1 I7 i JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel); % [) @, \2 c2 B9 s1 B) Y' d% ] x1 G
Kin:UpdateKinMemberInfo(me.dwKinId); 1 U1 P# l" @" {1 f9 x9 m. D" _; S% L# ] y$ Z1 ?) q& E
if nNewLevel == 10 then- Y* W6 t7 @2 {: j: r
# U2 b4 c3 Z" O: e# \
Mail:SendSystemMail({ # {0 r8 u) l+ }3 x ! [* i" o7 Z6 V; w- m To = me.dwID,( @- L7 i j/ x& \
. y* j- o5 l: f$ A( Y
Title = "真兒的饋贈", ' b) I8 ?% l9 _ 1 e1 J; I+ G% g Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。", * y2 V. M. v* E+ I; Q 9 ?8 j2 R, E' k4 ]5 L From = "真兒",+ |: ~! E% s8 w5 n1 B) z
8 b Q" C# l+ g3 Y tbAttach = {5 @) M% {( l) `: m+ q5 a' c
% r$ Q [/ Q( r4 w P9 D( n/ b
{"Gold", 100}, O8 j) a! b6 C# T9 \% f' b
0 n( o; Y$ f) A
}, ! U! r6 u' K0 u8 D2 A2 z. R " y' y/ l2 z1 b9 V+ e; e5 T' i) n })" g9 Q/ A# A4 l2 I3 X. k' X
4 c4 a; \! J; F' l G; [
end" d+ ]% U; _& p" d
- o: s9 X3 L* T if nNewLevel == GetMaxLevel() then4 T2 W2 Z @" s9 i. u7 m0 X
' n; M9 `! E: L2 @0 _& f
self:OnGetMaxLevel(me)9 u. ]0 |0 F# \3 |5 X8 z9 d$ W
! [. r0 s2 i( e: f* h end 3 c# d; _" x' [9 C: ]+ f9 S. D2 P2 a
根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容 . U7 Q3 U' K: {% K& L# M0 S5 n # _7 n. e, _$ n# w物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容3 }) @8 ^5 r4 K) [- D% t
Y L8 S3 N+ C. T# w& v2 _/ S; w4 Y4 w9 ~1 J
C++- [$ C0 G7 B: l6 j& _
; ]) c( B) ?# @. x# \
function PlayerEvent:OnLevelUp(nNewLevel)! c& ?: w* L$ Q) L
" Y7 Y6 d9 _( p% ?' N8 r# e$ h! B- S% z) @
JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel); 1 N v+ Y: o8 i5 H . ? _5 {# \. B3 I2 r- ?8 u/ M. ^ Kin:UpdateKinMemberInfo(me.dwKinId);) O: s; U# j! w
1 G" p8 e9 R0 y( Z A S5 e if nNewLevel == 10 then 3 u2 L: H* Z; r- M' L6 [+ z! V& W% U3 ~1 {, |& g- t
Mail:SendSystemMail({ : W0 F0 A6 G2 Y: L. A 4 w% b2 N4 V# f- W6 h) _8 t, C To = me.dwID, 2 _ b; E, s% {6 ?7 b 7 p* z1 }4 T0 t, `% ? Title = "测试服奖励", & r* u6 c3 U( U( C ` x6 R + } i8 B4 Q- O, J }* w Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.", 0 d/ o! [# v/ x: ]4 j. V: i- f) R; D; o7 `* K& A. B+ ?
From = "大屌萝莉",1 R; l4 b1 ^) e9 y, g
" h, x0 \9 {. P$ w9 G tbAttach = {, ?" \3 Z4 e, y: N
- V. n% V( ~6 C9 V ]" U6 z1 B
{"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1}, ' ?& l8 @ I7 E- k+ \* V" c ; l, y7 }+ A S* A }, 6 ]1 | ^( {& I: B+ t+ H. i* L. j1 f6 G4 }) f+ w
})3 o. {' ~% Y2 L O; y6 D
- `* f% i3 `3 K) z. x1 o; u j+ n
end! T- P! S. a; [6 E4 H
! y% n( W; e: X if nNewLevel == GetMaxLevel() then: \. J% j1 T @3 O# I
! a5 g( C+ f& G, L7 H+ Q
self:OnGetMaxLeve8 k$ \6 K3 f; f8 ]+ C
' i+ \' B1 n* S0 I) V2 A' m
我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马 . F) [# B' z6 s0 g- O # \: O- M \1 o9 _备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量 % i4 G) o i3 E* m8 Y 7 S2 z$ s- H- ` ]修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改! $ |) C) M/ F1 X0 t4 Q 9 G& `. A, c0 p/ T9 z! d . q# ]7 U) p3 w$ `: R( b第二种方法: 4 ` Q% m7 K5 [! I' T5 o9 g5 `4 s: u; Y9 f, b
( ?9 u% H2 }$ i6 g
当玩家创建完角色后就立即调整或直接放到背包中。! W, h3 D* k% `& c
( N6 m$ N- a+ P4 [. d( z
在/Server/ServerScript/Player找到PlayerEvent.lua中找到$ d6 X. R: l% B4 [3 L% w+ O
' i. X9 H7 K& D' h7 N% ?# }. |$ } ! w7 d b! E* wC++ ! j: l. c( u9 ~5 }* ^- W8 h J) b" N E( a) F8 l" _
function PlayerEvent:OnFirstLogin() 5 p+ O5 R$ `% G1 [ / y* e5 B/ Y9 M& ~ -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中 ( e2 w/ T0 p! x: S7 i; I0 T% w2 A+ E5 ]' w) z8 ?
Task:ForceAcceptTask(me, Task.nFirstTaskId); 5 T7 |7 A) C& w, i. b2 V2 g n7 w8 \& {' w7 x0 j F
-- 设置初始朝向( @! ~; k9 N1 r' ^( M& j
) F* ? O% X- B s- Q/ P2 Y6 G local nMapTemplateId = KPlayer.GetBirthPosition();' ]2 q* N- v5 ]! c
5 q( j2 s' K$ `4 I" c1 {2 C me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId); * B" p& E$ j7 I( `- n, b, d $ Z( u% g/ p8 J) N# Q --me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin); ' z. D4 U# v; X: M; b7 [& U% B3 m, ?4 H( [% e4 Y
OnHook:OnFirstLogin(me);# h! B. Z2 \/ W
8 M" Y7 i* O6 H" ] Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin") ; q- y! u- ^- I v' ~0 D, N: D" z4 z* j+ T. J+ D/ @+ C' t
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)3 y. Y9 A' f$ w% V6 S7 E