|
第一种方法:以邮件形式进行赠送
! z8 v& B6 N7 m# E/ u$ o7 a
7 Q! h* Q# F, _5 F第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝!
4 n" _6 E0 i2 N+ b8 A7 m) C$ s1 N6 r. p# x* [6 S! U# L# Z
在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua
2 I7 \0 O& p! J, V2 ?7 {/ N/ L/ J
$ e% @4 Q0 {% T4 h' r8 gfunction PlayerEvent:OnLevelUp(nNewLevel)$ Y1 K& V5 \1 ]/ m. L
4 P# J) I" s( v; B% H% _1 n" p JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
: R3 b- T. n9 W7 p/ _* h- u6 Q( F% k( C/ I) s, R
Kin:UpdateKinMemberInfo(me.dwKinId);
+ [! u. c" |; L; O. W% H
/ f4 s" J! |4 E& M if nNewLevel == 10 then/ t8 K3 {( H: D5 @6 L! \
" C! H( R" }8 g2 [/ P/ J( K Mail:SendSystemMail({
* x' D6 y# q [) X( r G6 e! b
To = me.dwID,
0 k* ~' z6 e' }$ d. ^
% {# n4 C# M3 M Title = "真兒的饋贈",
5 F& }. M7 c3 w5 c0 U$ j* R n2 \: ]9 A* q* e8 b
Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。",
2 B- Y/ k/ [. ?6 z2 r8 D6 b
% [! p! f5 k* s! l5 E X7 \ From = "真兒",/ W6 U4 ?6 s4 X
# W3 P% ]6 Q2 E8 i+ S% \# ]
tbAttach = {, d7 e) B( R2 c8 _! _0 u& {
5 D* |% F* G0 H, Q6 r9 Y1 [4 q, @2 M {"Gold", 100},
1 b* Y& C; p4 w* ? Z( e7 j1 k) W8 W! F0 W
},
" L) Q+ W/ F/ N
* s$ {/ v% k2 q* o3 I })4 x* c7 ^6 J' Y( Q
% } R% ^+ q; r$ J
end
) t& o4 l9 k; v/ z" ^& B% x
+ x) \; t$ O& F# s if nNewLevel == GetMaxLevel() then
5 i: `& j, k* ^ F2 G: t. O S
self:OnGetMaxLevel(me)0 Q& w0 w7 v% r6 v; P' ^8 J
% ^ } r a: ^, M- @" l end( R" o) e' q9 A/ q& A( G0 s% \) _
1 @2 A3 J& U2 Q: i% {
根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容
0 U; V9 L3 W6 t$ p& r7 y# O- t4 Z% S
物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容0 b- w1 H8 v9 w5 j) L8 j
* A- P( P3 p7 j( |
2 i( F- m- _' h4 ZC++$ V0 O! ?- M8 t0 A
( N( c% H# V+ p+ B% A" ^function PlayerEvent:OnLevelUp(nNewLevel)
3 N5 T& j9 a9 x2 `3 p$ B7 r) D/ M7 {- Q( }8 P/ I9 \3 K9 d
JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
0 i; H |: F- ]0 C2 g' ]" e
, H9 w" b* V9 Q, ]' V Kin:UpdateKinMemberInfo(me.dwKinId);. x- O% t: I* I% r6 @! P+ d
5 j3 g9 ]; V5 W! a9 Q
if nNewLevel == 10 then; L+ V/ E& g8 ?' z3 w. x* d
6 i, V( E( W" V& d4 ~) U Mail:SendSystemMail({
3 Q# S- w% X1 d3 y5 S5 A" M2 f' V0 E. `4 P
To = me.dwID,$ p6 c- E' A4 N- }$ F5 J+ @
3 T8 J4 K, v5 t* ~& h Title = "测试服奖励",2 I$ }( X/ u M* j8 S/ _1 \
4 c3 b G M, h. U m# V# I2 E
Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.",
2 f# Y# S$ ?* S& w
. _3 F+ G/ {- g: T5 U* E From = "大屌萝莉",
% r+ o/ `8 g% } v$ t% z
" R; h: g0 X' o+ v( r tbAttach = {
+ X1 U- B) ?" @9 Q2 j5 }
) ^5 a5 E; ?5 U5 ~9 N {"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1}, s' t/ w- L( w$ y, N- R S7 X
l/ ^+ L% F8 r5 H2 M, o8 { _ },
6 _6 v$ i! m, `/ J5 d. \8 D/ g+ t& E8 j1 ~) |$ H; v3 d1 d
}). w+ Q {4 q d5 l' T5 A2 e
: L4 p K# ^) m) D6 `, `
end6 g4 J; x. G& q6 y! F3 q
0 u, F7 i4 w7 T- l4 J" c if nNewLevel == GetMaxLevel() then4 A5 v7 s7 Q6 ] O
7 a( T, k. o' }( M, W0 q self:OnGetMaxLeve
7 a9 a5 r" L8 V: z4 P7 L6 I. _4 x$ m' B* b# d
我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马
# a2 d4 ~1 B; Z. ~6 f/ T& U+ J/ S8 U) \+ i) o e9 N; k, x$ G( Q. O
备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量* B r# o) ~& a5 [* z! U
- I: J# f3 O: m. O- n: \% Z修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改!/ O& c( X7 T/ n. a. g# B1 s( J
, ~5 U: a' ?% V0 t7 p, v- |, u4 ~9 s G5 w Z9 y; {
第二种方法:5 ` |/ N( y, |1 A7 j
, l% I# v) a) G
( a! d- g; {: b) v% h
当玩家创建完角色后就立即调整或直接放到背包中。
# e+ t, c! N( Y- _6 K' @, I9 U! B. a* b; \
在/Server/ServerScript/Player找到PlayerEvent.lua中找到) }" w, j3 l1 a w: Z- T2 H
5 B# U8 g. g& T$ j( ]1 [* o0 o% i7 w- ^ U" ~& {
C++4 |3 v4 y& I# x* P
7 C W* n3 t# ~6 v6 ]2 J
function PlayerEvent:OnFirstLogin()
5 N c1 w% G/ t2 d7 a' O/ w& n# q
$ A6 m$ [" x( Q -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中. G! R8 @" G. h9 m/ t) l, o7 y
) ^1 k% N1 }1 x0 O* e) {9 |8 [! T& F1 d
Task:ForceAcceptTask(me, Task.nFirstTaskId);
" k8 m6 p: V1 h8 h6 L+ v
) Q4 r* i0 d* o" f1 c -- 设置初始朝向/ M! m- S: M( U7 R
; @3 n6 t( ]! ^$ I local nMapTemplateId = KPlayer.GetBirthPosition();
& q0 w! @3 D( t: C5 a P& q, p6 U: |) m9 X4 m
me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
. Q) Y- B( `% u2 n4 W
3 `- _9 x3 ~# |' B7 } d! \0 L --me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin);1 p9 i5 E) T( y) P# e9 [+ o" N- F
$ s- M8 R5 y8 H OnHook:OnFirstLogin(me);9 D, S# q) v# N/ B3 B
1 f' e+ {$ _5 f/ C Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
8 N9 p2 }, w: _6 a. F4 f) t- [+ Q) t0 {5 ^
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)
; w' a* A8 p0 s
0 v& i1 @9 }0 @2 X( [ AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);7 Y! x1 D& k. A3 J( ?: Z3 [, ]/ D
0 D5 Y+ H/ v5 Q/ W) c5 j
AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end8 `6 M. Q8 ^: D% H( y# t: l
: E! x( ]& G6 k
在me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);下面添加赠送内容即可
( B) P7 b) U6 I' x0 ~+ E3 L, k
/ V' q$ D- Y7 ~1 Q. K6 A2 c: G& g; w h* t# i! c
--例子:me.AddItem(物品id,1);me.AddLevel(等级);me.AddMoney("Coin",数量,Env.LogWay_Offline);me.SendAward({{"VipExp",数量}},nil,nil,Env.LogWay_IdIpAddVipExp);
* f3 M, q8 H% y5 D8 X7 @, J# Y$ }& d/ Q+ @- y) v, N
示例,我只需要赠送元宝跟等级4 J s+ l7 o' j d& L, [. D
- n. d+ j2 D0 Z# |5 u" g$ vfunction PlayerEvent:OnFirstLogin()8 o, s6 z: ~7 b w6 D b/ f5 V, f) s
' ?1 \; g: d! d% L8 }" M% f* b
-- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
5 e4 z# v! p% Q3 Q5 V3 f5 ]# y1 q9 A) `0 @" H: l
Task:ForceAcceptTask(me, Task.nFirstTaskId);
8 R) |, x: t/ \9 e- n. S. I8 J4 n% A6 Y: u
-- 设置初始朝向+ Y! i& c0 H* \$ a0 Z8 F
5 J( H; @! y/ ?% ^1 m2 u3 |
local nMapTemplateId = KPlayer.GetBirthPosition();
3 \4 a2 P7 @: y$ x! Q& r( r" w' s
) V$ `! A* [& h" P! E' Q) C. @ me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
# P; E& }8 f }' [$ @( ^, O
, E4 M0 _* Y) W! U me.AddItem(3366,1); --上线送小黑坐骑1 M; r' V I4 G9 d3 ?! y
# ^1 K/ `3 b' w+ T: F, Q me.AddLevel(79); --上线立马79级8 d4 w% R) x% V8 e2 E3 j' ~! ~0 E6 g
# O# r' n3 S q3 X2 X OnHook:OnFirstLogin(me);( S3 s8 a5 _7 i0 w* D) J+ f# j
7 D8 X6 p( ^9 d! E2 W3 U Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
* K' d: a0 W d! A! o* N" G$ _5 m! _! `% u! c
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)! g6 |! ~6 L8 V" K! g2 L) ]; e
( M- n0 h9 S" B AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);9 L6 ?7 J% q8 W8 r
" j/ w* {: p( f8 t$ n AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end3 z& @4 _2 k! x/ E# k: S# d
* r0 A% ?2 j$ n; ]0 m
6 q& C* b" v3 C) }修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。9 l* N: r/ G0 h. K" U( _
. |5 _) U" p. g/ A# h) u1 g+ y/ P& y |