设为首页收藏本站 国外访客:

 找回密码
 立即注册
搜索
查看: 46800|回复: 0

[教程/工具] 剑侠情缘手游上线赠送物品的两种修改方法

[复制链接]
灌水成绩
18541
100
19068
主题
帖子
积分

等级头衔

ID : 1

管理员

积分成就 威望 : 8
贡献 : 9
下载币 : 402
在线时间 : 1862 小时
注册时间 : 2013-9-5
最后登录 : 2026-8-2

发表于 2025-11-13 22:25:52 | 显示全部楼层 |阅读模式 IP:广东东莞
免责
第一种方法:以邮件形式进行赠送* y. f4 z* L/ q. d3 q1 ]- P

8 C* y) }* Y4 N9 G+ K5 V第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝!
  M, v6 a4 A. \$ @6 p/ D! c) |- J; a4 [7 O' l$ H
在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua* B$ ?* K! u" C$ x1 T/ i
0 u" b+ Q4 L( O; R/ d' K
$ @: ?( y, Q7 g% E! G2 h0 p- z$ N4 a
function PlayerEvent:OnLevelUp(nNewLevel)
/ v  @/ r) |  Y. D$ l9 n' n
& d7 Z* O9 r1 I7 i        JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
% [) @, \2 c2 B9 s1 B) Y' d% ]  x1 G
        Kin:UpdateKinMemberInfo(me.dwKinId);
