µ±Ç°Î»Öà : 145zÓÎÏ·Õ¾¡¡|¡¡ÈÈѪ´«Ææ¡¡|¡¡¼¼Êõ½Ì³Ì¡¡|¡¡

´ò¹ÖÁì½±Ò»ÌõÁú£¡½ÌÄã5²½Ð´³ö´«ÆæÈÎÎñ½Å±¾£¨NPC½Ó+ɱ¹Ö+Áì½±Àø£©

Èȶȣº
ÔÚ´«ÆæÀàÓÎÏ·ÖУ¬Ò»¸ö¾­µäµÄÈÎÎñÁ÷³ÌÊÇ£ºÕÒ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´¥·¢ + Ä¿±ê¼ì²â + ½ø¶È×·×Ù + ½±Àø·¢·Å = Á÷³©µÄÍæ¼ÒÌåÑé
ÕÆÎÕÕâЩºËÐÄÂß¼­ºó£¬¿ÉÀ©Õ¹³öѺïÚ¡¢»¤ËÍ¡¢¸±±¾µÈ¸´ÔÓÈÎÎñÌåϵ£¡