设为首页收藏本站意见反馈 国外访客:

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

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

[复制链接]
灌水成绩
17880
95
18382
主题
帖子
积分

等级头衔

ID : 1

管理员

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

发表于 2025-11-13 22:25:52 | 显示全部楼层 |阅读模式 IP:广东东莞
免责
第一种方法:以邮件形式进行赠送
& \* f0 X' Z2 A( q0 Z" p% c1 W4 C6 b
第一种方法是当角色等级到达10级的时候,系统会以纳兰真的名义发送一封名为:《纳兰真的馈赠》的邮件,原本官方只赠送100元宝!" `* A3 w3 k9 x: i% c* o+ r
+ n3 @; v$ f4 P. q3 f! l2 }9 a
在解包的服务端文件中Server/ServerScript/Player找到PlayerEvent.lua
% q- q. h* r+ s' D' v
. _) t! n" \& O; E/ [" P
% m0 N' g) o* D+ z; Jfunction PlayerEvent:OnLevelUp(nNewLevel)
. i: e9 d3 @' n3 Z# I7 r3 D  y% s
' [8 Z+ E5 L9 J- a, f6 h3 w        JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
5 ]3 R3 b7 E' J/ e+ d0 i# ^. \
3 e/ o/ e" v# V/ Y1 u9 F/ J3 X        Kin:UpdateKinMemberInfo(me.dwKinId);
0 m: u7 H4 ?0 M2 M
/ h5 M, y( y8 Z+ U        if nNewLevel == 10 then, q: o3 \& H& K( v0 ^: @" U5 |

- C) f# \" I. G9 u4 t                Mail:SendSystemMail({' K& W( ?! [. N$ W+ Y( ~& I
6 T9 g( j. t4 O" V1 U8 r/ ~
                        To = me.dwID,& a1 v/ Z- m  y; s. `) e; W

8 l1 D$ K) j6 V2 v. U, z                        Title = "真兒的饋贈",
5 v* \, n9 M, ]5 F8 {! ^, h0 ~$ ^/ p: A2 i3 A4 `
                        Text = "你從島上離開已有一段時日了,雖然內傷應該已好的差不多了,可是闖蕩江湖,處處都得小心,尤其要珍重身體。哼,再有一次,我可不救你了哦!我讓郵差捎去一些盤纏,若有時間,便多回島上看看,珍重。",, H  ~0 P$ Z6 S1 X/ H/ V/ |

7 Q* g( |0 u( w                        From = "真兒",
" R# m3 K2 B" N' c- l. T, H& M
, a  e9 [2 F5 h+ g9 Z7 `                        tbAttach = {
. y4 @4 s# M4 S  u
) Q- p+ e( P: a$ _9 t' x+ K                                {"Gold", 100},8 r; ~2 Y) h! p3 x" {; w  _
; o6 x( ^) N( `
                        },
0 n8 r/ H$ Z" n# S& h8 T$ [0 w/ ^
6 ]9 {$ b" P& l: q- l8 q                })
- `( J7 l& U2 F" v# v- d: Z& s% N
) {# t3 W7 `# F5 ~        end3 b3 Q: I3 U0 Z# I9 _

7 V" {0 W: R# f( W        if nNewLevel == GetMaxLevel() then0 u$ ^& s- A) ]  C, c0 k/ z

# k# G9 [% b# R& g                 self:OnGetMaxLevel(me)
' T0 b) ]' [1 O  M
5 x0 q# V; x  P7 p: J" F' X        end! H9 g7 c( J) a* g" ~) W6 V; X; b
  W, h2 ~& ~% o' k  M' Q" Z) I
根据以上我们可以得知Title=邮件标题,Text=邮件内容,From=发件人,tbAttach=发送的物品内容
6 s% r7 h! G2 h2 b' Z4 i/ m/ t4 f/ E9 p2 N* h2 `
物品内容我们可以自己搭配,比如给元宝{“Gold”, 100},在比如给道具{“item”, 1240,1},很多东西都可以自己修改或者添加的,以下是我修改的内容
# g( R" m  I& _' K  Y7 r) e
" O& J/ E0 Z. y- |* ~, n6 P
# H! e% T2 z8 Z6 h8 C) ZC++
& Z. g  P, y# N6 M
# I1 E1 r& H- |  _1 ?+ jfunction PlayerEvent:OnLevelUp(nNewLevel)
7 i. w" q1 k: L4 _2 D# q
7 Y# A" Y8 X' O        JuBaoPen:CheckOpenJuBaoPen(me, nNewLevel);
3 q- K& c0 A4 \/ V+ b2 l* |# k4 L! l
        Kin:UpdateKinMemberInfo(me.dwKinId);
7 o3 T0 ]& S2 z) ]
& T( Y% x# F8 I2 e8 u5 X- l        if nNewLevel == 10 then
" v, Y) t4 K2 z$ Y( _4 O8 |
  G7 a/ H$ i0 H( ]                Mail:SendSystemMail({
7 @- |: l& ]0 S) U# o( Y) i/ o
$ D4 {* }# L* H                        To = me.dwID,! E+ G" [; P7 Z1 A

* [% o$ m5 M) b                        Title = "测试服奖励",
0 N/ k- i2 ^. g8 D$ f) {7 q' q' }; q/ @; {( C2 M
                        Text = "感谢您参与本次测试,如果有任何问题请和管理员联系,下面是赠送给您参与本次测试的奖励.",& C" L6 m8 Y' v8 j+ @

2 `: r4 T0 ]7 e+ \  M: ]1 Q7 Q, o                        From = "大屌萝莉",
  j" b, B* K- f5 z7 \; Z) g) q, V2 W+ R( [+ l) n( i
                        tbAttach = {
  y4 Z$ n% C+ G& i+ G3 I5 x/ {
6 D& w6 S# i, J/ d* [3 u' `                                {"Gold", 214748364},{"Coin", 214748364},{"SilverBoard", 214748364},{"VipExp", 300000000},{"item", 1240,1},{"item", 3366,1},
& ?0 {6 X2 j  a+ o3 w1 r$ ]" Z! g$ y$ g
                        },
; O2 D  K5 u' {4 N9 k! ?' V4 J$ Y* z: T- M- P
                })0 N' Y4 c  N# @! `8 Q
! ^' c! X, p# U! ?# W
        end
5 y/ g# k8 J7 Y/ B
6 x) o" `! S9 k        if nNewLevel == GetMaxLevel() then
2 ^3 @2 P; ?8 v
8 `* o; j  S- Q# t3 ?; Y2 }/ R                 self:OnGetMaxLeve
% P% ]4 E, L$ }- M0 `: q7 |
; L  `0 T1 F! I& G( ]( g8 `我赠送的东西是元宝、银币、黎视、vip经验、首充礼包、坐骑小马
& Q' Y2 h* b( ~7 m# E
$ l' r' K% b; f' p' C5 _备注:数量类型的我们可以{“Gold”, 214748364}、类型、数量,而道具类型需要多加一个数量{“item”, 1240,1} 、类型、物品id、数量
' S4 W! x1 d, x. D/ A
8 ]- y' q6 ]3 v, }修改完成后覆盖或者直接保存,打包服务端放到服务器里即可,客户端不需要修改!# }( [& P2 h* @7 L8 u