1 U1 P# l" @" {1 f9 x9 m. D" _; S% L# ]  y$ Z1 ?) q& E
        if nNewLevel == 10 then- Y* W6 t7 @2 {: j: r
# U2 b4 c3 Z" O: e# \
                Mail:SendSystemMail({
# {0 r8 u) l+ }3 x
! [* i" o7 Z6 V; w- m                        To = me.dwID,( @- L7 i  j/ x& \
. y* j- o5 l: f$ A( Y
                        Title = "真兒的饋贈",
' b) I8 ?% l9 _
1 e1 J; I+ G% g                        Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。",
* y2 V. M. v* E+ I; Q
9 ?8 j2 R, E' k4 ]5 L                        From = "真兒",+ |: ~! E% s8 w5 n1 B) z

8 b  Q" C# l+ g3 Y                        tbAttach = {5 @) M% {( l) `: m+ q5 a' c
% r$ Q  [/ Q( r4 w  P9 D( n/ b
                                {"Gold", 100},  O8 j) a! b6 C# T9 \% f' b
0 n( o; Y$ f) A
                        },
! U! r6 u' K0 u8 D2 A2 z. R
" y' y/ l2 z1 b9 V+ e; e5 T' i) n                })" g9 Q/ A# A4 l2 I3 X. k' X
4 c4 a; \! J; F' l  G; [
        end" d+ ]% U; _& p" d

- o: s9 X3 L* T        if nNewLevel == GetMaxLevel() then4 T2 W2 Z  @" s9 i. u7 m0 X
' n; M9 `! E: L2 @0 _& f
                 self:OnGetMaxLevel(me)9 u. ]0 |0 F# \3 |5 X8 z9 d$ W

! [. r0 s2 i( e: f* h        end
3 c# d; _" x' [9 C: ]+ f9 S. D2 P2 a
根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容
. U7 Q3 U' K: {% K& L# M0 S5 n
# _7 n. e, _$ n# w物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容3 }) @8 ^5 r4 K) [- D% t

  Y  L8 S3 N+ C. T# w& v2 _/ S; w4 Y4 w9 ~1 J
C++- [$ C0 G7 B: l6 j& _
; ]) c( B) ?# @. x# \
function PlayerEvent:OnLevelUp(nNewLevel)! c& ?: w* L$ Q) L
" Y7 Y6 d9 _( p% ?' N8 r# e$ h! B- S% z) @
        JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
1 N  v+ Y: o8 i5 H
. ?  _5 {# \. B3 I2 r- ?8 u/ M. ^        Kin:UpdateKinMemberInfo(me.dwKinId);) O: s; U# j! w

1 G" p8 e9 R0 y( Z  A  S5 e        if nNewLevel == 10 then
3 u2 L: H* Z; r- M' L6 [+ z! V& W% U3 ~1 {, |& g- t
                Mail:SendSystemMail({
: W0 F0 A6 G2 Y: L. A
4 w% b2 N4 V# f- W6 h) _8 t, C                        To = me.dwID,
2 _  b; E, s% {6 ?7 b
7 p* z1 }4 T0 t, `% ?                        Title = "测试服奖励",
& r* u6 c3 U( U( C  `  x6 R
+ }  i8 B4 Q- O, J  }* w                        Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.",
0 d/ o! [# v/ x: ]4 j. V: i- f) R; D; o7 `* K& A. B+ ?
                        From = "大屌萝莉",1 R; l4 b1 ^) e9 y, g

" h, x0 \9 {. P$ w9 G                        tbAttach = {, ?" \3 Z4 e, y: N
- V. n% V( ~6 C9 V  ]" U6 z1 B
                                {"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1},
' ?& l8 @  I7 E- k+ \* V" c
; l, y7 }+ A  S* A                        },
6 ]1 |  ^( {& I: B+ t+ H. i* L. j1 f6 G4 }) f+ w
                })3 o. {' ~% Y2 L  O; y6 D
- `* f% i3 `3 K) z. x1 o; u  j+ n
        end! T- P! S. a; [6 E4 H

! y% n( W; e: X        if nNewLevel == GetMaxLevel() then: \. J% j1 T  @3 O# I
! a5 g( C+ f& G, L7 H+ Q
                 self:OnGetMaxLeve8 k$ \6 K3 f; f8 ]+ C
' i+ \' B1 n* S0 I) V2 A' m
我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马
. F) [# B' z6 s0 g- O
# \: O- M  \1 o9 _备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量
% i4 G) o  i3 E* m8 Y
7 S2 z$ s- H- `  ]修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改!
$ |) C) M/ F1 X0 t4 Q
9 G& `. A, c0 p/ T9 z! d
. q# ]7 U) p3 w$ `: R( b第二种方法:
4 `  Q% m7 K5 [! I' T5 o9 g5 `4 s: u; Y9 f, b
( ?9 u% H2 }$ i6 g
当玩家创建完角色后就立即调整或直接放到背包中。! W, h3 D* k% `& c
( N6 m$ N- a+ P4 [. d( z
在/Server/ServerScript/Player找到PlayerEvent.lua中找到$ d6 X. R: l% B4 [3 L% w+ O

' i. X9 H7 K& D' h7 N% ?# }. |$ }
! w7 d  b! E* wC++
! j: l. c( u9 ~5 }* ^- W8 h  J) b" N  E( a) F8 l" _
function PlayerEvent:OnFirstLogin()
5 p+ O5 R$ `% G1 [
/ y* e5 B/ Y9 M& ~        -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
( e2 w/ T0 p! x: S7 i; I0 T% w2 A+ E5 ]' w) z8 ?
        Task:ForceAcceptTask(me, Task.nFirstTaskId);
5 T7 |7 A) C& w, i. b2 V2 g  n7 w8 \& {' w7 x0 j  F
        -- 设置初始朝向( @! ~; k9 N1 r' ^( M& j

) F* ?  O% X- B  s- Q/ P2 Y6 G        local nMapTemplateId = KPlayer.GetBirthPosition();' ]2 q* N- v5 ]! c

5 q( j2 s' K$ `4 I" c1 {2 C        me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
* B" p& E$ j7 I( `- n, b, d
$ Z( u% g/ p8 J) N# Q        --me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin);
' z. D4 U# v; X: M; b7 [& U% B3 m, ?4 H( [% e4 Y
        OnHook:OnFirstLogin(me);# h! B. Z2 \/ W

8 M" Y7 i* O6 H" ]        Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
; q- y! u- ^- I  v' ~0 D, N: D" z4 z* j+ T. J+ D/ @+ C' t
        Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)3 y. Y9 A' f$ w% V6 S7 E

" D" U' A6 t! a0 E. H2 s5 I' q        AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);
1 K7 `# u& u' h& @: C( I$ R' Y3 u; N/ E4 F2 y6 B* I1 D
        AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end7 ]3 o0 Z0 W" F/ O% I. v2 }

. m8 E" R& A% G在me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);下面添加赠送内容即可* _5 `( {$ C- ]+ x& v

- |4 Z7 U* P# Z* j+ F5 j" S: e+ b, O6 x- X* m
--例子:me.AddItem(物品id,1);me.AddLevel(等级);me.AddMoney("Coin",数量,Env.LogWay_Offline);me.SendAward({{"VipExp",数量}},nil,nil,Env.LogWay_IdIpAddVipExp);. Y  B, B" H  u

3 ]0 {0 _" Y1 C: b; u1 X示例,我只需要赠送元宝跟等级# o9 {: N# U' Z( I2 ?

  c  I2 ?; u7 l- K7 a3 ^function PlayerEvent:OnFirstLogin()0 V3 F7 ~. T9 C

% t% ^" N- x9 K! k$ Z        -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中. Q! g" c' a9 }4 K
  ^' C. u; ?# J# o" y5 H
        Task:ForceAcceptTask(me, Task.nFirstTaskId);
* t% h* i+ B) {' z7 P8 Y) F) x6 H/ B2 j5 `7 U! s& k! M
        -- 设置初始朝向& \0 G2 [( P9 |: f) ^' |/ ^

. w: O' N2 y; X; U, D2 m        local nMapTemplateId = KPlayer.GetBirthPosition();
' ^5 ^- ^+ M& w: p5 o
3 s$ I( @- g. P/ i+ h/ H; m% Y4 v        me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
: E% U; Z" i& W2 Y% }8 i- ]
, _2 m8 f7 U$ [, q7 n( F) f/ S        me.AddItem(3366,1); --上线送小黑坐骑
6 d5 z6 B4 m# `) O; a
* W3 ^. O0 }3 [2 o" o4 T        me.AddLevel(79); --上线立马79级
6 x. c! j# {) x1 s1 c# l
3 I! E& u/ D3 r6 [- K        OnHook:OnFirstLogin(me);
% r) V% j) g; ~0 L+ K) o. k; _$ D. r7 }6 I. |
        Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
: w! A* w  K8 E$ G/ t! ]! \* T9 P* u; G, S! t0 v8 F! W" `; R+ {! a
        Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)- J" J8 P5 l  z  g3 D: Q- D

$ P# b6 t. ?  h. t' N& N: i        AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);
+ Y: j* N9 [# j6 p, w% h4 b; f- V
# _% X+ @* Z7 a+ l. n4 z        AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end
( y7 v: U( ]; p3 [# [
) R& X7 J2 ^2 g' {8 u/ M; I: U  Z
% e2 T7 Y! X4 C0 B3 ]( E! {修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。
- l) J  x( L5 B- k+ w3 F& ]6 k, ^# q4 N2 l0 }6 N
免责
帖子地址打造全网最多免费游戏网站
今日来客 列表模式
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|蔡州手游 |网站地图 wapmz.com

GMT+8, 2026-8-2 11:57

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表