- 打卡等级:热心大叔
- 打卡总天数:270
- 打卡月天数:20
- 打卡总奖励:268
- 最近打卡:2025-08-21 12:09:08
|
视频被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
|
|