|
第一种方法:以邮件形式进行赠送! Y+ L: R# j" e! W# o/ }* L) a
$ R/ C& v/ L1 F第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝!
* K" e, ]# `/ J A$ o/ g* C' G
& h& @$ b8 q/ _2 d5 A5 S5 F2 c8 K在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua0 A6 [+ H$ e: v! g0 X" o3 i9 \
; j& O9 m6 l. ]' L: p$ D% W+ D9 Y
9 f- ~. l8 j; M# n, r5 {: X5 k
function PlayerEvent:OnLevelUp(nNewLevel)/ h. ^9 Q. A9 h3 s, j1 {
) ], J3 J$ u& y$ l8 ?; N6 b, T+ d
JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
2 B1 I2 M+ W& U" @8 z1 r- v, I: d) I' E" l' e5 Q7 p
Kin:UpdateKinMemberInfo(me.dwKinId);) T h' } j9 W u# J6 k5 ~0 ^' W
* s5 _% K9 J C' I! Z
if nNewLevel == 10 then) ^/ U! h- O$ I+ s% q2 z
; O+ o: P) P3 u) a' q# z. C8 b# [
Mail:SendSystemMail({
5 q% F1 {$ O8 y8 H: k+ Y
8 |* ]# Y, p, J1 m/ p/ f: i To = me.dwID,
( g+ o% n# Y0 T* K @+ J4 Y3 r7 K }* X" c3 X
Title = "真兒的饋贈",
; F& r% ^1 M% _9 z- C( d5 x+ j% y& i- v; D! ~: f0 e- c
Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。",
9 O- b* b5 J% ]0 [
$ t3 m8 C; _; H z" r, f From = "真兒",
1 E6 Y8 G, ]* w, j
7 h! W- F1 s$ _" Z( Q, H tbAttach = {
0 Q" k+ ~" [% R4 o$ x5 k6 m
/ k2 X- r1 h* N: e$ m {"Gold", 100},4 R2 o& y: W q$ q
7 a( [7 m1 E8 ?/ q% [ },
2 w1 G1 y! P2 J# O$ `$ s6 B6 F
" T0 t9 |+ c7 C1 g })* J8 y/ M+ a: \: J" `# _% n0 F; Q
- v3 p4 j6 p3 i' E# K! D
end
1 o* I6 l2 `0 T+ g q7 u6 k( [6 e3 R
if nNewLevel == GetMaxLevel() then' v/ J9 d9 ~( k6 s
* b! D/ ]. S6 K$ u/ H
self:OnGetMaxLevel(me)1 w* L! v6 V; {5 N% s& t* B* ~+ C
. q! h4 z/ o$ C- F end' f* K% a5 U& S7 t% f
( b* x& e/ @. x, A W0 M2 ]
根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容
% P3 w3 q: ^5 c; b* |$ s2 p' @* a7 ?6 v; w6 H. Q+ N$ {
物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容
$ o. G. k( {% a4 G5 c
& \) H8 a3 u- X, O+ m8 `6 g% }/ s. m* V' s" A2 C
C++
Z: t- C$ T, w# ?( H5 n7 Q% L' J( w; Q( L* r
function PlayerEvent:OnLevelUp(nNewLevel)
- T! ^% X1 K2 k+ Q& r% a1 Z( h+ c
JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
9 H* F6 U8 O. l. C5 E h0 |, \4 s) R. b4 \
Kin:UpdateKinMemberInfo(me.dwKinId);
& i9 g2 H0 b. a; e
4 k ^8 I; `( o/ b, T b if nNewLevel == 10 then2 A& f, ~# v; B7 g
7 U& |! j( O t% _* T
Mail:SendSystemMail({
4 ?7 \* P' Z# T. a+ y
^% ]" z3 C8 U" r/ z* f% E To = me.dwID,: V5 ]1 Y& i2 V( T/ V4 I
; \2 s% W* n V
Title = "测试服奖励",
. ^$ d9 V/ C; s! T/ b! ?+ S- h# S
* X8 _/ Z6 P6 U4 d0 x Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.",
$ F; V/ ~$ _, k) z0 `0 G
, |9 F- F* N! |$ t% D From = "大屌萝莉",& [3 @+ W4 U+ I# W+ m9 W& o
, X7 }/ d) Q1 h5 j
tbAttach = {
: R, B9 @( k! B8 X8 N/ E/ P4 [, R5 p q4 v, T" D& k: |! n
{"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1},: D- Z+ I# z- U
- g2 y1 A! \+ B2 b- U },
5 h4 Z0 {* w$ i4 o! Y/ K9 t" r" E- S- ?& r, @5 a, Z
})
- _" N4 e% y9 ^2 R: |, r. {
7 v* c% J: ~+ L6 O end
) \( y/ h) @4 r% |8 R5 i3 V( H% r+ I: _8 V1 K3 _4 ]
if nNewLevel == GetMaxLevel() then
6 K3 D: B( C. f; y
8 k/ H) k, Q! _ j% _& N* _ c self:OnGetMaxLeve. T$ q6 Z0 m+ L$ P( N8 @: U
' z) o! }; Z" U% V我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马
' o* G' y. B% t! q' P" Y9 H
% K9 K* J; m4 c" J8 r+ o5 k( E备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量
+ `) a; Z: Q; W2 y8 P3 v G5 \; U$ W" ~' ]- r
修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改!+ J& x. J+ u/ _* `2 }& J/ `
) B0 P- F! n% F$ ^6 b
& @1 I3 G- P( H ?
第二种方法:
% S: X* u% a B" M! m3 Y0 ` ~
# O; Q9 E, f. r% }# i# o5 |6 e2 r# C
; X/ }' z. F) y当玩家创建完角色后就立即调整或直接放到背包中。
0 q# m, J/ |& ]4 s0 E) m: w8 y
% {* I2 Z; c% L在/Server/ServerScript/Player找到PlayerEvent.lua中找到
) Z1 B$ Z4 i9 ^* F9 N8 ]: u' e; @0 j6 C ?% e
M7 y) Z& T r! v+ Y( v* X1 XC++
, {8 ^' z8 J3 X8 e% N8 m4 y( W
: E8 f& k6 p2 ~0 K0 }7 Z" ^function PlayerEvent:OnFirstLogin()7 D6 L: }* }2 G7 A( k
! c: ~$ [; b/ {8 g0 I- o
-- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
. T# N3 p3 X# X4 }; c
5 x+ _* n' X0 T! E! G Task:ForceAcceptTask(me, Task.nFirstTaskId);
6 ^6 V/ ^/ L& N' M* P
( m% L2 {5 ~5 ~3 O" p; f# _) V8 w8 K5 V -- 设置初始朝向. V, S7 @/ o1 o- V6 k
: ? m# ]7 A9 `( [, u4 n
local nMapTemplateId = KPlayer.GetBirthPosition();
0 W- L, t7 w/ W O0 t2 t4 \; f
me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);' @/ r1 A+ k2 a( w& @4 l" l0 p$ x
+ e2 ~" C* H3 v# ^
--me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin);
@5 y) H& c# F8 K% o
! g8 ]: o0 w! a+ W: s2 g$ f4 F OnHook:OnFirstLogin(me);6 N, |# c1 C; p' r- j
1 ^% U; g. Q* b/ a& r0 v( D
Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")7 Q6 F2 ]* R8 Z" x" ^. V
: C& Y. _' u( n+ P; J! A1 f
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)7 l% _# Y1 e6 B
$ X" x3 N" S% a
AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);% k4 |1 E. F$ R# K
, N: [: z% c3 Y, b" w# S8 J$ Z AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end
; g! \' U/ I% M3 b5 p* W$ f, W
* N- _+ O8 T& p7 \& @在me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);下面添加赠送内容即可4 }- G% j, k3 L/ L& c( u4 v$ k+ E$ [
/ ^! T, K. N/ U# t0 s7 J
+ i4 f9 o1 {" X% M; @- v7 k8 A
--例子:me.AddItem(物品id,1);me.AddLevel(等级);me.AddMoney("Coin",数量,Env.LogWay_Offline);me.SendAward({{"VipExp",数量}},nil,nil,Env.LogWay_IdIpAddVipExp);
( `# e: M; {# ~, V+ E) n4 `0 W3 \9 o4 K
示例,我只需要赠送元宝跟等级
$ Z: m4 s& p0 n9 ^5 d( A
; b, l2 k) e. G& y. t5 [( `function PlayerEvent:OnFirstLogin()
& f4 f: g" A7 U% f
% s% |7 b' W% x; |9 M+ a0 Z# f -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
& U ]7 _$ t9 n) H% U) E
1 t6 z8 E3 \4 o( v+ u/ w% G& A, M( a Task:ForceAcceptTask(me, Task.nFirstTaskId);
8 q F$ o# l5 c$ b. s2 d! O- p5 V y) p8 C( }5 R9 R2 z; G4 \% Y" |3 r
-- 设置初始朝向' y9 Z0 d& b8 l
T' ]" ` |2 _4 M+ K3 s local nMapTemplateId = KPlayer.GetBirthPosition();
2 m# R* E6 u8 X
: o: p2 v) W7 z) _- [! c4 _4 Y me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
* ]# P! T! h( D- `* i8 x# P! j# ]2 z9 o
me.AddItem(3366,1); --上线送小黑坐骑
) K( l: }0 _* C, X
4 s0 S1 ~/ e# g e# X7 a$ g6 C me.AddLevel(79); --上线立马79级, N" q( m; V0 w% u' O- _
4 l% L3 X' Y+ r9 K4 S OnHook:OnFirstLogin(me);4 X+ h2 U% I" ?% D7 E1 }* d' _+ O
7 \8 } C$ x" c* d$ K
Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
: o& P# @! r/ e7 ?9 ]4 y! D; r! Q; ?) B/ F7 U, L" c# A- k) b
Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)1 G. g( |- m% m; s
. ~0 w j+ X- V F5 x AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);
2 G8 E( _: G* d/ M# g, y
! u6 N) L- N+ e: H AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end2 X: V7 J' a# e0 O5 x* `8 ~5 g% t& `
) |& U. r2 ]: g. Z
' M7 P2 T) t+ o1 w修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。& i4 u. j a" G
A/ h4 a, B! d3 C
|