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

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

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

[复制链接]
灌水成绩
19101
118
19678
主题
帖子
积分

等级头衔

ID : 1

管理员

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

发表于 2025-11-13 22:25:52 | 显示全部楼层 |阅读模式 IP:广东东莞
免责
第一种方法:以邮件形式进行赠送
3 ^* o- f! N: q
  F' Q; f& t, ?1 s! h第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝!2 j' v1 T- A( J" g! x2 J- b$ V
: f+ B6 k& S: f  H; L1 y
在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua
" I! m: ]2 e+ k) _) t% D  J! \; h6 \9 g1 m6 b# R/ J
3 Y; P3 D" h, d, Q( ~+ G
function PlayerEvent:OnLevelUp(nNewLevel)
6 N* V% T  s9 l/ b9 p6 U7 \/ l3 e" A# E: H; ?) y
        JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);5 Y- }3 o$ d5 j* u6 s$ `
& t: w' ]! x3 L3 M
        Kin:UpdateKinMemberInfo(me.dwKinId);0 ?; o/ o. g5 c4 P+ s/ R
! [- w: Q& C- [$ H4 L- i
        if nNewLevel == 10 then
4 s5 o+ {' E4 ]4 ^- }, X# ]( O8 ~6 w* m! o
                Mail:SendSystemMail({  g& b3 F: x( E. P3 z

! E" p" [' R( p                        To = me.dwID,
% r8 S( z$ B8 A4 G5 C( U0 }1 i# n- Y- l% k1 n( f- D
                        Title = "真兒的饋贈",
6 _  W4 h- ?1 k( L  m2 p4 m! B+ N% ], t9 ]$ R$ A
                        Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。",
& r0 U( N. _% V& W
# ~% V% w: o3 v% X( v                        From = "真兒",# l; W7 @( x! A/ }& N) c4 X: O0 H
- X7 }$ k6 U. q3 k7 P2 d6 Q2 z4 {
                        tbAttach = {
* o4 m' F4 _! |' J3 I* \( L! j1 P0 O% S# E! K& a
                                {"Gold", 100},. P- b2 [7 T) m
. [' P, q& ^6 M; p8 Q
                        },
% s  r3 ?5 g1 ^1 B7 w1 @% t' ]. v& c& H
                })
. ~5 u4 k5 i7 ^& _0 k% X1 w; C# }- A
        end
5 n$ v4 n7 {3 M7 A/ h' [, h5 E; [) ~5 ~) _+ P6 f) J4 E5 S
        if nNewLevel == GetMaxLevel() then, V! n" z  C# M% B
% N9 g3 |) e4 Z
                 self:OnGetMaxLevel(me)
0 Z1 m$ t8 p: h# ^9 K& c) y: z. K* P$ F0 f9 R; b: \& i5 D
        end
/ O5 v5 q7 n4 x' z& s- m  q/ Q& ^: v: m- {. H9 B. e% H
根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容
; K) o9 ~3 Y7 E
, y: }, w' l/ D3 s# Y5 N物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容
4 P* d" X4 W  ?! Y% k2 f* m
  E* z% b9 o# p  z" ^
! F9 w/ O" k1 Y% \4 D" XC++' B- G6 g; u: T+ ?+ ?3 J. Z
+ {# M6 B9 {5 g6 J0 [
function PlayerEvent:OnLevelUp(nNewLevel)( c: ^2 j4 N/ U* F) k0 p
9 z9 S( a0 ^1 m3 c5 A9 o( y. C9 [
        JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);' M- C* M. T. w9 [1 j3 P6 n2 G7 n
% V+ l2 h2 _! W, T% S6 v
        Kin:UpdateKinMemberInfo(me.dwKinId);; g9 U; R9 T5 S8 q  C# T* _
! W! v8 Y5 `2 E' \" _3 g7 j
        if nNewLevel == 10 then
+ W. X3 _6 J' F. a) }; T: V& Q7 }7 g2 c7 u
                Mail:SendSystemMail({. B6 z5 d7 X7 M
9 N7 {4 c$ W# C; |1 d+ c
                        To = me.dwID,
: N: ]6 z, f7 B9 |9 H3 X2 q7 J3 J  J/ ~/ `: N" ^8 E
                        Title = "测试服奖励",6 X: h; \; J5 m; d/ _( R" ~9 O

, ~  T6 t& E: a                        Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.",6 E6 B: i- ~# R
8 e" Q4 k4 A$ O; M7 g9 L/ k! H
                        From = "大屌萝莉",! X3 o' c; K3 m& F7 K# A& k
8 a. v& j, p: Q
                        tbAttach = {. Q0 X7 n; a/ n: {. C

+ d1 J4 W7 |; B2 B' f                                {"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1},9 h! z9 G# t4 g- U

6 E1 @- M# t9 h, @. ]                        },9 l* W2 ?( M5 u$ q: p
* ?1 y6 W  `4 Z9 ]
                })
8 c6 ~' f* |' t6 d  F" j+ \- D+ a3 [7 `# w/ V; @9 f3 z
        end! ?' p. q( d4 U
/ K; U1 w7 k0 s0 I+ ~" @9 t' l
        if nNewLevel == GetMaxLevel() then4 m* i/ z% c0 Y& }

