找回密码
 register

QQ登录

只需一步,快速开始

查看: 2978|回复: 17

[游戏教程] LUA海天龙八部视频技术教程 第一集/第二集 :初识脚本以及添加修改原理

[复制链接]

[游戏教程] LUA海天龙八部视频技术教程 第一集/第二集 :初识脚本以及添加修改原理

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:122
  • 打卡月天数:18
  • 打卡总奖励:121
  • 最近打卡:2025-02-22 14:24:44
Waylee

主题

0

回帖

1万

积分

仙帝

积分
14008
Waylee 2023-10-11 21:55 | 显示全部楼层 |阅读模式

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×
视频被bilibili和谐了,联系Q784055837获取
完整教程笔记:
初识脚本以及添加修改原理-教程笔记.7z (32.6 KB, 下载次数: 28, 售价: 5 金币)

教程所用的版本:

游客,如果您要查看本帖隐藏内容请回复


教程笔记内容:
前言:
课程由Lua论坛独家出品,非营利性,请勿购买上当受骗。
Lua海论坛地址:bbs.luahai.com
----------------------------------------------------------
初级教程目录
第一课:初识脚本以及添加修改原理
地图文件标记:dali_monster 或者suzhou_monster  luoyang_monster
地图总npc数量:monstercount=165 
怪物文件:MonsterAttrExTable
脚本总控:Script.dat
脚本目录:tlbb/Public/Data/Script
-----------------------------------------
guid=9986878 
type=104 --npc的模型编号
name=范纯礼 --Npc名称 你可以删除留空 你也可以自己修改成自己想要的名称
title=尚书右丞  --称号
pos_x=182 --X坐标
pos_z=118 --Z坐标
dir=27       --朝向
script_id=002093 --脚本的编号
-----------------------------------------


反贼积分脚本:
--潇湘制作
--脚本号
x990003_g_ScriptId = 990003
x990003_g_xiaoxiangitem={
--物品编号/反贼积分/数量
{30000000,10,1},
{30000000,10,1},
{30000000,10,1},
{30000000,10,1},
{30000000,10,1},
}

--**********************************
--事件交互入口
--**********************************
function x990003_OnDefaultEvent( sceneId, selfId,targetId )

        BeginEvent( sceneId )

                AddText( sceneId,"#W朝廷昭告:#G田虎贼兵#W公然造反,意图进攻城市。目前#G太湖、嵩山、无量山、剑阁、敦煌#W五处均遭贼兵涂炭。请各位英雄志士前往剿灭,平贼有功者,朝廷将#Y论功行赏#W。(#G参加反贼活动获得积分可兑换稀有物品#W)" )
                AddText(sceneId, "您目前拥有贼兵积分:[#G"..GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade).."#W]")
                for i=1,getn( x990003_g_xiaoxiangitem )do
                        local xiaoxiang_aa=4-strlen(x990003_g_xiaoxiangitem[i][2])
                        local xiaoxiang_bb=""
                        if xiaoxiang_aa>0 then
                                xiaoxiang_bb=strrep("",xiaoxiang_aa)
                        end
                        AddNumText( sceneId, 74, "#G"..x990003_g_xiaoxiangitem[i][2].."#Y "..xiaoxiang_bb.."积分兑换".." #G#{_ITEM"..x990003_g_xiaoxiangitem[i][1].."}", 7, i)
                end
        EndEvent( sceneId )
        DispatchEventList( sceneId, selfId, targetId )
end


function x990003_OnEventRequest( sceneId, selfId, targetId, eventId )
local xiaoxiang_te=GetNumText()
if GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade) <x990003_g_xiaoxiangitem[xiaoxiang_te][2] then
        BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."积分不足", 0)
        return
end

if LuaFnGetPropertyBagSpace( sceneId, selfId ) < 1 or LuaFnGetTaskItemBagSpace( sceneId, selfId ) < 1 then
        BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."道具栏和材料栏都空出一个位置", 0)
        return
end
SetMissionData( sceneId, selfId, MD_ThiefSoldierInvade, GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade)-x990003_g_xiaoxiangitem[xiaoxiang_te][2])
BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."兑换成功 还剩余"..GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade).."积分", 0)
LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0)
local pos=TryRecieveItem(sceneId,selfId,x990003_g_xiaoxiangitem[xiaoxiang_te][1],1)
local str = format( "恭喜玩家#G".."#{_INFOUSR%s}#W使用反贼积分成功兑换了一个#{_INFOMSG%s},真是可喜可贺!", GetName(sceneId,selfId),GetBagItemTransfer(sceneId,selfId,pos) )
BroadMsgByChatPipe( sceneId, selfId, str, 4 )
end

function x990003_OnEventRequest1( sceneId, selfId, targetId, eventId )
local xiaoxiang_te=GetNumText()
if GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade) <x990003_g_xiaoxiangitem[xiaoxiang_te][2] then
        BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."积分不足", 0)
        return
end

