ÔÚ´«ÆæÀàÓÎÏ·ÖУ¬Ò»¸ö¾µäµÄÈÎÎñÁ÷³ÌÊÇ£ºÕÒNPC½ÓÈÎÎñ → »÷ɱָ¶¨¹ÖÎï → ·µ»ØNPCÁì½±Àø£¨¾Ñé+×°±¸£©¡£ÏÂÃæÓÃͨË×ÓïÑÔºÍʾÀý½Å±¾½ÌÄãÈçºÎʵÏÖ£º
Ò»¡¢ÈÎÎñ½Å±¾ºËÐĽṹ£¨5²½£©
NPC¶Ô»°½ÓÈÎÎñ
¼ì²âÈÎÎñ״̬
»÷ɱ¹ÖÎï¼ÆÊý
·µ»ØNPCÌá½»
·¢·Å¾ÑéÎïÆ·½±Àø
¶þ¡¢¼òµ¥½Å±¾Ê¾Àý£¨Ê¹ÓÃLUAÓï·¨£©
-- ²½Öè1£ºNPC¶Ô»°½ÓÈÎÎñ£¨ÈÎÎñID=101£©
local npcId = 1001 -- NPC񅧏
local monsterId = 2001 -- ¹ÖÎï±àºÅ
local killCount = 10 -- ÐèÒª»÷ɱÊýÁ¿
function OnTalk(player)
if player:GetQuestState(101) == 0 then -- δ½ÓÈÎÎñ
player:Say("Àϱø£º°ïÎÒÏûÃð10Ö»Ò°Öí£¬»ØÀ´¸øÄã½±Àø£¡")
player:AcceptQuest(101) -- ½ÓÈ¡ÈÎÎñ
-- ²½Öè4£º¼ì²âÈÎÎñÍê³É״̬
elseif player:GetQuestState(101) == 1 then
local killed = player:GetKillCount(monsterId) -- ¶ÁÈ¡»÷ɱÊý
if killed >= killCount then
-- ²½Öè5£º·¢½±Àø
player:AddExp(5000) -- ¸ø5000¾Ñé
player:AddItem(10001) -- ·¢·ÅÍÀÁúµ¶(ÎïÆ·ID)
player:SendMsg("¹§Ï²»ñµÃ½±Àø£¡")
player:FinishQuest(101) -- ±ê¼ÇÈÎÎñÍê³É
else
player:Say("Ò°Öí»¹Ã»É±¹»£¬¼ÌÐøÅ¬Á¦£¡£¨½ø¶È£º"..killed.."/"..killCount.."£©")
end
end
end
Èý¡¢¹Ø¼ü´úÂë½âÎö
´úÂëÆ¬¶Î ×÷ÓÃ˵Ã÷
GetQuestState(101) ¼ì²âÈÎÎñ״̬£¨0δ½Ó/1½øÐÐÖУ©
AcceptQuest(101) Õýʽ½ÓÈ¡ÈÎÎñ
GetKillCount(2001) ͳ¼ÆÍæ¼Ò»÷ɱ¹ÖÎï2001µÄÊýÁ¿
AddExp(5000) Ôö¼Ó5000¾ÑéÖµ
AddItem(10001) ·¢·ÅÖ¸¶¨IDµÀ¾ß
FinishQuest(101) ±ê¼ÇÈÎÎñΪÍê³É״̬
ËÄ¡¢ÔöÇ¿¹¦ÄÜ£¨¸üÌù½ü´«Ææ£©
ÈÎÎñ½ø¶ÈʵʱÌáʾ
-- »÷ɱ¹ÖÎïʱ´¥·¢
function OnKillMonster(player, monsterId)
if monsterId 2001 and player:GetQuestState(101)1 then
local nowCount = player:GetKillCount(2001) + 1
player:SendMsg("ÈÎÎñ½ø¶È: "..nowCount.."/"..killCount)
end
end
Ëæ»ú½±Àø³Ø
-- ½±Àø·¢·ÅÊ±Ëæ»ú³éÈ¡
local rewards = {10001, 10002, 10005} -- ÍÀÁúµ¶/ħ½ä/½ðÌõ
player:AddItem(rewards[math.random(1,3)])
¶à½×¶ÎÈÎÎñ£¨¸ß¼¶°æ£©
-- µÚÒ»²½É±10Ö»Öí → µÚ¶þ²½ÕÒ²ÄÁÏ
if player:GetQuestState(101)==1 then
-- ɱ¹ÖÂß¼
elseif player:GetQuestState(101)==2 then
if player:HasItem(90001) then -- ¼ì²âÊÇ·ñЯ´øÁúÁÛ
-- ·¢·Å×îÖÕ½±Àø
end
end
Îå¡¢±Ü¿ÓÖ¸ÄÏ
·À¿¨ËÀÉè¼Æ
¶Ô»°ÖÐÔö¼Óplayer:GotoNpc(1001) ×Ô¶¯Ñ°Â·
ÈÎÎñ³¬Ê±ÖØÖãºif TimeNow() > acceptTime + 3600 then ResetQuest()
·ÀË¢»úÖÆ
ÿÈËÏÞÍê³É1´Î£ºif player:IsQuestFinished(101) then Say("ÄãÒÑÍê³É¹ý¸ÃÈÎÎñ")
×é¶Ó¹²Ïí»÷ɱÊý£ºplayer:ShareKillCount(teamMember)
×ܽ᣺ Ò»¸öÍêÕûµÄÈÎÎñ½Å±¾¾ÍÏñ×é×°Àָߣº
NPC´¥·¢ + Ä¿±ê¼ì²â + ½ø¶È×·×Ù + ½±Àø·¢·Å = Á÷³©µÄÍæ¼ÒÌåÑé
ÕÆÎÕÕâЩºËÐÄÂß¼ºó£¬¿ÉÀ©Õ¹³öѺïÚ¡¢»¤ËÍ¡¢¸±±¾µÈ¸´ÔÓÈÎÎñÌåϵ£¡
Ò»¡¢ÈÎÎñ½Å±¾ºËÐĽṹ£¨5²½£©
NPC¶Ô»°½ÓÈÎÎñ
¼ì²âÈÎÎñ״̬
»÷ɱ¹ÖÎï¼ÆÊý
·µ»ØNPCÌá½»
·¢·Å¾ÑéÎïÆ·½±Àø
¶þ¡¢¼òµ¥½Å±¾Ê¾Àý£¨Ê¹ÓÃLUAÓï·¨£©
-- ²½Öè1£ºNPC¶Ô»°½ÓÈÎÎñ£¨ÈÎÎñID=101£©
local npcId = 1001 -- NPC񅧏
local monsterId = 2001 -- ¹ÖÎï±àºÅ
local killCount = 10 -- ÐèÒª»÷ɱÊýÁ¿
function OnTalk(player)
if player:GetQuestState(101) == 0 then -- δ½ÓÈÎÎñ
player:Say("Àϱø£º°ïÎÒÏûÃð10Ö»Ò°Öí£¬»ØÀ´¸øÄã½±Àø£¡")
player:AcceptQuest(101) -- ½ÓÈ¡ÈÎÎñ
-- ²½Öè4£º¼ì²âÈÎÎñÍê³É״̬
elseif player:GetQuestState(101) == 1 then
local killed = player:GetKillCount(monsterId) -- ¶ÁÈ¡»÷ɱÊý
if killed >= killCount then
-- ²½Öè5£º·¢½±Àø
player:AddExp(5000) -- ¸ø5000¾Ñé
player:AddItem(10001) -- ·¢·ÅÍÀÁúµ¶(ÎïÆ·ID)
player:SendMsg("¹§Ï²»ñµÃ½±Àø£¡")
player:FinishQuest(101) -- ±ê¼ÇÈÎÎñÍê³É
else
player:Say("Ò°Öí»¹Ã»É±¹»£¬¼ÌÐøÅ¬Á¦£¡£¨½ø¶È£º"..killed.."/"..killCount.."£©")
end
end
end
Èý¡¢¹Ø¼ü´úÂë½âÎö
´úÂëÆ¬¶Î ×÷ÓÃ˵Ã÷
GetQuestState(101) ¼ì²âÈÎÎñ״̬£¨0δ½Ó/1½øÐÐÖУ©
AcceptQuest(101) Õýʽ½ÓÈ¡ÈÎÎñ
GetKillCount(2001) ͳ¼ÆÍæ¼Ò»÷ɱ¹ÖÎï2001µÄÊýÁ¿
AddExp(5000) Ôö¼Ó5000¾ÑéÖµ
AddItem(10001) ·¢·ÅÖ¸¶¨IDµÀ¾ß
FinishQuest(101) ±ê¼ÇÈÎÎñΪÍê³É״̬
ËÄ¡¢ÔöÇ¿¹¦ÄÜ£¨¸üÌù½ü´«Ææ£©
ÈÎÎñ½ø¶ÈʵʱÌáʾ
-- »÷ɱ¹ÖÎïʱ´¥·¢
function OnKillMonster(player, monsterId)
if monsterId 2001 and player:GetQuestState(101)1 then
local nowCount = player:GetKillCount(2001) + 1
player:SendMsg("ÈÎÎñ½ø¶È: "..nowCount.."/"..killCount)
end
end
Ëæ»ú½±Àø³Ø
-- ½±Àø·¢·ÅÊ±Ëæ»ú³éÈ¡
local rewards = {10001, 10002, 10005} -- ÍÀÁúµ¶/ħ½ä/½ðÌõ
player:AddItem(rewards[math.random(1,3)])
¶à½×¶ÎÈÎÎñ£¨¸ß¼¶°æ£©
-- µÚÒ»²½É±10Ö»Öí → µÚ¶þ²½ÕÒ²ÄÁÏ
if player:GetQuestState(101)==1 then
-- ɱ¹ÖÂß¼
elseif player:GetQuestState(101)==2 then
if player:HasItem(90001) then -- ¼ì²âÊÇ·ñЯ´øÁúÁÛ
-- ·¢·Å×îÖÕ½±Àø
end
end
Îå¡¢±Ü¿ÓÖ¸ÄÏ
·À¿¨ËÀÉè¼Æ
¶Ô»°ÖÐÔö¼Óplayer:GotoNpc(1001) ×Ô¶¯Ñ°Â·
ÈÎÎñ³¬Ê±ÖØÖãºif TimeNow() > acceptTime + 3600 then ResetQuest()
·ÀË¢»úÖÆ
ÿÈËÏÞÍê³É1´Î£ºif player:IsQuestFinished(101) then Say("ÄãÒÑÍê³É¹ý¸ÃÈÎÎñ")
×é¶Ó¹²Ïí»÷ɱÊý£ºplayer:ShareKillCount(teamMember)
×ܽ᣺ Ò»¸öÍêÕûµÄÈÎÎñ½Å±¾¾ÍÏñ×é×°Àָߣº
NPC´¥·¢ + Ä¿±ê¼ì²â + ½ø¶È×·×Ù + ½±Àø·¢·Å = Á÷³©µÄÍæ¼ÒÌåÑé
ÕÆÎÕÕâЩºËÐÄÂß¼ºó£¬¿ÉÀ©Õ¹³öѺïÚ¡¢»¤ËÍ¡¢¸±±¾µÈ¸´ÔÓÈÎÎñÌåϵ£¡

