第一种方法:以邮件形式进行赠送
. H2 \7 M7 B; R+ X( ` ' B. k0 j L1 t8 g+ N, d3 x' o
第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝!
, a# i# S) d* V7 | - p7 @% h/ L$ X
在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua4 C/ g7 y+ H) S5 Y1 ]3 y4 O R
5 b, Y, M0 M# N2 [/ i7 F' W . h4 V0 j8 S: j
function PlayerEvent:OnLevelUp(nNewLevel)
2 w8 K4 ]( {8 f" b
0 |1 `" t7 D% D6 X JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);/ v3 }" Q! o# w) Z, I' r
/ S# H, X8 i, ?9 X Kin:UpdateKinMemberInfo(me.dwKinId); o5 D* f: J9 j0 x. ?2 K5 k
- U) M. e/ s# m& K. X! D0 {
if nNewLevel == 10 then
% y& J. O$ P* f- b3 g) S
; ^. ]- Q/ i- `4 `% u8 V% s Mail:SendSystemMail({* {& P* k/ Q3 ~% d" U# C: N0 r
\( K( U! K: k& Y3 L' I$ B To = me.dwID,
: `6 H0 A& p+ r# ~1 b1 _
" t5 y' _; }3 H5 T! l( o, p Title = "真兒的饋贈",* u: ^% Q. V4 z- a/ Y% k
- |: U8 W# W' v- B' a4 P% U$ O: q Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。",
& K3 C9 r( T) K1 G$ k* W
: o* x( _0 x/ i! U S8 c% | b, _ From = "真兒",
/ t/ V5 h/ N* |3 K/ x ( ?. S( c" h% X, e" Z; s
tbAttach = {7 P( }. B, f8 \3 V9 W2 i6 i4 c
0 ]/ Y; u6 u i& X2 U2 N {"Gold", 100},
1 G X( v$ b+ E: v% K( s- f
; m: \1 S; Q! T9 U0 \ },7 f% x2 E" i, a
" M9 C7 s2 ^) k% d" l8 R' K' Q })9 E | m0 m6 o9 R! ^; u: g
6 O* B$ K5 O" _5 I m6 i! W: p end# p. ~2 w7 Q" r
9 d* y1 l+ Q! p* B1 h if nNewLevel == GetMaxLevel() then. {* R- l- w# c* s$ D/ W# O3 d
5 i" q" Q/ y+ @& O
self:OnGetMaxLevel(me)
+ Y4 b, I& E7 ?7 |! j
" U* [, }7 Q! b7 t2 Y5 w end0 _: F n' ]/ @: X. a% @; N9 e
2 |, {5 W- n4 K7 M! M" [4 R5 ~ 根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容( R' p/ }/ d( W E# i3 f, L$ }
' b6 @- Y3 c4 H# V( Q
物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容- X. d! A; F+ r5 _* V% Q
6 ^, c+ }8 c" D5 \% Q4 H T
$ g+ a, d% X. K- G2 N3 o C++
3 t! k8 F1 D! I% w
9 ^- Y B0 d- ^% ~/ C7 e function PlayerEvent:OnLevelUp(nNewLevel)1 h( B1 F# q& ?) N/ V" f$ W
8 b; @/ V1 b6 d% A& C6 l
JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
! M7 X7 P$ o' A4 [) e6 u; b5 a6 T
3 P6 [; G& ], s Kin:UpdateKinMemberInfo(me.dwKinId);
; j7 X8 q, s: O/ L" A1 m7 s$ i 9 N3 x" M1 m& |; x! T. ^/ ]
if nNewLevel == 10 then
, t# ~ s# I% ]7 H: g2 h6 v1 |: n 1 w8 ?5 W3 o; L, E# T, h$ c3 q E
Mail:SendSystemMail({
& E- t, y8 u: j, c9 ~5 Y 3 _) _" E+ n1 X; {
To = me.dwID,3 w( Y3 a1 F2 G d3 q2 J* V9 j
. Q6 M0 i, V% E' ` Title = "测试服奖励",
. V# o5 o( r% m1 L3 |6 {
1 K2 D a; z2 b; T Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.",3 G/ X5 @& g- c6 d( N0 I/ J
7 ~$ |- e' B; m. `- @3 t From = "大屌萝莉",' Y* g- }# W- x; ^& m
( p! n! u& k! `; d7 s- o tbAttach = {9 f( X" p* I: t, }' z
9 b' Z6 H6 t h% Z9 f8 i
{"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1},: f$ i1 M% Y+ V# c- A5 s! M
$ u- q* s: I8 n) \+ Z6 O' L* G9 `
},
* n" {9 A A' [
& q; Y A( L: E+ t( `8 p7 v })
* N8 ~( N, f2 m: V8 n! v- |
# D2 O6 I% P; @* v& A+ u! ]2 y! @ end: q p1 F# ~8 E* B7 U- v. w5 F
& L, D0 o. q6 x7 l if nNewLevel == GetMaxLevel() then+ r' N, n, s* z4 m' f6 L6 s0 s
) g% `1 k8 Y6 X) r/ W; X" V self:OnGetMaxLeve+ p' I6 ~0 Z* z' X% [; m( s0 ~
: o: b$ |3 I. _
我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马
/ }9 W, O7 Q% i' F' |/ W
& M* i: @% y! W% ]6 | 备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量* g( _4 F8 Y) q1 I% v& h, H
9 l! T2 H8 }1 l/ ~
修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改!' C2 E4 d: |( w* E2 g. p
; I/ X# e+ J. N4 M% Q2 z0 k
' s* i) U+ I9 c3 u
第二种方法:
( a4 s+ w4 {5 E; {( i9 {7 s" s1 l 1 _2 F. m# `* J1 k* V* b, R
% V+ B) @5 P: R# _* O% u 当玩家创建完角色后就立即调整或直接放到背包中。
$ ~5 b# z9 \3 H0 ]' Q$ s3 A) S; i ; l2 d3 I- F( h' R; [/ l
在/Server/ServerScript/Player找到PlayerEvent.lua中找到
% @' O6 z$ I8 N# O5 L ( u! ^$ Q7 w9 z, ?* O
. ^ o% C- ~! z, f
C++
3 F6 j! Z* p6 N$ u' [1 C% a; m
( ]1 D/ Q! _" J1 G function PlayerEvent:OnFirstLogin()
4 t! H* t) ]1 Z$ q }" b
7 x" P% \) Q) F! l' u -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
# n+ K( _& G6 p/ @& R4 F8 E$ J, B
: i0 x- `5 D( R9 \8 P4 ^ Task:ForceAcceptTask(me, Task.nFirstTaskId); T7 s9 H, Y5 e1 f5 W5 A
" b* Z% d. h7 \9 n& P% w9 B- k -- 设置初始朝向
6 v, i v. `& [& v& j3 H D. e# u) T0 f |
local nMapTemplateId = KPlayer.GetBirthPosition();
+ G# ~0 R& f( ~7 Y$ @: Q0 V4 i+ { % U" Y9 N, i T: P
me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);( C9 n. ~9 |; I+ O
! ^ V: H- M8 F: h --me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin);8 j4 B) `! I% m
' d. y" h: y, x, H* @% e. B; D OnHook:OnFirstLogin(me);# t2 G* o# h. U- Z/ ?+ `2 I" p
# {+ | q" k' D
Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
1 n' G* P: L" n % E* d9 n k) T
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)0 Q6 W( e E @* D/ `$ Y
" x5 m1 H, @) s% {. @. M AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);5 i! {' w: j8 c6 Q
& z {5 @0 p3 k p) A! c0 n9 @
AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end
& w( n9 S' I- O' y; e/ j7 R8 ]9 A! l 7 s( G% `# [2 q( d# `$ l
在me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);下面添加赠送内容即可
- g5 U$ F) b5 w9 j) v, m! J1 G0 Q/ \
# C; r6 C( C% X& } ) L* N+ @; W6 a5 q" _) N2 N8 B
--例子:me.AddItem(物品id,1);me.AddLevel(等级);me.AddMoney("Coin",数量,Env.LogWay_Offline);me.SendAward({{"VipExp",数量}},nil,nil,Env.LogWay_IdIpAddVipExp);
" M" ]" ~7 o# O+ o; Q ; @ K& h+ h# {- w2 t: m# g+ H
示例,我只需要赠送元宝跟等级
( S# x# Z+ O( \0 m; U
/ q1 R7 w8 j. p6 j' H function PlayerEvent:OnFirstLogin()
1 @0 Q8 J6 @' j
' l( Y5 |1 n6 r -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
3 C+ q' b. b n% }" s 0 A" G# Q0 B% P3 \' }
Task:ForceAcceptTask(me, Task.nFirstTaskId);
4 T) E- X9 a' r8 J
: n) t6 |8 M/ C' ?. P O6 O5 h -- 设置初始朝向
6 m8 g- O/ w7 S8 F $ X, b0 C" \* R& t' o
local nMapTemplateId = KPlayer.GetBirthPosition();
& o/ D; @( ?) G( V2 _. e1 Q& G , ~* r5 `8 \/ p1 G
me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);+ l) r3 ?3 f2 a
' `, F. _0 g+ x# y9 K8 M me.AddItem(3366,1); --上线送小黑坐骑" T% U" @5 }, L9 t) F) ~/ ^5 i6 N" e
0 C+ [3 Z- V" J7 ^/ z# [( j
me.AddLevel(79); --上线立马79级0 E2 ?* p$ b! V8 d- W: |1 `, o
3 s8 m: D- J3 V3 D3 U5 @ OnHook:OnFirstLogin(me);( H$ I3 O% J4 }, o' G$ S: r: ?
- m0 R& M; `3 Y% j! x' \5 g% K4 o1 C. I
Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
! {5 v) d! v6 `: m " f$ Q/ X& t9 r& c
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)
& \. D7 l% f7 B {9 Z8 r) Y 9 y% E! \) [; x8 v
AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1); T- `4 B/ _2 v4 f( y( |/ }; M+ i; e0 y
9 V8 P* M4 `7 p4 V AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end1 j+ M+ a1 c, U. a
+ f/ q. s' h2 E6 ?, ~3 v9 T
: M3 L/ _; O* l! S; s 修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。
! ]$ h7 ]# W+ w% T2 ~
# H L! Y) z6 J6 ?