if LuaFnGetPropertyBagSpace( sceneId, selfId ) < 1 or LuaFnGetTaskItemBagSpace( sceneId, selfId ) < 1 then
        BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."道具栏和材料栏都空出一个位置", 0)
        return
end
SetMissionData( sceneId, selfId, MD_ThiefSoldierInvade, GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade)-x990003_g_xiaoxiangitem[xiaoxiang_te][2])
BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."兑换成功 还剩余"..GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade).."积分", 0)
LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0)
local pos=TryRecieveItem(sceneId,selfId,x990003_g_xiaoxiangitem[xiaoxiang_te][1],1)
local str = format( "恭喜玩家#G".."#{_INFOUSR%s}#W使用反贼积分成功兑换了一个#{_INFOMSG%s},真是可喜可贺!", GetName(sceneId,selfId),GetBagItemTransfer(sceneId,selfId,pos) )
BroadMsgByChatPipe( sceneId, selfId, str, 4 )
end

function x990003_OnEventRequest2( sceneId, selfId, targetId, eventId )
local xiaoxiang_te=GetNumText()
if GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade) <x990003_g_xiaoxiangitem[xiaoxiang_te][2] then
        BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."积分不足", 0)
        return
end

if LuaFnGetPropertyBagSpace( sceneId, selfId ) < 1 or LuaFnGetTaskItemBagSpace( sceneId, selfId ) < 1 then
        BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."道具栏和材料栏都空出一个位置", 0)
        return
end
SetMissionData( sceneId, selfId, MD_ThiefSoldierInvade, GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade)-x990003_g_xiaoxiangitem[xiaoxiang_te][2])
BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."兑换成功 还剩余"..GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade).."积分", 0)
LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0)
local pos=TryRecieveItem(sceneId,selfId,x990003_g_xiaoxiangitem[xiaoxiang_te][1],1)
local str = format( "恭喜玩家#G".."#{_INFOUSR%s}#W使用反贼积分成功兑换了一个#{_INFOMSG%s},真是可喜可贺!", GetName(sceneId,selfId),GetBagItemTransfer(sceneId,selfId,pos) )
BroadMsgByChatPipe( sceneId, selfId, str, 4 )
end

function x990003_OnEventRequest3( sceneId, selfId, targetId, eventId )
local xiaoxiang_te=GetNumText()
if GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade) <x990003_g_xiaoxiangitem[xiaoxiang_te][2] then
        BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."积分不足", 0)
        return
end

if LuaFnGetPropertyBagSpace( sceneId, selfId ) < 1 or LuaFnGetTaskItemBagSpace( sceneId, selfId ) < 1 then
        BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."道具栏和材料栏都空出一个位置", 0)
        return
end
SetMissionData( sceneId, selfId, MD_ThiefSoldierInvade, GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade)-x990003_g_xiaoxiangitem[xiaoxiang_te][2])
BroadMsgByChatPipe(sceneId, selfId, "@*;SrvMsg;DBD:".."兑换成功 还剩余"..GetMissionData( sceneId, selfId, MD_ThiefSoldierInvade).."积分", 0)
LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 49, 0)
local pos=TryRecieveItem(sceneId,selfId,x990003_g_xiaoxiangitem[xiaoxiang_te][1],1)
local str = format( "恭喜玩家#G".."#{_INFOUSR%s}#W使用反贼积分成功兑换了一个#{_INFOMSG%s},真是可喜可贺!", GetName(sceneId,selfId),GetBagItemTransfer(sceneId,selfId,pos) )
BroadMsgByChatPipe( sceneId, selfId, str, 4 )
end


Script.dat 文件内容添加:

;贼兵积分兑换
990003=\Luahai\NpcLua\FanzeiJiFen.lua


dali_monster.ini 文件内容:
[monster164]
guid=9986878
type=17
name=Lua海
title=贼兵积分
pos_x=166
pos_z=156
dir=9
script_id=990003
respawn_time=1000
group_id=-1
team_id=-1
base_ai=3
ai_file=0
patrol_id=-1
shop0=-1
shop1=-1
shop2=-1
shop3=-1
ReputationID=-1
level=80






小玖妹妹

主题

0

回帖

75

积分

练气

积分
75
小玖妹妹 2023-10-12 15:52 | 显示全部楼层
085副本复古学习
  • 打卡等级:小镇青年
  • 打卡总天数:62
  • 打卡月天数:7
  • 打卡总奖励:62
  • 最近打卡:2025-02-16 19:29:46
奔雷手文泰来

主题

0

回帖

233

积分

金丹

积分
233
奔雷手文泰来 2023-10-15 14:47 | 显示全部楼层
5555555555555555
qq842333513

主题

0

回帖

60

积分

练气

积分
60
qq842333513 2023-11-23 22:25 | 显示全部楼层
学习学习学习学习学习
我是你爹

主题

0

回帖

49

积分

练气

积分
49
我是你爹 2024-1-25 16:58 | 显示全部楼层
666666666666666666666666666666666666666
您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-2-22 16:50 , Processed in 0.130202 second(s), 9 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

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