第一种方法:以邮件形式进行赠送
' I7 P" _3 |. B4 N' ~$ F7 ~7 y6 o2 {0 C
* M* `8 e/ _4 `% R% f: T# X7 h* q 第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝!
7 ?; o8 t; m9 |* ?" E) V
! [9 G+ ~5 b7 T8 _- r3 y5 K 在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua
8 `- A3 i5 b4 @' Y' j! m2 M! L* f $ g y D9 p. Q2 X: y7 U A
& D2 V& \1 A, q9 v8 d function PlayerEvent:OnLevelUp(nNewLevel)" K) \' h* m; a- Y- y5 d9 n( d1 g
. b A; U w; h9 O
JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);$ t) I7 [3 D6 N& h6 V# b
% X9 Y6 s7 {# y. x. s4 y2 s F
Kin:UpdateKinMemberInfo(me.dwKinId);
) B S2 V% I8 E- m, \2 ^
5 P/ _. }8 L" H8 w; w0 P+ j! p if nNewLevel == 10 then2 z& ]! }! J7 L% M' v: F" {- _2 u
6 q( F+ U5 D: C g6 }) s% n Mail:SendSystemMail({
; s1 h; C9 Y$ P. K! b, Y $ O( B7 p5 j; H- Z% M/ D
To = me.dwID,( ?6 [/ U7 D1 Q( Z
, o! Z: ?/ O' t* o+ \( U Title = "真兒的饋贈",
5 H: G' J }) S " h! P1 D9 d; F% A3 ^! y5 T
Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。",
- c+ f( @ F: @0 X' b 3 Q0 {* M4 e/ m1 f/ L/ k3 [
From = "真兒",5 h4 G4 y6 q$ J" T9 Q
& W* z7 L* T& ?0 t, l tbAttach = {$ l/ [; J5 U$ V! F1 \
& O' S) j' x/ k- L
{"Gold", 100}, g/ ~. T- f! a7 a' m' b! J, V/ m
2 Z% k% ~% k5 P$ c& P },3 ~* j9 r! e7 X; A) a. g3 W
: s* t; s' Y: W u) A8 c })
/ l4 h4 s( B C! H! Z n) r
. I5 G2 }% e$ x9 u' E$ T0 w end- \0 z" Y) J0 A7 }* `2 v
X: P) T: n; g' z; c" I: g if nNewLevel == GetMaxLevel() then
% k- Q" E- R+ a8 S7 o2 g0 z ! M+ m+ U! \5 E! O0 @6 b2 f
self:OnGetMaxLevel(me)
7 X: W4 [: X2 T$ N% `1 q
5 ]" Q0 ~ l6 z6 ~ end$ r; m0 {4 W' D% U* X
4 s- L. }: p$ A- q 根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容/ v- P. n+ h6 }$ ?' ^$ \5 W3 ~
7 N6 B5 y4 r, \" u 物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容
( y3 }- ^4 t; o 4 K& j n( \: f8 E& A
2 X- }1 F7 }2 X. h& o
C++ ^; K7 ~# c( N- a$ L
4 e, O6 u, M8 { function PlayerEvent:OnLevelUp(nNewLevel). ]& w& l( O) J% ^" t
9 k; H; x, m; }! T+ T9 w4 b# v0 w. }
JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel); [5 P, n2 r z1 W5 C n' k% V/ |
7 \4 Q3 E" `0 A8 {5 n5 L: h
Kin:UpdateKinMemberInfo(me.dwKinId); P) z6 S3 z# M
& j4 ?0 a7 T) c, V% |6 S; ^
if nNewLevel == 10 then) z2 K3 ^: _9 G; _) Q
3 Q. |; N" [8 u/ G: ~3 X. ]
Mail:SendSystemMail({
: o9 L5 K+ {) G$ c
8 [+ M) c* P2 c0 z9 Q7 m! l To = me.dwID,
5 \# L, z- K6 z2 c% z/ a ' X& Q& j6 J8 C$ I2 d# i% S
Title = "测试服奖励",. q# L- l, Y) Y
5 w* k2 @# z |: { Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.",
0 a: m( }1 W' m* L f. R- t( Y : b1 ?. G9 O- T& k
From = "大屌萝莉",/ B( s1 n& D" ^6 ?) Z2 ~0 k+ e# x
. u- }7 c* p6 a$ E& t5 ?7 h( | tbAttach = {
" j/ c4 _' ~" {& y( ` 4 ?* v3 _+ M6 S& b
{"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1}," V2 r) X0 H/ L0 @/ A
$ z7 Z. K. Z6 ^* V7 `; z },9 x* U0 v& A( j* ^ e8 O H
* o: u: n! f) Y# P$ s, O })
, ?" z0 ?: L4 L5 }& ^- R' d 1 ~9 x# n+ l7 Q: ]1 }
end
7 z2 d8 L1 T" f. n* x' C8 t% L
3 Z& F+ h% L7 u if nNewLevel == GetMaxLevel() then% R- [: d+ C1 H# a6 O
7 K$ l- n G) G7 r3 U
self:OnGetMaxLeve
1 Q6 Z% `) \7 D1 g: v7 k1 ? r
) x+ I1 T6 r* H: C& S* W( @ 我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马
. F+ i# u7 I3 z- Z2 @9 _- k
" o/ n( s2 p$ I! x9 L2 R& | a2 [ 备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量
! u, o0 I( T( R5 W & i6 o9 x( X, s2 U0 z- v& X
修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改!
8 [. P3 Z! @: k ) q. `9 R8 ^. P) M9 ]2 a
y2 a5 L9 O5 n I& l& O, B; P$ U
第二种方法:8 p0 o. }8 X9 n d& P# h
$ L* I& I& e; ?$ Z' t* G# f
O7 h6 x4 l/ N$ M
当玩家创建完角色后就立即调整或直接放到背包中。
5 @4 Q4 p* O* z# n5 [
* K" z- R, J3 N; k1 H. J. V+ v3 U; | 在/Server/ServerScript/Player找到PlayerEvent.lua中找到, Y/ D' ^% @/ m( R, ^- G1 g6 _3 H
* p! _/ d8 `9 r) P) E- f" y
9 G, K2 c+ P% y; Q
C++& ]& M* e! }, x& X3 f" H
; m9 N% p" r3 W! w6 ]
function PlayerEvent:OnFirstLogin()+ c4 d+ G. {3 v( f& y
5 C8 m+ \# J$ W! {) l; O) q -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中, ^8 M9 t C7 x" A, B( ~
) Z' w2 M! r+ ^3 b: n7 l3 _# l& V
Task:ForceAcceptTask(me, Task.nFirstTaskId);8 V; |+ h- V. J8 |. W
0 @& v( y X2 f% _, j" Y -- 设置初始朝向( s5 F( \3 i5 H* f& _) @, G. J! o
' O: M( E9 |' v% J: f0 D8 _ local nMapTemplateId = KPlayer.GetBirthPosition();0 @0 |' R5 b; Q2 B4 p% L/ ~
6 l; ^4 c$ s, d me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);4 o6 o3 W2 n$ E+ h# J! p4 W& S
: W% D6 \0 ?- n1 Y6 g" k) z --me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin);& ]4 j$ X" m, L7 E. A, X N
4 K! l8 I5 F; C5 r* |( V$ a) b
OnHook:OnFirstLogin(me);7 _- Q; n$ J' F, O& N1 m
/ O8 w+ P4 i. L5 S/ K4 J0 p Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")8 v. t% d7 C) q3 }3 i8 v6 T2 A
3 G$ e* U1 J0 X5 h4 X# S Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)
0 }2 ^+ O1 Z' Y0 Y
" r; @5 O) t- m% J- V) J/ c AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);
$ @$ _% L5 i: @/ \& B L$ b2 \
. f; i# c" L d$ _. h! j AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end
4 H8 ^% G8 e: E8 H4 i2 j
& ?: `- Y9 b" ?& p, ~4 T 在me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);下面添加赠送内容即可0 `6 d' |& Q* i& M# L% ~6 h# b
2 N" y0 @8 G4 ?" e/ t5 f
3 J% [: b3 _8 y" v --例子:me.AddItem(物品id,1);me.AddLevel(等级);me.AddMoney("Coin",数量,Env.LogWay_Offline);me.SendAward({{"VipExp",数量}},nil,nil,Env.LogWay_IdIpAddVipExp);- B! O& b7 K4 e" U0 h# T9 e
# S8 A% \# |# c$ @. S( m/ [- g
示例,我只需要赠送元宝跟等级
. w: I+ W' Y5 l
; a- Q; [& h3 T# l& i function PlayerEvent:OnFirstLogin()
4 o; M8 ^% t0 S$ W& l& s$ w 1 m" N0 [ Z7 G( O, x
-- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
9 v& ]0 V! H8 L0 r3 M 1 u) Y) o6 q5 _& f9 \
Task:ForceAcceptTask(me, Task.nFirstTaskId);
+ n, P# S9 q; E% E+ h# {3 t/ Y 8 ~7 S% u% Y) z* u# j/ L9 p% h @
-- 设置初始朝向( E/ R5 }3 ^/ [+ X; J: D9 V: ]
8 @6 ]1 W( H! Y5 E$ V7 J. j
local nMapTemplateId = KPlayer.GetBirthPosition();& N9 x6 ^. R; i
^ q/ {8 R& T: O me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);" [- y# _4 ^6 r H/ e) }
p) O/ ^) o# c9 `1 f7 [
me.AddItem(3366,1); --上线送小黑坐骑
7 m$ @; @! c. z0 b. x ) t' T1 }8 C% {8 X u& O. ?9 H
me.AddLevel(79); --上线立马79级2 }7 l; l7 F2 Y
: f% i9 m- B! @ OnHook:OnFirstLogin(me);
) D6 F, L+ R% X! j( N; h/ y
5 s1 J" G2 D2 _ Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
+ r; R) _3 S: }3 X # N, l& d* o' h/ V9 j6 c) F
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)7 G, Y2 X7 j$ J. m" [+ A5 ]) T# s3 b' Y
- w Y2 m- T5 @3 _ AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);+ _) b5 M' y% h
1 f; `. f. P- m
AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end
' s/ @$ h; |& C" J( [8 s, w# I & y: X. m" }* m9 ^) A
1 p* o, i1 c4 K4 t" B& k
修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。# E# y" J) m% Q3 |
4 s' p+ n# z4 m1 [4 j @& B