|
第一种方法:以邮件形式进行赠送
4 {) t- W+ }) f' Q! B( _* b: ~ F- k" Q# {8 J" T4 r) p
第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝!$ m; b7 P6 S2 T% l1 m$ f* }+ Q8 Z( s
+ ~3 u9 h; a6 A& q- q
在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua
$ v) l, N3 N5 m4 W( q* U8 Q% E8 n- R; j5 Y! q! n: y
, @0 f# p3 u6 v; M, T
function PlayerEvent:OnLevelUp(nNewLevel)
. @* M$ c3 s6 q& ]5 h! S' ^( _, J
% l2 w! J2 n+ r1 O4 G1 V JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);% X5 u5 L# l! J$ w
1 W4 [- s$ L2 U' l9 W
Kin:UpdateKinMemberInfo(me.dwKinId);
& ]2 y( k* v+ j8 c5 n2 |. y u5 c8 p
; r( m6 R. u( I& ?# P* Q; } if nNewLevel == 10 then
2 |% v. V- L# |* K" E9 |. C" X0 G* D) F* x. j: `1 J
Mail:SendSystemMail({- ]* B8 k0 k1 `" [: U' f: G8 O; c
7 H; A9 n5 B9 k+ w7 C
To = me.dwID,& _$ l$ N$ m) [3 s6 k) M- s, z2 S
. b) @# H; b, H# L1 m' z Title = "真兒的饋贈",- x* `. c2 i+ h4 b/ Z! Y& H$ T
9 p3 L- O* n" ]; T' z+ c" ~
Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。",4 M* c: p" W& l# Y$ z1 t& D
0 S Y. x( W5 ?7 |* G8 O
From = "真兒",$ W/ I1 o; B& x( K( F) @
5 G1 x! s# D! z2 Q: A" f( g0 P8 Q
tbAttach = {- [+ q0 T2 w, ]$ A/ w0 e ^
' V* F! K1 {4 [! P! ^
{"Gold", 100},
0 \% t3 o' y; b$ \. n9 R3 n
/ j' h4 Z5 m/ Y/ c1 H4 _' K9 s2 M },' v+ }9 h+ N* U2 V: X
5 ^* _1 R3 L9 H
})
3 e8 J' K( Z) b5 S! p W, h8 S: d" K5 i: _* @
end
+ A. J) F$ x! h2 p1 h- `
0 H3 X2 H% E% K$ P+ ]) `% V) b0 i4 t if nNewLevel == GetMaxLevel() then
* m! I4 R7 m/ P* K( S2 g, h- p+ ?/ Y: W Z' k$ O3 n
self:OnGetMaxLevel(me)" i! M3 W9 s& l, I3 N9 C# J$ ]* X3 \+ |
( ?9 i/ ~/ y: \ Z% i- g9 W/ O% D0 y
end
4 O& t) l0 J! X* m& ^. ^2 k- v( V$ M; i
根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容
; W. J8 K) L4 c- X7 g: j! K* \" z$ N) H1 i6 i$ F
物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容
; y' o8 e. ?" o7 B6 _6 y9 P1 w
& |7 L+ S. g! i5 W7 z1 |$ b$ Y6 T9 Q0 n5 i8 v k/ z" L6 `9 F' L9 m
C++
& o$ g& O L, r/ S; l. O% ] d5 T/ O! f5 B" r
function PlayerEvent:OnLevelUp(nNewLevel)6 K0 m% O0 w6 U* j9 r: s( t
0 Q9 A( x- ]/ o2 x! j JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);/ G! U1 K2 z- }2 W* Z% [% r
% Q+ P( W7 @ \8 \8 Q: Y/ d8 @3 K Kin:UpdateKinMemberInfo(me.dwKinId);) R+ I7 T6 m9 q5 M/ l! T3 \! I7 n0 Z
7 C$ z: o. O& i2 K
if nNewLevel == 10 then7 x+ F# R4 d9 ^1 z* U: C
$ h8 e& d; T6 c3 \* a
Mail:SendSystemMail({, F+ p& G1 ^, L0 K0 q$ F
4 G4 E) J1 D( K" i1 A0 e. D5 V7 }& C
To = me.dwID,
: D7 l0 a2 b: }/ d( z+ J
- d& r9 s$ u& S5 c) w" s Title = "测试服奖励",! U/ Y$ l# Y$ v4 o$ Z
: h, d- C& K, h' N; H% [7 s- E- r
Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.",- n. ] p* c- m8 j
, V: H% |3 L9 o c1 ^" u From = "大屌萝莉",9 W4 x. b1 o4 d- X& o2 W
, k8 j# k5 @% u! v3 B2 ` tbAttach = {
' Y) Q8 O7 v$ m0 F
' c, L0 p U0 ]; D& w {"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1}, m! M% C2 ^2 Z' x9 o/ e
4 `. A8 K" Q4 C, c
},0 K! _8 B/ \/ y, [% O
! a0 Z Z- X5 o" f. |, S9 Q
}): G- @" `- V7 |
5 n8 V3 d/ w1 J2 E+ T* o) G end
$ ?' u; e8 ~/ V7 d
- e/ k! b$ |( I if nNewLevel == GetMaxLevel() then6 ^1 A' L/ Z5 c% z, Z& F
* K D/ G6 S' [) g4 E8 P- V
self:OnGetMaxLeve
6 D8 z4 Q/ [) ?% `# j# K. a& g/ Q- @& ]" Q/ d% o4 n
我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马
! y6 N8 F% J% P. Q2 b9 k% V7 ~. A& L" _' r! @, z. X" o. [
备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量
9 X1 I# v+ C- ^& v& [6 V7 m2 I$ M7 F% J
修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改!
+ T* J; _- z8 I" ]9 H: A# ?7 t" O6 v* O6 j3 C4 y' q. Z
9 j$ z# X3 j7 N+ y! k. H+ a. V第二种方法:/ x# y, Z! h% C5 v
% l5 n) u& \" ]+ z1 E& R3 O# P6 x. ?& ^: F
当玩家创建完角色后就立即调整或直接放到背包中。 p, K2 E4 x$ _8 H
% W& k; l l7 a( {/ {/ o在/Server/ServerScript/Player找到PlayerEvent.lua中找到
& c( C- Q1 A8 g' ? p# Q! J+ j* s
# r P7 w& s: t R* T M. W1 |& B* F+ p+ q: ~! u/ g4 q
C++! B. {) k7 Z$ X
. r' D" x9 o* N: k" w
function PlayerEvent:OnFirstLogin()/ H: {+ \7 B& e- f# ~) ^6 ^
# c; Q# S3 ]% f; T4 i6 l7 H8 y
-- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
8 A7 `( ^- f! z7 v4 a
+ `2 v" o' R3 M( D Task:ForceAcceptTask(me, Task.nFirstTaskId);
. U9 W( u L8 }+ t( b i& M1 y, c( j* w1 I6 c" F
-- 设置初始朝向5 y) e% v5 \% X r1 @; @2 J
. A1 l9 b( V8 o1 G( E0 K
local nMapTemplateId = KPlayer.GetBirthPosition();
! ~" ?" T F. Z! [. T) C& D# l
3 u' N v, S1 ]$ u6 f me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);1 F% I/ Z/ T5 @; ]! G7 [
9 J, F! W) y( h3 [* Q
--me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin);
8 l. c- a5 I/ b2 a, v v" w, U+ e9 w3 z6 `2 f! G$ a
OnHook:OnFirstLogin(me);
; V4 S, {) }( [/ p: Y) c
4 g4 g) ~$ r H+ D, @* l x Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin"), D, h! A, k- M' E
6 I' S) {( }; D( z0 V' R
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)
6 S2 o: t- s9 }
# E6 O" p3 V7 e8 B2 \; a9 M# M# o AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);
8 Y' y: |$ j& A3 V
# @# D0 h! O" F6 g3 o7 H& G AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end2 d6 p; D& B5 {3 T$ H
* W# i, Y, v! a0 L7 o在me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);下面添加赠送内容即可( O3 A4 U. T3 T' b8 L
! y3 b& m5 I) R2 |& K9 E
0 x7 l, ?2 t2 m' T, a# V
--例子:me.AddItem(物品id,1);me.AddLevel(等级);me.AddMoney("Coin",数量,Env.LogWay_Offline);me.SendAward({{"VipExp",数量}},nil,nil,Env.LogWay_IdIpAddVipExp);
4 P: P+ C/ @* H$ q. t9 K4 w" D) m, @1 K' b1 L) n
示例,我只需要赠送元宝跟等级7 t# H7 r* D* Q6 y3 P- K
3 g! K0 b h, R7 ?function PlayerEvent:OnFirstLogin()
+ z2 l# G5 w& z4 \" J1 c9 {5 e: k( u/ t- e% B" v& I- ^6 ~
-- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
1 R9 w1 r, B3 n( K; [ U Z/ B6 F% A5 m- M
Task:ForceAcceptTask(me, Task.nFirstTaskId);
* \0 u1 r! O7 [" @: s/ F B6 d; v: h: F8 f) \: d
-- 设置初始朝向
( L) i5 k9 q! L1 l* B% Q5 V
: Q# @. @+ D! v7 b0 T& x local nMapTemplateId = KPlayer.GetBirthPosition();: A1 J7 N1 I1 U1 w8 O
1 ]4 B6 K) f; B+ }
me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
" f |) K# S( A0 x4 W, T
) ^% ~' h1 s" z6 N; y me.AddItem(3366,1); --上线送小黑坐骑. Q6 o7 U1 I/ s9 F
0 Z" ^ M( I* u T* r5 ]8 s me.AddLevel(79); --上线立马79级6 z/ |( z* ?3 E5 n F
: I1 I8 e! a: S' n) q5 D# j1 `
OnHook:OnFirstLogin(me);8 a- p4 C$ `4 b3 a
! S6 K$ y0 I& G/ v5 u
Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")$ n0 ], t& a1 o4 g9 T/ i
/ R1 h& c! }, r2 S* @ Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)8 S6 ]6 |+ E+ U( J7 E
0 r) J" |/ z) v6 y! E$ ~$ Q
AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);4 ]$ \: @% D( O) i- P. S, s
+ T2 c2 l' L% O0 N AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end$ X' V5 s& w$ v, X! B R3 G& ~3 J7 M
2 Q, n; r3 }. P! G [7 h1 T; X
" K6 `9 m, ?, I$ Z2 c P) ]2 b- n' a1 J
修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。
# [4 u+ O5 S0 Z, o$ v* b" V8 }( q' \. B' Z/ R6 ?/ u. T1 D
|