|
第一种方法:以邮件形式进行赠送6 D% k% [# l6 Z( C* s$ u4 S
& x9 v b4 q/ r$ x& G第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝!
1 k0 n, G" V9 D- z# I6 u; }; x$ a3 h0 A" u5 B' G8 w S0 z
在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua% ]+ f; K+ i0 r
0 H+ ~1 Z" ]2 R- \+ ^* M7 i1 U: S E6 q% \; i7 Z: _5 u. P
function PlayerEvent:OnLevelUp(nNewLevel)
7 V& p# x R; I5 I) _. U, ?
! B' P& U3 F9 g. K6 S/ ~4 Y JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
& _" C8 X7 \9 M, e. A5 e( F: L4 [7 S6 f
Kin:UpdateKinMemberInfo(me.dwKinId);
4 W0 {. D$ a4 }9 u- v& X4 f% w, R$ x( H2 N; h( s
if nNewLevel == 10 then/ @' ]! f5 E/ w/ Z! M2 U5 |. m
/ A1 p! {0 ^" \# z1 A: Y4 S3 C Mail:SendSystemMail({
, \% J& B9 _7 }$ e& Z. r0 _# r% K9 H8 f# }9 u r9 r! r8 [6 t
To = me.dwID,) s& e" _) I2 b! i8 U1 U) Z" i
# ^6 Z% k6 t% Q Title = "真兒的饋贈", b- T# \4 ]+ v8 L% Y
, w! r, N. K0 p6 E! b
Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。",: E" J& p1 G- y
. f- G* E+ _+ ?) C From = "真兒",' I) d9 `& G; g( P
& h( S" C: |9 W* |, f tbAttach = {
- Z5 u$ a0 f& \$ {' K$ C t6 ~. o9 S5 q5 c/ G5 P) \4 x& ?
{"Gold", 100},- \( X8 n X. D' H; K! t+ @6 g' c% W
5 F: k' ]1 A! z) t {7 V2 o
},2 v5 ~) q6 Z/ U7 g) m
& E1 v$ v1 }) P" P4 A
})" @! r+ |0 B: _
# R0 L+ j: e: A8 e0 p9 T) K2 [
end
: _/ \; v5 e/ z. P$ r: a y2 Q2 s& E9 n% {
if nNewLevel == GetMaxLevel() then
$ Q! J R6 O L$ y9 ]. F9 v0 D0 H& e0 c, q; Y# ~2 Q1 M/ W
self:OnGetMaxLevel(me)
8 J1 z: ?& y! @* I
( D, D& T7 a, u# _) D9 U! e6 m; c% r end# f, v% D$ t r
2 h1 x$ w; B7 R3 q
根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容
( S- K7 X8 ]9 U& Y& Y5 Z8 y- v" t* T1 {* A
物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容
+ c3 h; L( p4 P% V, V( f. b- O+ o) k
( A/ N& G# O) sC++& ]6 L: @' u, d# A' H: p
& L# ]- P8 K9 P- X5 t' wfunction PlayerEvent:OnLevelUp(nNewLevel), S$ E9 m5 Y/ I$ \, z, k
6 s: }: W) b+ ?& m
JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
) u, ?/ w a! f0 ]+ n9 `
. ^: k2 M' Q+ b Kin:UpdateKinMemberInfo(me.dwKinId);
& w" X8 | @2 x) G6 {- f6 l+ O4 w x2 R6 [0 I; z
if nNewLevel == 10 then
) J' P: h: f0 ? J: R
# _7 }) G( Z7 D7 _: ~$ {- n* E$ A Mail:SendSystemMail({
6 S3 K( p! f7 ]0 Z
4 u* U/ E- A9 l: _+ x To = me.dwID,- q0 j1 ~1 e2 q( |4 P" s
# ^2 q6 u: o/ m& ? Title = "测试服奖励",& J3 x5 P9 B! h& C8 I. L9 X
. O( U& v5 O% F! c& c( @
Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.",
( `% R) C- E5 s4 \. `+ o) t' w+ Q0 |) H: q6 x0 L
From = "大屌萝莉",: M7 F* d( x0 c. E2 _' n- `
5 H2 Q/ D4 x- P tbAttach = {
H, g4 x2 k9 [( R$ z
, C5 t. _4 q& J6 S3 J9 e. D6 b. r# C {"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1},7 `, ]% E0 m P. _
, e1 h$ l+ |" C G1 L5 X% y/ z },
5 V: r! g, x, ?2 ]2 p" |, [4 m1 J% I" }% Y. P( H0 }/ U
})
& k( _: N- l: y: j" A
3 l: |0 L& T" l- B end
" `0 L0 N* h6 i3 U( R4 i
3 r, C! c- D! o# k5 J if nNewLevel == GetMaxLevel() then
% ^8 O/ B( s6 }% S% J6 C- t& B: \# ~5 I" q0 S. F5 d3 K
self:OnGetMaxLeve! Q4 f: q+ m' W+ m$ w$ L# M- X9 r
( P1 j; T y- Z" f' d
我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马
1 |$ J5 X8 F$ o* j) G- V/ [, [8 t2 S5 @" }
备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量
& p) U) D5 Q0 ?) D% P' Q+ W/ d2 \' P l
修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改!: e2 l" C* D1 _3 D4 |
) T; J" r6 A+ R2 M. Z0 n: q
8 ]9 ^# ]. m7 E第二种方法:; m+ e8 B6 v$ q0 h' W& v
" `2 _0 E. G1 L
: t$ G5 J7 r2 ]4 k) J1 C当玩家创建完角色后就立即调整或直接放到背包中。% ^ s) E [9 C* S0 l6 B0 ^5 V
' g8 ]/ I* ?8 ]. W: n6 \
在/Server/ServerScript/Player找到PlayerEvent.lua中找到
) c) {. e) f$ B# |$ B$ ~
) @: K! J3 x: e5 N
' k: `* \# f' D5 n+ }$ \C++
) K( F5 W. Z7 l- c9 |2 I" ^) l6 i2 Z. i, t! X
function PlayerEvent:OnFirstLogin()8 o% Q! z/ r. y, N* N) J
~( h2 _$ Q2 D/ D
-- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中# [* d0 R R$ D) Z; p
3 z( V) v, N2 L2 b8 e! J
Task:ForceAcceptTask(me, Task.nFirstTaskId);
3 `1 z/ i% C; i8 a3 ?% n
( n$ I" J9 O4 v -- 设置初始朝向7 @ Z+ [5 Q, [4 B/ {" g
! g: ^8 J2 Y! t1 f3 ? local nMapTemplateId = KPlayer.GetBirthPosition();# {& L- L* V9 s# k' ~
+ e) t; o9 |5 `
me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
[( ~4 O( `+ O: e4 G- d2 q; a
5 ^4 M! c. v" Z2 ?, v% Z5 v --me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin);
9 r9 g5 e8 t+ Q0 Y' N! K' L+ ] t9 b$ r- i# ]1 }
OnHook:OnFirstLogin(me);6 V% N2 {' |% M9 p. ^8 G
# p4 b* y5 U! ? R
Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
% T; _$ j( s# ~
. r' B8 g4 ~3 @, p9 s Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)
& Q1 n3 n" D9 @( |
( Q# z0 v, s' Y: y4 ]* c& f4 B AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);
7 u1 A/ S( g4 W) f2 T. P E+ n
: f# v* u5 P- n2 _* U8 Q. J* W0 ^/ q AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end8 b0 J( `5 C0 b, l1 g. `
6 I, ?* J, U* L3 b" ?
在me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);下面添加赠送内容即可
! P; E, ^! i: x/ O) l" @9 S7 v# f+ i& y3 Q2 E- e, L; N
& D8 ~" w( n% D" F6 \0 j) u--例子:me.AddItem(物品id,1);me.AddLevel(等级);me.AddMoney("Coin",数量,Env.LogWay_Offline);me.SendAward({{"VipExp",数量}},nil,nil,Env.LogWay_IdIpAddVipExp);9 Q% a6 _9 O( G$ R
8 o% S$ C* v5 B# v6 G示例,我只需要赠送元宝跟等级
2 n; U: D8 `0 x$ | X l! G% y, w- a, D1 K
function PlayerEvent:OnFirstLogin()
5 B9 E$ t+ [: j& A9 R1 p" `3 g/ O: T7 A6 b! y6 m. I1 s1 O+ F" e
-- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中& B0 u/ P5 c, T9 m
5 L* ^. Y" _4 b0 c, O" l1 L Task:ForceAcceptTask(me, Task.nFirstTaskId);
4 l& z# o- R* R; q$ l1 _8 {
, f- t7 j/ \" A4 @7 g -- 设置初始朝向7 p( Z9 l; M# n5 A: j% k6 Q! c/ G
* o) C5 x2 `' b I5 ?
local nMapTemplateId = KPlayer.GetBirthPosition();+ h. q8 F. L" b: R
/ E6 P9 Q. l Y/ o! ^ me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
3 F1 O' ]: C# b# i
; w5 |0 n& A, \" y6 T me.AddItem(3366,1); --上线送小黑坐骑% b' [+ J/ w2 C! r0 b
" V( g. i# n* k( o; `
me.AddLevel(79); --上线立马79级
; I+ T5 g+ _1 {
' m U% X: k! p3 c7 q OnHook:OnFirstLogin(me);5 m0 y/ z! j8 U- ?7 x
6 G* S) m& ^* t0 [9 ~
Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
! F! ^1 O `! B! ` [- N6 P. r1 a$ J( ~
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)# `6 k) R2 D2 F( U4 m
% A$ i# L! m2 _
AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);! W' |7 }, e: h* M V( L
) r' q( S/ a9 m
AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end( Z" A4 Q# _' H# E& L) T
3 G5 ?$ `# Y* \4 K' G0 r/ M+ e! i
修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。
# E. F+ j/ N! ?7 F! X( y. W, s
4 Q0 y( r% d& X3 [2 k5 h* ] |