9 T6 I+ V. X) k# |3 n, N$ c                 self:OnGetMaxLeve, \" v0 b1 o. R& K: P$ d
; M& T! \* Y8 X( [0 p0 w
我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马; w6 K+ a. x% R2 U4 w$ F
: l6 Y: s; p; j/ g
备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量
( H4 Y  y+ z6 D2 i3 s
- }8 p, A& V) ]修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改!1 ]% U6 {0 |6 k0 A9 S, [8 x

' m8 G6 I/ j$ c+ `3 b( ]& g5 C* N" {. `5 n5 M( [3 i
第二种方法:
) h0 |9 Z3 V( ?
+ [3 L! y6 O$ `; G7 `3 Z& a+ z& F) l6 ]
当玩家创建完角色后就立即调整或直接放到背包中。
$ N0 s( K$ O# Y$ H: b/ U$ v2 B# W! ^- y1 O3 q
在/Server/ServerScript/Player找到PlayerEvent.lua中找到
2 y$ ~7 b# N& S9 W: D6 C6 ~7 B' ^7 ^

/ w" v: @# n/ E2 _. |5 fC++
6 ?8 _9 P6 d* ?% m# S3 c9 ]+ Q9 x" @! n+ E  A; o7 Y
function PlayerEvent:OnFirstLogin()1 H& \! ?" v0 Q# s

$ v/ e4 F) F$ Z+ t3 A        -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
. J  W5 y3 O% Q# D5 j1 u$ L+ t9 M+ s. b% ^! y
        Task:ForceAcceptTask(me, Task.nFirstTaskId);% X( r/ j& g$ Q( E& f& V! m

8 f0 P2 {4 m& g' }- f& u        -- 设置初始朝向. A5 j( V1 @$ `6 q2 T* L

, |: z0 p  K: G# m0 i        local nMapTemplateId = KPlayer.GetBirthPosition();
2 u0 g& T/ p: E. [
1 ^: W# [# B0 ]! S        me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);
: @4 T! b2 j7 D; F8 z' r: f
/ Z: I" e' r/ a4 Z; o7 j5 }  ?2 ^        --me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin);
9 _, n1 J% ^! I0 b8 H; C
% Y6 H  B- n6 Q' l) K" s2 ]) |        OnHook:OnFirstLogin(me);( ^" @6 d% I1 o4 K5 n, Y2 |3 l+ q

& ?- h7 e. p- \' y3 j: B$ {( L        Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")+ J% b# P* }# \; a/ U6 ~. J8 T
$ I0 W4 Y+ `" ^$ W$ b. y$ p
        Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)
1 x2 K" e+ v% U4 i! p
1 ?" t- L& J1 k6 c( S' E        AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);4 x# X; w) A! D# F# E
) V) R8 A$ ?8 Y5 Y: _
        AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end
- h. v* P3 O" ]" A- {; t
% O1 k9 G' ^1 L# h) ?在me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);下面添加赠送内容即可
  U5 O9 x7 ?! n4 `$ o
$ R& G  c/ X! i9 C% g1 S
9 U3 K; L/ U$ ~6 \! e: m3 y% L--例子:me.AddItem(物品id,1);me.AddLevel(等级);me.AddMoney("Coin",数量,Env.LogWay_Offline);me.SendAward({{"VipExp",数量}},nil,nil,Env.LogWay_IdIpAddVipExp);8 P: x/ d* R+ _2 q0 q" ?
+ h( k! R3 o# t$ |7 }: ?3 {% u
示例,我只需要赠送元宝跟等级' x; j& U  d9 ~" [- o; Z2 B9 U

" @3 a8 E" [; b/ b& }0 ?7 l! Mfunction PlayerEvent:OnFirstLogin()
% f* a' ^. G( o$ H( J: x0 p: G2 D5 ?3 r; f& n$ c; W+ Q
        -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
* j# q' h& o2 J$ R8 G4 D0 z  x* {) p) ^& h" e! c
        Task:ForceAcceptTask(me, Task.nFirstTaskId);! G' ?* a. L! m; r" c
7 W5 H' N0 D6 h+ t+ x2 s
        -- 设置初始朝向! |5 {# [7 N4 o) ]1 Z1 a
/ e* U2 \) i0 Z  L
        local nMapTemplateId = KPlayer.GetBirthPosition();
- D& H7 j+ D( X" N. r6 t" p5 q( p, Q" ?$ C) p& v2 c  ]5 ]
        me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);: \: q0 \9 T4 y, O; D7 H, K
! f2 c5 w: M4 ]# ?; P- @
        me.AddItem(3366,1); --上线送小黑坐骑+ D4 |8 N/ D+ |' S7 }: B1 ]

/ H2 N+ ~# w) ~! p4 W        me.AddLevel(79); --上线立马79级
/ B" d+ u: K" L  a8 k
0 M7 m$ K% r# D        OnHook:OnFirstLogin(me);
" P2 U' W+ X' e  B2 U# w0 Q* b4 z& K  h4 `
        Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")- @% t( w) O4 z5 b; M- W
4 d) z: r' f5 w0 a& H
        Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)1 \. Y' l& B# v- t
3 n7 f- Y# W; R1 G3 o! _2 j
        AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);" \; |' U/ Z" z$ }! m% g  k
! o8 g3 d* z# L( h: f& `
        AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end
6 l6 I4 q! c, [2 i2 ~9 w$ N
/ B3 t! X9 g) O1 v# K. s8 r
: n7 X6 m: \5 n2 s$ y* J修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。* e* q* f' g5 h/ A: C* S- W% O
; I; R6 I& x, X7 W
免责
帖子地址打造全网最多免费游戏网站
今日来客 列表模式
本月有问题处理时间8:00-12:00上夜班  9.7发布
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-16 19:42

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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