% m: R: c2 w2 d$ t0 G% S
6 H; d: w) V& v, [* W$ n% P第二种方法:- w  N0 Y* O: B$ f1 a

/ l  I% t$ y! y& ]
, m1 Q* y. V. L0 G/ g当玩家创建完角色后就立即调整或直接放到背包中。
" n: ^2 d+ W9 m/ L. x
9 B4 e' b2 j: t, Q% @$ V7 Y在/Server/ServerScript/Player找到PlayerEvent.lua中找到
; r0 x) X7 c+ U6 }2 o& h! H" ?
- r% S/ G, o9 _  I& R) U
, R. f1 J: n5 C1 Y$ RC++
5 W5 u9 w: _' [) W8 }
3 u4 K- Q% I) Tfunction PlayerEvent:OnFirstLogin()
: d# _4 _/ ]" H% k  J6 E( w* C) _( j
. g% X) ?0 {5 }& h: z5 e        -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中
8 e5 t0 [! E  w( Q8 m
; C, O% ^) H( {: V' H' }* ^, B        Task:ForceAcceptTask(me, Task.nFirstTaskId);$ F; [$ K: r$ G8 Z# V) x1 p1 l

. R! v5 x# I. G5 p4 u" E* |        -- 设置初始朝向7 ^7 s, ?4 ^; @; [/ U

1 b- e0 S, p; N" }8 s, l        local nMapTemplateId = KPlayer.GetBirthPosition();) O3 E1 a2 q  y, X. R: j2 b

+ z8 o& i& T1 S! p, Y        me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);# T. {7 y6 {: C

- z, y6 u1 J% {& n2 s" E        --me.AddMoney("SkillPoint", FightSkill.nInitSkillPoint, Env.LogWay_FirstLogin);
9 R0 U7 U/ C" v/ T3 y& _7 ]0 |4 ?; n" a
" f# O& ?' z4 k# U        OnHook:OnFirstLogin(me);9 w7 ?8 n+ Y$ \$ j* _* |, M
5 F" y- B; ^0 m- e# B; e$ j
        Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")
+ d+ ]+ Z7 B  g. U4 K  m7 r* s# ~4 w9 X
        Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)
- @( R1 h5 a' J  O1 |# a/ |; B! g1 v
        AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);
6 \. P. m- `* ~% j- g  G) Y9 T3 ]7 b! m0 {# T$ F
        AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end! t. ^# J: A5 w- k( R4 U

. e2 q' K7 A& f, z& ]/ z7 A! A在me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);下面添加赠送内容即可
0 R9 y7 G$ J% G0 X9 Q) a. o
7 L* F8 L4 P$ S4 R3 q- k$ ~0 o9 `2 f
--例子:me.AddItem(物品id,1);me.AddLevel(等级);me.AddMoney("Coin",数量,Env.LogWay_Offline);me.SendAward({{"VipExp",数量}},nil,nil,Env.LogWay_IdIpAddVipExp);0 e# ~( X) ~2 z, ]9 z

( Y! s) g5 J' Z0 r示例,我只需要赠送元宝跟等级8 F+ z& G+ I4 j) T5 X( B

2 {! o8 `0 w2 G7 M) pfunction PlayerEvent:OnFirstLogin()' d0 ?3 \$ i; S9 ]9 @; I  @
" G$ A0 _6 I" z
        -- 第一个任务Id配置位置改变到 CommonScript/Task/TaskCommon.lua 中6 k" n! b* M3 B9 s0 G3 T0 v1 l
7 U" G3 C( l" V0 p# L, |- _" Y5 v
        Task:ForceAcceptTask(me, Task.nFirstTaskId);. V, \& e; M0 ?* j. X7 T9 _8 X8 r

2 o) p1 y0 p5 q! i        -- 设置初始朝向
- j; T0 f/ l6 D7 h7 m) [
7 |! Q, G' D+ n6 X! P        local nMapTemplateId = KPlayer.GetBirthPosition();+ O3 ^! |" G/ J. r) x* P4 B
/ M. A# [4 O8 S0 \! j" u
        me.CallClientScript("Client:SetPlayerDir", 16, nMapTemplateId);( }. b) y! k6 r3 J
7 Z5 o) Z2 u- I) c5 N+ W
        me.AddItem(3366,1); --上线送小黑坐骑" x7 E- ~) y# [

) H+ ^: Z* D0 X4 Y0 e        me.AddLevel(79); --上线立马79级% Q7 H9 c8 M, u: M. ^2 @" U- ]3 j
9 d% h4 `* M9 w$ a  Z
        OnHook:OnFirstLogin(me);8 J( r& U5 b+ f: q( H! `
: Z! I5 i2 U' b  b* F" l
        Activity:OnPlayerEvent(me, "Act_OnPlayerFirstLogin")1 a+ Z0 E3 f8 V4 i( m1 ~

7 E( Q8 _& o8 y2 z        Log("[FirstLogin]", me.szAccount, me.dwID, me.szName)
$ y9 W# h1 \& E5 T% [
. o3 [$ u3 m' C- y. W        AssistClient:ReportQQScore(me, Env.QQReport_RegisterTime, GetTime(), 0, 1);
+ \- ~$ K8 w: Z1 f
: j" x, K* B4 D2 J2 G        AssistClient:ReportQQScore(me, Env.QQReport_ChangeRoleName, me.szName, 0, 2);end
: x$ I/ f" G  z" i9 H, R! Z; I2 U5 V4 W
: C! N3 ?- k% N! ^/ s$ b  Q% O9 T4 V% x
修改完后打包服务端丢到服务器上重启服务端即可,以上两种方法都是服务端修改!不需要碰到客户端。
) D  X* R4 K' W" o" L7 g, K
8 e$ S4 W. G! n* w" u/ P$ U0 e: E
免责
今日来客 列表模式
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-18 07:58

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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